diff --git a/build/npm/postinstall.js b/build/npm/postinstall.js index 8b378a12fc..8ed5666f5a 100644 --- a/build/npm/postinstall.js +++ b/build/npm/postinstall.js @@ -21,7 +21,6 @@ function yarnInstall(location, opts) { } // {{SQL CARBON EDIT}} -yarnInstall('dataprotocol-client'); yarnInstall('extensions-modules'); yarnInstall('extensions'); // node modules shared by all extensions diff --git a/build/yarn.lock b/build/yarn.lock index faebab31b9..f22dd0c380 100644 --- a/build/yarn.lock +++ b/build/yarn.lock @@ -344,6 +344,12 @@ commander@2.11.0: version "2.11.0" resolved "https://registry.yarnpkg.com/commander/-/commander-2.11.0.tgz#157152fd1e7a6c8d98a5b715cf376df928004563" +commander@2.9.0: + version "2.9.0" + resolved "https://registry.yarnpkg.com/commander/-/commander-2.9.0.tgz#9c99094176e12240cb22d6c5146098400fe0f7d4" + dependencies: + graceful-readlink ">= 1.0.0" + commander@^2.9.0: version "2.13.0" resolved "https://registry.yarnpkg.com/commander/-/commander-2.13.0.tgz#6964bca67685df7c1f1430c584f07d7597885b9c" @@ -384,10 +390,12 @@ dashdash@^1.12.0: dependencies: assert-plus "^1.0.0" -"dataprotocol-client@file:../dataprotocol-client": +"dataprotocol-client@git://github.com/Microsoft/sqlops-dataprotocolclient.git#release": version "1.0.0" + resolved "git://github.com/Microsoft/sqlops-dataprotocolclient.git#739fdf93140c3cb1bc882076bf11765b187bf8a3" dependencies: - typescript "2.6.2" + sqlops "git://github.com/anthonydresser/vscode-extension-vscode" + vscode "1.1.5" vscode-languageclient "3.5.0" dateformat@^2.0.0: @@ -400,6 +408,12 @@ debug@2: dependencies: ms "2.0.0" +debug@2.6.8: + version "2.6.8" + resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.8.tgz#e731531ca2ede27d188222427da17821d68ff4fc" + dependencies: + ms "2.0.0" + debug@3.1.0, debug@^3.1.0: version "3.1.0" resolved "https://registry.yarnpkg.com/debug/-/debug-3.1.0.tgz#5bb5a0672628b64149566ba16819e61518c67261" @@ -464,6 +478,10 @@ delayed-stream@~1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619" +diff@3.2.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/diff/-/diff-3.2.0.tgz#c9ce393a4b7cbd0b058a725c93df299027868ff9" + diff@3.3.1: version "3.3.1" resolved "https://registry.yarnpkg.com/diff/-/diff-3.3.1.tgz#aa8567a6eed03c531fc89d3f711cd0e5259dec75" @@ -569,7 +587,7 @@ extend@~1.2.1: "extensions-modules@file:../extensions-modules": version "0.1.0" dependencies: - dataprotocol-client "file:C:/Users/andresse/AppData/Local/Yarn/cache/v1/dataprotocol-client" + dataprotocol-client "git://github.com/Microsoft/sqlops-dataprotocolclient.git#release" decompress "^4.2.0" fs-extra-promise "^1.0.1" http-proxy-agent "^2.0.0" @@ -758,7 +776,18 @@ glob-stream@^5.3.2: to-absolute-glob "^0.1.1" unique-stream "^2.0.2" -glob@7.1.2, glob@^7.0.5, glob@^7.1.2: +glob@7.1.1: + version "7.1.1" + resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.1.tgz#805211df04faaf1c63a3600306cdf5ade50b2ec8" + dependencies: + fs.realpath "^1.0.0" + inflight "^1.0.4" + inherits "2" + minimatch "^3.0.2" + once "^1.3.0" + path-is-absolute "^1.0.0" + +glob@7.1.2, glob@^7.0.5, glob@^7.1.1, glob@^7.1.2: version "7.1.2" resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.2.tgz#c19c9df9a028702d678612384a6552404c636d15" dependencies: @@ -797,6 +826,10 @@ growl@1.10.3: version "1.10.3" resolved "https://registry.yarnpkg.com/growl/-/growl-1.10.3.tgz#1926ba90cf3edfe2adb4927f5880bc22c66c790f" +growl@1.9.2: + version "1.9.2" + resolved "https://registry.yarnpkg.com/growl/-/growl-1.9.2.tgz#0ea7743715db8d8de2c5ede1775e1b45ac85c02f" + gulp-chmod@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/gulp-chmod/-/gulp-chmod-2.0.0.tgz#00c390b928a0799b251accf631aa09e01cc6299c" @@ -805,7 +838,7 @@ gulp-chmod@^2.0.0: stat-mode "^0.2.0" through2 "^2.0.0" -gulp-filter@^5.0.1: +gulp-filter@^5.0.0, gulp-filter@^5.0.1: version "5.1.0" resolved "https://registry.yarnpkg.com/gulp-filter/-/gulp-filter-5.1.0.tgz#a05e11affb07cf7dcf41a7de1cb7b63ac3783e73" dependencies: @@ -813,6 +846,13 @@ gulp-filter@^5.0.1: plugin-error "^0.1.2" streamfilter "^1.0.5" +gulp-gunzip@0.0.3: + version "0.0.3" + resolved "https://registry.yarnpkg.com/gulp-gunzip/-/gulp-gunzip-0.0.3.tgz#7b6e07b0f58fd3d42515c48ead5a63df0572f62f" + dependencies: + through2 "~0.6.5" + vinyl "~0.4.6" + gulp-gunzip@1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/gulp-gunzip/-/gulp-gunzip-1.0.0.tgz#15b741145e83a9c6f50886241b57cc5871f151a9" @@ -820,7 +860,7 @@ gulp-gunzip@1.0.0: through2 "~0.6.5" vinyl "~0.4.6" -gulp-remote-src@^0.4.3: +gulp-remote-src@^0.4.2, gulp-remote-src@^0.4.3: version "0.4.3" resolved "https://registry.yarnpkg.com/gulp-remote-src/-/gulp-remote-src-0.4.3.tgz#5728cfd643433dd4845ddef0969f0f971a2ab4a1" dependencies: @@ -882,6 +922,18 @@ gulp-util@~3.0.8: through2 "^2.0.0" vinyl "^0.5.0" +gulp-vinyl-zip@^1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/gulp-vinyl-zip/-/gulp-vinyl-zip-1.4.0.tgz#56382f2ccb57231bb0478c78737ccd572973bee1" + dependencies: + event-stream "^3.3.1" + queue "^3.0.10" + through2 "^0.6.3" + vinyl "^0.4.6" + vinyl-fs "^2.0.0" + yauzl "^2.2.1" + yazl "^2.2.1" + gulp-vinyl-zip@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/gulp-vinyl-zip/-/gulp-vinyl-zip-2.1.0.tgz#24e40685dc05b7149995245099e0590263be8dad" @@ -937,6 +989,10 @@ has-ansi@^2.0.0: dependencies: ansi-regex "^2.0.0" +has-flag@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-1.0.0.tgz#9d9e793165ce017a00f00418c43f942a7b1d11fa" + has-flag@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-2.0.0.tgz#e8207af1cc7b30d446cc70b734b5e8be18f88d51" @@ -1174,6 +1230,10 @@ json-stringify-safe@~5.0.1: version "5.0.1" resolved "https://registry.yarnpkg.com/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz#1296a2d58fd45f19a0f6ce01d65701e2c735b6eb" +json3@3.3.2: + version "3.3.2" + resolved "https://registry.yarnpkg.com/json3/-/json3-3.3.2.tgz#3c0434743df93e2f5c42aee7b19bcb483575f4e1" + jsonfile@^2.1.0: version "2.4.0" resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-2.4.0.tgz#3736a2b428b87bbda0cc83b53fa3d633a35c2ae8" @@ -1223,10 +1283,21 @@ lazystream@^1.0.0: dependencies: readable-stream "^2.0.5" +lodash._baseassign@^3.0.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/lodash._baseassign/-/lodash._baseassign-3.2.0.tgz#8c38a099500f215ad09e59f1722fd0c52bfe0a4e" + dependencies: + lodash._basecopy "^3.0.0" + lodash.keys "^3.0.0" + lodash._basecopy@^3.0.0: version "3.0.1" resolved "https://registry.yarnpkg.com/lodash._basecopy/-/lodash._basecopy-3.0.1.tgz#8da0e6a876cf344c0ad8a54882111dd3c5c7ca36" +lodash._basecreate@^3.0.0: + version "3.0.3" + resolved "https://registry.yarnpkg.com/lodash._basecreate/-/lodash._basecreate-3.0.3.tgz#1bc661614daa7fc311b7d03bf16806a0213cf821" + lodash._basetostring@^3.0.0: version "3.0.1" resolved "https://registry.yarnpkg.com/lodash._basetostring/-/lodash._basetostring-3.0.1.tgz#d1861d877f824a52f669832dcaf3ee15566a07d5" @@ -1259,6 +1330,14 @@ lodash._root@^3.0.0: version "3.0.1" resolved "https://registry.yarnpkg.com/lodash._root/-/lodash._root-3.0.1.tgz#fba1c4524c19ee9a5f8136b4609f017cf4ded692" +lodash.create@3.1.1: + version "3.1.1" + resolved "https://registry.yarnpkg.com/lodash.create/-/lodash.create-3.1.1.tgz#d7f2849f0dbda7e04682bb8cd72ab022461debe7" + dependencies: + lodash._baseassign "^3.0.0" + lodash._basecreate "^3.0.0" + lodash._isiterateecall "^3.0.0" + lodash.escape@^3.0.0: version "3.2.0" resolved "https://registry.yarnpkg.com/lodash.escape/-/lodash.escape-3.2.0.tgz#995ee0dc18c1b48cc92effae71a10aab5b487698" @@ -1365,7 +1444,7 @@ mime@^1.3.4: version "1.4.1" resolved "https://registry.yarnpkg.com/mime/-/mime-1.4.1.tgz#121f9ebc49e3766f311a76e1fa1c8003c4b03aa6" -"minimatch@2 || 3", minimatch@^3.0.0, minimatch@^3.0.4: +"minimatch@2 || 3", minimatch@^3.0.0, minimatch@^3.0.2, minimatch@^3.0.4: version "3.0.4" resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083" dependencies: @@ -1385,6 +1464,23 @@ mkdirp@0.5.1, "mkdirp@>=0.5 0", mkdirp@^0.5.0, mkdirp@^0.5.1: dependencies: minimist "0.0.8" +mocha@^3.2.0: + version "3.5.3" + resolved "https://registry.yarnpkg.com/mocha/-/mocha-3.5.3.tgz#1e0480fe36d2da5858d1eb6acc38418b26eaa20d" + dependencies: + browser-stdout "1.3.0" + commander "2.9.0" + debug "2.6.8" + diff "3.2.0" + escape-string-regexp "1.0.5" + glob "7.1.1" + growl "1.9.2" + he "1.1.1" + json3 "3.3.2" + lodash.create "3.1.1" + mkdirp "0.5.1" + supports-color "3.1.2" + mocha@^4.0.1: version "4.1.0" resolved "https://registry.yarnpkg.com/mocha/-/mocha-4.1.0.tgz#7d86cfbcf35cb829e2754c32e17355ec05338794" @@ -1566,7 +1662,7 @@ querystringify@~1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/querystringify/-/querystringify-1.0.0.tgz#6286242112c5b712fa654e526652bf6a13ff05cb" -queue@^3.1.0: +queue@^3.0.10, queue@^3.1.0: version "3.1.0" resolved "https://registry.yarnpkg.com/queue/-/queue-3.1.0.tgz#6c49d01f009e2256788789f2bffac6b8b9990585" dependencies: @@ -1652,7 +1748,7 @@ replace-ext@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/replace-ext/-/replace-ext-1.0.0.tgz#de63128373fcbf7c3ccfa4de5a480c45a67958eb" -request@^2.83.0: +request@^2.79.0, request@^2.83.0: version "2.83.0" resolved "https://registry.yarnpkg.com/request/-/request-2.83.0.tgz#ca0b65da02ed62935887808e6f510381034e3356" dependencies: @@ -1763,7 +1859,7 @@ semaphore@1.0.5: version "1.0.5" resolved "https://registry.yarnpkg.com/semaphore/-/semaphore-1.0.5.tgz#b492576e66af193db95d65e25ec53f5f19798d60" -semver@^5.4.1: +semver@^5.3.0, semver@^5.4.1: version "5.5.0" resolved "https://registry.yarnpkg.com/semver/-/semver-5.5.0.tgz#dc4bbc7a6ca9d916dee5d43516f0092b58f7b8ab" @@ -1779,12 +1875,22 @@ sntp@2.x.x: dependencies: hoek "4.x.x" +source-map-support@^0.4.11: + version "0.4.18" + resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.4.18.tgz#0286a6de8be42641338594e97ccea75f0a2c585f" + dependencies: + source-map "^0.5.6" + source-map-support@^0.5.0: version "0.5.2" resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.2.tgz#1a6297fd5b2e762b39688c7fc91233b60984f0a5" dependencies: source-map "^0.6.0" +source-map@^0.5.6: + version "0.5.7" + resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.7.tgz#8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc" + source-map@^0.6.0: version "0.6.1" resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263" @@ -1799,6 +1905,25 @@ split@0.3: dependencies: through "2" +"sqlops@git://github.com/anthonydresser/vscode-extension-vscode": + version "1.1.10" + resolved "git://github.com/anthonydresser/vscode-extension-vscode#96cc0758d2528a33a12d73894a6d40c8bfb15ca1" + dependencies: + glob "^7.1.2" + gulp-chmod "^2.0.0" + gulp-filter "^5.0.1" + gulp-gunzip "1.0.0" + gulp-remote-src "^0.4.3" + gulp-symdest "^1.1.0" + gulp-untar "^0.0.6" + gulp-vinyl-zip "^2.1.0" + mocha "^4.0.1" + request "^2.83.0" + semver "^5.4.1" + source-map-support "^0.5.0" + url-parse "^1.1.9" + vinyl-source-stream "^1.1.0" + sshpk@^1.7.0: version "1.13.1" resolved "https://registry.yarnpkg.com/sshpk/-/sshpk-1.13.1.tgz#512df6da6287144316dc4c18fe1cf1d940739be3" @@ -1876,6 +2001,12 @@ strip-dirs@^2.0.0: dependencies: is-natural-number "^4.0.1" +supports-color@3.1.2: + version "3.1.2" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-3.1.2.tgz#72a262894d9d408b956ca05ff37b2ed8a6e2a2d5" + dependencies: + has-flag "^1.0.0" + supports-color@4.4.0: version "4.4.0" resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-4.4.0.tgz#883f7ddabc165142b2a61427f3352ded195d1a3e" @@ -1910,7 +2041,7 @@ through2-filter@^2.0.0: through2 "~2.0.0" xtend "~4.0.0" -through2@^0.6.0, through2@~0.6.5: +through2@^0.6.0, through2@^0.6.3, through2@~0.6.5: version "0.6.5" resolved "https://registry.yarnpkg.com/through2/-/through2-0.6.5.tgz#41ab9c67b29d57209071410e1d7a7a968cd3ad48" dependencies: @@ -1968,10 +2099,6 @@ typescript@2.6.1: version "2.6.1" resolved "https://registry.yarnpkg.com/typescript/-/typescript-2.6.1.tgz#ef39cdea27abac0b500242d6726ab90e0c846631" -typescript@2.6.2: - version "2.6.2" - resolved "https://registry.yarnpkg.com/typescript/-/typescript-2.6.2.tgz#3c5b6fd7f6de0914269027f03c0946758f7673a4" - unbzip2-stream@^1.0.9: version "1.2.5" resolved "https://registry.yarnpkg.com/unbzip2-stream/-/unbzip2-stream-1.2.5.tgz#73a033a567bbbde59654b193c44d48a7e4f43c47" @@ -2054,7 +2181,7 @@ vinyl-source-stream@^1.1.0: through2 "^2.0.3" vinyl "^0.4.3" -vinyl@^0.4.3, vinyl@~0.4.6: +vinyl@^0.4.3, vinyl@^0.4.6, vinyl@~0.4.6: version "0.4.6" resolved "https://registry.yarnpkg.com/vinyl/-/vinyl-0.4.6.tgz#2f356c87a550a255461f36bbeb2a5ba8bf784847" dependencies: @@ -2128,6 +2255,25 @@ vscode-languageserver-types@^3.5.0: version "3.5.0" resolved "https://registry.yarnpkg.com/vscode-languageserver-types/-/vscode-languageserver-types-3.5.0.tgz#e48d79962f0b8e02de955e3f524908e2b19c0374" +vscode@1.1.5: + version "1.1.5" + resolved "https://registry.yarnpkg.com/vscode/-/vscode-1.1.5.tgz#10eb104001840c3dd0813815fd4a05f8fc882d14" + dependencies: + glob "^7.1.1" + gulp-chmod "^2.0.0" + gulp-filter "^5.0.0" + gulp-gunzip "0.0.3" + gulp-remote-src "^0.4.2" + gulp-symdest "^1.1.0" + gulp-untar "^0.0.6" + gulp-vinyl-zip "^1.4.0" + mocha "^3.2.0" + request "^2.79.0" + semver "^5.3.0" + source-map-support "^0.4.11" + url-parse "^1.1.9" + vinyl-source-stream "^1.1.0" + vscode@^1.0.1: version "1.1.10" resolved "https://registry.yarnpkg.com/vscode/-/vscode-1.1.10.tgz#d1cba378ab24f1d3ddf9cd470d242ee1472dd35b" diff --git a/dataprotocol-client/.gitignore b/dataprotocol-client/.gitignore deleted file mode 100644 index 6542feba08..0000000000 --- a/dataprotocol-client/.gitignore +++ /dev/null @@ -1,3 +0,0 @@ -lib -node_modules -npm-debug.log \ No newline at end of file diff --git a/dataprotocol-client/.npmignore b/dataprotocol-client/.npmignore deleted file mode 100644 index b318f418d6..0000000000 --- a/dataprotocol-client/.npmignore +++ /dev/null @@ -1,3 +0,0 @@ -src -.gitignore -tsfmt.json \ No newline at end of file diff --git a/dataprotocol-client/package.json b/dataprotocol-client/package.json deleted file mode 100644 index 7510f28284..0000000000 --- a/dataprotocol-client/package.json +++ /dev/null @@ -1,25 +0,0 @@ -{ - "name": "dataprotocol-client", - "version": "1.0.0", - "description": "SQL Operations Studio studio implementation of vscode-language-client", - "main": "lib/main.js", - "typings": "./lib/main", - "scripts": { - "prepare": "node ./node_modules/vscode/bin/install && tsc -p ./src", - "compile": "tsc -p ./src", - "watch": "tsc -w -p ./src", - "update-vscode": "node ./node_modules/vscode/bin/install" - }, - "author": "Microsoft", - "license": "ISC", - "dependencies": { - "typescript": "2.6.2", - "vscode-languageclient": "3.5.0" - }, - "devDependencies": { - "vscode": "1.1.5" - }, - "engines": { - "vscode": "^1.15" - } -} diff --git a/dataprotocol-client/src/codeConverter.ts b/dataprotocol-client/src/codeConverter.ts deleted file mode 100644 index 66c34d842f..0000000000 --- a/dataprotocol-client/src/codeConverter.ts +++ /dev/null @@ -1,68 +0,0 @@ -import * as data from 'data'; -import * as proto from './protocol'; -import * as types from './types'; - -export interface Ic2p { - asConnectionParams(connectionUri: string, connectionInfo: data.ConnectionInfo): proto.ConnectParams; - asExecutionPlanOptions(planOptions: data.ExecutionPlanOptions): types.ExecutionPlanOptions; - asScriptingParams(connectionUri: string, operation: data.ScriptOperation, metadata: data.ObjectMetadata, paramDetails: data.ScriptingParamDetails): types.ScriptingParams; -} - -function asConnectionParams(ownerUri: string, connInfo: data.ConnectionInfo): proto.ConnectParams { - return { - ownerUri, - connection: { - options: connInfo.options - } - }; -} - -function asExecutionPlanOptions(planOptions: data.ExecutionPlanOptions): types.ExecutionPlanOptions { - return { - includeEstimatedExecutionPlanXml: planOptions ? planOptions.displayEstimatedQueryPlan : undefined, - includeActualExecutionPlanXml: planOptions ? planOptions.displayActualQueryPlan : undefined - }; -} - -function asScriptingParams(ownerURI: string, operation: data.ScriptOperation, metadata: data.ObjectMetadata, paramDetails: data.ScriptingParamDetails): types.ScriptingParams { - let scriptingObject: types.ScriptingObject = { - type: metadata.metadataTypeName, - schema: metadata.schema, - name: metadata.name - }; - let targetDatabaseEngineEdition = paramDetails.targetDatabaseEngineEdition; - let targetDatabaseEngineType = paramDetails.targetDatabaseEngineType; - let scriptCompatibilityOption = paramDetails.scriptCompatibilityOption; - let scriptOptions: types.ScriptOptions = { - scriptCreateDrop: (operation === types.ScriptOperation.Delete) ? 'ScriptDrop' : - (operation === types.ScriptOperation.Select) ? 'ScriptSelect' : 'ScriptCreate', - typeOfDataToScript: 'SchemaOnly', - scriptStatistics: 'ScriptStatsNone', - targetDatabaseEngineEdition: targetDatabaseEngineEdition ? targetDatabaseEngineEdition : 'SqlServerEnterpriseEdition', - targetDatabaseEngineType: targetDatabaseEngineType ? targetDatabaseEngineType : 'SingleInstance', - scriptCompatibilityOption: scriptCompatibilityOption ? scriptCompatibilityOption : 'Script140Compat' - }; - return { - connectionString: null, - filePath: paramDetails.filePath, - scriptingObjects: [scriptingObject], - scriptDestination: 'ToEditor', - includeObjectCriteria: null, - excludeObjectCriteria: null, - includeSchemas: null, - excludeSchemas: null, - includeTypes: null, - excludeTypes: null, - scriptOptions, - connectionDetails: null, - selectScript: null, - ownerURI, - operation - }; -} - -export const c2p: Ic2p = { - asConnectionParams, - asExecutionPlanOptions, - asScriptingParams -}; diff --git a/dataprotocol-client/src/main.ts b/dataprotocol-client/src/main.ts deleted file mode 100644 index 73e69f89ba..0000000000 --- a/dataprotocol-client/src/main.ts +++ /dev/null @@ -1,1312 +0,0 @@ -import { - LanguageClient, ServerOptions, LanguageClientOptions as VSLanguageClientOptions, DynamicFeature, ServerCapabilities, RegistrationData, - RPCMessageType, Disposable, -} from 'vscode-languageclient'; - -import * as is from 'vscode-languageclient/lib/utils/is'; -import * as UUID from 'vscode-languageclient/lib/utils/uuid'; - -import * as data from 'data'; - -import { c2p, Ic2p } from './codeConverter'; - -import * as protocol from './protocol'; -import * as types from './types'; -import { Ip2c, p2c } from './protocolConverter'; - -function ensure(target: T, key: K): T[K] { - if (target[key] === void 0) { - target[key] = {} as any; - } - return target[key]; -} - -export interface LanguageClientOptions extends VSLanguageClientOptions { - providerId: string; - serverConnectionMetadata: any; -} - -/** - * - */ -export abstract class SqlOpsFeature implements DynamicFeature { - - protected _providers: Map = new Map(); - - constructor(protected _client: SqlOpsDataClient, private _message: RPCMessageType | RPCMessageType[]) { - } - - public get messages(): RPCMessageType | RPCMessageType[] { - return this._message; - } - - public abstract fillClientCapabilities(capabilities: protocol.ClientCapabilities): void; - - public abstract initialize(capabilities: ServerCapabilities): void; - - public register(messages: RPCMessageType | RPCMessageType[], data: RegistrationData): void { - // Error catching - if (is.array(this.messages) && is.array(messages)) { - let valid = messages.every(v => !!(this.messages as RPCMessageType[]).find(i => i.method === v.method)); - if (!valid) { - throw new Error(`Register called on wrong feature.`); - } - } else if (is.array(this.messages) && !is.array(messages)) { - if (!this.messages.find(i => i.method === messages.method)) { - throw new Error(`Register called on wrong feature.`); - } - } else if (!is.array(this.messages) && !is.array(messages)) { - if (this.messages.method !== messages.method) { - throw new Error(`Register called on wrong feature. Requested ${messages.method} but reached feature ${this.messages.method}`); - } - } - - let provider = this.registerProvider(data.registerOptions); - if (provider) { - this._providers.set(data.id, provider); - } - } - - protected abstract registerProvider(options: T): Disposable; - - public unregister(id: string): void { - let provider = this._providers.get(id); - if (provider) { - provider.dispose(); - } - } - - public dispose(): void { - this._providers.forEach((value) => { - value.dispose(); - }); - } -} - -class CapabilitiesFeature extends SqlOpsFeature { - - private static readonly messagesTypes: RPCMessageType[] = [ - protocol.CapabiltiesDiscoveryRequest.type - ]; - - constructor(client: SqlOpsDataClient) { - super(client, CapabilitiesFeature.messagesTypes); - } - - public fillClientCapabilities(capabilities: protocol.ClientCapabilities): void { - ensure(ensure(capabilities, 'connection')!, 'capabilities')!.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 getServerCapabilities = (cap: data.DataProtocolClientCapabilities): Thenable => { - return client.sendRequest(protocol.CapabiltiesDiscoveryRequest.type, cap).then( - client.sqlp2c.asServerCapabilities, - e => { - client.logFailedRequest(protocol.CapabiltiesDiscoveryRequest.type, e); - return Promise.resolve(undefined); - } - ); - }; - - return data.dataprotocol.registerCapabilitiesServiceProvider({ - providerId: client.providerId, - getServerCapabilities - }); - } -} - -class ConnectionFeature extends SqlOpsFeature { - - private static readonly messagesTypes: RPCMessageType[] = [ - protocol.ConnectionRequest.type, - protocol.ConnectionCompleteNotification.type, - protocol.ConnectionChangedNotification.type, - protocol.DisconnectRequest.type, - protocol.CancelConnectRequest.type, - protocol.ChangeDatabaseRequest.type, - protocol.ListDatabasesRequest.type, - protocol.LanguageFlavorChangedNotification.type - ]; - - constructor(client: SqlOpsDataClient) { - super(client, ConnectionFeature.messagesTypes); - } - - public fillClientCapabilities(capabilities: protocol.ClientCapabilities): void { - ensure(ensure(capabilities, 'connection')!, 'connection')!.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 connect = (connUri: string, connInfo: data.ConnectionInfo): Thenable => { - return client.sendRequest(protocol.ConnectionRequest.type, client.sqlc2p.asConnectionParams(connUri, connInfo)).then( - r => r, - e => { - client.logFailedRequest(protocol.ConnectionRequest.type, e); - return Promise.resolve(false); - } - ); - }; - - let disconnect = (ownerUri: string): Thenable => { - let params: protocol.DisconnectParams = { - ownerUri - }; - - return client.sendRequest(protocol.DisconnectRequest.type, params).then( - r => r, - e => { - client.logFailedRequest(protocol.DisconnectRequest.type, e); - return Promise.resolve(false); - } - ); - }; - - let cancelConnect = (ownerUri: string): Thenable => { - let params: protocol.CancelConnectParams = { - ownerUri - }; - - return client.sendRequest(protocol.CancelConnectRequest.type, params).then( - r => r, - e => { - client.logFailedRequest(protocol.CancelConnectRequest.type, e); - return Promise.resolve(false); - } - ); - }; - - let changeDatabase = (ownerUri: string, newDatabase: string): Thenable => { - let params: protocol.ChangeDatabaseParams = { - ownerUri, - newDatabase - }; - - return client.sendRequest(protocol.ChangeDatabaseRequest.type, params).then( - r => r, - e => { - client.logFailedRequest(protocol.ChangeDatabaseRequest.type, e); - return Promise.resolve(false); - } - ); - }; - - let listDatabases = (ownerUri: string): Thenable => { - let params: protocol.ListDatabasesParams = { - ownerUri - }; - - return client.sendRequest(protocol.ListDatabasesRequest.type, params).then( - r => r, - e => { - client.logFailedRequest(protocol.ListDatabasesRequest.type, e); - return Promise.resolve(undefined); - } - ); - }; - - let rebuildIntelliSenseCache = (ownerUri: string): Thenable => { - let params: protocol.RebuildIntelliSenseParams = { - ownerUri - }; - - client.sendNotification(protocol.RebuildIntelliSenseNotification.type, params); - return Promise.resolve(); - }; - - let registerOnConnectionComplete = (handler: (connSummary: data.ConnectionInfoSummary) => any): void => { - client.onNotification(protocol.ConnectionCompleteNotification.type, handler); - }; - - let registerOnIntelliSenseCacheComplete = (handler: (connectionUri: string) => any): void => { - client.onNotification(protocol.IntelliSenseReadyNotification.type, (params: types.IntelliSenseReadyParams) => { - handler(params.ownerUri); - }); - }; - - let registerOnConnectionChanged = (handler: (changedConnInfo: data.ChangedConnectionInfo) => any): void => { - client.onNotification(protocol.ConnectionChangedNotification.type, (params: protocol.ConnectionChangedParams) => { - handler({ - connectionUri: params.ownerUri, - connection: params.connection - }); - }); - }; - - return data.dataprotocol.registerConnectionProvider({ - providerId: client.providerId, - connect, - disconnect, - cancelConnect, - changeDatabase, - listDatabases, - rebuildIntelliSenseCache, - registerOnConnectionChanged, - registerOnIntelliSenseCacheComplete, - registerOnConnectionComplete - }); - } -} - -class QueryFeature extends SqlOpsFeature { - private static readonly messagesTypes: RPCMessageType[] = [ - protocol.QueryExecuteRequest.type, - protocol.QueryCancelRequest.type, - protocol.QueryExecuteStatementRequest.type, - protocol.QueryExecuteStringRequest.type, - protocol.SimpleExecuteRequest.type, - protocol.QueryExecuteSubsetRequest.type, - protocol.QueryDisposeRequest.type, - protocol.QueryExecuteCompleteNotification.type, - protocol.QueryExecuteBatchStartNotification.type, - protocol.QueryExecuteBatchCompleteNotification.type, - protocol.QueryExecuteResultSetCompleteNotification.type, - protocol.QueryExecuteMessageNotification.type, - protocol.SaveResultsAsCsvRequest.type, - protocol.SaveResultsAsJsonRequest.type, - protocol.SaveResultsAsExcelRequest.type, - protocol.EditCommitRequest.type, - protocol.EditCreateRowRequest.type, - protocol.EditDeleteRowRequest.type, - protocol.EditDisposeRequest.type, - protocol.EditInitializeRequest.type, - protocol.EditRevertCellRequest.type, - protocol.EditRevertRowRequest.type, - protocol.EditUpdateCellRequest.type, - protocol.EditSubsetRequest.type, - protocol.EditSessionReadyNotification.type - ]; - - constructor(client: SqlOpsDataClient) { - super(client, QueryFeature.messagesTypes); - } - - public fillClientCapabilities(capabilities: protocol.ClientCapabilities): void { - ensure(ensure(capabilities, 'connection')!, 'query')!.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 runQuery = (ownerUri: string, querySelection: data.ISelectionData, executionPlanOptions?: data.ExecutionPlanOptions): Thenable => { - let params: types.QueryExecuteParams = { - ownerUri, - querySelection, - executionPlanOptions: client.sqlc2p.asExecutionPlanOptions(executionPlanOptions) - }; - return client.sendRequest(protocol.QueryExecuteRequest.type, params).then( - r => undefined, - e => { - client.logFailedRequest(protocol.QueryExecuteRequest.type, e); - return Promise.reject(e); - } - ); - }; - - let cancelQuery = (ownerUri: string): Thenable => { - let params: protocol.QueryCancelParams = { ownerUri }; - return client.sendRequest(protocol.QueryCancelRequest.type, params).then( - r => r, - e => { - client.logFailedRequest(protocol.QueryCancelRequest.type, e); - return Promise.reject(e); - } - ); - }; - - let runQueryStatement = (ownerUri: string, line: number, column: number): Thenable => { - let params: protocol.QueryExecuteStatementParams = { - ownerUri, - line, - column - }; - return client.sendRequest(protocol.QueryExecuteStatementRequest.type, params).then( - r => undefined, - e => { - client.logFailedRequest(protocol.QueryExecuteStatementRequest.type, e); - return Promise.reject(e); - } - ); - }; - - let runQueryString = (ownerUri: string, query: string): Thenable => { - let params: protocol.QueryExecuteStringParams = { ownerUri, query }; - return client.sendRequest(protocol.QueryExecuteStringRequest.type, params).then( - r => undefined, - e => { - client.logFailedRequest(protocol.QueryExecuteStringRequest.type, e); - return Promise.reject(e); - } - ); - }; - - let runQueryAndReturn = (ownerUri: string, queryString: string): Thenable => { - let params: data.SimpleExecuteParams = { ownerUri, queryString }; - return client.sendRequest(protocol.SimpleExecuteRequest.type, params).then( - r => r, - e => { - client.logFailedRequest(protocol.SimpleExecuteRequest.type, e); - return Promise.reject(e); - } - ); - }; - - let getQueryRows = (rowData: data.QueryExecuteSubsetParams): Thenable => { - return client.sendRequest(protocol.QueryExecuteSubsetRequest.type, rowData).then( - r => r, - e => { - client.logFailedRequest(protocol.QueryExecuteSubsetRequest.type, e); - return Promise.reject(e); - } - ); - }; - - let disposeQuery = (ownerUri: string): Thenable => { - let params: protocol.QueryDisposeParams = { ownerUri }; - return client.sendRequest(protocol.QueryDisposeRequest.type, params).then( - r => undefined, - e => { - client.logFailedRequest(protocol.QueryDisposeRequest.type, e); - return Promise.reject(e); - } - ); - }; - - let registerOnQueryComplete = (handler: (result: data.QueryExecuteCompleteNotificationResult) => any): void => { - client.onNotification(protocol.QueryExecuteCompleteNotification.type, handler); - }; - - let registerOnBatchStart = (handler: (batchInfo: data.QueryExecuteBatchNotificationParams) => any): void => { - client.onNotification(protocol.QueryExecuteBatchStartNotification.type, handler); - }; - - let registerOnBatchComplete = (handler: (batchInfo: data.QueryExecuteBatchNotificationParams) => any): void => { - client.onNotification(protocol.QueryExecuteBatchCompleteNotification.type, handler); - }; - - let registerOnResultSetComplete = (handler: (resultSetInfo: data.QueryExecuteResultSetCompleteNotificationParams) => any): void => { - client.onNotification(protocol.QueryExecuteResultSetCompleteNotification.type, handler); - }; - - let registerOnMessage = (handler: (message: data.QueryExecuteMessageParams) => any): void => { - client.onNotification(protocol.QueryExecuteMessageNotification.type, handler); - }; - - let saveResults = (requestParams: data.SaveResultsRequestParams): Thenable => { - switch (requestParams.resultFormat) { - case 'csv': - return client.sendRequest(protocol.SaveResultsAsCsvRequest.type, requestParams).then( - undefined, - e => { - client.logFailedRequest(protocol.SaveResultsAsCsvRequest.type, e); - return Promise.reject(e); - } - ); - case 'json': - return client.sendRequest(protocol.SaveResultsAsJsonRequest.type, requestParams).then( - undefined, - e => { - client.logFailedRequest(protocol.SaveResultsAsJsonRequest.type, e); - return Promise.reject(e); - } - ); - case 'excel': - return client.sendRequest(protocol.SaveResultsAsExcelRequest.type, requestParams).then( - undefined, - e => { - client.logFailedRequest(protocol.SaveResultsAsExcelRequest.type, e); - return Promise.reject(e); - } - ); - default: - return Promise.reject('unsupported format'); - } - }; - - // Edit Data Requests - let commitEdit = (ownerUri: string): Thenable => { - let params: data.EditCommitParams = { ownerUri }; - return client.sendRequest(protocol.EditCommitRequest.type, params).then( - r => undefined, - e => { - client.logFailedRequest(protocol.EditCommitRequest.type, e); - return Promise.reject(e); - } - ); - }; - - let createRow = (ownerUri: string): Thenable => { - let params: data.EditCreateRowParams = { ownerUri: ownerUri }; - return client.sendRequest(protocol.EditCreateRowRequest.type, params).then( - r => r, - e => { - client.logFailedRequest(protocol.EditCreateRowRequest.type, e); - return Promise.reject(e); - } - ); - }; - - let deleteRow = (ownerUri: string, rowId: number): Thenable => { - let params: data.EditDeleteRowParams = { ownerUri, rowId }; - return client.sendRequest(protocol.EditDeleteRowRequest.type, params).then( - r => undefined, - e => { - client.logFailedRequest(protocol.EditDeleteRowRequest.type, e); - return Promise.reject(e); - } - ); - }; - - let disposeEdit = (ownerUri: string): Thenable => { - let params: data.EditDisposeParams = { ownerUri }; - return client.sendRequest(protocol.EditDisposeRequest.type, params).then( - r => undefined, - e => { - client.logFailedRequest(protocol.EditDisposeRequest.type, e); - return Promise.reject(e); - } - ); - }; - - let initializeEdit = (ownerUri: string, schemaName: string, objectName: string, objectType: string, LimitResults: number): Thenable => { - let filters: data.EditInitializeFiltering = { LimitResults }; - let params: data.EditInitializeParams = { ownerUri, schemaName, objectName, objectType, filters }; - return client.sendRequest(protocol.EditInitializeRequest.type, params).then( - r => undefined, - e => { - client.logFailedRequest(protocol.EditInitializeRequest.type, e); - return Promise.reject(e); - } - ); - }; - - let revertCell = (ownerUri: string, rowId: number, columnId: number): Thenable => { - let params: data.EditRevertCellParams = { ownerUri, rowId, columnId }; - return client.sendRequest(protocol.EditRevertCellRequest.type, params).then( - r => r, - e => { - client.logFailedRequest(protocol.EditRevertCellRequest.type, e); - return Promise.reject(e); - } - ); - }; - - let revertRow = (ownerUri: string, rowId: number): Thenable => { - let params: data.EditRevertRowParams = { ownerUri, rowId }; - return client.sendRequest(protocol.EditRevertRowRequest.type, params).then( - r => undefined, - e => { - client.logFailedRequest(protocol.EditRevertRowRequest.type, e); - return Promise.reject(e); - } - ); - }; - - let updateCell = (ownerUri: string, rowId: number, columnId: number, newValue: string): Thenable => { - let params: data.EditUpdateCellParams = { ownerUri, rowId, columnId, newValue }; - return client.sendRequest(protocol.EditUpdateCellRequest.type, params).then( - r => r, - e => { - client.logFailedRequest(protocol.EditUpdateCellRequest.type, e); - return Promise.reject(e); - } - ); - }; - - let getEditRows = (rowData: data.EditSubsetParams): Thenable => { - return client.sendRequest(protocol.EditSubsetRequest.type, rowData).then( - r => r, - e => { - client.logFailedRequest(protocol.EditSubsetRequest.type, e); - return Promise.reject(e); - } - ); - }; - - // Edit Data Event Handlers - let registerOnEditSessionReady = (handler: (ownerUri: string, success: boolean, message: string) => any): void => { - client.onNotification(protocol.EditSessionReadyNotification.type, (params: data.EditSessionReadyParams) => { - handler(params.ownerUri, params.success, params.message); - }); - }; - - return data.dataprotocol.registerQueryProvider({ - providerId: client.providerId, - cancelQuery, - commitEdit, - createRow, - deleteRow, - disposeEdit, - disposeQuery, - getEditRows, - getQueryRows, - initializeEdit, - registerOnBatchComplete, - registerOnBatchStart, - registerOnEditSessionReady, - registerOnMessage, - registerOnQueryComplete, - registerOnResultSetComplete, - revertCell, - revertRow, - runQuery, - runQueryAndReturn, - runQueryStatement, - runQueryString, - saveResults, - updateCell - }); - } -} - -class MetadataFeature extends SqlOpsFeature { - private static readonly messagesTypes: RPCMessageType[] = [ - protocol.MetadataQueryRequest.type, - protocol.ListDatabasesRequest.type, - protocol.TableMetadataRequest.type, - protocol.ViewMetadataRequest.type - ]; - - constructor(client: SqlOpsDataClient) { - super(client, MetadataFeature.messagesTypes); - } - - public fillClientCapabilities(capabilities: protocol.ClientCapabilities): void { - ensure(ensure(capabilities, 'connection')!, 'metadata')!.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 getMetadata = (ownerUri: string): Thenable => { - let params: types.MetadataQueryParams = { ownerUri }; - return client.sendRequest(protocol.MetadataQueryRequest.type, params).then( - client.sqlp2c.asProviderMetadata, - e => { - client.logFailedRequest(protocol.MetadataQueryRequest.type, e); - return Promise.resolve(undefined); - } - ); - }; - - let getDatabases = (ownerUri: string): Thenable => { - let params: protocol.ListDatabasesParams = { ownerUri }; - return client.sendRequest(protocol.ListDatabasesRequest.type, params).then( - r => r.databaseNames, - e => { - client.logFailedRequest(protocol.ListDatabasesRequest.type, e); - return Promise.resolve(undefined); - } - ); - }; - - let getTableInfo = (ownerUri: string, metadata: data.ObjectMetadata): Thenable => { - let params: protocol.TableMetadataParams = { objectName: metadata.name, ownerUri, schema: metadata.schema }; - return client.sendRequest(protocol.TableMetadataRequest.type, params).then( - r => r.columns, - e => { - client.logFailedRequest(protocol.TableMetadataRequest.type, e); - return Promise.resolve(undefined); - } - ); - }; - - let getViewInfo = (ownerUri: string, metadata: data.ObjectMetadata): Thenable => { - let params: protocol.TableMetadataParams = { objectName: metadata.name, ownerUri, schema: metadata.schema }; - return client.sendRequest(protocol.ViewMetadataRequest.type, params).then( - r => r.columns, - e => { - client.logFailedRequest(protocol.ViewMetadataRequest.type, e); - return Promise.resolve(undefined); - } - ); - }; - - return data.dataprotocol.registerMetadataProvider({ - providerId: client.providerId, - getDatabases, - getMetadata, - getTableInfo, - getViewInfo - }); - } -} - -class AdminServicesFeature extends SqlOpsFeature { - private static readonly messagesTypes: RPCMessageType[] = [ - protocol.CreateDatabaseRequest.type, - protocol.DefaultDatabaseInfoRequest.type, - protocol.GetDatabaseInfoRequest.type, - protocol.CreateLoginRequest.type - ]; - - constructor(client: SqlOpsDataClient) { - super(client, AdminServicesFeature.messagesTypes); - } - - public fillClientCapabilities(capabilities: protocol.ClientCapabilities): void { - ensure(ensure(capabilities, 'connection')!, 'adminServices')!.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 createDatabase = (ownerUri: string, databaseInfo: data.DatabaseInfo): Thenable => { - let params: types.CreateDatabaseParams = { ownerUri, databaseInfo }; - return client.sendRequest(protocol.CreateDatabaseRequest.type, params).then( - r => r, - e => { - client.logFailedRequest(protocol.CreateDatabaseRequest.type, e); - return Promise.resolve(undefined); - } - ); - }; - - let getDefaultDatabaseInfo = (ownerUri: string): Thenable => { - let params: types.DefaultDatabaseInfoParams = { ownerUri }; - return client.sendRequest(protocol.DefaultDatabaseInfoRequest.type, params).then( - r => r.defaultDatabaseInfo, - e => { - client.logFailedRequest(protocol.DefaultDatabaseInfoRequest.type, e); - return Promise.resolve(undefined); - } - ); - }; - - let getDatabaseInfo = (ownerUri: string): Thenable => { - let params: types.GetDatabaseInfoParams = { ownerUri }; - return client.sendRequest(protocol.GetDatabaseInfoRequest.type, params).then( - r => r.databaseInfo, - e => { - client.logFailedRequest(protocol.GetDatabaseInfoRequest.type, e); - return Promise.reject(e); - } - ); - }; - - let createLogin = (ownerUri: string, loginInfo: data.LoginInfo): Thenable => { - let params: types.CreateLoginParams = { ownerUri, loginInfo }; - return client.sendRequest(protocol.CreateLoginRequest.type, params).then( - r => r, - e => { - client.logFailedRequest(protocol.CreateLoginRequest.type, e); - return Promise.resolve(undefined); - } - ); - }; - - return data.dataprotocol.registerAdminServicesProvider({ - providerId: client.providerId, - createDatabase, - createLogin, - getDatabaseInfo, - getDefaultDatabaseInfo - }); - } -} - -class BackupFeature extends SqlOpsFeature { - private static readonly messagesTypes: RPCMessageType[] = [ - protocol.BackupRequest.type, - protocol.BackupConfigInfoRequest.type - ]; - - constructor(client: SqlOpsDataClient) { - super(client, BackupFeature.messagesTypes); - } - - public fillClientCapabilities(capabilities: protocol.ClientCapabilities): void { - ensure(ensure(capabilities, 'connection')!, 'backup')!.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 backup = (ownerUri: string, backupInfo: types.BackupInfo, taskExecutionMode: data.TaskExecutionMode): Thenable => { - let params: types.BackupParams = { ownerUri, backupInfo, taskExecutionMode }; - return client.sendRequest(protocol.BackupRequest.type, params).then( - r => r, - e => { - client.logFailedRequest(protocol.BackupRequest.type, e); - return Promise.resolve(undefined); - } - ); - }; - - let getBackupConfigInfo = (connectionUri: string): Thenable => { - let params: types.DefaultDatabaseInfoParams = { ownerUri: connectionUri }; - return client.sendRequest(protocol.BackupConfigInfoRequest.type, params).then( - r => r.backupConfigInfo, - e => { - client.logFailedRequest(protocol.BackupConfigInfoRequest.type, e); - return Promise.resolve(undefined); - } - ); - }; - - return data.dataprotocol.registerBackupProvider({ - providerId: client.providerId, - backup, - getBackupConfigInfo - }); - } -} - -class RestoreFeature extends SqlOpsFeature { - private static readonly messagesTypes: RPCMessageType[] = [ - protocol.RestorePlanRequest.type, - protocol.RestoreRequest.type, - protocol.RestoreConfigInfoRequest.type, - protocol.CancelRestorePlanRequest.type - ]; - - constructor(client: SqlOpsDataClient) { - super(client, RestoreFeature.messagesTypes); - } - - public fillClientCapabilities(capabilities: protocol.ClientCapabilities): void { - ensure(ensure(capabilities, 'connection')!, 'restore')!.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 getRestorePlan = (ownerUri: string, restoreInfo: data.RestoreInfo): Thenable => { - let params: types.RestoreParams = { options: restoreInfo.options, ownerUri, taskExecutionMode: restoreInfo.taskExecutionMode }; - return client.sendRequest(protocol.RestorePlanRequest.type, params).then( - r => r, - e => { - client.logFailedRequest(protocol.RestorePlanRequest.type, e); - return Promise.resolve(undefined); - } - ); - }; - - let restore = (ownerUri: string, restoreInfo: data.RestoreInfo): Thenable => { - let params: types.RestoreParams = { options: restoreInfo.options, ownerUri, taskExecutionMode: restoreInfo.taskExecutionMode }; - return client.sendRequest(protocol.RestoreRequest.type, params).then( - r => r, - e => { - client.logFailedRequest(protocol.RestoreRequest.type, e); - return Promise.resolve(undefined); - } - ); - }; - - let getRestoreConfigInfo = (ownerUri: string): Thenable => { - let params: types.RestoreConfigInfoRequestParams = { ownerUri }; - return client.sendRequest(protocol.RestoreConfigInfoRequest.type, params).then( - r => r, - e => { - client.logFailedRequest(protocol.RestoreConfigInfoRequest.type, e); - return Promise.resolve(undefined); - } - ); - }; - - let cancelRestorePlan = (ownerUri: string, restoreInfo: data.RestoreInfo): Thenable => { - let params: types.RestoreParams = { options: restoreInfo.options, ownerUri, taskExecutionMode: restoreInfo.taskExecutionMode }; - return client.sendRequest(protocol.CancelRestorePlanRequest.type, params).then( - r => r, - e => { - client.logFailedRequest(protocol.CancelRestorePlanRequest.type, e); - return Promise.resolve(undefined); - } - ); - }; - - return data.dataprotocol.registerRestoreProvider({ - providerId: client.providerId, - cancelRestorePlan, - getRestoreConfigInfo, - getRestorePlan, - restore - }); - } -} - -class ObjectExplorerFeature extends SqlOpsFeature { - private static readonly messagesTypes: RPCMessageType[] = [ - protocol.ObjectExplorerCreateSessionRequest.type, - protocol.ObjectExplorerExpandRequest.type, - protocol.ObjectExplorerRefreshRequest.type, - protocol.ObjectExplorerCloseSessionRequest.type, - protocol.ObjectExplorerCreateSessionCompleteNotification.type, - protocol.ObjectExplorerExpandCompleteNotification.type - ]; - - constructor(client: SqlOpsDataClient) { - super(client, ObjectExplorerFeature.messagesTypes); - } - - public fillClientCapabilities(capabilities: protocol.ClientCapabilities): void { - ensure(ensure(capabilities, 'connection')!, 'objectExplorer')!.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 createNewSession = (connInfo: data.ConnectionInfo): Thenable => { - return client.sendRequest(protocol.ObjectExplorerCreateSessionRequest.type, connInfo).then( - r => r, - e => { - client.logFailedRequest(protocol.ObjectExplorerCreateSessionRequest.type, e); - return Promise.resolve(undefined); - } - ); - }; - - let expandNode = (nodeInfo: data.ExpandNodeInfo): Thenable => { - return client.sendRequest(protocol.ObjectExplorerExpandRequest.type, nodeInfo).then( - r => r, - e => { - client.logFailedRequest(protocol.ObjectExplorerExpandRequest.type, e); - return Promise.resolve(undefined); - } - ); - }; - - let refreshNode = (nodeInfo: data.ExpandNodeInfo): Thenable => { - return client.sendRequest(protocol.ObjectExplorerRefreshRequest.type, nodeInfo).then( - r => r, - e => { - client.logFailedRequest(protocol.ObjectExplorerRefreshRequest.type, e); - return Promise.resolve(undefined); - } - ); - }; - - let closeSession = (closeSessionInfo: data.ObjectExplorerCloseSessionInfo): Thenable => { - return client.sendRequest(protocol.ObjectExplorerCloseSessionRequest.type, closeSessionInfo).then( - r => r, - e => { - client.logFailedRequest(protocol.ObjectExplorerCloseSessionRequest.type, e); - return Promise.resolve(undefined); - } - ); - }; - - let registerOnSessionCreated = (handler: (response: data.ObjectExplorerSession) => any): void => { - client.onNotification(protocol.ObjectExplorerCreateSessionCompleteNotification.type, handler); - }; - - let registerOnExpandCompleted = (handler: (response: data.ObjectExplorerExpandInfo) => any): void => { - client.onNotification(protocol.ObjectExplorerExpandCompleteNotification.type, handler); - }; - - return data.dataprotocol.registerObjectExplorerProvider({ - providerId: client.providerId, - closeSession, - createNewSession, - expandNode, - refreshNode, - registerOnExpandCompleted, - registerOnSessionCreated - }); - } -} - -class ScriptingFeature extends SqlOpsFeature { - private static readonly messagesTypes: RPCMessageType[] = [ - protocol.ScriptingRequest.type, - protocol.ScriptingCompleteNotification.type - ]; - - constructor(client: SqlOpsDataClient) { - super(client, ScriptingFeature.messagesTypes); - } - - public fillClientCapabilities(capabilities: protocol.ClientCapabilities): void { - ensure(ensure(capabilities, 'connection')!, 'scripting')!.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 scriptAsOperation = (connectionUri: string, operation: data.ScriptOperation, metadata: data.ObjectMetadata, paramDetails: data.ScriptingParamDetails): Thenable => { - return client.sendRequest(protocol.ScriptingRequest.type, - client.sqlc2p.asScriptingParams(connectionUri, operation, metadata, paramDetails)).then( - r => r, - e => { - client.logFailedRequest(protocol.ScriptingRequest.type, e); - return Promise.resolve(undefined); - } - ); - }; - - let registerOnScriptingComplete = (handler: (scriptingCompleteResult: data.ScriptingCompleteResult) => any): void => { - client.onNotification(protocol.ScriptingCompleteNotification.type, handler); - }; - - return data.dataprotocol.registerScriptingProvider({ - providerId: client.providerId, - registerOnScriptingComplete, - scriptAsOperation - }); - } -} - -class TaskServicesFeature extends SqlOpsFeature { - private static readonly messagesTypes: RPCMessageType[] = [ - protocol.ListTasksRequest.type, - protocol.CancelTaskRequest.type, - protocol.TaskCreatedNotification.type, - protocol.TaskStatusChangedNotification.type - ]; - - constructor(client: SqlOpsDataClient) { - super(client, TaskServicesFeature.messagesTypes); - } - - public fillClientCapabilities(capabilities: protocol.ClientCapabilities): void { - ensure(ensure(capabilities, 'connection')!, 'taskServices')!.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 getAllTasks = (listTasksParams: data.ListTasksParams): Thenable => { - return client.sendRequest(protocol.ListTasksRequest.type, listTasksParams).then( - r => r, - e => { - client.logFailedRequest(protocol.ListTasksRequest.type, e); - return Promise.resolve(undefined); - } - ); - - }; - - let cancelTask = (cancelTaskParams: data.CancelTaskParams): Thenable => { - return client.sendRequest(protocol.CancelTaskRequest.type, cancelTaskParams).then( - r => r, - e => { - client.logFailedRequest(protocol.CancelTaskRequest.type, e); - return Promise.resolve(undefined); - } - ); - }; - - let registerOnTaskCreated = (handler: (response: data.TaskInfo) => any): void => { - client.onNotification(protocol.TaskCreatedNotification.type, handler); - }; - - let registerOnTaskStatusChanged = (handler: (response: data.TaskProgressInfo) => any): void => { - client.onNotification(protocol.TaskStatusChangedNotification.type, handler); - }; - - return data.dataprotocol.registerTaskServicesProvider({ - providerId: client.providerId, - cancelTask, - getAllTasks, - registerOnTaskCreated, - registerOnTaskStatusChanged - }); - } -} - -class FileBrowserFeature extends SqlOpsFeature { - private static readonly messagesTypes: RPCMessageType[] = [ - protocol.FileBrowserOpenRequest.type, - protocol.FileBrowserOpenedNotification.type, - protocol.FileBrowserExpandRequest.type, - protocol.FileBrowserExpandedNotification.type, - protocol.FileBrowserValidateRequest.type, - protocol.FileBrowserValidatedNotification.type, - protocol.FileBrowserCloseRequest.type - ]; - - constructor(client: SqlOpsDataClient) { - super(client, FileBrowserFeature.messagesTypes); - } - - public fillClientCapabilities(capabilities: protocol.ClientCapabilities): void { - ensure(ensure(capabilities, 'connection')!, 'fileBrowser')!.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 openFileBrowser = (ownerUri: string, expandPath: string, fileFilters: string[], changeFilter: boolean): Thenable => { - let params: types.FileBrowserOpenParams = { ownerUri, expandPath, fileFilters, changeFilter }; - return client.sendRequest(protocol.FileBrowserOpenRequest.type, params).then( - r => r, - e => { - client.logFailedRequest(protocol.FileBrowserOpenRequest.type, e); - return Promise.resolve(undefined); - } - ); - }; - - let registerOnFileBrowserOpened = (handler: (response: data.FileBrowserOpenedParams) => any): void => { - client.onNotification(protocol.FileBrowserOpenedNotification.type, handler); - }; - - let expandFolderNode = (ownerUri: string, expandPath: string): Thenable => { - let params: types.FileBrowserExpandParams = { ownerUri, expandPath }; - return client.sendRequest(protocol.FileBrowserExpandRequest.type, params).then( - r => r, - e => { - client.logFailedRequest(protocol.FileBrowserExpandRequest.type, e); - return Promise.resolve(undefined); - } - ); - }; - - let registerOnFolderNodeExpanded = (handler: (response: data.FileBrowserExpandedParams) => any): void => { - client.onNotification(protocol.FileBrowserExpandedNotification.type, handler); - }; - - let validateFilePaths = (ownerUri: string, serviceType: string, selectedFiles: string[]): Thenable => { - let params: types.FileBrowserValidateParams = { ownerUri, serviceType, selectedFiles }; - return client.sendRequest(protocol.FileBrowserValidateRequest.type, params).then( - r => r, - e => { - client.logFailedRequest(protocol.FileBrowserValidateRequest.type, e); - return Promise.resolve(undefined); - } - ); - }; - - let registerOnFilePathsValidated = (handler: (response: data.FileBrowserValidatedParams) => any): void => { - client.onNotification(protocol.FileBrowserValidatedNotification.type, handler); - }; - - let closeFileBrowser = (ownerUri: string): Thenable => { - let params: types.FileBrowserCloseParams = { ownerUri }; - return client.sendRequest(protocol.FileBrowserCloseRequest.type, params).then( - r => r, - e => { - client.logFailedRequest(protocol.FileBrowserCloseRequest.type, e); - return Promise.resolve(undefined); - } - ); - }; - - return data.dataprotocol.registerFileBrowserProvider({ - providerId: client.providerId, - closeFileBrowser, - expandFolderNode, - openFileBrowser, - registerOnFileBrowserOpened, - registerOnFilePathsValidated, - registerOnFolderNodeExpanded, - validateFilePaths - }); - } -} - -class ProfilerFeature extends SqlOpsFeature { - private static readonly messagesTypes: RPCMessageType[] = [ - protocol.StartProfilingRequest.type, - protocol.StopProfilingRequest.type, - protocol.ProfilerEventsAvailableNotification.type - ]; - - constructor(client: SqlOpsDataClient) { - super(client, ProfilerFeature.messagesTypes); - } - - public fillClientCapabilities(capabilities: protocol.ClientCapabilities): void { - ensure(ensure(capabilities, 'connection')!, 'profiler')!.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 startSession = (ownerUri: string): Thenable => { - let params: types.StartProfilingParams = { - ownerUri, - options: {} - }; - - return client.sendRequest(protocol.StartProfilingRequest.type, params).then( - r => true, - e => { - client.logFailedRequest(protocol.StartProfilingRequest.type, e); - return Promise.reject(e); - } - ); - }; - - let stopSession = (ownerUri: string): Thenable => { - let params: types.StopProfilingParams = { - ownerUri - }; - - return client.sendRequest(protocol.StopProfilingRequest.type, params).then( - r => true, - e => { - client.logFailedRequest(protocol.StopProfilingRequest.type, e); - return Promise.reject(e); - } - ); - }; - - let pauseSession = (sessionId: string): Thenable => { - return undefined; - }; - - let connectSession = (sessionId: string): Thenable => { - return undefined; - }; - - let disconnectSession = (sessionId: string): Thenable => { - return undefined; - }; - - let registerOnSessionEventsAvailable = (handler: (response: data.ProfilerSessionEvents) => any): void => { - client.onNotification(protocol.ProfilerEventsAvailableNotification.type, (params: types.ProfilerEventsAvailableParams) => { - handler({ - sessionId: params.ownerUri, - events: params.events - }); - }); - }; - - return data.dataprotocol.registerProfilerProvider({ - providerId: client.providerId, - connectSession, - disconnectSession, - pauseSession, - registerOnSessionEventsAvailable, - startSession, - stopSession - }); - } -} - -/** - * - */ -export class SqlOpsDataClient extends LanguageClient { - - private _sqlc2p: Ic2p; - private _sqlp2c: Ip2c; - private _providerId: string; - - public get sqlc2p(): Ic2p { - return this._sqlc2p; - } - - public get sqlp2c(): Ip2c { - return this._sqlp2c; - } - - public get providerId(): string { - return this._providerId; - } - - public constructor(name: string, serverOptions: ServerOptions, clientOptions: LanguageClientOptions, forceDebug?: boolean); - public constructor(id: string, name: string, serverOptions: ServerOptions, clientOptions: LanguageClientOptions, forceDebug?: boolean); - public constructor(arg1: string, arg2: ServerOptions | string, arg3: LanguageClientOptions | ServerOptions, arg4?: boolean | LanguageClientOptions, arg5?: boolean) { - if (is.string(arg2)) { - super(arg1, arg2, arg3 as ServerOptions, arg4 as LanguageClientOptions, arg5); - this._providerId = (arg4 as LanguageClientOptions).providerId; - } else { - super(arg1, arg2 as ServerOptions, arg3 as LanguageClientOptions, arg4 as boolean); - this._providerId = (arg3 as LanguageClientOptions).providerId; - } - this._sqlc2p = c2p; - this._sqlp2c = p2c; - this.registerDataFeatures(); - } - - private registerDataFeatures() { - this.registerFeature(new ConnectionFeature(this)); - this.registerFeature(new CapabilitiesFeature(this)); - this.registerFeature(new QueryFeature(this)); - this.registerFeature(new MetadataFeature(this)); - this.registerFeature(new AdminServicesFeature(this)); - this.registerFeature(new BackupFeature(this)); - this.registerFeature(new RestoreFeature(this)); - this.registerFeature(new ObjectExplorerFeature(this)); - this.registerFeature(new ScriptingFeature(this)); - this.registerFeature(new TaskServicesFeature(this)); - this.registerFeature(new FileBrowserFeature(this)); - this.registerFeature(new ProfilerFeature(this)); - } -} diff --git a/dataprotocol-client/src/protocol.ts b/dataprotocol-client/src/protocol.ts deleted file mode 100644 index df1ba2242a..0000000000 --- a/dataprotocol-client/src/protocol.ts +++ /dev/null @@ -1,633 +0,0 @@ -import { ClientCapabilities as VSClientCapabilities, RequestType, NotificationType } from 'vscode-languageclient'; - -import * as types from './types'; -import * as data from 'data'; - -export interface ConnectionClientCapabilities { - connection?: { - /** - * Whether the connection support dynamic registration - */ - dynamicRegistration?: boolean; - }; - backup?: { - /** - * Whether the backup support dynamic registration - */ - dynamicRegistration?: boolean; - }; - restore?: { - /** - * Whether the restore support dynamic registration - */ - dynamicRegistration?: boolean; - }; - query?: { - /** - * Whether the query support dynamic registration - */ - dynamicRegistration?: boolean; - }; - objectExplorer?: { - /** - * Whether the object explorer support dynamic registration - */ - dynamicRegistration?: boolean; - }; - scripting?: { - /** - * Whether the scripting support dynamic registration - */ - dynamicRegistration?: boolean; - }; - taskServices?: { - /** - * Whether the task services support dynamic registration - */ - dynamicRegistration?: boolean; - }; - fileBrowser?: { - /** - * Whether the file browser support dynamic registration - */ - dynamicRegistration?: boolean; - }; - profiler?: { - /** - * Whether the profiler support dynamic registration - */ - dynamicRegistration?: boolean; - }; - capabilities?: { - /** - * - */ - dynamicRegistration?: boolean; - }; - metadata?: { - /** - * - */ - dynamicRegistration?: boolean; - }; - adminServices?: { - /** - * - */ - dynamicRegistration?: boolean; - }; -} - -export interface ClientCapabilities extends VSClientCapabilities { - connection?: ConnectionClientCapabilities; -} - -//---- Refresh IntelliSense ---------------------------------------- - -/** - * Notification sent when the an IntelliSense cache invalidation is requested - */ -export namespace RebuildIntelliSenseNotification { - export const type = new NotificationType('textDocument/rebuildIntelliSense'); -} - -/** - * Rebuild IntelliSense notification parameters - */ -export class RebuildIntelliSenseParams { - /** - * URI identifying the text document - */ - public ownerUri: string; -} - - -// ------------------------------- < Connect Request > ---------------------------------------------- - -/** - * Connection request message format - */ -export interface ConnectParams { - /** - * URI identifying the owner of the connection - */ - ownerUri: string; - - /** - * Details for creating the connection - */ - connection: types.ConnectionDetails; -} - - -// Connection request message callback declaration -export namespace ConnectionRequest { - export const type = new RequestType('connection/connect'); -} - -// ------------------------------- < Connection Complete Event > ------------------------------------ - - -export namespace ConnectionCompleteNotification { - export const type = new NotificationType('connection/complete'); -} - -// ------------------------------- < Connection Changed Event > ------------------------------------- - -/** - * Parameters for the ConnectionChanged notification. - */ -export class ConnectionChangedParams { - /** - * Owner URI of the connection that changed. - */ - public ownerUri: string; - - /** - * Summary of details containing any connection changes. - */ - public connection: types.ConnectionSummary; -} - -/** - * Connection changed event callback declaration. - */ -export namespace ConnectionChangedNotification { - export const type = new NotificationType('connection/connectionchanged'); -} - -// ------------------------------- < Disconnect Request > ------------------------------------------- - -// Disconnect request message format -export class DisconnectParams { - // URI identifying the owner of the connection - public ownerUri: string; -} - -// Disconnect response format -export type DisconnectResult = boolean; - -// Disconnect request message callback declaration -export namespace DisconnectRequest { - export const type = new RequestType('connection/disconnect'); -} - -// ------------------------------- < Cancel Connect Request > --------------------------------------- - - -// Cancel connect request message format -export class CancelConnectParams { - /** - * URI identifying the owner of the connection - */ - public ownerUri: string; -} - -// Cancel connect response format. -export type CancelConnectResult = boolean; - -// Cancel connect request message callback declaration -export namespace CancelConnectRequest { - export const type = new RequestType('connection/cancelconnect'); -} - -// ------------------------------- < Change Database Request > ------------------------------------- - -export class ChangeDatabaseParams { - public ownerUri: string; - public newDatabase: string; -} - -export namespace ChangeDatabaseRequest { - export const type = new RequestType('connection/changedatabase'); -} - -// ------------------------------- < List Databases Request > --------------------------------------- - -// List databases request format -export class ListDatabasesParams { - // Connection information to use for querying master - public ownerUri: string; -} - -// List databases request callback declaration -export namespace ListDatabasesRequest { - export const type = new RequestType('connection/listdatabases'); -} - -// Language Flavor Changed ================================================================================ - -/** - * Parameters to provide when sending a language flavor changed notification - */ -export interface DidChangeLanguageFlavorParams { - uri: string; - language: string; - flavor: string; -} - -// ------------------------------- < Language Flavor Changed Notification > --------------------------------------- -export namespace LanguageFlavorChangedNotification { - export const type = new NotificationType('connection/languageflavorchanged'); -} - -// ------------------------------- < Table Metadata Request > --------------------------------------- - -// Table metadata request format -export class TableMetadataParams { - // Connection information to use for querying master - public ownerUri: string; - - public schema: string; - - public objectName: string; -} - -// Table metadata response format -export class TableMetadataResult { - public columns: data.ColumnMetadata[]; -} - -// Table metadata request callback declaration -export namespace TableMetadataRequest { - export const type = new RequestType('metadata/table'); -} - -// ------------------------------- < View Metadata Request > --------------------------------------- - -// Table metadata request callback declaration -export namespace ViewMetadataRequest { - export const type = new RequestType('metadata/view'); -} - -/** - * Event sent when the language service is finished updating after a connection - */ -export namespace IntelliSenseReadyNotification { - export const type = new NotificationType('textDocument/intelliSenseReady'); -} - -// ------------------------------- < Capabilties Discovery Event > ------------------------------------ - -export class CapabiltiesDiscoveryParams { - public hostName: string; - - public hostVersion: string; -} - -export namespace CapabiltiesDiscoveryRequest { - export const type = new RequestType('capabilities/list'); -} - -// Query Execution ================================================================================ -// ------------------------------- < Query Cancellation Request > ------------------------------------ -export namespace QueryCancelRequest { - export const type = new RequestType('query/cancel'); -} - -export interface QueryCancelParams { - ownerUri: string; -} - -// ------------------------------- < Query Dispose Request > ------------------------------------ - -export namespace QueryDisposeRequest { - export const type = new RequestType('query/dispose'); -} - -/** - * Parameters to provide when disposing of a query - */ -export interface QueryDisposeParams { - ownerUri: string; -} - -/** - * Result received upon successful disposal of a query - */ -export interface QueryDisposeResult { -} - -// ------------------------------- < Query Execution Complete Notification > ------------------------------------ -export namespace QueryExecuteCompleteNotification { - export const type = new NotificationType('query/complete'); -} - -// ------------------------------- < Query Batch Start Notification > ------------------------------------ -export namespace QueryExecuteBatchStartNotification { - export const type = new NotificationType('query/batchStart'); -} - -// ------------------------------- < Query Batch Complete Notification > ------------------------------------ -export namespace QueryExecuteBatchCompleteNotification { - export const type = new NotificationType('query/batchComplete'); -} - -// ------------------------------- < Query ResultSet Complete Notification > ------------------------------------ -export namespace QueryExecuteResultSetCompleteNotification { - export const type = new NotificationType('query/resultSetComplete'); -} - -// ------------------------------- < Query Message Notification > ------------------------------------ -export namespace QueryExecuteMessageNotification { - export const type = new NotificationType('query/message'); -} - -// ------------------------------- < Query Execution Request > ------------------------------------ -export namespace QueryExecuteRequest { - export const type = new RequestType('query/executeDocumentSelection'); -} - -export interface QueryExecuteResult { } - -// ------------------------------- < Query Results Request > ------------------------------------ -export namespace QueryExecuteSubsetRequest { - export const type = new RequestType('query/subset'); -} - -export interface ResultSetSubset { - rowCount: number; - rows: data.DbCellValue[][]; -} - -// ------------------------------- < Execute Statement > ------------------------------------ -export interface QueryExecuteStatementParams { - ownerUri: string; - line: number; - column: number; -} - -export namespace QueryExecuteStatementRequest { - export const type = new RequestType('query/executedocumentstatement'); -} - -// --------------------------------- < Save Results as CSV Request > ------------------------------------------ - -// save results in csv format -export namespace SaveResultsAsCsvRequest { - export const type = new RequestType('query/saveCsv'); -} -// --------------------------------- ------------------------------------------ - -// --------------------------------- < Save Results as JSON Request > ------------------------------------------ -// save results in json format -export namespace SaveResultsAsJsonRequest { - export const type = new RequestType('query/saveJson'); -} -// --------------------------------- ------------------------------------------ - -// --------------------------------- < Save Results as Excel Request > ------------------------------------------ -// save results in Excel format -export namespace SaveResultsAsExcelRequest { - export const type = new RequestType('query/saveExcel'); -} -// --------------------------------- ------------------------------------------ - -// ------------------------------- < Execute and Return > ----------------------------------- - -export namespace SimpleExecuteRequest { - export const type = new RequestType('query/simpleexecute'); -} - -// ------------------------------- < Execute String > ------------------------------------ -export interface QueryExecuteStringParams { - query: string; - ownerUri: string; -} - -export namespace QueryExecuteStringRequest { - export const type = new RequestType('query/executeString'); -} - -// ------------------------------- < Metadata Events > ------------------------------------ - -export namespace MetadataQueryRequest { - export const type = new RequestType('metadata/list'); -} - -// ------------------------------- < Scripting Events > ------------------------------------ - -export namespace ScriptingRequest { - export const type = new RequestType('scripting/script'); -} - -// ------------------------------- < Scripting Complete Event > ------------------------------------ - -export namespace ScriptingCompleteNotification { - export const type = new NotificationType('scripting/scriptComplete'); -} - - -// Edit Data ====================================================================================== -// Shared Interfaces -------------------------------------------------------------------------- -export interface EditSessionOperationParams { - ownerUri: string; -} - -export interface EditRowOperationParams extends EditSessionOperationParams { - rowId: number; -} - -export interface EditCellResult { - cell: data.EditCell; - isRowDirty: boolean; -} - -// edit/commit -------------------------------------------------------------------------------- -export namespace EditCommitRequest { - export const type = new RequestType('edit/commit'); -} - -export interface EditCommitResult { } - -// edit/createRow ----------------------------------------------------------------------------- -export namespace EditCreateRowRequest { - export const type = new RequestType('edit/createRow'); -} - -// edit/deleteRow ----------------------------------------------------------------------------- -export namespace EditDeleteRowRequest { - export const type = new RequestType('edit/deleteRow'); -} - -export interface EditDeleteRowResult { } - -// edit/dispose ------------------------------------------------------------------------------- -export namespace EditDisposeRequest { - export const type = new RequestType('edit/dispose'); -} - -export interface EditDisposeResult { } - -// edit/initialize ---------------------------------------------------------------------------- -export namespace EditInitializeRequest { - export const type = new RequestType('edit/initialize'); -} - -export interface EditInitializeResult { } - -// edit/revertCell -------------------------------------------------------------------------------- -export namespace EditRevertCellRequest { - export const type = new RequestType('edit/revertCell'); -} - -// edit/revertRow ----------------------------------------------------------------------------- -export namespace EditRevertRowRequest { - export const type = new RequestType('edit/revertRow'); -} - -export interface EditRevertRowResult { } - -// edit/sessionReady Event -------------------------------------------------------------------- -export namespace EditSessionReadyNotification { - export const type = new NotificationType('edit/sessionReady'); -} - -// edit/updateCell ---------------------------------------------------------------------------- -export namespace EditUpdateCellRequest { - export const type = new RequestType('edit/updateCell'); -} - -// edit/subset ------------------------------------------------------------------------------------ -export namespace EditSubsetRequest { - export const type = new RequestType('edit/subset'); -} - -// ------------------------------- < Object Explorer Events > ------------------------------------ - -export namespace ObjectExplorerCreateSessionRequest { - export const type = new RequestType('objectexplorer/createsession'); -} - -export namespace ObjectExplorerExpandRequest { - export const type = new RequestType('objectexplorer/expand'); -} - -export namespace ObjectExplorerRefreshRequest { - export const type = new RequestType('objectexplorer/refresh'); -} - -export namespace ObjectExplorerCloseSessionRequest { - export const type = new RequestType('objectexplorer/closesession'); -} - -// ------------------------------- < Object Explorer Events > ------------------------------------ - - -export namespace ObjectExplorerCreateSessionCompleteNotification { - export const type = new NotificationType('objectexplorer/sessioncreated'); -} - -export namespace ObjectExplorerExpandCompleteNotification { - export const type = new NotificationType('objectexplorer/expandCompleted'); -} - -// ------------------------------- < Task Service Events > ------------------------------------ - -export namespace ListTasksRequest { - export const type = new RequestType('tasks/listtasks'); -} - -export namespace CancelTaskRequest { - export const type = new RequestType('tasks/canceltask'); -} - -// ------------------------------- < Task Service Events > ------------------------------------ - - -export namespace TaskStatusChangedNotification { - export const type = new NotificationType('tasks/statuschanged'); -} - -export namespace TaskCreatedNotification { - export const type = new NotificationType('tasks/newtaskcreated'); -} - -// ------------------------------- < Admin Service Events > ------------------------------------ - -export namespace CreateDatabaseRequest { - export const type = new RequestType('admin/createdatabase'); -} - -export namespace DefaultDatabaseInfoRequest { - export const type = new RequestType('admin/defaultdatabaseinfo'); -} - -export namespace CreateLoginRequest { - export const type = new RequestType('admin/createlogin'); -} - -export namespace GetDatabaseInfoRequest { - export const type = new RequestType('admin/getdatabaseinfo'); -} - -// ------------------------------- < Disaster Recovery Events > ------------------------------------ - -export namespace BackupRequest { - export const type = new RequestType('backup/backup'); -} - -export namespace BackupConfigInfoRequest { - export const type = new RequestType('backup/backupconfiginfo'); -} - -export namespace RestoreRequest { - export const type = new RequestType('restore/restore'); -} - -export namespace RestorePlanRequest { - export const type = new RequestType('restore/restoreplan'); -} - -export namespace CancelRestorePlanRequest { - export const type = new RequestType('restore/cancelrestoreplan'); -} - -export namespace RestoreConfigInfoRequest { - export const type = new RequestType('restore/restoreconfiginfo'); -} - -// ------------------------------- < File Browser Events > ------------------------------------ - -export namespace FileBrowserOpenRequest { - export const type = new RequestType('filebrowser/open'); -} - -export namespace FileBrowserOpenedNotification { - export const type = new NotificationType('filebrowser/opencomplete'); -} - -export namespace FileBrowserExpandRequest { - export const type = new RequestType('filebrowser/expand'); -} - -export namespace FileBrowserExpandedNotification { - export const type = new NotificationType('filebrowser/expandcomplete'); -} - -export namespace FileBrowserValidateRequest { - export const type = new RequestType('filebrowser/validate'); -} - -export namespace FileBrowserValidatedNotification { - export const type = new NotificationType('filebrowser/validatecomplete'); -} - -export namespace FileBrowserCloseRequest { - export const type = new RequestType('filebrowser/close'); -} - - -// ------------------------------- < Profiler Events > ------------------------------------ - -export namespace StartProfilingRequest { - export const type = new RequestType('profiler/start'); -} - -export namespace StopProfilingRequest { - export const type = new RequestType('profiler/stop'); -} - -export namespace ProfilerEventsAvailableNotification { - export const type = new NotificationType('profiler/eventsavailable'); -} diff --git a/dataprotocol-client/src/protocolConverter.ts b/dataprotocol-client/src/protocolConverter.ts deleted file mode 100644 index 7e4b877974..0000000000 --- a/dataprotocol-client/src/protocolConverter.ts +++ /dev/null @@ -1,198 +0,0 @@ -import * as data from 'data'; -import * as types from './types'; - -export interface Ip2c { - asProviderMetadata(params: types.MetadataQueryResult): data.ProviderMetadata; - - asServerCapabilities(result: types.CapabiltiesDiscoveryResult): data.DataProtocolServerCapabilities; -} - -function asProviderMetadata(params: types.MetadataQueryResult): data.ProviderMetadata { - let objectMetadata: data.ObjectMetadata[] = []; - - if (!params.metadata || !params.metadata.length) { - return { - objectMetadata - }; - } - - for (let i = 0; i < params.metadata.length; ++i) { - let metadata: data.ObjectMetadata = params.metadata[i]; - - let metadataTypeName: string; - if (metadata.metadataTypeName) { - // Read from the provider since it's defined - metadataTypeName = metadata.metadataTypeName; - } else if (metadata.metadataType === types.MetadataType.View) { - metadataTypeName = 'View'; - } else if (metadata.metadataType === types.MetadataType.SProc) { - metadataTypeName = 'StoredProcedure'; - } else if (metadata.metadataType === types.MetadataType.Function) { - metadataTypeName = 'Function'; - } else { - metadataTypeName = 'Table'; - } - - objectMetadata.push({ - metadataTypeName, - metadataType: metadata.metadataType, - name: metadata.name, - schema: metadata.schema, - urn: metadata.urn - }); - } - - return { - objectMetadata - }; -} - -function asServiceOptionType(val: string): data.ServiceOptionType { - if (val === 'string') { - return data.ServiceOptionType.string; - } else if (val === 'multistring') { - return data.ServiceOptionType.multistring; - } else if (val === 'password') { - return data.ServiceOptionType.password; - } else if (val === 'number') { - return data.ServiceOptionType.number; - } else if (val === 'boolean') { - return data.ServiceOptionType.boolean; - } else if (val === 'category') { - return data.ServiceOptionType.category; - } else if (val === 'object') { - return data.ServiceOptionType.object; - } - - // assume string for unknown value types - return data.ServiceOptionType.string; -} - - - -function buildServiceOption(srcOption: types.ServiceOption): data.ServiceOption { - return { - name: srcOption.name, - displayName: srcOption.displayName ? srcOption.displayName : srcOption.name, - description: srcOption.description, - groupName: srcOption.groupName, - defaultValue: srcOption.defaultValue, - categoryValues: srcOption.categoryValues, - isRequired: srcOption.isRequired, - isArray: srcOption.isArray, - objectType: srcOption.objectType, - valueType: asServiceOptionType(srcOption.valueType), - }; -} - - -function asServerCapabilities(result: types.CapabiltiesDiscoveryResult): data.DataProtocolServerCapabilities { - let capabilities: data.DataProtocolServerCapabilities = { - protocolVersion: result.capabilities.protocolVersion, - providerName: result.capabilities.providerName, - providerDisplayName: result.capabilities.providerDisplayName, - connectionProvider: undefined, - adminServicesProvider: undefined, - features: [] - }; - - if (result.capabilities.adminServicesProvider) { - capabilities.adminServicesProvider = { - databaseInfoOptions: new Array(), - databaseFileInfoOptions: new Array(), - fileGroupInfoOptions: new Array() - }; - - if (result.capabilities.adminServicesProvider.databaseInfoOptions - && result.capabilities.adminServicesProvider.databaseInfoOptions.length > 0) { - for (let i = 0; i < result.capabilities.adminServicesProvider.databaseInfoOptions.length; ++i) { - let srcOption: any = result.capabilities.adminServicesProvider.databaseInfoOptions[i]; - let descOption: data.ServiceOption = buildServiceOption(srcOption); - capabilities.adminServicesProvider.databaseInfoOptions.push(descOption); - } - } - - if (result.capabilities.adminServicesProvider.databaseFileInfoOptions - && result.capabilities.adminServicesProvider.databaseFileInfoOptions.length > 0) { - for (let i = 0; i < result.capabilities.adminServicesProvider.databaseFileInfoOptions.length; ++i) { - //let srcOption: types.ServiceOption = result.capabilities.adminServicesProvider.databaseFileInfoOptions[i]; - let srcOption: any = result.capabilities.adminServicesProvider.databaseFileInfoOptions[i]; - let descOption: data.ServiceOption = buildServiceOption(srcOption); - capabilities.adminServicesProvider.databaseFileInfoOptions.push(descOption); - } - } - - if (result.capabilities.adminServicesProvider.fileGroupInfoOptions - && result.capabilities.adminServicesProvider.fileGroupInfoOptions.length > 0) { - for (let i = 0; i < result.capabilities.adminServicesProvider.fileGroupInfoOptions.length; ++i) { - //let srcOption: types.ServiceOption = result.capabilities.adminServicesProvider.fileGroupInfoOptions[i]; - let srcOption: any = result.capabilities.adminServicesProvider.fileGroupInfoOptions[i]; - let descOption: data.ServiceOption = buildServiceOption(srcOption); - capabilities.adminServicesProvider.fileGroupInfoOptions.push(descOption); - } - } - } - - if (result.capabilities.connectionProvider - && result.capabilities.connectionProvider.options - && result.capabilities.connectionProvider.options.length > 0) { - capabilities.connectionProvider = { - options: new Array() - }; - for (let i = 0; i < result.capabilities.connectionProvider.options.length; ++i) { - let srcOption: any = result.capabilities.connectionProvider.options[i]; - let descOption: data.ConnectionOption = { - name: srcOption.name, - displayName: srcOption.displayName ? srcOption.displayName : srcOption.name, - description: srcOption.description, - groupName: srcOption.groupName, - defaultValue: srcOption.defaultValue, - categoryValues: srcOption.categoryValues, - isIdentity: srcOption.isIdentity, - isRequired: srcOption.isRequired, - valueType: asServiceOptionType(srcOption.valueType), - specialValueType: undefined - }; - - if (srcOption.specialValueType === 'serverName') { - descOption.specialValueType = data.ConnectionOptionSpecialType.serverName; - } else if (srcOption.specialValueType === 'databaseName') { - descOption.specialValueType = data.ConnectionOptionSpecialType.databaseName; - } else if (srcOption.specialValueType === 'authType') { - descOption.specialValueType = data.ConnectionOptionSpecialType.authType; - } else if (srcOption.specialValueType === 'userName') { - descOption.specialValueType = data.ConnectionOptionSpecialType.userName; - } else if (srcOption.specialValueType === 'password') { - descOption.specialValueType = data.ConnectionOptionSpecialType.password; - } else if (srcOption.specialValueType === 'appName') { - descOption.specialValueType = data.ConnectionOptionSpecialType.appName; - } - - capabilities.connectionProvider.options.push(descOption); - } - } - - if (result.capabilities.features - && result.capabilities.features.length > 0) { - result.capabilities.features.forEach(feature => { - let descFeature: data.FeatureMetadataProvider = { - enabled: feature.enabled, - featureName: feature.featureName, - optionsMetadata: [] - }; - capabilities.features.push(descFeature); - if (feature.optionsMetadata) { - feature.optionsMetadata.forEach(srcOption => { - descFeature.optionsMetadata.push(buildServiceOption(srcOption)); - }); - } - }); - } - - return capabilities; -} - -export const p2c: Ip2c = { - asProviderMetadata, - asServerCapabilities -}; diff --git a/dataprotocol-client/src/tsconfig.json b/dataprotocol-client/src/tsconfig.json deleted file mode 100644 index cc92c023fc..0000000000 --- a/dataprotocol-client/src/tsconfig.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "compilerOptions": { - "target": "es6", - "module": "commonjs", - "moduleResolution": "node", - "sourceMap": false, - "inlineSources": false, - "declaration": true, - "stripInternal": true, - "outDir": "../lib" - } -} \ No newline at end of file diff --git a/dataprotocol-client/src/types.ts b/dataprotocol-client/src/types.ts deleted file mode 100644 index 0a370bc4c9..0000000000 --- a/dataprotocol-client/src/types.ts +++ /dev/null @@ -1,939 +0,0 @@ -import * as data from 'data'; - -export interface CreateSessionResponse { - sessionId: string; -} - -export interface SessionCreatedParameters { - success: boolean; - sessionId: string; - rootNode: NodeInfo; - errorMessage: string; -} - -export interface ExpandResponse { - nodePath: string; - sessionId: string; - nodes: NodeInfo[]; - errorMessage: string; -} - -export interface NodeInfo { - nodePath: string; - nodeType: string; - nodeSubType: string; - nodeStatus: string; - label: string; - isLeaf: boolean; - metadata: data.ObjectMetadata; - errorMessage: string; -} - -export interface ExpandParams { - sessionId: string; - nodePath: string; -} - -export interface CloseSessionParams { - sessionId: string; -} - -export interface CloseSessionResponse { - success: boolean; - sessionId: string; -} - -export interface CategoryValue { - displayName: string; - - name: string; -} - -export interface ServiceOption { - name: string; - - displayName: string; - - description: string; - - groupName: string; - - valueType: string; - - defaultValue: string; - - objectType: string; - - categoryValues: CategoryValue[]; - - isRequired: boolean; - - isArray: boolean; -} - -export interface ConnectionOption { - name: string; - - displayName: string; - - description: string; - - groupName: string; - - valueType: string; - - defaultValue: string; - - objectType: string; - - categoryValues: CategoryValue[]; - - specialValueType: string; - - isIdentity: boolean; - - isRequired: boolean; - - isArray: boolean; -} - -export interface ConnectionProviderOptions { - options: ConnectionOption[]; -} - -export interface AdminServicesProviderOptions { - databaseInfoOptions: ServiceOption[]; - - databaseFileInfoOptions: ServiceOption[]; - - fileGroupInfoOptions: ServiceOption[]; -} - -export interface FeatureMetadataProvider { - enabled: boolean; - featureName: string; - optionsMetadata: ServiceOption[]; -} - -/** - * Parameters to initialize a connection to a database - */ -export interface ConnectionDetails { - - /** - * connection options - */ - options: {}; -} - -/** - * Summary that identifies a unique database connection. - */ -export class ConnectionSummary { - /** - * server name - */ - public serverName: string; - - /** - * database name - */ - public databaseName: string; - - /** - * user name - */ - public userName: string; -} - -/** - * Connection response format. - */ -export class ConnectionCompleteParams { - /** - * URI identifying the owner of the connection - */ - public ownerUri: string; - - /** - * connection id returned from service host. - */ - public connectionId: string; - - /** - * any diagnostic messages return from the service host. - */ - public messages: string; - - /** - * Error message returned from the engine, if any. - */ - public errorMessage: string; - - /** - * Error number returned from the engine, if any. - */ - public errorNumber: number; - - /** - * Information about the connected server. - */ - public serverInfo: ServerInfo; - - /** - * information about the actual connection established - */ - public connectionSummary: ConnectionSummary; -} - -/** - * Update event parameters - */ -export class IntelliSenseReadyParams { - /** - * URI identifying the text document - */ - public ownerUri: string; -} - -/** - * Information about a SQL Server instance. - */ -export class ServerInfo { - /** - * The major version of the SQL Server instance. - */ - public serverMajorVersion: number; - - /** - * The minor version of the SQL Server instance. - */ - public serverMinorVersion: number; - - /** - * The build of the SQL Server instance. - */ - public serverReleaseVersion: number; - - /** - * The ID of the engine edition of the SQL Server instance. - */ - public engineEditionId: number; - - /** - * String containing the full server version text. - */ - public serverVersion: string; - - /** - * String describing the product level of the server. - */ - public serverLevel: string; - - /** - * The edition of the SQL Server instance. - */ - public serverEdition: string; - - /** - * Whether the SQL Server instance is running in the cloud (Azure) or not. - */ - public isCloud: boolean; - - /** - * The version of Azure that the SQL Server instance is running on, if applicable. - */ - public azureVersion: number; - - /** - * The Operating System version string of the machine running the SQL Server instance. - */ - public osVersion: string; -} - -export class CapabiltiesDiscoveryResult { - public capabilities: data.DataProtocolServerCapabilities; -} - -// Task Services types - -export enum TaskStatus { - notStarted = 0, - inProgress = 1, - succeeded = 2, - succeededWithWarning = 3, - failed = 4, - canceled = 5 -} - -// Admin Services types - -export interface CreateDatabaseParams { - ownerUri: string; - - databaseInfo: data.DatabaseInfo; -} - -export interface DefaultDatabaseInfoParams { - ownerUri: string; -} - -export interface DefaultDatabaseInfoResponse { - defaultDatabaseInfo: data.DatabaseInfo; -} - -export interface GetDatabaseInfoResponse { - databaseInfo: data.DatabaseInfo; -} - -export interface GetDatabaseInfoParams { - ownerUri: string; -} - -export interface BackupConfigInfoResponse { - backupConfigInfo: data.BackupConfigInfo; -} - -export interface CreateLoginParams { - ownerUri: string; - - loginInfo: data.LoginInfo; -} - -// Disaster Recovery types - -export interface BackupInfo { - ownerUri: string; - - databaseName: string; - - backupType: number; - - backupComponent: number; - - backupDeviceType: number; - - selectedFiles: string; - - backupsetName: string; - - selectedFileGroup: { [path: string]: string }; - - // List of {key: backup path, value: device type} - backupPathDevices: { [path: string]: number }; - - backupPathList: [string]; - - isCopyOnly: boolean; - - formatMedia: boolean; - - initialize: boolean; - - skipTapeHeader: boolean; - - mediaName: string; - - mediaDescription: string; - - checksum: boolean; - - continueAfterError: boolean; - - logTruncation: boolean; - - tailLogBackup: boolean; - - retainDays: number; - - compressionOption: number; - - verifyBackupRequired: boolean; - - encryptionAlgorithm: number; - - encryptorType: number; - - encryptorName: string; -} - -export interface BackupParams { - ownerUri: string; - - backupInfo: BackupInfo; - - taskExecutionMode: data.TaskExecutionMode; -} - -export interface RestoreParams { - ownerUri: string; - options: {}; - taskExecutionMode: data.TaskExecutionMode; -} - -export interface RestoreConfigInfoRequestParams { - ownerUri: string; -} - -export interface RestoreConfigInfoResponse { - configInfo: { [key: string]: any }; -} - -export interface RestoreDatabaseFileInfo { - fileType: string; - - logicalFileName: string; - - originalFileName: string; - - restoreAsFileName: string; -} - -export interface FileBrowserOpenParams { - ownerUri: string; - expandPath: string; - fileFilters: string[]; - changeFilter: boolean; -} - -export interface FileTreeNode { - children: FileTreeNode[]; - isExpanded: boolean; - isFile: boolean; - name: string; - fullPath: string; -} - -export interface FileTree { - rootNode: FileTreeNode; - selectedNode: FileTreeNode; -} - -export interface FileBrowserExpandParams { - ownerUri: string; - expandPath: string; -} - -export interface FileBrowserValidateParams { - ownerUri: string; - serviceType: string; - selectedFiles: string[]; -} - -export interface FileBrowserCloseParams { - ownerUri: string; -} - -export interface DatabaseFileInfo { - properties: LocalizedPropertyInfo[]; - id: string; - isSelected: boolean; -} - -export interface LocalizedPropertyInfo { - propertyName: string; - propertyValue: string; - propertyDisplayName: string; - propertyValueDisplayName: string; -} - -export interface RestorePlanDetailInfo { - name: string; - currentValue: any; - isReadOnly: boolean; - isVisible: boolean; - defaultValue: any; - -} - -// Query Execution types -export interface ResultSetSummary { - id: number; - batchId: number; - rowCount: number; - columnInfo: IDbColumn[]; -} - -export interface BatchSummary { - hasError: boolean; - id: number; - selection: data.ISelectionData; - resultSetSummaries: ResultSetSummary[]; - executionElapsed: string; - executionEnd: string; - executionStart: string; -} - -export interface IDbColumn { - allowDBNull?: boolean; - baseCatalogName: string; - baseColumnName: string; - baseSchemaName: string; - baseServerName: string; - baseTableName: string; - columnName: string; - columnOrdinal?: number; - columnSize?: number; - isAliased?: boolean; - isAutoIncrement?: boolean; - isExpression?: boolean; - isHidden?: boolean; - isIdentity?: boolean; - isKey?: boolean; - isBytes?: boolean; - isChars?: boolean; - isSqlVariant?: boolean; - isUdt?: boolean; - dataType: string; - isXml?: boolean; - isJson?: boolean; - isLong?: boolean; - isReadOnly?: boolean; - isUnique?: boolean; - numericPrecision?: number; - numericScale?: number; - udtAssemblyQualifiedName: string; - dataTypeName: string; -} - -export interface IGridResultSet { - columns: IDbColumn[]; - rowsUri: string; - numberOfRows: number; -} - -export interface IResultMessage { - batchId?: number; - isError: boolean; - time: string; - message: string; -} - -export interface ExecutionPlanOptions { - includeEstimatedExecutionPlanXml?: boolean; - includeActualExecutionPlanXml?: boolean; -} - -export interface QueryExecuteParams { - ownerUri: string; - querySelection: data.ISelectionData; - executionPlanOptions?: ExecutionPlanOptions; -} - -export enum EditRowState { - clean = 0, - dirtyInsert = 1, - dirtyDelete = 2, - dirtyUpdate = 3 -} - -export interface EditRow { - cells: data.DbCellValue[]; - id: number; - isDirty: boolean; - state: EditRowState; -} - -export class MetadataQueryParams { - /** - * Owner URI of the connection that changed. - */ - public ownerUri: string; -} - -/** - * Used as value version of data.MetadataType THESE SHOULD MIRROR - */ -export enum MetadataType { - Table = 0, - View = 1, - SProc = 2, - Function = 3 -} - -export class MetadataQueryResult { - public metadata: data.ObjectMetadata[]; -} - -export interface ScriptOptions { - /** - * Generate ANSI padding statements - */ - scriptANSIPadding?: boolean; - - /** - * Append the generated script to a file - */ - appendToFile?: boolean; - - /** - * Continue to script if an error occurs. Otherwise, stop. - */ - continueScriptingOnError?: boolean; - - /** - * Convert user-defined data types to base types. - */ - convertUDDTToBaseType?: boolean; - - /** - * Generate script for dependent objects for each object scripted. - */ - generateScriptForDependentObjects?: boolean; - - /** - * Include descriptive headers for each object generated. - */ - includeDescriptiveHeaders?: boolean; - - /** - * Check that an object with the given name exists before dropping or altering or that an object with the given name does not exist before creating. - */ - includeIfNotExists?: boolean; - - /** - * Script options to set vardecimal storage format. - */ - includeVarDecimal?: boolean; - - /** - * Include system generated constraint names to enforce declarative referential integrity. - */ - scriptDRIIncludeSystemNames?: boolean; - - /** - * Include statements in the script that are not supported on the specified SQL Server database engine type. - */ - includeUnsupportedStatements?: boolean; - - /** - * Prefix object names with the object schema. - */ - schemaQualify?: boolean; - - /** - * Script options to set bindings option. - */ - bindings?: boolean; - - /** - * Script the objects that use collation. - */ - collation?: boolean; - - /** - * Script the default values. - */ - default?: boolean; - - /** - * Script Object CREATE/DROP statements. - */ - scriptCreateDrop: string; - - /** - * Script the Extended Properties for each object scripted. - */ - scriptExtendedProperties?: boolean; - - /** - * Script only features compatible with the specified version of SQL Server. - */ - scriptCompatibilityOption: string; - - /** - * Script only features compatible with the specified SQL Server database engine type. - */ - targetDatabaseEngineType: string; - - /** - * Script only features compatible with the specified SQL Server database engine edition. - */ - targetDatabaseEngineEdition: string; - - /** - * Script all logins available on the server. Passwords will not be scripted. - */ - scriptLogins?: boolean; - - /** - * Generate object-level permissions. - */ - scriptObjectLevelPermissions?: boolean; - - /** - * Script owner for the objects. - */ - scriptOwner?: boolean; - - /** - * Script statistics, and optionally include histograms, for each selected table or view. - */ - scriptStatistics: string; - - /** - * Generate USE DATABASE statement. - */ - scripUseDatabase?: boolean; - - /** - * Generate script that contains schema only or schema and data. - */ - typeOfDataToScript: string; - - /** - * Scripts the change tracking information. - */ - scriptChangeTracking?: boolean; - - /** - * Script the check constraints for each table or view scripted. - */ - scriptCheckConstraints?: boolean; - - /** - * Scripts the data compression information. - */ - scriptDataCompressionOptions?: boolean; - - /** - * Script the foreign keys for each table scripted. - */ - scriptForeignKeys?: boolean; - - /** - * Script the full-text indexes for each table or indexed view scripted. - */ - scriptFullTextIndexes?: boolean; - - /** - * Script the indexes (including XML and clustered indexes) for each table or indexed view scripted. - */ - scriptIndexes?: boolean; - - /** - * Script the primary keys for each table or view scripted - */ - scriptPrimaryKeys?: boolean; - - /** - * Script the triggers for each table or view scripted - */ - scriptTriggers?: boolean; - - /** - * Script the unique keys for each table or view scripted. - */ - uniqueKeys?: boolean; -} - -export interface ScriptingObject { - /** - * The database object type - */ - type: string; - - /** - * The schema of the database object - */ - schema: string; - - /** - * The database object name - */ - name: string; -} - -export interface ScriptingParams { - /** - * File path used when writing out the script. - */ - filePath: string; - - /** - * Whether scripting to a single file or file per object. - */ - scriptDestination: string; - - /** - * Connection string of the target database the scripting operation will run against. - */ - connectionString: string; - - /** - * A list of scripting objects to script - */ - scriptingObjects: ScriptingObject[]; - - /** - * A list of scripting object which specify the include criteria of objects to script. - */ - includeObjectCriteria: ScriptingObject[]; - - /** - * A list of scripting object which specify the exclude criteria of objects to not script. - */ - excludeObjectCriteria: ScriptingObject[]; - - /** - * A list of schema name of objects to script. - */ - includeSchemas: string[]; - - /** - * A list of schema name of objects to not script. - */ - excludeSchemas: string[]; - - /** - * A list of type name of objects to script. - */ - includeTypes: string[]; - - /** - * A list of type name of objects to not script. - */ - excludeTypes: string[]; - - /** - * Scripting options for the ScriptingParams - */ - scriptOptions: ScriptOptions; - - /** - * Connection details for the ScriptingParams - */ - connectionDetails: ConnectionDetails; - - /** - * Owner URI of the connection - */ - ownerURI: string; - - /** - * Whether the scripting operation is for - * select script statements - */ - selectScript: boolean; - - /** - * Operation associated with the script request - */ - operation: data.ScriptOperation; -} - -export interface ScriptingCompleteParams { - /** - * The error details for an error that occurred during the scripting operation. - */ - errorDetails: string; - - /** - * The error message for an error that occurred during the scripting operation. - */ - errorMessage: string; - - /** - * A value to indicate an error occurred during the scripting operation. - */ - hasError: boolean; - - /** - * A value to indicate the scripting operation was canceled. - */ - canceled: boolean; - - /** - * A value to indicate the scripting operation successfully completed. - */ - success: boolean; -} - -export class TableMetadata { - - columns: data.ColumnMetadata[]; - -} - -/** - * Parameters to start a profiler session - */ -export interface StartProfilingParams { - /** - * Session Owner URI - */ - ownerUri: string; - - /** - * Session options - */ - options: {}; -} - -export interface StartProfilingResponse { - succeeded: string; - errorMessage: string; -} - -/** - * Parameters to start a profiler session - */ -export interface StopProfilingParams { - /** - * Session Owner URI - */ - ownerUri: string; -} - -export interface StopProfilingResponse { - succeeded: string; - errorMessage: string; -} - -/** - * Profiler Event - */ -export interface ProfilerEvent { - /** - * Event class name - */ - name: string; - - /** - * Event timestamp - */ - timestamp: string; - - /** - * Event values - */ - values: {}; -} - -/** - * Profiler events available notification parameters - */ -export interface ProfilerEventsAvailableParams { - /** - * Session owner URI - */ - ownerUri: string; - - /** - * New profiler events available - */ - events: ProfilerEvent[]; -} - -/** - * Used as value version of data.ScriptOperation THESE SHOULD BE THE SAME - */ -export enum ScriptOperation { - Select = 0, - Create = 1, - Insert = 2, - Update = 3, - Delete = 4, - Execute = 5, - Alter = 6 -} diff --git a/dataprotocol-client/src/typings/ref.d.ts b/dataprotocol-client/src/typings/ref.d.ts deleted file mode 100644 index 1c2a159cfc..0000000000 --- a/dataprotocol-client/src/typings/ref.d.ts +++ /dev/null @@ -1,2 +0,0 @@ - -/// diff --git a/dataprotocol-client/tsfmt.json b/dataprotocol-client/tsfmt.json deleted file mode 100644 index fffcf07c19..0000000000 --- a/dataprotocol-client/tsfmt.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "tabSize": 4, - "indentSize": 4, - "newLineCharacter": "\n", - "convertTabsToSpaces": false, - "insertSpaceAfterCommaDelimiter": true, - "insertSpaceAfterSemicolonInForStatements": true, - "insertSpaceBeforeAndAfterBinaryOperators": true, - "insertSpaceAfterKeywordsInControlFlowStatements": true, - "insertSpaceAfterFunctionKeywordForAnonymousFunctions": true, - "insertSpaceAfterOpeningAndBeforeClosingNonemptyParenthesis": false, - "insertSpaceAfterOpeningAndBeforeClosingNonemptyBrackets": false, - "insertSpaceAfterOpeningAndBeforeClosingTemplateStringBraces": false, - "insertSpaceBeforeFunctionParenthesis": false, - "placeOpenBraceOnNewLineForFunctions": false, - "placeOpenBraceOnNewLineForControlBlocks": false -} diff --git a/dataprotocol-client/yarn.lock b/dataprotocol-client/yarn.lock deleted file mode 100644 index e245dd24e8..0000000000 --- a/dataprotocol-client/yarn.lock +++ /dev/null @@ -1,1748 +0,0 @@ -# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. -# yarn lockfile v1 - - -ajv@^5.1.0: - version "5.5.2" - resolved "https://registry.yarnpkg.com/ajv/-/ajv-5.5.2.tgz#73b5eeca3fab653e3d3f9422b341ad42205dc965" - dependencies: - co "^4.6.0" - fast-deep-equal "^1.0.0" - fast-json-stable-stringify "^2.0.0" - json-schema-traverse "^0.3.0" - -ansi-cyan@^0.1.1: - version "0.1.1" - resolved "https://registry.yarnpkg.com/ansi-cyan/-/ansi-cyan-0.1.1.tgz#538ae528af8982f28ae30d86f2f17456d2609873" - dependencies: - ansi-wrap "0.1.0" - -ansi-gray@^0.1.1: - version "0.1.1" - resolved "https://registry.yarnpkg.com/ansi-gray/-/ansi-gray-0.1.1.tgz#2962cf54ec9792c48510a3deb524436861ef7251" - dependencies: - ansi-wrap "0.1.0" - -ansi-red@^0.1.1: - version "0.1.1" - resolved "https://registry.yarnpkg.com/ansi-red/-/ansi-red-0.1.1.tgz#8c638f9d1080800a353c9c28c8a81ca4705d946c" - dependencies: - ansi-wrap "0.1.0" - -ansi-regex@^2.0.0: - version "2.1.1" - resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-2.1.1.tgz#c3b33ab5ee360d86e0e628f0468ae7ef27d654df" - -ansi-styles@^2.2.1: - version "2.2.1" - resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-2.2.1.tgz#b432dd3358b634cf75e1e4664368240533c1ddbe" - -ansi-wrap@0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/ansi-wrap/-/ansi-wrap-0.1.0.tgz#a82250ddb0015e9a27ca82e82ea603bbfa45efaf" - -arr-diff@^1.0.1: - version "1.1.0" - resolved "https://registry.yarnpkg.com/arr-diff/-/arr-diff-1.1.0.tgz#687c32758163588fef7de7b36fabe495eb1a399a" - dependencies: - arr-flatten "^1.0.1" - array-slice "^0.2.3" - -arr-diff@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/arr-diff/-/arr-diff-2.0.0.tgz#8f3b827f955a8bd669697e4a4256ac3ceae356cf" - dependencies: - arr-flatten "^1.0.1" - -arr-flatten@^1.0.1: - version "1.1.0" - resolved "https://registry.yarnpkg.com/arr-flatten/-/arr-flatten-1.1.0.tgz#36048bbff4e7b47e136644316c99669ea5ae91f1" - -arr-union@^2.0.1: - version "2.1.0" - resolved "https://registry.yarnpkg.com/arr-union/-/arr-union-2.1.0.tgz#20f9eab5ec70f5c7d215b1077b1c39161d292c7d" - -array-differ@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/array-differ/-/array-differ-1.0.0.tgz#eff52e3758249d33be402b8bb8e564bb2b5d4031" - -array-slice@^0.2.3: - version "0.2.3" - resolved "https://registry.yarnpkg.com/array-slice/-/array-slice-0.2.3.tgz#dd3cfb80ed7973a75117cdac69b0b99ec86186f5" - -array-union@^1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/array-union/-/array-union-1.0.2.tgz#9a34410e4f4e3da23dea375be5be70f24778ec39" - dependencies: - array-uniq "^1.0.1" - -array-uniq@^1.0.1, array-uniq@^1.0.2: - version "1.0.3" - resolved "https://registry.yarnpkg.com/array-uniq/-/array-uniq-1.0.3.tgz#af6ac877a25cc7f74e058894753858dfdb24fdb6" - -array-unique@^0.2.1: - version "0.2.1" - resolved "https://registry.yarnpkg.com/array-unique/-/array-unique-0.2.1.tgz#a1d97ccafcbc2625cc70fadceb36a50c58b01a53" - -arrify@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/arrify/-/arrify-1.0.1.tgz#898508da2226f380df904728456849c1501a4b0d" - -asn1@~0.2.3: - version "0.2.3" - resolved "https://registry.yarnpkg.com/asn1/-/asn1-0.2.3.tgz#dac8787713c9966849fc8180777ebe9c1ddf3b86" - -assert-plus@1.0.0, assert-plus@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/assert-plus/-/assert-plus-1.0.0.tgz#f12e0f3c5d77b0b1cdd9146942e4e96c1e4dd525" - -assert-plus@^0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/assert-plus/-/assert-plus-0.2.0.tgz#d74e1b87e7affc0db8aadb7021f3fe48101ab234" - -asynckit@^0.4.0: - version "0.4.0" - resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79" - -aws-sign2@~0.6.0: - version "0.6.0" - resolved "https://registry.yarnpkg.com/aws-sign2/-/aws-sign2-0.6.0.tgz#14342dd38dbcc94d0e5b87d763cd63612c0e794f" - -aws-sign2@~0.7.0: - version "0.7.0" - resolved "https://registry.yarnpkg.com/aws-sign2/-/aws-sign2-0.7.0.tgz#b46e890934a9591f2d2f6f86d7e6a9f1b3fe76a8" - -aws4@^1.2.1, aws4@^1.6.0: - version "1.6.0" - resolved "https://registry.yarnpkg.com/aws4/-/aws4-1.6.0.tgz#83ef5ca860b2b32e4a0deedee8c771b9db57471e" - -balanced-match@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.0.tgz#89b4d199ab2bee49de164ea02b89ce462d71b767" - -bcrypt-pbkdf@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.1.tgz#63bc5dcb61331b92bc05fd528953c33462a06f8d" - dependencies: - tweetnacl "^0.14.3" - -beeper@^1.0.0: - version "1.1.1" - resolved "https://registry.yarnpkg.com/beeper/-/beeper-1.1.1.tgz#e6d5ea8c5dad001304a70b22638447f69cb2f809" - -block-stream@*: - version "0.0.9" - resolved "https://registry.yarnpkg.com/block-stream/-/block-stream-0.0.9.tgz#13ebfe778a03205cfe03751481ebb4b3300c126a" - dependencies: - inherits "~2.0.0" - -boom@2.x.x: - version "2.10.1" - resolved "https://registry.yarnpkg.com/boom/-/boom-2.10.1.tgz#39c8918ceff5799f83f9492a848f625add0c766f" - dependencies: - hoek "2.x.x" - -boom@4.x.x: - version "4.3.1" - resolved "https://registry.yarnpkg.com/boom/-/boom-4.3.1.tgz#4f8a3005cb4a7e3889f749030fd25b96e01d2e31" - dependencies: - hoek "4.x.x" - -boom@5.x.x: - version "5.2.0" - resolved "https://registry.yarnpkg.com/boom/-/boom-5.2.0.tgz#5dd9da6ee3a5f302077436290cb717d3f4a54e02" - dependencies: - hoek "4.x.x" - -brace-expansion@^1.1.7: - version "1.1.8" - resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.8.tgz#c07b211c7c952ec1f8efd51a77ef0d1d3990a292" - dependencies: - balanced-match "^1.0.0" - concat-map "0.0.1" - -braces@^1.8.2: - version "1.8.5" - resolved "https://registry.yarnpkg.com/braces/-/braces-1.8.5.tgz#ba77962e12dff969d6b76711e914b737857bf6a7" - dependencies: - expand-range "^1.8.1" - preserve "^0.2.0" - repeat-element "^1.1.2" - -browser-stdout@1.3.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/browser-stdout/-/browser-stdout-1.3.0.tgz#f351d32969d32fa5d7a5567154263d928ae3bd1f" - -buffer-crc32@~0.2.3: - version "0.2.13" - resolved "https://registry.yarnpkg.com/buffer-crc32/-/buffer-crc32-0.2.13.tgz#0d333e3f00eac50aa1454abd30ef8c2a5d9a7242" - -caseless@~0.11.0: - version "0.11.0" - resolved "https://registry.yarnpkg.com/caseless/-/caseless-0.11.0.tgz#715b96ea9841593cc33067923f5ec60ebda4f7d7" - -caseless@~0.12.0: - version "0.12.0" - resolved "https://registry.yarnpkg.com/caseless/-/caseless-0.12.0.tgz#1b681c21ff84033c826543090689420d187151dc" - -chalk@^1.0.0, chalk@^1.1.1: - version "1.1.3" - resolved "https://registry.yarnpkg.com/chalk/-/chalk-1.1.3.tgz#a8115c55e4a702fe4d150abd3872822a7e09fc98" - dependencies: - ansi-styles "^2.2.1" - escape-string-regexp "^1.0.2" - has-ansi "^2.0.0" - strip-ansi "^3.0.0" - supports-color "^2.0.0" - -clone-buffer@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/clone-buffer/-/clone-buffer-1.0.0.tgz#e3e25b207ac4e701af721e2cb5a16792cac3dc58" - -clone-stats@^0.0.1: - version "0.0.1" - resolved "https://registry.yarnpkg.com/clone-stats/-/clone-stats-0.0.1.tgz#b88f94a82cf38b8791d58046ea4029ad88ca99d1" - -clone-stats@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/clone-stats/-/clone-stats-1.0.0.tgz#b3782dff8bb5474e18b9b6bf0fdfe782f8777680" - -clone@^0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/clone/-/clone-0.2.0.tgz#c6126a90ad4f72dbf5acdb243cc37724fe93fc1f" - -clone@^1.0.0: - version "1.0.3" - resolved "https://registry.yarnpkg.com/clone/-/clone-1.0.3.tgz#298d7e2231660f40c003c2ed3140decf3f53085f" - -cloneable-readable@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/cloneable-readable/-/cloneable-readable-1.0.0.tgz#a6290d413f217a61232f95e458ff38418cfb0117" - dependencies: - inherits "^2.0.1" - process-nextick-args "^1.0.6" - through2 "^2.0.1" - -co@^4.6.0: - version "4.6.0" - resolved "https://registry.yarnpkg.com/co/-/co-4.6.0.tgz#6ea6bdf3d853ae54ccb8e47bfa0bf3f9031fb184" - -color-support@^1.1.3: - version "1.1.3" - resolved "https://registry.yarnpkg.com/color-support/-/color-support-1.1.3.tgz#93834379a1cc9a0c61f82f52f0d04322251bd5a2" - -combined-stream@^1.0.5, combined-stream@~1.0.5: - version "1.0.5" - resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.5.tgz#938370a57b4a51dea2c77c15d5c5fdf895164009" - dependencies: - delayed-stream "~1.0.0" - -commander@2.9.0: - version "2.9.0" - resolved "https://registry.yarnpkg.com/commander/-/commander-2.9.0.tgz#9c99094176e12240cb22d6c5146098400fe0f7d4" - dependencies: - graceful-readlink ">= 1.0.0" - -commander@^2.9.0: - version "2.13.0" - resolved "https://registry.yarnpkg.com/commander/-/commander-2.13.0.tgz#6964bca67685df7c1f1430c584f07d7597885b9c" - -concat-map@0.0.1: - version "0.0.1" - resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" - -convert-source-map@^1.1.1: - version "1.5.1" - resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.5.1.tgz#b8278097b9bc229365de5c62cf5fcaed8b5599e5" - -core-util-is@1.0.2, core-util-is@~1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7" - -cryptiles@2.x.x: - version "2.0.5" - resolved "https://registry.yarnpkg.com/cryptiles/-/cryptiles-2.0.5.tgz#3bdfecdc608147c1c67202fa291e7dca59eaa3b8" - dependencies: - boom "2.x.x" - -cryptiles@3.x.x: - version "3.1.2" - resolved "https://registry.yarnpkg.com/cryptiles/-/cryptiles-3.1.2.tgz#a89fbb220f5ce25ec56e8c4aa8a4fd7b5b0d29fe" - dependencies: - boom "5.x.x" - -dashdash@^1.12.0: - version "1.14.1" - resolved "https://registry.yarnpkg.com/dashdash/-/dashdash-1.14.1.tgz#853cfa0f7cbe2fed5de20326b8dd581035f6e2f0" - dependencies: - assert-plus "^1.0.0" - -dateformat@^2.0.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/dateformat/-/dateformat-2.2.0.tgz#4065e2013cf9fb916ddfd82efb506ad4c6769062" - -debug@2.6.8: - version "2.6.8" - resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.8.tgz#e731531ca2ede27d188222427da17821d68ff4fc" - dependencies: - ms "2.0.0" - -deep-assign@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/deep-assign/-/deep-assign-1.0.0.tgz#b092743be8427dc621ea0067cdec7e70dd19f37b" - dependencies: - is-obj "^1.0.0" - -delayed-stream@~1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619" - -diff@3.2.0: - version "3.2.0" - resolved "https://registry.yarnpkg.com/diff/-/diff-3.2.0.tgz#c9ce393a4b7cbd0b058a725c93df299027868ff9" - -duplexer2@0.0.2: - version "0.0.2" - resolved "https://registry.yarnpkg.com/duplexer2/-/duplexer2-0.0.2.tgz#c614dcf67e2fb14995a91711e5a617e8a60a31db" - dependencies: - readable-stream "~1.1.9" - -duplexer@~0.1.1: - version "0.1.1" - resolved "https://registry.yarnpkg.com/duplexer/-/duplexer-0.1.1.tgz#ace6ff808c1ce66b57d1ebf97977acb02334cfc1" - -duplexify@^3.2.0: - version "3.5.3" - resolved "https://registry.yarnpkg.com/duplexify/-/duplexify-3.5.3.tgz#8b5818800df92fd0125b27ab896491912858243e" - dependencies: - end-of-stream "^1.0.0" - inherits "^2.0.1" - readable-stream "^2.0.0" - stream-shift "^1.0.0" - -ecc-jsbn@~0.1.1: - version "0.1.1" - resolved "https://registry.yarnpkg.com/ecc-jsbn/-/ecc-jsbn-0.1.1.tgz#0fc73a9ed5f0d53c38193398523ef7e543777505" - dependencies: - jsbn "~0.1.0" - -end-of-stream@^1.0.0: - version "1.4.1" - resolved "https://registry.yarnpkg.com/end-of-stream/-/end-of-stream-1.4.1.tgz#ed29634d19baba463b6ce6b80a37213eab71ec43" - dependencies: - once "^1.4.0" - -escape-string-regexp@1.0.5, escape-string-regexp@^1.0.2: - version "1.0.5" - resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" - -event-stream@^3.3.1, event-stream@~3.3.4: - version "3.3.4" - resolved "https://registry.yarnpkg.com/event-stream/-/event-stream-3.3.4.tgz#4ab4c9a0f5a54db9338b4c34d86bfce8f4b35571" - dependencies: - duplexer "~0.1.1" - from "~0" - map-stream "~0.1.0" - pause-stream "0.0.11" - split "0.3" - stream-combiner "~0.0.4" - through "~2.3.1" - -expand-brackets@^0.1.4: - version "0.1.5" - resolved "https://registry.yarnpkg.com/expand-brackets/-/expand-brackets-0.1.5.tgz#df07284e342a807cd733ac5af72411e581d1177b" - dependencies: - is-posix-bracket "^0.1.0" - -expand-range@^1.8.1: - version "1.8.2" - resolved "https://registry.yarnpkg.com/expand-range/-/expand-range-1.8.2.tgz#a299effd335fe2721ebae8e257ec79644fc85337" - dependencies: - fill-range "^2.1.0" - -extend-shallow@^1.1.2: - version "1.1.4" - resolved "https://registry.yarnpkg.com/extend-shallow/-/extend-shallow-1.1.4.tgz#19d6bf94dfc09d76ba711f39b872d21ff4dd9071" - dependencies: - kind-of "^1.1.0" - -extend-shallow@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/extend-shallow/-/extend-shallow-2.0.1.tgz#51af7d614ad9a9f610ea1bafbb989d6b1c56890f" - dependencies: - is-extendable "^0.1.0" - -extend@^3.0.0, extend@~3.0.0, extend@~3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/extend/-/extend-3.0.1.tgz#a755ea7bc1adfcc5a31ce7e762dbaadc5e636444" - -extglob@^0.3.1: - version "0.3.2" - resolved "https://registry.yarnpkg.com/extglob/-/extglob-0.3.2.tgz#2e18ff3d2f49ab2765cec9023f011daa8d8349a1" - dependencies: - is-extglob "^1.0.0" - -extsprintf@1.3.0: - version "1.3.0" - 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: - version "1.3.2" - resolved "https://registry.yarnpkg.com/fancy-log/-/fancy-log-1.3.2.tgz#f41125e3d84f2e7d89a43d06d958c8f78be16be1" - dependencies: - ansi-gray "^0.1.1" - color-support "^1.1.3" - time-stamp "^1.0.0" - -fast-deep-equal@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-1.0.0.tgz#96256a3bc975595eb36d82e9929d060d893439ff" - -fast-json-stable-stringify@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz#d5142c0caee6b1189f87d3a76111064f86c8bbf2" - -fd-slicer@~1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/fd-slicer/-/fd-slicer-1.0.1.tgz#8b5bcbd9ec327c5041bf9ab023fd6750f1177e65" - dependencies: - pend "~1.2.0" - -filename-regex@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/filename-regex/-/filename-regex-2.0.1.tgz#c1c4b9bee3e09725ddb106b75c1e301fe2f18b26" - -fill-range@^2.1.0: - version "2.2.3" - resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-2.2.3.tgz#50b77dfd7e469bc7492470963699fe7a8485a723" - dependencies: - is-number "^2.1.0" - isobject "^2.0.0" - randomatic "^1.1.3" - repeat-element "^1.1.2" - repeat-string "^1.5.2" - -first-chunk-stream@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/first-chunk-stream/-/first-chunk-stream-1.0.0.tgz#59bfb50cd905f60d7c394cd3d9acaab4e6ad934e" - -for-in@^1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/for-in/-/for-in-1.0.2.tgz#81068d295a8142ec0ac726c6e2200c30fb6d5e80" - -for-own@^0.1.4: - version "0.1.5" - resolved "https://registry.yarnpkg.com/for-own/-/for-own-0.1.5.tgz#5265c681a4f294dabbf17c9509b6763aa84510ce" - dependencies: - for-in "^1.0.1" - -forever-agent@~0.6.1: - version "0.6.1" - resolved "https://registry.yarnpkg.com/forever-agent/-/forever-agent-0.6.1.tgz#fbc71f0c41adeb37f96c577ad1ed42d8fdacca91" - -form-data@~2.1.1: - version "2.1.4" - resolved "https://registry.yarnpkg.com/form-data/-/form-data-2.1.4.tgz#33c183acf193276ecaa98143a69e94bfee1750d1" - dependencies: - asynckit "^0.4.0" - combined-stream "^1.0.5" - mime-types "^2.1.12" - -form-data@~2.3.1: - version "2.3.1" - resolved "https://registry.yarnpkg.com/form-data/-/form-data-2.3.1.tgz#6fb94fbd71885306d73d15cc497fe4cc4ecd44bf" - dependencies: - asynckit "^0.4.0" - combined-stream "^1.0.5" - mime-types "^2.1.12" - -from@~0: - version "0.1.7" - resolved "https://registry.yarnpkg.com/from/-/from-0.1.7.tgz#83c60afc58b9c56997007ed1a768b3ab303a44fe" - -fs.realpath@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" - -fstream@^1.0.2: - version "1.0.11" - resolved "https://registry.yarnpkg.com/fstream/-/fstream-1.0.11.tgz#5c1fb1f117477114f0632a0eb4b71b3cb0fd3171" - dependencies: - graceful-fs "^4.1.2" - inherits "~2.0.0" - mkdirp ">=0.5 0" - rimraf "2" - -generate-function@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/generate-function/-/generate-function-2.0.0.tgz#6858fe7c0969b7d4e9093337647ac79f60dfbe74" - -generate-object-property@^1.1.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/generate-object-property/-/generate-object-property-1.2.0.tgz#9c0e1c40308ce804f4783618b937fa88f99d50d0" - dependencies: - is-property "^1.0.0" - -getpass@^0.1.1: - version "0.1.7" - resolved "https://registry.yarnpkg.com/getpass/-/getpass-0.1.7.tgz#5eff8e3e684d569ae4cb2b1282604e8ba62149fa" - dependencies: - assert-plus "^1.0.0" - -glob-base@^0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/glob-base/-/glob-base-0.3.0.tgz#dbb164f6221b1c0b1ccf82aea328b497df0ea3c4" - dependencies: - glob-parent "^2.0.0" - is-glob "^2.0.0" - -glob-parent@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-2.0.0.tgz#81383d72db054fcccf5336daa902f182f6edbb28" - dependencies: - is-glob "^2.0.0" - -glob-parent@^3.0.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-3.1.0.tgz#9e6af6299d8d3bd2bd40430832bd113df906c5ae" - dependencies: - is-glob "^3.1.0" - path-dirname "^1.0.0" - -glob-stream@^5.3.2: - version "5.3.5" - resolved "https://registry.yarnpkg.com/glob-stream/-/glob-stream-5.3.5.tgz#a55665a9a8ccdc41915a87c701e32d4e016fad22" - dependencies: - extend "^3.0.0" - glob "^5.0.3" - glob-parent "^3.0.0" - micromatch "^2.3.7" - ordered-read-streams "^0.3.0" - through2 "^0.6.0" - to-absolute-glob "^0.1.1" - unique-stream "^2.0.2" - -glob@7.1.1: - version "7.1.1" - resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.1.tgz#805211df04faaf1c63a3600306cdf5ade50b2ec8" - dependencies: - fs.realpath "^1.0.0" - inflight "^1.0.4" - inherits "2" - minimatch "^3.0.2" - once "^1.3.0" - path-is-absolute "^1.0.0" - -glob@^5.0.3: - version "5.0.15" - resolved "https://registry.yarnpkg.com/glob/-/glob-5.0.15.tgz#1bc936b9e02f4a603fcc222ecf7633d30b8b93b1" - dependencies: - inflight "^1.0.4" - inherits "2" - minimatch "2 || 3" - once "^1.3.0" - path-is-absolute "^1.0.0" - -glob@^7.0.5, glob@^7.1.1: - version "7.1.2" - resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.2.tgz#c19c9df9a028702d678612384a6552404c636d15" - dependencies: - fs.realpath "^1.0.0" - inflight "^1.0.4" - inherits "2" - minimatch "^3.0.4" - once "^1.3.0" - path-is-absolute "^1.0.0" - -glogg@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/glogg/-/glogg-1.0.1.tgz#dcf758e44789cc3f3d32c1f3562a3676e6a34810" - dependencies: - sparkles "^1.0.0" - -graceful-fs@^4.0.0, graceful-fs@^4.1.2: - version "4.1.11" - resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.1.11.tgz#0e8bdfe4d1ddb8854d64e04ea7c00e2a026e5658" - -"graceful-readlink@>= 1.0.0": - version "1.0.1" - resolved "https://registry.yarnpkg.com/graceful-readlink/-/graceful-readlink-1.0.1.tgz#4cafad76bc62f02fa039b2f94e9a3dd3a391a725" - -growl@1.9.2: - version "1.9.2" - resolved "https://registry.yarnpkg.com/growl/-/growl-1.9.2.tgz#0ea7743715db8d8de2c5ede1775e1b45ac85c02f" - -gulp-chmod@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/gulp-chmod/-/gulp-chmod-2.0.0.tgz#00c390b928a0799b251accf631aa09e01cc6299c" - dependencies: - deep-assign "^1.0.0" - stat-mode "^0.2.0" - through2 "^2.0.0" - -gulp-filter@^5.0.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/gulp-filter/-/gulp-filter-5.1.0.tgz#a05e11affb07cf7dcf41a7de1cb7b63ac3783e73" - dependencies: - multimatch "^2.0.0" - plugin-error "^0.1.2" - streamfilter "^1.0.5" - -gulp-gunzip@0.0.3: - version "0.0.3" - resolved "https://registry.yarnpkg.com/gulp-gunzip/-/gulp-gunzip-0.0.3.tgz#7b6e07b0f58fd3d42515c48ead5a63df0572f62f" - dependencies: - through2 "~0.6.5" - vinyl "~0.4.6" - -gulp-remote-src@^0.4.2: - version "0.4.3" - resolved "https://registry.yarnpkg.com/gulp-remote-src/-/gulp-remote-src-0.4.3.tgz#5728cfd643433dd4845ddef0969f0f971a2ab4a1" - dependencies: - event-stream "~3.3.4" - node.extend "~1.1.2" - request "~2.79.0" - through2 "~2.0.3" - vinyl "~2.0.1" - -gulp-sourcemaps@1.6.0: - version "1.6.0" - resolved "https://registry.yarnpkg.com/gulp-sourcemaps/-/gulp-sourcemaps-1.6.0.tgz#b86ff349d801ceb56e1d9e7dc7bbcb4b7dee600c" - dependencies: - convert-source-map "^1.1.1" - graceful-fs "^4.1.2" - strip-bom "^2.0.0" - through2 "^2.0.0" - vinyl "^1.0.0" - -gulp-symdest@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/gulp-symdest/-/gulp-symdest-1.1.0.tgz#c165320732d192ce56fd94271ffa123234bf2ae0" - dependencies: - event-stream "^3.3.1" - mkdirp "^0.5.1" - queue "^3.1.0" - vinyl-fs "^2.4.3" - -gulp-untar@^0.0.6: - version "0.0.6" - resolved "https://registry.yarnpkg.com/gulp-untar/-/gulp-untar-0.0.6.tgz#d6bdefde7e9a8e054c9f162385a0782c4be74000" - dependencies: - event-stream "~3.3.4" - gulp-util "~3.0.8" - streamifier "~0.1.1" - tar "^2.2.1" - through2 "~2.0.3" - -gulp-util@~3.0.8: - version "3.0.8" - resolved "https://registry.yarnpkg.com/gulp-util/-/gulp-util-3.0.8.tgz#0054e1e744502e27c04c187c3ecc505dd54bbb4f" - dependencies: - array-differ "^1.0.0" - array-uniq "^1.0.2" - beeper "^1.0.0" - chalk "^1.0.0" - dateformat "^2.0.0" - fancy-log "^1.1.0" - gulplog "^1.0.0" - has-gulplog "^0.1.0" - lodash._reescape "^3.0.0" - lodash._reevaluate "^3.0.0" - lodash._reinterpolate "^3.0.0" - lodash.template "^3.0.0" - minimist "^1.1.0" - multipipe "^0.1.2" - object-assign "^3.0.0" - replace-ext "0.0.1" - through2 "^2.0.0" - vinyl "^0.5.0" - -gulp-vinyl-zip@^1.4.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/gulp-vinyl-zip/-/gulp-vinyl-zip-1.4.0.tgz#56382f2ccb57231bb0478c78737ccd572973bee1" - dependencies: - event-stream "^3.3.1" - queue "^3.0.10" - through2 "^0.6.3" - vinyl "^0.4.6" - vinyl-fs "^2.0.0" - yauzl "^2.2.1" - yazl "^2.2.1" - -gulplog@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/gulplog/-/gulplog-1.0.0.tgz#e28c4d45d05ecbbed818363ce8f9c5926229ffe5" - dependencies: - glogg "^1.0.0" - -har-schema@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/har-schema/-/har-schema-2.0.0.tgz#a94c2224ebcac04782a0d9035521f24735b7ec92" - -har-validator@~2.0.6: - version "2.0.6" - resolved "https://registry.yarnpkg.com/har-validator/-/har-validator-2.0.6.tgz#cdcbc08188265ad119b6a5a7c8ab70eecfb5d27d" - dependencies: - chalk "^1.1.1" - commander "^2.9.0" - is-my-json-valid "^2.12.4" - pinkie-promise "^2.0.0" - -har-validator@~5.0.3: - version "5.0.3" - resolved "https://registry.yarnpkg.com/har-validator/-/har-validator-5.0.3.tgz#ba402c266194f15956ef15e0fcf242993f6a7dfd" - dependencies: - ajv "^5.1.0" - har-schema "^2.0.0" - -has-ansi@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/has-ansi/-/has-ansi-2.0.0.tgz#34f5049ce1ecdf2b0649af3ef24e45ed35416d91" - dependencies: - ansi-regex "^2.0.0" - -has-flag@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-1.0.0.tgz#9d9e793165ce017a00f00418c43f942a7b1d11fa" - -has-gulplog@^0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/has-gulplog/-/has-gulplog-0.1.0.tgz#6414c82913697da51590397dafb12f22967811ce" - dependencies: - sparkles "^1.0.0" - -hawk@~3.1.3: - version "3.1.3" - resolved "https://registry.yarnpkg.com/hawk/-/hawk-3.1.3.tgz#078444bd7c1640b0fe540d2c9b73d59678e8e1c4" - dependencies: - boom "2.x.x" - cryptiles "2.x.x" - hoek "2.x.x" - sntp "1.x.x" - -hawk@~6.0.2: - version "6.0.2" - resolved "https://registry.yarnpkg.com/hawk/-/hawk-6.0.2.tgz#af4d914eb065f9b5ce4d9d11c1cb2126eecc3038" - dependencies: - boom "4.x.x" - cryptiles "3.x.x" - hoek "4.x.x" - sntp "2.x.x" - -he@1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/he/-/he-1.1.1.tgz#93410fd21b009735151f8868c2f271f3427e23fd" - -hoek@2.x.x: - version "2.16.3" - resolved "https://registry.yarnpkg.com/hoek/-/hoek-2.16.3.tgz#20bb7403d3cea398e91dc4710a8ff1b8274a25ed" - -hoek@4.x.x: - version "4.2.0" - resolved "https://registry.yarnpkg.com/hoek/-/hoek-4.2.0.tgz#72d9d0754f7fe25ca2d01ad8f8f9a9449a89526d" - -http-signature@~1.1.0: - version "1.1.1" - resolved "https://registry.yarnpkg.com/http-signature/-/http-signature-1.1.1.tgz#df72e267066cd0ac67fb76adf8e134a8fbcf91bf" - dependencies: - assert-plus "^0.2.0" - jsprim "^1.2.2" - sshpk "^1.7.0" - -http-signature@~1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/http-signature/-/http-signature-1.2.0.tgz#9aecd925114772f3d95b65a60abb8f7c18fbace1" - dependencies: - assert-plus "^1.0.0" - jsprim "^1.2.2" - sshpk "^1.7.0" - -inflight@^1.0.4: - version "1.0.6" - resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" - dependencies: - once "^1.3.0" - wrappy "1" - -inherits@2, inherits@^2.0.1, inherits@~2.0.0, inherits@~2.0.1, inherits@~2.0.3: - version "2.0.3" - resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de" - -is-buffer@^1.1.5: - version "1.1.6" - resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-1.1.6.tgz#efaa2ea9daa0d7ab2ea13a97b2b8ad51fefbe8be" - -is-dotfile@^1.0.0: - version "1.0.3" - resolved "https://registry.yarnpkg.com/is-dotfile/-/is-dotfile-1.0.3.tgz#a6a2f32ffd2dfb04f5ca25ecd0f6b83cf798a1e1" - -is-equal-shallow@^0.1.3: - version "0.1.3" - resolved "https://registry.yarnpkg.com/is-equal-shallow/-/is-equal-shallow-0.1.3.tgz#2238098fc221de0bcfa5d9eac4c45d638aa1c534" - dependencies: - is-primitive "^2.0.0" - -is-extendable@^0.1.0, is-extendable@^0.1.1: - version "0.1.1" - resolved "https://registry.yarnpkg.com/is-extendable/-/is-extendable-0.1.1.tgz#62b110e289a471418e3ec36a617d472e301dfc89" - -is-extglob@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-1.0.0.tgz#ac468177c4943405a092fc8f29760c6ffc6206c0" - -is-extglob@^2.1.0: - version "2.1.1" - resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2" - -is-glob@^2.0.0, is-glob@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-2.0.1.tgz#d096f926a3ded5600f3fdfd91198cb0888c2d863" - dependencies: - is-extglob "^1.0.0" - -is-glob@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-3.1.0.tgz#7ba5ae24217804ac70707b96922567486cc3e84a" - dependencies: - is-extglob "^2.1.0" - -is-my-json-valid@^2.12.4: - version "2.17.1" - resolved "https://registry.yarnpkg.com/is-my-json-valid/-/is-my-json-valid-2.17.1.tgz#3da98914a70a22f0a8563ef1511a246c6fc55471" - dependencies: - generate-function "^2.0.0" - generate-object-property "^1.1.0" - jsonpointer "^4.0.0" - xtend "^4.0.0" - -is-number@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/is-number/-/is-number-2.1.0.tgz#01fcbbb393463a548f2f466cce16dece49db908f" - dependencies: - kind-of "^3.0.2" - -is-number@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/is-number/-/is-number-3.0.0.tgz#24fd6201a4782cf50561c810276afc7d12d71195" - dependencies: - kind-of "^3.0.2" - -is-obj@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/is-obj/-/is-obj-1.0.1.tgz#3e4729ac1f5fde025cd7d83a896dab9f4f67db0f" - -is-posix-bracket@^0.1.0: - version "0.1.1" - resolved "https://registry.yarnpkg.com/is-posix-bracket/-/is-posix-bracket-0.1.1.tgz#3334dc79774368e92f016e6fbc0a88f5cd6e6bc4" - -is-primitive@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/is-primitive/-/is-primitive-2.0.0.tgz#207bab91638499c07b2adf240a41a87210034575" - -is-property@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/is-property/-/is-property-1.0.2.tgz#57fe1c4e48474edd65b09911f26b1cd4095dda84" - -is-stream@^1.0.1, is-stream@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-1.1.0.tgz#12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44" - -is-typedarray@~1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-typedarray/-/is-typedarray-1.0.0.tgz#e479c80858df0c1b11ddda6940f96011fcda4a9a" - -is-utf8@^0.2.0: - version "0.2.1" - resolved "https://registry.yarnpkg.com/is-utf8/-/is-utf8-0.2.1.tgz#4b0da1442104d1b336340e80797e865cf39f7d72" - -is-valid-glob@^0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/is-valid-glob/-/is-valid-glob-0.3.0.tgz#d4b55c69f51886f9b65c70d6c2622d37e29f48fe" - -is@^3.1.0: - version "3.2.1" - resolved "https://registry.yarnpkg.com/is/-/is-3.2.1.tgz#d0ac2ad55eb7b0bec926a5266f6c662aaa83dca5" - -isarray@0.0.1: - version "0.0.1" - resolved "https://registry.yarnpkg.com/isarray/-/isarray-0.0.1.tgz#8a18acfca9a8f4177e09abfc6038939b05d1eedf" - -isarray@1.0.0, isarray@~1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11" - -isobject@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/isobject/-/isobject-2.1.0.tgz#f065561096a3f1da2ef46272f815c840d87e0c89" - dependencies: - isarray "1.0.0" - -isstream@~0.1.2: - version "0.1.2" - resolved "https://registry.yarnpkg.com/isstream/-/isstream-0.1.2.tgz#47e63f7af55afa6f92e1500e690eb8b8529c099a" - -jsbn@~0.1.0: - version "0.1.1" - resolved "https://registry.yarnpkg.com/jsbn/-/jsbn-0.1.1.tgz#a5e654c2e5a2deb5f201d96cefbca80c0ef2f513" - -json-schema-traverse@^0.3.0: - version "0.3.1" - resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.3.1.tgz#349a6d44c53a51de89b40805c5d5e59b417d3340" - -json-schema@0.2.3: - version "0.2.3" - resolved "https://registry.yarnpkg.com/json-schema/-/json-schema-0.2.3.tgz#b480c892e59a2f05954ce727bd3f2a4e882f9e13" - -json-stable-stringify@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/json-stable-stringify/-/json-stable-stringify-1.0.1.tgz#9a759d39c5f2ff503fd5300646ed445f88c4f9af" - dependencies: - jsonify "~0.0.0" - -json-stringify-safe@~5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz#1296a2d58fd45f19a0f6ce01d65701e2c735b6eb" - -json3@3.3.2: - version "3.3.2" - resolved "https://registry.yarnpkg.com/json3/-/json3-3.3.2.tgz#3c0434743df93e2f5c42aee7b19bcb483575f4e1" - -jsonify@~0.0.0: - version "0.0.0" - resolved "https://registry.yarnpkg.com/jsonify/-/jsonify-0.0.0.tgz#2c74b6ee41d93ca51b7b5aaee8f503631d252a73" - -jsonpointer@^4.0.0: - version "4.0.1" - resolved "https://registry.yarnpkg.com/jsonpointer/-/jsonpointer-4.0.1.tgz#4fd92cb34e0e9db3c89c8622ecf51f9b978c6cb9" - -jsprim@^1.2.2: - version "1.4.1" - resolved "https://registry.yarnpkg.com/jsprim/-/jsprim-1.4.1.tgz#313e66bc1e5cc06e438bc1b7499c2e5c56acb6a2" - dependencies: - assert-plus "1.0.0" - extsprintf "1.3.0" - json-schema "0.2.3" - verror "1.10.0" - -kind-of@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-1.1.0.tgz#140a3d2d41a36d2efcfa9377b62c24f8495a5c44" - -kind-of@^3.0.2: - version "3.2.2" - resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-3.2.2.tgz#31ea21a734bab9bbb0f32466d893aea51e4a3c64" - dependencies: - is-buffer "^1.1.5" - -kind-of@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-4.0.0.tgz#20813df3d712928b207378691a45066fae72dd57" - dependencies: - is-buffer "^1.1.5" - -lazystream@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/lazystream/-/lazystream-1.0.0.tgz#f6995fe0f820392f61396be89462407bb77168e4" - dependencies: - readable-stream "^2.0.5" - -lodash._baseassign@^3.0.0: - version "3.2.0" - resolved "https://registry.yarnpkg.com/lodash._baseassign/-/lodash._baseassign-3.2.0.tgz#8c38a099500f215ad09e59f1722fd0c52bfe0a4e" - dependencies: - lodash._basecopy "^3.0.0" - lodash.keys "^3.0.0" - -lodash._basecopy@^3.0.0: - version "3.0.1" - resolved "https://registry.yarnpkg.com/lodash._basecopy/-/lodash._basecopy-3.0.1.tgz#8da0e6a876cf344c0ad8a54882111dd3c5c7ca36" - -lodash._basecreate@^3.0.0: - version "3.0.3" - resolved "https://registry.yarnpkg.com/lodash._basecreate/-/lodash._basecreate-3.0.3.tgz#1bc661614daa7fc311b7d03bf16806a0213cf821" - -lodash._basetostring@^3.0.0: - version "3.0.1" - resolved "https://registry.yarnpkg.com/lodash._basetostring/-/lodash._basetostring-3.0.1.tgz#d1861d877f824a52f669832dcaf3ee15566a07d5" - -lodash._basevalues@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/lodash._basevalues/-/lodash._basevalues-3.0.0.tgz#5b775762802bde3d3297503e26300820fdf661b7" - -lodash._getnative@^3.0.0: - version "3.9.1" - resolved "https://registry.yarnpkg.com/lodash._getnative/-/lodash._getnative-3.9.1.tgz#570bc7dede46d61cdcde687d65d3eecbaa3aaff5" - -lodash._isiterateecall@^3.0.0: - version "3.0.9" - resolved "https://registry.yarnpkg.com/lodash._isiterateecall/-/lodash._isiterateecall-3.0.9.tgz#5203ad7ba425fae842460e696db9cf3e6aac057c" - -lodash._reescape@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/lodash._reescape/-/lodash._reescape-3.0.0.tgz#2b1d6f5dfe07c8a355753e5f27fac7f1cde1616a" - -lodash._reevaluate@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/lodash._reevaluate/-/lodash._reevaluate-3.0.0.tgz#58bc74c40664953ae0b124d806996daca431e2ed" - -lodash._reinterpolate@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/lodash._reinterpolate/-/lodash._reinterpolate-3.0.0.tgz#0ccf2d89166af03b3663c796538b75ac6e114d9d" - -lodash._root@^3.0.0: - version "3.0.1" - resolved "https://registry.yarnpkg.com/lodash._root/-/lodash._root-3.0.1.tgz#fba1c4524c19ee9a5f8136b4609f017cf4ded692" - -lodash.create@3.1.1: - version "3.1.1" - resolved "https://registry.yarnpkg.com/lodash.create/-/lodash.create-3.1.1.tgz#d7f2849f0dbda7e04682bb8cd72ab022461debe7" - dependencies: - lodash._baseassign "^3.0.0" - lodash._basecreate "^3.0.0" - lodash._isiterateecall "^3.0.0" - -lodash.escape@^3.0.0: - version "3.2.0" - resolved "https://registry.yarnpkg.com/lodash.escape/-/lodash.escape-3.2.0.tgz#995ee0dc18c1b48cc92effae71a10aab5b487698" - dependencies: - lodash._root "^3.0.0" - -lodash.isarguments@^3.0.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/lodash.isarguments/-/lodash.isarguments-3.1.0.tgz#2f573d85c6a24289ff00663b491c1d338ff3458a" - -lodash.isarray@^3.0.0: - version "3.0.4" - resolved "https://registry.yarnpkg.com/lodash.isarray/-/lodash.isarray-3.0.4.tgz#79e4eb88c36a8122af86f844aa9bcd851b5fbb55" - -lodash.isequal@^4.0.0: - version "4.5.0" - resolved "https://registry.yarnpkg.com/lodash.isequal/-/lodash.isequal-4.5.0.tgz#415c4478f2bcc30120c22ce10ed3226f7d3e18e0" - -lodash.keys@^3.0.0: - version "3.1.2" - resolved "https://registry.yarnpkg.com/lodash.keys/-/lodash.keys-3.1.2.tgz#4dbc0472b156be50a0b286855d1bd0b0c656098a" - dependencies: - lodash._getnative "^3.0.0" - lodash.isarguments "^3.0.0" - lodash.isarray "^3.0.0" - -lodash.restparam@^3.0.0: - version "3.6.1" - resolved "https://registry.yarnpkg.com/lodash.restparam/-/lodash.restparam-3.6.1.tgz#936a4e309ef330a7645ed4145986c85ae5b20805" - -lodash.template@^3.0.0: - version "3.6.2" - resolved "https://registry.yarnpkg.com/lodash.template/-/lodash.template-3.6.2.tgz#f8cdecc6169a255be9098ae8b0c53d378931d14f" - dependencies: - lodash._basecopy "^3.0.0" - lodash._basetostring "^3.0.0" - lodash._basevalues "^3.0.0" - lodash._isiterateecall "^3.0.0" - lodash._reinterpolate "^3.0.0" - lodash.escape "^3.0.0" - lodash.keys "^3.0.0" - lodash.restparam "^3.0.0" - lodash.templatesettings "^3.0.0" - -lodash.templatesettings@^3.0.0: - version "3.1.1" - resolved "https://registry.yarnpkg.com/lodash.templatesettings/-/lodash.templatesettings-3.1.1.tgz#fb307844753b66b9f1afa54e262c745307dba8e5" - dependencies: - lodash._reinterpolate "^3.0.0" - lodash.escape "^3.0.0" - -map-stream@~0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/map-stream/-/map-stream-0.1.0.tgz#e56aa94c4c8055a16404a0674b78f215f7c8e194" - -merge-stream@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/merge-stream/-/merge-stream-1.0.1.tgz#4041202d508a342ba00174008df0c251b8c135e1" - dependencies: - readable-stream "^2.0.1" - -micromatch@^2.3.7: - version "2.3.11" - resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-2.3.11.tgz#86677c97d1720b363431d04d0d15293bd38c1565" - dependencies: - arr-diff "^2.0.0" - array-unique "^0.2.1" - braces "^1.8.2" - expand-brackets "^0.1.4" - extglob "^0.3.1" - filename-regex "^2.0.0" - is-extglob "^1.0.0" - is-glob "^2.0.1" - kind-of "^3.0.2" - normalize-path "^2.0.1" - object.omit "^2.0.0" - parse-glob "^3.0.4" - regex-cache "^0.4.2" - -mime-db@~1.30.0: - version "1.30.0" - resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.30.0.tgz#74c643da2dd9d6a45399963465b26d5ca7d71f01" - -mime-types@^2.1.12, mime-types@~2.1.17, mime-types@~2.1.7: - version "2.1.17" - resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.17.tgz#09d7a393f03e995a79f8af857b70a9e0ab16557a" - dependencies: - mime-db "~1.30.0" - -"minimatch@2 || 3", minimatch@^3.0.0, minimatch@^3.0.2, minimatch@^3.0.4: - version "3.0.4" - resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083" - dependencies: - brace-expansion "^1.1.7" - -minimist@0.0.8: - version "0.0.8" - resolved "https://registry.yarnpkg.com/minimist/-/minimist-0.0.8.tgz#857fcabfc3397d2625b8228262e86aa7a011b05d" - -minimist@^1.1.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.0.tgz#a35008b20f41383eec1fb914f4cd5df79a264284" - -mkdirp@0.5.1, "mkdirp@>=0.5 0", mkdirp@^0.5.0, mkdirp@^0.5.1: - version "0.5.1" - resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.1.tgz#30057438eac6cf7f8c4767f38648d6697d75c903" - dependencies: - minimist "0.0.8" - -mocha@^3.2.0: - version "3.5.3" - resolved "https://registry.yarnpkg.com/mocha/-/mocha-3.5.3.tgz#1e0480fe36d2da5858d1eb6acc38418b26eaa20d" - dependencies: - browser-stdout "1.3.0" - commander "2.9.0" - debug "2.6.8" - diff "3.2.0" - escape-string-regexp "1.0.5" - glob "7.1.1" - growl "1.9.2" - he "1.1.1" - json3 "3.3.2" - lodash.create "3.1.1" - mkdirp "0.5.1" - supports-color "3.1.2" - -ms@2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8" - -multimatch@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/multimatch/-/multimatch-2.1.0.tgz#9c7906a22fb4c02919e2f5f75161b4cdbd4b2a2b" - dependencies: - array-differ "^1.0.0" - array-union "^1.0.1" - arrify "^1.0.0" - minimatch "^3.0.0" - -multipipe@^0.1.2: - version "0.1.2" - resolved "https://registry.yarnpkg.com/multipipe/-/multipipe-0.1.2.tgz#2a8f2ddf70eed564dff2d57f1e1a137d9f05078b" - dependencies: - duplexer2 "0.0.2" - -node.extend@~1.1.2: - version "1.1.6" - resolved "https://registry.yarnpkg.com/node.extend/-/node.extend-1.1.6.tgz#a7b882c82d6c93a4863a5504bd5de8ec86258b96" - dependencies: - is "^3.1.0" - -normalize-path@^2.0.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-2.1.1.tgz#1ab28b556e198363a8c1a6f7e6fa20137fe6aed9" - dependencies: - remove-trailing-separator "^1.0.1" - -oauth-sign@~0.8.1, oauth-sign@~0.8.2: - version "0.8.2" - resolved "https://registry.yarnpkg.com/oauth-sign/-/oauth-sign-0.8.2.tgz#46a6ab7f0aead8deae9ec0565780b7d4efeb9d43" - -object-assign@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-3.0.0.tgz#9bedd5ca0897949bca47e7ff408062d549f587f2" - -object-assign@^4.0.0: - version "4.1.1" - resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" - -object.omit@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/object.omit/-/object.omit-2.0.1.tgz#1a9c744829f39dbb858c76ca3579ae2a54ebd1fa" - dependencies: - for-own "^0.1.4" - is-extendable "^0.1.1" - -once@^1.3.0, once@^1.4.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" - dependencies: - wrappy "1" - -ordered-read-streams@^0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/ordered-read-streams/-/ordered-read-streams-0.3.0.tgz#7137e69b3298bb342247a1bbee3881c80e2fd78b" - dependencies: - is-stream "^1.0.1" - readable-stream "^2.0.1" - -parse-glob@^3.0.4: - version "3.0.4" - resolved "https://registry.yarnpkg.com/parse-glob/-/parse-glob-3.0.4.tgz#b2c376cfb11f35513badd173ef0bb6e3a388391c" - dependencies: - glob-base "^0.3.0" - is-dotfile "^1.0.0" - is-extglob "^1.0.0" - is-glob "^2.0.0" - -path-dirname@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/path-dirname/-/path-dirname-1.0.2.tgz#cc33d24d525e099a5388c0336c6e32b9160609e0" - -path-is-absolute@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" - -pause-stream@0.0.11: - version "0.0.11" - resolved "https://registry.yarnpkg.com/pause-stream/-/pause-stream-0.0.11.tgz#fe5a34b0cbce12b5aa6a2b403ee2e73b602f1445" - dependencies: - through "~2.3" - -pend@~1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/pend/-/pend-1.2.0.tgz#7a57eb550a6783f9115331fcf4663d5c8e007a50" - -performance-now@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/performance-now/-/performance-now-2.1.0.tgz#6309f4e0e5fa913ec1c69307ae364b4b377c9e7b" - -pinkie-promise@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/pinkie-promise/-/pinkie-promise-2.0.1.tgz#2135d6dfa7a358c069ac9b178776288228450ffa" - dependencies: - pinkie "^2.0.0" - -pinkie@^2.0.0: - version "2.0.4" - resolved "https://registry.yarnpkg.com/pinkie/-/pinkie-2.0.4.tgz#72556b80cfa0d48a974e80e77248e80ed4f7f870" - -plugin-error@^0.1.2: - version "0.1.2" - resolved "https://registry.yarnpkg.com/plugin-error/-/plugin-error-0.1.2.tgz#3b9bb3335ccf00f425e07437e19276967da47ace" - dependencies: - ansi-cyan "^0.1.1" - ansi-red "^0.1.1" - arr-diff "^1.0.1" - arr-union "^2.0.1" - extend-shallow "^1.1.2" - -preserve@^0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/preserve/-/preserve-0.2.0.tgz#815ed1f6ebc65926f865b310c0713bcb3315ce4b" - -process-nextick-args@^1.0.6, process-nextick-args@~1.0.6: - version "1.0.7" - resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-1.0.7.tgz#150e20b756590ad3f91093f25a4f2ad8bff30ba3" - -punycode@^1.4.1: - version "1.4.1" - resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.4.1.tgz#c0d5a63b2718800ad8e1eb0fa5269c84dd41845e" - -qs@~6.3.0: - version "6.3.2" - resolved "https://registry.yarnpkg.com/qs/-/qs-6.3.2.tgz#e75bd5f6e268122a2a0e0bda630b2550c166502c" - -qs@~6.5.1: - version "6.5.1" - resolved "https://registry.yarnpkg.com/qs/-/qs-6.5.1.tgz#349cdf6eef89ec45c12d7d5eb3fc0c870343a6d8" - -querystringify@~1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/querystringify/-/querystringify-1.0.0.tgz#6286242112c5b712fa654e526652bf6a13ff05cb" - -queue@^3.0.10, queue@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/queue/-/queue-3.1.0.tgz#6c49d01f009e2256788789f2bffac6b8b9990585" - dependencies: - inherits "~2.0.0" - -randomatic@^1.1.3: - version "1.1.7" - resolved "https://registry.yarnpkg.com/randomatic/-/randomatic-1.1.7.tgz#c7abe9cc8b87c0baa876b19fde83fd464797e38c" - dependencies: - is-number "^3.0.0" - kind-of "^4.0.0" - -"readable-stream@>=1.0.33-1 <1.1.0-0": - version "1.0.34" - resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-1.0.34.tgz#125820e34bc842d2f2aaafafe4c2916ee32c157c" - dependencies: - core-util-is "~1.0.0" - inherits "~2.0.1" - isarray "0.0.1" - 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: - version "2.3.3" - resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.3.tgz#368f2512d79f9d46fdfc71349ae7878bbc1eb95c" - dependencies: - core-util-is "~1.0.0" - inherits "~2.0.3" - isarray "~1.0.0" - process-nextick-args "~1.0.6" - safe-buffer "~5.1.1" - string_decoder "~1.0.3" - util-deprecate "~1.0.1" - -readable-stream@~1.1.9: - version "1.1.14" - resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-1.1.14.tgz#7cf4c54ef648e3813084c636dd2079e166c081d9" - dependencies: - core-util-is "~1.0.0" - inherits "~2.0.1" - isarray "0.0.1" - string_decoder "~0.10.x" - -regex-cache@^0.4.2: - version "0.4.4" - resolved "https://registry.yarnpkg.com/regex-cache/-/regex-cache-0.4.4.tgz#75bdc58a2a1496cec48a12835bc54c8d562336dd" - dependencies: - is-equal-shallow "^0.1.3" - -remove-trailing-separator@^1.0.1: - version "1.1.0" - resolved "https://registry.yarnpkg.com/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz#c24bce2a283adad5bc3f58e0d48249b92379d8ef" - -repeat-element@^1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/repeat-element/-/repeat-element-1.1.2.tgz#ef089a178d1483baae4d93eb98b4f9e4e11d990a" - -repeat-string@^1.5.2: - version "1.6.1" - resolved "https://registry.yarnpkg.com/repeat-string/-/repeat-string-1.6.1.tgz#8dcae470e1c88abc2d600fff4a776286da75e637" - -replace-ext@0.0.1: - version "0.0.1" - resolved "https://registry.yarnpkg.com/replace-ext/-/replace-ext-0.0.1.tgz#29bbd92078a739f0bcce2b4ee41e837953522924" - -replace-ext@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/replace-ext/-/replace-ext-1.0.0.tgz#de63128373fcbf7c3ccfa4de5a480c45a67958eb" - -request@^2.79.0: - version "2.83.0" - resolved "https://registry.yarnpkg.com/request/-/request-2.83.0.tgz#ca0b65da02ed62935887808e6f510381034e3356" - dependencies: - aws-sign2 "~0.7.0" - aws4 "^1.6.0" - caseless "~0.12.0" - combined-stream "~1.0.5" - extend "~3.0.1" - forever-agent "~0.6.1" - form-data "~2.3.1" - har-validator "~5.0.3" - hawk "~6.0.2" - http-signature "~1.2.0" - is-typedarray "~1.0.0" - isstream "~0.1.2" - json-stringify-safe "~5.0.1" - mime-types "~2.1.17" - oauth-sign "~0.8.2" - performance-now "^2.1.0" - qs "~6.5.1" - safe-buffer "^5.1.1" - stringstream "~0.0.5" - tough-cookie "~2.3.3" - tunnel-agent "^0.6.0" - uuid "^3.1.0" - -request@~2.79.0: - version "2.79.0" - resolved "https://registry.yarnpkg.com/request/-/request-2.79.0.tgz#4dfe5bf6be8b8cdc37fcf93e04b65577722710de" - dependencies: - aws-sign2 "~0.6.0" - aws4 "^1.2.1" - caseless "~0.11.0" - combined-stream "~1.0.5" - extend "~3.0.0" - forever-agent "~0.6.1" - form-data "~2.1.1" - har-validator "~2.0.6" - hawk "~3.1.3" - http-signature "~1.1.0" - is-typedarray "~1.0.0" - isstream "~0.1.2" - json-stringify-safe "~5.0.1" - mime-types "~2.1.7" - oauth-sign "~0.8.1" - qs "~6.3.0" - stringstream "~0.0.4" - tough-cookie "~2.3.0" - tunnel-agent "~0.4.1" - uuid "^3.0.0" - -requires-port@~1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/requires-port/-/requires-port-1.0.0.tgz#925d2601d39ac485e091cf0da5c6e694dc3dcaff" - -rimraf@2: - version "2.6.2" - resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.6.2.tgz#2ed8150d24a16ea8651e6d6ef0f47c4158ce7a36" - dependencies: - glob "^7.0.5" - -safe-buffer@^5.0.1, safe-buffer@^5.1.1, safe-buffer@~5.1.0, safe-buffer@~5.1.1: - version "5.1.1" - resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.1.tgz#893312af69b2123def71f57889001671eeb2c853" - -semver@^5.3.0: - version "5.5.0" - resolved "https://registry.yarnpkg.com/semver/-/semver-5.5.0.tgz#dc4bbc7a6ca9d916dee5d43516f0092b58f7b8ab" - -sntp@1.x.x: - version "1.0.9" - resolved "https://registry.yarnpkg.com/sntp/-/sntp-1.0.9.tgz#6541184cc90aeea6c6e7b35e2659082443c66198" - dependencies: - hoek "2.x.x" - -sntp@2.x.x: - version "2.1.0" - resolved "https://registry.yarnpkg.com/sntp/-/sntp-2.1.0.tgz#2c6cec14fedc2222739caf9b5c3d85d1cc5a2cc8" - dependencies: - hoek "4.x.x" - -source-map-support@^0.4.11: - version "0.4.18" - resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.4.18.tgz#0286a6de8be42641338594e97ccea75f0a2c585f" - dependencies: - source-map "^0.5.6" - -source-map@^0.5.6: - version "0.5.7" - resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.7.tgz#8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc" - -sparkles@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/sparkles/-/sparkles-1.0.0.tgz#1acbbfb592436d10bbe8f785b7cc6f82815012c3" - -split@0.3: - version "0.3.3" - resolved "https://registry.yarnpkg.com/split/-/split-0.3.3.tgz#cd0eea5e63a211dfff7eb0f091c4133e2d0dd28f" - dependencies: - through "2" - -sshpk@^1.7.0: - version "1.13.1" - resolved "https://registry.yarnpkg.com/sshpk/-/sshpk-1.13.1.tgz#512df6da6287144316dc4c18fe1cf1d940739be3" - dependencies: - asn1 "~0.2.3" - assert-plus "^1.0.0" - dashdash "^1.12.0" - getpass "^0.1.1" - optionalDependencies: - bcrypt-pbkdf "^1.0.0" - ecc-jsbn "~0.1.1" - jsbn "~0.1.0" - tweetnacl "~0.14.0" - -stat-mode@^0.2.0: - version "0.2.2" - resolved "https://registry.yarnpkg.com/stat-mode/-/stat-mode-0.2.2.tgz#e6c80b623123d7d80cf132ce538f346289072502" - -stream-combiner@~0.0.4: - version "0.0.4" - resolved "https://registry.yarnpkg.com/stream-combiner/-/stream-combiner-0.0.4.tgz#4d5e433c185261dde623ca3f44c586bcf5c4ad14" - dependencies: - duplexer "~0.1.1" - -stream-shift@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/stream-shift/-/stream-shift-1.0.0.tgz#d5c752825e5367e786f78e18e445ea223a155952" - -streamfilter@^1.0.5: - version "1.0.7" - resolved "https://registry.yarnpkg.com/streamfilter/-/streamfilter-1.0.7.tgz#ae3e64522aa5a35c061fd17f67620c7653c643c9" - dependencies: - readable-stream "^2.0.2" - -streamifier@~0.1.1: - version "0.1.1" - resolved "https://registry.yarnpkg.com/streamifier/-/streamifier-0.1.1.tgz#97e98d8fa4d105d62a2691d1dc07e820db8dfc4f" - -string_decoder@~0.10.x: - version "0.10.31" - resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-0.10.31.tgz#62e203bc41766c6c28c9fc84301dab1c5310fa94" - -string_decoder@~1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.0.3.tgz#0fc67d7c141825de94282dd536bec6b9bce860ab" - dependencies: - safe-buffer "~5.1.0" - -stringstream@~0.0.4, stringstream@~0.0.5: - version "0.0.5" - resolved "https://registry.yarnpkg.com/stringstream/-/stringstream-0.0.5.tgz#4e484cd4de5a0bbbee18e46307710a8a81621878" - -strip-ansi@^3.0.0: - version "3.0.1" - resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-3.0.1.tgz#6a385fb8853d952d5ff05d0e8aaf94278dc63dcf" - dependencies: - ansi-regex "^2.0.0" - -strip-bom-stream@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/strip-bom-stream/-/strip-bom-stream-1.0.0.tgz#e7144398577d51a6bed0fa1994fa05f43fd988ee" - dependencies: - first-chunk-stream "^1.0.0" - strip-bom "^2.0.0" - -strip-bom@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-2.0.0.tgz#6219a85616520491f35788bdbf1447a99c7e6b0e" - dependencies: - is-utf8 "^0.2.0" - -supports-color@3.1.2: - version "3.1.2" - resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-3.1.2.tgz#72a262894d9d408b956ca05ff37b2ed8a6e2a2d5" - dependencies: - has-flag "^1.0.0" - -supports-color@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-2.0.0.tgz#535d045ce6b6363fa40117084629995e9df324c7" - -tar@^2.2.1: - version "2.2.1" - resolved "https://registry.yarnpkg.com/tar/-/tar-2.2.1.tgz#8e4d2a256c0e2185c6b18ad694aec968b83cb1d1" - dependencies: - block-stream "*" - fstream "^1.0.2" - inherits "2" - -through2-filter@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/through2-filter/-/through2-filter-2.0.0.tgz#60bc55a0dacb76085db1f9dae99ab43f83d622ec" - dependencies: - through2 "~2.0.0" - xtend "~4.0.0" - -through2@^0.6.0, through2@^0.6.3, through2@~0.6.5: - version "0.6.5" - resolved "https://registry.yarnpkg.com/through2/-/through2-0.6.5.tgz#41ab9c67b29d57209071410e1d7a7a968cd3ad48" - dependencies: - readable-stream ">=1.0.33-1 <1.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: - version "2.0.3" - resolved "https://registry.yarnpkg.com/through2/-/through2-2.0.3.tgz#0004569b37c7c74ba39c43f3ced78d1ad94140be" - dependencies: - readable-stream "^2.1.5" - xtend "~4.0.1" - -through@2, through@~2.3, through@~2.3.1: - version "2.3.8" - resolved "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5" - -time-stamp@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/time-stamp/-/time-stamp-1.1.0.tgz#764a5a11af50561921b133f3b44e618687e0f5c3" - -to-absolute-glob@^0.1.1: - version "0.1.1" - resolved "https://registry.yarnpkg.com/to-absolute-glob/-/to-absolute-glob-0.1.1.tgz#1cdfa472a9ef50c239ee66999b662ca0eb39937f" - dependencies: - extend-shallow "^2.0.1" - -tough-cookie@~2.3.0, tough-cookie@~2.3.3: - version "2.3.3" - resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-2.3.3.tgz#0b618a5565b6dea90bf3425d04d55edc475a7561" - dependencies: - punycode "^1.4.1" - -tunnel-agent@^0.6.0: - version "0.6.0" - resolved "https://registry.yarnpkg.com/tunnel-agent/-/tunnel-agent-0.6.0.tgz#27a5dea06b36b04a0a9966774b290868f0fc40fd" - dependencies: - safe-buffer "^5.0.1" - -tunnel-agent@~0.4.1: - version "0.4.3" - resolved "https://registry.yarnpkg.com/tunnel-agent/-/tunnel-agent-0.4.3.tgz#6373db76909fe570e08d73583365ed828a74eeeb" - -tweetnacl@^0.14.3, tweetnacl@~0.14.0: - version "0.14.5" - resolved "https://registry.yarnpkg.com/tweetnacl/-/tweetnacl-0.14.5.tgz#5ae68177f192d4456269d108afa93ff8743f4f64" - -typescript@2.6.2: - version "2.6.2" - resolved "https://registry.yarnpkg.com/typescript/-/typescript-2.6.2.tgz#3c5b6fd7f6de0914269027f03c0946758f7673a4" - -unique-stream@^2.0.2: - version "2.2.1" - resolved "https://registry.yarnpkg.com/unique-stream/-/unique-stream-2.2.1.tgz#5aa003cfbe94c5ff866c4e7d668bb1c4dbadb369" - dependencies: - json-stable-stringify "^1.0.0" - through2-filter "^2.0.0" - -url-parse@^1.1.9: - version "1.2.0" - resolved "https://registry.yarnpkg.com/url-parse/-/url-parse-1.2.0.tgz#3a19e8aaa6d023ddd27dcc44cb4fc8f7fec23986" - dependencies: - querystringify "~1.0.0" - requires-port "~1.0.0" - -util-deprecate@~1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" - -uuid@^3.0.0, uuid@^3.1.0: - version "3.2.1" - resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.2.1.tgz#12c528bb9d58d0b9265d9a2f6f0fe8be17ff1f14" - -vali-date@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/vali-date/-/vali-date-1.0.0.tgz#1b904a59609fb328ef078138420934f6b86709a6" - -verror@1.10.0: - version "1.10.0" - resolved "https://registry.yarnpkg.com/verror/-/verror-1.10.0.tgz#3a105ca17053af55d6e270c1f8288682e18da400" - dependencies: - assert-plus "^1.0.0" - core-util-is "1.0.2" - extsprintf "^1.2.0" - -vinyl-fs@^2.0.0, vinyl-fs@^2.4.3: - version "2.4.4" - resolved "https://registry.yarnpkg.com/vinyl-fs/-/vinyl-fs-2.4.4.tgz#be6ff3270cb55dfd7d3063640de81f25d7532239" - dependencies: - duplexify "^3.2.0" - glob-stream "^5.3.2" - graceful-fs "^4.0.0" - gulp-sourcemaps "1.6.0" - is-valid-glob "^0.3.0" - lazystream "^1.0.0" - lodash.isequal "^4.0.0" - merge-stream "^1.0.0" - mkdirp "^0.5.0" - object-assign "^4.0.0" - readable-stream "^2.0.4" - strip-bom "^2.0.0" - strip-bom-stream "^1.0.0" - through2 "^2.0.0" - through2-filter "^2.0.0" - vali-date "^1.0.0" - vinyl "^1.0.0" - -vinyl-source-stream@^1.1.0: - version "1.1.2" - resolved "https://registry.yarnpkg.com/vinyl-source-stream/-/vinyl-source-stream-1.1.2.tgz#62b53a135610a896e98ca96bee3a87f008a8e780" - dependencies: - through2 "^2.0.3" - vinyl "^0.4.3" - -vinyl@^0.4.3, vinyl@^0.4.6, vinyl@~0.4.6: - version "0.4.6" - resolved "https://registry.yarnpkg.com/vinyl/-/vinyl-0.4.6.tgz#2f356c87a550a255461f36bbeb2a5ba8bf784847" - dependencies: - clone "^0.2.0" - clone-stats "^0.0.1" - -vinyl@^0.5.0: - version "0.5.3" - resolved "https://registry.yarnpkg.com/vinyl/-/vinyl-0.5.3.tgz#b0455b38fc5e0cf30d4325132e461970c2091cde" - dependencies: - clone "^1.0.0" - clone-stats "^0.0.1" - replace-ext "0.0.1" - -vinyl@^1.0.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/vinyl/-/vinyl-1.2.0.tgz#5c88036cf565e5df05558bfc911f8656df218884" - dependencies: - clone "^1.0.0" - clone-stats "^0.0.1" - replace-ext "0.0.1" - -vinyl@~2.0.1: - version "2.0.2" - resolved "https://registry.yarnpkg.com/vinyl/-/vinyl-2.0.2.tgz#0a3713d8d4e9221c58f10ca16c0116c9e25eda7c" - dependencies: - clone "^1.0.0" - clone-buffer "^1.0.0" - clone-stats "^1.0.0" - cloneable-readable "^1.0.0" - is-stream "^1.1.0" - remove-trailing-separator "^1.0.1" - replace-ext "^1.0.0" - -vscode-jsonrpc@^3.5.0: - version "3.5.0" - resolved "https://registry.yarnpkg.com/vscode-jsonrpc/-/vscode-jsonrpc-3.5.0.tgz#87239d9e166b2d7352245b8a813597804c1d63aa" - -vscode-languageclient@3.5.0: - version "3.5.0" - resolved "https://registry.yarnpkg.com/vscode-languageclient/-/vscode-languageclient-3.5.0.tgz#36d02cc186a8365a4467719a290fb200a9ae490a" - dependencies: - vscode-languageserver-protocol "^3.5.0" - -vscode-languageserver-protocol@^3.5.0: - version "3.5.0" - resolved "https://registry.yarnpkg.com/vscode-languageserver-protocol/-/vscode-languageserver-protocol-3.5.0.tgz#067c5cbe27709795398d119692c97ebba1452209" - dependencies: - vscode-jsonrpc "^3.5.0" - vscode-languageserver-types "^3.5.0" - -vscode-languageserver-types@^3.5.0: - version "3.5.0" - resolved "https://registry.yarnpkg.com/vscode-languageserver-types/-/vscode-languageserver-types-3.5.0.tgz#e48d79962f0b8e02de955e3f524908e2b19c0374" - -vscode@1.1.5: - version "1.1.5" - resolved "https://registry.yarnpkg.com/vscode/-/vscode-1.1.5.tgz#10eb104001840c3dd0813815fd4a05f8fc882d14" - dependencies: - glob "^7.1.1" - gulp-chmod "^2.0.0" - gulp-filter "^5.0.0" - gulp-gunzip "0.0.3" - gulp-remote-src "^0.4.2" - gulp-symdest "^1.1.0" - gulp-untar "^0.0.6" - gulp-vinyl-zip "^1.4.0" - mocha "^3.2.0" - request "^2.79.0" - semver "^5.3.0" - source-map-support "^0.4.11" - url-parse "^1.1.9" - vinyl-source-stream "^1.1.0" - -wrappy@1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" - -"xtend@>=4.0.0 <4.1.0-0", xtend@^4.0.0, xtend@~4.0.0, xtend@~4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.1.tgz#a5c6d532be656e23db820efb943a1f04998d63af" - -yauzl@^2.2.1: - version "2.9.1" - resolved "https://registry.yarnpkg.com/yauzl/-/yauzl-2.9.1.tgz#a81981ea70a57946133883f029c5821a89359a7f" - dependencies: - buffer-crc32 "~0.2.3" - fd-slicer "~1.0.1" - -yazl@^2.2.1: - version "2.4.3" - resolved "https://registry.yarnpkg.com/yazl/-/yazl-2.4.3.tgz#ec26e5cc87d5601b9df8432dbdd3cd2e5173a071" - dependencies: - buffer-crc32 "~0.2.3" diff --git a/extensions-modules/package.json b/extensions-modules/package.json index 0440e8be36..7b26122a78 100644 --- a/extensions-modules/package.json +++ b/extensions-modules/package.json @@ -3,7 +3,7 @@ "version": "0.1.0", "description": "Shared modules for Carbon extensions", "dependencies": { - "dataprotocol-client": "file:../dataprotocol-client", + "dataprotocol-client": "git://github.com/Microsoft/sqlops-dataprotocolclient.git#release", "decompress": "^4.2.0", "fs-extra-promise": "^1.0.1", "http-proxy-agent": "^2.0.0", diff --git a/extensions-modules/src/languageservice/serviceClient.ts b/extensions-modules/src/languageservice/serviceClient.ts index d8d36c6ace..1a3d8659a0 100644 --- a/extensions-modules/src/languageservice/serviceClient.ts +++ b/extensions-modules/src/languageservice/serviceClient.ts @@ -353,6 +353,7 @@ export class SqlToolsServiceClient { } } }; + this._serviceStatus.showServiceLoading(); // cache the client instance for later use client = new SqlOpsDataClient(SqlToolsServiceClient._constants.serviceName, serverOptions, clientOptions); diff --git a/extensions-modules/src/typings/ref.d.ts b/extensions-modules/src/typings/ref.d.ts index e0685da577..9bf3363e28 100644 --- a/extensions-modules/src/typings/ref.d.ts +++ b/extensions-modules/src/typings/ref.d.ts @@ -4,4 +4,4 @@ *--------------------------------------------------------------------------------------------*/ /// -/// +/// \ No newline at end of file diff --git a/extensions-modules/yarn.lock b/extensions-modules/yarn.lock index a93c913679..09e2b81721 100644 --- a/extensions-modules/yarn.lock +++ b/extensions-modules/yarn.lock @@ -25,12 +25,24 @@ amdefine@>=0.0.4: version "1.0.1" resolved "https://registry.yarnpkg.com/amdefine/-/amdefine-1.0.1.tgz#4a5282ac164729e93619bcfd3ad151f817ce91f5" +ansi-cyan@^0.1.1: + version "0.1.1" + resolved "https://registry.yarnpkg.com/ansi-cyan/-/ansi-cyan-0.1.1.tgz#538ae528af8982f28ae30d86f2f17456d2609873" + dependencies: + ansi-wrap "0.1.0" + ansi-gray@^0.1.1: version "0.1.1" resolved "https://registry.yarnpkg.com/ansi-gray/-/ansi-gray-0.1.1.tgz#2962cf54ec9792c48510a3deb524436861ef7251" dependencies: ansi-wrap "0.1.0" +ansi-red@^0.1.1: + version "0.1.1" + resolved "https://registry.yarnpkg.com/ansi-red/-/ansi-red-0.1.1.tgz#8c638f9d1080800a353c9c28c8a81ca4705d946c" + dependencies: + ansi-wrap "0.1.0" + ansi-regex@^0.2.0, ansi-regex@^0.2.1: version "0.2.1" resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-0.2.1.tgz#0d8e946967a3d8143f93e24e298525fc1b2235f9" @@ -55,6 +67,13 @@ applicationinsights@0.18.0: version "0.18.0" resolved "https://registry.yarnpkg.com/applicationinsights/-/applicationinsights-0.18.0.tgz#162ebb48a383408bc4de44db32b417307f45bbc1" +arr-diff@^1.0.1: + version "1.1.0" + resolved "https://registry.yarnpkg.com/arr-diff/-/arr-diff-1.1.0.tgz#687c32758163588fef7de7b36fabe495eb1a399a" + dependencies: + arr-flatten "^1.0.1" + array-slice "^0.2.3" + arr-diff@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/arr-diff/-/arr-diff-2.0.0.tgz#8f3b827f955a8bd669697e4a4256ac3ceae356cf" @@ -65,6 +84,10 @@ arr-flatten@^1.0.1: version "1.1.0" resolved "https://registry.yarnpkg.com/arr-flatten/-/arr-flatten-1.1.0.tgz#36048bbff4e7b47e136644316c99669ea5ae91f1" +arr-union@^2.0.1: + version "2.1.0" + resolved "https://registry.yarnpkg.com/arr-union/-/arr-union-2.1.0.tgz#20f9eab5ec70f5c7d215b1077b1c39161d292c7d" + array-differ@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/array-differ/-/array-differ-1.0.0.tgz#eff52e3758249d33be402b8bb8e564bb2b5d4031" @@ -73,6 +96,10 @@ array-find-index@^1.0.1: version "1.0.2" resolved "https://registry.yarnpkg.com/array-find-index/-/array-find-index-1.0.2.tgz#df010aa1287e164bbda6f9723b0a96a1ec4187a1" +array-slice@^0.2.3: + version "0.2.3" + resolved "https://registry.yarnpkg.com/array-slice/-/array-slice-0.2.3.tgz#dd3cfb80ed7973a75117cdac69b0b99ec86186f5" + array-union@^1.0.1: version "1.0.2" resolved "https://registry.yarnpkg.com/array-union/-/array-union-1.0.2.tgz#9a34410e4f4e3da23dea375be5be70f24778ec39" @@ -186,6 +213,10 @@ braces@^1.8.2: preserve "^0.2.0" repeat-element "^1.1.2" +browser-stdout@1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/browser-stdout/-/browser-stdout-1.3.0.tgz#f351d32969d32fa5d7a5567154263d928ae3bd1f" + buffer-crc32@~0.2.3: version "0.2.13" resolved "https://registry.yarnpkg.com/buffer-crc32/-/buffer-crc32-0.2.13.tgz#0d333e3f00eac50aa1454abd30ef8c2a5d9a7242" @@ -261,6 +292,10 @@ clone@^1.0.0: version "1.0.3" resolved "https://registry.yarnpkg.com/clone/-/clone-1.0.3.tgz#298d7e2231660f40c003c2ed3140decf3f53085f" +clone@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/clone/-/clone-2.1.1.tgz#d217d1e961118e3ac9a4b8bba3285553bf647cdb" + cloneable-readable@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/cloneable-readable/-/cloneable-readable-1.0.0.tgz#a6290d413f217a61232f95e458ff38418cfb0117" @@ -287,10 +322,20 @@ commander@0.6.1: version "0.6.1" resolved "https://registry.yarnpkg.com/commander/-/commander-0.6.1.tgz#fa68a14f6a945d54dbbe50d8cdb3320e9e3b1a06" +commander@2.11.0: + version "2.11.0" + resolved "https://registry.yarnpkg.com/commander/-/commander-2.11.0.tgz#157152fd1e7a6c8d98a5b715cf376df928004563" + commander@2.3.0: version "2.3.0" resolved "https://registry.yarnpkg.com/commander/-/commander-2.3.0.tgz#fd430e889832ec353b9acd1de217c11cb3eef873" +commander@2.9.0: + version "2.9.0" + resolved "https://registry.yarnpkg.com/commander/-/commander-2.9.0.tgz#9c99094176e12240cb22d6c5146098400fe0f7d4" + dependencies: + graceful-readlink ">= 1.0.0" + commander@^2.9.0: version "2.13.0" resolved "https://registry.yarnpkg.com/commander/-/commander-2.13.0.tgz#6964bca67685df7c1f1430c584f07d7597885b9c" @@ -337,10 +382,12 @@ dashdash@^1.12.0: dependencies: assert-plus "^1.0.0" -"dataprotocol-client@file:../dataprotocol-client": +"dataprotocol-client@git://github.com/Microsoft/sqlops-dataprotocolclient.git#release": version "1.0.0" + resolved "git://github.com/Microsoft/sqlops-dataprotocolclient.git#739fdf93140c3cb1bc882076bf11765b187bf8a3" dependencies: - typescript "2.6.2" + sqlops "git://github.com/anthonydresser/vscode-extension-vscode" + vscode "1.1.5" vscode-languageclient "3.5.0" dateformat@^1.0.7-1.2.3: @@ -366,7 +413,13 @@ debug@2.2.0: dependencies: ms "0.7.1" -debug@^3.1.0: +debug@2.6.8: + version "2.6.8" + resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.8.tgz#e731531ca2ede27d188222427da17821d68ff4fc" + dependencies: + ms "2.0.0" + +debug@3.1.0, debug@^3.1.0: version "3.1.0" resolved "https://registry.yarnpkg.com/debug/-/debug-3.1.0.tgz#5bb5a0672628b64149566ba16819e61518c67261" dependencies: @@ -438,6 +491,14 @@ diff@1.4.0: version "1.4.0" resolved "https://registry.yarnpkg.com/diff/-/diff-1.4.0.tgz#7f28d2eb9ee7b15a97efd89ce63dcfdaa3ccbabf" +diff@3.2.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/diff/-/diff-3.2.0.tgz#c9ce393a4b7cbd0b058a725c93df299027868ff9" + +diff@3.3.1: + version "3.3.1" + resolved "https://registry.yarnpkg.com/diff/-/diff-3.3.1.tgz#aa8567a6eed03c531fc89d3f711cd0e5259dec75" + duplexer2@0.0.2: version "0.0.2" resolved "https://registry.yarnpkg.com/duplexer2/-/duplexer2-0.0.2.tgz#c614dcf67e2fb14995a91711e5a617e8a60a31db" @@ -489,7 +550,7 @@ escape-string-regexp@1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.2.tgz#4dbc2fe674e71949caf3fb2695ce7f2dc1d9a8d1" -escape-string-regexp@^1.0.0, escape-string-regexp@^1.0.2: +escape-string-regexp@1.0.5, escape-string-regexp@^1.0.0, escape-string-regexp@^1.0.2: version "1.0.5" resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" @@ -529,6 +590,12 @@ expand-range@^1.8.1: dependencies: fill-range "^2.1.0" +extend-shallow@^1.1.2: + version "1.1.4" + resolved "https://registry.yarnpkg.com/extend-shallow/-/extend-shallow-1.1.4.tgz#19d6bf94dfc09d76ba711f39b872d21ff4dd9071" + dependencies: + kind-of "^1.1.0" + extend-shallow@^2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/extend-shallow/-/extend-shallow-2.0.1.tgz#51af7d614ad9a9f610ea1bafbb989d6b1c56890f" @@ -664,6 +731,15 @@ fs.realpath@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" +fstream@^1.0.2: + version "1.0.11" + resolved "https://registry.yarnpkg.com/fstream/-/fstream-1.0.11.tgz#5c1fb1f117477114f0632a0eb4b71b3cb0fd3171" + dependencies: + graceful-fs "^4.1.2" + inherits "~2.0.0" + mkdirp ">=0.5 0" + rimraf "2" + fstream@~0.1.28: version "0.1.31" resolved "https://registry.yarnpkg.com/fstream/-/fstream-0.1.31.tgz#7337f058fbbbbefa8c9f561a28cab0849202c988" @@ -740,17 +816,18 @@ glob@3.2.11: inherits "2" minimatch "0.3" -glob@^5.0.15, glob@^5.0.3: - version "5.0.15" - resolved "https://registry.yarnpkg.com/glob/-/glob-5.0.15.tgz#1bc936b9e02f4a603fcc222ecf7633d30b8b93b1" +glob@7.1.1: + version "7.1.1" + resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.1.tgz#805211df04faaf1c63a3600306cdf5ade50b2ec8" dependencies: + fs.realpath "^1.0.0" inflight "^1.0.4" inherits "2" - minimatch "2 || 3" + minimatch "^3.0.2" once "^1.3.0" path-is-absolute "^1.0.0" -glob@^7.0.5: +glob@7.1.2, glob@^7.0.5, glob@^7.1.1, glob@^7.1.2: version "7.1.2" resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.2.tgz#c19c9df9a028702d678612384a6552404c636d15" dependencies: @@ -761,6 +838,16 @@ glob@^7.0.5: once "^1.3.0" path-is-absolute "^1.0.0" +glob@^5.0.15, glob@^5.0.3: + version "5.0.15" + resolved "https://registry.yarnpkg.com/glob/-/glob-5.0.15.tgz#1bc936b9e02f4a603fcc222ecf7633d30b8b93b1" + dependencies: + inflight "^1.0.4" + inherits "2" + minimatch "2 || 3" + once "^1.3.0" + path-is-absolute "^1.0.0" + glogg@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/glogg/-/glogg-1.0.1.tgz#dcf758e44789cc3f3d32c1f3562a3676e6a34810" @@ -781,6 +868,10 @@ graceful-fs@~3.0.2: version "1.0.1" resolved "https://registry.yarnpkg.com/graceful-readlink/-/graceful-readlink-1.0.1.tgz#4cafad76bc62f02fa039b2f94e9a3dd3a391a725" +growl@1.10.3: + version "1.10.3" + resolved "https://registry.yarnpkg.com/growl/-/growl-1.10.3.tgz#1926ba90cf3edfe2adb4927f5880bc22c66c790f" + growl@1.9.2: version "1.9.2" resolved "https://registry.yarnpkg.com/growl/-/growl-1.9.2.tgz#0ea7743715db8d8de2c5ede1775e1b45ac85c02f" @@ -793,6 +884,14 @@ gulp-chmod@^1.3.0: stat-mode "^0.2.0" through2 "^2.0.0" +gulp-chmod@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/gulp-chmod/-/gulp-chmod-2.0.0.tgz#00c390b928a0799b251accf631aa09e01cc6299c" + dependencies: + deep-assign "^1.0.0" + stat-mode "^0.2.0" + through2 "^2.0.0" + gulp-filter@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/gulp-filter/-/gulp-filter-4.0.0.tgz#395f58a256c559cdb9e0d157f1caaf5248a38dcb" @@ -801,6 +900,14 @@ gulp-filter@^4.0.0: multimatch "^2.0.0" streamfilter "^1.0.5" +gulp-filter@^5.0.0, gulp-filter@^5.0.1: + version "5.1.0" + resolved "https://registry.yarnpkg.com/gulp-filter/-/gulp-filter-5.1.0.tgz#a05e11affb07cf7dcf41a7de1cb7b63ac3783e73" + dependencies: + multimatch "^2.0.0" + plugin-error "^0.1.2" + streamfilter "^1.0.5" + gulp-gunzip@0.0.3: version "0.0.3" resolved "https://registry.yarnpkg.com/gulp-gunzip/-/gulp-gunzip-0.0.3.tgz#7b6e07b0f58fd3d42515c48ead5a63df0572f62f" @@ -808,7 +915,14 @@ gulp-gunzip@0.0.3: through2 "~0.6.5" vinyl "~0.4.6" -gulp-remote-src@^0.4.0: +gulp-gunzip@1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/gulp-gunzip/-/gulp-gunzip-1.0.0.tgz#15b741145e83a9c6f50886241b57cc5871f151a9" + dependencies: + through2 "~0.6.5" + vinyl "~0.4.6" + +gulp-remote-src@^0.4.0, gulp-remote-src@^0.4.2, gulp-remote-src@^0.4.3: version "0.4.3" resolved "https://registry.yarnpkg.com/gulp-remote-src/-/gulp-remote-src-0.4.3.tgz#5728cfd643433dd4845ddef0969f0f971a2ab4a1" dependencies: @@ -828,7 +942,7 @@ gulp-sourcemaps@1.6.0: through2 "^2.0.0" vinyl "^1.0.0" -gulp-symdest@^1.0.0: +gulp-symdest@^1.0.0, gulp-symdest@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/gulp-symdest/-/gulp-symdest-1.1.0.tgz#c165320732d192ce56fd94271ffa123234bf2ae0" dependencies: @@ -847,7 +961,17 @@ gulp-untar@0.0.4: tar "~0.1.19" through2 "~0.4.1" -gulp-util@^3.0.6: +gulp-untar@^0.0.6: + version "0.0.6" + resolved "https://registry.yarnpkg.com/gulp-untar/-/gulp-untar-0.0.6.tgz#d6bdefde7e9a8e054c9f162385a0782c4be74000" + dependencies: + event-stream "~3.3.4" + gulp-util "~3.0.8" + streamifier "~0.1.1" + tar "^2.2.1" + through2 "~2.0.3" + +gulp-util@^3.0.6, gulp-util@~3.0.8: version "3.0.8" resolved "https://registry.yarnpkg.com/gulp-util/-/gulp-util-3.0.8.tgz#0054e1e744502e27c04c187c3ecc505dd54bbb4f" dependencies: @@ -883,7 +1007,7 @@ gulp-util@~2.2.14: through2 "^0.5.0" vinyl "^0.2.1" -gulp-vinyl-zip@^1.1.2: +gulp-vinyl-zip@^1.1.2, gulp-vinyl-zip@^1.4.0: version "1.4.0" resolved "https://registry.yarnpkg.com/gulp-vinyl-zip/-/gulp-vinyl-zip-1.4.0.tgz#56382f2ccb57231bb0478c78737ccd572973bee1" dependencies: @@ -895,6 +1019,18 @@ gulp-vinyl-zip@^1.1.2: yauzl "^2.2.1" yazl "^2.2.1" +gulp-vinyl-zip@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/gulp-vinyl-zip/-/gulp-vinyl-zip-2.1.0.tgz#24e40685dc05b7149995245099e0590263be8dad" + dependencies: + event-stream "^3.3.1" + queue "^4.2.1" + through2 "^2.0.3" + vinyl "^2.0.2" + vinyl-fs "^2.0.0" + yauzl "^2.2.1" + yazl "^2.2.1" + gulplog@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/gulplog/-/gulplog-1.0.0.tgz#e28c4d45d05ecbbed818363ce8f9c5926229ffe5" @@ -933,6 +1069,14 @@ has-ansi@^2.0.0: dependencies: ansi-regex "^2.0.0" +has-flag@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-1.0.0.tgz#9d9e793165ce017a00f00418c43f942a7b1d11fa" + +has-flag@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-2.0.0.tgz#e8207af1cc7b30d446cc70b734b5e8be18f88d51" + has-gulplog@^0.1.0: version "0.1.0" resolved "https://registry.yarnpkg.com/has-gulplog/-/has-gulplog-0.1.0.tgz#6414c82913697da51590397dafb12f22967811ce" @@ -957,6 +1101,10 @@ hawk@~6.0.2: hoek "4.x.x" sntp "2.x.x" +he@1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/he/-/he-1.1.1.tgz#93410fd21b009735151f8868c2f271f3427e23fd" + hoek@2.x.x: version "2.16.3" resolved "https://registry.yarnpkg.com/hoek/-/hoek-2.16.3.tgz#20bb7403d3cea398e91dc4710a8ff1b8274a25ed" @@ -1182,6 +1330,10 @@ json-stringify-safe@~5.0.1: version "5.0.1" resolved "https://registry.yarnpkg.com/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz#1296a2d58fd45f19a0f6ce01d65701e2c735b6eb" +json3@3.3.2: + version "3.3.2" + resolved "https://registry.yarnpkg.com/json3/-/json3-3.3.2.tgz#3c0434743df93e2f5c42aee7b19bcb483575f4e1" + jsonfile@^2.1.0: version "2.4.0" resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-2.4.0.tgz#3736a2b428b87bbda0cc83b53fa3d633a35c2ae8" @@ -1205,6 +1357,10 @@ jsprim@^1.2.2: json-schema "0.2.3" verror "1.10.0" +kind-of@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-1.1.0.tgz#140a3d2d41a36d2efcfa9377b62c24f8495a5c44" + kind-of@^3.0.2: version "3.2.2" resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-3.2.2.tgz#31ea21a734bab9bbb0f32466d893aea51e4a3c64" @@ -1233,10 +1389,21 @@ load-json-file@^1.0.0: pinkie-promise "^2.0.0" strip-bom "^2.0.0" +lodash._baseassign@^3.0.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/lodash._baseassign/-/lodash._baseassign-3.2.0.tgz#8c38a099500f215ad09e59f1722fd0c52bfe0a4e" + dependencies: + lodash._basecopy "^3.0.0" + lodash.keys "^3.0.0" + lodash._basecopy@^3.0.0: version "3.0.1" resolved "https://registry.yarnpkg.com/lodash._basecopy/-/lodash._basecopy-3.0.1.tgz#8da0e6a876cf344c0ad8a54882111dd3c5c7ca36" +lodash._basecreate@^3.0.0: + version "3.0.3" + resolved "https://registry.yarnpkg.com/lodash._basecreate/-/lodash._basecreate-3.0.3.tgz#1bc661614daa7fc311b7d03bf16806a0213cf821" + lodash._basetostring@^3.0.0: version "3.0.1" resolved "https://registry.yarnpkg.com/lodash._basetostring/-/lodash._basetostring-3.0.1.tgz#d1861d877f824a52f669832dcaf3ee15566a07d5" @@ -1308,6 +1475,14 @@ lodash._shimkeys@~2.4.1: dependencies: lodash._objecttypes "~2.4.1" +lodash.create@3.1.1: + version "3.1.1" + resolved "https://registry.yarnpkg.com/lodash.create/-/lodash.create-3.1.1.tgz#d7f2849f0dbda7e04682bb8cd72ab022461debe7" + dependencies: + lodash._baseassign "^3.0.0" + lodash._basecreate "^3.0.0" + lodash._isiterateecall "^3.0.0" + lodash.defaults@~2.4.1: version "2.4.1" resolved "https://registry.yarnpkg.com/lodash.defaults/-/lodash.defaults-2.4.1.tgz#a7e8885f05e68851144b6e12a8f3678026bc4c54" @@ -1494,7 +1669,7 @@ minimatch@0.3: lru-cache "2" sigmund "~1.0.0" -"minimatch@2 || 3", minimatch@^3.0.0, minimatch@^3.0.4: +"minimatch@2 || 3", minimatch@^3.0.0, minimatch@^3.0.2, minimatch@^3.0.4: version "3.0.4" resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083" dependencies: @@ -1516,7 +1691,7 @@ mkdirp@0.3.0: version "0.3.0" resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.3.0.tgz#1bbf5ab1ba827af23575143490426455f481fe1e" -mkdirp@0.5, mkdirp@0.5.1, mkdirp@^0.5.0, mkdirp@^0.5.1: +mkdirp@0.5, mkdirp@0.5.1, "mkdirp@>=0.5 0", mkdirp@^0.5.0, mkdirp@^0.5.1: version "0.5.1" resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.1.tgz#30057438eac6cf7f8c4767f38648d6697d75c903" dependencies: @@ -1537,6 +1712,38 @@ mocha@^2.3.3: supports-color "1.2.0" to-iso-string "0.0.2" +mocha@^3.2.0: + version "3.5.3" + resolved "https://registry.yarnpkg.com/mocha/-/mocha-3.5.3.tgz#1e0480fe36d2da5858d1eb6acc38418b26eaa20d" + dependencies: + browser-stdout "1.3.0" + commander "2.9.0" + debug "2.6.8" + diff "3.2.0" + escape-string-regexp "1.0.5" + glob "7.1.1" + growl "1.9.2" + he "1.1.1" + json3 "3.3.2" + lodash.create "3.1.1" + mkdirp "0.5.1" + supports-color "3.1.2" + +mocha@^4.0.1: + version "4.1.0" + resolved "https://registry.yarnpkg.com/mocha/-/mocha-4.1.0.tgz#7d86cfbcf35cb829e2754c32e17355ec05338794" + dependencies: + browser-stdout "1.3.0" + commander "2.11.0" + debug "3.1.0" + diff "3.3.1" + escape-string-regexp "1.0.5" + glob "7.1.2" + growl "1.10.3" + he "1.1.1" + mkdirp "0.5.1" + supports-color "4.4.0" + ms@0.7.1: version "0.7.1" resolved "https://registry.yarnpkg.com/ms/-/ms-0.7.1.tgz#9cd13c03adbff25b65effde7ce864ee952017098" @@ -1702,6 +1909,16 @@ pinkie@^2.0.0: version "2.0.4" resolved "https://registry.yarnpkg.com/pinkie/-/pinkie-2.0.4.tgz#72556b80cfa0d48a974e80e77248e80ed4f7f870" +plugin-error@^0.1.2: + version "0.1.2" + resolved "https://registry.yarnpkg.com/plugin-error/-/plugin-error-0.1.2.tgz#3b9bb3335ccf00f425e07437e19276967da47ace" + dependencies: + ansi-cyan "^0.1.1" + ansi-red "^0.1.1" + arr-diff "^1.0.1" + arr-union "^2.0.1" + extend-shallow "^1.1.2" + preserve@^0.2.0: version "0.2.0" resolved "https://registry.yarnpkg.com/preserve/-/preserve-0.2.0.tgz#815ed1f6ebc65926f865b310c0713bcb3315ce4b" @@ -1722,12 +1939,22 @@ qs@~6.5.1: version "6.5.1" resolved "https://registry.yarnpkg.com/qs/-/qs-6.5.1.tgz#349cdf6eef89ec45c12d7d5eb3fc0c870343a6d8" +querystringify@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/querystringify/-/querystringify-1.0.0.tgz#6286242112c5b712fa654e526652bf6a13ff05cb" + queue@^3.0.10, queue@^3.1.0: version "3.1.0" resolved "https://registry.yarnpkg.com/queue/-/queue-3.1.0.tgz#6c49d01f009e2256788789f2bffac6b8b9990585" dependencies: inherits "~2.0.0" +queue@^4.2.1: + version "4.4.2" + resolved "https://registry.yarnpkg.com/queue/-/queue-4.4.2.tgz#5a9733d9a8b8bd1b36e934bc9c55ab89b28e29c7" + dependencies: + inherits "~2.0.0" + randomatic@^1.1.3: version "1.1.7" resolved "https://registry.yarnpkg.com/randomatic/-/randomatic-1.1.7.tgz#c7abe9cc8b87c0baa876b19fde83fd464797e38c" @@ -1819,7 +2046,7 @@ replace-ext@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/replace-ext/-/replace-ext-1.0.0.tgz#de63128373fcbf7c3ccfa4de5a480c45a67958eb" -request@^2.67.0: +request@^2.67.0, request@^2.79.0, request@^2.83.0: version "2.83.0" resolved "https://registry.yarnpkg.com/request/-/request-2.83.0.tgz#ca0b65da02ed62935887808e6f510381034e3356" dependencies: @@ -1871,6 +2098,10 @@ request@~2.79.0: tunnel-agent "~0.4.1" uuid "^3.0.0" +requires-port@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/requires-port/-/requires-port-1.0.0.tgz#925d2601d39ac485e091cf0da5c6e694dc3dcaff" + rimraf@2: version "2.6.2" resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.6.2.tgz#2ed8150d24a16ea8651e6d6ef0f47c4158ce7a36" @@ -1887,7 +2118,7 @@ seek-bzip@^1.0.5: dependencies: commander "~2.8.1" -"semver@2 || 3 || 4 || 5", semver@^5.1.0: +"semver@2 || 3 || 4 || 5", semver@^5.1.0, semver@^5.3.0, semver@^5.4.1: version "5.5.0" resolved "https://registry.yarnpkg.com/semver/-/semver-5.5.0.tgz#dc4bbc7a6ca9d916dee5d43516f0092b58f7b8ab" @@ -1917,12 +2148,32 @@ source-map-support@^0.3.2: dependencies: source-map "0.1.32" +source-map-support@^0.4.11: + version "0.4.18" + resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.4.18.tgz#0286a6de8be42641338594e97ccea75f0a2c585f" + dependencies: + source-map "^0.5.6" + +source-map-support@^0.5.0: + version "0.5.3" + resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.3.tgz#2b3d5fff298cfa4d1afd7d4352d569e9a0158e76" + dependencies: + source-map "^0.6.0" + source-map@0.1.32: version "0.1.32" resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.1.32.tgz#c8b6c167797ba4740a8ea33252162ff08591b266" dependencies: amdefine ">=0.0.4" +source-map@^0.5.6: + version "0.5.7" + resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.7.tgz#8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc" + +source-map@^0.6.0: + version "0.6.1" + resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263" + sparkles@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/sparkles/-/sparkles-1.0.0.tgz#1acbbfb592436d10bbe8f785b7cc6f82815012c3" @@ -1953,6 +2204,25 @@ split@0.3: dependencies: through "2" +"sqlops@git://github.com/anthonydresser/vscode-extension-vscode": + version "1.1.10" + resolved "git://github.com/anthonydresser/vscode-extension-vscode#96cc0758d2528a33a12d73894a6d40c8bfb15ca1" + dependencies: + glob "^7.1.2" + gulp-chmod "^2.0.0" + gulp-filter "^5.0.1" + gulp-gunzip "1.0.0" + gulp-remote-src "^0.4.3" + gulp-symdest "^1.1.0" + gulp-untar "^0.0.6" + gulp-vinyl-zip "^2.1.0" + mocha "^4.0.1" + request "^2.83.0" + semver "^5.4.1" + source-map-support "^0.5.0" + url-parse "^1.1.9" + vinyl-source-stream "^1.1.0" + sshpk@^1.7.0: version "1.13.1" resolved "https://registry.yarnpkg.com/sshpk/-/sshpk-1.13.1.tgz#512df6da6287144316dc4c18fe1cf1d940739be3" @@ -1987,7 +2257,7 @@ streamfilter@^1.0.5: dependencies: readable-stream "^2.0.2" -streamifier@~0.1.0: +streamifier@~0.1.0, streamifier@~0.1.1: version "0.1.1" resolved "https://registry.yarnpkg.com/streamifier/-/streamifier-0.1.1.tgz#97e98d8fa4d105d62a2691d1dc07e820db8dfc4f" @@ -2046,6 +2316,18 @@ supports-color@1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-1.2.0.tgz#ff1ed1e61169d06b3cf2d588e188b18d8847e17e" +supports-color@3.1.2: + version "3.1.2" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-3.1.2.tgz#72a262894d9d408b956ca05ff37b2ed8a6e2a2d5" + dependencies: + has-flag "^1.0.0" + +supports-color@4.4.0: + version "4.4.0" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-4.4.0.tgz#883f7ddabc165142b2a61427f3352ded195d1a3e" + dependencies: + has-flag "^2.0.0" + supports-color@^0.2.0: version "0.2.0" resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-0.2.0.tgz#d92de2694eb3f67323973d7ae3d8b55b4c22190a" @@ -2063,6 +2345,14 @@ tar-stream@^1.5.2: readable-stream "^2.0.0" xtend "^4.0.0" +tar@^2.2.1: + version "2.2.1" + resolved "https://registry.yarnpkg.com/tar/-/tar-2.2.1.tgz#8e4d2a256c0e2185c6b18ad694aec968b83cb1d1" + dependencies: + block-stream "*" + fstream "^1.0.2" + inherits "2" + tar@~0.1.19: version "0.1.20" resolved "https://registry.yarnpkg.com/tar/-/tar-0.1.20.tgz#42940bae5b5f22c74483699126f9f3f27449cb13" @@ -2154,10 +2444,6 @@ tweetnacl@^0.14.3, tweetnacl@~0.14.0: version "0.14.5" resolved "https://registry.yarnpkg.com/tweetnacl/-/tweetnacl-0.14.5.tgz#5ae68177f192d4456269d108afa93ff8743f4f64" -typescript@2.6.2: - version "2.6.2" - resolved "https://registry.yarnpkg.com/typescript/-/typescript-2.6.2.tgz#3c5b6fd7f6de0914269027f03c0946758f7673a4" - unbzip2-stream@^1.0.9: version "1.2.5" resolved "https://registry.yarnpkg.com/unbzip2-stream/-/unbzip2-stream-1.2.5.tgz#73a033a567bbbde59654b193c44d48a7e4f43c47" @@ -2172,6 +2458,13 @@ unique-stream@^2.0.2: json-stable-stringify "^1.0.0" through2-filter "^2.0.0" +url-parse@^1.1.9: + version "1.2.0" + resolved "https://registry.yarnpkg.com/url-parse/-/url-parse-1.2.0.tgz#3a19e8aaa6d023ddd27dcc44cb4fc8f7fec23986" + dependencies: + querystringify "~1.0.0" + requires-port "~1.0.0" + util-deprecate@~1.0.1: version "1.0.2" resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" @@ -2257,6 +2550,17 @@ vinyl@^1.0.0: clone-stats "^0.0.1" replace-ext "0.0.1" +vinyl@^2.0.2: + version "2.1.0" + resolved "https://registry.yarnpkg.com/vinyl/-/vinyl-2.1.0.tgz#021f9c2cf951d6b939943c89eb5ee5add4fd924c" + dependencies: + clone "^2.1.1" + clone-buffer "^1.0.0" + clone-stats "^1.0.0" + cloneable-readable "^1.0.0" + remove-trailing-separator "^1.0.1" + replace-ext "^1.0.0" + vinyl@~2.0.1: version "2.0.2" resolved "https://registry.yarnpkg.com/vinyl/-/vinyl-2.0.2.tgz#0a3713d8d4e9221c58f10ca16c0116c9e25eda7c" @@ -2315,6 +2619,25 @@ vscode@1.0.1: source-map-support "^0.3.2" vinyl-source-stream "^1.1.0" +vscode@1.1.5: + version "1.1.5" + resolved "https://registry.yarnpkg.com/vscode/-/vscode-1.1.5.tgz#10eb104001840c3dd0813815fd4a05f8fc882d14" + dependencies: + glob "^7.1.1" + gulp-chmod "^2.0.0" + gulp-filter "^5.0.0" + gulp-gunzip "0.0.3" + gulp-remote-src "^0.4.2" + gulp-symdest "^1.1.0" + gulp-untar "^0.0.6" + gulp-vinyl-zip "^1.4.0" + mocha "^3.2.0" + request "^2.79.0" + semver "^5.3.0" + source-map-support "^0.4.11" + url-parse "^1.1.9" + vinyl-source-stream "^1.1.0" + winreg@1.2.3: version "1.2.3" resolved "https://registry.yarnpkg.com/winreg/-/winreg-1.2.3.tgz#93ad116b2696da87d58f7265a8fcea5254a965d5" diff --git a/extensions/account-provider-azure/src/account-provider/azureAccountProvider.ts b/extensions/account-provider-azure/src/account-provider/azureAccountProvider.ts index 9abef2d693..f3cddf247a 100644 --- a/extensions/account-provider-azure/src/account-provider/azureAccountProvider.ts +++ b/extensions/account-provider-azure/src/account-provider/azureAccountProvider.ts @@ -6,7 +6,7 @@ 'use strict'; import * as adal from 'adal-node'; -import * as data from 'data'; +import * as sqlops from 'sqlops'; import * as request from 'request'; import * as nls from 'vscode-nls'; import * as vscode from 'vscode'; @@ -22,7 +22,7 @@ import TokenCache from './tokenCache'; const localize = nls.loadMessageBundle(); -export class AzureAccountProvider implements data.AccountProvider { +export class AzureAccountProvider implements sqlops.AccountProvider { // CONSTANTS /////////////////////////////////////////////////////////// private static WorkSchoolAccountType: string = 'work_school'; private static MicrosoftAccountType: string = 'microsoft'; @@ -57,7 +57,7 @@ export class AzureAccountProvider implements data.AccountProvider { * @param {"data".AccountKey} accountKey Key identifying the account to delete tokens for * @returns {Thenable} Promise to clear requested tokens from the token cache */ - public clear(accountKey: data.AccountKey): Thenable { + public clear(accountKey: sqlops.AccountKey): Thenable { return this.doIfInitialized(() => this.clearAccountTokens(accountKey)); } @@ -73,10 +73,10 @@ export class AzureAccountProvider implements data.AccountProvider { return this.doIfInitialized(() => this.getAccessTokens(account)); } - public initialize(restoredAccounts: data.Account[]): Thenable { + public initialize(restoredAccounts: sqlops.Account[]): Thenable { let self = this; - let rehydrationTasks: Thenable[] = []; + let rehydrationTasks: Thenable[] = []; for (let account of restoredAccounts) { // Purge any invalid accounts if (!account) { @@ -145,7 +145,7 @@ export class AzureAccountProvider implements data.AccountProvider { return Promise.resolve(); } - private clearAccountTokens(accountKey: data.AccountKey): Thenable { + private clearAccountTokens(accountKey: sqlops.AccountKey): Thenable { // Put together a query to look up any tokens associated with the account key let query = { userId: accountKey.accountId }; @@ -180,7 +180,7 @@ export class AzureAccountProvider implements data.AccountProvider { if (error) { // TODO: We'll assume for now that the account is stale, though that might not be accurate account.isStale = true; - data.accounts.accountUpdated(account); + sqlops.accounts.accountUpdated(account); reject(error); return; @@ -240,7 +240,7 @@ export class AzureAccountProvider implements data.AccountProvider { let title = isAddAccount ? localize('addAccount', 'Add {0} account', self._metadata.displayName) : localize('refreshAccount', 'Refresh {0} account', self._metadata.displayName); - return data.accounts.beginAutoOAuthDeviceCode(self._metadata.id, title, oAuth.userCodeInfo.message, oAuth.userCodeInfo.userCode, oAuth.userCodeInfo.verificationUrl) + return sqlops.accounts.beginAutoOAuthDeviceCode(self._metadata.id, title, oAuth.userCodeInfo.message, oAuth.userCodeInfo.userCode, oAuth.userCodeInfo.verificationUrl) .then(() => { return new Promise((resolve, reject) => { let context = oAuth.context; @@ -249,14 +249,14 @@ export class AzureAccountProvider implements data.AccountProvider { if (err) { if (self._autoOAuthCancelled) { // Auto OAuth was cancelled by the user, indicate this with the error we return - reject({ userCancelledSignIn: true }); + reject({ userCancelledSignIn: true }); } else { // Auto OAuth failed for some other reason - data.accounts.endAutoOAuthDeviceCode(); + sqlops.accounts.endAutoOAuthDeviceCode(); reject(err); } } else { - data.accounts.endAutoOAuthDeviceCode(); + sqlops.accounts.endAutoOAuthDeviceCode(); resolve(response); } diff --git a/extensions/account-provider-azure/src/account-provider/azureAccountProviderService.ts b/extensions/account-provider-azure/src/account-provider/azureAccountProviderService.ts index 746f1d5e63..d8d0d8bde8 100644 --- a/extensions/account-provider-azure/src/account-provider/azureAccountProviderService.ts +++ b/extensions/account-provider-azure/src/account-provider/azureAccountProviderService.ts @@ -6,7 +6,7 @@ 'use strict'; import * as constants from '../constants'; -import * as data from 'data'; +import * as sqlops from 'sqlops'; import * as events from 'events'; import * as nls from 'vscode-nls'; import * as path from 'path'; @@ -27,7 +27,7 @@ export class AzureAccountProviderService implements vscode.Disposable { // MEMBER VARIABLES //////////////////////////////////////////////////////// private _accountDisposals: { [accountProviderId: string]: vscode.Disposable }; private _accountProviders: { [accountProviderId: string]: AzureAccountProvider }; - private _credentialProvider: data.CredentialProvider; + private _credentialProvider: sqlops.CredentialProvider; private _configChangePromiseChain: Thenable; private _currentConfig: vscode.WorkspaceConfiguration; private _event: events.EventEmitter; @@ -55,7 +55,7 @@ export class AzureAccountProviderService implements vscode.Disposable { // 2a) Store the credential provider for use later // 2b) Register the configuration change handler // 2c) Perform an initial config change handling - return data.credentials.getProvider(AzureAccountProviderService.CredentialNamespace) + return sqlops.credentials.getProvider(AzureAccountProviderService.CredentialNamespace) .then(credProvider => { self._credentialProvider = credProvider; @@ -138,7 +138,7 @@ export class AzureAccountProviderService implements vscode.Disposable { let tokenCache = new CredentialServiceTokenCache(self._credentialProvider, tokenCacheKey, tokenCachePath); let accountProvider = new AzureAccountProvider(provider.metadata, tokenCache); self._accountProviders[provider.metadata.id] = accountProvider; - self._accountDisposals[provider.metadata.id] = data.accounts.registerAccountProvider(provider.metadata, accountProvider); + self._accountDisposals[provider.metadata.id] = sqlops.accounts.registerAccountProvider(provider.metadata, accountProvider); resolve(); } catch (e) { console.error(`Failed to register account provider: ${e}`); diff --git a/extensions/account-provider-azure/src/account-provider/interfaces.ts b/extensions/account-provider-azure/src/account-provider/interfaces.ts index 2228d03902..63d4337560 100644 --- a/extensions/account-provider-azure/src/account-provider/interfaces.ts +++ b/extensions/account-provider-azure/src/account-provider/interfaces.ts @@ -1,6 +1,6 @@ 'use strict'; -import * as data from 'data'; +import * as sqlops from 'sqlops'; /** * Represents a tenant (an Azure Active Directory instance) to which a user has access @@ -118,7 +118,7 @@ export interface ProviderSettings { /** * Extension of account provider metadata to override settings type for Azure account providers */ -export interface AzureAccountProviderMetadata extends data.AccountProviderMetadata { +export interface AzureAccountProviderMetadata extends sqlops.AccountProviderMetadata { /** * Azure specific account provider settings. */ @@ -143,7 +143,7 @@ export interface AzureAccountProperties { /** * Override of the Account type to enforce properties that are AzureAccountProperties */ -export interface AzureAccount extends data.Account { +export interface AzureAccount extends sqlops.Account { /** * AzureAccountProperties specifically used for Azure accounts */ @@ -179,4 +179,4 @@ export interface AzureAccountSecurityToken { * Azure account security token maps a tenant ID to the information returned from a request to get * an access token. The list of tenants correspond to the tenants in the account properties. */ -export type AzureAccountSecurityTokenCollection = {[tenantId: string]: AzureAccountSecurityToken}; +export type AzureAccountSecurityTokenCollection = { [tenantId: string]: AzureAccountSecurityToken }; diff --git a/extensions/account-provider-azure/src/account-provider/tokenCache.ts b/extensions/account-provider-azure/src/account-provider/tokenCache.ts index 718b1586db..8578504e3a 100644 --- a/extensions/account-provider-azure/src/account-provider/tokenCache.ts +++ b/extensions/account-provider-azure/src/account-provider/tokenCache.ts @@ -6,7 +6,7 @@ 'use strict'; import * as adal from 'adal-node'; -import * as data from 'data'; +import * as sqlops from 'sqlops'; import * as crypto from 'crypto'; import * as fs from 'fs'; @@ -19,7 +19,7 @@ export default class TokenCache implements adal.TokenCache { private _activeOperation: Thenable; constructor( - private _credentialProvider: data.CredentialProvider, + private _credentialProvider: sqlops.CredentialProvider, private _credentialServiceKey: string, private _cacheSerializationPath: string ) { diff --git a/extensions/account-provider-azure/src/typings/ref.d.ts b/extensions/account-provider-azure/src/typings/ref.d.ts index e21045c0c8..797c797001 100644 --- a/extensions/account-provider-azure/src/typings/ref.d.ts +++ b/extensions/account-provider-azure/src/typings/ref.d.ts @@ -4,4 +4,4 @@ *--------------------------------------------------------------------------------------------*/ /// -/// +/// diff --git a/extensions/mssql/client/src/controllers/mainController.ts b/extensions/mssql/client/src/controllers/mainController.ts index 0cb901caa9..e1626db05a 100644 --- a/extensions/mssql/client/src/controllers/mainController.ts +++ b/extensions/mssql/client/src/controllers/mainController.ts @@ -4,12 +4,12 @@ *--------------------------------------------------------------------------------------------*/ 'use strict'; -import vscode = require('vscode'); -import data = require('data'); +import * as vscode from 'vscode'; +import * as sqlops from 'sqlops'; import { Constants } from '../models/constants'; import { Serialization } from '../serialize/serialization'; -import { AzureResourceProvider } from '../resourceProvider/resourceProvider'; import { CredentialStore } from '../credentialstore/credentialstore'; +import { AzureResourceProvider } from '../resourceProvider/resourceProvider'; import { IExtensionConstants, Telemetry, Constants as SharedConstants, SqlToolsServiceClient, VscodeWrapper, Utils, PlatformInformation } from 'extensions-modules'; import { SqlOpsDataClient } from 'dataprotocol-client'; import * as path from 'path'; @@ -101,7 +101,7 @@ export default class MainController implements vscode.Disposable { self.createResourceProviderClient().then(rpClient => { let resourceProvider = new AzureResourceProvider(self._client, rpClient); - data.resources.registerResourceProvider({ + sqlops.resources.registerResourceProvider({ displayName: 'Azure SQL Resource Provider', // TODO Localize id: 'Microsoft.Azure.SQL.ResourceProvider', settings: { @@ -116,19 +116,19 @@ export default class MainController implements vscode.Disposable { self.createCredentialClient().then(credentialClient => { self._credentialStore.languageClient = credentialClient; credentialClient.onReady().then(() => { - let credentialProvider: data.CredentialProvider = { + let credentialProvider: sqlops.CredentialProvider = { handle: 0, saveCredential(credentialId: string, password: string): Thenable { return self._credentialStore.saveCredential(credentialId, password); }, - readCredential(credentialId: string): Thenable { + readCredential(credentialId: string): Thenable { return self._credentialStore.readCredential(credentialId); }, deleteCredential(credentialId: string): Thenable { return self._credentialStore.deleteCredential(credentialId); } }; - data.credentials.registerProvider(credentialProvider); + sqlops.credentials.registerProvider(credentialProvider); Utils.logDebug('credentialProvider registered', MainController._extensionConstants.extensionConfigSectionName); }); }, error => { diff --git a/extensions/mssql/client/src/models/contracts.ts b/extensions/mssql/client/src/models/contracts.ts index 4f387acfc2..b00f3d53df 100644 --- a/extensions/mssql/client/src/models/contracts.ts +++ b/extensions/mssql/client/src/models/contracts.ts @@ -5,7 +5,7 @@ 'use strict'; import { RequestType } from 'vscode-languageclient'; -import * as data from 'data'; +import * as sqlops from 'sqlops'; // DEV-NOTE: Still finalizing what we'll need as part of this interface /** @@ -22,7 +22,7 @@ export class SaveResultsInfo { } export namespace SaveAsRequest { - export const type = new RequestType('query/saveAs'); + export const type = new RequestType('query/saveAs'); } // --------------------------------- < Read Credential Request > ------------------------------------------------- @@ -77,7 +77,7 @@ export namespace HandleFirewallRuleRequest { // Firewall rule interfaces export interface CreateFirewallRuleParams { - account: data.Account; + account: sqlops.Account; serverName: string; startIpAddress: string; endIpAddress: string; diff --git a/extensions/mssql/client/src/resourceprovider/resourceprovider.ts b/extensions/mssql/client/src/resourceprovider/resourceprovider.ts index 28b210a81a..b7ca8ea70c 100644 --- a/extensions/mssql/client/src/resourceprovider/resourceprovider.ts +++ b/extensions/mssql/client/src/resourceprovider/resourceprovider.ts @@ -7,7 +7,7 @@ import * as Contracts from '../models/contracts'; import { SqlToolsServiceClient } from 'extensions-modules'; import { SqlOpsDataClient } from 'dataprotocol-client'; -import * as data from 'data'; +import * as sqlops from 'sqlops'; import * as path from 'path'; @@ -16,7 +16,7 @@ import * as path from 'path'; * * Allows a single credential to be stored per service (that is, one username per service); */ -export class AzureResourceProvider implements data.ResourceProvider { +export class AzureResourceProvider implements sqlops.ResourceProvider { public languageClient: SqlOpsDataClient; @@ -27,9 +27,9 @@ export class AzureResourceProvider implements data.ResourceProvider { this.languageClient = langClient; } - public createFirewallRule(account: data.Account, firewallruleInfo: data.FirewallRuleInfo): Thenable { + public createFirewallRule(account: sqlops.Account, firewallruleInfo: sqlops.FirewallRuleInfo): Thenable { let self = this; - return new Promise((resolve, reject) => { + return new Promise((resolve, reject) => { self._client. sendRequest(Contracts.CreateFirewallRuleRequest.type, self.asCreateFirewallRuleParams(account, firewallruleInfo), self.languageClient) .then(response => { @@ -38,9 +38,9 @@ export class AzureResourceProvider implements data.ResourceProvider { }); } - public handleFirewallRule(errorCode: number, errorMessage: string, connectionTypeId: string): Thenable { + public handleFirewallRule(errorCode: number, errorMessage: string, connectionTypeId: string): Thenable { let self = this; - return new Promise((resolve, reject) => { + return new Promise((resolve, reject) => { let params: Contracts.HandleFirewallRuleParams = { errorCode: errorCode, errorMessage: errorMessage, connectionTypeId: connectionTypeId }; self._client. @@ -51,7 +51,7 @@ export class AzureResourceProvider implements data.ResourceProvider { }); } - private asCreateFirewallRuleParams(account: data.Account, params: data.FirewallRuleInfo): Contracts.CreateFirewallRuleParams { + private asCreateFirewallRuleParams(account: sqlops.Account, params: sqlops.FirewallRuleInfo): Contracts.CreateFirewallRuleParams { return { account: account, serverName: params.serverName, diff --git a/extensions/mssql/client/src/serialize/iserialization.ts b/extensions/mssql/client/src/serialize/iserialization.ts index 904ed4a9fe..76542267c6 100644 --- a/extensions/mssql/client/src/serialize/iserialization.ts +++ b/extensions/mssql/client/src/serialize/iserialization.ts @@ -4,7 +4,7 @@ *--------------------------------------------------------------------------------------------*/ 'use strict'; -import * as data from 'data'; +import * as sqlops from 'sqlops'; /** * Serializer for saving results into a different format @@ -13,5 +13,5 @@ import * as data from 'data'; * @interface ISerialization */ export interface ISerialization { - saveAs(saveFormat: string, savePath: string, results: string, appendToFile: boolean): Promise; + saveAs(saveFormat: string, savePath: string, results: string, appendToFile: boolean): Promise; } diff --git a/extensions/mssql/client/src/serialize/serialization.ts b/extensions/mssql/client/src/serialize/serialization.ts index b89e9a2156..d570f7ee12 100644 --- a/extensions/mssql/client/src/serialize/serialization.ts +++ b/extensions/mssql/client/src/serialize/serialization.ts @@ -7,7 +7,7 @@ import * as Contracts from '../models/contracts'; import { ISerialization } from './iserialization'; import { SqlToolsServiceClient } from 'extensions-modules'; -import * as data from 'data'; +import * as sqlops from 'sqlops'; import { SqlOpsDataClient } from 'dataprotocol-client'; import * as path from 'path'; @@ -28,14 +28,14 @@ export class Serialization implements ISerialization { * @param {string} credentialId the ID uniquely identifying this credential * @returns {Promise} Promise that resolved to the credential, or undefined if not found */ - public saveAs(saveFormat: string, savePath: string, results: string, appendToFile: boolean): Promise { + public saveAs(saveFormat: string, savePath: string, results: string, appendToFile: boolean): Promise { let self = this; let resultsInfo: Contracts.SaveResultsInfo = new Contracts.SaveResultsInfo(saveFormat, savePath, results, appendToFile); - return new Promise((resolve, reject) => { + return new Promise((resolve, reject) => { self._client .sendRequest(Contracts.SaveAsRequest.type, resultsInfo, this._languageClient) .then(result => { - resolve(result); + resolve(result); }, err => reject(err)); }); } diff --git a/extensions/mssql/client/src/typings/ref.d.ts b/extensions/mssql/client/src/typings/ref.d.ts index ab20470402..642b4842ad 100644 --- a/extensions/mssql/client/src/typings/ref.d.ts +++ b/extensions/mssql/client/src/typings/ref.d.ts @@ -4,5 +4,5 @@ *--------------------------------------------------------------------------------------------*/ /// -/// +/// /// \ No newline at end of file diff --git a/extensions/yarn.lock b/extensions/yarn.lock index e5b188723d..e7588632e2 100644 --- a/extensions/yarn.lock +++ b/extensions/yarn.lock @@ -8,24 +8,195 @@ agent-base@4, agent-base@^4.1.0: dependencies: es6-promisify "^5.0.0" +ajv@^5.1.0: + version "5.5.2" + resolved "https://registry.yarnpkg.com/ajv/-/ajv-5.5.2.tgz#73b5eeca3fab653e3d3f9422b341ad42205dc965" + dependencies: + co "^4.6.0" + fast-deep-equal "^1.0.0" + fast-json-stable-stringify "^2.0.0" + json-schema-traverse "^0.3.0" + +ansi-cyan@^0.1.1: + version "0.1.1" + resolved "https://registry.yarnpkg.com/ansi-cyan/-/ansi-cyan-0.1.1.tgz#538ae528af8982f28ae30d86f2f17456d2609873" + dependencies: + ansi-wrap "0.1.0" + +ansi-gray@^0.1.1: + version "0.1.1" + resolved "https://registry.yarnpkg.com/ansi-gray/-/ansi-gray-0.1.1.tgz#2962cf54ec9792c48510a3deb524436861ef7251" + dependencies: + ansi-wrap "0.1.0" + +ansi-red@^0.1.1: + version "0.1.1" + resolved "https://registry.yarnpkg.com/ansi-red/-/ansi-red-0.1.1.tgz#8c638f9d1080800a353c9c28c8a81ca4705d946c" + dependencies: + ansi-wrap "0.1.0" + +ansi-regex@^2.0.0: + version "2.1.1" + resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-2.1.1.tgz#c3b33ab5ee360d86e0e628f0468ae7ef27d654df" + +ansi-styles@^2.2.1: + version "2.2.1" + resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-2.2.1.tgz#b432dd3358b634cf75e1e4664368240533c1ddbe" + +ansi-wrap@0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/ansi-wrap/-/ansi-wrap-0.1.0.tgz#a82250ddb0015e9a27ca82e82ea603bbfa45efaf" + applicationinsights@0.18.0: version "0.18.0" resolved "https://registry.yarnpkg.com/applicationinsights/-/applicationinsights-0.18.0.tgz#162ebb48a383408bc4de44db32b417307f45bbc1" +arr-diff@^1.0.1: + version "1.1.0" + resolved "https://registry.yarnpkg.com/arr-diff/-/arr-diff-1.1.0.tgz#687c32758163588fef7de7b36fabe495eb1a399a" + dependencies: + arr-flatten "^1.0.1" + array-slice "^0.2.3" + +arr-diff@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/arr-diff/-/arr-diff-2.0.0.tgz#8f3b827f955a8bd669697e4a4256ac3ceae356cf" + dependencies: + arr-flatten "^1.0.1" + +arr-flatten@^1.0.1: + version "1.1.0" + resolved "https://registry.yarnpkg.com/arr-flatten/-/arr-flatten-1.1.0.tgz#36048bbff4e7b47e136644316c99669ea5ae91f1" + +arr-union@^2.0.1: + version "2.1.0" + resolved "https://registry.yarnpkg.com/arr-union/-/arr-union-2.1.0.tgz#20f9eab5ec70f5c7d215b1077b1c39161d292c7d" + +array-differ@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/array-differ/-/array-differ-1.0.0.tgz#eff52e3758249d33be402b8bb8e564bb2b5d4031" + +array-slice@^0.2.3: + version "0.2.3" + resolved "https://registry.yarnpkg.com/array-slice/-/array-slice-0.2.3.tgz#dd3cfb80ed7973a75117cdac69b0b99ec86186f5" + +array-union@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/array-union/-/array-union-1.0.2.tgz#9a34410e4f4e3da23dea375be5be70f24778ec39" + dependencies: + array-uniq "^1.0.1" + +array-uniq@^1.0.1, array-uniq@^1.0.2: + version "1.0.3" + resolved "https://registry.yarnpkg.com/array-uniq/-/array-uniq-1.0.3.tgz#af6ac877a25cc7f74e058894753858dfdb24fdb6" + +array-unique@^0.2.1: + version "0.2.1" + resolved "https://registry.yarnpkg.com/array-unique/-/array-unique-0.2.1.tgz#a1d97ccafcbc2625cc70fadceb36a50c58b01a53" + +arrify@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/arrify/-/arrify-1.0.1.tgz#898508da2226f380df904728456849c1501a4b0d" + +asn1@~0.2.3: + version "0.2.3" + resolved "https://registry.yarnpkg.com/asn1/-/asn1-0.2.3.tgz#dac8787713c9966849fc8180777ebe9c1ddf3b86" + +assert-plus@1.0.0, assert-plus@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/assert-plus/-/assert-plus-1.0.0.tgz#f12e0f3c5d77b0b1cdd9146942e4e96c1e4dd525" + +assert-plus@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/assert-plus/-/assert-plus-0.2.0.tgz#d74e1b87e7affc0db8aadb7021f3fe48101ab234" + +asynckit@^0.4.0: + version "0.4.0" + resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79" + +aws-sign2@~0.6.0: + version "0.6.0" + resolved "https://registry.yarnpkg.com/aws-sign2/-/aws-sign2-0.6.0.tgz#14342dd38dbcc94d0e5b87d763cd63612c0e794f" + +aws-sign2@~0.7.0: + version "0.7.0" + resolved "https://registry.yarnpkg.com/aws-sign2/-/aws-sign2-0.7.0.tgz#b46e890934a9591f2d2f6f86d7e6a9f1b3fe76a8" + +aws4@^1.2.1, aws4@^1.6.0: + version "1.6.0" + resolved "https://registry.yarnpkg.com/aws4/-/aws4-1.6.0.tgz#83ef5ca860b2b32e4a0deedee8c771b9db57471e" + +balanced-match@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.0.tgz#89b4d199ab2bee49de164ea02b89ce462d71b767" + base64-js@0.0.8: version "0.0.8" resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-0.0.8.tgz#1101e9544f4a76b1bc3b26d452ca96d7a35e7978" +bcrypt-pbkdf@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.1.tgz#63bc5dcb61331b92bc05fd528953c33462a06f8d" + dependencies: + tweetnacl "^0.14.3" + +beeper@^1.0.0: + version "1.1.1" + resolved "https://registry.yarnpkg.com/beeper/-/beeper-1.1.1.tgz#e6d5ea8c5dad001304a70b22638447f69cb2f809" + bl@^1.0.0: version "1.2.1" resolved "https://registry.yarnpkg.com/bl/-/bl-1.2.1.tgz#cac328f7bee45730d404b692203fcb590e172d5e" dependencies: readable-stream "^2.0.5" +block-stream@*: + version "0.0.9" + resolved "https://registry.yarnpkg.com/block-stream/-/block-stream-0.0.9.tgz#13ebfe778a03205cfe03751481ebb4b3300c126a" + dependencies: + inherits "~2.0.0" + bluebird@^3.5.0: version "3.5.1" resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.5.1.tgz#d9551f9de98f1fcda1e683d17ee91a0602ee2eb9" +boom@2.x.x: + version "2.10.1" + resolved "https://registry.yarnpkg.com/boom/-/boom-2.10.1.tgz#39c8918ceff5799f83f9492a848f625add0c766f" + dependencies: + hoek "2.x.x" + +boom@4.x.x: + version "4.3.1" + resolved "https://registry.yarnpkg.com/boom/-/boom-4.3.1.tgz#4f8a3005cb4a7e3889f749030fd25b96e01d2e31" + dependencies: + hoek "4.x.x" + +boom@5.x.x: + version "5.2.0" + resolved "https://registry.yarnpkg.com/boom/-/boom-5.2.0.tgz#5dd9da6ee3a5f302077436290cb717d3f4a54e02" + dependencies: + hoek "4.x.x" + +brace-expansion@^1.1.7: + version "1.1.11" + resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd" + dependencies: + balanced-match "^1.0.0" + concat-map "0.0.1" + +braces@^1.8.2: + version "1.8.5" + resolved "https://registry.yarnpkg.com/braces/-/braces-1.8.5.tgz#ba77962e12dff969d6b76711e914b737857bf6a7" + dependencies: + expand-range "^1.8.1" + preserve "^0.2.0" + repeat-element "^1.1.2" + +browser-stdout@1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/browser-stdout/-/browser-stdout-1.3.0.tgz#f351d32969d32fa5d7a5567154263d928ae3bd1f" + buffer-crc32@~0.2.3: version "0.2.13" resolved "https://registry.yarnpkg.com/buffer-crc32/-/buffer-crc32-0.2.13.tgz#0d333e3f00eac50aa1454abd30ef8c2a5d9a7242" @@ -38,29 +209,145 @@ buffer@^3.0.1: ieee754 "^1.1.4" isarray "^1.0.0" +caseless@~0.11.0: + version "0.11.0" + resolved "https://registry.yarnpkg.com/caseless/-/caseless-0.11.0.tgz#715b96ea9841593cc33067923f5ec60ebda4f7d7" + +caseless@~0.12.0: + version "0.12.0" + resolved "https://registry.yarnpkg.com/caseless/-/caseless-0.12.0.tgz#1b681c21ff84033c826543090689420d187151dc" + +chalk@^1.0.0, chalk@^1.1.1: + version "1.1.3" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-1.1.3.tgz#a8115c55e4a702fe4d150abd3872822a7e09fc98" + dependencies: + ansi-styles "^2.2.1" + escape-string-regexp "^1.0.2" + has-ansi "^2.0.0" + strip-ansi "^3.0.0" + supports-color "^2.0.0" + +clone-buffer@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/clone-buffer/-/clone-buffer-1.0.0.tgz#e3e25b207ac4e701af721e2cb5a16792cac3dc58" + +clone-stats@^0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/clone-stats/-/clone-stats-0.0.1.tgz#b88f94a82cf38b8791d58046ea4029ad88ca99d1" + +clone-stats@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/clone-stats/-/clone-stats-1.0.0.tgz#b3782dff8bb5474e18b9b6bf0fdfe782f8777680" + +clone@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/clone/-/clone-0.2.0.tgz#c6126a90ad4f72dbf5acdb243cc37724fe93fc1f" + +clone@^1.0.0: + version "1.0.3" + resolved "https://registry.yarnpkg.com/clone/-/clone-1.0.3.tgz#298d7e2231660f40c003c2ed3140decf3f53085f" + +clone@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/clone/-/clone-2.1.1.tgz#d217d1e961118e3ac9a4b8bba3285553bf647cdb" + +cloneable-readable@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/cloneable-readable/-/cloneable-readable-1.0.0.tgz#a6290d413f217a61232f95e458ff38418cfb0117" + dependencies: + inherits "^2.0.1" + process-nextick-args "^1.0.6" + through2 "^2.0.1" + +co@^4.6.0: + version "4.6.0" + resolved "https://registry.yarnpkg.com/co/-/co-4.6.0.tgz#6ea6bdf3d853ae54ccb8e47bfa0bf3f9031fb184" + +color-support@^1.1.3: + version "1.1.3" + resolved "https://registry.yarnpkg.com/color-support/-/color-support-1.1.3.tgz#93834379a1cc9a0c61f82f52f0d04322251bd5a2" + +combined-stream@1.0.6, combined-stream@^1.0.5, combined-stream@~1.0.5: + version "1.0.6" + resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.6.tgz#723e7df6e801ac5613113a7e445a9b69cb632818" + dependencies: + delayed-stream "~1.0.0" + +commander@2.11.0: + version "2.11.0" + resolved "https://registry.yarnpkg.com/commander/-/commander-2.11.0.tgz#157152fd1e7a6c8d98a5b715cf376df928004563" + +commander@2.9.0: + version "2.9.0" + resolved "https://registry.yarnpkg.com/commander/-/commander-2.9.0.tgz#9c99094176e12240cb22d6c5146098400fe0f7d4" + dependencies: + graceful-readlink ">= 1.0.0" + +commander@^2.9.0: + version "2.14.1" + resolved "https://registry.yarnpkg.com/commander/-/commander-2.14.1.tgz#2235123e37af8ca3c65df45b026dbd357b01b9aa" + commander@~2.8.1: version "2.8.1" resolved "https://registry.yarnpkg.com/commander/-/commander-2.8.1.tgz#06be367febfda0c330aa1e2a072d3dc9762425d4" dependencies: graceful-readlink ">= 1.0.0" -core-util-is@~1.0.0: +concat-map@0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" + +convert-source-map@^1.1.1: + version "1.5.1" + resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.5.1.tgz#b8278097b9bc229365de5c62cf5fcaed8b5599e5" + +core-util-is@1.0.2, core-util-is@~1.0.0: version "1.0.2" resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7" -"dataprotocol-client@file:../dataprotocol-client": - version "1.0.0" +cryptiles@2.x.x: + version "2.0.5" + resolved "https://registry.yarnpkg.com/cryptiles/-/cryptiles-2.0.5.tgz#3bdfecdc608147c1c67202fa291e7dca59eaa3b8" dependencies: - typescript "2.6.2" + boom "2.x.x" + +cryptiles@3.x.x: + version "3.1.2" + resolved "https://registry.yarnpkg.com/cryptiles/-/cryptiles-3.1.2.tgz#a89fbb220f5ce25ec56e8c4aa8a4fd7b5b0d29fe" + dependencies: + boom "5.x.x" + +dashdash@^1.12.0: + version "1.14.1" + resolved "https://registry.yarnpkg.com/dashdash/-/dashdash-1.14.1.tgz#853cfa0f7cbe2fed5de20326b8dd581035f6e2f0" + dependencies: + assert-plus "^1.0.0" + +"dataprotocol-client@git://github.com/Microsoft/sqlops-dataprotocolclient.git#release": + version "1.0.0" + resolved "git://github.com/Microsoft/sqlops-dataprotocolclient.git#739fdf93140c3cb1bc882076bf11765b187bf8a3" + dependencies: + sqlops "git://github.com/anthonydresser/vscode-extension-vscode" + vscode "1.1.5" vscode-languageclient "3.5.0" +dateformat@^2.0.0: + version "2.2.0" + 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@2.6.8: + version "2.6.8" + resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.8.tgz#e731531ca2ede27d188222427da17821d68ff4fc" + dependencies: + ms "2.0.0" + +debug@3.1.0, debug@^3.1.0: version "3.1.0" resolved "https://registry.yarnpkg.com/debug/-/debug-3.1.0.tgz#5bb5a0672628b64149566ba16819e61518c67261" dependencies: @@ -114,6 +401,49 @@ decompress@^4.2.0: pify "^2.3.0" strip-dirs "^2.0.0" +deep-assign@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/deep-assign/-/deep-assign-1.0.0.tgz#b092743be8427dc621ea0067cdec7e70dd19f37b" + dependencies: + is-obj "^1.0.0" + +delayed-stream@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619" + +diff@3.2.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/diff/-/diff-3.2.0.tgz#c9ce393a4b7cbd0b058a725c93df299027868ff9" + +diff@3.3.1: + version "3.3.1" + resolved "https://registry.yarnpkg.com/diff/-/diff-3.3.1.tgz#aa8567a6eed03c531fc89d3f711cd0e5259dec75" + +duplexer2@0.0.2: + version "0.0.2" + resolved "https://registry.yarnpkg.com/duplexer2/-/duplexer2-0.0.2.tgz#c614dcf67e2fb14995a91711e5a617e8a60a31db" + dependencies: + readable-stream "~1.1.9" + +duplexer@~0.1.1: + version "0.1.1" + resolved "https://registry.yarnpkg.com/duplexer/-/duplexer-0.1.1.tgz#ace6ff808c1ce66b57d1ebf97977acb02334cfc1" + +duplexify@^3.2.0: + version "3.5.3" + resolved "https://registry.yarnpkg.com/duplexify/-/duplexify-3.5.3.tgz#8b5818800df92fd0125b27ab896491912858243e" + dependencies: + end-of-stream "^1.0.0" + inherits "^2.0.1" + readable-stream "^2.0.0" + stream-shift "^1.0.0" + +ecc-jsbn@~0.1.1: + version "0.1.1" + resolved "https://registry.yarnpkg.com/ecc-jsbn/-/ecc-jsbn-0.1.1.tgz#0fc73a9ed5f0d53c38193398523ef7e543777505" + dependencies: + jsbn "~0.1.0" + end-of-stream@^1.0.0: version "1.4.1" resolved "https://registry.yarnpkg.com/end-of-stream/-/end-of-stream-1.4.1.tgz#ed29634d19baba463b6ce6b80a37213eab71ec43" @@ -130,10 +460,54 @@ es6-promisify@^5.0.0: dependencies: es6-promise "^4.0.3" +escape-string-regexp@1.0.5, escape-string-regexp@^1.0.2: + version "1.0.5" + resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" + +event-stream@^3.3.1, event-stream@~3.3.4: + version "3.3.4" + resolved "https://registry.yarnpkg.com/event-stream/-/event-stream-3.3.4.tgz#4ab4c9a0f5a54db9338b4c34d86bfce8f4b35571" + dependencies: + duplexer "~0.1.1" + from "~0" + map-stream "~0.1.0" + pause-stream "0.0.11" + split "0.3" + stream-combiner "~0.0.4" + through "~2.3.1" + +expand-brackets@^0.1.4: + version "0.1.5" + resolved "https://registry.yarnpkg.com/expand-brackets/-/expand-brackets-0.1.5.tgz#df07284e342a807cd733ac5af72411e581d1177b" + dependencies: + is-posix-bracket "^0.1.0" + +expand-range@^1.8.1: + version "1.8.2" + resolved "https://registry.yarnpkg.com/expand-range/-/expand-range-1.8.2.tgz#a299effd335fe2721ebae8e257ec79644fc85337" + dependencies: + fill-range "^2.1.0" + +extend-shallow@^1.1.2: + version "1.1.4" + resolved "https://registry.yarnpkg.com/extend-shallow/-/extend-shallow-1.1.4.tgz#19d6bf94dfc09d76ba711f39b872d21ff4dd9071" + dependencies: + kind-of "^1.1.0" + +extend-shallow@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/extend-shallow/-/extend-shallow-2.0.1.tgz#51af7d614ad9a9f610ea1bafbb989d6b1c56890f" + dependencies: + is-extendable "^0.1.0" + +extend@^3.0.0, extend@~3.0.0, extend@~3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/extend/-/extend-3.0.1.tgz#a755ea7bc1adfcc5a31ce7e762dbaadc5e636444" + "extensions-modules@file:../extensions-modules": version "0.1.0" dependencies: - dataprotocol-client "file:C:/Users/andresse/AppData/Local/Yarn/cache/v1/dataprotocol-client" + dataprotocol-client "git://github.com/Microsoft/sqlops-dataprotocolclient.git#release" decompress "^4.2.0" fs-extra-promise "^1.0.1" http-proxy-agent "^2.0.0" @@ -143,6 +517,36 @@ es6-promisify@^5.0.0: vscode-extension-telemetry "0.0.8" vscode-languageclient "^3.5.0" +extglob@^0.3.1: + version "0.3.2" + resolved "https://registry.yarnpkg.com/extglob/-/extglob-0.3.2.tgz#2e18ff3d2f49ab2765cec9023f011daa8d8349a1" + dependencies: + is-extglob "^1.0.0" + +extsprintf@1.3.0: + version "1.3.0" + 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: + version "1.3.2" + resolved "https://registry.yarnpkg.com/fancy-log/-/fancy-log-1.3.2.tgz#f41125e3d84f2e7d89a43d06d958c8f78be16be1" + dependencies: + ansi-gray "^0.1.1" + color-support "^1.1.3" + time-stamp "^1.0.0" + +fast-deep-equal@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-1.0.0.tgz#96256a3bc975595eb36d82e9929d060d893439ff" + +fast-json-stable-stringify@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz#d5142c0caee6b1189f87d3a76111064f86c8bbf2" + fd-slicer@~1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/fd-slicer/-/fd-slicer-1.0.1.tgz#8b5bcbd9ec327c5041bf9ab023fd6750f1177e65" @@ -161,6 +565,58 @@ file-type@^6.1.0: version "6.2.0" resolved "https://registry.yarnpkg.com/file-type/-/file-type-6.2.0.tgz#e50cd75d356ffed4e306dc4f5bcf52a79903a919" +filename-regex@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/filename-regex/-/filename-regex-2.0.1.tgz#c1c4b9bee3e09725ddb106b75c1e301fe2f18b26" + +fill-range@^2.1.0: + version "2.2.3" + resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-2.2.3.tgz#50b77dfd7e469bc7492470963699fe7a8485a723" + dependencies: + is-number "^2.1.0" + isobject "^2.0.0" + randomatic "^1.1.3" + repeat-element "^1.1.2" + repeat-string "^1.5.2" + +first-chunk-stream@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/first-chunk-stream/-/first-chunk-stream-1.0.0.tgz#59bfb50cd905f60d7c394cd3d9acaab4e6ad934e" + +for-in@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/for-in/-/for-in-1.0.2.tgz#81068d295a8142ec0ac726c6e2200c30fb6d5e80" + +for-own@^0.1.4: + version "0.1.5" + resolved "https://registry.yarnpkg.com/for-own/-/for-own-0.1.5.tgz#5265c681a4f294dabbf17c9509b6763aa84510ce" + dependencies: + for-in "^1.0.1" + +forever-agent@~0.6.1: + version "0.6.1" + resolved "https://registry.yarnpkg.com/forever-agent/-/forever-agent-0.6.1.tgz#fbc71f0c41adeb37f96c577ad1ed42d8fdacca91" + +form-data@~2.1.1: + version "2.1.4" + resolved "https://registry.yarnpkg.com/form-data/-/form-data-2.1.4.tgz#33c183acf193276ecaa98143a69e94bfee1750d1" + dependencies: + asynckit "^0.4.0" + combined-stream "^1.0.5" + mime-types "^2.1.12" + +form-data@~2.3.1: + version "2.3.2" + resolved "https://registry.yarnpkg.com/form-data/-/form-data-2.3.2.tgz#4970498be604c20c005d4f5c23aecd21d6b49099" + dependencies: + asynckit "^0.4.0" + combined-stream "1.0.6" + mime-types "^2.1.12" + +from@~0: + version "0.1.7" + resolved "https://registry.yarnpkg.com/from/-/from-0.1.7.tgz#83c60afc58b9c56997007ed1a768b3ab303a44fe" + fs-extra-promise@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/fs-extra-promise/-/fs-extra-promise-1.0.1.tgz#b6ed1ace97b10e06b95f458d051b7f05c6613ee6" @@ -175,6 +631,29 @@ fs-extra@^2.1.2: graceful-fs "^4.1.2" jsonfile "^2.1.0" +fs.realpath@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" + +fstream@^1.0.2: + version "1.0.11" + resolved "https://registry.yarnpkg.com/fstream/-/fstream-1.0.11.tgz#5c1fb1f117477114f0632a0eb4b71b3cb0fd3171" + dependencies: + graceful-fs "^4.1.2" + inherits "~2.0.0" + mkdirp ">=0.5 0" + rimraf "2" + +generate-function@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/generate-function/-/generate-function-2.0.0.tgz#6858fe7c0969b7d4e9093337647ac79f60dfbe74" + +generate-object-property@^1.1.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/generate-object-property/-/generate-object-property-1.2.0.tgz#9c0e1c40308ce804f4783618b937fa88f99d50d0" + dependencies: + is-property "^1.0.0" + get-stream@^2.2.0: version "2.3.1" resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-2.3.1.tgz#5f38f93f346009666ee0150a054167f91bdd95de" @@ -182,7 +661,84 @@ get-stream@^2.2.0: object-assign "^4.0.1" pinkie-promise "^2.0.0" -graceful-fs@^4.1.10, graceful-fs@^4.1.2, graceful-fs@^4.1.6: +getpass@^0.1.1: + version "0.1.7" + resolved "https://registry.yarnpkg.com/getpass/-/getpass-0.1.7.tgz#5eff8e3e684d569ae4cb2b1282604e8ba62149fa" + dependencies: + assert-plus "^1.0.0" + +glob-base@^0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/glob-base/-/glob-base-0.3.0.tgz#dbb164f6221b1c0b1ccf82aea328b497df0ea3c4" + dependencies: + glob-parent "^2.0.0" + is-glob "^2.0.0" + +glob-parent@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-2.0.0.tgz#81383d72db054fcccf5336daa902f182f6edbb28" + dependencies: + is-glob "^2.0.0" + +glob-parent@^3.0.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-3.1.0.tgz#9e6af6299d8d3bd2bd40430832bd113df906c5ae" + dependencies: + is-glob "^3.1.0" + path-dirname "^1.0.0" + +glob-stream@^5.3.2: + version "5.3.5" + resolved "https://registry.yarnpkg.com/glob-stream/-/glob-stream-5.3.5.tgz#a55665a9a8ccdc41915a87c701e32d4e016fad22" + dependencies: + extend "^3.0.0" + glob "^5.0.3" + glob-parent "^3.0.0" + micromatch "^2.3.7" + ordered-read-streams "^0.3.0" + through2 "^0.6.0" + to-absolute-glob "^0.1.1" + unique-stream "^2.0.2" + +glob@7.1.1: + version "7.1.1" + resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.1.tgz#805211df04faaf1c63a3600306cdf5ade50b2ec8" + dependencies: + fs.realpath "^1.0.0" + inflight "^1.0.4" + inherits "2" + minimatch "^3.0.2" + once "^1.3.0" + path-is-absolute "^1.0.0" + +glob@7.1.2, glob@^7.0.5, glob@^7.1.1, glob@^7.1.2: + version "7.1.2" + resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.2.tgz#c19c9df9a028702d678612384a6552404c636d15" + dependencies: + fs.realpath "^1.0.0" + inflight "^1.0.4" + inherits "2" + minimatch "^3.0.4" + once "^1.3.0" + path-is-absolute "^1.0.0" + +glob@^5.0.3: + version "5.0.15" + resolved "https://registry.yarnpkg.com/glob/-/glob-5.0.15.tgz#1bc936b9e02f4a603fcc222ecf7633d30b8b93b1" + dependencies: + inflight "^1.0.4" + inherits "2" + minimatch "2 || 3" + once "^1.3.0" + path-is-absolute "^1.0.0" + +glogg@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/glogg/-/glogg-1.0.1.tgz#dcf758e44789cc3f3d32c1f3562a3676e6a34810" + dependencies: + sparkles "^1.0.0" + +graceful-fs@^4.0.0, graceful-fs@^4.1.10, graceful-fs@^4.1.2, graceful-fs@^4.1.6: version "4.1.11" resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.1.11.tgz#0e8bdfe4d1ddb8854d64e04ea7c00e2a026e5658" @@ -190,6 +746,206 @@ graceful-fs@^4.1.10, graceful-fs@^4.1.2, graceful-fs@^4.1.6: version "1.0.1" resolved "https://registry.yarnpkg.com/graceful-readlink/-/graceful-readlink-1.0.1.tgz#4cafad76bc62f02fa039b2f94e9a3dd3a391a725" +growl@1.10.3: + version "1.10.3" + resolved "https://registry.yarnpkg.com/growl/-/growl-1.10.3.tgz#1926ba90cf3edfe2adb4927f5880bc22c66c790f" + +growl@1.9.2: + version "1.9.2" + resolved "https://registry.yarnpkg.com/growl/-/growl-1.9.2.tgz#0ea7743715db8d8de2c5ede1775e1b45ac85c02f" + +gulp-chmod@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/gulp-chmod/-/gulp-chmod-2.0.0.tgz#00c390b928a0799b251accf631aa09e01cc6299c" + dependencies: + deep-assign "^1.0.0" + stat-mode "^0.2.0" + through2 "^2.0.0" + +gulp-filter@^5.0.0, gulp-filter@^5.0.1: + version "5.1.0" + resolved "https://registry.yarnpkg.com/gulp-filter/-/gulp-filter-5.1.0.tgz#a05e11affb07cf7dcf41a7de1cb7b63ac3783e73" + dependencies: + multimatch "^2.0.0" + plugin-error "^0.1.2" + streamfilter "^1.0.5" + +gulp-gunzip@0.0.3: + version "0.0.3" + resolved "https://registry.yarnpkg.com/gulp-gunzip/-/gulp-gunzip-0.0.3.tgz#7b6e07b0f58fd3d42515c48ead5a63df0572f62f" + dependencies: + through2 "~0.6.5" + vinyl "~0.4.6" + +gulp-gunzip@1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/gulp-gunzip/-/gulp-gunzip-1.0.0.tgz#15b741145e83a9c6f50886241b57cc5871f151a9" + dependencies: + through2 "~0.6.5" + vinyl "~0.4.6" + +gulp-remote-src@^0.4.2, gulp-remote-src@^0.4.3: + version "0.4.3" + resolved "https://registry.yarnpkg.com/gulp-remote-src/-/gulp-remote-src-0.4.3.tgz#5728cfd643433dd4845ddef0969f0f971a2ab4a1" + dependencies: + event-stream "~3.3.4" + node.extend "~1.1.2" + request "~2.79.0" + through2 "~2.0.3" + vinyl "~2.0.1" + +gulp-sourcemaps@1.6.0: + version "1.6.0" + resolved "https://registry.yarnpkg.com/gulp-sourcemaps/-/gulp-sourcemaps-1.6.0.tgz#b86ff349d801ceb56e1d9e7dc7bbcb4b7dee600c" + dependencies: + convert-source-map "^1.1.1" + graceful-fs "^4.1.2" + strip-bom "^2.0.0" + through2 "^2.0.0" + vinyl "^1.0.0" + +gulp-symdest@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/gulp-symdest/-/gulp-symdest-1.1.0.tgz#c165320732d192ce56fd94271ffa123234bf2ae0" + dependencies: + event-stream "^3.3.1" + mkdirp "^0.5.1" + queue "^3.1.0" + vinyl-fs "^2.4.3" + +gulp-untar@^0.0.6: + version "0.0.6" + resolved "https://registry.yarnpkg.com/gulp-untar/-/gulp-untar-0.0.6.tgz#d6bdefde7e9a8e054c9f162385a0782c4be74000" + dependencies: + event-stream "~3.3.4" + gulp-util "~3.0.8" + streamifier "~0.1.1" + tar "^2.2.1" + through2 "~2.0.3" + +gulp-util@~3.0.8: + version "3.0.8" + resolved "https://registry.yarnpkg.com/gulp-util/-/gulp-util-3.0.8.tgz#0054e1e744502e27c04c187c3ecc505dd54bbb4f" + dependencies: + array-differ "^1.0.0" + array-uniq "^1.0.2" + beeper "^1.0.0" + chalk "^1.0.0" + dateformat "^2.0.0" + fancy-log "^1.1.0" + gulplog "^1.0.0" + has-gulplog "^0.1.0" + lodash._reescape "^3.0.0" + lodash._reevaluate "^3.0.0" + lodash._reinterpolate "^3.0.0" + lodash.template "^3.0.0" + minimist "^1.1.0" + multipipe "^0.1.2" + object-assign "^3.0.0" + replace-ext "0.0.1" + through2 "^2.0.0" + vinyl "^0.5.0" + +gulp-vinyl-zip@^1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/gulp-vinyl-zip/-/gulp-vinyl-zip-1.4.0.tgz#56382f2ccb57231bb0478c78737ccd572973bee1" + dependencies: + event-stream "^3.3.1" + queue "^3.0.10" + through2 "^0.6.3" + vinyl "^0.4.6" + vinyl-fs "^2.0.0" + yauzl "^2.2.1" + yazl "^2.2.1" + +gulp-vinyl-zip@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/gulp-vinyl-zip/-/gulp-vinyl-zip-2.1.0.tgz#24e40685dc05b7149995245099e0590263be8dad" + dependencies: + event-stream "^3.3.1" + queue "^4.2.1" + through2 "^2.0.3" + vinyl "^2.0.2" + vinyl-fs "^2.0.0" + yauzl "^2.2.1" + yazl "^2.2.1" + +gulplog@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/gulplog/-/gulplog-1.0.0.tgz#e28c4d45d05ecbbed818363ce8f9c5926229ffe5" + dependencies: + glogg "^1.0.0" + +har-schema@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/har-schema/-/har-schema-2.0.0.tgz#a94c2224ebcac04782a0d9035521f24735b7ec92" + +har-validator@~2.0.6: + version "2.0.6" + resolved "https://registry.yarnpkg.com/har-validator/-/har-validator-2.0.6.tgz#cdcbc08188265ad119b6a5a7c8ab70eecfb5d27d" + dependencies: + chalk "^1.1.1" + commander "^2.9.0" + is-my-json-valid "^2.12.4" + pinkie-promise "^2.0.0" + +har-validator@~5.0.3: + version "5.0.3" + resolved "https://registry.yarnpkg.com/har-validator/-/har-validator-5.0.3.tgz#ba402c266194f15956ef15e0fcf242993f6a7dfd" + dependencies: + ajv "^5.1.0" + har-schema "^2.0.0" + +has-ansi@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/has-ansi/-/has-ansi-2.0.0.tgz#34f5049ce1ecdf2b0649af3ef24e45ed35416d91" + dependencies: + ansi-regex "^2.0.0" + +has-flag@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-1.0.0.tgz#9d9e793165ce017a00f00418c43f942a7b1d11fa" + +has-flag@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-2.0.0.tgz#e8207af1cc7b30d446cc70b734b5e8be18f88d51" + +has-gulplog@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/has-gulplog/-/has-gulplog-0.1.0.tgz#6414c82913697da51590397dafb12f22967811ce" + dependencies: + sparkles "^1.0.0" + +hawk@~3.1.3: + version "3.1.3" + resolved "https://registry.yarnpkg.com/hawk/-/hawk-3.1.3.tgz#078444bd7c1640b0fe540d2c9b73d59678e8e1c4" + dependencies: + boom "2.x.x" + cryptiles "2.x.x" + hoek "2.x.x" + sntp "1.x.x" + +hawk@~6.0.2: + version "6.0.2" + resolved "https://registry.yarnpkg.com/hawk/-/hawk-6.0.2.tgz#af4d914eb065f9b5ce4d9d11c1cb2126eecc3038" + dependencies: + boom "4.x.x" + cryptiles "3.x.x" + hoek "4.x.x" + sntp "2.x.x" + +he@1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/he/-/he-1.1.1.tgz#93410fd21b009735151f8868c2f271f3427e23fd" + +hoek@2.x.x: + version "2.16.3" + resolved "https://registry.yarnpkg.com/hoek/-/hoek-2.16.3.tgz#20bb7403d3cea398e91dc4710a8ff1b8274a25ed" + +hoek@4.x.x: + version "4.2.1" + resolved "https://registry.yarnpkg.com/hoek/-/hoek-4.2.1.tgz#9634502aa12c445dd5a7c5734b572bb8738aacbb" + http-proxy-agent@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/http-proxy-agent/-/http-proxy-agent-2.0.0.tgz#46482a2f0523a4d6082551709f469cb3e4a85ff4" @@ -197,6 +953,22 @@ http-proxy-agent@^2.0.0: agent-base "4" debug "2" +http-signature@~1.1.0: + version "1.1.1" + resolved "https://registry.yarnpkg.com/http-signature/-/http-signature-1.1.1.tgz#df72e267066cd0ac67fb76adf8e134a8fbcf91bf" + dependencies: + assert-plus "^0.2.0" + jsprim "^1.2.2" + sshpk "^1.7.0" + +http-signature@~1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/http-signature/-/http-signature-1.2.0.tgz#9aecd925114772f3d95b65a60abb8f7c18fbace1" + dependencies: + assert-plus "^1.0.0" + jsprim "^1.2.2" + sshpk "^1.7.0" + https-proxy-agent@^2.1.0: version "2.1.1" resolved "https://registry.yarnpkg.com/https-proxy-agent/-/https-proxy-agent-2.1.1.tgz#a7ce4382a1ba8266ee848578778122d491260fd9" @@ -208,43 +980,463 @@ ieee754@^1.1.4: version "1.1.8" resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.1.8.tgz#be33d40ac10ef1926701f6f08a2d86fbfd1ad3e4" -inherits@~2.0.3: +inflight@^1.0.4: + version "1.0.6" + resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" + dependencies: + once "^1.3.0" + wrappy "1" + +inherits@2, inherits@^2.0.1, inherits@~2.0.0, inherits@~2.0.1, inherits@~2.0.3: version "2.0.3" resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de" +is-buffer@^1.1.5: + version "1.1.6" + resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-1.1.6.tgz#efaa2ea9daa0d7ab2ea13a97b2b8ad51fefbe8be" + +is-dotfile@^1.0.0: + version "1.0.3" + resolved "https://registry.yarnpkg.com/is-dotfile/-/is-dotfile-1.0.3.tgz#a6a2f32ffd2dfb04f5ca25ecd0f6b83cf798a1e1" + +is-equal-shallow@^0.1.3: + version "0.1.3" + resolved "https://registry.yarnpkg.com/is-equal-shallow/-/is-equal-shallow-0.1.3.tgz#2238098fc221de0bcfa5d9eac4c45d638aa1c534" + dependencies: + is-primitive "^2.0.0" + +is-extendable@^0.1.0, is-extendable@^0.1.1: + version "0.1.1" + resolved "https://registry.yarnpkg.com/is-extendable/-/is-extendable-0.1.1.tgz#62b110e289a471418e3ec36a617d472e301dfc89" + +is-extglob@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-1.0.0.tgz#ac468177c4943405a092fc8f29760c6ffc6206c0" + +is-extglob@^2.1.0: + version "2.1.1" + resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2" + +is-glob@^2.0.0, is-glob@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-2.0.1.tgz#d096f926a3ded5600f3fdfd91198cb0888c2d863" + dependencies: + is-extglob "^1.0.0" + +is-glob@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-3.1.0.tgz#7ba5ae24217804ac70707b96922567486cc3e84a" + dependencies: + 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: + version "2.17.2" + resolved "https://registry.yarnpkg.com/is-my-json-valid/-/is-my-json-valid-2.17.2.tgz#6b2103a288e94ef3de5cf15d29dd85fc4b78d65c" + dependencies: + generate-function "^2.0.0" + generate-object-property "^1.1.0" + is-my-ip-valid "^1.0.0" + jsonpointer "^4.0.0" + xtend "^4.0.0" + is-natural-number@^4.0.1: version "4.0.1" resolved "https://registry.yarnpkg.com/is-natural-number/-/is-natural-number-4.0.1.tgz#ab9d76e1db4ced51e35de0c72ebecf09f734cde8" -is-stream@^1.1.0: +is-number@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/is-number/-/is-number-2.1.0.tgz#01fcbbb393463a548f2f466cce16dece49db908f" + dependencies: + kind-of "^3.0.2" + +is-number@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/is-number/-/is-number-3.0.0.tgz#24fd6201a4782cf50561c810276afc7d12d71195" + dependencies: + kind-of "^3.0.2" + +is-obj@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/is-obj/-/is-obj-1.0.1.tgz#3e4729ac1f5fde025cd7d83a896dab9f4f67db0f" + +is-posix-bracket@^0.1.0: + version "0.1.1" + resolved "https://registry.yarnpkg.com/is-posix-bracket/-/is-posix-bracket-0.1.1.tgz#3334dc79774368e92f016e6fbc0a88f5cd6e6bc4" + +is-primitive@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/is-primitive/-/is-primitive-2.0.0.tgz#207bab91638499c07b2adf240a41a87210034575" + +is-property@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/is-property/-/is-property-1.0.2.tgz#57fe1c4e48474edd65b09911f26b1cd4095dda84" + +is-stream@^1.0.1, is-stream@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-1.1.0.tgz#12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44" -isarray@^1.0.0, isarray@~1.0.0: +is-typedarray@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-typedarray/-/is-typedarray-1.0.0.tgz#e479c80858df0c1b11ddda6940f96011fcda4a9a" + +is-utf8@^0.2.0: + version "0.2.1" + resolved "https://registry.yarnpkg.com/is-utf8/-/is-utf8-0.2.1.tgz#4b0da1442104d1b336340e80797e865cf39f7d72" + +is-valid-glob@^0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/is-valid-glob/-/is-valid-glob-0.3.0.tgz#d4b55c69f51886f9b65c70d6c2622d37e29f48fe" + +is@^3.1.0: + version "3.2.1" + resolved "https://registry.yarnpkg.com/is/-/is-3.2.1.tgz#d0ac2ad55eb7b0bec926a5266f6c662aaa83dca5" + +isarray@0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/isarray/-/isarray-0.0.1.tgz#8a18acfca9a8f4177e09abfc6038939b05d1eedf" + +isarray@1.0.0, isarray@^1.0.0, isarray@~1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11" +isobject@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/isobject/-/isobject-2.1.0.tgz#f065561096a3f1da2ef46272f815c840d87e0c89" + dependencies: + isarray "1.0.0" + +isstream@~0.1.2: + version "0.1.2" + resolved "https://registry.yarnpkg.com/isstream/-/isstream-0.1.2.tgz#47e63f7af55afa6f92e1500e690eb8b8529c099a" + +jsbn@~0.1.0: + version "0.1.1" + resolved "https://registry.yarnpkg.com/jsbn/-/jsbn-0.1.1.tgz#a5e654c2e5a2deb5f201d96cefbca80c0ef2f513" + +json-schema-traverse@^0.3.0: + version "0.3.1" + resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.3.1.tgz#349a6d44c53a51de89b40805c5d5e59b417d3340" + +json-schema@0.2.3: + version "0.2.3" + resolved "https://registry.yarnpkg.com/json-schema/-/json-schema-0.2.3.tgz#b480c892e59a2f05954ce727bd3f2a4e882f9e13" + +json-stable-stringify@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/json-stable-stringify/-/json-stable-stringify-1.0.1.tgz#9a759d39c5f2ff503fd5300646ed445f88c4f9af" + dependencies: + jsonify "~0.0.0" + +json-stringify-safe@~5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz#1296a2d58fd45f19a0f6ce01d65701e2c735b6eb" + +json3@3.3.2: + version "3.3.2" + resolved "https://registry.yarnpkg.com/json3/-/json3-3.3.2.tgz#3c0434743df93e2f5c42aee7b19bcb483575f4e1" + jsonfile@^2.1.0: version "2.4.0" resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-2.4.0.tgz#3736a2b428b87bbda0cc83b53fa3d633a35c2ae8" optionalDependencies: graceful-fs "^4.1.6" +jsonify@~0.0.0: + version "0.0.0" + resolved "https://registry.yarnpkg.com/jsonify/-/jsonify-0.0.0.tgz#2c74b6ee41d93ca51b7b5aaee8f503631d252a73" + +jsonpointer@^4.0.0: + version "4.0.1" + resolved "https://registry.yarnpkg.com/jsonpointer/-/jsonpointer-4.0.1.tgz#4fd92cb34e0e9db3c89c8622ecf51f9b978c6cb9" + +jsprim@^1.2.2: + version "1.4.1" + resolved "https://registry.yarnpkg.com/jsprim/-/jsprim-1.4.1.tgz#313e66bc1e5cc06e438bc1b7499c2e5c56acb6a2" + dependencies: + assert-plus "1.0.0" + extsprintf "1.3.0" + json-schema "0.2.3" + verror "1.10.0" + +kind-of@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-1.1.0.tgz#140a3d2d41a36d2efcfa9377b62c24f8495a5c44" + +kind-of@^3.0.2: + version "3.2.2" + resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-3.2.2.tgz#31ea21a734bab9bbb0f32466d893aea51e4a3c64" + dependencies: + is-buffer "^1.1.5" + +kind-of@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-4.0.0.tgz#20813df3d712928b207378691a45066fae72dd57" + dependencies: + is-buffer "^1.1.5" + +lazystream@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/lazystream/-/lazystream-1.0.0.tgz#f6995fe0f820392f61396be89462407bb77168e4" + dependencies: + readable-stream "^2.0.5" + +lodash._baseassign@^3.0.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/lodash._baseassign/-/lodash._baseassign-3.2.0.tgz#8c38a099500f215ad09e59f1722fd0c52bfe0a4e" + dependencies: + lodash._basecopy "^3.0.0" + lodash.keys "^3.0.0" + +lodash._basecopy@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/lodash._basecopy/-/lodash._basecopy-3.0.1.tgz#8da0e6a876cf344c0ad8a54882111dd3c5c7ca36" + +lodash._basecreate@^3.0.0: + version "3.0.3" + resolved "https://registry.yarnpkg.com/lodash._basecreate/-/lodash._basecreate-3.0.3.tgz#1bc661614daa7fc311b7d03bf16806a0213cf821" + +lodash._basetostring@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/lodash._basetostring/-/lodash._basetostring-3.0.1.tgz#d1861d877f824a52f669832dcaf3ee15566a07d5" + +lodash._basevalues@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/lodash._basevalues/-/lodash._basevalues-3.0.0.tgz#5b775762802bde3d3297503e26300820fdf661b7" + +lodash._getnative@^3.0.0: + version "3.9.1" + resolved "https://registry.yarnpkg.com/lodash._getnative/-/lodash._getnative-3.9.1.tgz#570bc7dede46d61cdcde687d65d3eecbaa3aaff5" + +lodash._isiterateecall@^3.0.0: + version "3.0.9" + resolved "https://registry.yarnpkg.com/lodash._isiterateecall/-/lodash._isiterateecall-3.0.9.tgz#5203ad7ba425fae842460e696db9cf3e6aac057c" + +lodash._reescape@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/lodash._reescape/-/lodash._reescape-3.0.0.tgz#2b1d6f5dfe07c8a355753e5f27fac7f1cde1616a" + +lodash._reevaluate@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/lodash._reevaluate/-/lodash._reevaluate-3.0.0.tgz#58bc74c40664953ae0b124d806996daca431e2ed" + +lodash._reinterpolate@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/lodash._reinterpolate/-/lodash._reinterpolate-3.0.0.tgz#0ccf2d89166af03b3663c796538b75ac6e114d9d" + +lodash._root@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/lodash._root/-/lodash._root-3.0.1.tgz#fba1c4524c19ee9a5f8136b4609f017cf4ded692" + +lodash.create@3.1.1: + version "3.1.1" + resolved "https://registry.yarnpkg.com/lodash.create/-/lodash.create-3.1.1.tgz#d7f2849f0dbda7e04682bb8cd72ab022461debe7" + dependencies: + lodash._baseassign "^3.0.0" + lodash._basecreate "^3.0.0" + lodash._isiterateecall "^3.0.0" + +lodash.escape@^3.0.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/lodash.escape/-/lodash.escape-3.2.0.tgz#995ee0dc18c1b48cc92effae71a10aab5b487698" + dependencies: + lodash._root "^3.0.0" + +lodash.isarguments@^3.0.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/lodash.isarguments/-/lodash.isarguments-3.1.0.tgz#2f573d85c6a24289ff00663b491c1d338ff3458a" + +lodash.isarray@^3.0.0: + version "3.0.4" + resolved "https://registry.yarnpkg.com/lodash.isarray/-/lodash.isarray-3.0.4.tgz#79e4eb88c36a8122af86f844aa9bcd851b5fbb55" + +lodash.isequal@^4.0.0: + version "4.5.0" + resolved "https://registry.yarnpkg.com/lodash.isequal/-/lodash.isequal-4.5.0.tgz#415c4478f2bcc30120c22ce10ed3226f7d3e18e0" + +lodash.keys@^3.0.0: + version "3.1.2" + resolved "https://registry.yarnpkg.com/lodash.keys/-/lodash.keys-3.1.2.tgz#4dbc0472b156be50a0b286855d1bd0b0c656098a" + dependencies: + lodash._getnative "^3.0.0" + lodash.isarguments "^3.0.0" + lodash.isarray "^3.0.0" + +lodash.restparam@^3.0.0: + version "3.6.1" + resolved "https://registry.yarnpkg.com/lodash.restparam/-/lodash.restparam-3.6.1.tgz#936a4e309ef330a7645ed4145986c85ae5b20805" + +lodash.template@^3.0.0: + version "3.6.2" + resolved "https://registry.yarnpkg.com/lodash.template/-/lodash.template-3.6.2.tgz#f8cdecc6169a255be9098ae8b0c53d378931d14f" + dependencies: + lodash._basecopy "^3.0.0" + lodash._basetostring "^3.0.0" + lodash._basevalues "^3.0.0" + lodash._isiterateecall "^3.0.0" + lodash._reinterpolate "^3.0.0" + lodash.escape "^3.0.0" + lodash.keys "^3.0.0" + lodash.restparam "^3.0.0" + lodash.templatesettings "^3.0.0" + +lodash.templatesettings@^3.0.0: + version "3.1.1" + resolved "https://registry.yarnpkg.com/lodash.templatesettings/-/lodash.templatesettings-3.1.1.tgz#fb307844753b66b9f1afa54e262c745307dba8e5" + dependencies: + lodash._reinterpolate "^3.0.0" + lodash.escape "^3.0.0" + make-dir@^1.0.0: version "1.1.0" resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-1.1.0.tgz#19b4369fe48c116f53c2af95ad102c0e39e85d51" dependencies: pify "^3.0.0" +map-stream@~0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/map-stream/-/map-stream-0.1.0.tgz#e56aa94c4c8055a16404a0674b78f215f7c8e194" + +merge-stream@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/merge-stream/-/merge-stream-1.0.1.tgz#4041202d508a342ba00174008df0c251b8c135e1" + dependencies: + readable-stream "^2.0.1" + +micromatch@^2.3.7: + version "2.3.11" + resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-2.3.11.tgz#86677c97d1720b363431d04d0d15293bd38c1565" + dependencies: + arr-diff "^2.0.0" + array-unique "^0.2.1" + braces "^1.8.2" + expand-brackets "^0.1.4" + extglob "^0.3.1" + filename-regex "^2.0.0" + is-extglob "^1.0.0" + is-glob "^2.0.1" + kind-of "^3.0.2" + normalize-path "^2.0.1" + object.omit "^2.0.0" + parse-glob "^3.0.4" + regex-cache "^0.4.2" + +mime-db@~1.33.0: + version "1.33.0" + 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: + version "2.1.18" + resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.18.tgz#6f323f60a83d11146f831ff11fd66e2fe5503bb8" + dependencies: + mime-db "~1.33.0" + +"minimatch@2 || 3", minimatch@^3.0.0, minimatch@^3.0.2, minimatch@^3.0.4: + version "3.0.4" + resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083" + dependencies: + brace-expansion "^1.1.7" + +minimist@0.0.8: + version "0.0.8" + resolved "https://registry.yarnpkg.com/minimist/-/minimist-0.0.8.tgz#857fcabfc3397d2625b8228262e86aa7a011b05d" + +minimist@^1.1.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.0.tgz#a35008b20f41383eec1fb914f4cd5df79a264284" + +mkdirp@0.5.1, "mkdirp@>=0.5 0", mkdirp@^0.5.0, mkdirp@^0.5.1: + version "0.5.1" + resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.1.tgz#30057438eac6cf7f8c4767f38648d6697d75c903" + dependencies: + minimist "0.0.8" + +mocha@^3.2.0: + version "3.5.3" + resolved "https://registry.yarnpkg.com/mocha/-/mocha-3.5.3.tgz#1e0480fe36d2da5858d1eb6acc38418b26eaa20d" + dependencies: + browser-stdout "1.3.0" + commander "2.9.0" + debug "2.6.8" + diff "3.2.0" + escape-string-regexp "1.0.5" + glob "7.1.1" + growl "1.9.2" + he "1.1.1" + json3 "3.3.2" + lodash.create "3.1.1" + mkdirp "0.5.1" + supports-color "3.1.2" + +mocha@^4.0.1: + version "4.1.0" + resolved "https://registry.yarnpkg.com/mocha/-/mocha-4.1.0.tgz#7d86cfbcf35cb829e2754c32e17355ec05338794" + dependencies: + browser-stdout "1.3.0" + commander "2.11.0" + debug "3.1.0" + diff "3.3.1" + escape-string-regexp "1.0.5" + glob "7.1.2" + growl "1.10.3" + he "1.1.1" + mkdirp "0.5.1" + supports-color "4.4.0" + ms@2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8" -object-assign@^4.0.1: +multimatch@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/multimatch/-/multimatch-2.1.0.tgz#9c7906a22fb4c02919e2f5f75161b4cdbd4b2a2b" + dependencies: + array-differ "^1.0.0" + array-union "^1.0.1" + arrify "^1.0.0" + minimatch "^3.0.0" + +multipipe@^0.1.2: + version "0.1.2" + resolved "https://registry.yarnpkg.com/multipipe/-/multipipe-0.1.2.tgz#2a8f2ddf70eed564dff2d57f1e1a137d9f05078b" + dependencies: + duplexer2 "0.0.2" + +node.extend@~1.1.2: + version "1.1.6" + resolved "https://registry.yarnpkg.com/node.extend/-/node.extend-1.1.6.tgz#a7b882c82d6c93a4863a5504bd5de8ec86258b96" + dependencies: + is "^3.1.0" + +normalize-path@^2.0.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-2.1.1.tgz#1ab28b556e198363a8c1a6f7e6fa20137fe6aed9" + dependencies: + remove-trailing-separator "^1.0.1" + +oauth-sign@~0.8.1, oauth-sign@~0.8.2: + version "0.8.2" + resolved "https://registry.yarnpkg.com/oauth-sign/-/oauth-sign-0.8.2.tgz#46a6ab7f0aead8deae9ec0565780b7d4efeb9d43" + +object-assign@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-3.0.0.tgz#9bedd5ca0897949bca47e7ff408062d549f587f2" + +object-assign@^4.0.0, object-assign@^4.0.1: version "4.1.1" resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" -once@^1.4.0: +object.omit@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/object.omit/-/object.omit-2.0.1.tgz#1a9c744829f39dbb858c76ca3579ae2a54ebd1fa" + dependencies: + for-own "^0.1.4" + is-extendable "^0.1.1" + +once@^1.3.0, once@^1.4.0: version "1.4.0" resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" dependencies: @@ -254,14 +1446,48 @@ opener@^1.4.3: version "1.4.3" resolved "https://registry.yarnpkg.com/opener/-/opener-1.4.3.tgz#5c6da2c5d7e5831e8ffa3964950f8d6674ac90b8" +ordered-read-streams@^0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/ordered-read-streams/-/ordered-read-streams-0.3.0.tgz#7137e69b3298bb342247a1bbee3881c80e2fd78b" + dependencies: + is-stream "^1.0.1" + readable-stream "^2.0.1" + os-tmpdir@~1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/os-tmpdir/-/os-tmpdir-1.0.2.tgz#bbe67406c79aa85c5cfec766fe5734555dfa1274" +parse-glob@^3.0.4: + version "3.0.4" + resolved "https://registry.yarnpkg.com/parse-glob/-/parse-glob-3.0.4.tgz#b2c376cfb11f35513badd173ef0bb6e3a388391c" + dependencies: + glob-base "^0.3.0" + is-dotfile "^1.0.0" + is-extglob "^1.0.0" + is-glob "^2.0.0" + +path-dirname@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/path-dirname/-/path-dirname-1.0.2.tgz#cc33d24d525e099a5388c0336c6e32b9160609e0" + +path-is-absolute@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" + +pause-stream@0.0.11: + version "0.0.11" + resolved "https://registry.yarnpkg.com/pause-stream/-/pause-stream-0.0.11.tgz#fe5a34b0cbce12b5aa6a2b403ee2e73b602f1445" + dependencies: + through "~2.3" + pend@~1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/pend/-/pend-1.2.0.tgz#7a57eb550a6783f9115331fcf4663d5c8e007a50" +performance-now@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/performance-now/-/performance-now-2.1.0.tgz#6309f4e0e5fa913ec1c69307ae364b4b377c9e7b" + pify@^2.3.0: version "2.3.0" resolved "https://registry.yarnpkg.com/pify/-/pify-2.3.0.tgz#ed141a6ac043a849ea588498e7dca8b15330e90c" @@ -280,10 +1506,72 @@ pinkie@^2.0.0: version "2.0.4" resolved "https://registry.yarnpkg.com/pinkie/-/pinkie-2.0.4.tgz#72556b80cfa0d48a974e80e77248e80ed4f7f870" -process-nextick-args@~1.0.6: +plugin-error@^0.1.2: + version "0.1.2" + resolved "https://registry.yarnpkg.com/plugin-error/-/plugin-error-0.1.2.tgz#3b9bb3335ccf00f425e07437e19276967da47ace" + dependencies: + ansi-cyan "^0.1.1" + ansi-red "^0.1.1" + arr-diff "^1.0.1" + arr-union "^2.0.1" + extend-shallow "^1.1.2" + +preserve@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/preserve/-/preserve-0.2.0.tgz#815ed1f6ebc65926f865b310c0713bcb3315ce4b" + +process-nextick-args@^1.0.6, process-nextick-args@~1.0.6: version "1.0.7" resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-1.0.7.tgz#150e20b756590ad3f91093f25a4f2ad8bff30ba3" +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" + +punycode@^1.4.1: + version "1.4.1" + resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.4.1.tgz#c0d5a63b2718800ad8e1eb0fa5269c84dd41845e" + +qs@~6.3.0: + version "6.3.2" + resolved "https://registry.yarnpkg.com/qs/-/qs-6.3.2.tgz#e75bd5f6e268122a2a0e0bda630b2550c166502c" + +qs@~6.5.1: + version "6.5.1" + resolved "https://registry.yarnpkg.com/qs/-/qs-6.5.1.tgz#349cdf6eef89ec45c12d7d5eb3fc0c870343a6d8" + +querystringify@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/querystringify/-/querystringify-1.0.0.tgz#6286242112c5b712fa654e526652bf6a13ff05cb" + +queue@^3.0.10, queue@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/queue/-/queue-3.1.0.tgz#6c49d01f009e2256788789f2bffac6b8b9990585" + dependencies: + inherits "~2.0.0" + +queue@^4.2.1: + version "4.4.2" + resolved "https://registry.yarnpkg.com/queue/-/queue-4.4.2.tgz#5a9733d9a8b8bd1b36e934bc9c55ab89b28e29c7" + dependencies: + inherits "~2.0.0" + +randomatic@^1.1.3: + version "1.1.7" + resolved "https://registry.yarnpkg.com/randomatic/-/randomatic-1.1.7.tgz#c7abe9cc8b87c0baa876b19fde83fd464797e38c" + dependencies: + is-number "^3.0.0" + kind-of "^4.0.0" + +"readable-stream@>=1.0.33-1 <1.1.0-0": + version "1.0.34" + resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-1.0.34.tgz#125820e34bc842d2f2aaafafe4c2916ee32c157c" + dependencies: + core-util-is "~1.0.0" + inherits "~2.0.1" + isarray "0.0.1" + string_decoder "~0.10.x" + readable-stream@^2.0.0, readable-stream@^2.0.5: version "2.3.3" resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.3.tgz#368f2512d79f9d46fdfc71349ae7878bbc1eb95c" @@ -296,7 +1584,116 @@ readable-stream@^2.0.0, readable-stream@^2.0.5: string_decoder "~1.0.3" util-deprecate "~1.0.1" -safe-buffer@~5.1.0, safe-buffer@~5.1.1: +readable-stream@^2.0.1, readable-stream@^2.0.2, readable-stream@^2.0.4, readable-stream@^2.1.5: + version "2.3.4" + resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.4.tgz#c946c3f47fa7d8eabc0b6150f4a12f69a4574071" + dependencies: + core-util-is "~1.0.0" + inherits "~2.0.3" + isarray "~1.0.0" + process-nextick-args "~2.0.0" + safe-buffer "~5.1.1" + string_decoder "~1.0.3" + util-deprecate "~1.0.1" + +readable-stream@~1.1.9: + version "1.1.14" + resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-1.1.14.tgz#7cf4c54ef648e3813084c636dd2079e166c081d9" + dependencies: + core-util-is "~1.0.0" + inherits "~2.0.1" + isarray "0.0.1" + string_decoder "~0.10.x" + +regex-cache@^0.4.2: + version "0.4.4" + resolved "https://registry.yarnpkg.com/regex-cache/-/regex-cache-0.4.4.tgz#75bdc58a2a1496cec48a12835bc54c8d562336dd" + dependencies: + is-equal-shallow "^0.1.3" + +remove-trailing-separator@^1.0.1: + version "1.1.0" + resolved "https://registry.yarnpkg.com/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz#c24bce2a283adad5bc3f58e0d48249b92379d8ef" + +repeat-element@^1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/repeat-element/-/repeat-element-1.1.2.tgz#ef089a178d1483baae4d93eb98b4f9e4e11d990a" + +repeat-string@^1.5.2: + version "1.6.1" + resolved "https://registry.yarnpkg.com/repeat-string/-/repeat-string-1.6.1.tgz#8dcae470e1c88abc2d600fff4a776286da75e637" + +replace-ext@0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/replace-ext/-/replace-ext-0.0.1.tgz#29bbd92078a739f0bcce2b4ee41e837953522924" + +replace-ext@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/replace-ext/-/replace-ext-1.0.0.tgz#de63128373fcbf7c3ccfa4de5a480c45a67958eb" + +request@^2.79.0, request@^2.83.0: + version "2.83.0" + resolved "https://registry.yarnpkg.com/request/-/request-2.83.0.tgz#ca0b65da02ed62935887808e6f510381034e3356" + dependencies: + aws-sign2 "~0.7.0" + aws4 "^1.6.0" + caseless "~0.12.0" + combined-stream "~1.0.5" + extend "~3.0.1" + forever-agent "~0.6.1" + form-data "~2.3.1" + har-validator "~5.0.3" + hawk "~6.0.2" + http-signature "~1.2.0" + is-typedarray "~1.0.0" + isstream "~0.1.2" + json-stringify-safe "~5.0.1" + mime-types "~2.1.17" + oauth-sign "~0.8.2" + performance-now "^2.1.0" + qs "~6.5.1" + safe-buffer "^5.1.1" + stringstream "~0.0.5" + tough-cookie "~2.3.3" + tunnel-agent "^0.6.0" + uuid "^3.1.0" + +request@~2.79.0: + version "2.79.0" + resolved "https://registry.yarnpkg.com/request/-/request-2.79.0.tgz#4dfe5bf6be8b8cdc37fcf93e04b65577722710de" + dependencies: + aws-sign2 "~0.6.0" + aws4 "^1.2.1" + caseless "~0.11.0" + combined-stream "~1.0.5" + extend "~3.0.0" + forever-agent "~0.6.1" + form-data "~2.1.1" + har-validator "~2.0.6" + hawk "~3.1.3" + http-signature "~1.1.0" + is-typedarray "~1.0.0" + isstream "~0.1.2" + json-stringify-safe "~5.0.1" + mime-types "~2.1.7" + oauth-sign "~0.8.1" + qs "~6.3.0" + stringstream "~0.0.4" + tough-cookie "~2.3.0" + tunnel-agent "~0.4.1" + uuid "^3.0.0" + +requires-port@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/requires-port/-/requires-port-1.0.0.tgz#925d2601d39ac485e091cf0da5c6e694dc3dcaff" + +rimraf@2: + version "2.6.2" + resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.6.2.tgz#2ed8150d24a16ea8651e6d6ef0f47c4158ce7a36" + dependencies: + glob "^7.0.5" + +safe-buffer@^5.0.1, safe-buffer@^5.1.1, safe-buffer@~5.1.0, safe-buffer@~5.1.1: version "5.1.1" resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.1.tgz#893312af69b2123def71f57889001671eeb2c853" @@ -306,18 +1703,164 @@ seek-bzip@^1.0.5: dependencies: commander "~2.8.1" +semver@^5.3.0, semver@^5.4.1: + version "5.5.0" + resolved "https://registry.yarnpkg.com/semver/-/semver-5.5.0.tgz#dc4bbc7a6ca9d916dee5d43516f0092b58f7b8ab" + +sntp@1.x.x: + version "1.0.9" + resolved "https://registry.yarnpkg.com/sntp/-/sntp-1.0.9.tgz#6541184cc90aeea6c6e7b35e2659082443c66198" + dependencies: + hoek "2.x.x" + +sntp@2.x.x: + version "2.1.0" + resolved "https://registry.yarnpkg.com/sntp/-/sntp-2.1.0.tgz#2c6cec14fedc2222739caf9b5c3d85d1cc5a2cc8" + dependencies: + hoek "4.x.x" + +source-map-support@^0.4.11: + version "0.4.18" + resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.4.18.tgz#0286a6de8be42641338594e97ccea75f0a2c585f" + dependencies: + source-map "^0.5.6" + +source-map-support@^0.5.0: + version "0.5.3" + resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.3.tgz#2b3d5fff298cfa4d1afd7d4352d569e9a0158e76" + dependencies: + source-map "^0.6.0" + +source-map@^0.5.6: + version "0.5.7" + resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.7.tgz#8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc" + +source-map@^0.6.0: + version "0.6.1" + resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263" + +sparkles@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/sparkles/-/sparkles-1.0.0.tgz#1acbbfb592436d10bbe8f785b7cc6f82815012c3" + +split@0.3: + version "0.3.3" + resolved "https://registry.yarnpkg.com/split/-/split-0.3.3.tgz#cd0eea5e63a211dfff7eb0f091c4133e2d0dd28f" + dependencies: + through "2" + +"sqlops@git://github.com/anthonydresser/vscode-extension-vscode": + version "1.1.10" + resolved "git://github.com/anthonydresser/vscode-extension-vscode#96cc0758d2528a33a12d73894a6d40c8bfb15ca1" + dependencies: + glob "^7.1.2" + gulp-chmod "^2.0.0" + gulp-filter "^5.0.1" + gulp-gunzip "1.0.0" + gulp-remote-src "^0.4.3" + gulp-symdest "^1.1.0" + gulp-untar "^0.0.6" + gulp-vinyl-zip "^2.1.0" + mocha "^4.0.1" + request "^2.83.0" + semver "^5.4.1" + source-map-support "^0.5.0" + url-parse "^1.1.9" + vinyl-source-stream "^1.1.0" + +sshpk@^1.7.0: + version "1.13.1" + resolved "https://registry.yarnpkg.com/sshpk/-/sshpk-1.13.1.tgz#512df6da6287144316dc4c18fe1cf1d940739be3" + dependencies: + asn1 "~0.2.3" + assert-plus "^1.0.0" + dashdash "^1.12.0" + getpass "^0.1.1" + optionalDependencies: + bcrypt-pbkdf "^1.0.0" + ecc-jsbn "~0.1.1" + jsbn "~0.1.0" + tweetnacl "~0.14.0" + +stat-mode@^0.2.0: + version "0.2.2" + resolved "https://registry.yarnpkg.com/stat-mode/-/stat-mode-0.2.2.tgz#e6c80b623123d7d80cf132ce538f346289072502" + +stream-combiner@~0.0.4: + version "0.0.4" + resolved "https://registry.yarnpkg.com/stream-combiner/-/stream-combiner-0.0.4.tgz#4d5e433c185261dde623ca3f44c586bcf5c4ad14" + dependencies: + duplexer "~0.1.1" + +stream-shift@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/stream-shift/-/stream-shift-1.0.0.tgz#d5c752825e5367e786f78e18e445ea223a155952" + +streamfilter@^1.0.5: + version "1.0.7" + resolved "https://registry.yarnpkg.com/streamfilter/-/streamfilter-1.0.7.tgz#ae3e64522aa5a35c061fd17f67620c7653c643c9" + dependencies: + readable-stream "^2.0.2" + +streamifier@~0.1.1: + version "0.1.1" + resolved "https://registry.yarnpkg.com/streamifier/-/streamifier-0.1.1.tgz#97e98d8fa4d105d62a2691d1dc07e820db8dfc4f" + +string_decoder@~0.10.x: + version "0.10.31" + resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-0.10.31.tgz#62e203bc41766c6c28c9fc84301dab1c5310fa94" + string_decoder@~1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.0.3.tgz#0fc67d7c141825de94282dd536bec6b9bce860ab" dependencies: safe-buffer "~5.1.0" +stringstream@~0.0.4, stringstream@~0.0.5: + version "0.0.5" + resolved "https://registry.yarnpkg.com/stringstream/-/stringstream-0.0.5.tgz#4e484cd4de5a0bbbee18e46307710a8a81621878" + +strip-ansi@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-3.0.1.tgz#6a385fb8853d952d5ff05d0e8aaf94278dc63dcf" + dependencies: + ansi-regex "^2.0.0" + +strip-bom-stream@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/strip-bom-stream/-/strip-bom-stream-1.0.0.tgz#e7144398577d51a6bed0fa1994fa05f43fd988ee" + dependencies: + first-chunk-stream "^1.0.0" + strip-bom "^2.0.0" + +strip-bom@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-2.0.0.tgz#6219a85616520491f35788bdbf1447a99c7e6b0e" + dependencies: + is-utf8 "^0.2.0" + strip-dirs@^2.0.0: version "2.1.0" resolved "https://registry.yarnpkg.com/strip-dirs/-/strip-dirs-2.1.0.tgz#4987736264fc344cf20f6c34aca9d13d1d4ed6c5" dependencies: is-natural-number "^4.0.1" +supports-color@3.1.2: + version "3.1.2" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-3.1.2.tgz#72a262894d9d408b956ca05ff37b2ed8a6e2a2d5" + dependencies: + has-flag "^1.0.0" + +supports-color@4.4.0: + version "4.4.0" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-4.4.0.tgz#883f7ddabc165142b2a61427f3352ded195d1a3e" + dependencies: + has-flag "^2.0.0" + +supports-color@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-2.0.0.tgz#535d045ce6b6363fa40117084629995e9df324c7" + tar-stream@^1.5.2: version "1.5.5" resolved "https://registry.yarnpkg.com/tar-stream/-/tar-stream-1.5.5.tgz#5cad84779f45c83b1f2508d96b09d88c7218af55" @@ -327,16 +1870,75 @@ tar-stream@^1.5.2: readable-stream "^2.0.0" xtend "^4.0.0" -through@^2.3.6: +tar@^2.2.1: + version "2.2.1" + resolved "https://registry.yarnpkg.com/tar/-/tar-2.2.1.tgz#8e4d2a256c0e2185c6b18ad694aec968b83cb1d1" + dependencies: + block-stream "*" + fstream "^1.0.2" + inherits "2" + +through2-filter@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/through2-filter/-/through2-filter-2.0.0.tgz#60bc55a0dacb76085db1f9dae99ab43f83d622ec" + dependencies: + through2 "~2.0.0" + xtend "~4.0.0" + +through2@^0.6.0, through2@^0.6.3, through2@~0.6.5: + version "0.6.5" + resolved "https://registry.yarnpkg.com/through2/-/through2-0.6.5.tgz#41ab9c67b29d57209071410e1d7a7a968cd3ad48" + dependencies: + readable-stream ">=1.0.33-1 <1.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: + version "2.0.3" + resolved "https://registry.yarnpkg.com/through2/-/through2-2.0.3.tgz#0004569b37c7c74ba39c43f3ced78d1ad94140be" + dependencies: + readable-stream "^2.1.5" + xtend "~4.0.1" + +through@2, through@^2.3.6, through@~2.3, through@~2.3.1: version "2.3.8" resolved "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5" +time-stamp@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/time-stamp/-/time-stamp-1.1.0.tgz#764a5a11af50561921b133f3b44e618687e0f5c3" + tmp@0.0.33: version "0.0.33" resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.0.33.tgz#6d34335889768d21b2bcda0aa277ced3b1bfadf9" dependencies: os-tmpdir "~1.0.2" +to-absolute-glob@^0.1.1: + version "0.1.1" + resolved "https://registry.yarnpkg.com/to-absolute-glob/-/to-absolute-glob-0.1.1.tgz#1cdfa472a9ef50c239ee66999b662ca0eb39937f" + dependencies: + extend-shallow "^2.0.1" + +tough-cookie@~2.3.0, tough-cookie@~2.3.3: + version "2.3.3" + resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-2.3.3.tgz#0b618a5565b6dea90bf3425d04d55edc475a7561" + dependencies: + punycode "^1.4.1" + +tunnel-agent@^0.6.0: + version "0.6.0" + resolved "https://registry.yarnpkg.com/tunnel-agent/-/tunnel-agent-0.6.0.tgz#27a5dea06b36b04a0a9966774b290868f0fc40fd" + dependencies: + safe-buffer "^5.0.1" + +tunnel-agent@~0.4.1: + version "0.4.3" + resolved "https://registry.yarnpkg.com/tunnel-agent/-/tunnel-agent-0.4.3.tgz#6373db76909fe570e08d73583365ed828a74eeeb" + +tweetnacl@^0.14.3, tweetnacl@~0.14.0: + version "0.14.5" + resolved "https://registry.yarnpkg.com/tweetnacl/-/tweetnacl-0.14.5.tgz#5ae68177f192d4456269d108afa93ff8743f4f64" + typescript@2.6.2: version "2.6.2" resolved "https://registry.yarnpkg.com/typescript/-/typescript-2.6.2.tgz#3c5b6fd7f6de0914269027f03c0946758f7673a4" @@ -348,10 +1950,115 @@ unbzip2-stream@^1.0.9: buffer "^3.0.1" through "^2.3.6" +unique-stream@^2.0.2: + version "2.2.1" + resolved "https://registry.yarnpkg.com/unique-stream/-/unique-stream-2.2.1.tgz#5aa003cfbe94c5ff866c4e7d668bb1c4dbadb369" + dependencies: + json-stable-stringify "^1.0.0" + through2-filter "^2.0.0" + +url-parse@^1.1.9: + version "1.2.0" + resolved "https://registry.yarnpkg.com/url-parse/-/url-parse-1.2.0.tgz#3a19e8aaa6d023ddd27dcc44cb4fc8f7fec23986" + dependencies: + querystringify "~1.0.0" + requires-port "~1.0.0" + util-deprecate@~1.0.1: version "1.0.2" resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" +uuid@^3.0.0, uuid@^3.1.0: + version "3.2.1" + resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.2.1.tgz#12c528bb9d58d0b9265d9a2f6f0fe8be17ff1f14" + +vali-date@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/vali-date/-/vali-date-1.0.0.tgz#1b904a59609fb328ef078138420934f6b86709a6" + +verror@1.10.0: + version "1.10.0" + resolved "https://registry.yarnpkg.com/verror/-/verror-1.10.0.tgz#3a105ca17053af55d6e270c1f8288682e18da400" + dependencies: + assert-plus "^1.0.0" + core-util-is "1.0.2" + extsprintf "^1.2.0" + +vinyl-fs@^2.0.0, vinyl-fs@^2.4.3: + version "2.4.4" + resolved "https://registry.yarnpkg.com/vinyl-fs/-/vinyl-fs-2.4.4.tgz#be6ff3270cb55dfd7d3063640de81f25d7532239" + dependencies: + duplexify "^3.2.0" + glob-stream "^5.3.2" + graceful-fs "^4.0.0" + gulp-sourcemaps "1.6.0" + is-valid-glob "^0.3.0" + lazystream "^1.0.0" + lodash.isequal "^4.0.0" + merge-stream "^1.0.0" + mkdirp "^0.5.0" + object-assign "^4.0.0" + readable-stream "^2.0.4" + strip-bom "^2.0.0" + strip-bom-stream "^1.0.0" + through2 "^2.0.0" + through2-filter "^2.0.0" + vali-date "^1.0.0" + vinyl "^1.0.0" + +vinyl-source-stream@^1.1.0: + version "1.1.2" + resolved "https://registry.yarnpkg.com/vinyl-source-stream/-/vinyl-source-stream-1.1.2.tgz#62b53a135610a896e98ca96bee3a87f008a8e780" + dependencies: + through2 "^2.0.3" + vinyl "^0.4.3" + +vinyl@^0.4.3, vinyl@^0.4.6, vinyl@~0.4.6: + version "0.4.6" + resolved "https://registry.yarnpkg.com/vinyl/-/vinyl-0.4.6.tgz#2f356c87a550a255461f36bbeb2a5ba8bf784847" + dependencies: + clone "^0.2.0" + clone-stats "^0.0.1" + +vinyl@^0.5.0: + version "0.5.3" + resolved "https://registry.yarnpkg.com/vinyl/-/vinyl-0.5.3.tgz#b0455b38fc5e0cf30d4325132e461970c2091cde" + dependencies: + clone "^1.0.0" + clone-stats "^0.0.1" + replace-ext "0.0.1" + +vinyl@^1.0.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/vinyl/-/vinyl-1.2.0.tgz#5c88036cf565e5df05558bfc911f8656df218884" + dependencies: + clone "^1.0.0" + clone-stats "^0.0.1" + replace-ext "0.0.1" + +vinyl@^2.0.2: + version "2.1.0" + resolved "https://registry.yarnpkg.com/vinyl/-/vinyl-2.1.0.tgz#021f9c2cf951d6b939943c89eb5ee5add4fd924c" + dependencies: + clone "^2.1.1" + clone-buffer "^1.0.0" + clone-stats "^1.0.0" + cloneable-readable "^1.0.0" + remove-trailing-separator "^1.0.1" + replace-ext "^1.0.0" + +vinyl@~2.0.1: + version "2.0.2" + resolved "https://registry.yarnpkg.com/vinyl/-/vinyl-2.0.2.tgz#0a3713d8d4e9221c58f10ca16c0116c9e25eda7c" + dependencies: + clone "^1.0.0" + clone-buffer "^1.0.0" + clone-stats "^1.0.0" + cloneable-readable "^1.0.0" + is-stream "^1.1.0" + remove-trailing-separator "^1.0.1" + replace-ext "^1.0.0" + vscode-extension-telemetry@0.0.8: version "0.0.8" resolved "https://registry.yarnpkg.com/vscode-extension-telemetry/-/vscode-extension-telemetry-0.0.8.tgz#2261bff986b6690a6f1f746a45ac5bd1f85d29e0" @@ -380,6 +2087,25 @@ vscode-languageserver-types@^3.5.0: version "3.5.0" resolved "https://registry.yarnpkg.com/vscode-languageserver-types/-/vscode-languageserver-types-3.5.0.tgz#e48d79962f0b8e02de955e3f524908e2b19c0374" +vscode@1.1.5: + version "1.1.5" + resolved "https://registry.yarnpkg.com/vscode/-/vscode-1.1.5.tgz#10eb104001840c3dd0813815fd4a05f8fc882d14" + dependencies: + glob "^7.1.1" + gulp-chmod "^2.0.0" + gulp-filter "^5.0.0" + gulp-gunzip "0.0.3" + gulp-remote-src "^0.4.2" + gulp-symdest "^1.1.0" + gulp-untar "^0.0.6" + gulp-vinyl-zip "^1.4.0" + mocha "^3.2.0" + request "^2.79.0" + semver "^5.3.0" + source-map-support "^0.4.11" + url-parse "^1.1.9" + vinyl-source-stream "^1.1.0" + winreg@1.2.3: version "1.2.3" resolved "https://registry.yarnpkg.com/winreg/-/winreg-1.2.3.tgz#93ad116b2696da87d58f7265a8fcea5254a965d5" @@ -388,13 +2114,19 @@ wrappy@1: version "1.0.2" resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" -xtend@^4.0.0: +"xtend@>=4.0.0 <4.1.0-0", xtend@^4.0.0, xtend@~4.0.0, xtend@~4.0.1: version "4.0.1" resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.1.tgz#a5c6d532be656e23db820efb943a1f04998d63af" -yauzl@^2.4.2: +yauzl@^2.2.1, yauzl@^2.4.2: version "2.9.1" resolved "https://registry.yarnpkg.com/yauzl/-/yauzl-2.9.1.tgz#a81981ea70a57946133883f029c5821a89359a7f" dependencies: buffer-crc32 "~0.2.3" fd-slicer "~1.0.1" + +yazl@^2.2.1: + version "2.4.3" + resolved "https://registry.yarnpkg.com/yazl/-/yazl-2.4.3.tgz#ec26e5cc87d5601b9df8432dbdd3cd2e5173a071" + dependencies: + buffer-crc32 "~0.2.3" diff --git a/src/sql/base/browser/ui/modal/dialogHelper.ts b/src/sql/base/browser/ui/modal/dialogHelper.ts index c1b97e3597..4964c64825 100644 --- a/src/sql/base/browser/ui/modal/dialogHelper.ts +++ b/src/sql/base/browser/ui/modal/dialogHelper.ts @@ -10,7 +10,7 @@ import { Button } from 'sql/base/browser/ui/button/button'; import { Builder } from 'vs/base/browser/builder'; import * as types from 'vs/base/common/types'; -import * as data from 'data'; +import * as sqlops from 'sqlops'; export function appendRow(container: Builder, label: string, labelClass: string, cellContainerClass: string): Builder { let cellContainer: Builder; @@ -61,7 +61,7 @@ export function getBooleanValueFromStringOrBoolean(value: any): boolean { return false; } -export function getCategoryDisplayName(categories: data.CategoryValue[], categoryName: string) { +export function getCategoryDisplayName(categories: sqlops.CategoryValue[], categoryName: string) { var displayName: string; categories.forEach(c => { if (c.name === categoryName) { @@ -71,7 +71,7 @@ export function getCategoryDisplayName(categories: data.CategoryValue[], categor return displayName; } -export function getCategoryName(categories: data.CategoryValue[], categoryDisplayName: string) { +export function getCategoryName(categories: sqlops.CategoryValue[], categoryDisplayName: string) { var categoryName: string; categories.forEach(c => { if (c.displayName === categoryDisplayName) { diff --git a/src/sql/base/browser/ui/modal/optionsDialog.ts b/src/sql/base/browser/ui/modal/optionsDialog.ts index 0a37cbd2f0..8940d59d9d 100644 --- a/src/sql/base/browser/ui/modal/optionsDialog.ts +++ b/src/sql/base/browser/ui/modal/optionsDialog.ts @@ -14,7 +14,7 @@ import { IModalOptions, Modal } from './modal'; import * as OptionsDialogHelper from './optionsDialogHelper'; import { attachButtonStyler, attachModalDialogStyler } from 'sql/common/theme/styler'; -import * as data from 'data'; +import * as sqlops from 'sqlops'; import { IPartService } from 'vs/workbench/services/part/common/partService'; import Event, { Emitter } from 'vs/base/common/event'; import { SIDE_BAR_BACKGROUND } from 'vs/workbench/common/theme'; @@ -154,9 +154,9 @@ export class OptionsDialog extends Modal { this._optionDescription.innerHtml(option.description); } - private fillInOptions(container: Builder, options: data.ServiceOption[]): void { + private fillInOptions(container: Builder, options: sqlops.ServiceOption[]): void { for (var i = 0; i < options.length; i++) { - var option: data.ServiceOption = options[i]; + var option: sqlops.ServiceOption = options[i]; var rowContainer = DialogHelper.appendRow(container, option.displayName, 'optionsDialog-label', 'optionsDialog-input'); OptionsDialogHelper.createOptionElement(option, rowContainer, this._optionValues, this._optionElements, this._contextViewService, (name) => this.onOptionLinkClicked(name)); } @@ -221,7 +221,7 @@ export class OptionsDialog extends Modal { this._onCloseEvent.fire(); } - public open(options: data.ServiceOption[], optionValues: { [name: string]: any }) { + public open(options: sqlops.ServiceOption[], optionValues: { [name: string]: any }) { this._optionValues = optionValues; var firstOption: string; var containerGroup: Builder; @@ -233,7 +233,7 @@ export class OptionsDialog extends Modal { var splitview = new SplitView(containerGroup.getHTMLElement()); let categoryMap = OptionsDialogHelper.groupOptionsByCategory(options); for (var category in categoryMap) { - var serviceOptions: data.ServiceOption[] = categoryMap[category]; + var serviceOptions: sqlops.ServiceOption[] = categoryMap[category]; var bodyContainer = $().element('table', { class: 'optionsDialog-table' }, (tableContainer: Builder) => { this.fillInOptions(tableContainer, serviceOptions); }); diff --git a/src/sql/base/browser/ui/modal/optionsDialogHelper.ts b/src/sql/base/browser/ui/modal/optionsDialogHelper.ts index aa0ea7d643..d5a9f20995 100644 --- a/src/sql/base/browser/ui/modal/optionsDialogHelper.ts +++ b/src/sql/base/browser/ui/modal/optionsDialogHelper.ts @@ -12,17 +12,17 @@ import { MessageType } from 'vs/base/browser/ui/inputbox/inputBox'; import { IContextViewService } from 'vs/platform/contextview/browser/contextView'; import { InputBox } from 'sql/base/browser/ui/inputBox/inputBox'; import * as types from 'vs/base/common/types'; -import data = require('data'); +import * as sqlops from 'sqlops'; import { localize } from 'vs/nls'; import { ServiceOptionType } from 'sql/workbench/api/common/sqlExtHostTypes'; export interface IOptionElement { optionWidget: any; - option: data.ServiceOption; + option: sqlops.ServiceOption; optionValue: any; } -export function createOptionElement(option: data.ServiceOption, rowContainer: Builder, options: { [name: string]: any }, +export function createOptionElement(option: sqlops.ServiceOption, rowContainer: Builder, options: { [name: string]: any }, optionsMap: { [optionName: string]: IOptionElement }, contextViewService: IContextViewService, onFocus: (name) => void): void { let possibleInputs: string[] = []; let optionValue = this.getOptionValueAndCategoryValues(option, options, possibleInputs); @@ -67,8 +67,7 @@ export function createOptionElement(option: data.ServiceOption, rowContainer: Bu inputElement.onfocus = () => onFocus(option.name); } -export function getOptionValueAndCategoryValues(option: data.ServiceOption, options: { [optionName: string]: any }, possibleInputs: string[]): any { - +export function getOptionValueAndCategoryValues(option: sqlops.ServiceOption, options: { [optionName: string]: any }, possibleInputs: string[]): any { var optionValue = option.defaultValue; if (options[option.name]) { // if the value type is boolean, the option value can be either boolean or string @@ -160,8 +159,8 @@ export function findElement(container: Builder, className: string): HTMLElement return elementBuilder.getHTMLElement(); } -export function groupOptionsByCategory(options: data.ServiceOption[]): { [category: string]: data.ServiceOption[] } { - var connectionOptionsMap: { [category: string]: data.ServiceOption[] } = {}; +export function groupOptionsByCategory(options: sqlops.ServiceOption[]): { [category: string]: sqlops.ServiceOption[] } { + var connectionOptionsMap: { [category: string]: sqlops.ServiceOption[] } = {}; options.forEach(option => { var groupName = option.groupName; if (groupName === null || groupName === undefined) { diff --git a/src/sql/base/browser/ui/modal/webViewDialog.ts b/src/sql/base/browser/ui/modal/webViewDialog.ts index 862fcf4d4c..de9ab7650d 100644 --- a/src/sql/base/browser/ui/modal/webViewDialog.ts +++ b/src/sql/base/browser/ui/modal/webViewDialog.ts @@ -22,7 +22,6 @@ import WebView from 'vs/workbench/parts/html/browser/webview'; import { IContextViewService } from 'vs/platform/contextview/browser/contextView'; import { IEnvironmentService } from 'vs/platform/environment/common/environment'; import { IDisposable, toDisposable } from 'vs/base/common/lifecycle'; -import data = require('data'); export class WebViewDialog extends Modal { diff --git a/src/sql/parts/accountManagement/accountDialog/accountDialog.ts b/src/sql/parts/accountManagement/accountDialog/accountDialog.ts index adeb95531f..8172374c9b 100644 --- a/src/sql/parts/accountManagement/accountDialog/accountDialog.ts +++ b/src/sql/parts/accountManagement/accountDialog/accountDialog.ts @@ -23,7 +23,7 @@ import { IKeybindingService } from 'vs/platform/keybinding/common/keybinding'; import { ITelemetryService } from 'vs/platform/telemetry/common/telemetry'; import * as TelemetryKeys from 'sql/common/telemetryKeys'; -import * as data from 'data'; +import * as sqlops from 'sqlops'; import { Button } from 'sql/base/browser/ui/button/button'; import { Modal } from 'sql/base/browser/ui/modal/modal'; import { attachModalDialogStyler, attachButtonStyler } from 'sql/common/theme/styler'; @@ -40,7 +40,7 @@ export class AccountDialog extends Modal { public viewModel: AccountViewModel; // MEMBER VARIABLES //////////////////////////////////////////////////// - private _providerViews: { [providerId: string]: FixedListView } = {}; + private _providerViews: { [providerId: string]: FixedListView } = {}; private _closeButton: Button; private _delegate: AccountListDelegate; @@ -174,8 +174,8 @@ export class AccountDialog extends Modal { // Create a fixed list view for the account provider let providerViewContainer = DOM.$('.provider-view'); - let accountList = new List(providerViewContainer, this._delegate, [this._accountRenderer]); - let providerView = new FixedListView( + let accountList = new List(providerViewContainer, this._delegate, [this._accountRenderer]); + let providerView = new FixedListView( undefined, false, newProvider.addedProvider.displayName, @@ -205,7 +205,7 @@ export class AccountDialog extends Modal { this._providerViews[newProvider.addedProvider.id] = providerView; } - private removeProvider(removedProvider: data.AccountProviderMetadata) { + private removeProvider(removedProvider: sqlops.AccountProviderMetadata) { // Skip removing the provider if it doesn't exist let providerView = this._providerViews[removedProvider.id]; if (!providerView) { diff --git a/src/sql/parts/accountManagement/accountDialog/accountViewModel.ts b/src/sql/parts/accountManagement/accountDialog/accountViewModel.ts index 97f8ceb0d3..bfcb3524d4 100644 --- a/src/sql/parts/accountManagement/accountDialog/accountViewModel.ts +++ b/src/sql/parts/accountManagement/accountDialog/accountViewModel.ts @@ -5,7 +5,7 @@ 'use strict'; -import * as data from 'data'; +import * as sqlops from 'sqlops'; import Event, { Emitter } from 'vs/base/common/event'; import { IAccountManagementService } from 'sql/services/accountManagement/interfaces'; import { AccountProviderAddedEventParams, UpdateAccountListEventParams } from 'sql/services/accountManagement/eventTypes'; @@ -18,18 +18,18 @@ export class AccountViewModel { private _addProviderEmitter: Emitter; public get addProviderEvent(): Event { return this._addProviderEmitter.event; } - private _removeProviderEmitter: Emitter; - public get removeProviderEvent(): Event { return this._removeProviderEmitter.event; } + private _removeProviderEmitter: Emitter; + public get removeProviderEvent(): Event { return this._removeProviderEmitter.event; } private _updateAccountListEmitter: Emitter; public get updateAccountListEvent(): Event { return this._updateAccountListEmitter.event; } - constructor(@IAccountManagementService private _accountManagementService: IAccountManagementService) { + constructor( @IAccountManagementService private _accountManagementService: IAccountManagementService) { let self = this; // Create our event emitters this._addProviderEmitter = new Emitter(); - this._removeProviderEmitter = new Emitter(); + this._removeProviderEmitter = new Emitter(); this._updateAccountListEmitter = new Emitter(); // Register handlers for any changes to the providers or accounts @@ -53,22 +53,22 @@ export class AccountViewModel { // 3) Build parameters to add a provider and return it return this._accountManagementService.getAccountProviderMetadata() .then( - (providers: data.AccountProviderMetadata[]) => { - let promises = providers.map(provider => { - return self._accountManagementService.getAccountsForProvider(provider.id) - .then( - accounts => { - addedProvider: provider, - initialAccounts: accounts - }, - () => { /* Swallow failures at getting accounts, we'll just hide that provider */ }); - }); - return Promise.all(promises); - }, - () => { - /* Swallow failures and just pretend we don't have any providers */ - return []; - } + (providers: sqlops.AccountProviderMetadata[]) => { + let promises = providers.map(provider => { + return self._accountManagementService.getAccountsForProvider(provider.id) + .then( + accounts => { + addedProvider: provider, + initialAccounts: accounts + }, + () => { /* Swallow failures at getting accounts, we'll just hide that provider */ }); + }); + return Promise.all(promises); + }, + () => { + /* Swallow failures and just pretend we don't have any providers */ + return []; + } ); } } \ No newline at end of file diff --git a/src/sql/parts/accountManagement/accountPicker/accountPicker.ts b/src/sql/parts/accountManagement/accountPicker/accountPicker.ts index 1e4b9d0b60..61cf36cc36 100644 --- a/src/sql/parts/accountManagement/accountPicker/accountPicker.ts +++ b/src/sql/parts/accountManagement/accountPicker/accountPicker.ts @@ -19,7 +19,7 @@ import { IInstantiationService } from 'vs/platform/instantiation/common/instanti import { Disposable, IDisposable } from 'vs/base/common/lifecycle'; import { ActionBar } from 'vs/base/browser/ui/actionbar/actionbar'; -import * as data from 'data'; +import * as sqlops from 'sqlops'; import { DropdownList } from 'sql/base/browser/ui/dropdownList/dropdownList'; import { attachDropdownStyler } from 'sql/common/theme/styler'; import { AddAccountAction, RefreshAccountAction } from 'sql/parts/accountManagement/common/accountActions'; @@ -29,7 +29,7 @@ import { AccountPickerViewModel } from 'sql/parts/accountManagement/accountPicke export class AccountPicker extends Disposable { public static ACCOUNTPICKERLIST_HEIGHT = 47; public viewModel: AccountPickerViewModel; - private _accountList: List; + private _accountList: List; private _rootElement: HTMLElement; private _refreshContainer: HTMLElement; private _listContainer: HTMLElement; @@ -46,8 +46,8 @@ export class AccountPicker extends Disposable { private _addAccountStartEmitter: Emitter; public get addAccountStartEvent(): Event { return this._addAccountStartEmitter.event; } - private _onAccountSelectionChangeEvent: Emitter; - public get onAccountSelectionChangeEvent(): Event { return this._onAccountSelectionChangeEvent.event; } + private _onAccountSelectionChangeEvent: Emitter; + public get onAccountSelectionChangeEvent(): Event { return this._onAccountSelectionChangeEvent.event; } constructor( private _providerId: string, @@ -61,7 +61,7 @@ export class AccountPicker extends Disposable { this._addAccountCompleteEmitter = new Emitter(); this._addAccountErrorEmitter = new Emitter(); this._addAccountStartEmitter = new Emitter(); - this._onAccountSelectionChangeEvent = new Emitter(); + this._onAccountSelectionChangeEvent = new Emitter(); // Create the view model, wire up the events, and initialize with baseline data this.viewModel = this._instantiationService.createInstance(AccountPickerViewModel, this._providerId); @@ -89,7 +89,7 @@ export class AccountPicker extends Disposable { let delegate = new AccountListDelegate(AccountPicker.ACCOUNTPICKERLIST_HEIGHT); let accountRenderer = new AccountPickerListRenderer(); this._listContainer = DOM.$('div.account-list-container'); - this._accountList = new List(this._listContainer, delegate, [accountRenderer]); + this._accountList = new List(this._listContainer, delegate, [accountRenderer]); this._register(attachListStyler(this._accountList, this._themeService)); this._rootElement = DOM.$('div.account-picker-container'); @@ -108,7 +108,7 @@ export class AccountPicker extends Disposable { this._dropdown = this._register(new DropdownList(this._rootElement, option, this._listContainer, this._accountList, this._themeService, addAccountAction)); this._register(attachDropdownStyler(this._dropdown, this._themeService)); - this._register(this._accountList.onSelectionChange((e: IListEvent) => { + this._register(this._accountList.onSelectionChange((e: IListEvent) => { if (e.elements.length === 1) { this._dropdown.renderLabel(); this.onAccountSelectionChange(e.elements[0]); @@ -134,7 +134,7 @@ export class AccountPicker extends Disposable { // Load the initial contents of the view model this.viewModel.initialize() - .then((accounts: data.Account[]) => { + .then((accounts: sqlops.Account[]) => { this.updateAccountList(accounts); }); } @@ -147,7 +147,7 @@ export class AccountPicker extends Disposable { } // PRIVATE HELPERS ///////////////////////////////////////////////////// - private onAccountSelectionChange(account: data.Account) { + private onAccountSelectionChange(account: sqlops.Account) { this.viewModel.selectedAccount = account; if (account && account.isStale) { this._refreshAccountAction.account = account; @@ -194,7 +194,7 @@ export class AccountPicker extends Disposable { return null; } - private updateAccountList(accounts: data.Account[]): void { + private updateAccountList(accounts: sqlops.Account[]): void { // keep the selection to the current one let selectedElements = this._accountList.getSelectedElements(); diff --git a/src/sql/parts/accountManagement/accountPicker/accountPickerService.ts b/src/sql/parts/accountManagement/accountPicker/accountPickerService.ts index 97fe77baca..72ff584783 100644 --- a/src/sql/parts/accountManagement/accountPicker/accountPickerService.ts +++ b/src/sql/parts/accountManagement/accountPicker/accountPickerService.ts @@ -6,7 +6,7 @@ 'use strict'; import { IInstantiationService } from 'vs/platform/instantiation/common/instantiation'; import Event, { Emitter } from 'vs/base/common/event'; -import * as data from 'data'; +import * as sqlops from 'sqlops'; import { IAccountPickerService } from 'sql/parts/accountManagement/common/interfaces'; import { AccountPicker } from 'sql/parts/accountManagement/accountPicker/accountPicker'; @@ -26,8 +26,8 @@ export class AccountPickerService implements IAccountPickerService { private _addAccountStartEmitter: Emitter; public get addAccountStartEvent(): Event { return this._addAccountStartEmitter.event; } - private _onAccountSelectionChangeEvent: Emitter; - public get onAccountSelectionChangeEvent(): Event { return this._onAccountSelectionChangeEvent.event; } + private _onAccountSelectionChangeEvent: Emitter; + public get onAccountSelectionChangeEvent(): Event { return this._onAccountSelectionChangeEvent.event; } constructor( @IInstantiationService private _instantiationService: IInstantiationService @@ -36,13 +36,13 @@ export class AccountPickerService implements IAccountPickerService { this._addAccountCompleteEmitter = new Emitter(); this._addAccountErrorEmitter = new Emitter(); this._addAccountStartEmitter = new Emitter(); - this._onAccountSelectionChangeEvent = new Emitter(); + this._onAccountSelectionChangeEvent = new Emitter(); } /** * Get selected account */ - public get selectedAccount(): data.Account { + public get selectedAccount(): sqlops.Account { return this._accountPicker.viewModel.selectedAccount; } diff --git a/src/sql/parts/accountManagement/accountPicker/accountPickerViewModel.ts b/src/sql/parts/accountManagement/accountPicker/accountPickerViewModel.ts index a321ef03d6..1f644a4140 100644 --- a/src/sql/parts/accountManagement/accountPicker/accountPickerViewModel.ts +++ b/src/sql/parts/accountManagement/accountPicker/accountPickerViewModel.ts @@ -4,7 +4,7 @@ *--------------------------------------------------------------------------------------------*/ 'use strict'; -import * as data from 'data'; +import * as sqlops from 'sqlops'; import Event, { Emitter } from 'vs/base/common/event'; import { IAccountManagementService } from 'sql/services/accountManagement/interfaces'; @@ -18,7 +18,7 @@ export class AccountPickerViewModel { private _updateAccountListEmitter: Emitter; public get updateAccountListEvent(): Event { return this._updateAccountListEmitter.event; } - public selectedAccount: data.Account; + public selectedAccount: sqlops.Account; constructor( private _providerId: string, @@ -38,7 +38,7 @@ export class AccountPickerViewModel { * Loads an initial list of accounts from the account management service * @return {Thenable} Promise to return the list of accounts */ - public initialize(): Thenable { + public initialize(): Thenable { // Load a baseline of the accounts for the provider return this._accountManagementService.getAccountsForProvider(this._providerId) .then(null, () => { diff --git a/src/sql/parts/accountManagement/common/accountActions.ts b/src/sql/parts/accountManagement/common/accountActions.ts index e75779cfec..6ab6ce3b06 100644 --- a/src/sql/parts/accountManagement/common/accountActions.ts +++ b/src/sql/parts/accountManagement/common/accountActions.ts @@ -5,7 +5,7 @@ 'use strict'; -import * as data from 'data'; +import * as sqlops from 'sqlops'; import Event, { Emitter } from 'vs/base/common/event'; import { localize } from 'vs/nls'; import { TPromise } from 'vs/base/common/winjs.base'; @@ -55,16 +55,16 @@ export class AddAccountAction extends Action { return new TPromise((resolve, reject) => { self._accountManagementService.addAccount(self._providerId) .then( - () => { - self._addAccountCompleteEmitter.fire(); - resolve(true); - }, - err => { - error(`Error while adding account: ${err}`); - self._addAccountErrorEmitter.fire(err); - self._addAccountCompleteEmitter.fire(); - reject(err); - } + () => { + self._addAccountCompleteEmitter.fire(); + resolve(true); + }, + err => { + error(`Error while adding account: ${err}`); + self._addAccountErrorEmitter.fire(err); + self._addAccountCompleteEmitter.fire(); + reject(err); + } ); }); } @@ -78,7 +78,7 @@ export class RemoveAccountAction extends Action { public static LABEL = localize('removeAccount', 'Remove account'); constructor( - private _account: data.Account, + private _account: sqlops.Account, @IMessageService private _messageService: IMessageService, @IErrorMessageService private _errorMessageService: IErrorMessageService, @IAccountManagementService private _accountManagementService: IAccountManagementService @@ -143,7 +143,7 @@ export class ApplyFilterAction extends Action { export class RefreshAccountAction extends Action { public static ID = 'account.refresh'; public static LABEL = localize('refreshAccount', 'Reenter your credentials'); - public account: data.Account; + public account: sqlops.Account; constructor( @IAccountManagementService private _accountManagementService: IAccountManagementService @@ -156,14 +156,14 @@ export class RefreshAccountAction extends Action { if (self.account) { self._accountManagementService.refreshAccount(self.account) .then( - () => { - resolve(true); - }, - err => { - error(`Error while refreshing account: ${err}`); - reject(err); - } - ); + () => { + resolve(true); + }, + err => { + error(`Error while refreshing account: ${err}`); + reject(err); + } + ); } else { let errorMessage = localize('NoAccountToRefresh', 'There is no account to refresh'); reject(errorMessage); diff --git a/src/sql/parts/accountManagement/common/accountListRenderer.ts b/src/sql/parts/accountManagement/common/accountListRenderer.ts index c022a80e25..22818b0ccd 100644 --- a/src/sql/parts/accountManagement/common/accountListRenderer.ts +++ b/src/sql/parts/accountManagement/common/accountListRenderer.ts @@ -15,20 +15,20 @@ import { IInstantiationService } from 'vs/platform/instantiation/common/instanti import { RemoveAccountAction, RefreshAccountAction } from 'sql/parts/accountManagement/common/accountActions'; -import * as data from 'data'; +import * as sqlops from 'sqlops'; -export class AccountListDelegate implements IDelegate { +export class AccountListDelegate implements IDelegate { constructor( private _height: number ) { } - public getHeight(element: data.Account): number { + public getHeight(element: sqlops.Account): number { return this._height; } - public getTemplateId(element: data.Account): string { + public getTemplateId(element: sqlops.Account): string { return 'accountListRenderer'; } } @@ -44,7 +44,7 @@ export interface AccountListTemplate { actions?: ActionBar; } -export class AccountPickerListRenderer implements IRenderer { +export class AccountPickerListRenderer implements IRenderer { public static TEMPLATE_ID = 'accountListRenderer'; public get templateId(): string { @@ -64,7 +64,7 @@ export class AccountPickerListRenderer implements IRenderer; + createFirewallRule(selectedAccount: sqlops.Account, firewallruleInfo: sqlops.FirewallRuleInfo, resourceProviderId: string): Promise; /** * handle a firewall rule @@ -56,6 +56,6 @@ export interface IAccountPickerService { addAccountCompleteEvent: Event; addAccountErrorEvent: Event; addAccountStartEvent: Event; - onAccountSelectionChangeEvent: Event; - selectedAccount: data.Account; + onAccountSelectionChangeEvent: Event; + selectedAccount: sqlops.Account; } diff --git a/src/sql/parts/accountManagement/common/resourceProviderService.ts b/src/sql/parts/accountManagement/common/resourceProviderService.ts index 074334c937..65d737ef80 100644 --- a/src/sql/parts/accountManagement/common/resourceProviderService.ts +++ b/src/sql/parts/accountManagement/common/resourceProviderService.ts @@ -14,12 +14,12 @@ import * as TelemetryKeys from 'sql/common/telemetryKeys'; import * as TelemetryUtils from 'sql/common/telemetryUtilities'; import { FirewallRuleDialogController } from 'sql/parts/accountManagement/firewallRuleDialog/firewallRuleDialogController'; -import * as data from 'data'; +import * as sqlops from 'sqlops'; export class ResourceProviderService implements IResourceProviderService { public _serviceBrand: any; - private _providers: { [handle: string]: data.ResourceProvider; } = Object.create(null); + private _providers: { [handle: string]: sqlops.ResourceProvider; } = Object.create(null); private _firewallRuleDialogController: FirewallRuleDialogController; constructor( @@ -44,8 +44,8 @@ export class ResourceProviderService implements IResourceProviderService { /** * Create a firewall rule */ - public createFirewallRule(selectedAccount: data.Account, firewallruleInfo: data.FirewallRuleInfo, resourceProviderId: string): Promise { - return new Promise((resolve, reject) => { + public createFirewallRule(selectedAccount: sqlops.Account, firewallruleInfo: sqlops.FirewallRuleInfo, resourceProviderId: string): Promise { + return new Promise((resolve, reject) => { let provider = this._providers[resourceProviderId]; if (provider) { TelemetryUtils.addTelemetry(this._telemetryService, TelemetryKeys.FirewallRuleRequested, { provider: resourceProviderId }); @@ -96,7 +96,7 @@ export class ResourceProviderService implements IResourceProviderService { /** * Register a resource provider */ - public registerProvider(providerId: string, provider: data.ResourceProvider): void { + public registerProvider(providerId: string, provider: sqlops.ResourceProvider): void { this._providers[providerId] = provider; } diff --git a/src/sql/parts/accountManagement/firewallRuleDialog/firewallRuleDialog.ts b/src/sql/parts/accountManagement/firewallRuleDialog/firewallRuleDialog.ts index 673a9c47b1..b3beb76871 100644 --- a/src/sql/parts/accountManagement/firewallRuleDialog/firewallRuleDialog.ts +++ b/src/sql/parts/accountManagement/firewallRuleDialog/firewallRuleDialog.ts @@ -21,7 +21,7 @@ import { SIDE_BAR_BACKGROUND } from 'vs/workbench/common/theme'; import { IContextKeyService } from 'vs/platform/contextkey/common/contextkey'; import { IWindowsService } from 'vs/platform/windows/common/windows'; -import * as data from 'data'; +import * as sqlops from 'sqlops'; import { Button } from 'sql/base/browser/ui/button/button'; import { Modal } from 'sql/base/browser/ui/modal/modal'; import { FirewallRuleViewModel } from 'sql/parts/accountManagement/firewallRuleDialog/firewallRuleViewModel'; @@ -291,7 +291,7 @@ export class FirewallRuleDialog extends Modal { } } - public onAccountSelectionChange(account: data.Account): void { + public onAccountSelectionChange(account: sqlops.Account): void { this.viewModel.selectedAccount = account; if (account && !account.isStale) { this._createButton.enabled = true; diff --git a/src/sql/parts/accountManagement/firewallRuleDialog/firewallRuleDialogController.ts b/src/sql/parts/accountManagement/firewallRuleDialog/firewallRuleDialogController.ts index 8b334a1f23..4d65bcc4ac 100644 --- a/src/sql/parts/accountManagement/firewallRuleDialog/firewallRuleDialogController.ts +++ b/src/sql/parts/accountManagement/firewallRuleDialog/firewallRuleDialogController.ts @@ -7,7 +7,7 @@ import { IInstantiationService } from 'vs/platform/instantiation/common/instantiation'; import Severity from 'vs/base/common/severity'; import { localize } from 'vs/nls'; -import * as data from 'data'; +import * as sqlops from 'sqlops'; import { IConnectionProfile } from 'sql/parts/connection/common/interfaces'; import { IErrorMessageService } from 'sql/parts/connection/common/connectionManagement'; @@ -62,7 +62,7 @@ export class FirewallRuleDialogController { let resourceProviderId = this._resourceProviderId; this._accountManagementService.getSecurityToken(this._firewallRuleDialog.viewModel.selectedAccount).then(tokenMappings => { - let firewallRuleInfo: data.FirewallRuleInfo = { + let firewallRuleInfo: sqlops.FirewallRuleInfo = { startIpAddress: this._firewallRuleDialog.viewModel.isIPAddressSelected ? this._firewallRuleDialog.viewModel.defaultIPAddress : this._firewallRuleDialog.viewModel.fromSubnetIPRange, endIpAddress: this._firewallRuleDialog.viewModel.isIPAddressSelected ? this._firewallRuleDialog.viewModel.defaultIPAddress : this._firewallRuleDialog.viewModel.toSubnetIPRange, serverName: this._connection.serverName, diff --git a/src/sql/parts/accountManagement/firewallRuleDialog/firewallRuleViewModel.ts b/src/sql/parts/accountManagement/firewallRuleDialog/firewallRuleViewModel.ts index 63adfa1d68..0ac82aecad 100644 --- a/src/sql/parts/accountManagement/firewallRuleDialog/firewallRuleViewModel.ts +++ b/src/sql/parts/accountManagement/firewallRuleDialog/firewallRuleViewModel.ts @@ -4,14 +4,14 @@ *--------------------------------------------------------------------------------------------*/ 'use strict'; -import * as data from 'data'; +import * as sqlops from 'sqlops'; /** * View model for firewall rule dialog */ export class FirewallRuleViewModel { public isIPAddressSelected: boolean; - public selectedAccount: data.Account; + public selectedAccount: sqlops.Account; private _defaultIPAddress: string; private _defaultFromSubnetIPRange: string; diff --git a/src/sql/parts/admin/common/adminService.ts b/src/sql/parts/admin/common/adminService.ts index b072db662d..3a2b1f1f8b 100644 --- a/src/sql/parts/admin/common/adminService.ts +++ b/src/sql/parts/admin/common/adminService.ts @@ -18,32 +18,32 @@ import { TPromise } from 'vs/base/common/winjs.base'; import { IWorkbenchEditorService } from 'vs/workbench/services/editor/common/editorService'; import { IConnectionProfile } from 'sql/parts/connection/common/interfaces'; -import data = require('data'); +import * as sqlops from 'sqlops'; export const IAdminService = createDecorator(SERVICE_ID); export interface IAdminService { _serviceBrand: any; - registerProvider(providerId: string, provider: data.AdminServicesProvider): void; + registerProvider(providerId: string, provider: sqlops.AdminServicesProvider): void; showCreateDatabaseWizard(uri: string, connection: IConnectionProfile): Promise; showCreateLoginWizard(uri: string, connection: IConnectionProfile): Promise; - createDatabase(connectionUri: string, database: data.DatabaseInfo): Thenable; + createDatabase(connectionUri: string, database: sqlops.DatabaseInfo): Thenable; - getDefaultDatabaseInfo(connectionUri: string): Thenable; + getDefaultDatabaseInfo(connectionUri: string): Thenable; - getDatabaseInfo(connectionUri: string): Thenable; + getDatabaseInfo(connectionUri: string): Thenable; } export class AdminService implements IAdminService { _serviceBrand: any; - private _providers: { [handle: string]: data.AdminServicesProvider; } = Object.create(null); + private _providers: { [handle: string]: sqlops.AdminServicesProvider; } = Object.create(null); - private _providerOptions: { [handle: string]: data.AdminServicesOptions; } = Object.create(null); + private _providerOptions: { [handle: string]: sqlops.AdminServicesOptions; } = Object.create(null); constructor( @IInstantiationService private _instantiationService: IInstantiationService, @@ -58,7 +58,7 @@ export class AdminService implements IAdminService { } } - private _runAction(uri: string, action: (handler: data.AdminServicesProvider) => Thenable): Thenable { + private _runAction(uri: string, action: (handler: sqlops.AdminServicesProvider) => Thenable): Thenable { let providerId: string = this._connectionService.getProviderIdFromUri(uri); if (!providerId) { @@ -81,7 +81,7 @@ export class AdminService implements IAdminService { }); } - public createDatabase(connectionUri: string, database: data.DatabaseInfo): Thenable { + public createDatabase(connectionUri: string, database: sqlops.DatabaseInfo): Thenable { let providerId: string = this._connectionService.getProviderIdFromUri(connectionUri); if (providerId) { let provider = this._providers[providerId]; @@ -104,7 +104,7 @@ export class AdminService implements IAdminService { }); } - public createLogin(connectionUri: string, login: data.LoginInfo): Thenable { + public createLogin(connectionUri: string, login: sqlops.LoginInfo): Thenable { let providerId: string = this._connectionService.getProviderIdFromUri(connectionUri); if (providerId) { let provider = this._providers[providerId]; @@ -115,7 +115,7 @@ export class AdminService implements IAdminService { return Promise.resolve(undefined); } - public getDefaultDatabaseInfo(connectionUri: string): Thenable { + public getDefaultDatabaseInfo(connectionUri: string): Thenable { let providerId: string = this._connectionService.getProviderIdFromUri(connectionUri); if (providerId) { let provider = this._providers[providerId]; @@ -126,13 +126,13 @@ export class AdminService implements IAdminService { return Promise.resolve(undefined); } - public getDatabaseInfo(connectionUri: string): Thenable { + public getDatabaseInfo(connectionUri: string): Thenable { return this._runAction(connectionUri, (runner) => { return runner.getDatabaseInfo(connectionUri); }); } - public registerProvider(providerId: string, provider: data.AdminServicesProvider): void { + public registerProvider(providerId: string, provider: sqlops.AdminServicesProvider): void { this._providers[providerId] = provider; } } diff --git a/src/sql/parts/admin/database/create/createDatabase.component.ts b/src/sql/parts/admin/database/create/createDatabase.component.ts index b86ab483ac..6f419946b4 100644 --- a/src/sql/parts/admin/database/create/createDatabase.component.ts +++ b/src/sql/parts/admin/database/create/createDatabase.component.ts @@ -11,18 +11,18 @@ import { ConnectionManagementInfo } from 'sql/parts/connection/common/connection import { IAdminService } from 'sql/parts/admin/common/adminService'; import { ITaskDialogComponent } from 'sql/parts/tasks/common/tasks'; -import data = require('data'); +import * as sqlops from 'sqlops'; import * as nls from 'vs/nls'; export const CREATEDATABASE_SELECTOR: string = 'createdatabase-component'; export interface DatabaseFile { - logicalName: string; - fileType: string; - filegroup: string; - initialSize: string; - autogrow: string; - path: string; + logicalName: string; + fileType: string; + filegroup: string; + initialSize: string; + autogrow: string; + path: string; } @Component({ @@ -31,43 +31,43 @@ export interface DatabaseFile { }) export class CreateDatabaseComponent implements ITaskDialogComponent { - private _adminService: IAdminService; + private _adminService: IAdminService; - public formSubmitted: boolean = false; + public formSubmitted: boolean = false; public ownerUri: string; public connection: ConnectionManagementInfo; - public databaseFiles: DatabaseFile[] = []; + public databaseFiles: DatabaseFile[] = []; - // tslint:disable:no-unused-variable - private readonly databaseFilesLabel: string = nls.localize('createDatabase.databaseFiles', 'Database files:'); - private readonly noRecordsFoundLabel: string = nls.localize('createDatabase.noRecordsFound', 'No records found'); - // tslint:enable:no-unused-variable + // tslint:disable:no-unused-variable + private readonly databaseFilesLabel: string = nls.localize('createDatabase.databaseFiles', 'Database files:'); + private readonly noRecordsFoundLabel: string = nls.localize('createDatabase.noRecordsFound', 'No records found'); + // tslint:enable:no-unused-variable constructor( - @Inject(forwardRef(() => ElementRef)) private _el: ElementRef, - @Inject(forwardRef(() => ChangeDetectorRef)) private _changeDetectorRef: ChangeDetectorRef, - @Inject(BOOTSTRAP_SERVICE_ID) private _bootstrapService: IBootstrapService + @Inject(forwardRef(() => ElementRef)) private _el: ElementRef, + @Inject(forwardRef(() => ChangeDetectorRef)) private _changeDetectorRef: ChangeDetectorRef, + @Inject(BOOTSTRAP_SERVICE_ID) private _bootstrapService: IBootstrapService ) { - this._adminService = this._bootstrapService.adminService; + this._adminService = this._bootstrapService.adminService; } - private getDatabaseInfo(form: NgForm): data.DatabaseInfo { - return { - options: { - name: form.value.databaseName, - owner: form.value.databaseOwner - } - }; - } + private getDatabaseInfo(form: NgForm): sqlops.DatabaseInfo { + return { + options: { + name: form.value.databaseName, + owner: form.value.databaseOwner + } + }; + } - public onSubmit(form: NgForm): void { - this._adminService.createDatabase(this.ownerUri, this.getDatabaseInfo(form)); - this.formSubmitted = true; - this._changeDetectorRef.detectChanges(); - } + public onSubmit(form: NgForm): void { + this._adminService.createDatabase(this.ownerUri, this.getDatabaseInfo(form)); + this.formSubmitted = true; + this._changeDetectorRef.detectChanges(); + } public onOk(): void { } @@ -75,24 +75,24 @@ export class CreateDatabaseComponent implements ITaskDialogComponent { public onCancel(): void { } - public onSelectOwner(): void { } + public onSelectOwner(): void { } - public injectBootstapper(parameters: TaskDialogComponentParams ): void { - let self = this; - this.ownerUri = parameters.ownerUri; - this._adminService.getDefaultDatabaseInfo(this.ownerUri).then(dbInfo => { - let databaseFilesCount = dbInfo.options['databaseFilesCount']; - for (let i = 0; i < databaseFilesCount; ++i) { - self.databaseFiles[i] = { - logicalName: dbInfo.options['databaseFiles.' + i + '.name'], - fileType: dbInfo.options['databaseFiles.' + i + '.databaseFileType'], - filegroup: dbInfo.options['databaseFiles.' + i + '.fileGroup'], - initialSize: dbInfo.options['databaseFiles.' + i + '.initialSize'], - autogrow: dbInfo.options['databaseFiles.' + i + '.autogrowth'], - path: dbInfo.options['databaseFiles.' + i + '.folder'] - }; - } - self._changeDetectorRef.detectChanges(); + public injectBootstapper(parameters: TaskDialogComponentParams): void { + let self = this; + this.ownerUri = parameters.ownerUri; + this._adminService.getDefaultDatabaseInfo(this.ownerUri).then(dbInfo => { + let databaseFilesCount = dbInfo.options['databaseFilesCount']; + for (let i = 0; i < databaseFilesCount; ++i) { + self.databaseFiles[i] = { + logicalName: dbInfo.options['databaseFiles.' + i + '.name'], + fileType: dbInfo.options['databaseFiles.' + i + '.databaseFileType'], + filegroup: dbInfo.options['databaseFiles.' + i + '.fileGroup'], + initialSize: dbInfo.options['databaseFiles.' + i + '.initialSize'], + autogrow: dbInfo.options['databaseFiles.' + i + '.autogrowth'], + path: dbInfo.options['databaseFiles.' + i + '.folder'] + }; + } + self._changeDetectorRef.detectChanges(); }); - } + } } diff --git a/src/sql/parts/connection/common/connectionConfig.ts b/src/sql/parts/connection/common/connectionConfig.ts index 40b4d1c442..db3638ca6f 100644 --- a/src/sql/parts/connection/common/connectionConfig.ts +++ b/src/sql/parts/connection/common/connectionConfig.ts @@ -9,12 +9,12 @@ import * as Utils from './utils'; import { IConnectionProfile, IConnectionProfileStore } from './interfaces'; import { IConnectionConfig } from './iconnectionConfig'; import { ConnectionProfileGroup, IConnectionProfileGroup } from './connectionProfileGroup'; -import { ConfigurationEditingService, IConfigurationValue, IConfigurationValue as TConfigurationValue } from 'vs/workbench/services/configuration/node/configurationEditingService'; +import { ConfigurationEditingService, IConfigurationValue } from 'vs/workbench/services/configuration/node/configurationEditingService'; import { IWorkspaceConfigurationService } from 'vs/workbench/services/configuration/common/configuration'; import { ConfigurationTarget } from 'vs/platform/configuration/common/configuration'; import { ConnectionProfile } from './connectionProfile'; import { ICapabilitiesService } from 'sql/services/capabilities/capabilitiesService'; -import * as data from 'data'; +import * as sqlops from 'sqlops'; import * as nls from 'vs/nls'; import { generateUuid } from 'vs/base/common/uuid'; @@ -29,7 +29,7 @@ export interface ISaveGroupResult { */ export class ConnectionConfig implements IConnectionConfig { - private _providerCapabilitiesMap: { [providerName: string]: data.DataProtocolServerCapabilities }; + private _providerCapabilitiesMap: { [providerName: string]: sqlops.DataProtocolServerCapabilities }; /** * Constructor. */ @@ -37,7 +37,7 @@ export class ConnectionConfig implements IConnectionConfig { private _configurationEditService: ConfigurationEditingService, private _workspaceConfigurationService: IWorkspaceConfigurationService, private _capabilitiesService: ICapabilitiesService, - cachedMetadata?: data.DataProtocolServerCapabilities[] + cachedMetadata?: sqlops.DataProtocolServerCapabilities[] ) { this._providerCapabilitiesMap = {}; this.setCachedMetadata(cachedMetadata); @@ -48,7 +48,7 @@ export class ConnectionConfig implements IConnectionConfig { } } - public setCachedMetadata(cachedMetadata: data.DataProtocolServerCapabilities[]): void { + public setCachedMetadata(cachedMetadata: sqlops.DataProtocolServerCapabilities[]): void { if (cachedMetadata) { cachedMetadata.forEach(item => { this.updateCapabilitiesCache(item.providerName, item); @@ -81,13 +81,13 @@ export class ConnectionConfig implements IConnectionConfig { return allGroups; } - private updateCapabilitiesCache(providerName: string, providerCapabilities: data.DataProtocolServerCapabilities): void { + private updateCapabilitiesCache(providerName: string, providerCapabilities: sqlops.DataProtocolServerCapabilities): void { if (providerName && providerCapabilities) { this._providerCapabilitiesMap[providerName] = providerCapabilities; } } - private getCapabilitiesFromCache(providerName: string): data.DataProtocolServerCapabilities { + private getCapabilitiesFromCache(providerName: string): sqlops.DataProtocolServerCapabilities { if (providerName in this._providerCapabilitiesMap) { return this._providerCapabilitiesMap[providerName]; } @@ -99,8 +99,8 @@ export class ConnectionConfig implements IConnectionConfig { * Gets the data from the metadata stored in the config * @param providerName Provider Name */ - public getCapabilities(providerName: string): data.DataProtocolServerCapabilities { - let result: data.DataProtocolServerCapabilities = this.getCapabilitiesFromCache(providerName); + public getCapabilities(providerName: string): sqlops.DataProtocolServerCapabilities { + let result: sqlops.DataProtocolServerCapabilities = this.getCapabilitiesFromCache(providerName); if (result) { return result; } else { @@ -159,7 +159,7 @@ export class ConnectionConfig implements IConnectionConfig { }); } - private getConnectionProfileInstance(profile: IConnectionProfile, groupId: string, providerCapabilities: data.DataProtocolServerCapabilities): ConnectionProfile { + private getConnectionProfileInstance(profile: IConnectionProfile, groupId: string, providerCapabilities: sqlops.DataProtocolServerCapabilities): ConnectionProfile { let connectionProfile = profile as ConnectionProfile; if (connectionProfile === undefined) { connectionProfile = new ConnectionProfile(providerCapabilities, profile); @@ -519,7 +519,7 @@ export class ConnectionConfig implements IConnectionConfig { */ private getConfiguration(key: string): any { let configs: any; - configs = this._workspaceConfigurationService.inspect(key); + configs = this._workspaceConfigurationService.inspect(key); return configs; } @@ -530,7 +530,7 @@ export class ConnectionConfig implements IConnectionConfig { */ private writeConfiguration( key: string, - profiles: IConnectionProfileStore[] | IConnectionProfileGroup[] | data.DataProtocolServerCapabilities[], + profiles: IConnectionProfileStore[] | IConnectionProfileGroup[] | sqlops.DataProtocolServerCapabilities[], target: ConfigurationTarget = ConfigurationTarget.USER): Promise { return new Promise((resolve, reject) => { let configValue: IConfigurationValue = { diff --git a/src/sql/parts/connection/common/connectionGlobalStatus.ts b/src/sql/parts/connection/common/connectionGlobalStatus.ts index b5c66fb87d..7cdedebc17 100644 --- a/src/sql/parts/connection/common/connectionGlobalStatus.ts +++ b/src/sql/parts/connection/common/connectionGlobalStatus.ts @@ -2,7 +2,7 @@ * Copyright (c) Microsoft Corporation. All rights reserved. * Licensed under the Source EULA. See License.txt in the project root for license information. *--------------------------------------------------------------------------------------------*/ -import { ConnectionSummary } from 'data'; +import { ConnectionSummary } from 'sqlops'; import { IStatusbarService } from 'vs/platform/statusbar/common/statusbar'; import * as LocalizedConstants from 'sql/parts/connection/common/localizedConstants'; diff --git a/src/sql/parts/connection/common/connectionManagement.ts b/src/sql/parts/connection/common/connectionManagement.ts index 3590f69358..c31580f5c0 100644 --- a/src/sql/parts/connection/common/connectionManagement.ts +++ b/src/sql/parts/connection/common/connectionManagement.ts @@ -11,7 +11,7 @@ import { TPromise } from 'vs/base/common/winjs.base'; import Event from 'vs/base/common/event'; import { IAction } from 'vs/base/common/actions'; import Severity from 'vs/base/common/severity'; -import data = require('data'); +import * as sqlops from 'sqlops'; import { IConnectionProfileGroup, ConnectionProfileGroup } from 'sql/parts/connection/common/connectionProfileGroup'; import { ConnectionProfile } from 'sql/parts/connection/common/connectionProfile'; import { IConnectionProfile } from 'sql/parts/connection/common/interfaces'; @@ -81,7 +81,7 @@ export interface IConnectionManagementService { onConnect: Event; onDisconnect: Event; onConnectionChanged: Event; - onLanguageFlavorChanged: Event; + onLanguageFlavorChanged: Event; /** * Opens the connection dialog to create new connection @@ -124,11 +124,11 @@ export interface IConnectionManagementService { /** * Adds the successful connection to MRU and send the connection error back to the connection handler for failed connections */ - onConnectionComplete(handle: number, connectionInfoSummary: data.ConnectionInfoSummary): void; + onConnectionComplete(handle: number, connectionInfoSummary: sqlops.ConnectionInfoSummary): void; onIntelliSenseCacheComplete(handle: number, connectionUri: string): void; - onConnectionChangedNotification(handle: number, changedConnInfo: data.ChangedConnectionInfo); + onConnectionChangedNotification(handle: number, changedConnInfo: sqlops.ChangedConnectionInfo); getConnectionGroups(): ConnectionProfileGroup[]; @@ -150,7 +150,7 @@ export interface IConnectionManagementService { deleteConnectionGroup(group: ConnectionProfileGroup): Promise; - getAdvancedProperties(): data.ConnectionOption[]; + getAdvancedProperties(): sqlops.ConnectionOption[]; getConnectionId(connectionProfile: IConnectionProfile): string; @@ -180,12 +180,12 @@ export interface IConnectionManagementService { addSavedPassword(connectionProfile: IConnectionProfile): Promise; - listDatabases(connectionUri: string): Thenable; + listDatabases(connectionUri: string): Thenable; /** * Register a connection provider */ - registerProvider(providerId: string, provider: data.ConnectionProvider): void; + registerProvider(providerId: string, provider: sqlops.ConnectionProvider): void; editGroup(group: ConnectionProfileGroup): Promise; @@ -216,7 +216,7 @@ export interface IConnectionManagementService { hasRegisteredServers(): boolean; - getCapabilities(providerName: string): data.DataProtocolServerCapabilities; + getCapabilities(providerName: string): sqlops.DataProtocolServerCapabilities; canChangeConnectionConfig(profile: ConnectionProfile, newGroupID: string): boolean; @@ -305,7 +305,7 @@ export interface INewConnectionParams { connectionType: ConnectionType; input?: IConnectableInput; runQueryOnCompletion?: RunQueryOnConnectionMode; - querySelection?: data.ISelectionData; + querySelection?: sqlops.ISelectionData; showDashboard?: boolean; } diff --git a/src/sql/parts/connection/common/connectionManagementInfo.ts b/src/sql/parts/connection/common/connectionManagementInfo.ts index 35ba042af5..478a0bd67b 100644 --- a/src/sql/parts/connection/common/connectionManagementInfo.ts +++ b/src/sql/parts/connection/common/connectionManagementInfo.ts @@ -6,7 +6,7 @@ 'use strict'; import { ConnectionProfile } from 'sql/parts/connection/common/connectionProfile'; -import * as data from 'data'; +import * as sqlops from 'sqlops'; import { StopWatch } from 'vs/base/common/stopwatch'; /** @@ -64,7 +64,7 @@ export class ConnectionManagementInfo { /** * Information about the connected server. */ - serverInfo: data.ServerInfo; + serverInfo: sqlops.ServerInfo; /** * Owner uri assigned to the connection diff --git a/src/sql/parts/connection/common/connectionManagementService.ts b/src/sql/parts/connection/common/connectionManagementService.ts index 643e6b5429..ffde08a952 100644 --- a/src/sql/parts/connection/common/connectionManagementService.ts +++ b/src/sql/parts/connection/common/connectionManagementService.ts @@ -31,7 +31,7 @@ import { IResourceProviderService } from 'sql/parts/accountManagement/common/int import { IAngularEventingService, AngularEventType } from 'sql/services/angularEventing/angularEventingService'; import * as QueryConstants from 'sql/parts/query/common/constants'; -import * as data from 'data'; +import * as sqlops from 'sqlops'; import * as nls from 'vs/nls'; import * as errors from 'vs/base/common/errors'; @@ -64,7 +64,7 @@ export class ConnectionManagementService implements IConnectionManagementService private disposables: IDisposable[] = []; - private _providers: { [handle: string]: data.ConnectionProvider; } = Object.create(null); + private _providers: { [handle: string]: sqlops.ConnectionProvider; } = Object.create(null); private _uriToProvider: { [uri: string]: string; } = Object.create(null); @@ -76,7 +76,7 @@ export class ConnectionManagementService implements IConnectionManagementService private _onDisconnect: Emitter; private _onConnectRequestSent: Emitter; private _onConnectionChanged: Emitter; - private _onLanguageFlavorChanged: Emitter; + private _onLanguageFlavorChanged: Emitter; private _connectionGlobalStatus: ConnectionGlobalStatus; @@ -126,7 +126,7 @@ export class ConnectionManagementService implements IConnectionManagementService this._onDisconnect = new Emitter(); this._onConnectionChanged = new Emitter(); this._onConnectRequestSent = new Emitter(); - this._onLanguageFlavorChanged = new Emitter(); + this._onLanguageFlavorChanged = new Emitter(); this._onProvidersReady = new Deferred(); @@ -182,7 +182,7 @@ export class ConnectionManagementService implements IConnectionManagementService return this._onConnectRequestSent.event; } - public get onLanguageFlavorChanged(): Event { + public get onLanguageFlavorChanged(): Event { return this._onLanguageFlavorChanged.event; } @@ -195,7 +195,7 @@ export class ConnectionManagementService implements IConnectionManagementService private _providerCount: number = 0; // Connection Provider Registration - public registerProvider(providerId: string, provider: data.ConnectionProvider): void { + public registerProvider(providerId: string, provider: sqlops.ConnectionProvider): void { this._providers[providerId] = provider; // temporarily close splash screen when a connection provider has been registered @@ -655,7 +655,7 @@ export class ConnectionManagementService implements IConnectionManagementService return this._connectionStore.clearRecentlyUsed(); } - public clearRecentConnection(connectionProfile: IConnectionProfile) : void { + public clearRecentConnection(connectionProfile: IConnectionProfile): void { this._connectionStore.removeConnectionToMemento(connectionProfile, Constants.recentConnections); } @@ -679,7 +679,7 @@ export class ConnectionManagementService implements IConnectionManagementService return Object.keys(this._providers); } - public getCapabilities(providerName: string): data.DataProtocolServerCapabilities { + public getCapabilities(providerName: string): sqlops.DataProtocolServerCapabilities { let capabilities = this._capabilitiesService.getCapabilities(); if (capabilities !== undefined && capabilities.length > 0) { return capabilities.find(c => c.providerName === providerName); @@ -687,7 +687,7 @@ export class ConnectionManagementService implements IConnectionManagementService return undefined; } - public getAdvancedProperties(): data.ConnectionOption[] { + public getAdvancedProperties(): sqlops.ConnectionOption[] { let capabilities = this._capabilitiesService.getCapabilities(); if (capabilities !== undefined && capabilities.length > 0) { @@ -832,13 +832,13 @@ export class ConnectionManagementService implements IConnectionManagementService }); } - private sendListDatabasesRequest(uri: string): Thenable { + private sendListDatabasesRequest(uri: string): Thenable { let providerId: string = this.getProviderIdFromUri(uri); if (!providerId) { return Promise.resolve(undefined); } - return new Promise((resolve, reject) => { + return new Promise((resolve, reject) => { let provider = this._providers[providerId]; provider.listDatabases(uri).then(result => { if (result && result.databaseNames) { @@ -895,7 +895,7 @@ export class ConnectionManagementService implements IConnectionManagementService }); } - public onConnectionComplete(handle: number, info: data.ConnectionInfoSummary): void { + public onConnectionComplete(handle: number, info: sqlops.ConnectionInfoSummary): void { const self = this; let connection = this._connectionStatusManager.onConnectionComplete(info); @@ -923,7 +923,7 @@ export class ConnectionManagementService implements IConnectionManagementService } } - public onConnectionChangedNotification(handle: number, changedConnInfo: data.ChangedConnectionInfo): void { + public onConnectionChangedNotification(handle: number, changedConnInfo: sqlops.ChangedConnectionInfo): void { let profile: IConnectionProfile = this._connectionStatusManager.onConnectionChanged(changedConnInfo); this._notifyConnectionChanged(profile, changedConnInfo.connectionUri); } @@ -1023,28 +1023,26 @@ export class ConnectionManagementService implements IConnectionManagementService const self = this; return new Promise((resolve, reject) => { - this._capabilitiesService.onCapabilitiesReady().then(() => { - let connectionInfo = this._connectionStatusManager.addConnection(connection, uri); - // Setup the handler for the connection complete notification to call - connectionInfo.connectHandler = ((connectResult, errorMessage, errorCode, callStack) => { - let connectionMngInfo = this._connectionStatusManager.findConnection(uri); - if (connectionMngInfo && connectionMngInfo.deleted) { + let connectionInfo = this._connectionStatusManager.addConnection(connection, uri); + // Setup the handler for the connection complete notification to call + connectionInfo.connectHandler = ((connectResult, errorMessage, errorCode, callStack) => { + let connectionMngInfo = this._connectionStatusManager.findConnection(uri); + if (connectionMngInfo && connectionMngInfo.deleted) { + this._connectionStatusManager.deleteConnection(uri); + resolve({ connected: connectResult, errorMessage: undefined, errorCode: undefined, callStack: undefined, errorHandled: true }); + } else { + if (errorMessage) { + // Connection to the server failed this._connectionStatusManager.deleteConnection(uri); - resolve({ connected: connectResult, errorMessage: undefined, errorCode: undefined, callStack: undefined, errorHandled: true }); + resolve({ connected: connectResult, errorMessage: errorMessage, errorCode: errorCode, callStack: callStack }); } else { - if (errorMessage) { - // Connection to the server failed - this._connectionStatusManager.deleteConnection(uri); - resolve({ connected: connectResult, errorMessage: errorMessage, errorCode: errorCode, callStack: callStack }); - } else { - resolve({ connected: connectResult, errorMessage: errorMessage, errorCode: errorCode, callStack: callStack }); - } + resolve({ connected: connectResult, errorMessage: errorMessage, errorCode: errorCode, callStack: callStack }); } - }); - - // send connection request - self.sendConnectRequest(connection, uri); + } }); + + // send connection request + self.sendConnectRequest(connection, uri); }); } @@ -1197,7 +1195,7 @@ export class ConnectionManagementService implements IConnectionManagementService return this._connectionStatusManager.isConnected(fileUri) ? this._connectionStatusManager.findConnection(fileUri) : undefined; } - public listDatabases(connectionUri: string): Thenable { + public listDatabases(connectionUri: string): Thenable { const self = this; if (self.isConnected(connectionUri)) { return self.sendListDatabasesRequest(connectionUri); diff --git a/src/sql/parts/connection/common/connectionProfile.ts b/src/sql/parts/connection/common/connectionProfile.ts index f06ada6db5..6c49589a5b 100644 --- a/src/sql/parts/connection/common/connectionProfile.ts +++ b/src/sql/parts/connection/common/connectionProfile.ts @@ -6,7 +6,7 @@ 'use strict'; import { ConnectionProfileGroup } from './connectionProfileGroup'; -import * as data from 'data'; +import * as sqlops from 'sqlops'; import { ProviderConnectionInfo } from 'sql/parts/connection/common/providerConnectionInfo'; import * as interfaces from 'sql/parts/connection/common/interfaces'; import { equalsIgnoreCase } from 'vs/base/common/strings'; @@ -28,7 +28,7 @@ export class ConnectionProfile extends ProviderConnectionInfo implements interfa public saveProfile: boolean; public isDisconnecting: boolean = false; - public constructor(serverCapabilities?: data.DataProtocolServerCapabilities, model?: interfaces.IConnectionProfile) { + public constructor(serverCapabilities?: sqlops.DataProtocolServerCapabilities, model?: interfaces.IConnectionProfile) { super(serverCapabilities, model); if (model) { this.groupId = model.groupId; @@ -137,7 +137,7 @@ export class ConnectionProfile extends ProviderConnectionInfo implements interfa return super.getOptionsKey(); } - public onProviderRegistered(serverCapabilities: data.DataProtocolServerCapabilities): void { + public onProviderRegistered(serverCapabilities: sqlops.DataProtocolServerCapabilities): void { if (serverCapabilities.providerName === this.providerName) { this.setServerCapabilities(serverCapabilities); } @@ -164,13 +164,13 @@ export class ConnectionProfile extends ProviderConnectionInfo implements interfa return result; } - public toConnectionInfo(): data.ConnectionInfo { + public toConnectionInfo(): sqlops.ConnectionInfo { return { options: this.options }; } - public static createFromStoredProfile(profile: interfaces.IConnectionProfileStore, serverCapabilities: data.DataProtocolServerCapabilities): ConnectionProfile { + public static createFromStoredProfile(profile: interfaces.IConnectionProfileStore, serverCapabilities: sqlops.DataProtocolServerCapabilities): ConnectionProfile { let connectionInfo = new ConnectionProfile(serverCapabilities, undefined); connectionInfo.options = profile.options; @@ -187,7 +187,7 @@ export class ConnectionProfile extends ProviderConnectionInfo implements interfa return connectionInfo; } - public static convertToConnectionProfile(serverCapabilities: data.DataProtocolServerCapabilities, conn: interfaces.IConnectionProfile): ConnectionProfile { + public static convertToConnectionProfile(serverCapabilities: sqlops.DataProtocolServerCapabilities, conn: interfaces.IConnectionProfile): ConnectionProfile { if (conn) { let connectionProfile: ConnectionProfile = undefined; let connectionProfileInstance = conn as ConnectionProfile; @@ -205,7 +205,7 @@ export class ConnectionProfile extends ProviderConnectionInfo implements interfa } public static convertToProfileStore( - serverCapabilities: data.DataProtocolServerCapabilities, + serverCapabilities: sqlops.DataProtocolServerCapabilities, connectionProfile: interfaces.IConnectionProfile): interfaces.IConnectionProfileStore { if (connectionProfile) { let connectionInfo = ConnectionProfile.convertToConnectionProfile(serverCapabilities, connectionProfile); diff --git a/src/sql/parts/connection/common/connectionStatusManager.ts b/src/sql/parts/connection/common/connectionStatusManager.ts index 768a807cc3..2b87998c13 100644 --- a/src/sql/parts/connection/common/connectionStatusManager.ts +++ b/src/sql/parts/connection/common/connectionStatusManager.ts @@ -9,21 +9,21 @@ import { ICapabilitiesService } from 'sql/services/capabilities/capabilitiesServ import { ConnectionProfile } from 'sql/parts/connection/common/connectionProfile'; import { IConnectionProfile } from './interfaces'; import * as Utils from './utils'; -import * as data from 'data'; +import * as sqlops from 'sqlops'; import { StopWatch } from 'vs/base/common/stopwatch'; export class ConnectionStatusManager { private _connections: { [id: string]: ConnectionManagementInfo }; - private _providerCapabilitiesMap: { [providerName: string]: data.DataProtocolServerCapabilities }; + private _providerCapabilitiesMap: { [providerName: string]: sqlops.DataProtocolServerCapabilities }; constructor( @ICapabilitiesService private _capabilitiesService: ICapabilitiesService) { this._connections = {}; this._providerCapabilitiesMap = {}; } - public getCapabilities(providerName: string): data.DataProtocolServerCapabilities { - let result: data.DataProtocolServerCapabilities; + public getCapabilities(providerName: string): sqlops.DataProtocolServerCapabilities { + let result: sqlops.DataProtocolServerCapabilities; if (providerName in this._providerCapabilitiesMap) { result = this._providerCapabilitiesMap[providerName]; @@ -126,7 +126,7 @@ export class ConnectionStatusManager { return newId; } - public onConnectionComplete(summary: data.ConnectionInfoSummary): ConnectionManagementInfo { + public onConnectionComplete(summary: sqlops.ConnectionInfoSummary): ConnectionManagementInfo { let connection = this._connections[summary.ownerUri]; connection.serviceTimer.stop(); connection.connecting = false; @@ -139,7 +139,7 @@ export class ConnectionStatusManager { * Updates database name after connection is complete * @param summary connection summary */ - public updateDatabaseName(summary: data.ConnectionInfoSummary): void { + public updateDatabaseName(summary: sqlops.ConnectionInfoSummary): void { let connection = this._connections[summary.ownerUri]; //Check if the existing connection database name is different the one in the summary @@ -174,7 +174,7 @@ export class ConnectionStatusManager { return ownerUriToReturn; } - public onConnectionChanged(changedConnInfo: data.ChangedConnectionInfo): IConnectionProfile { + public onConnectionChanged(changedConnInfo: sqlops.ChangedConnectionInfo): IConnectionProfile { let connection = this._connections[changedConnInfo.connectionUri]; if (connection && connection.connectionProfile) { connection.connectionProfile.serverName = changedConnInfo.connection.serverName; diff --git a/src/sql/parts/connection/common/connectionStore.ts b/src/sql/parts/connection/common/connectionStore.ts index 62450d2507..c66b39d723 100644 --- a/src/sql/parts/connection/common/connectionStore.ts +++ b/src/sql/parts/connection/common/connectionStore.ts @@ -18,9 +18,10 @@ import { ConnectionProfileGroup, IConnectionProfileGroup } from './connectionPro import { ConfigurationEditingService } from 'vs/workbench/services/configuration/node/configurationEditingService'; import { IWorkspaceConfigurationService } from 'vs/workbench/services/configuration/common/configuration'; import { ICapabilitiesService } from 'sql/services/capabilities/capabilitiesService'; -import * as data from 'data'; import { ConnectionOptionSpecialType } from 'sql/workbench/api/common/sqlExtHostTypes'; +import * as sqlops from 'sqlops'; + const MAX_CONNECTIONS_DEFAULT = 25; /** @@ -213,9 +214,9 @@ export class ConnectionStore { }); } - private getCachedServerCapabilities(): data.DataProtocolServerCapabilities[] { + private getCachedServerCapabilities(): sqlops.DataProtocolServerCapabilities[] { if (this._memento) { - let metadata: data.DataProtocolServerCapabilities[] = this._memento[Constants.capabilitiesOptions]; + let metadata: sqlops.DataProtocolServerCapabilities[] = this._memento[Constants.capabilitiesOptions]; return metadata; } else { return undefined; @@ -234,7 +235,7 @@ export class ConnectionStore { * Gets the list of recently used connections. These will not include the password - a separate call to * {addSavedPassword} is needed to fill that before connecting * - * @returns {data.ConnectionInfo} the array of connections, empty if none are found + * @returns {sqlops.ConnectionInfo} the array of connections, empty if none are found */ public getRecentlyUsedConnections(): ConnectionProfile[] { let configValues: IConnectionProfile[] = this._memento[Constants.recentConnections]; @@ -275,7 +276,7 @@ export class ConnectionStore { * Gets the list of active connections. These will not include the password - a separate call to * {addSavedPassword} is needed to fill that before connecting * - * @returns {data.ConnectionInfo} the array of connections, empty if none are found + * @returns {sqlops.ConnectionInfo} the array of connections, empty if none are found */ public getActiveConnections(): ConnectionProfile[] { let configValues: IConnectionProfile[] = this._memento[Constants.activeConnections]; diff --git a/src/sql/parts/connection/common/iconnectionConfig.ts b/src/sql/parts/connection/common/iconnectionConfig.ts index 1152bb3394..c4aa95162d 100644 --- a/src/sql/parts/connection/common/iconnectionConfig.ts +++ b/src/sql/parts/connection/common/iconnectionConfig.ts @@ -8,7 +8,7 @@ import { IConnectionProfile } from './interfaces'; import { IConnectionProfileGroup, ConnectionProfileGroup } from './connectionProfileGroup'; import { ConnectionProfile } from './connectionProfile'; -import data = require('data'); +import * as sqlops from 'sqlops'; /** * Interface for a configuration file that stores connection profiles. @@ -23,8 +23,8 @@ export interface IConnectionConfig { getAllGroups(): IConnectionProfileGroup[]; changeGroupIdForConnectionGroup(source: ConnectionProfileGroup, target: ConnectionProfileGroup): Promise; changeGroupIdForConnection(source: ConnectionProfile, targetGroupId: string): Promise; - setCachedMetadata(cachedMetaData: data.DataProtocolServerCapabilities[]): void; - getCapabilities(providerName: string): data.DataProtocolServerCapabilities; + setCachedMetadata(cachedMetaData: sqlops.DataProtocolServerCapabilities[]): void; + getCapabilities(providerName: string): sqlops.DataProtocolServerCapabilities; editGroup(group: ConnectionProfileGroup): Promise; deleteConnection(profile: ConnectionProfile): Promise; deleteGroup(group: ConnectionProfileGroup): Promise; diff --git a/src/sql/parts/connection/common/interfaces.ts b/src/sql/parts/connection/common/interfaces.ts index 4c240bfda2..99d10d5c88 100644 --- a/src/sql/parts/connection/common/interfaces.ts +++ b/src/sql/parts/connection/common/interfaces.ts @@ -4,11 +4,11 @@ *--------------------------------------------------------------------------------------------*/ 'use strict'; -import * as data from 'data'; +import * as sqlops from 'sqlops'; // A Connection Profile contains all the properties of connection credentials, with additional // optional name and details on whether password should be saved -export interface IConnectionProfile extends data.ConnectionInfo { +export interface IConnectionProfile extends sqlops.ConnectionInfo { serverName: string; databaseName: string; userName: string; diff --git a/src/sql/parts/connection/common/providerConnectionInfo.ts b/src/sql/parts/connection/common/providerConnectionInfo.ts index bd61622552..45e6bd7e16 100644 --- a/src/sql/parts/connection/common/providerConnectionInfo.ts +++ b/src/sql/parts/connection/common/providerConnectionInfo.ts @@ -5,21 +5,21 @@ 'use strict'; -import data = require('data'); +import * as sqlops from 'sqlops'; import * as interfaces from 'sql/parts/connection/common/interfaces'; import { ConnectionOptionSpecialType, ServiceOptionType } from 'sql/workbench/api/common/sqlExtHostTypes'; import * as Constants from 'sql/parts/connection/common/constants'; -export class ProviderConnectionInfo implements data.ConnectionInfo { +export class ProviderConnectionInfo implements sqlops.ConnectionInfo { options: { [name: string]: any }; public providerName: string; - protected _serverCapabilities: data.DataProtocolServerCapabilities; + protected _serverCapabilities: sqlops.DataProtocolServerCapabilities; private static readonly SqlAuthentication = 'SqlLogin'; public static readonly ProviderPropertyName = 'providerName'; - public constructor(serverCapabilities?: data.DataProtocolServerCapabilities, model?: interfaces.IConnectionProfile) { + public constructor(serverCapabilities?: sqlops.DataProtocolServerCapabilities, model?: interfaces.IConnectionProfile) { this.options = {}; if (serverCapabilities) { this._serverCapabilities = serverCapabilities; @@ -47,11 +47,11 @@ export class ProviderConnectionInfo implements data.ConnectionInfo { return instance; } - public get serverCapabilities(): data.DataProtocolServerCapabilities { + public get serverCapabilities(): sqlops.DataProtocolServerCapabilities { return this._serverCapabilities; } - public setServerCapabilities(value: data.DataProtocolServerCapabilities) { + public setServerCapabilities(value: sqlops.DataProtocolServerCapabilities) { this._serverCapabilities = value; } @@ -220,7 +220,7 @@ export class ProviderConnectionInfo implements data.ConnectionInfo { return displayName; } - public getProviderOptions(): data.ConnectionOption[] { + public getProviderOptions(): sqlops.ConnectionOption[] { return this._serverCapabilities.connectionProvider.options; } diff --git a/src/sql/parts/connection/connectionDialog/advancedPropertiesController.ts b/src/sql/parts/connection/connectionDialog/advancedPropertiesController.ts index fd99edfb3c..bd60c1b2ce 100644 --- a/src/sql/parts/connection/connectionDialog/advancedPropertiesController.ts +++ b/src/sql/parts/connection/connectionDialog/advancedPropertiesController.ts @@ -8,7 +8,7 @@ // // import { AdvancedPropertiesDialog } from 'sql/parts/connection/connectionDialog/advancedPropertiesDialog'; import { OptionsDialog } from 'sql/base/browser/ui/modal/optionsDialog'; import { IInstantiationService } from 'vs/platform/instantiation/common/instantiation'; -import data = require('data'); +import * as sqlops from 'sqlops'; import { localize } from 'vs/nls'; import * as TelemetryKeys from 'sql/common/telemetryKeys'; @@ -28,7 +28,7 @@ export class AdvancedPropertiesController { this._options = this._advancedDialog.optionValues; } - public showDialog(providerOptions: data.ConnectionOption[], container: HTMLElement, options: { [name: string]: any }): void { + public showDialog(providerOptions: sqlops.ConnectionOption[], container: HTMLElement, options: { [name: string]: any }): void { this._options = options; this._container = container; var serviceOptions = providerOptions.map(option => AdvancedPropertiesController.connectionOptionToServiceOption(option)); @@ -51,7 +51,7 @@ export class AdvancedPropertiesController { this._advancedDialog = dialog; } - public static connectionOptionToServiceOption(connectionOption: data.ConnectionOption): data.ServiceOption { + public static connectionOptionToServiceOption(connectionOption: sqlops.ConnectionOption): sqlops.ServiceOption { return { name: connectionOption.name, displayName: connectionOption.displayName, diff --git a/src/sql/parts/connection/connectionDialog/connectionController.ts b/src/sql/parts/connection/connectionDialog/connectionController.ts index eeb314422c..691721ed68 100644 --- a/src/sql/parts/connection/connectionDialog/connectionController.ts +++ b/src/sql/parts/connection/connectionDialog/connectionController.ts @@ -12,7 +12,7 @@ import { AdvancedPropertiesController } from 'sql/parts/connection/connectionDia import { IConnectionProfile } from 'sql/parts/connection/common/interfaces'; import { ConnectionProfileGroup, IConnectionProfileGroup } from 'sql/parts/connection/common/connectionProfileGroup'; import * as Constants from 'sql/parts/connection/common/constants'; -import data = require('data'); +import * as sqlops from 'sqlops'; import * as Utils from 'sql/parts/connection/common/utils'; import { IInstantiationService } from 'vs/platform/instantiation/common/instantiation'; import { ConnectionOptionSpecialType } from 'sql/workbench/api/common/sqlExtHostTypes'; @@ -24,14 +24,14 @@ export class ConnectionController implements IConnectionComponentController { private _connectionWidget: ConnectionWidget; private _advancedController: AdvancedPropertiesController; private _model: IConnectionProfile; - private _providerOptions: data.ConnectionOption[]; + private _providerOptions: sqlops.ConnectionOption[]; private _providerName: string; /* key: uri, value : list of databases */ private _databaseCache = new Map(); constructor(container: HTMLElement, connectionManagementService: IConnectionManagementService, - sqlCapabilities: data.DataProtocolServerCapabilities, + sqlCapabilities: sqlops.DataProtocolServerCapabilities, callback: IConnectionComponentCallbacks, providerName: string, @IInstantiationService private _instantiationService: IInstantiationService ) { diff --git a/src/sql/parts/connection/connectionDialog/connectionDialogService.ts b/src/sql/parts/connection/connectionDialog/connectionDialogService.ts index 49d6e03d3d..81c197d262 100644 --- a/src/sql/parts/connection/connectionDialog/connectionDialogService.ts +++ b/src/sql/parts/connection/connectionDialog/connectionDialogService.ts @@ -18,7 +18,7 @@ import { ICapabilitiesService } from 'sql/services/capabilities/capabilitiesServ import { ConnectionProfile } from 'sql/parts/connection/common/connectionProfile'; import { localize } from 'vs/nls'; -import * as data from 'data'; +import * as sqlops from 'sqlops'; import { IPartService } from 'vs/workbench/services/part/common/partService'; import { withElementById } from 'vs/base/browser/builder'; @@ -69,7 +69,7 @@ export class ConnectionDialogService implements IConnectionDialogService { private _model: ConnectionProfile; private _params: INewConnectionParams; private _inputModel: IConnectionProfile; - private _capabilitiesMaps: { [providerDisplayName: string]: data.DataProtocolServerCapabilities }; + private _capabilitiesMaps: { [providerDisplayName: string]: sqlops.DataProtocolServerCapabilities }; private _providerNameToDisplayNameMap: { [providerDisplayName: string]: string }; private _providerTypes: string[]; private _currentProviderType: string = 'Microsoft SQL Server'; @@ -270,7 +270,7 @@ export class ConnectionDialogService implements IConnectionDialogService { return newProfile; } - private cacheCapabilities(capabilities: data.DataProtocolServerCapabilities) { + private cacheCapabilities(capabilities: sqlops.DataProtocolServerCapabilities) { if (capabilities) { this._providerTypes.push(capabilities.providerDisplayName); this._capabilitiesMaps[capabilities.providerName] = capabilities; diff --git a/src/sql/parts/connection/connectionDialog/connectionWidget.ts b/src/sql/parts/connection/connectionDialog/connectionWidget.ts index 07ff450320..a99dec24a3 100644 --- a/src/sql/parts/connection/connectionDialog/connectionWidget.ts +++ b/src/sql/parts/connection/connectionDialog/connectionWidget.ts @@ -23,7 +23,7 @@ import { IThemeService } from 'vs/platform/theme/common/themeService'; import * as styler from 'vs/platform/theme/common/styler'; import { attachInputBoxStyler, attachButtonStyler, attachEditableDropdownStyler } from 'sql/common/theme/styler'; import * as DOM from 'vs/base/browser/dom'; -import data = require('data'); +import * as sqlops from 'sqlops'; import { IContextViewService } from 'vs/platform/contextview/browser/contextView'; import { localize } from 'vs/nls'; import { OS, OperatingSystem } from 'vs/base/common/platform'; @@ -44,7 +44,7 @@ export class ConnectionWidget { private _callbacks: IConnectionComponentCallbacks; private _authTypeSelectBox: SelectBox; private _toDispose: lifecycle.IDisposable[]; - private _optionsMaps: { [optionType: number]: data.ConnectionOption }; + private _optionsMaps: { [optionType: number]: sqlops.ConnectionOption }; private _tableContainer: Builder; private _focusedBeforeHandleOnConnection: HTMLElement; private _providerName: string; @@ -77,7 +77,7 @@ export class ConnectionWidget { color: undefined, description: undefined, }; - constructor(options: data.ConnectionOption[], + constructor(options: sqlops.ConnectionOption[], callbacks: IConnectionComponentCallbacks, providerName: string, @IThemeService private _themeService: IThemeService, diff --git a/src/sql/parts/dashboard/contents/webviewContent.component.ts b/src/sql/parts/dashboard/contents/webviewContent.component.ts index b9ce539996..487f6f3a34 100644 --- a/src/sql/parts/dashboard/contents/webviewContent.component.ts +++ b/src/sql/parts/dashboard/contents/webviewContent.component.ts @@ -16,7 +16,7 @@ import { TabConfig } from 'sql/parts/dashboard/common/dashboardWidget'; import { DashboardServiceInterface } from 'sql/parts/dashboard/services/dashboardServiceInterface.service'; import { IDashboardWebview } from 'sql/services/dashboardWebview/common/dashboardWebviewService'; -import * as data from 'data'; +import * as sqlops from 'sqlops'; import { memoize } from 'vs/base/common/decorators'; @Component({ @@ -55,9 +55,9 @@ export class WebviewContent implements OnInit, IDashboardWebview { } @memoize - public get connection(): data.connection.Connection { + public get connection(): sqlops.connection.Connection { let currentConnection = this._dashboardService.connectionManagementService.connectionInfo.connectionProfile; - let connection: data.connection.Connection = { + let connection: sqlops.connection.Connection = { providerName: currentConnection.providerName, connectionId: currentConnection.id, options: currentConnection.options @@ -66,7 +66,7 @@ export class WebviewContent implements OnInit, IDashboardWebview { } @memoize - public get serverInfo(): data.ServerInfo { + public get serverInfo(): sqlops.ServerInfo { return this._dashboardService.connectionManagementService.connectionInfo.serverInfo; } diff --git a/src/sql/parts/dashboard/newDashboardTabDialog/newDashboardTabViewModel.ts b/src/sql/parts/dashboard/newDashboardTabDialog/newDashboardTabViewModel.ts index 27d51f94ce..0d800210b4 100644 --- a/src/sql/parts/dashboard/newDashboardTabDialog/newDashboardTabViewModel.ts +++ b/src/sql/parts/dashboard/newDashboardTabDialog/newDashboardTabViewModel.ts @@ -4,7 +4,6 @@ *--------------------------------------------------------------------------------------------*/ 'use strict'; -import * as data from 'data'; import Event, { Emitter } from 'vs/base/common/event'; import { IDashboardTab } from 'sql/platform/dashboard/common/dashboardRegistry'; diff --git a/src/sql/parts/dashboard/services/dashboardServiceInterface.service.ts b/src/sql/parts/dashboard/services/dashboardServiceInterface.service.ts index 20de3c23bd..f23a400a27 100644 --- a/src/sql/parts/dashboard/services/dashboardServiceInterface.service.ts +++ b/src/sql/parts/dashboard/services/dashboardServiceInterface.service.ts @@ -24,7 +24,7 @@ import { AngularEventType, IAngularEvent } from 'sql/services/angularEventing/an import { IDashboardTab } from 'sql/platform/dashboard/common/dashboardRegistry'; import { PinConfig } from 'sql/parts/dashboard/common/dashboardWidget'; -import { ProviderMetadata, DatabaseInfo, SimpleExecuteResult } from 'data'; +import { ProviderMetadata, DatabaseInfo, SimpleExecuteResult } from 'sqlops'; /* VS imports */ import { IWorkbenchThemeService } from 'vs/workbench/services/themes/common/workbenchThemeService'; diff --git a/src/sql/parts/dashboard/widgets/explorer/explorerTree.ts b/src/sql/parts/dashboard/widgets/explorer/explorerTree.ts index 8b599f1cc9..91cbe353fd 100644 --- a/src/sql/parts/dashboard/widgets/explorer/explorerTree.ts +++ b/src/sql/parts/dashboard/widgets/explorer/explorerTree.ts @@ -16,7 +16,7 @@ import { ICapabilitiesService } from 'sql/services/capabilities/capabilitiesServ import { ConnectionManagementInfo } from 'sql/parts/connection/common/connectionManagementInfo'; import * as Constants from 'sql/parts/connection/common/constants'; -import { ObjectMetadata } from 'data'; +import { ObjectMetadata } from 'sqlops'; import * as tree from 'vs/base/parts/tree/browser/tree'; import * as TreeDefaults from 'vs/base/parts/tree/browser/treeDefaults'; diff --git a/src/sql/parts/dashboard/widgets/insights/insightsWidget.component.ts b/src/sql/parts/dashboard/widgets/insights/insightsWidget.component.ts index aeefb66fc7..ba1ae91aef 100644 --- a/src/sql/parts/dashboard/widgets/insights/insightsWidget.component.ts +++ b/src/sql/parts/dashboard/widgets/insights/insightsWidget.component.ts @@ -18,7 +18,7 @@ import { Extensions, IInsightRegistry } from 'sql/platform/dashboard/common/insi import { insertValueRegex } from 'sql/parts/insights/common/interfaces'; import { RunInsightQueryAction } from './actions'; -import { SimpleExecuteResult } from 'data'; +import { SimpleExecuteResult } from 'sqlops'; import { Action } from 'vs/base/common/actions'; import * as types from 'vs/base/common/types'; diff --git a/src/sql/parts/dashboard/widgets/properties/propertiesWidget.component.ts b/src/sql/parts/dashboard/widgets/properties/propertiesWidget.component.ts index 17ae0ac7a0..47d1d23525 100644 --- a/src/sql/parts/dashboard/widgets/properties/propertiesWidget.component.ts +++ b/src/sql/parts/dashboard/widgets/properties/propertiesWidget.component.ts @@ -12,7 +12,7 @@ import { toDisposableSubscription } from 'sql/parts/common/rxjsUtils'; import { error } from 'sql/base/common/log'; import { IDashboardRegistry, Extensions as DashboardExtensions } from 'sql/platform/dashboard/common/dashboardRegistry'; -import { DatabaseInfo, ServerInfo } from 'data'; +import { DatabaseInfo, ServerInfo } from 'sqlops'; import { EventType, addDisposableListener } from 'vs/base/browser/dom'; import * as types from 'vs/base/common/types'; diff --git a/src/sql/parts/dashboard/widgets/webview/webviewWidget.component.ts b/src/sql/parts/dashboard/widgets/webview/webviewWidget.component.ts index 37e6af5e9a..82c65a37ba 100644 --- a/src/sql/parts/dashboard/widgets/webview/webviewWidget.component.ts +++ b/src/sql/parts/dashboard/widgets/webview/webviewWidget.component.ts @@ -15,7 +15,7 @@ import { DashboardWidget, IDashboardWidget, WidgetConfig, WIDGET_CONFIG } from ' import { DashboardServiceInterface } from 'sql/parts/dashboard/services/dashboardServiceInterface.service'; import { IDashboardWebview } from 'sql/services/dashboardWebview/common/dashboardWebviewService'; -import * as data from 'data'; +import * as sqlops from 'sqlops'; interface IWebviewWidgetConfig { id: string; @@ -64,9 +64,9 @@ export class WebviewWidget extends DashboardWidget implements IDashboardWidget, } @memoize - public get connection(): data.connection.Connection { + public get connection(): sqlops.connection.Connection { let currentConnection = this._dashboardService.connectionManagementService.connectionInfo.connectionProfile; - let connection: data.connection.Connection = { + let connection: sqlops.connection.Connection = { providerName: currentConnection.providerName, connectionId: currentConnection.id, options: currentConnection.options @@ -75,7 +75,7 @@ export class WebviewWidget extends DashboardWidget implements IDashboardWidget, } @memoize - public get serverInfo(): data.ServerInfo { + public get serverInfo(): sqlops.ServerInfo { return this._dashboardService.connectionManagementService.connectionInfo.serverInfo; } diff --git a/src/sql/parts/disasterRecovery/backup/common/backupService.ts b/src/sql/parts/disasterRecovery/backup/common/backupService.ts index 963596f746..a65a888e29 100644 --- a/src/sql/parts/disasterRecovery/backup/common/backupService.ts +++ b/src/sql/parts/disasterRecovery/backup/common/backupService.ts @@ -7,7 +7,7 @@ import { createDecorator } from 'vs/platform/instantiation/common/instantiation'; import Event from 'vs/base/common/event'; -import data = require('data'); +import * as sqlops from 'sqlops'; import { DashboardComponentParams } from 'sql/services/bootstrap/bootstrapParams'; import { IConnectionProfile } from 'sql/parts/connection/common/interfaces'; @@ -53,15 +53,15 @@ export const IBackupService = createDecorator(SERVICE_ID); export interface IBackupService { _serviceBrand: any; - getBackupConfigInfo(connectionUri: string): Thenable; + getBackupConfigInfo(connectionUri: string): Thenable; /** * Backup a data source using the provided connection */ - backup(connectionUri: string, backupInfo: { [key: string]: any }, taskExecutionMode: data.TaskExecutionMode): Thenable; + backup(connectionUri: string, backupInfo: { [key: string]: any }, taskExecutionMode: sqlops.TaskExecutionMode): Thenable; /** * Register a disaster recovery provider */ - registerProvider(providerId: string, provider: data.BackupProvider): void; + registerProvider(providerId: string, provider: sqlops.BackupProvider): void; } diff --git a/src/sql/parts/disasterRecovery/backup/common/backupServiceImp.ts b/src/sql/parts/disasterRecovery/backup/common/backupServiceImp.ts index f7d3c2ece1..518efb61c4 100644 --- a/src/sql/parts/disasterRecovery/backup/common/backupServiceImp.ts +++ b/src/sql/parts/disasterRecovery/backup/common/backupServiceImp.ts @@ -5,7 +5,7 @@ 'use strict'; import { IConnectionManagementService } from 'sql/parts/connection/common/connectionManagement'; -import * as data from 'data'; +import * as sqlops from 'sqlops'; import * as Constants from 'sql/common/constants'; import * as TelemetryKeys from 'sql/common/telemetryKeys'; import * as TelemetryUtils from 'sql/common/telemetryUtilities'; @@ -26,7 +26,7 @@ import { ProviderConnectionInfo } from 'sql/parts/connection/common/providerConn export class BackupService implements IBackupService { public _serviceBrand: any; - private _providers: { [handle: string]: data.BackupProvider; } = Object.create(null); + private _providers: { [handle: string]: sqlops.BackupProvider; } = Object.create(null); constructor( @IConnectionManagementService private _connectionService: IConnectionManagementService, @@ -37,7 +37,7 @@ export class BackupService implements IBackupService { /** * Get database metadata needed to populate backup UI */ - public getBackupConfigInfo(connectionUri: string): Thenable { + public getBackupConfigInfo(connectionUri: string): Thenable { let providerId: string = this._connectionService.getProviderIdFromUri(connectionUri); if (providerId) { let provider = this._providers[providerId]; @@ -51,8 +51,8 @@ export class BackupService implements IBackupService { /** * Backup a data source using the provided connection */ - public backup(connectionUri: string, backupInfo: { [key: string]: any }, taskExecutionMode: TaskExecutionMode): Thenable { - return new Promise((resolve, reject) => { + public backup(connectionUri: string, backupInfo: { [key: string]: any }, taskExecutionMode: TaskExecutionMode): Thenable { + return new Promise((resolve, reject) => { let providerResult = this.getProvider(connectionUri); if (providerResult) { TelemetryUtils.addTelemetry(this._telemetryService, TelemetryKeys.BackupCreated, { provider: providerResult.providerName }); @@ -67,7 +67,7 @@ export class BackupService implements IBackupService { }); } - private getProvider(connectionUri: string): { provider: data.BackupProvider, providerName: string } { + private getProvider(connectionUri: string): { provider: sqlops.BackupProvider, providerName: string } { let providerId: string = this._connectionService.getProviderIdFromUri(connectionUri); if (providerId) { return { provider: this._providers[providerId], providerName: providerId }; @@ -79,7 +79,7 @@ export class BackupService implements IBackupService { /** * Register a disaster recovery provider */ - public registerProvider(providerId: string, provider: data.BackupProvider): void { + public registerProvider(providerId: string, provider: sqlops.BackupProvider): void { this._providers[providerId] = provider; } } @@ -88,7 +88,7 @@ export class BackupUiService implements IBackupUiService { public _serviceBrand: any; private _backupDialogs: { [providerName: string]: BackupDialog | OptionsDialog } = {}; private _currentProvider: string; - private _optionsMap: { [providerName: string]: data.ServiceOption[] } = {}; + private _optionsMap: { [providerName: string]: sqlops.ServiceOption[] } = {}; private _optionValues: { [optionName: string]: any } = {}; private _connectionUri: string; private static _connectionUniqueId: number = 0; diff --git a/src/sql/parts/disasterRecovery/restore/common/restoreService.ts b/src/sql/parts/disasterRecovery/restore/common/restoreService.ts index d2bc84a509..e78a05e67c 100644 --- a/src/sql/parts/disasterRecovery/restore/common/restoreService.ts +++ b/src/sql/parts/disasterRecovery/restore/common/restoreService.ts @@ -7,7 +7,7 @@ import { TPromise } from 'vs/base/common/winjs.base'; import { createDecorator } from 'vs/platform/instantiation/common/instantiation'; -import * as data from 'data'; +import * as sqlops from 'sqlops'; import { IConnectionProfile } from 'sql/parts/connection/common/interfaces'; @@ -21,27 +21,27 @@ export interface IRestoreService { /** * Register a disaster recovery provider */ - registerProvider(providerId: string, provider: data.RestoreProvider): void; + registerProvider(providerId: string, provider: sqlops.RestoreProvider): void; /** * Restore a data source using a backup file or database */ - restore(connectionUri: string, restoreInfo: data.RestoreInfo): Thenable; + restore(connectionUri: string, restoreInfo: sqlops.RestoreInfo): Thenable; /** * Gets restore plan to do the restore operation on a database */ - getRestorePlan(connectionUri: string, restoreInfo: data.RestoreInfo): Thenable; + getRestorePlan(connectionUri: string, restoreInfo: sqlops.RestoreInfo): Thenable; /** * Gets restore config Info */ - getRestoreConfigInfo(connectionUri: string): Thenable; + getRestoreConfigInfo(connectionUri: string): Thenable; /** * Cancel restore plan */ - cancelRestorePlan(connectionUri: string, restoreInfo: data.RestoreInfo): Thenable; + cancelRestorePlan(connectionUri: string, restoreInfo: sqlops.RestoreInfo): Thenable; } export const IRestoreDialogController = createDecorator('restoreDialogService'); diff --git a/src/sql/parts/disasterRecovery/restore/common/restoreServiceImpl.ts b/src/sql/parts/disasterRecovery/restore/common/restoreServiceImpl.ts index b5331e89d9..f27ca7df00 100644 --- a/src/sql/parts/disasterRecovery/restore/common/restoreServiceImpl.ts +++ b/src/sql/parts/disasterRecovery/restore/common/restoreServiceImpl.ts @@ -5,7 +5,7 @@ 'use strict'; import { IConnectionManagementService } from 'sql/parts/connection/common/connectionManagement'; -import * as data from 'data'; +import * as sqlops from 'sqlops'; import { TPromise } from 'vs/base/common/winjs.base'; import * as Constants from 'sql/common/constants'; import * as TelemetryKeys from 'sql/common/telemetryKeys'; @@ -29,7 +29,7 @@ import { TaskStatus, TaskNode } from 'sql/parts/taskHistory/common/taskNode'; export class RestoreService implements IRestoreService { public _serviceBrand: any; - private _providers: { [handle: string]: data.RestoreProvider; } = Object.create(null); + private _providers: { [handle: string]: sqlops.RestoreProvider; } = Object.create(null); constructor( @IConnectionManagementService private _connectionService: IConnectionManagementService, @@ -40,8 +40,8 @@ export class RestoreService implements IRestoreService { /** * Gets restore config Info */ - getRestoreConfigInfo(connectionUri: string): Thenable { - return new Promise((resolve, reject) => { + getRestoreConfigInfo(connectionUri: string): Thenable { + return new Promise((resolve, reject) => { let providerResult = this.getProvider(connectionUri); if (providerResult) { providerResult.provider.getRestoreConfigInfo(connectionUri).then(result => { @@ -58,8 +58,8 @@ export class RestoreService implements IRestoreService { /** * Restore a data source using a backup file or database */ - restore(connectionUri: string, restoreInfo: data.RestoreInfo): Thenable { - return new Promise((resolve, reject) => { + restore(connectionUri: string, restoreInfo: sqlops.RestoreInfo): Thenable { + return new Promise((resolve, reject) => { let providerResult = this.getProvider(connectionUri); if (providerResult) { TelemetryUtils.addTelemetry(this._telemetryService, TelemetryKeys.RestoreRequested, { provider: providerResult.providerName }); @@ -74,7 +74,7 @@ export class RestoreService implements IRestoreService { }); } - private getProvider(connectionUri: string): { provider: data.RestoreProvider, providerName: string } { + private getProvider(connectionUri: string): { provider: sqlops.RestoreProvider, providerName: string } { let providerId: string = this._connectionService.getProviderIdFromUri(connectionUri); if (providerId) { return { provider: this._providers[providerId], providerName: providerId }; @@ -86,8 +86,8 @@ export class RestoreService implements IRestoreService { /** * Gets restore plan to do the restore operation on a database */ - getRestorePlan(connectionUri: string, restoreInfo: data.RestoreInfo): Thenable { - return new Promise((resolve, reject) => { + getRestorePlan(connectionUri: string, restoreInfo: sqlops.RestoreInfo): Thenable { + return new Promise((resolve, reject) => { let providerResult = this.getProvider(connectionUri); if (providerResult) { providerResult.provider.getRestorePlan(connectionUri, restoreInfo).then(result => { @@ -105,7 +105,7 @@ export class RestoreService implements IRestoreService { /** * Cancels a restore plan */ - cancelRestorePlan(connectionUri: string, restoreInfo: data.RestoreInfo): Thenable { + cancelRestorePlan(connectionUri: string, restoreInfo: sqlops.RestoreInfo): Thenable { return new Promise((resolve, reject) => { let providerResult = this.getProvider(connectionUri); if (providerResult) { @@ -124,7 +124,7 @@ export class RestoreService implements IRestoreService { /** * Register a disaster recovery provider */ - public registerProvider(providerId: string, provider: data.RestoreProvider): void { + public registerProvider(providerId: string, provider: sqlops.RestoreProvider): void { this._providers[providerId] = provider; } } @@ -232,7 +232,7 @@ export class RestoreDialogController implements IRestoreDialogController { }); } - private setRestoreOption(overwriteTargetDatabase: boolean = false): data.RestoreInfo { + private setRestoreOption(overwriteTargetDatabase: boolean = false): sqlops.RestoreInfo { let restoreInfo = undefined; let providerId: string = this.getCurrentProviderId(); @@ -263,8 +263,8 @@ export class RestoreDialogController implements IRestoreDialogController { return restoreInfo; } - private getRestoreOption(): data.ServiceOption[] { - let options: data.ServiceOption[] = []; + private getRestoreOption(): sqlops.ServiceOption[] { + let options: sqlops.ServiceOption[] = []; let providerId: string = this.getCurrentProviderId(); let providerCapabilities = this._capabilitiesService.getCapabilities().find(c => c.providerName === providerId); diff --git a/src/sql/parts/disasterRecovery/restore/mssqlRestoreInfo.ts b/src/sql/parts/disasterRecovery/restore/mssqlRestoreInfo.ts index cbd0b08923..43dfe1163d 100644 --- a/src/sql/parts/disasterRecovery/restore/mssqlRestoreInfo.ts +++ b/src/sql/parts/disasterRecovery/restore/mssqlRestoreInfo.ts @@ -5,12 +5,12 @@ 'use strict'; -import data = require('data'); +import * as sqlops from 'sqlops'; -export class MssqlRestoreInfo implements data.RestoreInfo { +export class MssqlRestoreInfo implements sqlops.RestoreInfo { options: { [name: string]: any }; - taskExecutionMode: data.TaskExecutionMode; + taskExecutionMode: sqlops.TaskExecutionMode; public constructor() { this.options = {}; diff --git a/src/sql/parts/disasterRecovery/restore/restoreDialog.ts b/src/sql/parts/disasterRecovery/restore/restoreDialog.ts index d12defa923..2a9e913f49 100644 --- a/src/sql/parts/disasterRecovery/restore/restoreDialog.ts +++ b/src/sql/parts/disasterRecovery/restore/restoreDialog.ts @@ -37,7 +37,7 @@ import { IBootstrapService } from 'sql/services/bootstrap/bootstrapService'; import { Dropdown } from 'sql/base/browser/ui/editableDropdown/dropdown'; import { TabbedPanel, PanelTabIdentifier } from 'sql/base/browser/ui/panel/panel'; import * as DOM from 'vs/base/browser/dom'; -import * as data from 'data'; +import * as sqlops from 'sqlops'; import * as strings from 'vs/base/common/strings'; import { ServiceOptionType } from 'sql/workbench/api/common/sqlExtHostTypes'; @@ -117,7 +117,7 @@ export class RestoreDialog extends Modal { public onDatabaseListFocused: Event = this._onDatabaseListFocused.event; constructor( - optionsMetadata: data.ServiceOption[], + optionsMetadata: sqlops.ServiceOption[], @IPartService partService: IPartService, @IThemeService private _themeService: IThemeService, @IContextViewService private _contextViewService: IContextViewService, @@ -802,7 +802,7 @@ export class RestoreDialog extends Modal { } } - private updateRestoreDatabaseFiles(dbFiles: data.RestoreDatabaseFileInfo[]) { + private updateRestoreDatabaseFiles(dbFiles: sqlops.RestoreDatabaseFileInfo[]) { this._fileListData.clear(); if (dbFiles) { let data = []; @@ -823,7 +823,7 @@ export class RestoreDialog extends Modal { } } - private updateBackupSetsToRestore(backupSetsToRestore: data.DatabaseFileInfo[]) { + private updateBackupSetsToRestore(backupSetsToRestore: sqlops.DatabaseFileInfo[]) { if (this._isBackupFileCheckboxChanged) { let selectedRow = []; for (let i = 0; i < backupSetsToRestore.length; i++) { diff --git a/src/sql/parts/disasterRecovery/restore/restoreViewModel.ts b/src/sql/parts/disasterRecovery/restore/restoreViewModel.ts index e70c4226b0..52f8749461 100644 --- a/src/sql/parts/disasterRecovery/restore/restoreViewModel.ts +++ b/src/sql/parts/disasterRecovery/restore/restoreViewModel.ts @@ -4,7 +4,7 @@ *--------------------------------------------------------------------------------------------*/ 'use strict'; -import * as data from 'data'; +import * as sqlops from 'sqlops'; import * as DialogHelper from 'sql/base/browser/ui/modal/dialogHelper'; import * as types from 'vs/base/common/types'; @@ -12,7 +12,7 @@ import Event, { Emitter } from 'vs/base/common/event'; import { ServiceOptionType } from 'sql/workbench/api/common/sqlExtHostTypes'; export interface RestoreOptionsElement { - optionMetadata: data.ServiceOption; + optionMetadata: sqlops.ServiceOption; defaultValue: any; currentValue: any; } @@ -62,15 +62,15 @@ export class RestoreViewModel { private _onSetRestoreOption = new Emitter(); public onSetRestoreOption: Event = this._onSetRestoreOption.event; - private _onUpdateBackupSetsToRestore = new Emitter(); - public onUpdateBackupSetsToRestore: Event = this._onUpdateBackupSetsToRestore.event; + private _onUpdateBackupSetsToRestore = new Emitter(); + public onUpdateBackupSetsToRestore: Event = this._onUpdateBackupSetsToRestore.event; - private _onUpdateRestoreDatabaseFiles = new Emitter(); - public onUpdateRestoreDatabaseFiles: Event = this._onUpdateRestoreDatabaseFiles.event; + private _onUpdateRestoreDatabaseFiles = new Emitter(); + public onUpdateRestoreDatabaseFiles: Event = this._onUpdateRestoreDatabaseFiles.event; private _optionsMap: { [name: string]: RestoreOptionsElement } = {}; - constructor(optionsMetadata: data.ServiceOption[]) { + constructor(optionsMetadata: sqlops.ServiceOption[]) { optionsMetadata.forEach(optionMetadata => { let defaultValue = this.getDisplayValue(optionMetadata, optionMetadata.defaultValue); this._optionsMap[optionMetadata.name] = { @@ -84,7 +84,7 @@ export class RestoreViewModel { /** * Get option display value */ - public getDisplayValue(optionMetadata: data.ServiceOption, optionValue: any): any { + public getDisplayValue(optionMetadata: sqlops.ServiceOption, optionValue: any): any { let displayValue: any; switch (optionMetadata.valueType) { case ServiceOptionType.boolean: @@ -119,7 +119,7 @@ export class RestoreViewModel { /** * Get option metadata from the option map */ - public getOptionMetadata(optionName: string): data.ServiceOption { + public getOptionMetadata(optionName: string): sqlops.ServiceOption { return this._optionsMap[optionName] ? this._optionsMap[optionName].optionMetadata : undefined; } @@ -170,7 +170,7 @@ export class RestoreViewModel { /** * On restore plan response will update all the information from restore plan response */ - public onRestorePlanResponse(restorePlanResponse: data.RestorePlanResponse): void { + public onRestorePlanResponse(restorePlanResponse: sqlops.RestorePlanResponse): void { if (restorePlanResponse.planDetails && restorePlanResponse.planDetails['lastBackupTaken']) { this.updateLastBackupTaken(restorePlanResponse.planDetails['lastBackupTaken'].currentValue); } @@ -187,7 +187,7 @@ export class RestoreViewModel { /** * Update options with plan details */ - public updateOptionWithPlanDetail(planDetails: { [key: string]: data.RestorePlanDetailInfo }): void { + public updateOptionWithPlanDetail(planDetails: { [key: string]: sqlops.RestorePlanDetailInfo }): void { if (planDetails) { for (var key in planDetails) { let optionElement = this._optionsMap[key]; @@ -234,7 +234,7 @@ export class RestoreViewModel { /** * Update backup sets to restore */ - public updateBackupSetsToRestore(backupSetsToRestore: data.DatabaseFileInfo[]): void { + public updateBackupSetsToRestore(backupSetsToRestore: sqlops.DatabaseFileInfo[]): void { this.selectedBackupSets = null; if (backupSetsToRestore) { this.selectedBackupSets = []; diff --git a/src/sql/parts/editData/common/editDataInput.ts b/src/sql/parts/editData/common/editDataInput.ts index 73595a4df9..104154d1c9 100644 --- a/src/sql/parts/editData/common/editDataInput.ts +++ b/src/sql/parts/editData/common/editDataInput.ts @@ -10,7 +10,7 @@ import { IMessageService, Severity } from 'vs/platform/message/common/message'; import { IQueryModelService } from 'sql/parts/query/execution/queryModel'; import { IDisposable, dispose } from 'vs/base/common/lifecycle'; import Event, { Emitter } from 'vs/base/common/event'; -import { EditSessionReadyParams } from 'data'; +import { EditSessionReadyParams } from 'sqlops'; import URI from 'vs/base/common/uri'; import nls = require('vs/nls'); diff --git a/src/sql/parts/fileBrowser/common/fileBrowserService.ts b/src/sql/parts/fileBrowser/common/fileBrowserService.ts index d098f90b6d..ad315a62bd 100644 --- a/src/sql/parts/fileBrowser/common/fileBrowserService.ts +++ b/src/sql/parts/fileBrowser/common/fileBrowserService.ts @@ -5,7 +5,7 @@ 'use strict'; -import * as data from 'data'; +import * as sqlops from 'sqlops'; import { IConnectionManagementService, IErrorMessageService } from 'sql/parts/connection/common/connectionManagement'; import { FileBrowserTree } from 'sql/parts/fileBrowser/common/fileBrowserTree'; import { FileNode } from 'sql/parts/fileBrowser/common/fileNode'; @@ -20,10 +20,10 @@ import * as strings from 'vs/base/common/strings'; export class FileBrowserService implements IFileBrowserService { public _serviceBrand: any; - private _providers: { [handle: string]: data.FileBrowserProvider; } = Object.create(null); + private _providers: { [handle: string]: sqlops.FileBrowserProvider; } = Object.create(null); private _onAddFileTree = new Emitter(); private _onExpandFolder = new Emitter(); - private _onPathValidate = new Emitter(); + private _onPathValidate = new Emitter(); private _pathToFileNodeMap: { [path: string]: FileNode } = {}; private _expandResolveMap: { [key: string]: any } = {}; static fileNodeId: number = 0; @@ -33,7 +33,7 @@ export class FileBrowserService implements IFileBrowserService { @IErrorMessageService private _errorMessageService: IErrorMessageService) { } - public registerProvider(providerId: string, provider: data.FileBrowserProvider): void { + public registerProvider(providerId: string, provider: sqlops.FileBrowserProvider): void { this._providers[providerId] = provider; } @@ -45,7 +45,7 @@ export class FileBrowserService implements IFileBrowserService { return this._onExpandFolder.event; } - public get onPathValidate(): Event { + public get onPathValidate(): Event { return this._onPathValidate.event; } @@ -64,7 +64,7 @@ export class FileBrowserService implements IFileBrowserService { }); } - public onFileBrowserOpened(handle: number, fileBrowserOpenedParams: data.FileBrowserOpenedParams) { + public onFileBrowserOpened(handle: number, fileBrowserOpenedParams: sqlops.FileBrowserOpenedParams) { if (fileBrowserOpenedParams.succeeded === true && fileBrowserOpenedParams.fileTree && fileBrowserOpenedParams.fileTree.rootNode @@ -98,7 +98,7 @@ export class FileBrowserService implements IFileBrowserService { }); } - public onFolderNodeExpanded(handle: number, fileBrowserExpandedParams: data.FileBrowserExpandedParams) { + public onFolderNodeExpanded(handle: number, fileBrowserExpandedParams: sqlops.FileBrowserExpandedParams) { var mapKey = this.generateResolveMapKey(fileBrowserExpandedParams.ownerUri, fileBrowserExpandedParams.expandPath); var expandResolve = this._expandResolveMap[mapKey]; if (expandResolve) { @@ -135,11 +135,11 @@ export class FileBrowserService implements IFileBrowserService { }); } - public onFilePathsValidated(handle: number, fileBrowserValidatedParams: data.FileBrowserValidatedParams) { + public onFilePathsValidated(handle: number, fileBrowserValidatedParams: sqlops.FileBrowserValidatedParams) { this._onPathValidate.fire(fileBrowserValidatedParams); } - public closeFileBrowser(ownerUri: string): Thenable { + public closeFileBrowser(ownerUri: string): Thenable { let provider = this.getProvider(ownerUri); if (provider) { return provider.closeFileBrowser(ownerUri); @@ -150,7 +150,7 @@ export class FileBrowserService implements IFileBrowserService { private generateResolveMapKey(ownerUri: string, expandPath: string): string { return ownerUri + ':' + expandPath; } - private getProvider(connectionUri: string): data.FileBrowserProvider { + private getProvider(connectionUri: string): sqlops.FileBrowserProvider { let providerId: string = this._connectionService.getProviderIdFromUri(connectionUri); if (providerId) { return this._providers[providerId]; @@ -159,7 +159,7 @@ export class FileBrowserService implements IFileBrowserService { } } - private convertFileTree(parentNode: FileNode, fileTreeNode: data.FileTreeNode, expandPath: string, ownerUri: string): FileBrowserTree { + private convertFileTree(parentNode: FileNode, fileTreeNode: sqlops.FileTreeNode, expandPath: string, ownerUri: string): FileBrowserTree { FileBrowserService.fileNodeId += 1; var expandedNodes: FileNode[] = []; var selectedNode: FileNode; @@ -208,7 +208,7 @@ export class FileBrowserService implements IFileBrowserService { return { rootNode: fileNode, selectedNode: selectedNode, expandedNodes: expandedNodes }; } - private convertChildren(expandedNode: FileNode, childrenToConvert: data.FileTreeNode[], ownerUri: string): FileNode[] { + private convertChildren(expandedNode: FileNode, childrenToConvert: sqlops.FileTreeNode[], ownerUri: string): FileNode[] { var childrenNodes = []; for (var i = 0; i < childrenToConvert.length; i++) { diff --git a/src/sql/parts/fileBrowser/common/interfaces.ts b/src/sql/parts/fileBrowser/common/interfaces.ts index d017c51d29..fe01d6782c 100644 --- a/src/sql/parts/fileBrowser/common/interfaces.ts +++ b/src/sql/parts/fileBrowser/common/interfaces.ts @@ -5,7 +5,7 @@ 'use strict'; -import * as data from 'data'; +import * as sqlops from 'sqlops'; import { FileBrowserTree } from 'sql/parts/fileBrowser/common/fileBrowserTree'; import { FileNode } from 'sql/parts/fileBrowser/common/fileNode'; import Event from 'vs/base/common/event'; @@ -19,7 +19,7 @@ export interface IFileBrowserDialogController { */ showDialog(ownerUri: string, expandPath: string, - fileFilters: [{label: string, filters: string[]}], + fileFilters: [{ label: string, filters: string[] }], fileValidationServiceType: string, isWide: boolean, handleOnOk: (path: string) => void): void; @@ -30,12 +30,12 @@ export interface IFileBrowserService { _serviceBrand: any; onAddFileTree: Event; onExpandFolder: Event; - onPathValidate: Event; + onPathValidate: Event; /** * Register file browser provider */ - registerProvider(providerId: string, provider: data.FileBrowserProvider): void; + registerProvider(providerId: string, provider: sqlops.FileBrowserProvider): void; /** * Open file browser @@ -45,7 +45,7 @@ export interface IFileBrowserService { /** * Event called when file browser is opened */ - onFileBrowserOpened(handle: number, fileBrowserOpenedParams: data.FileBrowserOpenedParams); + onFileBrowserOpened(handle: number, fileBrowserOpenedParams: sqlops.FileBrowserOpenedParams); /** * Expand folder node @@ -55,7 +55,7 @@ export interface IFileBrowserService { /** * Event called when children nodes are retrieved */ - onFolderNodeExpanded(handle: number, fileBrowserExpandedParams: data.FileBrowserExpandedParams); + onFolderNodeExpanded(handle: number, fileBrowserExpandedParams: sqlops.FileBrowserExpandedParams); /** * Validate selected file paths @@ -65,10 +65,10 @@ export interface IFileBrowserService { /** * Event called when the validation is complete */ - onFilePathsValidated(handle: number, fileBrowserValidatedParams: data.FileBrowserValidatedParams); + onFilePathsValidated(handle: number, fileBrowserValidatedParams: sqlops.FileBrowserValidatedParams); /** * Close file browser */ - closeFileBrowser(ownerUri: string): Thenable; + closeFileBrowser(ownerUri: string): Thenable; } \ No newline at end of file diff --git a/src/sql/parts/grid/services/dataService.ts b/src/sql/parts/grid/services/dataService.ts index 15f62232e8..3535178b59 100644 --- a/src/sql/parts/grid/services/dataService.ts +++ b/src/sql/parts/grid/services/dataService.ts @@ -9,7 +9,7 @@ import { Observable } from 'rxjs/Observable'; import { Subject } from 'rxjs/Subject'; import { Observer } from 'rxjs/Observer'; -import { ResultSetSubset, EditUpdateCellResult, EditSubsetResult, EditCreateRowResult } from 'data'; +import { ResultSetSubset, EditUpdateCellResult, EditSubsetResult, EditCreateRowResult } from 'sqlops'; import { IQueryModelService } from 'sql/parts/query/execution/queryModel'; import { ResultSerializer } from 'sql/parts/query/common/resultSerializer'; import { ISaveRequest } from 'sql/parts/grid/common/interfaces'; diff --git a/src/sql/parts/insights/node/insightsDialogController.ts b/src/sql/parts/insights/node/insightsDialogController.ts index ea0d679d4f..445fad1774 100644 --- a/src/sql/parts/insights/node/insightsDialogController.ts +++ b/src/sql/parts/insights/node/insightsDialogController.ts @@ -11,7 +11,7 @@ import * as Utils from 'sql/parts/connection/common/utils'; import { IInsightsDialogModel, insertValueRegex } from 'sql/parts/insights/common/interfaces'; import { error } from 'sql/base/common/log'; -import { DbCellValue, IDbColumn, QueryExecuteSubsetResult } from 'data'; +import { DbCellValue, IDbColumn, QueryExecuteSubsetResult } from 'sqlops'; import Severity from 'vs/base/common/severity'; import * as types from 'vs/base/common/types'; diff --git a/src/sql/parts/profiler/editor/profilerInput.ts b/src/sql/parts/profiler/editor/profilerInput.ts index 8cb43d331b..eddc3aae88 100644 --- a/src/sql/parts/profiler/editor/profilerInput.ts +++ b/src/sql/parts/profiler/editor/profilerInput.ts @@ -8,7 +8,7 @@ import { IProfilerSession, IProfilerService, ProfilerSessionID, IProfilerSession import { ProfilerState } from './profilerState'; import { IConnectionProfile } from 'sql/parts/connection/common/interfaces'; -import * as data from 'data'; +import * as sqlops from 'sqlops'; import { TPromise } from 'vs/base/common/winjs.base'; import { EditorInput } from 'vs/workbench/common/editor'; @@ -123,9 +123,9 @@ export class ProfilerInput extends EditorInput implements IProfilerSession { return this._state; } - public onMoreRows(eventMessage: data.ProfilerSessionEvents) { + public onMoreRows(eventMessage: sqlops.ProfilerSessionEvents) { for (let i: number = 0; i < eventMessage.events.length && i < 500; ++i) { - let e: data.ProfilerEvent = eventMessage.events[i]; + let e: sqlops.ProfilerEvent = eventMessage.events[i]; let data = {}; data['EventClass'] = e.name; data['StartTime'] = e.timestamp; diff --git a/src/sql/parts/profiler/service/interfaces.ts b/src/sql/parts/profiler/service/interfaces.ts index 6216e7e7ff..159fe1f3f9 100644 --- a/src/sql/parts/profiler/service/interfaces.ts +++ b/src/sql/parts/profiler/service/interfaces.ts @@ -7,7 +7,7 @@ import { IConnectionProfile } from 'sql/parts/connection/common/interfaces'; import { ProfilerInput } from 'sql/parts/profiler/editor/profilerInput'; import { createDecorator } from 'vs/platform/instantiation/common/instantiation'; -import * as data from 'data'; +import * as sqlops from 'sqlops'; const PROFILER_SERVICE_ID = 'profilerService'; export const IProfilerService = createDecorator(PROFILER_SERVICE_ID); @@ -24,7 +24,7 @@ export interface IProfilerSession { /** * Called by the service when more rows are available to render */ - onMoreRows(events: data.ProfilerSessionEvents); + onMoreRows(events: sqlops.ProfilerSessionEvents); } /** @@ -35,7 +35,7 @@ export interface IProfilerService { /** * Registers a backend provider for profiler session. ex: mssql */ - registerProvider(providerId: string, provider: data.ProfilerProvider): void; + registerProvider(providerId: string, provider: sqlops.ProfilerProvider): void; /** * Registers a session with the service that acts as the UI for a profiler session * @returns An unique id that should be used to make subsequent calls to this service @@ -64,7 +64,7 @@ export interface IProfilerService { /** * The method called by the service provider for when more rows are available to render */ - onMoreRows(params: data.ProfilerSessionEvents): void; + onMoreRows(params: sqlops.ProfilerSessionEvents): void; /** * Gets a list of the session templates that are specified in the settings * @param provider An optional string to limit the session template to a specific diff --git a/src/sql/parts/profiler/service/profilerService.ts b/src/sql/parts/profiler/service/profilerService.ts index c155a0cd4f..6f5ffd6368 100644 --- a/src/sql/parts/profiler/service/profilerService.ts +++ b/src/sql/parts/profiler/service/profilerService.ts @@ -12,7 +12,7 @@ import { IConnectionProfile } from 'sql/parts/connection/common/interfaces'; import { ProfilerInput } from 'sql/parts/profiler/editor/profilerInput'; import { ProfilerColumnEditorDialog } from 'sql/parts/profiler/dialog/profilerColumnEditorDialog'; -import * as data from 'data'; +import * as sqlops from 'sqlops'; import { TPromise } from 'vs/base/common/winjs.base'; import { IConfigurationService } from 'vs/platform/configuration/common/configuration'; @@ -44,7 +44,7 @@ class TwoWayMap { export class ProfilerService implements IProfilerService { public _serviceBrand: any; - private _providers = new Map(); + private _providers = new Map(); private _idMap = new TwoWayMap(); private _sessionMap = new Map(); private _dialog: ProfilerColumnEditorDialog; @@ -55,7 +55,7 @@ export class ProfilerService implements IProfilerService { @IInstantiationService private _instantiationService: IInstantiationService ) { } - public registerProvider(providerId: string, provider: data.ProfilerProvider): void { + public registerProvider(providerId: string, provider: sqlops.ProfilerProvider): void { this._providers.set(providerId, provider); } @@ -77,7 +77,7 @@ export class ProfilerService implements IProfilerService { return uri; } - public onMoreRows(params: data.ProfilerSessionEvents): void { + public onMoreRows(params: sqlops.ProfilerSessionEvents): void { this._sessionMap.get(this._idMap.reverseGet(params.sessionId)).onMoreRows(params); } @@ -102,7 +102,7 @@ export class ProfilerService implements IProfilerService { return this._runAction(id, provider => provider.stopSession(this._idMap.get(id))); } - private _runAction(id: ProfilerSessionID, action: (handler: data.ProfilerProvider) => Thenable): Thenable { + private _runAction(id: ProfilerSessionID, action: (handler: sqlops.ProfilerProvider) => Thenable): Thenable { // let providerId = this._connectionService.getProviderIdFromUri(this._idMap.get(id)); let providerId = 'MSSQL'; diff --git a/src/sql/parts/profiler/service/profilerTestBackend.ts b/src/sql/parts/profiler/service/profilerTestBackend.ts index bb366b5ea7..b0ce154a9b 100644 --- a/src/sql/parts/profiler/service/profilerTestBackend.ts +++ b/src/sql/parts/profiler/service/profilerTestBackend.ts @@ -9,7 +9,7 @@ import { TPromise } from 'vs/base/common/winjs.base'; import * as pfs from 'vs/base/node/pfs'; import * as path from 'path'; -import * as data from 'data'; +import * as sqlops from 'sqlops'; declare var __dirname; @@ -30,7 +30,7 @@ const columns = [ 'BinaryData' ]; -export class ProfilerTestBackend implements data.ProfilerProvider { +export class ProfilerTestBackend implements sqlops.ProfilerProvider { public readonly providerId = 'MSSQL'; private index = 0; private timeOutMap = new Map(); @@ -44,7 +44,7 @@ export class ProfilerTestBackend implements data.ProfilerProvider { return TPromise.as(true); } - registerOnSessionEventsAvailable(handler: (response: data.ProfilerSessionEvents) => any) { + registerOnSessionEventsAvailable(handler: (response: sqlops.ProfilerSessionEvents) => any) { return; } diff --git a/src/sql/parts/query/common/flavorStatus.ts b/src/sql/parts/query/common/flavorStatus.ts index b53ab9dcef..90ed091854 100644 --- a/src/sql/parts/query/common/flavorStatus.ts +++ b/src/sql/parts/query/common/flavorStatus.ts @@ -22,7 +22,7 @@ import nls = require('vs/nls'); import { IConnectionManagementService } from 'sql/parts/connection/common/connectionManagement'; import * as WorkbenchUtils from 'sql/workbench/common/sqlWorkbenchUtils'; -import { DidChangeLanguageFlavorParams } from 'data'; +import { DidChangeLanguageFlavorParams } from 'sqlops'; export interface ISqlProviderEntry extends IPickOpenEntry { providerId: string; diff --git a/src/sql/parts/query/common/queryInput.ts b/src/sql/parts/query/common/queryInput.ts index ffb5a67d70..73b4b932de 100644 --- a/src/sql/parts/query/common/queryInput.ts +++ b/src/sql/parts/query/common/queryInput.ts @@ -12,7 +12,7 @@ import { IQueryModelService } from 'sql/parts/query/execution/queryModel'; import { IDisposable, dispose } from 'vs/base/common/lifecycle'; import Event, { Emitter } from 'vs/base/common/event'; import URI from 'vs/base/common/uri'; -import { ISelectionData, ExecutionPlanOptions } from 'data'; +import { ISelectionData, ExecutionPlanOptions } from 'sqlops'; import { IQueryEditorService } from 'sql/parts/query/common/queryEditorService'; /** diff --git a/src/sql/parts/query/common/queryManagement.ts b/src/sql/parts/query/common/queryManagement.ts index 5e7795090c..8b679c3cd8 100644 --- a/src/sql/parts/query/common/queryManagement.ts +++ b/src/sql/parts/query/common/queryManagement.ts @@ -7,7 +7,7 @@ import QueryRunner from 'sql/parts/query/execution/queryRunner'; import { IConnectionManagementService } from 'sql/parts/connection/common/connectionManagement'; import { createDecorator } from 'vs/platform/instantiation/common/instantiation'; import { IDisposable } from 'vs/base/common/lifecycle'; -import data = require('data'); +import * as sqlops from 'sqlops'; import { TPromise } from 'vs/base/common/winjs.base'; import * as TelemetryKeys from 'sql/common/telemetryKeys'; import * as TelemetryUtils from 'sql/common/telemetryUtilities'; @@ -23,21 +23,21 @@ export interface IQueryManagementService { addQueryRequestHandler(queryType: string, runner: IQueryRequestHandler): IDisposable; registerRunner(runner: QueryRunner, uri: string): void; - cancelQuery(ownerUri: string): Thenable; - runQuery(ownerUri: string, selection: data.ISelectionData, runOptions?: data.ExecutionPlanOptions): Thenable; + cancelQuery(ownerUri: string): Thenable; + runQuery(ownerUri: string, selection: sqlops.ISelectionData, runOptions?: sqlops.ExecutionPlanOptions): Thenable; runQueryStatement(ownerUri: string, line: number, column: number): Thenable; runQueryString(ownerUri: string, queryString: string): Thenable; - runQueryAndReturn(ownerUri: string, queryString: string): Thenable; - getQueryRows(rowData: data.QueryExecuteSubsetParams): Thenable; + runQueryAndReturn(ownerUri: string, queryString: string): Thenable; + getQueryRows(rowData: sqlops.QueryExecuteSubsetParams): Thenable; disposeQuery(ownerUri: string): Thenable; - saveResults(requestParams: data.SaveResultsRequestParams): Thenable; + saveResults(requestParams: sqlops.SaveResultsRequestParams): Thenable; // Callbacks - onQueryComplete(result: data.QueryExecuteCompleteNotificationResult): void; - onBatchStart(batchInfo: data.QueryExecuteBatchNotificationParams): void; - onBatchComplete(batchInfo: data.QueryExecuteBatchNotificationParams): void; - onResultSetComplete(resultSetInfo: data.QueryExecuteResultSetCompleteNotificationParams): void; - onMessage(message: data.QueryExecuteMessageParams): void; + onQueryComplete(result: sqlops.QueryExecuteCompleteNotificationResult): void; + onBatchStart(batchInfo: sqlops.QueryExecuteBatchNotificationParams): void; + onBatchComplete(batchInfo: sqlops.QueryExecuteBatchNotificationParams): void; + onResultSetComplete(resultSetInfo: sqlops.QueryExecuteResultSetCompleteNotificationParams): void; + onMessage(message: sqlops.QueryExecuteMessageParams): void; // Edit Data Callbacks onEditSessionReady(ownerUri: string, success: boolean, message: string): void; @@ -45,38 +45,38 @@ export interface IQueryManagementService { // Edit Data Functions initializeEdit(ownerUri: string, schemaName: string, objectName: string, objectType: string, rowLimit: number): Thenable; disposeEdit(ownerUri: string): Thenable; - updateCell(ownerUri: string, rowId: number, columnId: number, newValue: string): Thenable; + updateCell(ownerUri: string, rowId: number, columnId: number, newValue: string): Thenable; commitEdit(ownerUri): Thenable; - createRow(ownerUri: string): Thenable; + createRow(ownerUri: string): Thenable; deleteRow(ownerUri: string, rowId: number): Thenable; - revertCell(ownerUri: string, rowId: number, columnId: number): Thenable; + revertCell(ownerUri: string, rowId: number, columnId: number): Thenable; revertRow(ownerUri: string, rowId: number): Thenable; - getEditRows(rowData: data.EditSubsetParams): Thenable; + getEditRows(rowData: sqlops.EditSubsetParams): Thenable; } /* * An object that can handle basic request-response actions related to queries */ export interface IQueryRequestHandler { - cancelQuery(ownerUri: string): Thenable; - runQuery(ownerUri: string, selection: data.ISelectionData, runOptions?: data.ExecutionPlanOptions): Thenable; + cancelQuery(ownerUri: string): Thenable; + runQuery(ownerUri: string, selection: sqlops.ISelectionData, runOptions?: sqlops.ExecutionPlanOptions): Thenable; runQueryStatement(ownerUri: string, line: number, column: number): Thenable; runQueryString(ownerUri: string, queryString: string): Thenable; - runQueryAndReturn(ownerUri: string, queryString: string): Thenable; - getQueryRows(rowData: data.QueryExecuteSubsetParams): Thenable; + runQueryAndReturn(ownerUri: string, queryString: string): Thenable; + getQueryRows(rowData: sqlops.QueryExecuteSubsetParams): Thenable; disposeQuery(ownerUri: string): Thenable; - saveResults(requestParams: data.SaveResultsRequestParams): Thenable; + saveResults(requestParams: sqlops.SaveResultsRequestParams): Thenable; // Edit Data actions initializeEdit(ownerUri: string, schemaName: string, objectName: string, objectType: string, rowLimit: number): Thenable; disposeEdit(ownerUri: string): Thenable; - updateCell(ownerUri: string, rowId: number, columnId: number, newValue: string): Thenable; + updateCell(ownerUri: string, rowId: number, columnId: number, newValue: string): Thenable; commitEdit(ownerUri): Thenable; - createRow(ownerUri: string): Thenable; + createRow(ownerUri: string): Thenable; deleteRow(ownerUri: string, rowId: number): Thenable; - revertCell(ownerUri: string, rowId: number, columnId: number): Thenable; + revertCell(ownerUri: string, rowId: number, columnId: number): Thenable; revertRow(ownerUri: string, rowId: number): Thenable; - getEditRows(rowData: data.EditSubsetParams): Thenable; + getEditRows(rowData: sqlops.EditSubsetParams): Thenable; } export class QueryManagementService implements IQueryManagementService { @@ -141,7 +141,7 @@ export class QueryManagementService implements IQueryManagementService { }; } - private addTelemetry(eventName: string, ownerUri: string, runOptions?: data.ExecutionPlanOptions): void { + private addTelemetry(eventName: string, ownerUri: string, runOptions?: sqlops.ExecutionPlanOptions): void { let providerId: string = this._connectionService.getProviderIdFromUri(ownerUri); let data: TelemetryUtils.IConnectionTelemetryData = { provider: providerId, @@ -169,13 +169,13 @@ export class QueryManagementService implements IQueryManagementService { } } - public cancelQuery(ownerUri: string): Thenable { + public cancelQuery(ownerUri: string): Thenable { this.addTelemetry(TelemetryKeys.CancelQuery, ownerUri); return this._runAction(ownerUri, (runner) => { return runner.cancelQuery(ownerUri); }); } - public runQuery(ownerUri: string, selection: data.ISelectionData, runOptions?: data.ExecutionPlanOptions): Thenable { + public runQuery(ownerUri: string, selection: sqlops.ISelectionData, runOptions?: sqlops.ExecutionPlanOptions): Thenable { this.addTelemetry(TelemetryKeys.RunQuery, ownerUri, runOptions); return this._runAction(ownerUri, (runner) => { return runner.runQuery(ownerUri, selection, runOptions); @@ -192,12 +192,12 @@ export class QueryManagementService implements IQueryManagementService { return runner.runQueryString(ownerUri, queryString); }); } - public runQueryAndReturn(ownerUri: string, queryString: string): Thenable { + public runQueryAndReturn(ownerUri: string, queryString: string): Thenable { return this._runAction(ownerUri, (runner) => { return runner.runQueryAndReturn(ownerUri, queryString); }); } - public getQueryRows(rowData: data.QueryExecuteSubsetParams): Thenable { + public getQueryRows(rowData: sqlops.QueryExecuteSubsetParams): Thenable { return this._runAction(rowData.ownerUri, (runner) => { return runner.getQueryRows(rowData); }); @@ -208,36 +208,36 @@ export class QueryManagementService implements IQueryManagementService { }); } - public saveResults(requestParams: data.SaveResultsRequestParams): Thenable { + public saveResults(requestParams: sqlops.SaveResultsRequestParams): Thenable { return this._runAction(requestParams.ownerUri, (runner) => { return runner.saveResults(requestParams); }); } - public onQueryComplete(result: data.QueryExecuteCompleteNotificationResult): void { + public onQueryComplete(result: sqlops.QueryExecuteCompleteNotificationResult): void { this._notify(result.ownerUri, (runner: QueryRunner) => { runner.handleQueryComplete(result); }); } - public onBatchStart(batchInfo: data.QueryExecuteBatchNotificationParams): void { + public onBatchStart(batchInfo: sqlops.QueryExecuteBatchNotificationParams): void { this._notify(batchInfo.ownerUri, (runner: QueryRunner) => { runner.handleBatchStart(batchInfo); }); } - public onBatchComplete(batchInfo: data.QueryExecuteBatchNotificationParams): void { + public onBatchComplete(batchInfo: sqlops.QueryExecuteBatchNotificationParams): void { this._notify(batchInfo.ownerUri, (runner: QueryRunner) => { runner.handleBatchComplete(batchInfo); }); } - public onResultSetComplete(resultSetInfo: data.QueryExecuteResultSetCompleteNotificationParams): void { + public onResultSetComplete(resultSetInfo: sqlops.QueryExecuteResultSetCompleteNotificationParams): void { this._notify(resultSetInfo.ownerUri, (runner: QueryRunner) => { runner.handleResultSetComplete(resultSetInfo); }); } - public onMessage(message: data.QueryExecuteMessageParams): void { + public onMessage(message: sqlops.QueryExecuteMessageParams): void { this._notify(message.ownerUri, (runner: QueryRunner) => { runner.handleMessage(message); }); @@ -256,7 +256,7 @@ export class QueryManagementService implements IQueryManagementService { }); } - public updateCell(ownerUri: string, rowId: number, columnId: number, newValue: string): Thenable { + public updateCell(ownerUri: string, rowId: number, columnId: number, newValue: string): Thenable { return this._runAction(ownerUri, (runner) => { return runner.updateCell(ownerUri, rowId, columnId, newValue); }); @@ -268,7 +268,7 @@ export class QueryManagementService implements IQueryManagementService { }); } - public createRow(ownerUri: string): Thenable { + public createRow(ownerUri: string): Thenable { return this._runAction(ownerUri, (runner) => { return runner.createRow(ownerUri); }); @@ -286,7 +286,7 @@ export class QueryManagementService implements IQueryManagementService { }); } - public revertCell(ownerUri: string, rowId: number, columnId: number): Thenable { + public revertCell(ownerUri: string, rowId: number, columnId: number): Thenable { return this._runAction(ownerUri, (runner) => { return runner.revertCell(ownerUri, rowId, columnId); }); @@ -298,7 +298,7 @@ export class QueryManagementService implements IQueryManagementService { }); } - public getEditRows(rowData: data.EditSubsetParams): Thenable { + public getEditRows(rowData: sqlops.EditSubsetParams): Thenable { return this._runAction(rowData.ownerUri, (runner) => { return runner.getEditRows(rowData); }); diff --git a/src/sql/parts/query/common/resultSerializer.ts b/src/sql/parts/query/common/resultSerializer.ts index 1452d52513..d96b1bfcd2 100644 --- a/src/sql/parts/query/common/resultSerializer.ts +++ b/src/sql/parts/query/common/resultSerializer.ts @@ -7,7 +7,7 @@ import * as ConnectionConstants from 'sql/parts/connection/common/constants'; import * as Constants from 'sql/parts/query/common/constants'; import * as LocalizedConstants from 'sql/parts/query/common/localizedConstants'; import * as WorkbenchUtils from 'sql/workbench/common/sqlWorkbenchUtils'; -import { SaveResultsRequestParams } from 'data'; +import { SaveResultsRequestParams } from 'sqlops'; import { IQueryManagementService } from 'sql/parts/query/common/queryManagement'; import { ISaveRequest, SaveFormat } from 'sql/parts/grid/common/interfaces'; import * as PathUtilities from 'sql/common/pathUtilities'; diff --git a/src/sql/parts/query/editor/queryEditor.ts b/src/sql/parts/query/editor/queryEditor.ts index aa728ffae7..9febd258bb 100644 --- a/src/sql/parts/query/editor/queryEditor.ts +++ b/src/sql/parts/query/editor/queryEditor.ts @@ -27,7 +27,7 @@ import { IContextKey, IContextKeyService } from 'vs/platform/contextkey/common/c import { IContextMenuService } from 'vs/platform/contextview/browser/contextView'; import { IActionItem } from 'vs/base/browser/ui/actionbar/actionbar'; import { Action } from 'vs/base/common/actions'; -import { ISelectionData } from 'data'; +import { ISelectionData } from 'sqlops'; import { IEditorGroupService } from 'vs/workbench/services/group/common/groupService'; import { CodeEditor } from 'vs/editor/browser/codeEditor'; import { IDisposable } from 'vs/base/common/lifecycle'; @@ -737,7 +737,7 @@ export class QueryEditor extends BaseEditor { } private _doLayoutSql() { - if ( this._resultsEditorContainer) { + if (this._resultsEditorContainer) { this._resultsEditorContainer.style.width = '0px'; this._resultsEditorContainer.style.height = '0px'; this._resultsEditorContainer.style.left = '0px'; diff --git a/src/sql/parts/query/execution/keyboardQueryActions.ts b/src/sql/parts/query/execution/keyboardQueryActions.ts index 24c26406c9..bfaa61d6d8 100644 --- a/src/sql/parts/query/execution/keyboardQueryActions.ts +++ b/src/sql/parts/query/execution/keyboardQueryActions.ts @@ -10,7 +10,7 @@ import { IWorkbenchEditorService } from 'vs/workbench/services/editor/common/edi import { TPromise } from 'vs/base/common/winjs.base'; import { IWorkspaceConfigurationService } from 'vs/workbench/services/configuration/common/configuration'; -import * as data from 'data'; +import * as sqlops from 'sqlops'; import { IQueryManagementService } from 'sql/parts/query/common/queryManagement'; import { IConnectionManagementService } from 'sql/parts/connection/common/connectionManagement'; @@ -281,37 +281,37 @@ export class RunQueryShortcutAction extends Action { let dbName = this.getDatabaseName(editor); let query = `exec dbo.sp_sproc_columns @procedure_name = N'${escapeSqlString(shortcutText, singleQuote)}', @procedure_owner = null, @procedure_qualifier = N'${escapeSqlString(dbName, singleQuote)}'`; return this._queryManagementService.runQueryAndReturn(editor.uri, query) - .then(result => { - switch(this.isProcWithSingleArgument(result)) { - case 1: - // sproc was found and it meets criteria of having 1 string param - // if selection is quoted, leave as-is. Else quote - let trimmedText = parameterText.trim(); - if (trimmedText.length > 0) { - if (trimmedText.charAt(0) !== singleQuote || trimmedText.charAt(trimmedText.length - 1) !== singleQuote) { - // Note: SSMS uses the original text, but this causes issues if you have spaces. We intentionally use - // trimmed text since it's likely to be more accurate in this case. For non-quoted cases it shouldn't matter - return `'${trimmedText}'`; + .then(result => { + switch (this.isProcWithSingleArgument(result)) { + case 1: + // sproc was found and it meets criteria of having 1 string param + // if selection is quoted, leave as-is. Else quote + let trimmedText = parameterText.trim(); + if (trimmedText.length > 0) { + if (trimmedText.charAt(0) !== singleQuote || trimmedText.charAt(trimmedText.length - 1) !== singleQuote) { + // Note: SSMS uses the original text, but this causes issues if you have spaces. We intentionally use + // trimmed text since it's likely to be more accurate in this case. For non-quoted cases it shouldn't matter + return `'${trimmedText}'`; + } } - } - break; - case -1: + break; + case -1: // sproc was found but didn't meet criteria, so append as-is - case 0: - // sproc wasn't found, just append as-is and hope it works - break; - } - return parameterText; - }, err => { - return parameterText; - }); + case 0: + // sproc wasn't found, just append as-is and hope it works + break; + } + return parameterText; + }, err => { + return parameterText; + }); } return TPromise.as(parameterText); } return TPromise.as(''); } - private isProcWithSingleArgument(result: data.SimpleExecuteResult): number { + private isProcWithSingleArgument(result: sqlops.SimpleExecuteResult): number { let columnTypeOrdinal = this.getColumnIndex(result.columnInfo, 'COLUMN_TYPE'); let dataTypeOrdinal = this.getColumnIndex(result.columnInfo, 'DATA_TYPE'); if (columnTypeOrdinal && dataTypeOrdinal) { @@ -345,7 +345,7 @@ export class RunQueryShortcutAction extends Action { return -1; // Couldn't process so return default value } - private getColumnIndex(columnInfo: data.IDbColumn[], columnName: string): number { + private getColumnIndex(columnInfo: sqlops.IDbColumn[], columnName: string): number { return columnInfo ? columnInfo.findIndex(c => c.columnName === columnName) : undefined; } diff --git a/src/sql/parts/query/execution/queryActions.ts b/src/sql/parts/query/execution/queryActions.ts index 016c84659d..e510afde40 100644 --- a/src/sql/parts/query/execution/queryActions.ts +++ b/src/sql/parts/query/execution/queryActions.ts @@ -14,7 +14,7 @@ import { IContextViewService } from 'vs/platform/contextview/browser/contextView import { IMessageService, Severity } from 'vs/platform/message/common/message'; import { IThemeService } from 'vs/platform/theme/common/themeService'; -import { ISelectionData } from 'data'; +import { ISelectionData } from 'sqlops'; import { IConnectionManagementService, IConnectionParams, diff --git a/src/sql/parts/query/execution/queryModel.ts b/src/sql/parts/query/execution/queryModel.ts index 86622412e1..7ea485fbfa 100644 --- a/src/sql/parts/query/execution/queryModel.ts +++ b/src/sql/parts/query/execution/queryModel.ts @@ -18,7 +18,7 @@ import { EditCreateRowResult, EditRevertCellResult, ExecutionPlanOptions -} from 'data'; +} from 'sqlops'; export const SERVICE_ID = 'queryModelService'; diff --git a/src/sql/parts/query/execution/queryModelService.ts b/src/sql/parts/query/execution/queryModelService.ts index 1d5b872c4e..0fa7ff46c5 100644 --- a/src/sql/parts/query/execution/queryModelService.ts +++ b/src/sql/parts/query/execution/queryModelService.ts @@ -14,7 +14,7 @@ import { QueryInput } from 'sql/parts/query/common/queryInput'; import { QueryStatusbarItem } from 'sql/parts/query/execution/queryStatus'; import { SqlFlavorStatusbarItem } from 'sql/parts/query/common/flavorStatus'; -import * as data from 'data'; +import * as sqlops from 'sqlops'; import { ISlickRange } from 'angular2-slickgrid'; import * as nls from 'vs/nls'; @@ -41,7 +41,7 @@ class QueryInfo { public queryRunner: QueryRunner; public dataService: DataService; public queryEventQueue: QueryEvent[]; - public selection: Array; + public selection: Array; public queryInput: QueryInput; public selectionSnippet: string; @@ -66,12 +66,12 @@ export class QueryModelService implements IQueryModelService { private _queryInfoMap: Map; private _onRunQueryStart: Emitter; private _onRunQueryComplete: Emitter; - private _onEditSessionReady: Emitter; + private _onEditSessionReady: Emitter; // EVENTS ///////////////////////////////////////////////////////////// public get onRunQueryStart(): Event { return this._onRunQueryStart.event; } public get onRunQueryComplete(): Event { return this._onRunQueryComplete.event; } - public get onEditSessionReady(): Event { return this._onEditSessionReady.event; } + public get onEditSessionReady(): Event { return this._onEditSessionReady.event; } // CONSTRUCTOR ///////////////////////////////////////////////////////// constructor( @@ -81,7 +81,7 @@ export class QueryModelService implements IQueryModelService { this._queryInfoMap = new Map(); this._onRunQueryStart = new Emitter(); this._onRunQueryComplete = new Emitter(); - this._onEditSessionReady = new Emitter(); + this._onEditSessionReady = new Emitter(); // Register Statusbar items (platform.Registry.as(statusbar.Extensions.Statusbar)).registerStatusbarItem(new statusbar.StatusbarItemDescriptor( @@ -141,13 +141,13 @@ export class QueryModelService implements IQueryModelService { /** * Get more data rows from the current resultSets from the service layer */ - public getQueryRows(uri: string, rowStart: number, numberOfRows: number, batchId: number, resultId: number): Thenable { + public getQueryRows(uri: string, rowStart: number, numberOfRows: number, batchId: number, resultId: number): Thenable { return this._getQueryInfo(uri).queryRunner.getQueryRows(rowStart, numberOfRows, batchId, resultId).then(results => { return results.resultSubset; }); } - public getEditRows(uri: string, rowStart: number, numberOfRows: number): Thenable { + public getEditRows(uri: string, rowStart: number, numberOfRows: number): Thenable { return this._queryInfoMap.get(uri).queryRunner.getEditRows(rowStart, numberOfRows).then(results => { return results; }); @@ -191,15 +191,15 @@ export class QueryModelService implements IQueryModelService { /** * Run a query for the given URI with the given text selection */ - public runQuery(uri: string, selection: data.ISelectionData, - title: string, queryInput: QueryInput, runOptions?: data.ExecutionPlanOptions): void { + public runQuery(uri: string, selection: sqlops.ISelectionData, + title: string, queryInput: QueryInput, runOptions?: sqlops.ExecutionPlanOptions): void { this.doRunQuery(uri, selection, title, queryInput, false, runOptions); } /** * Run the current SQL statement for the given URI */ - public runQueryStatement(uri: string, selection: data.ISelectionData, + public runQueryStatement(uri: string, selection: sqlops.ISelectionData, title: string, queryInput: QueryInput): void { this.doRunQuery(uri, selection, title, queryInput, true); } @@ -215,9 +215,9 @@ export class QueryModelService implements IQueryModelService { /** * Run Query implementation */ - private doRunQuery(uri: string, selection: data.ISelectionData | string, + private doRunQuery(uri: string, selection: sqlops.ISelectionData | string, title: string, queryInput: QueryInput, - runCurrentStatement: boolean, runOptions?: data.ExecutionPlanOptions): void { + runCurrentStatement: boolean, runOptions?: sqlops.ExecutionPlanOptions): void { // Reuse existing query runner if it exists let queryRunner: QueryRunner; let info: QueryInfo; @@ -422,7 +422,7 @@ export class QueryModelService implements IQueryModelService { return TPromise.as(null); } - public updateCell(ownerUri: string, rowId: number, columnId: number, newValue: string): Thenable { + public updateCell(ownerUri: string, rowId: number, columnId: number, newValue: string): Thenable { // Get existing query runner let queryRunner = this._getQueryRunner(ownerUri); if (queryRunner) { @@ -446,7 +446,7 @@ export class QueryModelService implements IQueryModelService { return TPromise.as(null); } - public createRow(ownerUri: string): Thenable { + public createRow(ownerUri: string): Thenable { // Get existing query runner let queryRunner = this._getQueryRunner(ownerUri); if (queryRunner) { @@ -464,7 +464,7 @@ export class QueryModelService implements IQueryModelService { return TPromise.as(null); } - public revertCell(ownerUri: string, rowId: number, columnId: number): Thenable { + public revertCell(ownerUri: string, rowId: number, columnId: number): Thenable { // Get existing query runner let queryRunner = this._getQueryRunner(ownerUri); if (queryRunner) { @@ -539,9 +539,9 @@ export class QueryModelService implements IQueryModelService { // TODO remove this funciton and its usages when #821 in vscode-mssql is fixed and // the SqlToolsService version is updated in this repo - coquagli 4/19/2017 - private _validateSelection(selection: data.ISelectionData): data.ISelectionData { + private _validateSelection(selection: sqlops.ISelectionData): sqlops.ISelectionData { if (!selection) { - selection = {}; + selection = {}; } selection.endColumn = selection ? Math.max(0, selection.endColumn) : 0; selection.endLine = selection ? Math.max(0, selection.endLine) : 0; diff --git a/src/sql/parts/query/execution/queryRunner.ts b/src/sql/parts/query/execution/queryRunner.ts index 72a2b99988..6c5a1291e9 100644 --- a/src/sql/parts/query/execution/queryRunner.ts +++ b/src/sql/parts/query/execution/queryRunner.ts @@ -5,7 +5,7 @@ 'use strict'; -import * as data from 'data'; +import * as sqlops from 'sqlops'; import * as Constants from 'sql/parts/query/common/constants'; import * as WorkbenchUtils from 'sql/workbench/common/sqlWorkbenchUtils'; @@ -41,10 +41,10 @@ export const enum EventType { export interface IEventType { start: void; complete: string; - message: data.IResultMessage; - batchStart: data.BatchSummary; - batchComplete: data.BatchSummary; - resultSet: data.ResultSetSummary; + message: sqlops.IResultMessage; + batchStart: sqlops.BatchSummary; + batchComplete: sqlops.BatchSummary; + resultSet: sqlops.ResultSetSummary; editSessionReady: IEditSessionReadyEvent; } @@ -58,7 +58,7 @@ export default class QueryRunner { private _totalElapsedMilliseconds: number = 0; private _isExecuting: boolean = false; private _hasCompleted: boolean = false; - private _batchSets: data.BatchSummary[] = []; + private _batchSets: sqlops.BatchSummary[] = []; private _eventEmitter = new EventEmitter(); // CONSTRUCTOR ///////////////////////////////////////////////////////// @@ -79,7 +79,7 @@ export default class QueryRunner { return this._hasCompleted; } - get batchSets(): data.BatchSummary[] { + get batchSets(): sqlops.BatchSummary[] { return this._batchSets; } @@ -92,7 +92,7 @@ export default class QueryRunner { /** * Cancels the running query, if there is one */ - public cancelQuery(): Thenable { + public cancelQuery(): Thenable { return this._queryManagementService.cancelQuery(this.uri); } @@ -100,13 +100,13 @@ export default class QueryRunner { * Runs the query with the provided query * @param input Query string to execute */ - public runQuery(input: string, runOptions?: data.ExecutionPlanOptions): Thenable; + public runQuery(input: string, runOptions?: sqlops.ExecutionPlanOptions): Thenable; /** * Runs the query by pulling the query from the document using the provided selection data * @param input selection data */ - public runQuery(input: data.ISelectionData, runOptions?: data.ExecutionPlanOptions): Thenable; - public runQuery(input, runOptions?: data.ExecutionPlanOptions): Thenable { + public runQuery(input: sqlops.ISelectionData, runOptions?: sqlops.ExecutionPlanOptions): Thenable; + public runQuery(input, runOptions?: sqlops.ExecutionPlanOptions): Thenable { return this.doRunQuery(input, false, runOptions); } @@ -114,7 +114,7 @@ export default class QueryRunner { * Runs the current SQL statement by pulling the query from the document using the provided selection data * @param input selection data */ - public runQueryStatement(input: data.ISelectionData): Thenable { + public runQueryStatement(input: sqlops.ISelectionData): Thenable { return this.doRunQuery(input, true); } @@ -122,9 +122,9 @@ export default class QueryRunner { * Implementation that runs the query with the provided query * @param input Query string to execute */ - private doRunQuery(input: string, runCurrentStatement: boolean, runOptions?: data.ExecutionPlanOptions): Thenable; - private doRunQuery(input: data.ISelectionData, runCurrentStatement: boolean, runOptions?: data.ExecutionPlanOptions): Thenable; - private doRunQuery(input, runCurrentStatement: boolean, runOptions?: data.ExecutionPlanOptions): Thenable { + private doRunQuery(input: string, runCurrentStatement: boolean, runOptions?: sqlops.ExecutionPlanOptions): Thenable; + private doRunQuery(input: sqlops.ISelectionData, runCurrentStatement: boolean, runOptions?: sqlops.ExecutionPlanOptions): Thenable; + private doRunQuery(input, runCurrentStatement: boolean, runOptions?: sqlops.ExecutionPlanOptions): Thenable { let ownerUri = this.uri; this._batchSets = []; this._hasCompleted = false; @@ -160,20 +160,20 @@ export default class QueryRunner { // Attempting to launch the query failed, show the error message const eol = this.getEolString(); let message = nls.localize('query.ExecutionFailedError', 'Execution failed due to an unexpected error: {0}\t{1}', eol, error); - this.handleMessage( { + this.handleMessage({ ownerUri: this.uri, message: { isError: true, message: message } }); - this.handleQueryComplete( { ownerUri: this.uri }); + this.handleQueryComplete({ ownerUri: this.uri }); } /** * Handle a QueryComplete from the service layer */ - public handleQueryComplete(result: data.QueryExecuteCompleteNotificationResult): void { + public handleQueryComplete(result: sqlops.QueryExecuteCompleteNotificationResult): void { // Store the batch sets we got back as a source of "truth" this._isExecuting = false; @@ -194,7 +194,7 @@ export default class QueryRunner { /** * Handle a BatchStart from the service layer */ - public handleBatchStart(result: data.QueryExecuteBatchNotificationParams): void { + public handleBatchStart(result: sqlops.QueryExecuteBatchNotificationParams): void { let batch = result.batchSummary; // Recalculate the start and end lines, relative to the result line offset @@ -214,8 +214,8 @@ export default class QueryRunner { /** * Handle a BatchComplete from the service layer */ - public handleBatchComplete(result: data.QueryExecuteBatchNotificationParams): void { - let batch: data.BatchSummary = result.batchSummary; + public handleBatchComplete(result: sqlops.QueryExecuteBatchNotificationParams): void { + let batch: sqlops.BatchSummary = result.batchSummary; // Store the batch again to get the rest of the data this.batchSets[batch.id] = batch; @@ -231,17 +231,17 @@ export default class QueryRunner { /** * Handle a ResultSetComplete from the service layer */ - public handleResultSetComplete(result: data.QueryExecuteResultSetCompleteNotificationParams): void { + public handleResultSetComplete(result: sqlops.QueryExecuteResultSetCompleteNotificationParams): void { if (result && result.resultSetSummary) { let resultSet = result.resultSetSummary; - let batchSet: data.BatchSummary; + let batchSet: sqlops.BatchSummary; if (!resultSet.batchId) { // Missing the batchId. In this case, default to always using the first batch in the list // or create one in the case the DMP extension didn't obey the contract perfectly if (this.batchSets.length > 0) { batchSet = this.batchSets[0]; } else { - batchSet = { + batchSet = { id: 0, selection: undefined, hasError: false, @@ -263,7 +263,7 @@ export default class QueryRunner { /** * Handle a Mssage from the service layer */ - public handleMessage(obj: data.QueryExecuteMessageParams): void { + public handleMessage(obj: sqlops.QueryExecuteMessageParams): void { let message = obj.message; message.time = new Date(message.time).toLocaleTimeString(); @@ -274,9 +274,9 @@ export default class QueryRunner { /** * Get more data rows from the current resultSets from the service layer */ - public getQueryRows(rowStart: number, numberOfRows: number, batchIndex: number, resultSetIndex: number): Thenable { + public getQueryRows(rowStart: number, numberOfRows: number, batchIndex: number, resultSetIndex: number): Thenable { const self = this; - let rowData: data.QueryExecuteSubsetParams = { + let rowData: sqlops.QueryExecuteSubsetParams = { ownerUri: this.uri, resultSetIndex: resultSetIndex, rowsCount: numberOfRows, @@ -284,7 +284,7 @@ export default class QueryRunner { batchIndex: batchIndex }; - return new Promise((resolve, reject) => { + return new Promise((resolve, reject) => { self._queryManagementService.getQueryRows(rowData).then(result => { resolve(result); }, error => { @@ -322,15 +322,15 @@ export default class QueryRunner { * @param rowStart The index of the row to start returning (inclusive) * @param numberOfRows The number of rows to return */ - public getEditRows(rowStart: number, numberOfRows: number): Thenable { + public getEditRows(rowStart: number, numberOfRows: number): Thenable { const self = this; - let rowData: data.EditSubsetParams = { + let rowData: sqlops.EditSubsetParams = { ownerUri: this.uri, rowCount: numberOfRows, rowStartIndex: rowStart }; - return new Promise((resolve, reject) => { + return new Promise((resolve, reject) => { self._queryManagementService.getEditRows(rowData).then(result => { if (!result.hasOwnProperty('rowCount')) { let error = `Nothing returned from subset query`; @@ -350,7 +350,7 @@ export default class QueryRunner { this._eventEmitter.emit(EventType.EDIT_SESSION_READY, { ownerUri, success, message }); } - public updateCell(ownerUri: string, rowId: number, columnId: number, newValue: string): Thenable { + public updateCell(ownerUri: string, rowId: number, columnId: number, newValue: string): Thenable { return this._queryManagementService.updateCell(ownerUri, rowId, columnId, newValue); } @@ -358,7 +358,7 @@ export default class QueryRunner { return this._queryManagementService.commitEdit(ownerUri); } - public createRow(ownerUri: string): Thenable { + public createRow(ownerUri: string): Thenable { return this._queryManagementService.createRow(ownerUri).then(result => { return result; }); @@ -368,7 +368,7 @@ export default class QueryRunner { return this._queryManagementService.deleteRow(ownerUri, rowId); } - public revertCell(ownerUri: string, rowId: number, columnId: number): Thenable { + public revertCell(ownerUri: string, rowId: number, columnId: number): Thenable { return this._queryManagementService.revertCell(ownerUri, rowId, columnId).then(result => { return result; }); @@ -468,7 +468,7 @@ export default class QueryRunner { private getColumnHeaders(batchId: number, resultId: number, range: ISlickRange): string[] { let headers: string[] = undefined; - let batchSummary: data.BatchSummary = this.batchSets[batchId]; + let batchSummary: sqlops.BatchSummary = this.batchSets[batchId]; if (batchSummary !== undefined) { let resultSetSummary = batchSummary.resultSetSummaries[resultId]; headers = resultSetSummary.columnInfo.slice(range.fromCell, range.toCell + 1).map((info, i) => { @@ -495,7 +495,7 @@ export default class QueryRunner { // get config copyRemoveNewLine option from vscode config let showBatchTime: boolean = WorkbenchUtils.getSqlConfigValue(this._workspaceConfigurationService, Constants.configShowBatchTime); if (showBatchTime) { - let message: data.IResultMessage = { + let message: sqlops.IResultMessage = { batchId: batchId, message: nls.localize('elapsedBatchTime', 'Batch execution time: {0}', executionTime), time: undefined, diff --git a/src/sql/parts/registeredServer/common/objectExplorerService.ts b/src/sql/parts/registeredServer/common/objectExplorerService.ts index 332aed46f1..d0278f45c1 100644 --- a/src/sql/parts/registeredServer/common/objectExplorerService.ts +++ b/src/sql/parts/registeredServer/common/objectExplorerService.ts @@ -12,7 +12,7 @@ import { createDecorator } from 'vs/platform/instantiation/common/instantiation' import { IConnectionManagementService } from 'sql/parts/connection/common/connectionManagement'; import { IConnectionProfile } from 'sql/parts/connection/common/interfaces'; import Event, { Emitter } from 'vs/base/common/event'; -import * as data from 'data'; +import * as sqlops from 'sqlops'; import * as nls from 'vs/nls'; import * as TelemetryKeys from 'sql/common/telemetryKeys'; import * as TelemetryUtils from 'sql/common/telemetryUtilities'; @@ -27,26 +27,26 @@ export const IObjectExplorerService = createDecorator(SE export interface IObjectExplorerService { _serviceBrand: any; - createNewSession(providerId: string, connection: ConnectionProfile): Thenable; + createNewSession(providerId: string, connection: ConnectionProfile): Thenable; - closeSession(providerId: string, session: data.ObjectExplorerSession): Thenable; + closeSession(providerId: string, session: sqlops.ObjectExplorerSession): Thenable; - expandNode(providerId: string, session: data.ObjectExplorerSession, nodePath: string): Thenable; + expandNode(providerId: string, session: sqlops.ObjectExplorerSession, nodePath: string): Thenable; - refreshNode(providerId: string, session: data.ObjectExplorerSession, nodePath: string): Thenable; + refreshNode(providerId: string, session: sqlops.ObjectExplorerSession, nodePath: string): Thenable; - expandTreeNode(session: data.ObjectExplorerSession, parentTree: TreeNode): Thenable; + expandTreeNode(session: sqlops.ObjectExplorerSession, parentTree: TreeNode): Thenable; - refreshTreeNode(session: data.ObjectExplorerSession, parentTree: TreeNode): Thenable; + refreshTreeNode(session: sqlops.ObjectExplorerSession, parentTree: TreeNode): Thenable; - onSessionCreated(handle: number, sessionResponse: data.ObjectExplorerSession); + onSessionCreated(handle: number, sessionResponse: sqlops.ObjectExplorerSession); - onNodeExpanded(handle: number, sessionResponse: data.ObjectExplorerExpandInfo); + onNodeExpanded(handle: number, sessionResponse: sqlops.ObjectExplorerExpandInfo); /** * Register a ObjectExplorer provider */ - registerProvider(providerId: string, provider: data.ObjectExplorerProvider): void; + registerProvider(providerId: string, provider: sqlops.ObjectExplorerProvider): void; getObjectExplorerNode(connection: IConnectionProfile): TreeNode; @@ -74,7 +74,7 @@ interface SessionStatus { } interface NodeStatus { - expandHandler: (result: data.ObjectExplorerExpandInfo) => void; + expandHandler: (result: sqlops.ObjectExplorerExpandInfo) => void; } export interface ObjectExplorerNodeEventArgs { @@ -89,7 +89,7 @@ export class ObjectExplorerService implements IObjectExplorerService { private _disposables: IDisposable[] = []; - private _providers: { [handle: string]: data.ObjectExplorerProvider; } = Object.create(null); + private _providers: { [handle: string]: sqlops.ObjectExplorerProvider; } = Object.create(null); private _activeObjectExplorerNodes: { [id: string]: TreeNode }; private _sessions: { [sessionId: string]: SessionStatus }; @@ -145,7 +145,7 @@ export class ObjectExplorerService implements IObjectExplorerService { /** * Gets called when expanded node response is ready */ - public onNodeExpanded(handle: number, expandResponse: data.ObjectExplorerExpandInfo) { + public onNodeExpanded(handle: number, expandResponse: sqlops.ObjectExplorerExpandInfo) { if (expandResponse.errorMessage) { error(expandResponse.errorMessage); @@ -162,7 +162,7 @@ export class ObjectExplorerService implements IObjectExplorerService { /** * Gets called when session is created */ - public onSessionCreated(handle: number, session: data.ObjectExplorerSession) { + public onSessionCreated(handle: number, session: sqlops.ObjectExplorerSession) { let connection: ConnectionProfile = undefined; let errorMessage: string = undefined; if (this._sessions[session.sessionId]) { @@ -216,9 +216,9 @@ export class ObjectExplorerService implements IObjectExplorerService { return this._activeObjectExplorerNodes[connection.id]; } - public createNewSession(providerId: string, connection: ConnectionProfile): Thenable { + public createNewSession(providerId: string, connection: ConnectionProfile): Thenable { let self = this; - return new Promise((resolve, reject) => { + return new Promise((resolve, reject) => { let provider = this._providers[providerId]; if (provider) { provider.createNewSession(connection.toConnectionInfo()).then(result => { @@ -236,8 +236,8 @@ export class ObjectExplorerService implements IObjectExplorerService { }); } - public expandNode(providerId: string, session: data.ObjectExplorerSession, nodePath: string): Thenable { - return new Promise((resolve, reject) => { + public expandNode(providerId: string, session: sqlops.ObjectExplorerSession, nodePath: string): Thenable { + return new Promise((resolve, reject) => { let provider = this._providers[providerId]; if (provider) { TelemetryUtils.addTelemetry(this._telemetryService, TelemetryKeys.ObjectExplorerExpand, { refresh: 0, provider: providerId }); @@ -251,7 +251,7 @@ export class ObjectExplorerService implements IObjectExplorerService { } }); } - private callExpandOrRefreshFromProvider(provider: data.ObjectExplorerProvider, nodeInfo: data.ExpandNodeInfo, refresh: boolean = false) { + private callExpandOrRefreshFromProvider(provider: sqlops.ObjectExplorerProvider, nodeInfo: sqlops.ExpandNodeInfo, refresh: boolean = false) { if (refresh) { return provider.refreshNode(nodeInfo); } else { @@ -260,12 +260,12 @@ export class ObjectExplorerService implements IObjectExplorerService { } private expandOrRefreshNode( - provider: data.ObjectExplorerProvider, - session: data.ObjectExplorerSession, + provider: sqlops.ObjectExplorerProvider, + session: sqlops.ObjectExplorerSession, nodePath: string, - refresh: boolean = false): Thenable { + refresh: boolean = false): Thenable { let self = this; - return new Promise((resolve, reject) => { + return new Promise((resolve, reject) => { if (session.sessionId in self._sessions && self._sessions[session.sessionId]) { self._sessions[session.sessionId].nodes[nodePath] = { expandHandler: ((expandResult) => { @@ -291,7 +291,7 @@ export class ObjectExplorerService implements IObjectExplorerService { }); } - public refreshNode(providerId: string, session: data.ObjectExplorerSession, nodePath: string): Thenable { + public refreshNode(providerId: string, session: sqlops.ObjectExplorerSession, nodePath: string): Thenable { let provider = this._providers[providerId]; if (provider) { TelemetryUtils.addTelemetry(this._telemetryService, TelemetryKeys.ObjectExplorerExpand, { refresh: 1, provider: providerId }); @@ -300,7 +300,7 @@ export class ObjectExplorerService implements IObjectExplorerService { return Promise.resolve(undefined); } - public closeSession(providerId: string, session: data.ObjectExplorerSession): Thenable { + public closeSession(providerId: string, session: sqlops.ObjectExplorerSession): Thenable { let provider = this._providers[providerId]; if (provider) { return provider.closeSession({ @@ -314,7 +314,7 @@ export class ObjectExplorerService implements IObjectExplorerService { /** * Register a ObjectExplorer provider */ - public registerProvider(providerId: string, provider: data.ObjectExplorerProvider): void { + public registerProvider(providerId: string, provider: sqlops.ObjectExplorerProvider): void { this._providers[providerId] = provider; } @@ -322,15 +322,15 @@ export class ObjectExplorerService implements IObjectExplorerService { this._disposables = dispose(this._disposables); } - public expandTreeNode(session: data.ObjectExplorerSession, parentTree: TreeNode): Thenable { + public expandTreeNode(session: sqlops.ObjectExplorerSession, parentTree: TreeNode): Thenable { return this.expandOrRefreshTreeNode(session, parentTree); } - public refreshTreeNode(session: data.ObjectExplorerSession, parentTree: TreeNode): Thenable { + public refreshTreeNode(session: sqlops.ObjectExplorerSession, parentTree: TreeNode): Thenable { return this.expandOrRefreshTreeNode(session, parentTree, true); } - private callExpandOrRefreshFromService(providerId: string, session: data.ObjectExplorerSession, nodePath: string, refresh: boolean = false): Thenable { + private callExpandOrRefreshFromService(providerId: string, session: sqlops.ObjectExplorerSession, nodePath: string, refresh: boolean = false): Thenable { if (refresh) { return this.refreshNode(providerId, session, nodePath); } else { @@ -339,7 +339,7 @@ export class ObjectExplorerService implements IObjectExplorerService { } private expandOrRefreshTreeNode( - session: data.ObjectExplorerSession, + session: sqlops.ObjectExplorerSession, parentTree: TreeNode, refresh: boolean = false): Thenable { return new Promise((resolve, reject) => { @@ -360,7 +360,7 @@ export class ObjectExplorerService implements IObjectExplorerService { }); } - private toTreeNode(nodeInfo: data.NodeInfo, parent: TreeNode): TreeNode { + private toTreeNode(nodeInfo: sqlops.NodeInfo, parent: TreeNode): TreeNode { // Show the status for database nodes with a status field let isLeaf: boolean = nodeInfo.isLeaf; if (nodeInfo.nodeType === NodeType.Database) { diff --git a/src/sql/parts/registeredServer/common/treeNode.ts b/src/sql/parts/registeredServer/common/treeNode.ts index b7bf0fd350..7d654c3ba9 100644 --- a/src/sql/parts/registeredServer/common/treeNode.ts +++ b/src/sql/parts/registeredServer/common/treeNode.ts @@ -7,7 +7,7 @@ import { ConnectionProfile } from 'sql/parts/connection/common/connectionProfile'; import { NodeType } from 'sql/parts/registeredServer/common/nodeType'; -import * as data from 'data'; +import * as sqlops from 'sqlops'; import * as UUID from 'vs/base/common/uuid'; @@ -66,9 +66,9 @@ export class TreeNode { public connection: ConnectionProfile; - public session: data.ObjectExplorerSession; + public session: sqlops.ObjectExplorerSession; - public metadata: data.ObjectMetadata; + public metadata: sqlops.ObjectMetadata; public getConnectionProfile(): ConnectionProfile { var currentNode: TreeNode = this; @@ -93,7 +93,7 @@ export class TreeNode { return undefined; } - public getSession(): data.ObjectExplorerSession { + public getSession(): sqlops.ObjectExplorerSession { var currentNode: TreeNode = this; while (!currentNode.session && currentNode.parent) { currentNode = currentNode.parent; @@ -109,7 +109,7 @@ export class TreeNode { } constructor(nodeTypeId: string, label: string, isAlwaysLeaf: boolean, nodePath: string, - nodeSubType: string, nodeStatus: string, parent: TreeNode, metadata: data.ObjectMetadata) { + nodeSubType: string, nodeStatus: string, parent: TreeNode, metadata: sqlops.ObjectMetadata) { this.nodeTypeId = nodeTypeId; this.label = label; this.isAlwaysLeaf = isAlwaysLeaf; diff --git a/src/sql/parts/taskHistory/common/taskService.ts b/src/sql/parts/taskHistory/common/taskService.ts index 6f75098447..8f3038c446 100644 --- a/src/sql/parts/taskHistory/common/taskService.ts +++ b/src/sql/parts/taskHistory/common/taskService.ts @@ -4,7 +4,7 @@ *--------------------------------------------------------------------------------------------*/ 'use strict'; -import * as data from 'data'; +import * as sqlops from 'sqlops'; import { TaskNode, TaskStatus, TaskExecutionMode } from 'sql/parts/taskHistory/common/taskNode'; import { IQueryEditorService } from 'sql/parts/query/common/queryEditorService'; import { createDecorator } from 'vs/platform/instantiation/common/instantiation'; @@ -26,18 +26,18 @@ export interface ITaskService { handleTaskComplete(eventArgs: TaskStatusChangeArgs): void; getAllTasks(): TaskNode; getNumberOfInProgressTasks(): number; - onNewTaskCreated(handle: number, taskInfo: data.TaskInfo); - onTaskStatusChanged(handle: number, taskProgressInfo: data.TaskProgressInfo); + onNewTaskCreated(handle: number, taskInfo: sqlops.TaskInfo); + onTaskStatusChanged(handle: number, taskProgressInfo: sqlops.TaskProgressInfo); cancelTask(providerId: string, taskId: string): Thenable; /** * Register a ObjectExplorer provider */ - registerProvider(providerId: string, provider: data.TaskServicesProvider): void; + registerProvider(providerId: string, provider: sqlops.TaskServicesProvider): void; } export interface TaskStatusChangeArgs { taskId: string; - status: data.TaskStatus; + status: sqlops.TaskStatus; message?: string; script?: string; } @@ -47,7 +47,7 @@ export class TaskService implements ITaskService { private _taskQueue: TaskNode; private _onTaskComplete = new Emitter(); private _onAddNewTask = new Emitter(); - private _providers: { [handle: string]: data.TaskServicesProvider; } = Object.create(null); + private _providers: { [handle: string]: sqlops.TaskServicesProvider; } = Object.create(null); constructor( @ILifecycleService lifecycleService: ILifecycleService, @@ -65,17 +65,17 @@ export class TaskService implements ITaskService { /** * Register a ObjectExplorer provider */ - public registerProvider(providerId: string, provider: data.TaskServicesProvider): void { + public registerProvider(providerId: string, provider: sqlops.TaskServicesProvider): void { this._providers[providerId] = provider; } - public onNewTaskCreated(handle: number, taskInfo: data.TaskInfo) { + public onNewTaskCreated(handle: number, taskInfo: sqlops.TaskInfo) { let node: TaskNode = new TaskNode(taskInfo.name, taskInfo.serverName, taskInfo.databaseName, taskInfo.taskId, taskInfo.taskExecutionMode, taskInfo.isCancelable); node.providerName = taskInfo.providerName; this.handleNewTask(node); } - public onTaskStatusChanged(handle: number, taskProgressInfo: data.TaskProgressInfo) { + public onTaskStatusChanged(handle: number, taskProgressInfo: sqlops.TaskProgressInfo) { this.handleTaskComplete({ taskId: taskProgressInfo.taskId, status: taskProgressInfo.status, diff --git a/src/sql/services/accountManagement/accountManagementService.ts b/src/sql/services/accountManagement/accountManagementService.ts index 655f772d0a..8d97c240ac 100644 --- a/src/sql/services/accountManagement/accountManagementService.ts +++ b/src/sql/services/accountManagement/accountManagementService.ts @@ -5,7 +5,7 @@ 'use strict'; -import * as data from 'data'; +import * as sqlops from 'sqlops'; import * as nls from 'vs/nls'; import * as platform from 'vs/platform/registry/common/platform'; import * as statusbar from 'vs/workbench/browser/parts/statusbar/statusbar'; @@ -39,8 +39,8 @@ export class AccountManagementService implements IAccountManagementService { private _addAccountProviderEmitter: Emitter; public get addAccountProviderEvent(): Event { return this._addAccountProviderEmitter.event; } - private _removeAccountProviderEmitter: Emitter; - public get removeAccountProviderEvent(): Event { return this._removeAccountProviderEmitter.event; } + private _removeAccountProviderEmitter: Emitter; + public get removeAccountProviderEvent(): Event { return this._removeAccountProviderEmitter.event; } private _updateAccountListEmitter: Emitter; public get updateAccountListEvent(): Event { return this._updateAccountListEmitter.event; } @@ -61,7 +61,7 @@ export class AccountManagementService implements IAccountManagementService { // Setup the event emitters this._addAccountProviderEmitter = new Emitter(); - this._removeAccountProviderEmitter = new Emitter(); + this._removeAccountProviderEmitter = new Emitter(); this._updateAccountListEmitter = new Emitter(); // Register status bar item @@ -87,7 +87,7 @@ export class AccountManagementService implements IAccountManagementService { * account's properties have been updated (usually when the account goes stale). * @param {Account} updatedAccount Account with the updated properties */ - public accountUpdated(updatedAccount: data.Account): Thenable { + public accountUpdated(updatedAccount: sqlops.Account): Thenable { let self = this; // 1) Update the account in the store @@ -155,7 +155,7 @@ export class AccountManagementService implements IAccountManagementService { * @param {Account} account account to refresh * @return {Thenable} Promise to return an account */ - public refreshAccount(account: data.Account): Thenable { + public refreshAccount(account: sqlops.Account): Thenable { let self = this; return this.doWithProvider(account.key.providerId, (provider) => { @@ -186,7 +186,7 @@ export class AccountManagementService implements IAccountManagementService { * Retrieves metadata of all providers that have been registered * @returns {Thenable} Registered account providers */ - public getAccountProviderMetadata(): Thenable { + public getAccountProviderMetadata(): Thenable { return Promise.resolve(Object.values(this._providers).map(provider => provider.metadata)); } @@ -195,7 +195,7 @@ export class AccountManagementService implements IAccountManagementService { * @param {string} providerId ID of the provider the returned accounts belong to * @returns {Thenable} Promise to return a list of accounts */ - public getAccountsForProvider(providerId: string): Thenable { + public getAccountsForProvider(providerId: string): Thenable { let self = this; // Make sure the provider exists before attempting to retrieve accounts @@ -219,7 +219,7 @@ export class AccountManagementService implements IAccountManagementService { * @param {Account} account Account to generate security token for * @return {Thenable<{}>} Promise to return the security token */ - public getSecurityToken(account: data.Account): Thenable<{}> { + public getSecurityToken(account: sqlops.Account): Thenable<{}> { return this.doWithProvider(account.key.providerId, provider => { return provider.provider.getSecurityToken(account); }); @@ -231,7 +231,7 @@ export class AccountManagementService implements IAccountManagementService { * @returns {Thenable} Promise with result of account removal, true if account was * removed, false otherwise. */ - public removeAccount(accountKey: data.AccountKey): Thenable { + public removeAccount(accountKey: sqlops.AccountKey): Thenable { let self = this; // Step 1) Remove the account @@ -309,8 +309,8 @@ export class AccountManagementService implements IAccountManagementService { public cancelAutoOAuthDeviceCode(providerId: string): void { this.doWithProvider(providerId, provider => provider.provider.autoOAuthCancelled()) .then( // Swallow errors - null, - err => { console.warn(`Error when cancelling auto OAuth: ${err}`); } + null, + err => { console.warn(`Error when cancelling auto OAuth: ${err}`); } ) .then(() => this.autoOAuthDialogController.closeAutoOAuthDialog()); } @@ -326,10 +326,10 @@ export class AccountManagementService implements IAccountManagementService { // SERVICE MANAGEMENT METHODS ////////////////////////////////////////// /** * Called by main thread to register an account provider from extension - * @param {data.AccountProviderMetadata} providerMetadata Metadata of the provider that is being registered - * @param {data.AccountProvider} provider References to the methods of the provider + * @param {sqlops.AccountProviderMetadata} providerMetadata Metadata of the provider that is being registered + * @param {sqlops.AccountProvider} provider References to the methods of the provider */ - public registerProvider(providerMetadata: data.AccountProviderMetadata, provider: data.AccountProvider): Thenable { + public registerProvider(providerMetadata: sqlops.AccountProviderMetadata, provider: sqlops.AccountProvider): Thenable { let self = this; // Store the account provider @@ -346,10 +346,10 @@ export class AccountManagementService implements IAccountManagementService { // 4) Write the accounts back to the store // 5) Fire the event to let folks know we have another account provider now return this._accountStore.getAccountsByProvider(providerMetadata.id) - .then((accounts: data.Account[]) => { + .then((accounts: sqlops.Account[]) => { return provider.initialize(accounts); }) - .then((accounts: data.Account[]) => { + .then((accounts: sqlops.Account[]) => { self._providers[providerMetadata.id].accounts = accounts; let writePromises = accounts.map(account => { return self._accountStore.addOrUpdate(account); @@ -376,7 +376,7 @@ export class AccountManagementService implements IAccountManagementService { } } - public unregisterProvider(providerMetadata: data.AccountProviderMetadata): void { + public unregisterProvider(providerMetadata: sqlops.AccountProviderMetadata): void { // Delete this account provider delete this._providers[providerMetadata.id]; @@ -400,7 +400,7 @@ export class AccountManagementService implements IAccountManagementService { private fireAccountListUpdate(provider: AccountProviderWithMetadata, sort: boolean) { // Step 1) Get and sort the list if (sort) { - provider.accounts.sort((a: data.Account, b: data.Account) => { + provider.accounts.sort((a: sqlops.Account, b: sqlops.Account) => { if (a.displayInfo.displayName < b.displayInfo.displayName) { return -1; } @@ -419,7 +419,7 @@ export class AccountManagementService implements IAccountManagementService { this._updateAccountListEmitter.fire(eventArg); } - private spliceModifiedAccount(provider: AccountProviderWithMetadata, modifiedAccount: data.Account) { + private spliceModifiedAccount(provider: AccountProviderWithMetadata, modifiedAccount: sqlops.Account) { // Find the updated account and splice the updated one in let indexToRemove: number = provider.accounts.findIndex(account => { return account.key.accountId === modifiedAccount.key.accountId; @@ -434,7 +434,7 @@ export class AccountManagementService implements IAccountManagementService { * Joins together an account provider, its metadata, and its accounts, used in the provider list */ export interface AccountProviderWithMetadata { - metadata: data.AccountProviderMetadata; - provider: data.AccountProvider; - accounts: data.Account[]; + metadata: sqlops.AccountProviderMetadata; + provider: sqlops.AccountProvider; + accounts: sqlops.Account[]; } diff --git a/src/sql/services/accountManagement/accountStore.ts b/src/sql/services/accountManagement/accountStore.ts index 952c77011e..6a20032ce4 100644 --- a/src/sql/services/accountManagement/accountStore.ts +++ b/src/sql/services/accountManagement/accountStore.ts @@ -5,7 +5,7 @@ 'use strict'; -import * as data from 'data'; +import * as sqlops from 'sqlops'; import { AccountAdditionResult } from 'sql/services/accountManagement/eventTypes'; import { IAccountStore } from 'sql/services/accountManagement/interfaces'; @@ -19,7 +19,7 @@ export default class AccountStore implements IAccountStore { constructor(private _memento: object) { } // PUBLIC METHODS ////////////////////////////////////////////////////// - public addOrUpdate(newAccount: data.Account): Thenable { + public addOrUpdate(newAccount: sqlops.Account): Thenable { let self = this; return this.doOperation(() => { @@ -36,7 +36,7 @@ export default class AccountStore implements IAccountStore { }); } - public getAccountsByProvider(providerId: string): Thenable { + public getAccountsByProvider(providerId: string): Thenable { let self = this; return this.doOperation(() => { @@ -45,7 +45,7 @@ export default class AccountStore implements IAccountStore { }); } - public getAllAccounts(): Thenable { + public getAllAccounts(): Thenable { let self = this; return this.doOperation(() => { @@ -53,7 +53,7 @@ export default class AccountStore implements IAccountStore { }); } - public remove(key: data.AccountKey): Thenable { + public remove(key: sqlops.AccountKey): Thenable { let self = this; return this.doOperation(() => { @@ -64,7 +64,7 @@ export default class AccountStore implements IAccountStore { }); } - public update(key: data.AccountKey, updateOperation: (account: data.Account) => void): Thenable { + public update(key: sqlops.AccountKey, updateOperation: (account: sqlops.Account) => void): Thenable { let self = this; return this.doOperation(() => { @@ -76,12 +76,12 @@ export default class AccountStore implements IAccountStore { } // PRIVATE METHODS ///////////////////////////////////////////////////// - private static findAccountByKey(key1: data.AccountKey, key2: data.AccountKey): boolean { + private static findAccountByKey(key1: sqlops.AccountKey, key2: sqlops.AccountKey): boolean { // Provider ID and Account ID must match return key1.providerId === key2.providerId && key1.accountId === key2.accountId; } - private static mergeAccounts(source: data.Account, target: data.Account): void { + private static mergeAccounts(source: sqlops.Account, target: sqlops.Account): void { // Take any display info changes target.displayInfo = source.displayInfo; @@ -109,7 +109,7 @@ export default class AccountStore implements IAccountStore { return >this._activeOperation; } - private addToAccountList(accounts: data.Account[], accountToAdd: data.Account): AccountListOperationResult { + private addToAccountList(accounts: sqlops.Account[], accountToAdd: sqlops.Account): AccountListOperationResult { // Check if the entry already exists let match = accounts.findIndex(account => AccountStore.findAccountByKey(account.key, accountToAdd.key)); if (match >= 0) { @@ -134,7 +134,7 @@ export default class AccountStore implements IAccountStore { }; } - private removeFromAccountList(accounts: data.Account[], accountToRemove: data.AccountKey): AccountListOperationResult { + private removeFromAccountList(accounts: sqlops.Account[], accountToRemove: sqlops.AccountKey): AccountListOperationResult { // Check if the entry exists let match = accounts.findIndex(account => AccountStore.findAccountByKey(account.key, accountToRemove)); if (match >= 0) { @@ -151,7 +151,7 @@ export default class AccountStore implements IAccountStore { }; } - private updateAccountList(accounts: data.Account[], accountToUpdate: data.AccountKey, updateOperation: (account: data.Account) => void): AccountListOperationResult { + private updateAccountList(accounts: sqlops.Account[], accountToUpdate: sqlops.AccountKey, updateOperation: (account: sqlops.Account) => void): AccountListOperationResult { // Check if the entry exists let match = accounts.findIndex(account => AccountStore.findAccountByKey(account.key, accountToUpdate)); if (match < 0) { @@ -178,7 +178,7 @@ export default class AccountStore implements IAccountStore { } // MEMENTO IO METHODS ////////////////////////////////////////////////// - private readFromMemento(): Thenable { + private readFromMemento(): Thenable { // Initialize the account list if it isn't already let accounts = this._memento[AccountStore.MEMENTO_KEY]; if (!accounts) { @@ -191,7 +191,7 @@ export default class AccountStore implements IAccountStore { return Promise.resolve(accounts); } - private writeToMemento(accounts: data.Account[]): Thenable { + private writeToMemento(accounts: sqlops.Account[]): Thenable { // Store a shallow copy of the account list to disconnect the memento list from the active list this._memento[AccountStore.MEMENTO_KEY] = JSON.parse(JSON.stringify(accounts)); return Promise.resolve(); @@ -200,5 +200,5 @@ export default class AccountStore implements IAccountStore { interface AccountListOperationResult extends AccountAdditionResult { accountRemoved: boolean; - updatedAccounts: data.Account[]; + updatedAccounts: sqlops.Account[]; } diff --git a/src/sql/services/accountManagement/eventTypes.ts b/src/sql/services/accountManagement/eventTypes.ts index 300d985cdf..7dbd22d4cf 100644 --- a/src/sql/services/accountManagement/eventTypes.ts +++ b/src/sql/services/accountManagement/eventTypes.ts @@ -5,7 +5,7 @@ 'use strict'; -import * as data from 'data'; +import * as sqlops from 'sqlops'; /** * Result from calling add/update on the account store @@ -24,7 +24,7 @@ export interface AccountAdditionResult { /** * The account that was added/updated (with any updates applied) */ - changedAccount: data.Account; + changedAccount: sqlops.Account; } /** @@ -34,12 +34,12 @@ export interface AccountProviderAddedEventParams { /** * The provider that was registered */ - addedProvider: data.AccountProviderMetadata; + addedProvider: sqlops.AccountProviderMetadata; /** * The accounts that were rehydrated with the provider */ - initialAccounts: data.Account[]; + initialAccounts: sqlops.Account[]; } /** @@ -54,5 +54,5 @@ export interface UpdateAccountListEventParams { /** * Updated list of accounts, sorted appropriately */ - accountList: data.Account[]; + accountList: sqlops.Account[]; } diff --git a/src/sql/services/accountManagement/interfaces.ts b/src/sql/services/accountManagement/interfaces.ts index 02da9bb6fb..b2b5e00d8e 100644 --- a/src/sql/services/accountManagement/interfaces.ts +++ b/src/sql/services/accountManagement/interfaces.ts @@ -5,7 +5,7 @@ 'use strict'; -import * as data from 'data'; +import * as sqlops from 'sqlops'; import Event from 'vs/base/common/event'; import { AccountAdditionResult, AccountProviderAddedEventParams, UpdateAccountListEventParams } from 'sql/services/accountManagement/eventTypes'; import { createDecorator } from 'vs/platform/instantiation/common/instantiation'; @@ -18,13 +18,13 @@ export interface IAccountManagementService { _serviceBrand: any; // ACCOUNT MANAGEMENT METHODS ////////////////////////////////////////// - accountUpdated(account: data.Account): Thenable; + accountUpdated(account: sqlops.Account): Thenable; addAccount(providerId: string): Thenable; - getAccountProviderMetadata(): Thenable; - getAccountsForProvider(providerId: string): Thenable; - getSecurityToken(account: data.Account): Thenable<{}>; - removeAccount(accountKey: data.AccountKey): Thenable; - refreshAccount(account: data.Account): Thenable; + getAccountProviderMetadata(): Thenable; + getAccountsForProvider(providerId: string): Thenable; + getSecurityToken(account: sqlops.Account): Thenable<{}>; + removeAccount(accountKey: sqlops.AccountKey): Thenable; + refreshAccount(account: sqlops.Account): Thenable; // UI METHODS ////////////////////////////////////////////////////////// openAccountListDialog(): Thenable; @@ -34,13 +34,13 @@ export interface IAccountManagementService { copyUserCodeAndOpenBrowser(userCode: string, uri: string): void; // SERVICE MANAGEMENT METHODS ///////////////////////////////////////// - registerProvider(providerMetadata: data.AccountProviderMetadata, provider: data.AccountProvider): void; + registerProvider(providerMetadata: sqlops.AccountProviderMetadata, provider: sqlops.AccountProvider): void; shutdown(): void; - unregisterProvider(providerMetadata: data.AccountProviderMetadata): void; + unregisterProvider(providerMetadata: sqlops.AccountProviderMetadata): void; // EVENTING //////////////////////////////////////////////////////////// readonly addAccountProviderEvent: Event; - readonly removeAccountProviderEvent: Event; + readonly removeAccountProviderEvent: Event; readonly updateAccountListEvent: Event; } @@ -50,20 +50,20 @@ export interface IAccountStore { * @param {Account} account Account to add/update * @return {Thenable} Results of the add/update operation */ - addOrUpdate(account: data.Account): Thenable; + addOrUpdate(account: sqlops.Account): Thenable; /** * Retrieves all accounts, filtered by provider ID * @param {string} providerId ID of the provider to filter by * @return {Thenable} Promise to return all accounts that belong to the provided provider */ - getAccountsByProvider(providerId: string): Thenable; + getAccountsByProvider(providerId: string): Thenable; /** * Retrieves all accounts in the store. Returns empty array if store is not initialized * @return {Thenable} Promise to return all accounts */ - getAllAccounts(): Thenable; + getAllAccounts(): Thenable; /** * Removes an account. @@ -72,7 +72,7 @@ export interface IAccountStore { * @param key - The key of an account. * @returns True if the account was removed, false if the account doesn't exist */ - remove(key: data.AccountKey): Thenable; + remove(key: sqlops.AccountKey): Thenable; /** * Updates the custom properties stored with an account. @@ -82,5 +82,5 @@ export interface IAccountStore { * @param updateOperation - Operation to perform on the matching account * @returns True if the account was modified, false if the account doesn't exist */ - update(key: data.AccountKey, updateOperation: (account: data.Account) => void): Thenable; + update(key: sqlops.AccountKey, updateOperation: (account: sqlops.Account) => void): Thenable; } diff --git a/src/sql/services/capabilities/capabilitiesService.ts b/src/sql/services/capabilities/capabilitiesService.ts index 8aabf5c8c1..c1ca995c3e 100644 --- a/src/sql/services/capabilities/capabilitiesService.ts +++ b/src/sql/services/capabilities/capabilitiesService.ts @@ -9,7 +9,7 @@ import { ConnectionManagementInfo } from 'sql/parts/connection/common/connection import * as Constants from 'sql/common/constants'; import { createDecorator } from 'vs/platform/instantiation/common/instantiation'; import { IDisposable, dispose } from 'vs/base/common/lifecycle'; -import data = require('data'); +import * as sqlops from 'sqlops'; import Event, { Emitter } from 'vs/base/common/event'; import { IAction } from 'vs/base/common/actions'; import { Deferred } from 'sql/base/common/promise'; @@ -31,12 +31,12 @@ export interface ICapabilitiesService { /** * Retrieve a list of registered capabilities providers */ - getCapabilities(): data.DataProtocolServerCapabilities[]; + getCapabilities(): sqlops.DataProtocolServerCapabilities[]; /** * Register a capabilities provider */ - registerProvider(provider: data.CapabilitiesProvider): void; + registerProvider(provider: sqlops.CapabilitiesProvider): void; /** * Returns true if the feature is available for given connection @@ -46,7 +46,7 @@ export interface ICapabilitiesService { /** * Event raised when a provider is registered */ - onProviderRegisteredEvent: Event; + onProviderRegisteredEvent: Event; /** * Promise fulfilled when Capabilities are ready @@ -63,15 +63,15 @@ export class CapabilitiesService implements ICapabilitiesService { public _serviceBrand: any; - private static DATA_PROVIDER_CATEGORY: string = 'Data Provider' + private static DATA_PROVIDER_CATEGORY: string = 'Data Provider'; - private _providers: data.CapabilitiesProvider[] = []; + private _providers: sqlops.CapabilitiesProvider[] = []; - private _capabilities: data.DataProtocolServerCapabilities[] = []; + private _capabilities: sqlops.DataProtocolServerCapabilities[] = []; - private _onProviderRegistered: Emitter; + private _onProviderRegistered: Emitter; - private _clientCapabilties: data.DataProtocolClientCapabilities = { + private _clientCapabilties: sqlops.DataProtocolClientCapabilities = { hostName: HOST_NAME, hostVersion: HOST_VERSION @@ -92,7 +92,7 @@ export class CapabilitiesService implements ICapabilitiesService { constructor( @IExtensionManagementService private extensionManagementService: IExtensionManagementService, @IExtensionEnablementService private extensionEnablementService: IExtensionEnablementService) { - this._onProviderRegistered = new Emitter(); + this._onProviderRegistered = new Emitter(); this.disposables.push(this._onProviderRegistered); this._onCapabilitiesReady = new Deferred(); @@ -140,7 +140,7 @@ export class CapabilitiesService implements ICapabilitiesService { /** * Retrieve a list of registered server capabilities */ - public getCapabilities(): data.DataProtocolServerCapabilities[] { + public getCapabilities(): sqlops.DataProtocolServerCapabilities[] { return this._capabilities; } @@ -148,7 +148,7 @@ export class CapabilitiesService implements ICapabilitiesService { * Register the capabilities provider and query the provider for its capabilities * @param provider */ - public registerProvider(provider: data.CapabilitiesProvider): void { + public registerProvider(provider: sqlops.CapabilitiesProvider): void { this._providers.push(provider); // request the capabilities from server @@ -200,7 +200,7 @@ export class CapabilitiesService implements ICapabilitiesService { } // Event Emitters - public get onProviderRegisteredEvent(): Event { + public get onProviderRegisteredEvent(): Event { return this._onProviderRegistered.event; } diff --git a/src/sql/services/credentials/credentialsService.ts b/src/sql/services/credentials/credentialsService.ts index 82e8f768ac..46b9dfdd7e 100644 --- a/src/sql/services/credentials/credentialsService.ts +++ b/src/sql/services/credentials/credentialsService.ts @@ -7,7 +7,7 @@ import { IDisposable, dispose } from 'vs/base/common/lifecycle'; import { createDecorator } from 'vs/platform/instantiation/common/instantiation'; -import data = require('data'); +import * as sqlops from 'sqlops'; import { Deferred } from 'sql/base/common/promise'; export const SERVICE_ID = 'credentialsService'; @@ -15,7 +15,7 @@ export const SERVICE_ID = 'credentialsService'; export interface CredentialManagementEvents { onSaveCredential(credentialId: string, password: string): Thenable; - onReadCredential(credentialId: string): Thenable; + onReadCredential(credentialId: string): Thenable; onDeleteCredential(credentialId: string): Thenable; } @@ -27,7 +27,7 @@ export interface ICredentialsService { saveCredential(credentialId: string, password: string): Thenable; - readCredential(credentialId: string): Thenable; + readCredential(credentialId: string): Thenable; deleteCredential(credentialId: string): Thenable; @@ -66,7 +66,7 @@ export class CredentialsService implements ICredentialsService { return this._onServerEventsReady.promise.then(() => this._serverEvents[this._lastHandle].onSaveCredential(credentialId, password)); } - public readCredential(credentialId: string): Thenable { + public readCredential(credentialId: string): Thenable { return this._onServerEventsReady.promise.then(() => this._serverEvents[this._lastHandle].onReadCredential(credentialId)); } diff --git a/src/sql/services/dashboardWebview/common/dashboardWebviewService.ts b/src/sql/services/dashboardWebview/common/dashboardWebviewService.ts index 5fe8a7f684..0155eecce8 100644 --- a/src/sql/services/dashboardWebview/common/dashboardWebviewService.ts +++ b/src/sql/services/dashboardWebview/common/dashboardWebviewService.ts @@ -8,14 +8,14 @@ import { createDecorator } from 'vs/platform/instantiation/common/instantiation'; import Event from 'vs/base/common/event'; -import * as data from 'data'; +import * as sqlops from 'sqlops'; export const SERVICE_ID = 'dashboardWebviewService'; export interface IDashboardWebview { readonly id: string; - readonly connection: data.connection.Connection; - readonly serverInfo: data.ServerInfo; + readonly connection: sqlops.connection.Connection; + readonly serverInfo: sqlops.ServerInfo; setHtml(html: string): void; onMessage: Event; sendMessage(message: string); diff --git a/src/sql/services/metadata/metadataService.ts b/src/sql/services/metadata/metadataService.ts index 2ad43f41be..a81d203206 100644 --- a/src/sql/services/metadata/metadataService.ts +++ b/src/sql/services/metadata/metadataService.ts @@ -8,7 +8,7 @@ import { IDisposable, dispose } from 'vs/base/common/lifecycle'; import { createDecorator } from 'vs/platform/instantiation/common/instantiation'; import { IConnectionManagementService } from 'sql/parts/connection/common/connectionManagement'; -import data = require('data'); +import * as sqlops from 'sqlops'; export const SERVICE_ID = 'metadataService'; @@ -17,18 +17,18 @@ export const IMetadataService = createDecorator(SERVICE_ID); export interface IMetadataService { _serviceBrand: any; - getMetadata(connectionUri: string): Thenable; + getMetadata(connectionUri: string): Thenable; getDatabaseNames(connectionUri: string): Thenable; - getTableInfo(connectionUri: string, metadata: data.ObjectMetadata): Thenable; + getTableInfo(connectionUri: string, metadata: sqlops.ObjectMetadata): Thenable; - getViewInfo(connectionUri: string, metadata: data.ObjectMetadata): Thenable; + getViewInfo(connectionUri: string, metadata: sqlops.ObjectMetadata): Thenable; /** * Register a metadata provider */ - registerProvider(providerId: string, provider: data.MetadataProvider): void; + registerProvider(providerId: string, provider: sqlops.MetadataProvider): void; } export class MetadataService implements IMetadataService { @@ -37,12 +37,12 @@ export class MetadataService implements IMetadataService { private _disposables: IDisposable[] = []; - private _providers: { [handle: string]: data.MetadataProvider; } = Object.create(null); + private _providers: { [handle: string]: sqlops.MetadataProvider; } = Object.create(null); - constructor(@IConnectionManagementService private _connectionService: IConnectionManagementService) { + constructor( @IConnectionManagementService private _connectionService: IConnectionManagementService) { } - public getMetadata(connectionUri: string): Thenable { + public getMetadata(connectionUri: string): Thenable { let providerId: string = this._connectionService.getProviderIdFromUri(connectionUri); if (providerId) { let provider = this._providers[providerId]; @@ -66,7 +66,7 @@ export class MetadataService implements IMetadataService { return Promise.resolve(undefined); } - public getTableInfo(connectionUri: string, metadata: data.ObjectMetadata): Thenable { + public getTableInfo(connectionUri: string, metadata: sqlops.ObjectMetadata): Thenable { let providerId: string = this._connectionService.getProviderIdFromUri(connectionUri); if (providerId) { let provider = this._providers[providerId]; @@ -78,7 +78,7 @@ export class MetadataService implements IMetadataService { return Promise.resolve(undefined); } - public getViewInfo(connectionUri: string, metadata: data.ObjectMetadata): Thenable { + public getViewInfo(connectionUri: string, metadata: sqlops.ObjectMetadata): Thenable { let providerId: string = this._connectionService.getProviderIdFromUri(connectionUri); if (providerId) { let provider = this._providers[providerId]; @@ -93,7 +93,7 @@ export class MetadataService implements IMetadataService { /** * Register a metadata provider */ - public registerProvider(providerId: string, provider: data.MetadataProvider): void { + public registerProvider(providerId: string, provider: sqlops.MetadataProvider): void { this._providers[providerId] = provider; } diff --git a/src/sql/services/scripting/scriptingService.ts b/src/sql/services/scripting/scriptingService.ts index c69434663d..3573e3cac1 100644 --- a/src/sql/services/scripting/scriptingService.ts +++ b/src/sql/services/scripting/scriptingService.ts @@ -9,8 +9,8 @@ import { IDisposable, dispose } from 'vs/base/common/lifecycle'; import { createDecorator } from 'vs/platform/instantiation/common/instantiation'; import { IConnectionManagementService } from 'sql/parts/connection/common/connectionManagement'; import { ScriptOperation } from 'sql/workbench/common/taskUtilities'; -import data = require('data'); -import { warn, error } from 'sql/base/common/log'; +import * as sqlops from 'sqlops'; +import { error } from 'sql/base/common/log'; export const SERVICE_ID = 'scriptingService'; export const IScriptingService = createDecorator(SERVICE_ID); @@ -18,22 +18,22 @@ export const IScriptingService = createDecorator(SERVICE_ID); export interface IScriptingService { _serviceBrand: any; - script(connectionUri: string, metadata: data.ObjectMetadata, operation: ScriptOperation, paramDetails: data.ScriptingParamDetails): Thenable; + script(connectionUri: string, metadata: sqlops.ObjectMetadata, operation: ScriptOperation, paramDetails: sqlops.ScriptingParamDetails): Thenable; /** * Register a scripting provider */ - registerProvider(providerId: string, provider: data.ScriptingProvider): void; + registerProvider(providerId: string, provider: sqlops.ScriptingProvider): void; /** * Callback method for when scripting is complete */ - onScriptingComplete(handle: number, scriptingCompleteResult: data.ScriptingCompleteResult): void; + onScriptingComplete(handle: number, scriptingCompleteResult: sqlops.ScriptingCompleteResult): void; /** * Returns the result for an operation if the operation failed */ - getOperationFailedResult(operationId: string): data.ScriptingCompleteResult; + getOperationFailedResult(operationId: string): sqlops.ScriptingCompleteResult; } export class ScriptingService implements IScriptingService { @@ -42,9 +42,9 @@ export class ScriptingService implements IScriptingService { private disposables: IDisposable[] = []; - private _providers: { [handle: string]: data.ScriptingProvider; } = Object.create(null); + private _providers: { [handle: string]: sqlops.ScriptingProvider; } = Object.create(null); - private failedScriptingOperations: { [operationId: string]: data.ScriptingCompleteResult } = {}; + private failedScriptingOperations: { [operationId: string]: sqlops.ScriptingCompleteResult } = {}; constructor( @IConnectionManagementService private _connectionService: IConnectionManagementService) { } /** @@ -54,13 +54,13 @@ export class ScriptingService implements IScriptingService { * @param operation * @param paramDetails */ - public script(connectionUri: string, metadata: data.ObjectMetadata, operation: ScriptOperation, paramDetails: data.ScriptingParamDetails): Thenable { + public script(connectionUri: string, metadata: sqlops.ObjectMetadata, operation: ScriptOperation, paramDetails: sqlops.ScriptingParamDetails): Thenable { let providerId: string = this._connectionService.getProviderIdFromUri(connectionUri); if (providerId) { let provider = this._providers[providerId]; if (provider) { - return provider.scriptAsOperation(connectionUri, operation, metadata, paramDetails) + return provider.scriptAsOperation(connectionUri, operation, metadata, paramDetails); } } return Promise.resolve(undefined); @@ -71,7 +71,7 @@ export class ScriptingService implements IScriptingService { * @param handle * @param scriptingCompleteResult */ - public onScriptingComplete(handle: number, scriptingCompleteResult: data.ScriptingCompleteResult): void { + public onScriptingComplete(handle: number, scriptingCompleteResult: sqlops.ScriptingCompleteResult): void { if (scriptingCompleteResult && scriptingCompleteResult.hasError && scriptingCompleteResult.errorMessage) { error(`Scripting failed. error: ${scriptingCompleteResult.errorMessage}`); if (scriptingCompleteResult.operationId) { @@ -84,7 +84,7 @@ export class ScriptingService implements IScriptingService { * Returns the result for an operation if the operation failed * @param operationId Operation Id */ - public getOperationFailedResult(operationId: string): data.ScriptingCompleteResult { + public getOperationFailedResult(operationId: string): sqlops.ScriptingCompleteResult { if (operationId && operationId in this.failedScriptingOperations) { return this.failedScriptingOperations[operationId]; } else { @@ -95,7 +95,7 @@ export class ScriptingService implements IScriptingService { /** * Register a scripting provider */ - public registerProvider(providerId: string, provider: data.ScriptingProvider): void { + public registerProvider(providerId: string, provider: sqlops.ScriptingProvider): void { this._providers[providerId] = provider; } diff --git a/src/sql/services/serialization/serializationService.ts b/src/sql/services/serialization/serializationService.ts index e1d1e0417d..b041814226 100644 --- a/src/sql/services/serialization/serializationService.ts +++ b/src/sql/services/serialization/serializationService.ts @@ -10,12 +10,12 @@ import { createDecorator } from 'vs/platform/instantiation/common/instantiation' import { IConnectionManagementService } from 'sql/parts/connection/common/connectionManagement'; import { ICapabilitiesService } from 'sql/services/capabilities/capabilitiesService'; import * as Constants from 'sql/common/constants'; -import * as data from 'data'; +import * as sqlops from 'sqlops'; export const SERVICE_ID = 'serializationService'; export interface SerializationProviderEvents { - onSaveAs(saveFormat: string, savePath: string, results: string, appendToFile: boolean): Thenable; + onSaveAs(saveFormat: string, savePath: string, results: string, appendToFile: boolean): Thenable; } export const ISerializationService = createDecorator(SERVICE_ID); @@ -23,13 +23,13 @@ export const ISerializationService = createDecorator(SERV export interface ISerializationService { _serviceBrand: any; - saveAs(saveFormat: string, savePath: string, results: string, appendToFile: boolean): Thenable; + saveAs(saveFormat: string, savePath: string, results: string, appendToFile: boolean): Thenable; - disabledSaveAs(): Thenable; + disabledSaveAs(): Thenable; addEventListener(handle: number, events: SerializationProviderEvents): IDisposable; - getSerializationFeatureMetadataProvider(ownerUri: string): data.FeatureMetadataProvider; + getSerializationFeatureMetadataProvider(ownerUri: string): sqlops.FeatureMetadataProvider; } export class SerializationService implements ISerializationService { @@ -59,7 +59,7 @@ export class SerializationService implements ISerializationService { }; } - public saveAs(saveFormat: string, savePath: string, results: string, appendToFile: boolean): Thenable { + public saveAs(saveFormat: string, savePath: string, results: string, appendToFile: boolean): Thenable { if (this._serverEvents === undefined || this._serverEvents[this._lastHandle] === undefined) { return this.disabledSaveAs(); } @@ -67,12 +67,12 @@ export class SerializationService implements ISerializationService { return this._serverEvents[this._lastHandle].onSaveAs(saveFormat, savePath, results, appendToFile); } - public disabledSaveAs(): Thenable { - return Promise.resolve({messages: Constants.SerializationDisabled}); + public disabledSaveAs(): Thenable { + return Promise.resolve({ messages: Constants.SerializationDisabled }); } - public getSerializationFeatureMetadataProvider(ownerUri: string) : data.FeatureMetadataProvider { + public getSerializationFeatureMetadataProvider(ownerUri: string): sqlops.FeatureMetadataProvider { let providerId: string = this._connectionService.getProviderIdFromUri(ownerUri); let providerCapabilities = this._capabilitiesService.getCapabilities().find(c => c.providerName === providerId); diff --git a/src/sql/data.d.ts b/src/sql/sqlops.d.ts similarity index 99% rename from src/sql/data.d.ts rename to src/sql/sqlops.d.ts index e9e7fba7ff..62356022c5 100644 --- a/src/sql/data.d.ts +++ b/src/sql/sqlops.d.ts @@ -3,7 +3,7 @@ * Licensed under the Source EULA. See License.txt in the project root for license information. *--------------------------------------------------------------------------------------------*/ -declare module 'data' { +declare module 'sqlops' { import * as vscode from 'vscode'; // EXPORTED NAMESPACES ///////////////////////////////////////////////// diff --git a/src/sql/workbench/api/node/extHostAccountManagement.ts b/src/sql/workbench/api/node/extHostAccountManagement.ts index 2717cc7f3e..9475cc4895 100644 --- a/src/sql/workbench/api/node/extHostAccountManagement.ts +++ b/src/sql/workbench/api/node/extHostAccountManagement.ts @@ -5,7 +5,7 @@ 'use strict'; -import * as data from 'data'; +import * as sqlops from 'sqlops'; import { TPromise } from 'vs/base/common/winjs.base'; import { IThreadService } from 'vs/workbench/services/thread/common/threadService'; import { Disposable } from 'vs/workbench/api/node/extHostTypes'; @@ -27,28 +27,28 @@ export class ExtHostAccountManagement extends ExtHostAccountManagementShape { // PUBLIC METHODS ////////////////////////////////////////////////////// // - MAIN THREAD AVAILABLE METHODS ///////////////////////////////////// - public $clear(handle: number, accountKey: data.AccountKey): Thenable { - return this._withProvider(handle, (provider: data.AccountProvider) => provider.clear(accountKey)); + public $clear(handle: number, accountKey: sqlops.AccountKey): Thenable { + return this._withProvider(handle, (provider: sqlops.AccountProvider) => provider.clear(accountKey)); } - public $getSecurityToken(handle: number, account: data.Account): Thenable<{}> { - return this._withProvider(handle, (provider: data.AccountProvider) => provider.getSecurityToken(account)); + public $getSecurityToken(handle: number, account: sqlops.Account): Thenable<{}> { + return this._withProvider(handle, (provider: sqlops.AccountProvider) => provider.getSecurityToken(account)); } - public $initialize(handle: number, restoredAccounts: data.Account[]): Thenable { - return this._withProvider(handle, (provider: data.AccountProvider) => provider.initialize(restoredAccounts)); + public $initialize(handle: number, restoredAccounts: sqlops.Account[]): Thenable { + return this._withProvider(handle, (provider: sqlops.AccountProvider) => provider.initialize(restoredAccounts)); } - public $prompt(handle: number): Thenable { - return this._withProvider(handle, (provider: data.AccountProvider) => provider.prompt()); + public $prompt(handle: number): Thenable { + return this._withProvider(handle, (provider: sqlops.AccountProvider) => provider.prompt()); } - public $refresh(handle: number, account: data.Account): Thenable { - return this._withProvider(handle, (provider: data.AccountProvider) => provider.refresh(account)); + public $refresh(handle: number, account: sqlops.Account): Thenable { + return this._withProvider(handle, (provider: sqlops.AccountProvider) => provider.refresh(account)); } public $autoOAuthCancelled(handle: number): Thenable { - return this._withProvider(handle, (provider: data.AccountProvider) => provider.autoOAuthCancelled()); + return this._withProvider(handle, (provider: sqlops.AccountProvider) => provider.autoOAuthCancelled()); } // - EXTENSION HOST AVAILABLE METHODS ////////////////////////////////// @@ -60,11 +60,11 @@ export class ExtHostAccountManagement extends ExtHostAccountManagementShape { this._proxy.$endAutoOAuthDeviceCode(); } - public $accountUpdated(updatedAccount: data.Account): void { + public $accountUpdated(updatedAccount: sqlops.Account): void { this._proxy.$accountUpdated(updatedAccount); } - public $registerAccountProvider(providerMetadata: data.AccountProviderMetadata, provider: data.AccountProvider): Disposable { + public $registerAccountProvider(providerMetadata: sqlops.AccountProviderMetadata, provider: sqlops.AccountProvider): Disposable { let self = this; // Look for any account providers that have the same provider ID @@ -105,7 +105,7 @@ export class ExtHostAccountManagement extends ExtHostAccountManagementShape { return this._handlePool++; } - private _withProvider(handle: number, callback: (provider: data.AccountProvider) => Thenable): Thenable { + private _withProvider(handle: number, callback: (provider: sqlops.AccountProvider) => Thenable): Thenable { let provider = this._providers[handle]; if (provider === undefined) { return TPromise.wrapError(new Error(`Provider ${handle} not found.`)); @@ -115,8 +115,8 @@ export class ExtHostAccountManagement extends ExtHostAccountManagementShape { } interface AccountProviderWithMetadata { - metadata: data.AccountProviderMetadata; - provider: data.AccountProvider; + metadata: sqlops.AccountProviderMetadata; + provider: sqlops.AccountProvider; } diff --git a/src/sql/workbench/api/node/extHostConnectionManagement.ts b/src/sql/workbench/api/node/extHostConnectionManagement.ts index f92226b5b8..7b8fce541e 100644 --- a/src/sql/workbench/api/node/extHostConnectionManagement.ts +++ b/src/sql/workbench/api/node/extHostConnectionManagement.ts @@ -6,7 +6,7 @@ import { IThreadService } from 'vs/workbench/services/thread/common/threadService'; import { ExtHostConnectionManagementShape, SqlMainContext, MainThreadConnectionManagementShape } from 'sql/workbench/api/node/sqlExtHost.protocol'; -import * as data from 'data'; +import * as sqlops from 'sqlops'; export class ExtHostConnectionManagement extends ExtHostConnectionManagementShape { @@ -19,11 +19,11 @@ export class ExtHostConnectionManagement extends ExtHostConnectionManagementShap this._proxy = threadService.get(SqlMainContext.MainThreadConnectionManagement); } - public $getActiveConnections(): Thenable { + public $getActiveConnections(): Thenable { return this._proxy.$getActiveConnections(); } - public $getCurrentConnection(): Thenable { + public $getCurrentConnection(): Thenable { return this._proxy.$getCurrentConnection(); } diff --git a/src/sql/workbench/api/node/extHostCredentialManagement.ts b/src/sql/workbench/api/node/extHostCredentialManagement.ts index cff45a12f3..64d48705ab 100644 --- a/src/sql/workbench/api/node/extHostCredentialManagement.ts +++ b/src/sql/workbench/api/node/extHostCredentialManagement.ts @@ -8,32 +8,32 @@ import { TPromise } from 'vs/base/common/winjs.base'; import { IThreadService } from 'vs/workbench/services/thread/common/threadService'; import { SqlMainContext, MainThreadCredentialManagementShape, ExtHostCredentialManagementShape } from 'sql/workbench/api/node/sqlExtHost.protocol'; import * as vscode from 'vscode'; -import * as data from 'data'; +import * as sqlops from 'sqlops'; import { Disposable } from 'vs/workbench/api/node/extHostTypes'; class CredentialAdapter { - public provider: data.CredentialProvider; + public provider: sqlops.CredentialProvider; - constructor(provider: data.CredentialProvider) { + constructor(provider: sqlops.CredentialProvider) { this.provider = provider; } - public saveCredential(credentialId: string, password: string): Thenable { + public saveCredential(credentialId: string, password: string): Thenable { return this.provider.saveCredential(credentialId, password); } - public readCredential(credentialId: string): Thenable { + public readCredential(credentialId: string): Thenable { return this.provider.readCredential(credentialId); } - public deleteCredential(credentialId: string): Thenable { + public deleteCredential(credentialId: string): Thenable { return this.provider.deleteCredential(credentialId); } } type Adapter = CredentialAdapter; -export class ExtHostCredentialManagement extends ExtHostCredentialManagementShape { +export class ExtHostCredentialManagement extends ExtHostCredentialManagementShape { // MEMBER VARIABLES //////////////////////////////////////////////////// private _adapter: { [handle: number]: Adapter } = Object.create(null); private _handlePool: number = 0; @@ -54,7 +54,7 @@ export class ExtHostCredentialManagement extends ExtHostCredentialManagementShap } // PUBLIC METHODS ////////////////////////////////////////////////////// - public $registerCredentialProvider(provider: data.CredentialProvider): vscode.Disposable { + public $registerCredentialProvider(provider: sqlops.CredentialProvider): vscode.Disposable { // Store the credential provider provider.handle = this._nextHandle(); this._adapter[provider.handle] = new CredentialAdapter(provider); @@ -67,7 +67,7 @@ export class ExtHostCredentialManagement extends ExtHostCredentialManagementShap return this._createDisposable(provider.handle); } - public $getCredentialProvider(namespaceId: string): Thenable { + public $getCredentialProvider(namespaceId: string): Thenable { let self = this; if (!namespaceId) { @@ -84,11 +84,11 @@ export class ExtHostCredentialManagement extends ExtHostCredentialManagementShap return this._withAdapter(0, CredentialAdapter, adapter => adapter.saveCredential(credentialId, password)); } - public $readCredential(credentialId: string): Thenable { + public $readCredential(credentialId: string): Thenable { return this._withAdapter(0, CredentialAdapter, adapter => adapter.readCredential(credentialId)); } - public $deleteCredential(credentialId: string): Thenable { + public $deleteCredential(credentialId: string): Thenable { return this._withAdapter(0, CredentialAdapter, adapter => adapter.deleteCredential(credentialId)); } @@ -105,9 +105,9 @@ export class ExtHostCredentialManagement extends ExtHostCredentialManagementShap return `${namespaceId}|${credentialId}`; } - private _createNamespacedCredentialProvider(namespaceId: string, adapter: CredentialAdapter): Thenable { + private _createNamespacedCredentialProvider(namespaceId: string, adapter: CredentialAdapter): Thenable { // Create a provider that wraps the methods in a namespace - let provider: data.CredentialProvider = { + let provider: sqlops.CredentialProvider = { handle: adapter.provider.handle, deleteCredential: (credentialId: string) => { let namespacedId = ExtHostCredentialManagement._getNamespacedCredentialId(namespaceId, credentialId); @@ -136,7 +136,7 @@ export class ExtHostCredentialManagement extends ExtHostCredentialManagementShap return this._handlePool++; } - private _withAdapter(handle: number, ctor: { new (...args: any[]): A }, callback: (adapter: A) => Thenable): Thenable { + private _withAdapter(handle: number, ctor: { new(...args: any[]): A }, callback: (adapter: A) => Thenable): Thenable { let adapter = this._adapter[handle]; if (!(adapter instanceof ctor)) { return TPromise.wrapError(new Error('no adapter found')); diff --git a/src/sql/workbench/api/node/extHostDashboardWebview.ts b/src/sql/workbench/api/node/extHostDashboardWebview.ts index 805be19159..0419c5f9cb 100644 --- a/src/sql/workbench/api/node/extHostDashboardWebview.ts +++ b/src/sql/workbench/api/node/extHostDashboardWebview.ts @@ -11,9 +11,9 @@ import { Emitter } from 'vs/base/common/event'; import { deepClone } from 'vs/base/common/objects'; import * as vscode from 'vscode'; -import * as data from 'data'; +import * as sqlops from 'sqlops'; -class ExtHostDashboardWebview implements data.DashboardWebview { +class ExtHostDashboardWebview implements sqlops.DashboardWebview { private _html: string; public onMessageEmitter = new Emitter(); @@ -22,8 +22,8 @@ class ExtHostDashboardWebview implements data.DashboardWebview { constructor( private readonly _proxy: MainThreadDashboardWebviewShape, private readonly _handle: number, - private readonly _connection: data.connection.Connection, - private readonly _serverInfo: data.ServerInfo + private readonly _connection: sqlops.connection.Connection, + private readonly _serverInfo: sqlops.ServerInfo ) { } public postMessage(message: any): Thenable { @@ -38,11 +38,11 @@ class ExtHostDashboardWebview implements data.DashboardWebview { return this.onClosedEmitter.event; } - public get connection(): data.connection.Connection { + public get connection(): sqlops.connection.Connection { return deepClone(this._connection); } - public get serverInfo(): data.ServerInfo { + public get serverInfo(): sqlops.ServerInfo { return deepClone(this._serverInfo); } @@ -62,7 +62,7 @@ export class ExtHostDashboardWebviews implements ExtHostDashboardWebviewsShape { private readonly _proxy: MainThreadDashboardWebviewShape; private readonly _webviews = new Map(); - private readonly _handlers = new Map void>(); + private readonly _handlers = new Map void>(); constructor( mainContext: IMainContext @@ -81,12 +81,12 @@ export class ExtHostDashboardWebviews implements ExtHostDashboardWebviewsShape { this._webviews.delete(handle); } - $registerProvider(widgetId: string, handler: (webview: data.DashboardWebview) => void): void { + $registerProvider(widgetId: string, handler: (webview: sqlops.DashboardWebview) => void): void { this._handlers.set(widgetId, handler); this._proxy.$registerProvider(widgetId); } - $registerWidget(handle: number, id: string, connection: data.connection.Connection, serverInfo: data.ServerInfo): void { + $registerWidget(handle: number, id: string, connection: sqlops.connection.Connection, serverInfo: sqlops.ServerInfo): void { let webview = new ExtHostDashboardWebview(this._proxy, handle, connection, serverInfo); this._webviews.set(handle, webview); this._handlers.get(id)(webview); diff --git a/src/sql/workbench/api/node/extHostDataProtocol.ts b/src/sql/workbench/api/node/extHostDataProtocol.ts index 5d9e6ff005..8f9f35d19b 100644 --- a/src/sql/workbench/api/node/extHostDataProtocol.ts +++ b/src/sql/workbench/api/node/extHostDataProtocol.ts @@ -8,19 +8,19 @@ import Event, { Emitter } from 'vs/base/common/event'; import { IThreadService } from 'vs/workbench/services/thread/common/threadService'; import { SqlMainContext, MainThreadDataProtocolShape, ExtHostDataProtocolShape } from 'sql/workbench/api/node/sqlExtHost.protocol'; import * as vscode from 'vscode'; -import * as data from 'data'; +import * as sqlops from 'sqlops'; import { Disposable } from 'vs/workbench/api/node/extHostTypes'; export class ExtHostDataProtocol extends ExtHostDataProtocolShape { - private readonly _onDidChangeLanguageFlavor = new Emitter(); + private readonly _onDidChangeLanguageFlavor = new Emitter(); - readonly onDidChangeLanguageFlavor: Event = this._onDidChangeLanguageFlavor.event; + readonly onDidChangeLanguageFlavor: Event = this._onDidChangeLanguageFlavor.event; private _proxy: MainThreadDataProtocolShape; private static _handlePool: number = 0; - private _adapter = new Map(); + private _adapter = new Map(); constructor( threadService: IThreadService @@ -40,7 +40,7 @@ export class ExtHostDataProtocol extends ExtHostDataProtocolShape { return ExtHostDataProtocol._handlePool++; } - private _resolveProvider

(handle: number): P { + private _resolveProvider

(handle: number): P { let provider = this._adapter.get(handle) as P; if (provider) { return provider; @@ -49,115 +49,115 @@ export class ExtHostDataProtocol extends ExtHostDataProtocolShape { } } - private registerProvider(provider: data.DataProvider): vscode.Disposable { + private registerProvider(provider: sqlops.DataProvider): vscode.Disposable { provider.handle = this._nextHandle(); this._adapter.set(provider.handle, provider); return this._createDisposable(provider.handle); }; - $registerConnectionProvider(provider: data.ConnectionProvider): vscode.Disposable { + $registerConnectionProvider(provider: sqlops.ConnectionProvider): vscode.Disposable { let rt = this.registerProvider(provider); this._proxy.$registerConnectionProvider(provider.providerId, provider.handle); return rt; } - $registerBackupProvider(provider: data.BackupProvider): vscode.Disposable { + $registerBackupProvider(provider: sqlops.BackupProvider): vscode.Disposable { let rt = this.registerProvider(provider); this._proxy.$registerBackupProvider(provider.providerId, provider.handle); return rt; } - $registerRestoreProvider(provider: data.RestoreProvider): vscode.Disposable { + $registerRestoreProvider(provider: sqlops.RestoreProvider): vscode.Disposable { let rt = this.registerProvider(provider); this._proxy.$registerRestoreProvider(provider.providerId, provider.handle); return rt; } - $registerScriptingProvider(provider: data.ScriptingProvider): vscode.Disposable { + $registerScriptingProvider(provider: sqlops.ScriptingProvider): vscode.Disposable { let rt = this.registerProvider(provider); this._proxy.$registerScriptingProvider(provider.providerId, provider.handle); return rt; } - $registerQueryProvider(provider: data.QueryProvider): vscode.Disposable { + $registerQueryProvider(provider: sqlops.QueryProvider): vscode.Disposable { let rt = this.registerProvider(provider); this._proxy.$registerQueryProvider(provider.providerId, provider.handle); return rt; } - $registerMetadataProvider(provider: data.MetadataProvider): vscode.Disposable { + $registerMetadataProvider(provider: sqlops.MetadataProvider): vscode.Disposable { let rt = this.registerProvider(provider); this._proxy.$registerMetadataProvider(provider.providerId, provider.handle); return rt; } - $registerTaskServicesProvider(provider: data.TaskServicesProvider): vscode.Disposable { + $registerTaskServicesProvider(provider: sqlops.TaskServicesProvider): vscode.Disposable { let rt = this.registerProvider(provider); this._proxy.$registerTaskServicesProvider(provider.providerId, provider.handle); return rt; } - $registerFileBrowserProvider(provider: data.FileBrowserProvider): vscode.Disposable { + $registerFileBrowserProvider(provider: sqlops.FileBrowserProvider): vscode.Disposable { let rt = this.registerProvider(provider); this._proxy.$registerFileBrowserProvider(provider.providerId, provider.handle); return rt; } - $registerObjectExplorerProvider(provider: data.ObjectExplorerProvider): vscode.Disposable { + $registerObjectExplorerProvider(provider: sqlops.ObjectExplorerProvider): vscode.Disposable { let rt = this.registerProvider(provider); this._proxy.$registerObjectExplorerProvider(provider.providerId, provider.handle); return rt; } - $registerProfilerProvider(provider: data.ProfilerProvider): vscode.Disposable { + $registerProfilerProvider(provider: sqlops.ProfilerProvider): vscode.Disposable { let rt = this.registerProvider(provider); this._proxy.$registerProfilerProvider(provider.providerId, provider.handle); return rt; } - $registerAdminServicesProvider(provider: data.AdminServicesProvider): vscode.Disposable { + $registerAdminServicesProvider(provider: sqlops.AdminServicesProvider): vscode.Disposable { let rt = this.registerProvider(provider); this._proxy.$registerAdminServicesProvider(provider.providerId, provider.handle); return rt; } - $registerCapabilitiesServiceProvider(provider: data.CapabilitiesProvider): vscode.Disposable { + $registerCapabilitiesServiceProvider(provider: sqlops.CapabilitiesProvider): vscode.Disposable { let rt = this.registerProvider(provider); this._proxy.$registerCapabilitiesServiceProvider(provider.providerId, provider.handle); return rt; } // Capabilities Discovery handlers - $getServerCapabilities(handle: number, client: data.DataProtocolClientCapabilities): Thenable { - return this._resolveProvider(handle).getServerCapabilities(client); + $getServerCapabilities(handle: number, client: sqlops.DataProtocolClientCapabilities): Thenable { + return this._resolveProvider(handle).getServerCapabilities(client); } // Connection Management handlers - $connect(handle: number, connectionUri: string, connection: data.ConnectionInfo): Thenable { - return this._resolveProvider(handle).connect(connectionUri, connection); + $connect(handle: number, connectionUri: string, connection: sqlops.ConnectionInfo): Thenable { + return this._resolveProvider(handle).connect(connectionUri, connection); } $disconnect(handle: number, connectionUri: string): Thenable { - return this._resolveProvider(handle).disconnect(connectionUri); + return this._resolveProvider(handle).disconnect(connectionUri); } $cancelConnect(handle: number, connectionUri: string): Thenable { - return this._resolveProvider(handle).cancelConnect(connectionUri); + return this._resolveProvider(handle).cancelConnect(connectionUri); } $changeDatabase(handle: number, connectionUri: string, newDatabase: string): Thenable { - return this._resolveProvider(handle).changeDatabase(connectionUri, newDatabase); + return this._resolveProvider(handle).changeDatabase(connectionUri, newDatabase); } - $listDatabases(handle: number, connectionUri: string): Thenable { - return this._resolveProvider(handle).listDatabases(connectionUri); + $listDatabases(handle: number, connectionUri: string): Thenable { + return this._resolveProvider(handle).listDatabases(connectionUri); } $rebuildIntelliSenseCache(handle: number, connectionUri: string): Thenable { - return this._resolveProvider(handle).rebuildIntelliSenseCache(connectionUri); + return this._resolveProvider(handle).rebuildIntelliSenseCache(connectionUri); } - $onConnectComplete(handle: number, connectionInfoSummary: data.ConnectionInfoSummary): void { + $onConnectComplete(handle: number, connectionInfoSummary: sqlops.ConnectionInfoSummary): void { this._proxy.$onConnectionComplete(handle, connectionInfoSummary); } @@ -165,100 +165,100 @@ export class ExtHostDataProtocol extends ExtHostDataProtocolShape { this._proxy.$onIntelliSenseCacheComplete(handle, connectionUri); } - public $onConnectionChanged(handle: number, changedConnInfo: data.ChangedConnectionInfo): void { + public $onConnectionChanged(handle: number, changedConnInfo: sqlops.ChangedConnectionInfo): void { this._proxy.$onConnectionChangeNotification(handle, changedConnInfo); } // Protocol-wide Event Handlers - public $languageFlavorChanged(params: data.DidChangeLanguageFlavorParams): void { + public $languageFlavorChanged(params: sqlops.DidChangeLanguageFlavorParams): void { this._onDidChangeLanguageFlavor.fire(params); } // Query Management handlers - $cancelQuery(handle: number, ownerUri: string): Thenable { - return this._resolveProvider(handle).cancelQuery(ownerUri); + $cancelQuery(handle: number, ownerUri: string): Thenable { + return this._resolveProvider(handle).cancelQuery(ownerUri); } - $runQuery(handle: number, ownerUri: string, selection: data.ISelectionData, runOptions?: data.ExecutionPlanOptions): Thenable { - return this._resolveProvider(handle).runQuery(ownerUri, selection, runOptions); + $runQuery(handle: number, ownerUri: string, selection: sqlops.ISelectionData, runOptions?: sqlops.ExecutionPlanOptions): Thenable { + return this._resolveProvider(handle).runQuery(ownerUri, selection, runOptions); } $runQueryStatement(handle: number, ownerUri: string, line: number, column: number): Thenable { - return this._resolveProvider(handle).runQueryStatement(ownerUri, line, column); + return this._resolveProvider(handle).runQueryStatement(ownerUri, line, column); } $runQueryString(handle: number, ownerUri: string, queryString: string): Thenable { - return this._resolveProvider(handle).runQueryString(ownerUri, queryString); + return this._resolveProvider(handle).runQueryString(ownerUri, queryString); } - $runQueryAndReturn(handle: number, ownerUri: string, queryString: string): Thenable { - return this._resolveProvider(handle).runQueryAndReturn(ownerUri, queryString); + $runQueryAndReturn(handle: number, ownerUri: string, queryString: string): Thenable { + return this._resolveProvider(handle).runQueryAndReturn(ownerUri, queryString); } - $getQueryRows(handle: number, rowData: data.QueryExecuteSubsetParams): Thenable { - return this._resolveProvider(handle).getQueryRows(rowData); + $getQueryRows(handle: number, rowData: sqlops.QueryExecuteSubsetParams): Thenable { + return this._resolveProvider(handle).getQueryRows(rowData); } $disposeQuery(handle: number, ownerUri: string): Thenable { - return this._resolveProvider(handle).disposeQuery(ownerUri); + return this._resolveProvider(handle).disposeQuery(ownerUri); } - $onQueryComplete(handle: number, result: data.QueryExecuteCompleteNotificationResult): void { + $onQueryComplete(handle: number, result: sqlops.QueryExecuteCompleteNotificationResult): void { this._proxy.$onQueryComplete(handle, result); } - $onBatchStart(handle: number, batchInfo: data.QueryExecuteBatchNotificationParams): void { + $onBatchStart(handle: number, batchInfo: sqlops.QueryExecuteBatchNotificationParams): void { this._proxy.$onBatchStart(handle, batchInfo); } - $onBatchComplete(handle: number, batchInfo: data.QueryExecuteBatchNotificationParams): void { + $onBatchComplete(handle: number, batchInfo: sqlops.QueryExecuteBatchNotificationParams): void { this._proxy.$onBatchComplete(handle, batchInfo); } - $onResultSetComplete(handle: number, resultSetInfo: data.QueryExecuteResultSetCompleteNotificationParams): void { + $onResultSetComplete(handle: number, resultSetInfo: sqlops.QueryExecuteResultSetCompleteNotificationParams): void { this._proxy.$onResultSetComplete(handle, resultSetInfo); } - $onQueryMessage(handle: number, message: data.QueryExecuteMessageParams): void { + $onQueryMessage(handle: number, message: sqlops.QueryExecuteMessageParams): void { this._proxy.$onQueryMessage(handle, message); } - $saveResults(handle: number, requestParams: data.SaveResultsRequestParams): Thenable { - return this._resolveProvider(handle).saveResults(requestParams); + $saveResults(handle: number, requestParams: sqlops.SaveResultsRequestParams): Thenable { + return this._resolveProvider(handle).saveResults(requestParams); } // Edit Data handlers $commitEdit(handle: number, ownerUri: string): Thenable { - return this._resolveProvider(handle).commitEdit(ownerUri); + return this._resolveProvider(handle).commitEdit(ownerUri); } - $createRow(handle: number, ownerUri: string): Thenable { - return this._resolveProvider(handle).createRow(ownerUri); + $createRow(handle: number, ownerUri: string): Thenable { + return this._resolveProvider(handle).createRow(ownerUri); } $deleteRow(handle: number, ownerUri: string, rowId: number): Thenable { - return this._resolveProvider(handle).deleteRow(ownerUri, rowId); + return this._resolveProvider(handle).deleteRow(ownerUri, rowId); } $disposeEdit(handle: number, ownerUri: string): Thenable { - return this._resolveProvider(handle).disposeEdit(ownerUri); + return this._resolveProvider(handle).disposeEdit(ownerUri); } $initializeEdit(handle: number, ownerUri: string, schemaName: string, objectName: string, objectType: string, rowLimit: number): Thenable { - return this._resolveProvider(handle).initializeEdit(ownerUri, schemaName, objectName, objectType, rowLimit); + return this._resolveProvider(handle).initializeEdit(ownerUri, schemaName, objectName, objectType, rowLimit); } - $revertCell(handle: number, ownerUri: string, rowId: number, columnId: number): Thenable { - return this._resolveProvider(handle).revertCell(ownerUri, rowId, columnId); + $revertCell(handle: number, ownerUri: string, rowId: number, columnId: number): Thenable { + return this._resolveProvider(handle).revertCell(ownerUri, rowId, columnId); } $revertRow(handle: number, ownerUri: string, rowId: number): Thenable { - return this._resolveProvider(handle).revertRow(ownerUri, rowId); + return this._resolveProvider(handle).revertRow(ownerUri, rowId); } - $updateCell(handle: number, ownerUri: string, rowId: number, columnId: number, newValue: string): Thenable { - return this._resolveProvider(handle).updateCell(ownerUri, rowId, columnId, newValue); + $updateCell(handle: number, ownerUri: string, rowId: number, columnId: number, newValue: string): Thenable { + return this._resolveProvider(handle).updateCell(ownerUri, rowId, columnId, newValue); } - $getEditRows(handle: number, rowData: data.EditSubsetParams): Thenable { - return this._resolveProvider(handle).getEditRows(rowData); + $getEditRows(handle: number, rowData: sqlops.EditSubsetParams): Thenable { + return this._resolveProvider(handle).getEditRows(rowData); } $onEditSessionReady(handle: number, ownerUri: string, success: boolean, message: string): void { @@ -266,155 +266,155 @@ export class ExtHostDataProtocol extends ExtHostDataProtocolShape { } // Metadata handlers - public $getMetadata(handle: number, connectionUri: string): Thenable { - return this._resolveProvider(handle).getMetadata(connectionUri); + public $getMetadata(handle: number, connectionUri: string): Thenable { + return this._resolveProvider(handle).getMetadata(connectionUri); } public $getDatabases(handle: number, connectionUri: string): Thenable { - return this._resolveProvider(handle).getDatabases(connectionUri); + return this._resolveProvider(handle).getDatabases(connectionUri); } - public $getTableInfo(handle: number, connectionUri: string, metadata: data.ObjectMetadata): Thenable { - return this._resolveProvider(handle).getTableInfo(connectionUri, metadata); + public $getTableInfo(handle: number, connectionUri: string, metadata: sqlops.ObjectMetadata): Thenable { + return this._resolveProvider(handle).getTableInfo(connectionUri, metadata); } - public $getViewInfo(handle: number, connectionUri: string, metadata: data.ObjectMetadata): Thenable { - return this._resolveProvider(handle).getViewInfo(connectionUri, metadata); + public $getViewInfo(handle: number, connectionUri: string, metadata: sqlops.ObjectMetadata): Thenable { + return this._resolveProvider(handle).getViewInfo(connectionUri, metadata); } // Object Explorer Service - public $createObjectExplorerSession(handle: number, connInfo: data.ConnectionInfo): Thenable { - return this._resolveProvider(handle).createNewSession(connInfo); + public $createObjectExplorerSession(handle: number, connInfo: sqlops.ConnectionInfo): Thenable { + return this._resolveProvider(handle).createNewSession(connInfo); } - public $expandObjectExplorerNode(handle: number, nodeInfo: data.ExpandNodeInfo): Thenable { - return this._resolveProvider(handle).expandNode(nodeInfo); + public $expandObjectExplorerNode(handle: number, nodeInfo: sqlops.ExpandNodeInfo): Thenable { + return this._resolveProvider(handle).expandNode(nodeInfo); } - public $refreshObjectExplorerNode(handle: number, nodeInfo: data.ExpandNodeInfo): Thenable { - return this._resolveProvider(handle).refreshNode(nodeInfo); + public $refreshObjectExplorerNode(handle: number, nodeInfo: sqlops.ExpandNodeInfo): Thenable { + return this._resolveProvider(handle).refreshNode(nodeInfo); } - public $closeObjectExplorerSession(handle: number, closeSessionInfo: data.ObjectExplorerCloseSessionInfo): Thenable { - return this._resolveProvider(handle).closeSession(closeSessionInfo); + public $closeObjectExplorerSession(handle: number, closeSessionInfo: sqlops.ObjectExplorerCloseSessionInfo): Thenable { + return this._resolveProvider(handle).closeSession(closeSessionInfo); } - public $onObjectExplorerSessionCreated(handle: number, response: data.ObjectExplorerSession): void { + public $onObjectExplorerSessionCreated(handle: number, response: sqlops.ObjectExplorerSession): void { this._proxy.$onObjectExplorerSessionCreated(handle, response); } - public $onObjectExplorerNodeExpanded(handle: number, response: data.ObjectExplorerExpandInfo): void { + public $onObjectExplorerNodeExpanded(handle: number, response: sqlops.ObjectExplorerExpandInfo): void { this._proxy.$onObjectExplorerNodeExpanded(handle, response); } // Task Service - public $getAllTasks(handle: number, listTasksParams: data.ListTasksParams): Thenable { - return this._resolveProvider(handle).getAllTasks(listTasksParams); + public $getAllTasks(handle: number, listTasksParams: sqlops.ListTasksParams): Thenable { + return this._resolveProvider(handle).getAllTasks(listTasksParams); } - public $cancelTask(handle: number, cancelTaskParams: data.CancelTaskParams): Thenable { - return this._resolveProvider(handle).cancelTask(cancelTaskParams); + public $cancelTask(handle: number, cancelTaskParams: sqlops.CancelTaskParams): Thenable { + return this._resolveProvider(handle).cancelTask(cancelTaskParams); } - public $onTaskStatusChanged(handle: number, response: data.TaskProgressInfo): void { + public $onTaskStatusChanged(handle: number, response: sqlops.TaskProgressInfo): void { this._proxy.$onTaskStatusChanged(handle, response); } - public $onTaskCreated(handle: number, response: data.TaskInfo): void { + public $onTaskCreated(handle: number, response: sqlops.TaskInfo): void { this._proxy.$onTaskCreated(handle, response); } // Scripting handlers - public $scriptAsOperation(handle: number, connectionUri: string, operation: data.ScriptOperation, metadata: data.ObjectMetadata, paramDetails: data.ScriptingParamDetails): Thenable { - return this._resolveProvider(handle).scriptAsOperation(connectionUri, operation, metadata, paramDetails); + public $scriptAsOperation(handle: number, connectionUri: string, operation: sqlops.ScriptOperation, metadata: sqlops.ObjectMetadata, paramDetails: sqlops.ScriptingParamDetails): Thenable { + return this._resolveProvider(handle).scriptAsOperation(connectionUri, operation, metadata, paramDetails); } - public $onScriptingComplete(handle: number, scriptingCompleteResult: data.ScriptingCompleteResult): void { + public $onScriptingComplete(handle: number, scriptingCompleteResult: sqlops.ScriptingCompleteResult): void { this._proxy.$onScriptingComplete(handle, scriptingCompleteResult); } /** * Create a new database on the provided connection */ - public $createDatabase(handle: number, connectionUri: string, database: data.DatabaseInfo): Thenable { - return this._resolveProvider(handle).createDatabase(connectionUri, database); + public $createDatabase(handle: number, connectionUri: string, database: sqlops.DatabaseInfo): Thenable { + return this._resolveProvider(handle).createDatabase(connectionUri, database); } /** * Create a new database on the provided connection */ - public $getDefaultDatabaseInfo(handle: number, connectionUri: string): Thenable { - return this._resolveProvider(handle).getDefaultDatabaseInfo(connectionUri); + public $getDefaultDatabaseInfo(handle: number, connectionUri: string): Thenable { + return this._resolveProvider(handle).getDefaultDatabaseInfo(connectionUri); } /** * Get the info on a database */ - public $getDatabaseInfo(handle: number, connectionUri: string): Thenable { - return this._resolveProvider(handle).getDatabaseInfo(connectionUri); + public $getDatabaseInfo(handle: number, connectionUri: string): Thenable { + return this._resolveProvider(handle).getDatabaseInfo(connectionUri); } /** * Create a new login on the provided connection */ - public $createLogin(handle: number, connectionUri: string, login: data.LoginInfo): Thenable { - return this._resolveProvider(handle).createLogin(connectionUri, login); + public $createLogin(handle: number, connectionUri: string, login: sqlops.LoginInfo): Thenable { + return this._resolveProvider(handle).createLogin(connectionUri, login); } /** * Backup a database */ - public $backup(handle: number, connectionUri: string, backupInfo: { [key: string]: any }, taskExecutionMode: data.TaskExecutionMode): Thenable { - return this._resolveProvider(handle).backup(connectionUri, backupInfo, taskExecutionMode); + public $backup(handle: number, connectionUri: string, backupInfo: { [key: string]: any }, taskExecutionMode: sqlops.TaskExecutionMode): Thenable { + return this._resolveProvider(handle).backup(connectionUri, backupInfo, taskExecutionMode); } /** * Create a new database on the provided connection */ - public $getBackupConfigInfo(handle: number, connectionUri: string): Thenable { - return this._resolveProvider(handle).getBackupConfigInfo(connectionUri); + public $getBackupConfigInfo(handle: number, connectionUri: string): Thenable { + return this._resolveProvider(handle).getBackupConfigInfo(connectionUri); } /** * Restores a database */ - public $restore(handle: number, connectionUri: string, restoreInfo: data.RestoreInfo): Thenable { - return this._resolveProvider(handle).restore(connectionUri, restoreInfo); + public $restore(handle: number, connectionUri: string, restoreInfo: sqlops.RestoreInfo): Thenable { + return this._resolveProvider(handle).restore(connectionUri, restoreInfo); } /** * Gets a plan for restoring a database */ - public $getRestorePlan(handle: number, connectionUri: string, restoreInfo: data.RestoreInfo): Thenable { - return this._resolveProvider(handle).getRestorePlan(connectionUri, restoreInfo); + public $getRestorePlan(handle: number, connectionUri: string, restoreInfo: sqlops.RestoreInfo): Thenable { + return this._resolveProvider(handle).getRestorePlan(connectionUri, restoreInfo); } /** * cancels a restore plan */ - public $cancelRestorePlan(handle: number, connectionUri: string, restoreInfo: data.RestoreInfo): Thenable { - return this._resolveProvider(handle).cancelRestorePlan(connectionUri, restoreInfo); + public $cancelRestorePlan(handle: number, connectionUri: string, restoreInfo: sqlops.RestoreInfo): Thenable { + return this._resolveProvider(handle).cancelRestorePlan(connectionUri, restoreInfo); } /** * Gets restore config Info */ - public $getRestoreConfigInfo(handle: number, connectionUri: string): Thenable { - return this._resolveProvider(handle).getRestoreConfigInfo(connectionUri); + public $getRestoreConfigInfo(handle: number, connectionUri: string): Thenable { + return this._resolveProvider(handle).getRestoreConfigInfo(connectionUri); } /** * Open a file browser */ public $openFileBrowser(handle: number, ownerUri: string, expandPath: string, fileFilters: string[], changeFilter: boolean): Thenable { - return this._resolveProvider(handle).openFileBrowser(ownerUri, expandPath, fileFilters, changeFilter); + return this._resolveProvider(handle).openFileBrowser(ownerUri, expandPath, fileFilters, changeFilter); } /** * Send event when opening browser is complete */ - public $onFileBrowserOpened(handle: number, response: data.FileBrowserOpenedParams): void { + public $onFileBrowserOpened(handle: number, response: sqlops.FileBrowserOpenedParams): void { this._proxy.$onFileBrowserOpened(handle, response); } @@ -422,13 +422,13 @@ export class ExtHostDataProtocol extends ExtHostDataProtocolShape { * Expand a folder node */ public $expandFolderNode(handle: number, ownerUri: string, expandPath: string): Thenable { - return this._resolveProvider(handle).expandFolderNode(ownerUri, expandPath); + return this._resolveProvider(handle).expandFolderNode(ownerUri, expandPath); } /** * Send event when expansion is complete */ - public $onFolderNodeExpanded(handle: number, response: data.FileBrowserExpandedParams): void { + public $onFolderNodeExpanded(handle: number, response: sqlops.FileBrowserExpandedParams): void { this._proxy.$onFolderNodeExpanded(handle, response); } @@ -436,21 +436,21 @@ export class ExtHostDataProtocol extends ExtHostDataProtocolShape { * Validate selected file path */ public $validateFilePaths(handle: number, ownerUri: string, serviceType: string, selectedFiles: string[]): Thenable { - return this._resolveProvider(handle).validateFilePaths(ownerUri, serviceType, selectedFiles); + return this._resolveProvider(handle).validateFilePaths(ownerUri, serviceType, selectedFiles); } /** * Send event when validation is complete */ - public $onFilePathsValidated(handle: number, response: data.FileBrowserValidatedParams) { + public $onFilePathsValidated(handle: number, response: sqlops.FileBrowserValidatedParams) { this._proxy.$onFilePathsValidated(handle, response); } /** * Close file browser */ - public $closeFileBrowser(handle: number, ownerUri: string): Thenable { - return this._resolveProvider(handle).closeFileBrowser(ownerUri); + public $closeFileBrowser(handle: number, ownerUri: string): Thenable { + return this._resolveProvider(handle).closeFileBrowser(ownerUri); } /** @@ -461,20 +461,20 @@ export class ExtHostDataProtocol extends ExtHostDataProtocolShape { * Start a profiler session */ public $startSession(handle: number, sessionId: string): Thenable { - return this._resolveProvider(handle).startSession(sessionId); + return this._resolveProvider(handle).startSession(sessionId); } /** * Stop a profiler session */ public $stopSession(handle: number, sessionId: string): Thenable { - return this._resolveProvider(handle).stopSession(sessionId); + return this._resolveProvider(handle).stopSession(sessionId); } /** * Profiler session events available notification */ - public $onSessionEventsAvailable(handle: number, response: data.ProfilerSessionEvents): void { + public $onSessionEventsAvailable(handle: number, response: sqlops.ProfilerSessionEvents): void { this._proxy.$onSessionEventsAvailable(handle, response); } } diff --git a/src/sql/workbench/api/node/extHostModalDialog.ts b/src/sql/workbench/api/node/extHostModalDialog.ts index 089c3623e3..590562eaab 100644 --- a/src/sql/workbench/api/node/extHostModalDialog.ts +++ b/src/sql/workbench/api/node/extHostModalDialog.ts @@ -7,10 +7,10 @@ import { SqlMainContext, MainThreadModalDialogShape, ExtHostModalDialogsShape } from 'sql/workbench/api/node/sqlExtHost.protocol'; import { IMainContext } from 'vs/workbench/api/node/extHost.protocol'; import * as vscode from 'vscode'; -import * as data from 'data'; +import * as sqlops from 'sqlops'; import { Emitter } from 'vs/base/common/event'; -class ExtHostDialog implements data.ModalDialog { +class ExtHostDialog implements sqlops.ModalDialog { private _title: string; private _html: string; private _okTitle: string; @@ -97,7 +97,7 @@ export class ExtHostModalDialogs implements ExtHostModalDialogsShape { createDialog( title: string - ): data.ModalDialog { + ): sqlops.ModalDialog { console.log(title); const handle = ExtHostModalDialogs._handlePool++; this._proxy.$createDialog(handle); diff --git a/src/sql/workbench/api/node/extHostResourceProvider.ts b/src/sql/workbench/api/node/extHostResourceProvider.ts index ab5f6779a0..908a8a25af 100644 --- a/src/sql/workbench/api/node/extHostResourceProvider.ts +++ b/src/sql/workbench/api/node/extHostResourceProvider.ts @@ -5,10 +5,10 @@ 'use strict'; -import * as data from 'data'; -import {TPromise} from 'vs/base/common/winjs.base'; -import {IThreadService} from 'vs/workbench/services/thread/common/threadService'; -import {Disposable} from 'vs/workbench/api/node/extHostTypes'; +import * as sqlops from 'sqlops'; +import { TPromise } from 'vs/base/common/winjs.base'; +import { IThreadService } from 'vs/workbench/services/thread/common/threadService'; +import { Disposable } from 'vs/workbench/api/node/extHostTypes'; import { ExtHostResourceProviderShape, MainThreadResourceProviderShape, @@ -18,7 +18,7 @@ import { export class ExtHostResourceProvider extends ExtHostResourceProviderShape { private _handlePool: number = 0; private _proxy: MainThreadResourceProviderShape; - private _providers: {[handle: number]: ResourceProviderWithMetadata} = {}; + private _providers: { [handle: number]: ResourceProviderWithMetadata } = {}; constructor(threadService: IThreadService) { super(); @@ -27,15 +27,15 @@ export class ExtHostResourceProvider extends ExtHostResourceProviderShape { // PUBLIC METHODS ////////////////////////////////////////////////////// // - MAIN THREAD AVAILABLE METHODS ///////////////////////////////////// - public $createFirewallRule(handle: number, account: data.Account, firewallRuleInfo: data.FirewallRuleInfo): Thenable { - return this._withProvider(handle, (provider: data.ResourceProvider) => provider.createFirewallRule(account, firewallRuleInfo)); + public $createFirewallRule(handle: number, account: sqlops.Account, firewallRuleInfo: sqlops.FirewallRuleInfo): Thenable { + return this._withProvider(handle, (provider: sqlops.ResourceProvider) => provider.createFirewallRule(account, firewallRuleInfo)); } - public $handleFirewallRule(handle: number, errorCode: number, errorMessage: string, connectionTypeId: string): Thenable { - return this._withProvider(handle, (provider: data.ResourceProvider) => provider.handleFirewallRule(errorCode, errorMessage, connectionTypeId)); + public $handleFirewallRule(handle: number, errorCode: number, errorMessage: string, connectionTypeId: string): Thenable { + return this._withProvider(handle, (provider: sqlops.ResourceProvider) => provider.handleFirewallRule(errorCode, errorMessage, connectionTypeId)); } // - EXTENSION HOST AVAILABLE METHODS ////////////////////////////////// - public $registerResourceProvider(providerMetadata: data.ResourceProviderMetadata, provider: data.ResourceProvider): Disposable { + public $registerResourceProvider(providerMetadata: sqlops.ResourceProviderMetadata, provider: sqlops.ResourceProvider): Disposable { let self = this; // Look for any account providers that have the same provider ID @@ -76,7 +76,7 @@ export class ExtHostResourceProvider extends ExtHostResourceProviderShape { return this._handlePool++; } - private _withProvider(handle: number, callback: (provider: data.ResourceProvider) => Thenable): Thenable { + private _withProvider(handle: number, callback: (provider: sqlops.ResourceProvider) => Thenable): Thenable { let provider = this._providers[handle]; if (provider === undefined) { return TPromise.wrapError(new Error(`Provider ${handle} not found.`)); @@ -86,8 +86,8 @@ export class ExtHostResourceProvider extends ExtHostResourceProviderShape { } interface ResourceProviderWithMetadata { - metadata: data.ResourceProviderMetadata; - provider: data.ResourceProvider; + metadata: sqlops.ResourceProviderMetadata; + provider: sqlops.ResourceProvider; } diff --git a/src/sql/workbench/api/node/extHostSerializationProvider.ts b/src/sql/workbench/api/node/extHostSerializationProvider.ts index 017ac3775d..93f9abfa15 100644 --- a/src/sql/workbench/api/node/extHostSerializationProvider.ts +++ b/src/sql/workbench/api/node/extHostSerializationProvider.ts @@ -8,17 +8,17 @@ import { TPromise } from 'vs/base/common/winjs.base'; import { IThreadService } from 'vs/workbench/services/thread/common/threadService'; import { SqlMainContext, MainThreadSerializationProviderShape, ExtHostSerializationProviderShape } from 'sql/workbench/api/node/sqlExtHost.protocol'; import * as vscode from 'vscode'; -import * as data from 'data'; +import * as sqlops from 'sqlops'; import { Disposable } from 'vs/workbench/api/node/extHostTypes'; class SerializationAdapter { - private _provider: data.SerializationProvider; + private _provider: sqlops.SerializationProvider; - constructor(provider: data.SerializationProvider) { + constructor(provider: sqlops.SerializationProvider) { this._provider = provider; } - public saveAs(saveFormat: string, savePath: string, results: string, appendToFile: boolean): Thenable { + public saveAs(saveFormat: string, savePath: string, results: string, appendToFile: boolean): Thenable { return this._provider.saveAs(saveFormat, savePath, results, appendToFile); } @@ -26,7 +26,7 @@ class SerializationAdapter { type Adapter = SerializationAdapter; -export class ExtHostSerializationProvider extends ExtHostSerializationProviderShape { +export class ExtHostSerializationProvider extends ExtHostSerializationProviderShape { private _proxy: MainThreadSerializationProviderShape; @@ -44,7 +44,7 @@ export class ExtHostSerializationProvider extends ExtHostSerializationProviderSh return ExtHostSerializationProvider._handlePool++; } - private _withAdapter(handle: number, ctor: { new (...args: any[]): A }, callback: (adapter: A) => Thenable): Thenable { + private _withAdapter(handle: number, ctor: { new(...args: any[]): A }, callback: (adapter: A) => Thenable): Thenable { let adapter = this._adapter[handle]; if (!(adapter instanceof ctor)) { return TPromise.wrapError(new Error('no adapter found')); @@ -59,14 +59,14 @@ export class ExtHostSerializationProvider extends ExtHostSerializationProviderSh this._proxy = threadService.get(SqlMainContext.MainThreadSerializationProvider); } - public $registerSerializationProvider(provider: data.SerializationProvider): vscode.Disposable { + public $registerSerializationProvider(provider: sqlops.SerializationProvider): vscode.Disposable { provider.handle = this._nextHandle(); this._adapter[provider.handle] = new SerializationAdapter(provider); this._proxy.$registerSerializationProvider(provider.handle); return this._createDisposable(provider.handle); } - public $saveAs(saveFormat: string, savePath: string, results: string, appendToFile: boolean): Thenable { + public $saveAs(saveFormat: string, savePath: string, results: string, appendToFile: boolean): Thenable { return this._withAdapter(0, SerializationAdapter, adapter => adapter.saveAs(saveFormat, savePath, results, appendToFile)); } diff --git a/src/sql/workbench/api/node/mainThreadAccountManagement.ts b/src/sql/workbench/api/node/mainThreadAccountManagement.ts index 0ca0b7f31c..2ae7baf7c5 100644 --- a/src/sql/workbench/api/node/mainThreadAccountManagement.ts +++ b/src/sql/workbench/api/node/mainThreadAccountManagement.ts @@ -4,7 +4,7 @@ *--------------------------------------------------------------------------------------------*/ 'use strict'; -import * as data from 'data'; +import * as sqlops from 'sqlops'; import { TPromise } from 'vs/base/common/winjs.base'; import { IAccountManagementService } from 'sql/services/accountManagement/interfaces'; import { dispose, IDisposable } from 'vs/base/common/lifecycle'; @@ -19,7 +19,7 @@ import { extHostNamedCustomer } from 'vs/workbench/api/electron-browser/extHostC @extHostNamedCustomer(SqlMainContext.MainThreadAccountManagement) export class MainThreadAccountManagement implements MainThreadAccountManagementShape { - private _providerMetadata: { [handle: number]: data.AccountProviderMetadata }; + private _providerMetadata: { [handle: number]: sqlops.AccountProviderMetadata }; private _proxy: ExtHostAccountManagementShape; private _toDispose: IDisposable[]; @@ -42,31 +42,31 @@ export class MainThreadAccountManagement implements MainThreadAccountManagementS return this._accountManagementService.endAutoOAuthDeviceCode(); } - $accountUpdated(updatedAccount: data.Account): void { + $accountUpdated(updatedAccount: sqlops.Account): void { this._accountManagementService.accountUpdated(updatedAccount); } - public $registerAccountProvider(providerMetadata: data.AccountProviderMetadata, handle: number): Thenable { + public $registerAccountProvider(providerMetadata: sqlops.AccountProviderMetadata, handle: number): Thenable { let self = this; // Create the account provider that interfaces with the extension via the proxy and register it - let accountProvider: data.AccountProvider = { + let accountProvider: sqlops.AccountProvider = { autoOAuthCancelled(): Thenable { return self._proxy.$autoOAuthCancelled(handle); }, - clear(accountKey: data.AccountKey): Thenable { + clear(accountKey: sqlops.AccountKey): Thenable { return self._proxy.$clear(handle, accountKey); }, - getSecurityToken(account: data.Account): Thenable<{}> { + getSecurityToken(account: sqlops.Account): Thenable<{}> { return self._proxy.$getSecurityToken(handle, account); }, - initialize(restoredAccounts: data.Account[]): Thenable { + initialize(restoredAccounts: sqlops.Account[]): Thenable { return self._proxy.$initialize(handle, restoredAccounts); }, - prompt(): Thenable { + prompt(): Thenable { return self._proxy.$prompt(handle); }, - refresh(account: data.Account): Thenable { + refresh(account: sqlops.Account): Thenable { return self._proxy.$refresh(handle, account); } }; diff --git a/src/sql/workbench/api/node/mainThreadConnectionManagement.ts b/src/sql/workbench/api/node/mainThreadConnectionManagement.ts index 56e2e8f6bb..299094ea08 100644 --- a/src/sql/workbench/api/node/mainThreadConnectionManagement.ts +++ b/src/sql/workbench/api/node/mainThreadConnectionManagement.ts @@ -5,7 +5,7 @@ 'use strict'; import { SqlExtHostContext, SqlMainContext, ExtHostConnectionManagementShape, MainThreadConnectionManagementShape } from 'sql/workbench/api/node/sqlExtHost.protocol'; -import * as data from 'data'; +import * as sqlops from 'sqlops'; import { IExtHostContext } from 'vs/workbench/api/node/extHost.protocol'; import { extHostNamedCustomer } from 'vs/workbench/api/electron-browser/extHostCustomers'; import { IConnectionManagementService } from 'sql/parts/connection/common/connectionManagement'; @@ -37,11 +37,11 @@ export class MainThreadConnectionManagement implements MainThreadConnectionManag this._toDispose = dispose(this._toDispose); } - public $getActiveConnections(): Thenable { + public $getActiveConnections(): Thenable { return Promise.resolve(this._connectionManagementService.getActiveConnections().map(profile => this.convertConnection(profile))); } - public $getCurrentConnection(): Thenable { + public $getCurrentConnection(): Thenable { return Promise.resolve(this.convertConnection(TaskUtilities.getCurrentGlobalConnection(this._objectExplorerService, this._connectionManagementService, this._workbenchEditorService, true))); } @@ -49,12 +49,12 @@ export class MainThreadConnectionManagement implements MainThreadConnectionManag return Promise.resolve(this._connectionManagementService.getActiveConnectionCredentials(connectionId)); } - private convertConnection(profile: IConnectionProfile): data.connection.Connection { + private convertConnection(profile: IConnectionProfile): sqlops.connection.Connection { if (!profile) { return undefined; } profile = this._connectionManagementService.removeConnectionProfileCredentials(profile); - let connection: data.connection.Connection = { + let connection: sqlops.connection.Connection = { providerName: profile.providerName, connectionId: profile.id, options: profile.options diff --git a/src/sql/workbench/api/node/mainThreadCredentialManagement.ts b/src/sql/workbench/api/node/mainThreadCredentialManagement.ts index 458a74961e..0dd6688470 100644 --- a/src/sql/workbench/api/node/mainThreadCredentialManagement.ts +++ b/src/sql/workbench/api/node/mainThreadCredentialManagement.ts @@ -8,9 +8,10 @@ import { TPromise } from 'vs/base/common/winjs.base'; import { IDisposable, dispose } from 'vs/base/common/lifecycle'; import { SqlExtHostContext, ExtHostCredentialManagementShape, - MainThreadCredentialManagementShape, SqlMainContext } from 'sql/workbench/api/node/sqlExtHost.protocol'; + MainThreadCredentialManagementShape, SqlMainContext +} from 'sql/workbench/api/node/sqlExtHost.protocol'; import { ICredentialsService } from 'sql/services/credentials/credentialsService'; -import * as data from 'data'; +import * as sqlops from 'sqlops'; import { IExtHostContext } from 'vs/workbench/api/node/extHost.protocol'; import { extHostNamedCustomer } from 'vs/workbench/api/electron-browser/extHostCustomers'; @@ -43,7 +44,7 @@ export class MainThreadCredentialManagement implements MainThreadCredentialManag onSaveCredential(credentialId: string, password: string): Thenable { return self._proxy.$saveCredential(credentialId, password); }, - onReadCredential(credentialId: string): Thenable { + onReadCredential(credentialId: string): Thenable { return self._proxy.$readCredential(credentialId); }, onDeleteCredential(credentialId: string): Thenable { diff --git a/src/sql/workbench/api/node/mainThreadDataProtocol.ts b/src/sql/workbench/api/node/mainThreadDataProtocol.ts index 424d617e0b..c0d68cfd70 100644 --- a/src/sql/workbench/api/node/mainThreadDataProtocol.ts +++ b/src/sql/workbench/api/node/mainThreadDataProtocol.ts @@ -13,7 +13,7 @@ import { import { IConnectionManagementService } from 'sql/parts/connection/common/connectionManagement'; import { ICapabilitiesService } from 'sql/services/capabilities/capabilitiesService'; import { IQueryManagementService } from 'sql/parts/query/common/queryManagement'; -import * as data from 'data'; +import * as sqlops from 'sqlops'; import { IMetadataService } from 'sql/services/metadata/metadataService'; import { IObjectExplorerService } from 'sql/parts/registeredServer/common/objectExplorerService'; import { IScriptingService } from 'sql/services/scripting/scriptingService'; @@ -26,6 +26,8 @@ import { ISerializationService } from 'sql/services/serialization/serializationS import { IFileBrowserService } from 'sql/parts/fileBrowser/common/interfaces'; import { IExtHostContext } from 'vs/workbench/api/node/extHost.protocol'; import { extHostNamedCustomer } from 'vs/workbench/api/electron-browser/extHostCustomers'; +import { IMessageService } from 'vs/platform/message/common/message'; +import severity from 'vs/base/common/severity'; /** * Main thread class for handling data protocol management registration. @@ -53,7 +55,8 @@ export class MainThreadDataProtocol implements MainThreadDataProtocolShape { @ITaskService private _taskService: ITaskService, @IProfilerService private _profilerService: IProfilerService, @ISerializationService private _serializationService: ISerializationService, - @IFileBrowserService private _fileBrowserService: IFileBrowserService + @IFileBrowserService private _fileBrowserService: IFileBrowserService, + @IMessageService private _messageService: IMessageService ) { if (extHostContext) { this._proxy = extHostContext.get(SqlExtHostContext.ExtHostDataProtocol); @@ -69,8 +72,8 @@ export class MainThreadDataProtocol implements MainThreadDataProtocolShape { public $registerConnectionProvider(providerId: string, handle: number): TPromise { const self = this; - this._connectionManagementService.registerProvider(providerId, { - connect(connectionUri: string, connectionInfo: data.ConnectionInfo): Thenable { + this._connectionManagementService.registerProvider(providerId, { + connect(connectionUri: string, connectionInfo: sqlops.ConnectionInfo): Thenable { return self._proxy.$connect(handle, connectionUri, connectionInfo); }, disconnect(connectionUri: string): Thenable { @@ -82,7 +85,7 @@ export class MainThreadDataProtocol implements MainThreadDataProtocolShape { cancelConnect(connectionUri: string): Thenable { return self._proxy.$cancelConnect(handle, connectionUri); }, - listDatabases(connectionUri: string): Thenable { + listDatabases(connectionUri: string): Thenable { return self._proxy.$listDatabases(handle, connectionUri); }, rebuildIntelliSenseCache(connectionUri: string): Thenable { @@ -96,10 +99,10 @@ export class MainThreadDataProtocol implements MainThreadDataProtocolShape { public $registerQueryProvider(providerId: string, handle: number): TPromise { const self = this; this._queryManagementService.addQueryRequestHandler(providerId, { - cancelQuery(ownerUri: string): Thenable { + cancelQuery(ownerUri: string): Thenable { return self._proxy.$cancelQuery(handle, ownerUri); }, - runQuery(ownerUri: string, selection: data.ISelectionData, runOptions?: data.ExecutionPlanOptions): Thenable { + runQuery(ownerUri: string, selection: sqlops.ISelectionData, runOptions?: sqlops.ExecutionPlanOptions): Thenable { return self._proxy.$runQuery(handle, ownerUri, selection, runOptions); }, runQueryStatement(ownerUri: string, line: number, column: number): Thenable { @@ -108,16 +111,16 @@ export class MainThreadDataProtocol implements MainThreadDataProtocolShape { runQueryString(ownerUri: string, queryString: string): Thenable { return self._proxy.$runQueryString(handle, ownerUri, queryString); }, - runQueryAndReturn(ownerUri: string, queryString: string): Thenable { + runQueryAndReturn(ownerUri: string, queryString: string): Thenable { return self._proxy.$runQueryAndReturn(handle, ownerUri, queryString); }, - getQueryRows(rowData: data.QueryExecuteSubsetParams): Thenable { + getQueryRows(rowData: sqlops.QueryExecuteSubsetParams): Thenable { return self._proxy.$getQueryRows(handle, rowData); }, disposeQuery(ownerUri: string): Thenable { return self._proxy.$disposeQuery(handle, ownerUri); }, - saveResults(requestParams: data.SaveResultsRequestParams): Thenable { + saveResults(requestParams: sqlops.SaveResultsRequestParams): Thenable { let serializationProvider = self._serializationService.getSerializationFeatureMetadataProvider(requestParams.ownerUri); if (serializationProvider && serializationProvider.enabled) { return self._proxy.$saveResults(handle, requestParams); @@ -132,13 +135,13 @@ export class MainThreadDataProtocol implements MainThreadDataProtocolShape { initializeEdit(ownerUri: string, schemaName: string, objectName: string, objectType: string, rowLimit: number): Thenable { return self._proxy.$initializeEdit(handle, ownerUri, schemaName, objectName, objectType, rowLimit); }, - updateCell(ownerUri: string, rowId: number, columnId: number, newValue: string): Thenable { + updateCell(ownerUri: string, rowId: number, columnId: number, newValue: string): Thenable { return self._proxy.$updateCell(handle, ownerUri, rowId, columnId, newValue); }, commitEdit(ownerUri): Thenable { return self._proxy.$commitEdit(handle, ownerUri); }, - createRow(ownerUri: string): Thenable { + createRow(ownerUri: string): Thenable { return self._proxy.$createRow(handle, ownerUri); }, deleteRow(ownerUri: string, rowId: number): Thenable { @@ -147,13 +150,13 @@ export class MainThreadDataProtocol implements MainThreadDataProtocolShape { disposeEdit(ownerUri: string): Thenable { return self._proxy.$disposeEdit(handle, ownerUri); }, - revertCell(ownerUri: string, rowId: number, columnId: number): Thenable { + revertCell(ownerUri: string, rowId: number, columnId: number): Thenable { return self._proxy.$revertCell(handle, ownerUri, rowId, columnId); }, revertRow(ownerUri: string, rowId: number): Thenable { return self._proxy.$revertRow(handle, ownerUri, rowId); }, - getEditRows(rowData: data.EditSubsetParams): Thenable { + getEditRows(rowData: sqlops.EditSubsetParams): Thenable { return self._proxy.$getEditRows(handle, rowData); } }); @@ -163,11 +166,11 @@ export class MainThreadDataProtocol implements MainThreadDataProtocolShape { public $registerBackupProvider(providerId: string, handle: number): TPromise { const self = this; - this._backupService.registerProvider(providerId, { - backup(connectionUri: string, backupInfo: { [key: string]: any }, taskExecutionMode: data.TaskExecutionMode): Thenable { + this._backupService.registerProvider(providerId, { + backup(connectionUri: string, backupInfo: { [key: string]: any }, taskExecutionMode: sqlops.TaskExecutionMode): Thenable { return self._proxy.$backup(handle, connectionUri, backupInfo, taskExecutionMode); }, - getBackupConfigInfo(connectionUri: string): Thenable { + getBackupConfigInfo(connectionUri: string): Thenable { return self._proxy.$getBackupConfigInfo(handle, connectionUri); } }); @@ -177,17 +180,17 @@ export class MainThreadDataProtocol implements MainThreadDataProtocolShape { public $registerRestoreProvider(providerId: string, handle: number): TPromise { const self = this; - this._restoreService.registerProvider(providerId, { - getRestorePlan(connectionUri: string, restoreInfo: data.RestoreInfo): Thenable { + this._restoreService.registerProvider(providerId, { + getRestorePlan(connectionUri: string, restoreInfo: sqlops.RestoreInfo): Thenable { return self._proxy.$getRestorePlan(handle, connectionUri, restoreInfo); }, - cancelRestorePlan(connectionUri: string, restoreInfo: data.RestoreInfo): Thenable { + cancelRestorePlan(connectionUri: string, restoreInfo: sqlops.RestoreInfo): Thenable { return self._proxy.$cancelRestorePlan(handle, connectionUri, restoreInfo); }, - restore(connectionUri: string, restoreInfo: data.RestoreInfo): Thenable { + restore(connectionUri: string, restoreInfo: sqlops.RestoreInfo): Thenable { return self._proxy.$restore(handle, connectionUri, restoreInfo); }, - getRestoreConfigInfo(connectionUri: string): Thenable { + getRestoreConfigInfo(connectionUri: string): Thenable { return self._proxy.$getRestoreConfigInfo(handle, connectionUri); } }); @@ -197,17 +200,17 @@ export class MainThreadDataProtocol implements MainThreadDataProtocolShape { public $registerMetadataProvider(providerId: string, handle: number): TPromise { const self = this; - this._metadataService.registerProvider(providerId, { - getMetadata(connectionUri: string): Thenable { + this._metadataService.registerProvider(providerId, { + getMetadata(connectionUri: string): Thenable { return self._proxy.$getMetadata(handle, connectionUri); }, getDatabases(connectionUri: string): Thenable { return self._proxy.$getDatabases(handle, connectionUri); }, - getTableInfo(connectionUri: string, metadata: data.ObjectMetadata): Thenable { + getTableInfo(connectionUri: string, metadata: sqlops.ObjectMetadata): Thenable { return self._proxy.$getTableInfo(handle, connectionUri, metadata); }, - getViewInfo(connectionUri: string, metadata: data.ObjectMetadata): Thenable { + getViewInfo(connectionUri: string, metadata: sqlops.ObjectMetadata): Thenable { return self._proxy.$getViewInfo(handle, connectionUri, metadata); } }); @@ -217,17 +220,17 @@ export class MainThreadDataProtocol implements MainThreadDataProtocolShape { public $registerObjectExplorerProvider(providerId: string, handle: number): TPromise { const self = this; - this._objectExplorerService.registerProvider(providerId, { - createNewSession(connection: data.ConnectionInfo): Thenable { + this._objectExplorerService.registerProvider(providerId, { + createNewSession(connection: sqlops.ConnectionInfo): Thenable { return self._proxy.$createObjectExplorerSession(handle, connection); }, - expandNode(nodeInfo: data.ExpandNodeInfo): Thenable { + expandNode(nodeInfo: sqlops.ExpandNodeInfo): Thenable { return self._proxy.$expandObjectExplorerNode(handle, nodeInfo); }, - refreshNode(nodeInfo: data.ExpandNodeInfo): Thenable { + refreshNode(nodeInfo: sqlops.ExpandNodeInfo): Thenable { return self._proxy.$refreshObjectExplorerNode(handle, nodeInfo); }, - closeSession(closeSessionInfo: data.ObjectExplorerCloseSessionInfo): Thenable { + closeSession(closeSessionInfo: sqlops.ObjectExplorerCloseSessionInfo): Thenable { return self._proxy.$closeObjectExplorerSession(handle, closeSessionInfo); } }); @@ -237,11 +240,11 @@ export class MainThreadDataProtocol implements MainThreadDataProtocolShape { public $registerTaskServicesProvider(providerId: string, handle: number): TPromise { const self = this; - this._taskService.registerProvider(providerId, { - getAllTasks(listTasksParams: data.ListTasksParams): Thenable { + this._taskService.registerProvider(providerId, { + getAllTasks(listTasksParams: sqlops.ListTasksParams): Thenable { return self._proxy.$getAllTasks(handle, listTasksParams); }, - cancelTask(cancelTaskParams: data.CancelTaskParams): Thenable { + cancelTask(cancelTaskParams: sqlops.CancelTaskParams): Thenable { return self._proxy.$cancelTask(handle, cancelTaskParams); } }); @@ -251,8 +254,8 @@ export class MainThreadDataProtocol implements MainThreadDataProtocolShape { public $registerScriptingProvider(providerId: string, handle: number): TPromise { const self = this; - this._scriptingService.registerProvider(providerId, { - scriptAsOperation(connectionUri: string, operation: data.ScriptOperation, metadata: data.ObjectMetadata, paramDetails: data.ScriptingParamDetails): Thenable { + this._scriptingService.registerProvider(providerId, { + scriptAsOperation(connectionUri: string, operation: sqlops.ScriptOperation, metadata: sqlops.ObjectMetadata, paramDetails: sqlops.ScriptingParamDetails): Thenable { return self._proxy.$scriptAsOperation(handle, connectionUri, operation, metadata, paramDetails); } }); @@ -262,7 +265,7 @@ export class MainThreadDataProtocol implements MainThreadDataProtocolShape { public $registerFileBrowserProvider(providerId: string, handle: number): TPromise { const self = this; - this._fileBrowserService.registerProvider(providerId, { + this._fileBrowserService.registerProvider(providerId, { openFileBrowser(ownerUri: string, expandPath: string, fileFilters: string[], changeFilter: boolean): Thenable { return self._proxy.$openFileBrowser(handle, ownerUri, expandPath, fileFilters, changeFilter); }, @@ -272,7 +275,7 @@ export class MainThreadDataProtocol implements MainThreadDataProtocolShape { validateFilePaths(ownerUri: string, serviceType: string, selectedFiles: string[]): Thenable { return self._proxy.$validateFilePaths(handle, ownerUri, serviceType, selectedFiles); }, - closeFileBrowser(ownerUri: string): Thenable { + closeFileBrowser(ownerUri: string): Thenable { return self._proxy.$closeFileBrowser(handle, ownerUri); } }); @@ -282,7 +285,7 @@ export class MainThreadDataProtocol implements MainThreadDataProtocolShape { public $registerProfilerProvider(providerId: string, handle: number): TPromise { const self = this; - this._profilerService.registerProvider(providerId, { + this._profilerService.registerProvider(providerId, { startSession(sessionId: string): Thenable { return self._proxy.$startSession(handle, sessionId); }, @@ -305,17 +308,17 @@ export class MainThreadDataProtocol implements MainThreadDataProtocolShape { public $registerAdminServicesProvider(providerId: string, handle: number): TPromise { const self = this; - this._adminService.registerProvider(providerId, { - createDatabase(connectionUri: string, database: data.DatabaseInfo): Thenable { + this._adminService.registerProvider(providerId, { + createDatabase(connectionUri: string, database: sqlops.DatabaseInfo): Thenable { return self._proxy.$createDatabase(handle, connectionUri, database); }, - getDefaultDatabaseInfo(connectionUri: string): Thenable { + getDefaultDatabaseInfo(connectionUri: string): Thenable { return self._proxy.$getDefaultDatabaseInfo(handle, connectionUri); }, - getDatabaseInfo(connectionUri: string): Thenable { + getDatabaseInfo(connectionUri: string): Thenable { return self._proxy.$getDatabaseInfo(handle, connectionUri); }, - createLogin(connectionUri: string, login: data.LoginInfo): Thenable { + createLogin(connectionUri: string, login: sqlops.LoginInfo): Thenable { return self._proxy.$createLogin(handle, connectionUri, login); } }); @@ -325,8 +328,8 @@ export class MainThreadDataProtocol implements MainThreadDataProtocolShape { public $registerCapabilitiesServiceProvider(providerId: string, handle: number): TPromise { const self = this; - this._capabilitiesService.registerProvider({ - getServerCapabilities(client: data.DataProtocolClientCapabilities): Thenable { + this._capabilitiesService.registerProvider({ + getServerCapabilities(client: sqlops.DataProtocolClientCapabilities): Thenable { return self._proxy.$getServerCapabilities(handle, client); } }); @@ -335,7 +338,7 @@ export class MainThreadDataProtocol implements MainThreadDataProtocolShape { } // Connection Management handlers - public $onConnectionComplete(handle: number, connectionInfoSummary: data.ConnectionInfoSummary): void { + public $onConnectionComplete(handle: number, connectionInfoSummary: sqlops.ConnectionInfoSummary): void { this._connectionManagementService.onConnectionComplete(handle, connectionInfoSummary); } @@ -343,24 +346,24 @@ export class MainThreadDataProtocol implements MainThreadDataProtocolShape { this._connectionManagementService.onIntelliSenseCacheComplete(handle, connectionUri); } - public $onConnectionChangeNotification(handle: number, changedConnInfo: data.ChangedConnectionInfo): void { + public $onConnectionChangeNotification(handle: number, changedConnInfo: sqlops.ChangedConnectionInfo): void { this._connectionManagementService.onConnectionChangedNotification(handle, changedConnInfo); } // Query Management handlers - public $onQueryComplete(handle: number, result: data.QueryExecuteCompleteNotificationResult): void { + public $onQueryComplete(handle: number, result: sqlops.QueryExecuteCompleteNotificationResult): void { this._queryManagementService.onQueryComplete(result); } - public $onBatchStart(handle: number, batchInfo: data.QueryExecuteBatchNotificationParams): void { + public $onBatchStart(handle: number, batchInfo: sqlops.QueryExecuteBatchNotificationParams): void { this._queryManagementService.onBatchStart(batchInfo); } - public $onBatchComplete(handle: number, batchInfo: data.QueryExecuteBatchNotificationParams): void { + public $onBatchComplete(handle: number, batchInfo: sqlops.QueryExecuteBatchNotificationParams): void { this._queryManagementService.onBatchComplete(batchInfo); } - public $onResultSetComplete(handle: number, resultSetInfo: data.QueryExecuteResultSetCompleteNotificationParams): void { + public $onResultSetComplete(handle: number, resultSetInfo: sqlops.QueryExecuteResultSetCompleteNotificationParams): void { this._queryManagementService.onResultSetComplete(resultSetInfo); } - public $onQueryMessage(handle: number, message: data.QueryExecuteMessageParams): void { + public $onQueryMessage(handle: number, message: sqlops.QueryExecuteMessageParams): void { this._queryManagementService.onMessage(message); } public $onEditSessionReady(handle: number, ownerUri: string, success: boolean, message: string): void { @@ -368,43 +371,43 @@ export class MainThreadDataProtocol implements MainThreadDataProtocolShape { } // Script Handlers - public $onScriptingComplete(handle: number, scriptingCompleteResult: data.ScriptingCompleteResult): void { + public $onScriptingComplete(handle: number, scriptingCompleteResult: sqlops.ScriptingCompleteResult): void { this._scriptingService.onScriptingComplete(handle, scriptingCompleteResult); } //OE handlers - public $onObjectExplorerSessionCreated(handle: number, sessionResponse: data.ObjectExplorerSession): void { + public $onObjectExplorerSessionCreated(handle: number, sessionResponse: sqlops.ObjectExplorerSession): void { this._objectExplorerService.onSessionCreated(handle, sessionResponse); } - public $onObjectExplorerNodeExpanded(handle: number, expandResponse: data.ObjectExplorerExpandInfo): void { + public $onObjectExplorerNodeExpanded(handle: number, expandResponse: sqlops.ObjectExplorerExpandInfo): void { this._objectExplorerService.onNodeExpanded(handle, expandResponse); } //Tasks handlers - public $onTaskCreated(handle: number, taskInfo: data.TaskInfo): void { + public $onTaskCreated(handle: number, taskInfo: sqlops.TaskInfo): void { this._taskService.onNewTaskCreated(handle, taskInfo); } - public $onTaskStatusChanged(handle: number, taskProgressInfo: data.TaskProgressInfo): void { + public $onTaskStatusChanged(handle: number, taskProgressInfo: sqlops.TaskProgressInfo): void { this._taskService.onTaskStatusChanged(handle, taskProgressInfo); } //File browser handlers - public $onFileBrowserOpened(handle: number, response: data.FileBrowserOpenedParams): void { + public $onFileBrowserOpened(handle: number, response: sqlops.FileBrowserOpenedParams): void { this._fileBrowserService.onFileBrowserOpened(handle, response); } - public $onFolderNodeExpanded(handle: number, response: data.FileBrowserExpandedParams): void { + public $onFolderNodeExpanded(handle: number, response: sqlops.FileBrowserExpandedParams): void { this._fileBrowserService.onFolderNodeExpanded(handle, response); } - public $onFilePathsValidated(handle: number, response: data.FileBrowserValidatedParams): void { + public $onFilePathsValidated(handle: number, response: sqlops.FileBrowserValidatedParams): void { this._fileBrowserService.onFilePathsValidated(handle, response); } // Profiler handlers - public $onSessionEventsAvailable(handle: number, response: data.ProfilerSessionEvents): void { + public $onSessionEventsAvailable(handle: number, response: sqlops.ProfilerSessionEvents): void { this._profilerService.onMoreRows(response); } diff --git a/src/sql/workbench/api/node/mainThreadResourceProvider.ts b/src/sql/workbench/api/node/mainThreadResourceProvider.ts index 62fd423eea..b9e8f06aa4 100644 --- a/src/sql/workbench/api/node/mainThreadResourceProvider.ts +++ b/src/sql/workbench/api/node/mainThreadResourceProvider.ts @@ -4,10 +4,10 @@ *--------------------------------------------------------------------------------------------*/ 'use strict'; -import * as data from 'data'; -import {TPromise} from 'vs/base/common/winjs.base'; +import * as sqlops from 'sqlops'; +import { TPromise } from 'vs/base/common/winjs.base'; import { IResourceProviderService } from 'sql/parts/accountManagement/common/interfaces'; -import {dispose, IDisposable} from 'vs/base/common/lifecycle'; +import { dispose, IDisposable } from 'vs/base/common/lifecycle'; import { ExtHostResourceProviderShape, MainThreadResourceProviderShape, @@ -20,7 +20,7 @@ import { extHostNamedCustomer } from 'vs/workbench/api/electron-browser/extHostC @extHostNamedCustomer(SqlMainContext.MainThreadResourceProvider) export class MainThreadResourceProvider implements MainThreadResourceProviderShape { - private _providerMetadata: {[handle: number]: data.AccountProviderMetadata}; + private _providerMetadata: { [handle: number]: sqlops.AccountProviderMetadata }; private _proxy: ExtHostResourceProviderShape; private _toDispose: IDisposable[]; @@ -35,15 +35,15 @@ export class MainThreadResourceProvider implements MainThreadResourceProviderSha this._toDispose = []; } - public $registerResourceProvider(providerMetadata: data.ResourceProviderMetadata, handle: number): Thenable { + public $registerResourceProvider(providerMetadata: sqlops.ResourceProviderMetadata, handle: number): Thenable { let self = this; // Create the account provider that interfaces with the extension via the proxy and register it - let resourceProvider: data.ResourceProvider = { - createFirewallRule(account: data.Account, firewallruleInfo: data.FirewallRuleInfo): Thenable { + let resourceProvider: sqlops.ResourceProvider = { + createFirewallRule(account: sqlops.Account, firewallruleInfo: sqlops.FirewallRuleInfo): Thenable { return self._proxy.$createFirewallRule(handle, account, firewallruleInfo); }, - handleFirewallRule(errorCode: number, errorMessage: string, connectionTypeId: string): Thenable { + handleFirewallRule(errorCode: number, errorMessage: string, connectionTypeId: string): Thenable { return self._proxy.$handleFirewallRule(handle, errorCode, errorMessage, connectionTypeId); } }; diff --git a/src/sql/workbench/api/node/mainThreadSerializationProvider.ts b/src/sql/workbench/api/node/mainThreadSerializationProvider.ts index cbadedb4dc..b06aa26d08 100644 --- a/src/sql/workbench/api/node/mainThreadSerializationProvider.ts +++ b/src/sql/workbench/api/node/mainThreadSerializationProvider.ts @@ -6,12 +6,12 @@ import { TPromise } from 'vs/base/common/winjs.base'; import { IDisposable, dispose } from 'vs/base/common/lifecycle'; -import { IThreadService } from 'vs/workbench/services/thread/common/threadService'; import { SqlExtHostContext, ExtHostSerializationProviderShape, - MainThreadSerializationProviderShape, SqlMainContext } from 'sql/workbench/api/node/sqlExtHost.protocol'; + MainThreadSerializationProviderShape, SqlMainContext +} from 'sql/workbench/api/node/sqlExtHost.protocol'; import { ISerializationService } from 'sql/services/serialization/serializationService'; -import * as data from 'data'; +import * as sqlops from 'sqlops'; import { IExtHostContext } from 'vs/workbench/api/node/extHost.protocol'; import { extHostNamedCustomer } from 'vs/workbench/api/electron-browser/extHostCustomers'; @@ -42,7 +42,7 @@ export class MainThreadSerializationProvider implements MainThreadSerializationP let self = this; this._registrations[handle] = this.serializationService.addEventListener(handle, { - onSaveAs(saveFormat: string, savePath: string, results: string, appendToFile: boolean): Thenable { + onSaveAs(saveFormat: string, savePath: string, results: string, appendToFile: boolean): Thenable { return self._proxy.$saveAs(saveFormat, savePath, results, appendToFile); } }); diff --git a/src/sql/workbench/api/node/sqlExtHost.api.impl.ts b/src/sql/workbench/api/node/sqlExtHost.api.impl.ts index b62fc8ef3c..5b8d0541c7 100644 --- a/src/sql/workbench/api/node/sqlExtHost.api.impl.ts +++ b/src/sql/workbench/api/node/sqlExtHost.api.impl.ts @@ -13,7 +13,7 @@ import { IExtensionDescription } from 'vs/platform/extensions/common/extensions' import { realpath } from 'fs'; import * as extHostTypes from 'vs/workbench/api/node/extHostTypes'; -import * as data from 'data'; +import * as sqlops from 'sqlops'; import * as vscode from 'vscode'; import { SqlExtHostContext } from 'sql/workbench/api/node/sqlExtHost.protocol'; import { ExtHostAccountManagement } from 'sql/workbench/api/node/extHostAccountManagement'; @@ -33,7 +33,7 @@ import { ExtHostConnectionManagement } from 'sql/workbench/api/node/extHostConne export interface ISqlExtensionApiFactory { vsCodeFactory(extension: IExtensionDescription): typeof vscode; - dataFactory(extension: IExtensionDescription): typeof data; + sqlopsFactory(extension: IExtensionDescription): typeof sqlops; } /** @@ -61,10 +61,10 @@ export function createApiFactory( return { vsCodeFactory: vsCodeFactory, - dataFactory: function (extension: IExtensionDescription): typeof data { + sqlopsFactory: function (extension: IExtensionDescription): typeof sqlops { // namespace: accounts - const accounts: typeof data.accounts = { - registerAccountProvider(providerMetadata: data.AccountProviderMetadata, provider: data.AccountProvider): vscode.Disposable { + const accounts: typeof sqlops.accounts = { + registerAccountProvider(providerMetadata: sqlops.AccountProviderMetadata, provider: sqlops.AccountProvider): vscode.Disposable { return extHostAccountManagement.$registerAccountProvider(providerMetadata, provider); }, beginAutoOAuthDeviceCode(providerId: string, title: string, message: string, userCode: string, uri: string): Thenable { @@ -73,17 +73,17 @@ export function createApiFactory( endAutoOAuthDeviceCode(): void { return extHostAccountManagement.$endAutoOAuthDeviceCode(); }, - accountUpdated(updatedAccount: data.Account): void { + accountUpdated(updatedAccount: sqlops.Account): void { return extHostAccountManagement.$accountUpdated(updatedAccount); } }; // namespace: connection - const connection: typeof data.connection = { - getActiveConnections(): Thenable { + const connection: typeof sqlops.connection = { + getActiveConnections(): Thenable { return extHostConnectionManagement.$getActiveConnections(); }, - getCurrentConnection(): Thenable { + getCurrentConnection(): Thenable { return extHostConnectionManagement.$getCurrentConnection(); }, getCredentials(connectionId: string): Thenable<{ [name: string]: string }> { @@ -92,32 +92,32 @@ export function createApiFactory( }; // namespace: credentials - const credentials: typeof data.credentials = { - registerProvider(provider: data.CredentialProvider): vscode.Disposable { + const credentials: typeof sqlops.credentials = { + registerProvider(provider: sqlops.CredentialProvider): vscode.Disposable { return extHostCredentialManagement.$registerCredentialProvider(provider); }, - getProvider(namespaceId: string): Thenable { + getProvider(namespaceId: string): Thenable { return extHostCredentialManagement.$getCredentialProvider(namespaceId); } }; // namespace: serialization - const serialization: typeof data.serialization = { - registerProvider(provider: data.SerializationProvider): vscode.Disposable { + const serialization: typeof sqlops.serialization = { + registerProvider(provider: sqlops.SerializationProvider): vscode.Disposable { return extHostSerializationProvider.$registerSerializationProvider(provider); }, }; // namespace: serialization - const resources: typeof data.resources = { - registerResourceProvider(providerMetadata: data.ResourceProviderMetadata, provider: data.ResourceProvider): vscode.Disposable { + const resources: typeof sqlops.resources = { + registerResourceProvider(providerMetadata: sqlops.ResourceProviderMetadata, provider: sqlops.ResourceProvider): vscode.Disposable { return extHostResourceProvider.$registerResourceProvider(providerMetadata, provider); } }; - let registerConnectionProvider = (provider: data.ConnectionProvider): vscode.Disposable => { + let registerConnectionProvider = (provider: sqlops.ConnectionProvider): vscode.Disposable => { // Connection callbacks - provider.registerOnConnectionComplete((connSummary: data.ConnectionInfoSummary) => { + provider.registerOnConnectionComplete((connSummary: sqlops.ConnectionInfoSummary) => { extHostDataProvider.$onConnectComplete(provider.handle, connSummary); }); @@ -125,31 +125,31 @@ export function createApiFactory( extHostDataProvider.$onIntelliSenseCacheComplete(provider.handle, connectionUri); }); - provider.registerOnConnectionChanged((changedConnInfo: data.ChangedConnectionInfo) => { + provider.registerOnConnectionChanged((changedConnInfo: sqlops.ChangedConnectionInfo) => { extHostDataProvider.$onConnectionChanged(provider.handle, changedConnInfo); }); return extHostDataProvider.$registerConnectionProvider(provider); }; - let registerQueryProvider = (provider: data.QueryProvider): vscode.Disposable => { - provider.registerOnQueryComplete((result: data.QueryExecuteCompleteNotificationResult) => { + let registerQueryProvider = (provider: sqlops.QueryProvider): vscode.Disposable => { + provider.registerOnQueryComplete((result: sqlops.QueryExecuteCompleteNotificationResult) => { extHostDataProvider.$onQueryComplete(provider.handle, result); }); - provider.registerOnBatchStart((batchInfo: data.QueryExecuteBatchNotificationParams) => { + provider.registerOnBatchStart((batchInfo: sqlops.QueryExecuteBatchNotificationParams) => { extHostDataProvider.$onBatchStart(provider.handle, batchInfo); }); - provider.registerOnBatchComplete((batchInfo: data.QueryExecuteBatchNotificationParams) => { + provider.registerOnBatchComplete((batchInfo: sqlops.QueryExecuteBatchNotificationParams) => { extHostDataProvider.$onBatchComplete(provider.handle, batchInfo); }); - provider.registerOnResultSetComplete((resultSetInfo: data.QueryExecuteResultSetCompleteNotificationParams) => { + provider.registerOnResultSetComplete((resultSetInfo: sqlops.QueryExecuteResultSetCompleteNotificationParams) => { extHostDataProvider.$onResultSetComplete(provider.handle, resultSetInfo); }); - provider.registerOnMessage((message: data.QueryExecuteMessageParams) => { + provider.registerOnMessage((message: sqlops.QueryExecuteMessageParams) => { extHostDataProvider.$onQueryMessage(provider.handle, message); }); @@ -160,84 +160,84 @@ export function createApiFactory( return extHostDataProvider.$registerQueryProvider(provider); }; - let registerObjectExplorerProvider = (provider: data.ObjectExplorerProvider): vscode.Disposable => { - provider.registerOnSessionCreated((response: data.ObjectExplorerSession) => { + let registerObjectExplorerProvider = (provider: sqlops.ObjectExplorerProvider): vscode.Disposable => { + provider.registerOnSessionCreated((response: sqlops.ObjectExplorerSession) => { extHostDataProvider.$onObjectExplorerSessionCreated(provider.handle, response); }); - provider.registerOnExpandCompleted((response: data.ObjectExplorerExpandInfo) => { + provider.registerOnExpandCompleted((response: sqlops.ObjectExplorerExpandInfo) => { extHostDataProvider.$onObjectExplorerNodeExpanded(provider.handle, response); }); return extHostDataProvider.$registerObjectExplorerProvider(provider); }; - let registerTaskServicesProvider = (provider: data.TaskServicesProvider): vscode.Disposable => { - provider.registerOnTaskCreated((response: data.TaskInfo) => { + let registerTaskServicesProvider = (provider: sqlops.TaskServicesProvider): vscode.Disposable => { + provider.registerOnTaskCreated((response: sqlops.TaskInfo) => { extHostDataProvider.$onTaskCreated(provider.handle, response); }); - provider.registerOnTaskStatusChanged((response: data.TaskProgressInfo) => { + provider.registerOnTaskStatusChanged((response: sqlops.TaskProgressInfo) => { extHostDataProvider.$onTaskStatusChanged(provider.handle, response); }); return extHostDataProvider.$registerTaskServicesProvider(provider); }; - let registerFileBrowserProvider = (provider: data.FileBrowserProvider): vscode.Disposable => { - provider.registerOnFileBrowserOpened((response: data.FileBrowserOpenedParams) => { + let registerFileBrowserProvider = (provider: sqlops.FileBrowserProvider): vscode.Disposable => { + provider.registerOnFileBrowserOpened((response: sqlops.FileBrowserOpenedParams) => { extHostDataProvider.$onFileBrowserOpened(provider.handle, response); }); - provider.registerOnFolderNodeExpanded((response: data.FileBrowserExpandedParams) => { + provider.registerOnFolderNodeExpanded((response: sqlops.FileBrowserExpandedParams) => { extHostDataProvider.$onFolderNodeExpanded(provider.handle, response); }); - provider.registerOnFilePathsValidated((response: data.FileBrowserValidatedParams) => { + provider.registerOnFilePathsValidated((response: sqlops.FileBrowserValidatedParams) => { extHostDataProvider.$onFilePathsValidated(provider.handle, response); }); return extHostDataProvider.$registerFileBrowserProvider(provider); }; - let registerScriptingProvider = (provider: data.ScriptingProvider): vscode.Disposable => { - provider.registerOnScriptingComplete((response: data.ScriptingCompleteResult) => { + let registerScriptingProvider = (provider: sqlops.ScriptingProvider): vscode.Disposable => { + provider.registerOnScriptingComplete((response: sqlops.ScriptingCompleteResult) => { extHostDataProvider.$onScriptingComplete(provider.handle, response); }); return extHostDataProvider.$registerScriptingProvider(provider); }; - let registerProfilerProvider = (provider: data.ProfilerProvider): vscode.Disposable => { - provider.registerOnSessionEventsAvailable((response: data.ProfilerSessionEvents) => { + let registerProfilerProvider = (provider: sqlops.ProfilerProvider): vscode.Disposable => { + provider.registerOnSessionEventsAvailable((response: sqlops.ProfilerSessionEvents) => { extHostDataProvider.$onSessionEventsAvailable(provider.handle, response); }); return extHostDataProvider.$registerProfilerProvider(provider); }; - let registerBackupProvider = (provider: data.BackupProvider): vscode.Disposable => { + let registerBackupProvider = (provider: sqlops.BackupProvider): vscode.Disposable => { return extHostDataProvider.$registerBackupProvider(provider); }; - let registerRestoreProvider = (provider: data.RestoreProvider): vscode.Disposable => { + let registerRestoreProvider = (provider: sqlops.RestoreProvider): vscode.Disposable => { return extHostDataProvider.$registerRestoreProvider(provider); }; - let registerMetadataProvider = (provider: data.MetadataProvider): vscode.Disposable => { + let registerMetadataProvider = (provider: sqlops.MetadataProvider): vscode.Disposable => { return extHostDataProvider.$registerMetadataProvider(provider); }; - let registerCapabilitiesServiceProvider = (provider: data.CapabilitiesProvider): vscode.Disposable => { + let registerCapabilitiesServiceProvider = (provider: sqlops.CapabilitiesProvider): vscode.Disposable => { return extHostDataProvider.$registerCapabilitiesServiceProvider(provider); }; - let registerAdminServicesProvider = (provider: data.AdminServicesProvider): vscode.Disposable => { + let registerAdminServicesProvider = (provider: sqlops.AdminServicesProvider): vscode.Disposable => { return extHostDataProvider.$registerAdminServicesProvider(provider); }; // namespace: dataprotocol - const dataprotocol: typeof data.dataprotocol = { + const dataprotocol: typeof sqlops.dataprotocol = { registerBackupProvider, registerConnectionProvider, registerFileBrowserProvider, @@ -250,7 +250,7 @@ export function createApiFactory( registerQueryProvider, registerAdminServicesProvider, registerCapabilitiesServiceProvider, - onDidChangeLanguageFlavor(listener: (e: data.DidChangeLanguageFlavorParams) => any, thisArgs?: any, disposables?: extHostTypes.Disposable[]) { + onDidChangeLanguageFlavor(listener: (e: sqlops.DidChangeLanguageFlavorParams) => any, thisArgs?: any, disposables?: extHostTypes.Disposable[]) { return extHostDataProvider.onDidChangeLanguageFlavor(listener, thisArgs, disposables); } }; @@ -262,7 +262,7 @@ export function createApiFactory( }; const dashboard = { - registerWebviewProvider(widgetId: string, handler: (webview: data.DashboardWebview) => void) { + registerWebviewProvider(widgetId: string, handler: (webview: sqlops.DashboardWebview) => void) { extHostWebviewWidgets.$registerProvider(widgetId, handler); } }; @@ -316,13 +316,13 @@ function createExtensionPathIndex(extensionService: ExtHostExtensionService): TP } function defineAPI(factory: ISqlExtensionApiFactory, extensionPaths: TrieMap): void { - type ApiImpl = typeof vscode | typeof data; + type ApiImpl = typeof vscode | typeof sqlops; // each extension is meant to get its own api implementation const extApiImpl = new Map(); - const dataExtApiImpl = new Map(); + const dataExtApiImpl = new Map(); let defaultApiImpl: typeof vscode; - let defaultDataApiImpl: typeof data; + let defaultDataApiImpl: typeof sqlops; // The module factory looks for an entry in the API map for an extension. If found, it reuses this. // If not, it loads it & saves it in the map @@ -360,11 +360,11 @@ function defineAPI(factory: ISqlExtensionApiFactory, extensionPaths: TrieMap defaultApiImpl = impl, parent); - } else if (request === 'data') { + } else if (request === 'sqlops') { return getModuleFactory(dataExtApiImpl, - (ext) => factory.dataFactory(ext), + (ext) => factory.sqlopsFactory(ext), defaultDataApiImpl, - (impl) => defaultDataApiImpl = impl, + (impl) => defaultDataApiImpl = impl, parent); } else { // Allow standard node_module load to occur diff --git a/src/sql/workbench/api/node/sqlExtHost.protocol.ts b/src/sql/workbench/api/node/sqlExtHost.protocol.ts index 8623718cc7..2f5ab489c0 100644 --- a/src/sql/workbench/api/node/sqlExtHost.protocol.ts +++ b/src/sql/workbench/api/node/sqlExtHost.protocol.ts @@ -7,21 +7,21 @@ import { createMainContextProxyIdentifier as createMainId, createExtHostContextProxyIdentifier as createExtId, - ProxyIdentifier, IThreadService + ProxyIdentifier } from 'vs/workbench/services/thread/common/threadService'; -import * as data from 'data'; +import * as sqlops from 'sqlops'; import { TPromise } from 'vs/base/common/winjs.base'; import { IDisposable } from 'vs/base/common/lifecycle'; export abstract class ExtHostAccountManagementShape { $autoOAuthCancelled(handle: number): Thenable { throw ni(); } - $clear(handle: number, accountKey: data.AccountKey): Thenable { throw ni(); } - $getSecurityToken(handle: number, account: data.Account): Thenable<{}> { throw ni(); } - $initialize(handle: number, restoredAccounts: data.Account[]): Thenable { throw ni(); } - $prompt(handle: number): Thenable { throw ni(); } - $refresh(handle: number, account: data.Account): Thenable { throw ni(); } + $clear(handle: number, accountKey: sqlops.AccountKey): Thenable { throw ni(); } + $getSecurityToken(handle: number, account: sqlops.Account): Thenable<{}> { throw ni(); } + $initialize(handle: number, restoredAccounts: sqlops.Account[]): Thenable { throw ni(); } + $prompt(handle: number): Thenable { throw ni(); } + $refresh(handle: number, account: sqlops.Account): Thenable { throw ni(); } } export abstract class ExtHostConnectionManagementShape { } @@ -31,7 +31,7 @@ export abstract class ExtHostDataProtocolShape { /** * Establish a connection to a data source using the provided ConnectionInfo instance. */ - $connect(handle: number, connectionUri: string, connection: data.ConnectionInfo): Thenable { throw ni(); } + $connect(handle: number, connectionUri: string, connection: sqlops.ConnectionInfo): Thenable { throw ni(); } /** * Disconnect from a data source using the provided connectionUri string. @@ -53,7 +53,7 @@ export abstract class ExtHostDataProtocolShape { * @param handle the handle to use when looking up a provider * @param connectionUri URI identifying a connected resource */ - $listDatabases(handle: number, connectionUri: string): Thenable { throw ni(); } + $listDatabases(handle: number, connectionUri: string): Thenable { throw ni(); } /** * Notifies all listeners on the Extension Host side that a language change occurred @@ -61,63 +61,63 @@ export abstract class ExtHostDataProtocolShape { * and other events * @param params information on what URI was changed and the new language */ - $languageFlavorChanged(params: data.DidChangeLanguageFlavorParams): void { throw ni(); } + $languageFlavorChanged(params: sqlops.DidChangeLanguageFlavorParams): void { throw ni(); } /** * Callback when a connection request has completed */ - $onConnectComplete(handle: number, connectionInfoSummary: data.ConnectionInfoSummary): void { throw ni(); } + $onConnectComplete(handle: number, connectionInfoSummary: sqlops.ConnectionInfoSummary): void { throw ni(); } /** * Callback when a IntelliSense cache has been built */ $onIntelliSenseCacheComplete(handle: number, connectionUri: string): void { throw ni(); } - $getServerCapabilities(handle: number, client: data.DataProtocolClientCapabilities): Thenable { throw ni(); } + $getServerCapabilities(handle: number, client: sqlops.DataProtocolClientCapabilities): Thenable { throw ni(); } /** * Metadata service methods * */ - $getMetadata(handle: number, connectionUri: string): Thenable { throw ni(); } + $getMetadata(handle: number, connectionUri: string): Thenable { throw ni(); } $getDatabases(handle: number, connectionUri: string): Thenable { throw ni(); } - $getTableInfo(handle: number, connectionUri: string, metadata: data.ObjectMetadata): Thenable { throw ni(); } + $getTableInfo(handle: number, connectionUri: string, metadata: sqlops.ObjectMetadata): Thenable { throw ni(); } - $getViewInfo(handle: number, connectionUri: string, metadata: data.ObjectMetadata): Thenable { throw ni(); } + $getViewInfo(handle: number, connectionUri: string, metadata: sqlops.ObjectMetadata): Thenable { throw ni(); } /** * Object Explorer */ - $createObjectExplorerSession(handle: number, connInfo: data.ConnectionInfo): Thenable { throw ni(); } + $createObjectExplorerSession(handle: number, connInfo: sqlops.ConnectionInfo): Thenable { throw ni(); } - $expandObjectExplorerNode(handle: number, nodeInfo: data.ExpandNodeInfo): Thenable { throw ni(); } + $expandObjectExplorerNode(handle: number, nodeInfo: sqlops.ExpandNodeInfo): Thenable { throw ni(); } - $refreshObjectExplorerNode(handle: number, nodeInfo: data.ExpandNodeInfo): Thenable { throw ni(); } + $refreshObjectExplorerNode(handle: number, nodeInfo: sqlops.ExpandNodeInfo): Thenable { throw ni(); } - $closeObjectExplorerSession(handle: number, closeSessionInfo: data.ObjectExplorerCloseSessionInfo): Thenable { throw ni(); } + $closeObjectExplorerSession(handle: number, closeSessionInfo: sqlops.ObjectExplorerCloseSessionInfo): Thenable { throw ni(); } /** * Tasks */ - $getAllTasks(handle: number, listTasksParams: data.ListTasksParams): Thenable { throw ni(); } - $cancelTask(handle: number, cancelTaskParams: data.CancelTaskParams): Thenable { throw ni(); } + $getAllTasks(handle: number, listTasksParams: sqlops.ListTasksParams): Thenable { throw ni(); } + $cancelTask(handle: number, cancelTaskParams: sqlops.CancelTaskParams): Thenable { throw ni(); } /** * Scripting methods */ - $scriptAsOperation(handle: number, connectionUri: string, operation: data.ScriptOperation, metadata: data.ObjectMetadata, paramDetails: data.ScriptingParamDetails): Thenable { throw ni(); } + $scriptAsOperation(handle: number, connectionUri: string, operation: sqlops.ScriptOperation, metadata: sqlops.ObjectMetadata, paramDetails: sqlops.ScriptingParamDetails): Thenable { throw ni(); } /** * Cancels the currently running query for a URI */ - $cancelQuery(handle: number, ownerUri: string): Thenable { throw ni(); } + $cancelQuery(handle: number, ownerUri: string): Thenable { throw ni(); } /** * Runs a query for a text selection inside a document */ - $runQuery(handle: number, ownerUri: string, selection: data.ISelectionData, runOptions?: data.ExecutionPlanOptions): Thenable { throw ni(); } + $runQuery(handle: number, ownerUri: string, selection: sqlops.ISelectionData, runOptions?: sqlops.ExecutionPlanOptions): Thenable { throw ni(); } /** * Runs the current SQL statement query for a text document */ @@ -129,11 +129,11 @@ export abstract class ExtHostDataProtocolShape { /** * Runs a query for a provided query and returns result */ - $runQueryAndReturn(handle: number, ownerUri: string, queryString: string): Thenable { throw ni(); } + $runQueryAndReturn(handle: number, ownerUri: string, queryString: string): Thenable { throw ni(); } /** * Gets a subset of rows in a result set in order to display in the UI */ - $getQueryRows(handle: number, rowData: data.QueryExecuteSubsetParams): Thenable { throw ni(); } + $getQueryRows(handle: number, rowData: sqlops.QueryExecuteSubsetParams): Thenable { throw ni(); } /** * Disposes the cached information regarding a query @@ -148,29 +148,29 @@ export abstract class ExtHostDataProtocolShape { /** * Callback when a query has completed */ - $onQueryComplete(handle: number, result: data.QueryExecuteCompleteNotificationResult): void { throw ni(); } + $onQueryComplete(handle: number, result: sqlops.QueryExecuteCompleteNotificationResult): void { throw ni(); } /** * Callback when a batch has started. This enables the UI to display when batch execution has started */ - $onBatchStart(handle: number, batchInfo: data.QueryExecuteBatchNotificationParams): void { throw ni(); } + $onBatchStart(handle: number, batchInfo: sqlops.QueryExecuteBatchNotificationParams): void { throw ni(); } /** * Callback when a batch is complete. This includes updated information on result sets, time to execute, and * other relevant batch information */ - $onBatchComplete(handle: number, batchInfo: data.QueryExecuteBatchNotificationParams): void { throw ni(); } + $onBatchComplete(handle: number, batchInfo: sqlops.QueryExecuteBatchNotificationParams): void { throw ni(); } /** * Callback when a result set has been returned from query execution and can be displayed */ - $onResultSetComplete(handle: number, resultSetInfo: data.QueryExecuteResultSetCompleteNotificationParams): void { throw ni(); } + $onResultSetComplete(handle: number, resultSetInfo: sqlops.QueryExecuteResultSetCompleteNotificationParams): void { throw ni(); } /** * Callback when a message generated during query execution is issued */ - $onQueryMessage(handle: number, message: data.QueryExecuteMessageParams): void { throw ni(); } + $onQueryMessage(handle: number, message: sqlops.QueryExecuteMessageParams): void { throw ni(); } /** * Requests saving of the results from a result set into a specific format (CSV, JSON, Excel) */ - $saveResults(handle: number, requestParams: data.SaveResultsRequestParams): Thenable { throw ni(); } + $saveResults(handle: number, requestParams: sqlops.SaveResultsRequestParams): Thenable { throw ni(); } /** * Commits all pending edits in an edit session @@ -180,7 +180,7 @@ export abstract class ExtHostDataProtocolShape { /** * Creates a new row in the edit session */ - $createRow(handle: number, ownerUri: string): Thenable { throw ni(); } + $createRow(handle: number, ownerUri: string): Thenable { throw ni(); } /** * Marks the selected row for deletion in the edit session @@ -195,7 +195,7 @@ export abstract class ExtHostDataProtocolShape { /** * Reverts any pending changes for the requested cell and returns the original value */ - $revertCell(handle: number, ownerUri: string, rowId: number, columnId: number): Thenable { throw ni(); } + $revertCell(handle: number, ownerUri: string, rowId: number, columnId: number): Thenable { throw ni(); } /** * Reverts any pending changes for the requested row @@ -205,12 +205,12 @@ export abstract class ExtHostDataProtocolShape { /** * Updates a cell value in the requested row. Returns if there are any corrections to the value */ - $updateCell(handle: number, ownerUri: string, rowId: number, columId: number, newValue: string): Thenable { throw ni(); } + $updateCell(handle: number, ownerUri: string, rowId: number, columId: number, newValue: string): Thenable { throw ni(); } /** * Gets a subset of rows in a result set, merging pending edit changes in order to display in the UI */ - $getEditRows(handle: number, rowData: data.EditSubsetParams): Thenable { throw ni(); } + $getEditRows(handle: number, rowData: sqlops.EditSubsetParams): Thenable { throw ni(); } /** * Diposes an initialized edit session and cleans up pending edits @@ -220,52 +220,52 @@ export abstract class ExtHostDataProtocolShape { /** * Create a new database on the provided connection */ - $createDatabase(handle: number, connectionUri: string, database: data.DatabaseInfo): Thenable { throw ni(); } + $createDatabase(handle: number, connectionUri: string, database: sqlops.DatabaseInfo): Thenable { throw ni(); } /** * Get the default database prototype */ - $getDefaultDatabaseInfo(handle: number, connectionUri: string): Thenable { throw ni(); } + $getDefaultDatabaseInfo(handle: number, connectionUri: string): Thenable { throw ni(); } /** * Get the database info */ - $getDatabaseInfo(handle: number, connectionUri: string): Thenable { throw ni(); } + $getDatabaseInfo(handle: number, connectionUri: string): Thenable { throw ni(); } /** * Create a new login on the provided connection */ - $createLogin(handle: number, connectionUri: string, login: data.LoginInfo): Thenable { throw ni(); } + $createLogin(handle: number, connectionUri: string, login: sqlops.LoginInfo): Thenable { throw ni(); } /** * Backup a database */ - $backup(handle: number, connectionUri: string, backupInfo: { [key: string]: any }, taskExecutionMode: data.TaskExecutionMode): Thenable { throw ni(); } + $backup(handle: number, connectionUri: string, backupInfo: { [key: string]: any }, taskExecutionMode: sqlops.TaskExecutionMode): Thenable { throw ni(); } /** * Get the extended database prototype */ - $getBackupConfigInfo(handle: number, connectionUri: string): Thenable { throw ni(); } + $getBackupConfigInfo(handle: number, connectionUri: string): Thenable { throw ni(); } /** * Restores a database */ - $restore(handle: number, connectionUri: string, restoreInfo: data.RestoreInfo): Thenable { throw ni(); } + $restore(handle: number, connectionUri: string, restoreInfo: sqlops.RestoreInfo): Thenable { throw ni(); } /** * Gets a plan for restoring a database */ - $getRestorePlan(handle: number, connectionUri: string, restoreInfo: data.RestoreInfo): Thenable { throw ni(); } + $getRestorePlan(handle: number, connectionUri: string, restoreInfo: sqlops.RestoreInfo): Thenable { throw ni(); } /** * Cancels a plan */ - $cancelRestorePlan(handle: number, connectionUri: string, restoreInfo: data.RestoreInfo): Thenable { throw ni(); } + $cancelRestorePlan(handle: number, connectionUri: string, restoreInfo: sqlops.RestoreInfo): Thenable { throw ni(); } /** * Gets restore config Info */ - $getRestoreConfigInfo(handle: number, connectionUri: string): Thenable { throw ni(); } + $getRestoreConfigInfo(handle: number, connectionUri: string): Thenable { throw ni(); } /** @@ -287,7 +287,7 @@ export abstract class ExtHostDataProtocolShape { /** * Close file browser */ - $closeFileBrowser(handle: number, ownerUri: string): Thenable { throw ni(); } + $closeFileBrowser(handle: number, ownerUri: string): Thenable { throw ni(); } /** * Profiler Provider methods @@ -312,12 +312,12 @@ export abstract class ExtHostResourceProviderShape { /** * Create a firewall rule */ - $createFirewallRule(handle: number, account: data.Account, firewallRuleInfo: data.FirewallRuleInfo): Thenable { throw ni(); } + $createFirewallRule(handle: number, account: sqlops.Account, firewallRuleInfo: sqlops.FirewallRuleInfo): Thenable { throw ni(); } /** * Handle firewall rule */ - $handleFirewallRule(handle: number, errorCode: number, errorMessage: string, connectionTypeId: string): Thenable { throw ni(); } + $handleFirewallRule(handle: number, errorCode: number, errorMessage: string, connectionTypeId: string): Thenable { throw ni(); } } @@ -327,7 +327,7 @@ export abstract class ExtHostResourceProviderShape { export abstract class ExtHostCredentialManagementShape { $saveCredential(credentialId: string, password: string): Thenable { throw ni(); } - $readCredential(credentialId: string): Thenable { throw ni(); } + $readCredential(credentialId: string): Thenable { throw ni(); } $deleteCredential(credentialId: string): Thenable { throw ni(); } } @@ -336,21 +336,21 @@ export abstract class ExtHostCredentialManagementShape { * Serialization provider extension host class. */ export abstract class ExtHostSerializationProviderShape { - $saveAs(saveFormat: string, savePath: string, results: string, appendToFile: boolean): Thenable { throw ni(); } + $saveAs(saveFormat: string, savePath: string, results: string, appendToFile: boolean): Thenable { throw ni(); } } export interface MainThreadAccountManagementShape extends IDisposable { - $registerAccountProvider(providerMetadata: data.AccountProviderMetadata, handle: number): Thenable; + $registerAccountProvider(providerMetadata: sqlops.AccountProviderMetadata, handle: number): Thenable; $unregisterAccountProvider(handle: number): Thenable; $beginAutoOAuthDeviceCode(providerId: string, title: string, message: string, userCode: string, uri: string): Thenable; $endAutoOAuthDeviceCode(): void; - $accountUpdated(updatedAccount: data.Account): void; + $accountUpdated(updatedAccount: sqlops.Account): void; } export interface MainThreadResourceProviderShape extends IDisposable { - $registerResourceProvider(providerMetadata: data.ResourceProviderMetadata, handle: number): Thenable; + $registerResourceProvider(providerMetadata: sqlops.ResourceProviderMetadata, handle: number): Thenable; $unregisterResourceProvider(handle: number): Thenable; } @@ -368,23 +368,23 @@ export interface MainThreadDataProtocolShape extends IDisposable { $registerCapabilitiesServiceProvider(providerId: string, handle: number): TPromise; $registerAdminServicesProvider(providerId: string, handle: number): TPromise; $unregisterProvider(handle: number): TPromise; - $onConnectionComplete(handle: number, connectionInfoSummary: data.ConnectionInfoSummary): void; + $onConnectionComplete(handle: number, connectionInfoSummary: sqlops.ConnectionInfoSummary): void; $onIntelliSenseCacheComplete(handle: number, connectionUri: string): void; - $onConnectionChangeNotification(handle: number, changedConnInfo: data.ChangedConnectionInfo): void; - $onQueryComplete(handle: number, result: data.QueryExecuteCompleteNotificationResult): void; - $onBatchStart(handle: number, batchInfo: data.QueryExecuteBatchNotificationParams): void; - $onBatchComplete(handle: number, batchInfo: data.QueryExecuteBatchNotificationParams): void; - $onResultSetComplete(handle: number, resultSetInfo: data.QueryExecuteResultSetCompleteNotificationParams): void; - $onQueryMessage(handle: number, message: data.QueryExecuteMessageParams): void; - $onObjectExplorerSessionCreated(handle: number, message: data.ObjectExplorerSession): void; - $onObjectExplorerNodeExpanded(handle: number, message: data.ObjectExplorerExpandInfo): void; - $onTaskCreated(handle: number, sessionResponse: data.TaskInfo): void; - $onTaskStatusChanged(handle: number, sessionResponse: data.TaskProgressInfo): void; - $onFileBrowserOpened(handle: number, response: data.FileBrowserOpenedParams): void; - $onFolderNodeExpanded(handle: number, response: data.FileBrowserExpandedParams): void; - $onFilePathsValidated(handle: number, response: data.FileBrowserValidatedParams): void; - $onScriptingComplete(handle: number, message: data.ScriptingCompleteResult): void; - $onSessionEventsAvailable(handle: number, response: data.ProfilerSessionEvents): void; + $onConnectionChangeNotification(handle: number, changedConnInfo: sqlops.ChangedConnectionInfo): void; + $onQueryComplete(handle: number, result: sqlops.QueryExecuteCompleteNotificationResult): void; + $onBatchStart(handle: number, batchInfo: sqlops.QueryExecuteBatchNotificationParams): void; + $onBatchComplete(handle: number, batchInfo: sqlops.QueryExecuteBatchNotificationParams): void; + $onResultSetComplete(handle: number, resultSetInfo: sqlops.QueryExecuteResultSetCompleteNotificationParams): void; + $onQueryMessage(handle: number, message: sqlops.QueryExecuteMessageParams): void; + $onObjectExplorerSessionCreated(handle: number, message: sqlops.ObjectExplorerSession): void; + $onObjectExplorerNodeExpanded(handle: number, message: sqlops.ObjectExplorerExpandInfo): void; + $onTaskCreated(handle: number, sessionResponse: sqlops.TaskInfo): void; + $onTaskStatusChanged(handle: number, sessionResponse: sqlops.TaskProgressInfo): void; + $onFileBrowserOpened(handle: number, response: sqlops.FileBrowserOpenedParams): void; + $onFolderNodeExpanded(handle: number, response: sqlops.FileBrowserExpandedParams): void; + $onFilePathsValidated(handle: number, response: sqlops.FileBrowserValidatedParams): void; + $onScriptingComplete(handle: number, message: sqlops.ScriptingCompleteResult): void; + $onSessionEventsAvailable(handle: number, response: sqlops.ProfilerSessionEvents): void; /** * Callback when a session has completed initialization @@ -393,8 +393,8 @@ export interface MainThreadDataProtocolShape extends IDisposable { } export interface MainThreadConnectionManagementShape extends IDisposable { - $getActiveConnections(): Thenable; - $getCurrentConnection(): Thenable; + $getActiveConnections(): Thenable; + $getCurrentConnection(): Thenable; $getCredentials(connectionId: string): Thenable<{ [name: string]: string }>; } @@ -450,10 +450,10 @@ export interface ExtHostModalDialogsShape { } export interface ExtHostDashboardWebviewsShape { - $registerProvider(widgetId: string, handler: (webview: data.DashboardWebview) => void): void; + $registerProvider(widgetId: string, handler: (webview: sqlops.DashboardWebview) => void): void; $onMessage(handle: number, message: any): void; $onClosed(handle: number): void; - $registerWidget(handle: number, id: string, connection: data.connection.Connection, serverInfo: data.ServerInfo): void; + $registerWidget(handle: number, id: string, connection: sqlops.connection.Connection, serverInfo: sqlops.ServerInfo): void; } export interface MainThreadDashboardWebviewShape extends IDisposable { diff --git a/src/sql/workbench/common/actions.ts b/src/sql/workbench/common/actions.ts index 7712c1837e..2ab4dd2c4a 100644 --- a/src/sql/workbench/common/actions.ts +++ b/src/sql/workbench/common/actions.ts @@ -15,7 +15,7 @@ import { IAngularEventingService, AngularEventType } from 'sql/services/angularE import { IInsightsDialogService } from 'sql/parts/insights/common/interfaces'; import { IAdminService } from 'sql/parts/admin/common/adminService'; import * as Constants from 'sql/common/constants'; -import { ObjectMetadata } from 'data'; +import { ObjectMetadata } from 'sqlops'; import { ScriptOperation } from 'sql/workbench/common/taskUtilities'; import { TaskAction } from 'sql/platform/tasks/taskRegistry'; diff --git a/src/sql/workbench/common/taskUtilities.ts b/src/sql/workbench/common/taskUtilities.ts index bb835e9eff..369b20ee2f 100644 --- a/src/sql/workbench/common/taskUtilities.ts +++ b/src/sql/workbench/common/taskUtilities.ts @@ -20,7 +20,7 @@ import { IInsightsConfig } from 'sql/parts/dashboard/widgets/insights/interfaces import { IInsightsDialogService } from 'sql/parts/insights/common/interfaces'; import { ConnectionManagementInfo } from 'sql/parts/connection/common/connectionManagementInfo'; import Severity from 'vs/base/common/severity'; -import data = require('data'); +import * as sqlops from 'sqlops'; import nls = require('vs/nls'); import os = require('os'); import path = require('path'); @@ -134,10 +134,10 @@ export function connectIfNotAlreadyConnected(connectionProfile: IConnectionProfi /** * Select the top rows from an object */ -export function scriptSelect(connectionProfile: IConnectionProfile, metadata: data.ObjectMetadata, connectionService: IConnectionManagementService, queryEditorService: IQueryEditorService, scriptingService: IScriptingService): Promise { +export function scriptSelect(connectionProfile: IConnectionProfile, metadata: sqlops.ObjectMetadata, connectionService: IConnectionManagementService, queryEditorService: IQueryEditorService, scriptingService: IScriptingService): Promise { return new Promise((resolve, reject) => { connectionService.connectIfNotConnected(connectionProfile).then(connectionResult => { - let paramDetails: data.ScriptingParamDetails = getScriptingParamDetails(connectionService, connectionResult, metadata); + let paramDetails: sqlops.ScriptingParamDetails = getScriptingParamDetails(connectionService, connectionResult, metadata); scriptingService.script(connectionResult, metadata, ScriptOperation.Select, paramDetails).then(result => { if (result.script) { queryEditorService.newSqlEditor(result.script).then((owner: IConnectableInput) => { @@ -190,7 +190,7 @@ export function editData(connectionProfile: IConnectionProfile, tableName: strin /** * Script the object as a statement based on the provided action (except Select) */ -export function script(connectionProfile: IConnectionProfile, metadata: data.ObjectMetadata, +export function script(connectionProfile: IConnectionProfile, metadata: sqlops.ObjectMetadata, connectionService: IConnectionManagementService, queryEditorService: IQueryEditorService, scriptingService: IScriptingService, @@ -402,9 +402,9 @@ function getStartPos(script: string, operation: ScriptOperation, typeName: strin } -function getScriptingParamDetails(connectionService: IConnectionManagementService, ownerUri: string, metadata: data.ObjectMetadata): data.ScriptingParamDetails { - let serverInfo: data.ServerInfo = getServerInfo(connectionService, ownerUri); - let paramDetails: data.ScriptingParamDetails = { +function getScriptingParamDetails(connectionService: IConnectionManagementService, ownerUri: string, metadata: sqlops.ObjectMetadata): sqlops.ScriptingParamDetails { + let serverInfo: sqlops.ServerInfo = getServerInfo(connectionService, ownerUri); + let paramDetails: sqlops.ScriptingParamDetails = { filePath: getFilePath(metadata), scriptCompatibilityOption: scriptCompatibilityOptionMap[serverInfo.serverMajorVersion], targetDatabaseEngineEdition: targetDatabaseEngineEditionMap[serverInfo.engineEditionId], @@ -413,7 +413,7 @@ function getScriptingParamDetails(connectionService: IConnectionManagementServic return paramDetails; } -function getFilePath(metadata: data.ObjectMetadata): string { +function getFilePath(metadata: sqlops.ObjectMetadata): string { let schemaName: string = metadata.schema; let objectName: string = metadata.name; let timestamp = Date.now().toString(); @@ -424,7 +424,7 @@ function getFilePath(metadata: data.ObjectMetadata): string { } } -function getServerInfo(connectionService: IConnectionManagementService, ownerUri: string): data.ServerInfo { +function getServerInfo(connectionService: IConnectionManagementService, ownerUri: string): sqlops.ServerInfo { let connection: ConnectionManagementInfo = connectionService.getConnectionInfo(ownerUri); return connection.serverInfo; } \ No newline at end of file diff --git a/src/sqltest/parts/accountManagement/accountActions.test.ts b/src/sqltest/parts/accountManagement/accountActions.test.ts index 4d83e43c1e..10e52b0c86 100644 --- a/src/sqltest/parts/accountManagement/accountActions.test.ts +++ b/src/sqltest/parts/accountManagement/accountActions.test.ts @@ -6,14 +6,14 @@ 'use strict'; import * as assert from 'assert'; -import * as data from 'data'; +import * as sqlops from 'sqlops'; import * as TypeMoq from 'typemoq'; import { AddAccountAction, RemoveAccountAction } from 'sql/parts/accountManagement/common/accountActions'; import { AccountManagementTestService } from 'sqltest/stubs/accountManagementStubs'; import { MessageServiceStub } from 'sqltest/stubs/messageServiceStub'; import { ErrorMessageServiceStub } from 'sqltest/stubs/errorMessageServiceStub'; -let testAccount = { +let testAccount = { key: { providerId: 'azure', accountId: 'testAccount' diff --git a/src/sqltest/parts/accountManagement/accountPickerService.test.ts b/src/sqltest/parts/accountManagement/accountPickerService.test.ts index 72c3f8b6de..7b5df79229 100644 --- a/src/sqltest/parts/accountManagement/accountPickerService.test.ts +++ b/src/sqltest/parts/accountManagement/accountPickerService.test.ts @@ -4,7 +4,7 @@ *--------------------------------------------------------------------------------------------*/ 'use strict'; -import * as data from 'data'; +import * as sqlops from 'sqlops'; import * as assert from 'assert'; import * as TypeMoq from 'typemoq'; import { EventVerifierSingle } from 'sqltest/utils/eventVerifier'; @@ -19,7 +19,7 @@ import { InstantiationService } from 'vs/platform/instantiation/common/instantia let mockAddAccountCompleteEmitter: Emitter; let mockAddAccountErrorEmitter: Emitter; let mockAddAccountStartEmitter: Emitter; -let mockOnAccountSelectionChangeEvent: Emitter; +let mockOnAccountSelectionChangeEvent: Emitter; // TESTS /////////////////////////////////////////////////////////////////// suite('Account picker service tests', () => { @@ -28,7 +28,7 @@ suite('Account picker service tests', () => { mockAddAccountCompleteEmitter = new Emitter(); mockAddAccountErrorEmitter = new Emitter(); mockAddAccountStartEmitter = new Emitter(); - mockOnAccountSelectionChangeEvent = new Emitter(); + mockOnAccountSelectionChangeEvent = new Emitter(); }); test('Construction - Events are properly defined', () => { @@ -76,7 +76,7 @@ suite('Account picker service tests', () => { properties: [], isStale: false }; - let evOnAccountSelectionChangeEvent = new EventVerifierSingle(); + let evOnAccountSelectionChangeEvent = new EventVerifierSingle(); service.onAccountSelectionChangeEvent(evOnAccountSelectionChangeEvent.eventHandler); mockOnAccountSelectionChangeEvent.fire(account); evOnAccountSelectionChangeEvent.assertFired(account); diff --git a/src/sqltest/parts/accountManagement/accountPickerViewModel.test.ts b/src/sqltest/parts/accountManagement/accountPickerViewModel.test.ts index b4268c5e26..90d906fcdc 100644 --- a/src/sqltest/parts/accountManagement/accountPickerViewModel.test.ts +++ b/src/sqltest/parts/accountManagement/accountPickerViewModel.test.ts @@ -4,7 +4,7 @@ *--------------------------------------------------------------------------------------------*/ 'use strict'; -import * as data from 'data'; +import * as sqlops from 'sqlops'; import * as assert from 'assert'; import * as TypeMoq from 'typemoq'; import { EventVerifierSingle } from 'sqltest/utils/eventVerifier'; @@ -16,8 +16,8 @@ import { AccountManagementTestService } from 'sqltest/stubs/accountManagementStu // SUITE STATE ///////////////////////////////////////////////////////////// let mockUpdateAccountEmitter: Emitter; -let providers: data.AccountProviderMetadata[]; -let accounts: data.Account[]; +let providers: sqlops.AccountProviderMetadata[]; +let accounts: sqlops.Account[]; suite('Account picker view model tests', () => { setup(() => { providers = [{ diff --git a/src/sqltest/parts/accountManagement/accountViewModel.test.ts b/src/sqltest/parts/accountManagement/accountViewModel.test.ts index 6b25a797ea..b6406f3b53 100644 --- a/src/sqltest/parts/accountManagement/accountViewModel.test.ts +++ b/src/sqltest/parts/accountManagement/accountViewModel.test.ts @@ -6,7 +6,7 @@ 'use strict'; import * as assert from 'assert'; -import * as data from 'data'; +import * as sqlops from 'sqlops'; import * as TypeMoq from 'typemoq'; import { EventVerifierSingle } from 'sqltest/utils/eventVerifier'; import { Emitter } from 'vs/base/common/event'; @@ -16,11 +16,11 @@ import { AccountManagementTestService } from 'sqltest/stubs/accountManagementStu // SUITE STATE ///////////////////////////////////////////////////////////// let mockAddProviderEmitter: Emitter; -let mockRemoveProviderEmitter: Emitter; +let mockRemoveProviderEmitter: Emitter; let mockUpdateAccountEmitter: Emitter; -let providers: data.AccountProviderMetadata[]; -let accounts: data.Account[]; +let providers: sqlops.AccountProviderMetadata[]; +let accounts: sqlops.Account[]; suite('Account Management Dialog ViewModel Tests', () => { @@ -56,7 +56,7 @@ suite('Account Management Dialog ViewModel Tests', () => { // Setup event mocks for the account management service mockAddProviderEmitter = new Emitter(); - mockRemoveProviderEmitter = new Emitter(); + mockRemoveProviderEmitter = new Emitter(); mockUpdateAccountEmitter = new Emitter(); }); @@ -79,7 +79,7 @@ suite('Account Management Dialog ViewModel Tests', () => { evAddProvider.assertFired(argAddProvider); let argRemoveProvider = providers[0]; - let evRemoveProvider = new EventVerifierSingle(); + let evRemoveProvider = new EventVerifierSingle(); vm.removeProviderEvent(evRemoveProvider.eventHandler); mockRemoveProviderEmitter.fire(argRemoveProvider); evRemoveProvider.assertFired(argRemoveProvider); @@ -95,7 +95,7 @@ suite('Account Management Dialog ViewModel Tests', () => { // Setup: Create a viewmodel with event handlers let mockAccountManagementService = getMockAccountManagementService(true, true); let evAddProvider = new EventVerifierSingle(); - let evRemoveProvider = new EventVerifierSingle(); + let evRemoveProvider = new EventVerifierSingle(); let evUpdateAccounts = new EventVerifierSingle(); let vm = getViewModel(mockAccountManagementService.object, evAddProvider, evRemoveProvider, evUpdateAccounts); @@ -125,7 +125,7 @@ suite('Account Management Dialog ViewModel Tests', () => { // Setup: Create a mock account management service that rejects looking up providers let mockAccountManagementService = getMockAccountManagementService(false, true); let evAddProvider = new EventVerifierSingle(); - let evRemoveProvider = new EventVerifierSingle(); + let evRemoveProvider = new EventVerifierSingle(); let evUpdateAccounts = new EventVerifierSingle(); let vm = getViewModel(mockAccountManagementService.object, evAddProvider, evRemoveProvider, evUpdateAccounts); @@ -154,7 +154,7 @@ suite('Account Management Dialog ViewModel Tests', () => { // Setup: Create a mock account management service that rejects the promise let mockAccountManagementService = getMockAccountManagementService(true, false); let evAddProvider = new EventVerifierSingle(); - let evRemoveProvider = new EventVerifierSingle(); + let evRemoveProvider = new EventVerifierSingle(); let evUpdateAccounts = new EventVerifierSingle(); let vm = getViewModel(mockAccountManagementService.object, evAddProvider, evRemoveProvider, evUpdateAccounts); @@ -202,7 +202,7 @@ function getMockAccountManagementService(resolveProviders: boolean, resolveAccou function getViewModel( ams: AccountManagementTestService, evAdd: EventVerifierSingle, - evRemove: EventVerifierSingle, + evRemove: EventVerifierSingle, evUpdate: EventVerifierSingle ): AccountViewModel { let vm = new AccountViewModel(ams); @@ -215,7 +215,7 @@ function getViewModel( function assertNoEventsFired( evAdd: EventVerifierSingle, - evRemove: EventVerifierSingle, + evRemove: EventVerifierSingle, evUpdate: EventVerifierSingle ): void { evAdd.assertNotFired(); diff --git a/src/sqltest/parts/accountManagement/firewallRuleDialogController.test.ts b/src/sqltest/parts/accountManagement/firewallRuleDialogController.test.ts index 5e06396bbb..1791005eec 100644 --- a/src/sqltest/parts/accountManagement/firewallRuleDialogController.test.ts +++ b/src/sqltest/parts/accountManagement/firewallRuleDialogController.test.ts @@ -4,7 +4,7 @@ *--------------------------------------------------------------------------------------------*/ 'use strict'; -import * as data from 'data'; +import * as sqlops from 'sqlops'; import * as TypeMoq from 'typemoq'; import { Emitter } from 'vs/base/common/event'; import { IConnectionProfile } from 'sql/parts/connection/common/interfaces'; @@ -21,7 +21,7 @@ import { Deferred } from 'sql/base/common/promise'; // TESTS /////////////////////////////////////////////////////////////////// suite('Firewall rule dialog controller tests', () => { let connectionProfile: IConnectionProfile; - let account: data.Account; + let account: sqlops.Account; let IPAddress = '250.222.155.198'; let mockOnAddAccountErrorEvent: Emitter; let mockOnCreateFirewallRule: Emitter; @@ -236,7 +236,7 @@ function getMockAccountManagementService(resolveSecurityToken: boolean): TypeMoq return mockAccountManagementService; } -function getMockResourceProvider(resolveCreateFirewallRule: boolean, response?: data.CreateFirewallRuleResponse): TypeMoq.Mock { +function getMockResourceProvider(resolveCreateFirewallRule: boolean, response?: sqlops.CreateFirewallRuleResponse): TypeMoq.Mock { let resourceProviderStub = new ResourceProviderStub(); let mockResourceProvider = TypeMoq.Mock.ofInstance(resourceProviderStub); mockResourceProvider.setup(x => x.createFirewallRule(TypeMoq.It.isAny(), TypeMoq.It.isAny(), TypeMoq.It.isAny())) diff --git a/src/sqltest/parts/admin/adminService.test.ts b/src/sqltest/parts/admin/adminService.test.ts index 9145b456e7..a293038eea 100644 --- a/src/sqltest/parts/admin/adminService.test.ts +++ b/src/sqltest/parts/admin/adminService.test.ts @@ -6,7 +6,7 @@ 'use strict'; import * as assert from 'assert'; -import data = require('data'); +import * as sqlops from 'sqlops'; import * as TypeMoq from 'typemoq'; import { AdminService } from 'sql/parts/admin/common/adminService'; diff --git a/src/sqltest/parts/common/optionsDialogHelper.test.ts b/src/sqltest/parts/common/optionsDialogHelper.test.ts index 2bcf763e3a..7fdc54e6bb 100644 --- a/src/sqltest/parts/common/optionsDialogHelper.test.ts +++ b/src/sqltest/parts/common/optionsDialogHelper.test.ts @@ -6,7 +6,7 @@ 'use strict'; import * as OptionsDialogHelper from 'sql/base/browser/ui/modal/optionsDialogHelper'; import { InputBox } from 'vs/base/browser/ui/inputbox/inputBox'; -import data = require('data'); +import * as sqlops from 'sqlops'; import { Builder, $ } from 'vs/base/browser/builder'; import * as TypeMoq from 'typemoq'; import * as assert from 'assert'; @@ -15,11 +15,11 @@ import { ServiceOptionType } from 'sql/workbench/api/common/sqlExtHostTypes'; suite('Advanced options helper tests', () => { var possibleInputs: string[]; let options: { [name: string]: any }; - var categoryOption: data.ServiceOption; - var booleanOption: data.ServiceOption; - var numberOption: data.ServiceOption; - var stringOption: data.ServiceOption; - var defaultGroupOption: data.ServiceOption; + var categoryOption: sqlops.ServiceOption; + var booleanOption: sqlops.ServiceOption; + var numberOption: sqlops.ServiceOption; + var stringOption: sqlops.ServiceOption; + var defaultGroupOption: sqlops.ServiceOption; var isValid: boolean; var inputValue: string; var inputBox: TypeMoq.Mock; diff --git a/src/sqltest/parts/connection/advancedPropertiesDialog.test.ts b/src/sqltest/parts/connection/advancedPropertiesDialog.test.ts index 0024e32497..2e1cf07b63 100644 --- a/src/sqltest/parts/connection/advancedPropertiesDialog.test.ts +++ b/src/sqltest/parts/connection/advancedPropertiesDialog.test.ts @@ -8,13 +8,13 @@ import { OptionsDialog } from 'sql/base/browser/ui/modal/optionsDialog'; import { AdvancedPropertiesController } from 'sql/parts/connection/connectionDialog/advancedPropertiesController'; import { Builder, $ } from 'vs/base/browser/builder'; import { ContextKeyServiceStub } from 'sqltest/stubs/contextKeyServiceStub'; -import * as data from 'data'; +import * as sqlops from 'sqlops'; import * as TypeMoq from 'typemoq'; import * as assert from 'assert'; suite('Advanced properties dialog tests', () => { var advancedController: AdvancedPropertiesController; - var providerOptions: data.ConnectionOption[]; + var providerOptions: sqlops.ConnectionOption[]; setup(() => { advancedController = new AdvancedPropertiesController(() => { }, null); diff --git a/src/sqltest/parts/connection/connectionConfig.test.ts b/src/sqltest/parts/connection/connectionConfig.test.ts index 82d68d655c..4f00287202 100644 --- a/src/sqltest/parts/connection/connectionConfig.test.ts +++ b/src/sqltest/parts/connection/connectionConfig.test.ts @@ -18,80 +18,23 @@ import { IConnectionProfileGroup, ConnectionProfileGroup } from 'sql/parts/conne import { TPromise } from 'vs/base/common/winjs.base'; import * as assert from 'assert'; import { CapabilitiesService } from 'sql/services/capabilities/capabilitiesService'; -import data = require('data'); +import * as sqlops from 'sqlops'; import { Emitter } from 'vs/base/common/event'; suite('SQL ConnectionConfig tests', () => { -/* - let capabilitiesService: TypeMoq.Mock; - let workspaceConfigurationServiceMock: TypeMoq.Mock; - let configEditingServiceMock: TypeMoq.Mock; - let msSQLCapabilities: data.DataProtocolServerCapabilities; - let capabilities: data.DataProtocolServerCapabilities[]; - let onProviderRegistered = new Emitter(); - - let configValueToConcat: TConfigurationValue = { - workspace: [{ - name: 'g1', - id: 'g1', - parentId: 'ROOT', - color: 'pink', - description: 'g1' - }, - { - name: 'g1-1', - id: 'g1-1', - parentId: 'g1', - color: 'blue', - description: 'g1-1' - } - ], - user: [{ - name: 'ROOT', - id: 'ROOT', - parentId: '', - color: 'white', - description: 'ROOT' - }, { - name: 'g2', - id: 'g2', - parentId: 'ROOT', - color: 'green', - description: 'g2' - }, - { - name: 'g2-1', - id: 'g2-1', - parentId: 'g2', - color: 'yellow', - description: 'g2' - }, - { - name: 'g3', - id: 'g3', - parentId: '', - color: 'orange', - description: 'g3' - }, - { - name: 'g3-1', - id: 'g3-1', - parentId: 'g3', - color: 'purple', - description: 'g3-1' - } - ], - value: [], - default: [], - folder: [] - }; - - let configValueToMerge: TConfigurationValue = { - workspace: [ - { + /* + let capabilitiesService: TypeMoq.Mock; + let workspaceConfigurationServiceMock: TypeMoq.Mock; + let configEditingServiceMock: TypeMoq.Mock; + let msSQLCapabilities: sqlops.DataProtocolServerCapabilities; + let capabilities: sqlops.DataProtocolServerCapabilities[]; + let onProviderRegistered = new Emitter(); + + let configValueToConcat: TConfigurationValue = { + workspace: [{ name: 'g1', id: 'g1', - parentId: '', + parentId: 'ROOT', color: 'pink', description: 'g1' }, @@ -102,12 +45,17 @@ suite('SQL ConnectionConfig tests', () => { color: 'blue', description: 'g1-1' } - ], - user: [ - { + ], + user: [{ + name: 'ROOT', + id: 'ROOT', + parentId: '', + color: 'white', + description: 'ROOT' + }, { name: 'g2', id: 'g2', - parentId: '', + parentId: 'ROOT', color: 'green', description: 'g2' }, @@ -119,815 +67,867 @@ suite('SQL ConnectionConfig tests', () => { description: 'g2' }, { - name: 'g1', - id: 'g1', + name: 'g3', + id: 'g3', parentId: '', - color: 'pink', - description: 'g1' + color: 'orange', + description: 'g3' }, { - name: 'g1-2', - id: 'g1-2', - parentId: 'g1', - color: 'silver', - description: 'g1-2' - }], - value: [], - default: [], - folder: [] - }; - - let connections: TConfigurationValue = { - workspace: [{ - options: { - serverName: 'server1', - databaseName: 'database', - userName: 'user', - password: 'password', - authenticationType: '' - }, - providerName: 'MSSQL', - groupId: 'test', - savePassword: true, - id: 'server1' + name: 'g3-1', + id: 'g3-1', + parentId: 'g3', + color: 'purple', + description: 'g3-1' + } + ], + value: [], + default: [], + folder: [] + }; + + let configValueToMerge: TConfigurationValue = { + workspace: [ + { + name: 'g1', + id: 'g1', + parentId: '', + color: 'pink', + description: 'g1' + }, + { + name: 'g1-1', + id: 'g1-1', + parentId: 'g1', + color: 'blue', + description: 'g1-1' + } + ], + user: [ + { + name: 'g2', + id: 'g2', + parentId: '', + color: 'green', + description: 'g2' + }, + { + name: 'g2-1', + id: 'g2-1', + parentId: 'g2', + color: 'yellow', + description: 'g2' + }, + { + name: 'g1', + id: 'g1', + parentId: '', + color: 'pink', + description: 'g1' + }, + { + name: 'g1-2', + id: 'g1-2', + parentId: 'g1', + color: 'silver', + description: 'g1-2' + }], + value: [], + default: [], + folder: [] + }; + + let connections: TConfigurationValue = { + workspace: [{ + options: { + serverName: 'server1', + databaseName: 'database', + userName: 'user', + password: 'password', + authenticationType: '' + }, + providerName: 'MSSQL', + groupId: 'test', + savePassword: true, + id: 'server1' + } + + + ], + user: [{ + options: { + serverName: 'server2', + databaseName: 'database', + userName: 'user', + password: 'password', + authenticationType: '' + }, + providerName: 'MSSQL', + groupId: 'test', + savePassword: true, + id: 'server2' + }, { + options: { + serverName: 'server3', + databaseName: 'database', + userName: 'user', + password: 'password', + authenticationType: '' + }, + providerName: 'MSSQL', + groupId: 'g3', + savePassword: true, + id: 'server3' + } + ], + value: [], + default: [], + folder: [] + }; + setup(() => { + capabilitiesService = TypeMoq.Mock.ofType(CapabilitiesService); + capabilities = []; + let connectionProvider: sqlops.ConnectionProviderOptions = { + options: [ + { + name: 'serverName', + displayName: undefined, + description: undefined, + groupName: undefined, + categoryValues: undefined, + defaultValue: undefined, + isIdentity: true, + isRequired: true, + specialValueType: 0, + valueType: 0 + }, + { + name: 'databaseName', + displayName: undefined, + description: undefined, + groupName: undefined, + categoryValues: undefined, + defaultValue: undefined, + isIdentity: true, + isRequired: true, + specialValueType: 1, + valueType: 0 + }, + { + name: 'userName', + displayName: undefined, + description: undefined, + groupName: undefined, + categoryValues: undefined, + defaultValue: undefined, + isIdentity: true, + isRequired: true, + specialValueType: 3, + valueType: 0 + }, + { + name: 'authenticationType', + displayName: undefined, + description: undefined, + groupName: undefined, + categoryValues: undefined, + defaultValue: undefined, + isIdentity: true, + isRequired: true, + specialValueType: 2, + valueType: 0 + }, + { + name: 'password', + displayName: undefined, + description: undefined, + groupName: undefined, + categoryValues: undefined, + defaultValue: undefined, + isIdentity: true, + isRequired: true, + specialValueType: 4, + valueType: 0 + } + ] + }; + msSQLCapabilities = { + protocolVersion: '1', + providerName: 'MSSQL', + providerDisplayName: 'MSSQL', + connectionProvider: connectionProvider, + adminServicesProvider: undefined, + features: undefined + }; + capabilities.push(msSQLCapabilities); + + capabilitiesService.setup(x => x.getCapabilities()).returns(() => capabilities); + capabilitiesService.setup(x => x.onProviderRegisteredEvent).returns(() => onProviderRegistered.event); + + workspaceConfigurationServiceMock = TypeMoq.Mock.ofType(WorkspaceConfigurationTestService); + workspaceConfigurationServiceMock.setup(x => x.reloadConfiguration()) + .returns(() => TPromise.as<{}>({})); + + configEditingServiceMock = TypeMoq.Mock.ofType(ConfigurationEditingService); + let nothing: void; + configEditingServiceMock.setup(x => x.writeConfiguration(ConfigurationTarget.USER, TypeMoq.It.isAny())).returns(() => TPromise.as(nothing)); + configEditingServiceMock.setup(x => x.writeConfiguration(ConfigurationTarget.WORKSPACE, TypeMoq.It.isAny())).returns(() => TPromise.as(nothing)); + }); + + function groupsAreEqual(groups1: IConnectionProfileGroup[], groups2: IConnectionProfileGroup[]): Boolean { + if (!groups1 && !groups2) { + return true; + } else if ((!groups1 && groups2 && groups2.length === 0) || (!groups2 && groups1 && groups1.length === 0)) { + return true; + } + + if (groups1.length !== groups2.length) { + return false; + } + + let areEqual = true; + + groups1.map(g1 => { + if (areEqual) { + let g2 = groups2.find(g => g.name === g1.name); + if (!g2) { + areEqual = false; + } else { + let result = groupsAreEqual(groups1.filter(a => a.parentId === g1.id), groups2.filter(b => b.parentId === g2.id)); + if (result === false) { + areEqual = false; + } + } + } + }); + + return areEqual; } - - - ], - user: [{ - options: { - serverName: 'server2', + + test('allGroups should return groups from user and workspace settings', () => { + workspaceConfigurationServiceMock.setup(x => x.lookup( + Constants.connectionGroupsArrayName)) + .returns(() => configValueToConcat); + + let config = new ConnectionConfig(configEditingServiceMock.object, workspaceConfigurationServiceMock.object, capabilitiesService.object); + let allGroups = config.getAllGroups(); + + + assert.notEqual(allGroups, undefined); + assert.equal(allGroups.length, configValueToConcat.workspace.length + configValueToConcat.user.length); + }); + + test('allGroups should merge groups from user and workspace settings', () => { + let expectedAllGroups: IConnectionProfileGroup[] = [ + { + name: 'g1', + id: 'g1', + parentId: '', + color: 'pink', + description: 'g1' + }, + { + name: 'g1-1', + id: 'g1-1', + parentId: 'g1', + color: 'blue', + description: 'g1-1' + }, + { + name: 'g2', + id: 'g2', + parentId: '', + color: 'yellow', + description: 'g2' + }, + { + name: 'g2-1', + id: 'g2-1', + parentId: 'g2', + color: 'red', + description: 'g2' + }, + { + name: 'g1-2', + id: 'g1-2', + parentId: 'g1', + color: 'green', + description: 'g1-2' + }]; + + workspaceConfigurationServiceMock.setup(x => x.lookup( + Constants.connectionGroupsArrayName)) + .returns(() => configValueToMerge); + + let config = new ConnectionConfig(configEditingServiceMock.object, workspaceConfigurationServiceMock.object, capabilitiesService.object); + let allGroups = config.getAllGroups(); + + + assert.notEqual(allGroups, undefined); + assert.equal(groupsAreEqual(allGroups, expectedAllGroups), true); + }); + + test('addConnection should add the new profile to user settings if does not exist', done => { + let newProfile: IConnectionProfile = { + serverName: 'new server', databaseName: 'database', userName: 'user', password: 'password', - authenticationType: '' - }, - providerName: 'MSSQL', - groupId: 'test', - savePassword: true, - id: 'server2' - }, { - options: { + authenticationType: '', + savePassword: true, + groupFullName: undefined, + groupId: undefined, + getOptionsKey: undefined, + matches: undefined, + providerName: 'MSSQL', + options: {}, + saveProfile: true, + id: undefined + }; + + let expectedNumberOfConnections = connections.user.length + 1; + + workspaceConfigurationServiceMock.setup(x => x.lookup( + Constants.connectionsArrayName)) + .returns(() => connections); + workspaceConfigurationServiceMock.setup(x => x.lookup( + Constants.connectionGroupsArrayName)) + .returns(() => configValueToConcat); + + let connectionProfile = new ConnectionProfile(msSQLCapabilities, newProfile); + connectionProfile.options['databaseDisplayName'] = 'database'; + let config = new ConnectionConfig(configEditingServiceMock.object, workspaceConfigurationServiceMock.object, capabilitiesService.object); + config.addConnection(connectionProfile).then(savedConnectionProfile => { + configEditingServiceMock.verify(y => y.writeConfiguration(ConfigurationTarget.USER, + TypeMoq.It.is(c => (c.value as IConnectionProfileStore[]).length === expectedNumberOfConnections)), TypeMoq.Times.once()); + assert.notEqual(savedConnectionProfile.id, undefined); + done(); + }).catch(error => { + assert.fail(); + done(); + }); + }); + + test('addConnection should not add the new profile to user settings if already exists', done => { + let profileFromConfig = connections.user[0]; + let newProfile: IConnectionProfile = { + serverName: profileFromConfig.options['serverName'], + databaseName: profileFromConfig.options['databaseName'], + userName: profileFromConfig.options['userName'], + password: profileFromConfig.options['password'], + authenticationType: profileFromConfig.options['authenticationType'], + groupId: profileFromConfig.groupId, + savePassword: true, + groupFullName: undefined, + getOptionsKey: undefined, + matches: undefined, + providerName: 'MSSQL', + options: {}, + saveProfile: true, + id: undefined + }; + + let expectedNumberOfConnections = connections.user.length; + + workspaceConfigurationServiceMock.setup(x => x.lookup( + Constants.connectionsArrayName)) + .returns(() => connections); + workspaceConfigurationServiceMock.setup(x => x.lookup( + Constants.connectionGroupsArrayName)) + .returns(() => configValueToConcat); + + let connectionProfile = new ConnectionProfile(msSQLCapabilities, newProfile); + connectionProfile.options['databaseDisplayName'] = profileFromConfig.options['databaseName']; + + let config = new ConnectionConfig(configEditingServiceMock.object, workspaceConfigurationServiceMock.object, capabilitiesService.object); + config.addConnection(connectionProfile).then(savedConnectionProfile => { + configEditingServiceMock.verify(y => y.writeConfiguration(ConfigurationTarget.USER, + TypeMoq.It.is(c => (c.value as IConnectionProfileStore[]).length === expectedNumberOfConnections)), TypeMoq.Times.once()); + assert.equal(savedConnectionProfile.id, profileFromConfig.id); + done(); + }).catch(error => { + assert.fail(); + done(); + }); + }); + + test('addConnection should add the new group to user settings if does not exist', done => { + let newProfile: IConnectionProfile = { + serverName: 'new server', + databaseName: 'database', + userName: 'user', + password: 'password', + authenticationType: '', + savePassword: true, + groupFullName: 'g2/g2-2', + groupId: undefined, + getOptionsKey: undefined, + matches: undefined, + providerName: 'MSSQL', + options: {}, + saveProfile: true, + id: undefined + }; + + let expectedNumberOfConnections = connections.user.length + 1; + let expectedNumberOfGroups = configValueToConcat.user.length + 1; + + workspaceConfigurationServiceMock.setup(x => x.lookup( + Constants.connectionsArrayName)) + .returns(() => connections); + + workspaceConfigurationServiceMock.setup(x => x.lookup( + Constants.connectionGroupsArrayName)) + .returns(() => configValueToConcat); + + let connectionProfile = new ConnectionProfile(msSQLCapabilities, newProfile); + let config = new ConnectionConfig(configEditingServiceMock.object, workspaceConfigurationServiceMock.object, capabilitiesService.object); + config.addConnection(connectionProfile).then(success => { + configEditingServiceMock.verify(y => y.writeConfiguration(ConfigurationTarget.USER, + TypeMoq.It.is(c => (c.value as IConnectionProfileStore[]).length === expectedNumberOfConnections)), TypeMoq.Times.once()); + configEditingServiceMock.verify(y => y.writeConfiguration(ConfigurationTarget.USER, + TypeMoq.It.is(c => (c.value as IConnectionProfileGroup[]).length === expectedNumberOfGroups)), TypeMoq.Times.once()); + done(); + }).catch(error => { + assert.fail(); + done(); + }); + }); + + test('getConnections should return connections from user and workspace settings given getWorkspaceConnections set to true', () => { + let getWorkspaceConnections: boolean = true; + + workspaceConfigurationServiceMock.setup(x => x.lookup( + Constants.connectionsArrayName)) + .returns(() => connections); + + let config = new ConnectionConfig(configEditingServiceMock.object, workspaceConfigurationServiceMock.object, capabilitiesService.object); + let allConnections = config.getConnections(getWorkspaceConnections); + assert.equal(allConnections.length, connections.user.length + connections.workspace.length); + }); + + test('getConnections should return connections from user settings given getWorkspaceConnections set to false', () => { + let getWorkspaceConnections: boolean = false; + + workspaceConfigurationServiceMock.setup(x => x.lookup( + Constants.connectionsArrayName)) + .returns(() => connections); + + let config = new ConnectionConfig(configEditingServiceMock.object, workspaceConfigurationServiceMock.object, capabilitiesService.object); + let allConnections = config.getConnections(getWorkspaceConnections); + assert.equal(allConnections.length, connections.user.length); + }); + + test('getConnections should return connections with a valid id', () => { + let getWorkspaceConnections: boolean = false; + let connectionsWithNoId: TConfigurationValue = { + user: connections.user.map(c => { + c.id = undefined; + return c; + }), + default: connections.default, + workspace: connections.workspace.map(c => { + c.id = c.options['serverName']; + return c; + }), + value: connections.value, + folder: [] + }; + workspaceConfigurationServiceMock.setup(x => x.lookup( + Constants.connectionsArrayName)) + .returns(() => connectionsWithNoId); + + let config = new ConnectionConfig(configEditingServiceMock.object, workspaceConfigurationServiceMock.object, capabilitiesService.object); + let allConnections = config.getConnections(getWorkspaceConnections); + assert.equal(allConnections.length, connections.user.length); + allConnections.forEach(connection => { + let userConnection = connectionsWithNoId.user.find(u => u.options['serverName'] === connection.serverName); + if (userConnection !== undefined) { + assert.notEqual(connection.id, connection.getOptionsKey()); + assert.notEqual(connection.id, undefined); + } else { + let workspaceConnection = connectionsWithNoId.workspace.find(u => u.options['serverName'] === connection.serverName); + assert.notEqual(connection.id, connection.getOptionsKey()); + assert.equal(workspaceConnection.id, connection.id); + } + }); + }); + + test('getConnections update the capabilities in each profile when the provider capabilities is registered', () => { + let oldOptionName: string = 'oldOptionName'; + let optionsMetadataFromConfig = capabilities[0].connectionProvider.options.concat({ + name: oldOptionName, + displayName: undefined, + description: undefined, + groupName: undefined, + categoryValues: undefined, + defaultValue: undefined, + isIdentity: true, + isRequired: true, + specialValueType: 0, + valueType: 0 + }); + + let capabilitiesFromConfig: sqlops.DataProtocolServerCapabilities[] = []; + let connectionProvider: sqlops.ConnectionProviderOptions = { + options: optionsMetadataFromConfig + }; + let msSQLCapabilities2 = { + protocolVersion: '1', + providerName: 'MSSQL', + providerDisplayName: 'MSSQL', + connectionProvider: connectionProvider, + adminServicesProvider: undefined, + features: undefined + }; + capabilitiesFromConfig.push(msSQLCapabilities2); + let connectionUsingOldMetadata = connections.user.map(c => { + c.options[oldOptionName] = 'oldOptionValue'; + return c; + }); + let configValue = Object.assign({}, connections, { user: connectionUsingOldMetadata }); + let capabilitiesService2: TypeMoq.Mock = TypeMoq.Mock.ofType(CapabilitiesService); + capabilitiesService2.setup(x => x.getCapabilities()).returns(() => []); + capabilitiesService2.setup(x => x.onProviderRegisteredEvent).returns(() => onProviderRegistered.event); + workspaceConfigurationServiceMock.setup(x => x.lookup( + Constants.connectionsArrayName)) + .returns(() => configValue); + + let config = new ConnectionConfig(configEditingServiceMock.object, workspaceConfigurationServiceMock.object, capabilitiesService2.object, capabilitiesFromConfig); + let allConnections = config.getConnections(false); + allConnections.forEach(element => { + assert.notEqual(element.serverName, undefined); + assert.notEqual(element.getOptionsKey().indexOf('oldOptionValue|'), -1); + }); + + onProviderRegistered.fire(msSQLCapabilities); + allConnections.forEach(element => { + assert.notEqual(element.serverName, undefined); + assert.equal(element.getOptionsKey().indexOf('oldOptionValue|'), -1); + }); + }); + + test('saveGroup should save the new groups to tree and return the id of the last group name', () => { + let config = new ConnectionConfig(undefined, undefined, undefined, undefined); + let groups: IConnectionProfileGroup[] = configValueToConcat.user; + let expectedLength = configValueToConcat.user.length + 2; + let newGroups: string = 'ROOT/g1/g1-1'; + let color: string = 'red'; + + let result: ISaveGroupResult = config.saveGroup(groups, newGroups, color, newGroups); + assert.notEqual(result, undefined); + assert.equal(result.groups.length, expectedLength, 'The result groups length is invalid'); + let newGroup = result.groups.find(g => g.name === 'g1-1'); + assert.equal(result.newGroupId, newGroup.id, 'The groups id is invalid'); + }); + + test('saveGroup should only add the groups that are not in the tree', () => { + let config = new ConnectionConfig(undefined, undefined, undefined, undefined); + let groups: IConnectionProfileGroup[] = configValueToConcat.user; + let expectedLength = configValueToConcat.user.length + 1; + let newGroups: string = 'ROOT/g2/g2-5'; + let color: string = 'red'; + + let result: ISaveGroupResult = config.saveGroup(groups, newGroups, color, newGroups); + assert.notEqual(result, undefined); + assert.equal(result.groups.length, expectedLength, 'The result groups length is invalid'); + let newGroup = result.groups.find(g => g.name === 'g2-5'); + assert.equal(result.newGroupId, newGroup.id, 'The groups id is invalid'); + }); + + test('saveGroup should not add any new group if tree already has all the groups in the full path', () => { + let config = new ConnectionConfig(undefined, undefined, undefined, undefined); + let groups: IConnectionProfileGroup[] = configValueToConcat.user; + let expectedLength = configValueToConcat.user.length; + let newGroups: string = 'ROOT/g2/g2-1'; + let color: string = 'red'; + + let result: ISaveGroupResult = config.saveGroup(groups, newGroups, color, newGroups); + assert.notEqual(result, undefined); + assert.equal(result.groups.length, expectedLength, 'The result groups length is invalid'); + let newGroup = result.groups.find(g => g.name === 'g2-1'); + assert.equal(result.newGroupId, newGroup.id, 'The groups id is invalid'); + }); + + test('deleteConnection should remove the connection from config', done => { + let newProfile: IConnectionProfile = { serverName: 'server3', databaseName: 'database', userName: 'user', password: 'password', - authenticationType: '' - }, - providerName: 'MSSQL', - groupId: 'g3', - savePassword: true, - id: 'server3' - } - ], - value: [], - default: [], - folder: [] - }; - setup(() => { - capabilitiesService = TypeMoq.Mock.ofType(CapabilitiesService); - capabilities = []; - let connectionProvider: data.ConnectionProviderOptions = { - options: [ - { - name: 'serverName', - displayName: undefined, - description: undefined, - groupName: undefined, - categoryValues: undefined, - defaultValue: undefined, - isIdentity: true, - isRequired: true, - specialValueType: 0, - valueType: 0 - }, - { - name: 'databaseName', - displayName: undefined, - description: undefined, - groupName: undefined, - categoryValues: undefined, - defaultValue: undefined, - isIdentity: true, - isRequired: true, - specialValueType: 1, - valueType: 0 - }, - { - name: 'userName', - displayName: undefined, - description: undefined, - groupName: undefined, - categoryValues: undefined, - defaultValue: undefined, - isIdentity: true, - isRequired: true, - specialValueType: 3, - valueType: 0 - }, - { - name: 'authenticationType', - displayName: undefined, - description: undefined, - groupName: undefined, - categoryValues: undefined, - defaultValue: undefined, - isIdentity: true, - isRequired: true, - specialValueType: 2, - valueType: 0 - }, - { - name: 'password', - displayName: undefined, - description: undefined, - groupName: undefined, - categoryValues: undefined, - defaultValue: undefined, - isIdentity: true, - isRequired: true, - specialValueType: 4, - valueType: 0 - } - ] - }; - msSQLCapabilities = { - protocolVersion: '1', - providerName: 'MSSQL', - providerDisplayName: 'MSSQL', - connectionProvider: connectionProvider, - adminServicesProvider: undefined, - features: undefined - }; - capabilities.push(msSQLCapabilities); - - capabilitiesService.setup(x => x.getCapabilities()).returns(() => capabilities); - capabilitiesService.setup(x => x.onProviderRegisteredEvent).returns(() => onProviderRegistered.event); - - workspaceConfigurationServiceMock = TypeMoq.Mock.ofType(WorkspaceConfigurationTestService); - workspaceConfigurationServiceMock.setup(x => x.reloadConfiguration()) - .returns(() => TPromise.as<{}>({})); - - configEditingServiceMock = TypeMoq.Mock.ofType(ConfigurationEditingService); - let nothing: void; - configEditingServiceMock.setup(x => x.writeConfiguration(ConfigurationTarget.USER, TypeMoq.It.isAny())).returns(() => TPromise.as(nothing)); - configEditingServiceMock.setup(x => x.writeConfiguration(ConfigurationTarget.WORKSPACE, TypeMoq.It.isAny())).returns(() => TPromise.as(nothing)); - }); - - function groupsAreEqual(groups1: IConnectionProfileGroup[], groups2: IConnectionProfileGroup[]): Boolean { - if (!groups1 && !groups2) { - return true; - } else if ((!groups1 && groups2 && groups2.length === 0) || (!groups2 && groups1 && groups1.length === 0)) { - return true; - } - - if (groups1.length !== groups2.length) { - return false; - } - - let areEqual = true; - - groups1.map(g1 => { - if (areEqual) { - let g2 = groups2.find(g => g.name === g1.name); - if (!g2) { - areEqual = false; - } else { - let result = groupsAreEqual(groups1.filter(a => a.parentId === g1.id), groups2.filter(b => b.parentId === g2.id)); - if (result === false) { - areEqual = false; + authenticationType: '', + savePassword: true, + groupFullName: 'g3', + groupId: 'g3', + getOptionsKey: undefined, + matches: undefined, + providerName: 'MSSQL', + options: {}, + saveProfile: true, + id: undefined + }; + + let expectedNumberOfConnections = connections.user.length - 1; + workspaceConfigurationServiceMock.setup(x => x.lookup( + Constants.connectionsArrayName)) + .returns(() => connections); + + let connectionProfile = new ConnectionProfile(msSQLCapabilities, newProfile); + connectionProfile.options['databaseDisplayName'] = 'database'; + + let config = new ConnectionConfig(configEditingServiceMock.object, workspaceConfigurationServiceMock.object, capabilitiesService.object); + config.deleteConnection(connectionProfile).then(() => { + configEditingServiceMock.verify(y => y.writeConfiguration(ConfigurationTarget.USER, + TypeMoq.It.is(c => (c.value as IConnectionProfileStore[]).length === expectedNumberOfConnections)), TypeMoq.Times.once()); + done(); + }).catch(error => { + assert.fail(); + done(); + }); + }); + + test('deleteConnectionGroup should remove the children connections and subgroups from config', done => { + let newProfile: IConnectionProfile = { + serverName: 'server3', + databaseName: 'database', + userName: 'user', + password: 'password', + authenticationType: '', + savePassword: true, + groupFullName: 'g3', + groupId: 'g3', + getOptionsKey: undefined, + matches: undefined, + providerName: 'MSSQL', + options: {}, + saveProfile: true, + id: undefined + }; + let connectionProfile = new ConnectionProfile(msSQLCapabilities, newProfile); + connectionProfile.options['databaseDisplayName'] = 'database'; + + let connectionProfileGroup = new ConnectionProfileGroup('g3', undefined, 'g3', undefined, undefined); + let childGroup = new ConnectionProfileGroup('g3-1', connectionProfileGroup, 'g3-1', undefined, undefined); + connectionProfileGroup.addGroups([childGroup]); + connectionProfileGroup.addConnections([connectionProfile]); + + let expectedNumberOfConnections = connections.user.length - 1; + let expectedNumberOfGroups = configValueToConcat.user.length - 2; + workspaceConfigurationServiceMock.setup(x => x.lookup( + Constants.connectionsArrayName)) + .returns(() => connections); + + workspaceConfigurationServiceMock.setup(x => x.lookup( + Constants.connectionGroupsArrayName)) + .returns(() => configValueToConcat); + + + let config = new ConnectionConfig(configEditingServiceMock.object, workspaceConfigurationServiceMock.object, capabilitiesService.object); + config.deleteGroup(connectionProfileGroup).then(() => { + configEditingServiceMock.verify(y => y.writeConfiguration(ConfigurationTarget.USER, + TypeMoq.It.is(c => (c.value as IConnectionProfileStore[]).length === expectedNumberOfConnections)), TypeMoq.Times.once()); + configEditingServiceMock.verify(y => y.writeConfiguration(ConfigurationTarget.USER, + TypeMoq.It.is(c => (c.value as IConnectionProfileGroup[]).length === expectedNumberOfGroups)), TypeMoq.Times.once()); + done(); + }).catch(error => { + assert.fail(); + done(); + }); + }); + + test('deleteConnection should not throw error for connection not in config', done => { + let newProfile: IConnectionProfile = { + serverName: 'server3', + databaseName: 'database', + userName: 'user', + password: 'password', + authenticationType: '', + savePassword: true, + groupFullName: 'g3', + groupId: 'newid', + getOptionsKey: undefined, + matches: undefined, + providerName: 'MSSQL', + options: {}, + saveProfile: true, + id: undefined + }; + + let expectedNumberOfConnections = connections.user.length; + workspaceConfigurationServiceMock.setup(x => x.lookup( + Constants.connectionsArrayName)) + .returns(() => connections); + + let connectionProfile = new ConnectionProfile(msSQLCapabilities, newProfile); + let config = new ConnectionConfig(configEditingServiceMock.object, workspaceConfigurationServiceMock.object, capabilitiesService.object); + config.deleteConnection(connectionProfile).then(() => { + configEditingServiceMock.verify(y => y.writeConfiguration(ConfigurationTarget.USER, + TypeMoq.It.is(c => (c.value as IConnectionProfileStore[]).length === expectedNumberOfConnections)), TypeMoq.Times.once()); + done(); + }).catch(error => { + assert.fail(); + done(); + }); + }); + + test('renameGroup should change group name', done => { + + let expectedNumberOfConnections = configValueToConcat.user.length; + let calledValue: any; + let called: boolean = false; + let nothing: void; + let configEditingServiceMock: TypeMoq.Mock = TypeMoq.Mock.ofType(ConfigurationEditingService); + configEditingServiceMock.setup(x => x.writeConfiguration(ConfigurationTarget.USER, TypeMoq.It.isAny())).callback((x: any, val: any) => { + calledValue = val.value as IConnectionProfileStore[]; + }).returns(() => TPromise.as(nothing)); + workspaceConfigurationServiceMock.setup(x => x.lookup( + Constants.connectionGroupsArrayName)) + .returns(() => configValueToConcat); + + let connectionProfileGroup = new ConnectionProfileGroup('g-renamed', undefined, 'g2', undefined, undefined); + let config = new ConnectionConfig(configEditingServiceMock.object, workspaceConfigurationServiceMock.object, capabilitiesService.object); + config.editGroup(connectionProfileGroup).then(() => { + configEditingServiceMock.verify(y => y.writeConfiguration(ConfigurationTarget.USER, + TypeMoq.It.is(c => (c.value as IConnectionProfileStore[]).length === expectedNumberOfConnections)), TypeMoq.Times.once()); + calledValue.forEach(con => { + if (con.id === 'g2') { + assert.equal(con.name, 'g-renamed', 'Group was not renamed'); + called = true; } + }); + assert.equal(called, true, 'group was not renamed'); + }).then(() => done(), (err) => done(err)); + }); + + + test('change group(parent) for connection group', done => { + let expectedNumberOfConnections = configValueToConcat.user.length; + let calledValue: any; + let nothing: void; + let configEditingServiceMock: TypeMoq.Mock = TypeMoq.Mock.ofType(ConfigurationEditingService); + configEditingServiceMock.setup(x => x.writeConfiguration(ConfigurationTarget.USER, TypeMoq.It.isAny())).callback((x: any, val: any) => { + calledValue = val.value as IConnectionProfileStore[]; + }).returns(() => TPromise.as(nothing)); + workspaceConfigurationServiceMock.setup(x => x.lookup( + Constants.connectionGroupsArrayName)) + .returns(() => configValueToConcat); + + let sourceProfileGroup = new ConnectionProfileGroup('g2', undefined, 'g2', undefined, undefined); + let targetProfileGroup = new ConnectionProfileGroup('g3', undefined, 'g3', undefined, undefined); + let config = new ConnectionConfig(configEditingServiceMock.object, workspaceConfigurationServiceMock.object, capabilitiesService.object); + config.changeGroupIdForConnectionGroup(sourceProfileGroup, targetProfileGroup).then(() => { + configEditingServiceMock.verify(y => y.writeConfiguration(ConfigurationTarget.USER, + TypeMoq.It.is(c => (c.value as IConnectionProfileStore[]).length === expectedNumberOfConnections)), TypeMoq.Times.once()); + calledValue.forEach(con => { + if (con.id === 'g2') { + assert.equal(con.parentId, 'g3', 'Group parent was not changed'); + } + }); + }).then(() => done(), (err) => done(err)); + }); + + + test('change group(parent) for connection', done => { + let newProfile: IConnectionProfile = { + serverName: 'server3', + databaseName: 'database', + userName: 'user', + password: 'password', + authenticationType: '', + savePassword: true, + groupFullName: 'g3', + groupId: 'g3', + getOptionsKey: () => { return 'connectionId'; }, + matches: undefined, + providerName: 'MSSQL', + options: {}, + saveProfile: true, + id: 'test' + }; + + let expectedNumberOfConnections = connections.user.length; + workspaceConfigurationServiceMock.setup(x => x.lookup( + Constants.connectionsArrayName)) + .returns(() => connections); + + let connectionProfile = new ConnectionProfile(msSQLCapabilities, newProfile); + let newId = 'newid'; + let calledValue: any; + let nothing: void; + let configEditingServiceMock: TypeMoq.Mock = TypeMoq.Mock.ofType(ConfigurationEditingService); + configEditingServiceMock.setup(x => x.writeConfiguration(ConfigurationTarget.USER, TypeMoq.It.isAny())).callback((x: any, val: any) => { + calledValue = val.value as IConnectionProfileStore[]; + }).returns(() => TPromise.as(nothing)); + configEditingServiceMock.setup(x => x.writeConfiguration(ConfigurationTarget.WORKSPACE, TypeMoq.It.isAny())).callback((x: any, val: any) => { + + }).returns(() => TPromise.as(nothing)); + + let config = new ConnectionConfig(configEditingServiceMock.object, workspaceConfigurationServiceMock.object, capabilitiesService.object); + config.changeGroupIdForConnection(connectionProfile, newId).then(() => { + configEditingServiceMock.verify(y => y.writeConfiguration(ConfigurationTarget.USER, + TypeMoq.It.is(c => (c.value as IConnectionProfileStore[]).length === expectedNumberOfConnections)), TypeMoq.Times.atLeastOnce()); + calledValue.forEach(con => { + }); + }).then(() => done(), (err) => done(err)); + }); + + test('fixConnectionIds should replace duplicate ids with new ones', (done) => { + let profiles: IConnectionProfileStore[] = [ + { + options: {}, + groupId: '1', + id: '1', + providerName: undefined, + savePassword: true, + }, { + options: {}, + groupId: '1', + id: '2', + providerName: undefined, + savePassword: true, + }, { + options: {}, + groupId: '1', + id: '3', + providerName: undefined, + savePassword: true, + }, { + options: {}, + groupId: '1', + id: '2', + providerName: undefined, + savePassword: true, + }, { + options: {}, + groupId: '1', + id: '4', + providerName: undefined, + savePassword: true, + }, { + options: {}, + groupId: '1', + id: '3', + providerName: undefined, + savePassword: true, + }, { + options: {}, + groupId: '1', + id: '2', + providerName: undefined, + savePassword: true, } + ]; + + let config = new ConnectionConfig(configEditingServiceMock.object, workspaceConfigurationServiceMock.object, capabilitiesService.object); + config.fixConnectionIds(profiles); + let ids = profiles.map(x => x.id); + for (var index = 0; index < ids.length; index++) { + var id = ids[index]; + assert.equal(ids.lastIndexOf(id), index); } - }); - - return areEqual; - } - - test('allGroups should return groups from user and workspace settings', () => { - workspaceConfigurationServiceMock.setup(x => x.lookup( - Constants.connectionGroupsArrayName)) - .returns(() => configValueToConcat); - - let config = new ConnectionConfig(configEditingServiceMock.object, workspaceConfigurationServiceMock.object, capabilitiesService.object); - let allGroups = config.getAllGroups(); - - - assert.notEqual(allGroups, undefined); - assert.equal(allGroups.length, configValueToConcat.workspace.length + configValueToConcat.user.length); - }); - - test('allGroups should merge groups from user and workspace settings', () => { - let expectedAllGroups: IConnectionProfileGroup[] = [ - { - name: 'g1', - id: 'g1', - parentId: '', - color: 'pink', - description: 'g1' - }, - { - name: 'g1-1', - id: 'g1-1', - parentId: 'g1', - color: 'blue', - description: 'g1-1' - }, - { - name: 'g2', - id: 'g2', - parentId: '', - color: 'yellow', - description: 'g2' - }, - { - name: 'g2-1', - id: 'g2-1', - parentId: 'g2', - color: 'red', - description: 'g2' - }, - { - name: 'g1-2', - id: 'g1-2', - parentId: 'g1', - color: 'green', - description: 'g1-2' - }]; - - workspaceConfigurationServiceMock.setup(x => x.lookup( - Constants.connectionGroupsArrayName)) - .returns(() => configValueToMerge); - - let config = new ConnectionConfig(configEditingServiceMock.object, workspaceConfigurationServiceMock.object, capabilitiesService.object); - let allGroups = config.getAllGroups(); - - - assert.notEqual(allGroups, undefined); - assert.equal(groupsAreEqual(allGroups, expectedAllGroups), true); - }); - - test('addConnection should add the new profile to user settings if does not exist', done => { - let newProfile: IConnectionProfile = { - serverName: 'new server', - databaseName: 'database', - userName: 'user', - password: 'password', - authenticationType: '', - savePassword: true, - groupFullName: undefined, - groupId: undefined, - getOptionsKey: undefined, - matches: undefined, - providerName: 'MSSQL', - options: {}, - saveProfile: true, - id: undefined - }; - - let expectedNumberOfConnections = connections.user.length + 1; - - workspaceConfigurationServiceMock.setup(x => x.lookup( - Constants.connectionsArrayName)) - .returns(() => connections); - workspaceConfigurationServiceMock.setup(x => x.lookup( - Constants.connectionGroupsArrayName)) - .returns(() => configValueToConcat); - - let connectionProfile = new ConnectionProfile(msSQLCapabilities, newProfile); - connectionProfile.options['databaseDisplayName'] = 'database'; - let config = new ConnectionConfig(configEditingServiceMock.object, workspaceConfigurationServiceMock.object, capabilitiesService.object); - config.addConnection(connectionProfile).then(savedConnectionProfile => { - configEditingServiceMock.verify(y => y.writeConfiguration(ConfigurationTarget.USER, - TypeMoq.It.is(c => (c.value as IConnectionProfileStore[]).length === expectedNumberOfConnections)), TypeMoq.Times.once()); - assert.notEqual(savedConnectionProfile.id, undefined); - done(); - }).catch(error => { - assert.fail(); done(); }); - }); - - test('addConnection should not add the new profile to user settings if already exists', done => { - let profileFromConfig = connections.user[0]; - let newProfile: IConnectionProfile = { - serverName: profileFromConfig.options['serverName'], - databaseName: profileFromConfig.options['databaseName'], - userName: profileFromConfig.options['userName'], - password: profileFromConfig.options['password'], - authenticationType: profileFromConfig.options['authenticationType'], - groupId: profileFromConfig.groupId, - savePassword: true, - groupFullName: undefined, - getOptionsKey: undefined, - matches: undefined, - providerName: 'MSSQL', - options: {}, - saveProfile: true, - id: undefined - }; - - let expectedNumberOfConnections = connections.user.length; - - workspaceConfigurationServiceMock.setup(x => x.lookup( - Constants.connectionsArrayName)) - .returns(() => connections); - workspaceConfigurationServiceMock.setup(x => x.lookup( - Constants.connectionGroupsArrayName)) - .returns(() => configValueToConcat); - - let connectionProfile = new ConnectionProfile(msSQLCapabilities, newProfile); - connectionProfile.options['databaseDisplayName'] = profileFromConfig.options['databaseName']; - - let config = new ConnectionConfig(configEditingServiceMock.object, workspaceConfigurationServiceMock.object, capabilitiesService.object); - config.addConnection(connectionProfile).then(savedConnectionProfile => { - configEditingServiceMock.verify(y => y.writeConfiguration(ConfigurationTarget.USER, - TypeMoq.It.is(c => (c.value as IConnectionProfileStore[]).length === expectedNumberOfConnections)), TypeMoq.Times.once()); - assert.equal(savedConnectionProfile.id, profileFromConfig.id); - done(); - }).catch(error => { - assert.fail(); - done(); - }); - }); - - test('addConnection should add the new group to user settings if does not exist', done => { - let newProfile: IConnectionProfile = { - serverName: 'new server', - databaseName: 'database', - userName: 'user', - password: 'password', - authenticationType: '', - savePassword: true, - groupFullName: 'g2/g2-2', - groupId: undefined, - getOptionsKey: undefined, - matches: undefined, - providerName: 'MSSQL', - options: {}, - saveProfile: true, - id: undefined - }; - - let expectedNumberOfConnections = connections.user.length + 1; - let expectedNumberOfGroups = configValueToConcat.user.length + 1; - - workspaceConfigurationServiceMock.setup(x => x.lookup( - Constants.connectionsArrayName)) - .returns(() => connections); - - workspaceConfigurationServiceMock.setup(x => x.lookup( - Constants.connectionGroupsArrayName)) - .returns(() => configValueToConcat); - - let connectionProfile = new ConnectionProfile(msSQLCapabilities, newProfile); - let config = new ConnectionConfig(configEditingServiceMock.object, workspaceConfigurationServiceMock.object, capabilitiesService.object); - config.addConnection(connectionProfile).then(success => { - configEditingServiceMock.verify(y => y.writeConfiguration(ConfigurationTarget.USER, - TypeMoq.It.is(c => (c.value as IConnectionProfileStore[]).length === expectedNumberOfConnections)), TypeMoq.Times.once()); - configEditingServiceMock.verify(y => y.writeConfiguration(ConfigurationTarget.USER, - TypeMoq.It.is(c => (c.value as IConnectionProfileGroup[]).length === expectedNumberOfGroups)), TypeMoq.Times.once()); - done(); - }).catch(error => { - assert.fail(); - done(); - }); - }); - - test('getConnections should return connections from user and workspace settings given getWorkspaceConnections set to true', () => { - let getWorkspaceConnections: boolean = true; - - workspaceConfigurationServiceMock.setup(x => x.lookup( - Constants.connectionsArrayName)) - .returns(() => connections); - - let config = new ConnectionConfig(configEditingServiceMock.object, workspaceConfigurationServiceMock.object, capabilitiesService.object); - let allConnections = config.getConnections(getWorkspaceConnections); - assert.equal(allConnections.length, connections.user.length + connections.workspace.length); - }); - - test('getConnections should return connections from user settings given getWorkspaceConnections set to false', () => { - let getWorkspaceConnections: boolean = false; - - workspaceConfigurationServiceMock.setup(x => x.lookup( - Constants.connectionsArrayName)) - .returns(() => connections); - - let config = new ConnectionConfig(configEditingServiceMock.object, workspaceConfigurationServiceMock.object, capabilitiesService.object); - let allConnections = config.getConnections(getWorkspaceConnections); - assert.equal(allConnections.length, connections.user.length); - }); - - test('getConnections should return connections with a valid id', () => { - let getWorkspaceConnections: boolean = false; - let connectionsWithNoId: TConfigurationValue = { - user: connections.user.map(c => { - c.id = undefined; - return c; - }), - default: connections.default, - workspace: connections.workspace.map(c => { - c.id = c.options['serverName']; - return c; - }), - value: connections.value, - folder: [] - }; - workspaceConfigurationServiceMock.setup(x => x.lookup( - Constants.connectionsArrayName)) - .returns(() => connectionsWithNoId); - - let config = new ConnectionConfig(configEditingServiceMock.object, workspaceConfigurationServiceMock.object, capabilitiesService.object); - let allConnections = config.getConnections(getWorkspaceConnections); - assert.equal(allConnections.length, connections.user.length); - allConnections.forEach(connection => { - let userConnection = connectionsWithNoId.user.find(u => u.options['serverName'] === connection.serverName); - if (userConnection !== undefined) { - assert.notEqual(connection.id, connection.getOptionsKey()); - assert.notEqual(connection.id, undefined); - } else { - let workspaceConnection = connectionsWithNoId.workspace.find(u => u.options['serverName'] === connection.serverName); - assert.notEqual(connection.id, connection.getOptionsKey()); - assert.equal(workspaceConnection.id, connection.id); - } - }); - }); - - test('getConnections update the capabilities in each profile when the provider capabilities is registered', () => { - let oldOptionName: string = 'oldOptionName'; - let optionsMetadataFromConfig = capabilities[0].connectionProvider.options.concat({ - name: oldOptionName, - displayName: undefined, - description: undefined, - groupName: undefined, - categoryValues: undefined, - defaultValue: undefined, - isIdentity: true, - isRequired: true, - specialValueType: 0, - valueType: 0 - }); - - let capabilitiesFromConfig: data.DataProtocolServerCapabilities[] = []; - let connectionProvider: data.ConnectionProviderOptions = { - options: optionsMetadataFromConfig - }; - let msSQLCapabilities2 = { - protocolVersion: '1', - providerName: 'MSSQL', - providerDisplayName: 'MSSQL', - connectionProvider: connectionProvider, - adminServicesProvider: undefined, - features: undefined - }; - capabilitiesFromConfig.push(msSQLCapabilities2); - let connectionUsingOldMetadata = connections.user.map(c => { - c.options[oldOptionName] = 'oldOptionValue'; - return c; - }); - let configValue = Object.assign({}, connections, { user: connectionUsingOldMetadata }); - let capabilitiesService2: TypeMoq.Mock = TypeMoq.Mock.ofType(CapabilitiesService); - capabilitiesService2.setup(x => x.getCapabilities()).returns(() => []); - capabilitiesService2.setup(x => x.onProviderRegisteredEvent).returns(() => onProviderRegistered.event); - workspaceConfigurationServiceMock.setup(x => x.lookup( - Constants.connectionsArrayName)) - .returns(() => configValue); - - let config = new ConnectionConfig(configEditingServiceMock.object, workspaceConfigurationServiceMock.object, capabilitiesService2.object, capabilitiesFromConfig); - let allConnections = config.getConnections(false); - allConnections.forEach(element => { - assert.notEqual(element.serverName, undefined); - assert.notEqual(element.getOptionsKey().indexOf('oldOptionValue|'), -1); - }); - - onProviderRegistered.fire(msSQLCapabilities); - allConnections.forEach(element => { - assert.notEqual(element.serverName, undefined); - assert.equal(element.getOptionsKey().indexOf('oldOptionValue|'), -1); - }); - }); - - test('saveGroup should save the new groups to tree and return the id of the last group name', () => { - let config = new ConnectionConfig(undefined, undefined, undefined, undefined); - let groups: IConnectionProfileGroup[] = configValueToConcat.user; - let expectedLength = configValueToConcat.user.length + 2; - let newGroups: string = 'ROOT/g1/g1-1'; - let color: string = 'red'; - - let result: ISaveGroupResult = config.saveGroup(groups, newGroups, color, newGroups); - assert.notEqual(result, undefined); - assert.equal(result.groups.length, expectedLength, 'The result groups length is invalid'); - let newGroup = result.groups.find(g => g.name === 'g1-1'); - assert.equal(result.newGroupId, newGroup.id, 'The groups id is invalid'); - }); - - test('saveGroup should only add the groups that are not in the tree', () => { - let config = new ConnectionConfig(undefined, undefined, undefined, undefined); - let groups: IConnectionProfileGroup[] = configValueToConcat.user; - let expectedLength = configValueToConcat.user.length + 1; - let newGroups: string = 'ROOT/g2/g2-5'; - let color: string = 'red'; - - let result: ISaveGroupResult = config.saveGroup(groups, newGroups, color, newGroups); - assert.notEqual(result, undefined); - assert.equal(result.groups.length, expectedLength, 'The result groups length is invalid'); - let newGroup = result.groups.find(g => g.name === 'g2-5'); - assert.equal(result.newGroupId, newGroup.id, 'The groups id is invalid'); - }); - - test('saveGroup should not add any new group if tree already has all the groups in the full path', () => { - let config = new ConnectionConfig(undefined, undefined, undefined, undefined); - let groups: IConnectionProfileGroup[] = configValueToConcat.user; - let expectedLength = configValueToConcat.user.length; - let newGroups: string = 'ROOT/g2/g2-1'; - let color: string = 'red'; - - let result: ISaveGroupResult = config.saveGroup(groups, newGroups, color, newGroups); - assert.notEqual(result, undefined); - assert.equal(result.groups.length, expectedLength, 'The result groups length is invalid'); - let newGroup = result.groups.find(g => g.name === 'g2-1'); - assert.equal(result.newGroupId, newGroup.id, 'The groups id is invalid'); - }); - - test('deleteConnection should remove the connection from config', done => { - let newProfile: IConnectionProfile = { - serverName: 'server3', - databaseName: 'database', - userName: 'user', - password: 'password', - authenticationType: '', - savePassword: true, - groupFullName: 'g3', - groupId: 'g3', - getOptionsKey: undefined, - matches: undefined, - providerName: 'MSSQL', - options: {}, - saveProfile: true, - id: undefined - }; - - let expectedNumberOfConnections = connections.user.length - 1; - workspaceConfigurationServiceMock.setup(x => x.lookup( - Constants.connectionsArrayName)) - .returns(() => connections); - - let connectionProfile = new ConnectionProfile(msSQLCapabilities, newProfile); - connectionProfile.options['databaseDisplayName'] = 'database'; - - let config = new ConnectionConfig(configEditingServiceMock.object, workspaceConfigurationServiceMock.object, capabilitiesService.object); - config.deleteConnection(connectionProfile).then(() => { - configEditingServiceMock.verify(y => y.writeConfiguration(ConfigurationTarget.USER, - TypeMoq.It.is(c => (c.value as IConnectionProfileStore[]).length === expectedNumberOfConnections)), TypeMoq.Times.once()); - done(); - }).catch(error => { - assert.fail(); - done(); - }); - }); - - test('deleteConnectionGroup should remove the children connections and subgroups from config', done => { - let newProfile: IConnectionProfile = { - serverName: 'server3', - databaseName: 'database', - userName: 'user', - password: 'password', - authenticationType: '', - savePassword: true, - groupFullName: 'g3', - groupId: 'g3', - getOptionsKey: undefined, - matches: undefined, - providerName: 'MSSQL', - options: {}, - saveProfile: true, - id: undefined - }; - let connectionProfile = new ConnectionProfile(msSQLCapabilities, newProfile); - connectionProfile.options['databaseDisplayName'] = 'database'; - - let connectionProfileGroup = new ConnectionProfileGroup('g3', undefined, 'g3', undefined, undefined); - let childGroup = new ConnectionProfileGroup('g3-1', connectionProfileGroup, 'g3-1', undefined, undefined); - connectionProfileGroup.addGroups([childGroup]); - connectionProfileGroup.addConnections([connectionProfile]); - - let expectedNumberOfConnections = connections.user.length - 1; - let expectedNumberOfGroups = configValueToConcat.user.length - 2; - workspaceConfigurationServiceMock.setup(x => x.lookup( - Constants.connectionsArrayName)) - .returns(() => connections); - - workspaceConfigurationServiceMock.setup(x => x.lookup( - Constants.connectionGroupsArrayName)) - .returns(() => configValueToConcat); - - - let config = new ConnectionConfig(configEditingServiceMock.object, workspaceConfigurationServiceMock.object, capabilitiesService.object); - config.deleteGroup(connectionProfileGroup).then(() => { - configEditingServiceMock.verify(y => y.writeConfiguration(ConfigurationTarget.USER, - TypeMoq.It.is(c => (c.value as IConnectionProfileStore[]).length === expectedNumberOfConnections)), TypeMoq.Times.once()); - configEditingServiceMock.verify(y => y.writeConfiguration(ConfigurationTarget.USER, - TypeMoq.It.is(c => (c.value as IConnectionProfileGroup[]).length === expectedNumberOfGroups)), TypeMoq.Times.once()); - done(); - }).catch(error => { - assert.fail(); - done(); - }); - }); - - test('deleteConnection should not throw error for connection not in config', done => { - let newProfile: IConnectionProfile = { - serverName: 'server3', - databaseName: 'database', - userName: 'user', - password: 'password', - authenticationType: '', - savePassword: true, - groupFullName: 'g3', - groupId: 'newid', - getOptionsKey: undefined, - matches: undefined, - providerName: 'MSSQL', - options: {}, - saveProfile: true, - id: undefined - }; - - let expectedNumberOfConnections = connections.user.length; - workspaceConfigurationServiceMock.setup(x => x.lookup( - Constants.connectionsArrayName)) - .returns(() => connections); - - let connectionProfile = new ConnectionProfile(msSQLCapabilities, newProfile); - let config = new ConnectionConfig(configEditingServiceMock.object, workspaceConfigurationServiceMock.object, capabilitiesService.object); - config.deleteConnection(connectionProfile).then(() => { - configEditingServiceMock.verify(y => y.writeConfiguration(ConfigurationTarget.USER, - TypeMoq.It.is(c => (c.value as IConnectionProfileStore[]).length === expectedNumberOfConnections)), TypeMoq.Times.once()); - done(); - }).catch(error => { - assert.fail(); - done(); - }); - }); - - test('renameGroup should change group name', done => { - - let expectedNumberOfConnections = configValueToConcat.user.length; - let calledValue: any; - let called: boolean = false; - let nothing: void; - let configEditingServiceMock: TypeMoq.Mock = TypeMoq.Mock.ofType(ConfigurationEditingService); - configEditingServiceMock.setup(x => x.writeConfiguration(ConfigurationTarget.USER, TypeMoq.It.isAny())).callback((x: any, val: any) => { - calledValue = val.value as IConnectionProfileStore[]; - }).returns(() => TPromise.as(nothing)); - workspaceConfigurationServiceMock.setup(x => x.lookup( - Constants.connectionGroupsArrayName)) - .returns(() => configValueToConcat); - - let connectionProfileGroup = new ConnectionProfileGroup('g-renamed', undefined, 'g2', undefined, undefined); - let config = new ConnectionConfig(configEditingServiceMock.object, workspaceConfigurationServiceMock.object, capabilitiesService.object); - config.editGroup(connectionProfileGroup).then(() => { - configEditingServiceMock.verify(y => y.writeConfiguration(ConfigurationTarget.USER, - TypeMoq.It.is(c => (c.value as IConnectionProfileStore[]).length === expectedNumberOfConnections)), TypeMoq.Times.once()); - calledValue.forEach(con => { - if (con.id === 'g2') { - assert.equal(con.name, 'g-renamed', 'Group was not renamed'); - called = true; - } - }); - assert.equal(called, true, 'group was not renamed'); - }).then(() => done(), (err) => done(err)); - }); - - - test('change group(parent) for connection group', done => { - let expectedNumberOfConnections = configValueToConcat.user.length; - let calledValue: any; - let nothing: void; - let configEditingServiceMock: TypeMoq.Mock = TypeMoq.Mock.ofType(ConfigurationEditingService); - configEditingServiceMock.setup(x => x.writeConfiguration(ConfigurationTarget.USER, TypeMoq.It.isAny())).callback((x: any, val: any) => { - calledValue = val.value as IConnectionProfileStore[]; - }).returns(() => TPromise.as(nothing)); - workspaceConfigurationServiceMock.setup(x => x.lookup( - Constants.connectionGroupsArrayName)) - .returns(() => configValueToConcat); - - let sourceProfileGroup = new ConnectionProfileGroup('g2', undefined, 'g2', undefined, undefined); - let targetProfileGroup = new ConnectionProfileGroup('g3', undefined, 'g3', undefined, undefined); - let config = new ConnectionConfig(configEditingServiceMock.object, workspaceConfigurationServiceMock.object, capabilitiesService.object); - config.changeGroupIdForConnectionGroup(sourceProfileGroup, targetProfileGroup).then(() => { - configEditingServiceMock.verify(y => y.writeConfiguration(ConfigurationTarget.USER, - TypeMoq.It.is(c => (c.value as IConnectionProfileStore[]).length === expectedNumberOfConnections)), TypeMoq.Times.once()); - calledValue.forEach(con => { - if (con.id === 'g2') { - assert.equal(con.parentId, 'g3', 'Group parent was not changed'); - } - }); - }).then(() => done(), (err) => done(err)); - }); - - - test('change group(parent) for connection', done => { - let newProfile: IConnectionProfile = { - serverName: 'server3', - databaseName: 'database', - userName: 'user', - password: 'password', - authenticationType: '', - savePassword: true, - groupFullName: 'g3', - groupId: 'g3', - getOptionsKey: () => { return 'connectionId'; }, - matches: undefined, - providerName: 'MSSQL', - options: {}, - saveProfile: true, - id: 'test' - }; - - let expectedNumberOfConnections = connections.user.length; - workspaceConfigurationServiceMock.setup(x => x.lookup( - Constants.connectionsArrayName)) - .returns(() => connections); - - let connectionProfile = new ConnectionProfile(msSQLCapabilities, newProfile); - let newId = 'newid'; - let calledValue: any; - let nothing: void; - let configEditingServiceMock: TypeMoq.Mock = TypeMoq.Mock.ofType(ConfigurationEditingService); - configEditingServiceMock.setup(x => x.writeConfiguration(ConfigurationTarget.USER, TypeMoq.It.isAny())).callback((x: any, val: any) => { - calledValue = val.value as IConnectionProfileStore[]; - }).returns(() => TPromise.as(nothing)); - configEditingServiceMock.setup(x => x.writeConfiguration(ConfigurationTarget.WORKSPACE, TypeMoq.It.isAny())).callback((x: any, val: any) => { - - }).returns(() => TPromise.as(nothing)); - - let config = new ConnectionConfig(configEditingServiceMock.object, workspaceConfigurationServiceMock.object, capabilitiesService.object); - config.changeGroupIdForConnection(connectionProfile, newId).then(() => { - configEditingServiceMock.verify(y => y.writeConfiguration(ConfigurationTarget.USER, - TypeMoq.It.is(c => (c.value as IConnectionProfileStore[]).length === expectedNumberOfConnections)), TypeMoq.Times.atLeastOnce()); - calledValue.forEach(con => { - }); - }).then(() => done(), (err) => done(err)); - }); - - test('fixConnectionIds should replace duplicate ids with new ones', (done) => { - let profiles: IConnectionProfileStore[] = [ - { - options: {}, - groupId: '1', - id: '1', - providerName: undefined, - savePassword: true, - }, { - options: {}, - groupId: '1', - id: '2', - providerName: undefined, - savePassword: true, - }, { - options: {}, - groupId: '1', - id: '3', - providerName: undefined, - savePassword: true, - }, { - options: {}, - groupId: '1', - id: '2', - providerName: undefined, - savePassword: true, - }, { - options: {}, - groupId: '1', - id: '4', - providerName: undefined, - savePassword: true, - }, { - options: {}, - groupId: '1', - id: '3', - providerName: undefined, - savePassword: true, - }, { - options: {}, - groupId: '1', - id: '2', - providerName: undefined, - savePassword: true, - } - ]; - - let config = new ConnectionConfig(configEditingServiceMock.object, workspaceConfigurationServiceMock.object, capabilitiesService.object); - config.fixConnectionIds(profiles); - let ids = profiles.map(x => x.id); - for (var index = 0; index < ids.length; index++) { - var id = ids[index]; - assert.equal(ids.lastIndexOf(id), index); - } - done(); - }); -*/ + */ test('fixConnectionIds should replace duplicate ids with new ones', (done) => { done(); diff --git a/src/sqltest/parts/connection/connectionManagementService.test.ts b/src/sqltest/parts/connection/connectionManagementService.test.ts index 1878822b49..7bc8118f11 100644 --- a/src/sqltest/parts/connection/connectionManagementService.test.ts +++ b/src/sqltest/parts/connection/connectionManagementService.test.ts @@ -25,7 +25,7 @@ import { CapabilitiesTestService } from 'sqltest/stubs/capabilitiesTestService'; import { ConnectionProviderStub } from 'sqltest/stubs/connectionProviderStub'; import { ResourceProviderStub } from 'sqltest/stubs/resourceProviderServiceStub'; -import * as data from 'data'; +import * as sqlops from 'sqlops'; import { TPromise } from 'vs/base/common/winjs.base'; import { WorkspaceConfigurationTestService } from 'sqltest/stubs/workspaceConfigurationTestService'; @@ -213,7 +213,7 @@ suite('SQL ConnectionManagementService tests', () => { let id = connectionToUse.getOptionsKey(); let defaultUri = 'connection://' + (id ? id : connectionToUse.serverName + ':' + connectionToUse.databaseName); connectionManagementService.onConnectionRequestSent(() => { - let info: data.ConnectionInfoSummary = { + let info: sqlops.ConnectionInfoSummary = { connectionId: error ? undefined : 'id', connectionSummary: { databaseName: connectionToUse.databaseName, @@ -702,7 +702,7 @@ suite('SQL ConnectionManagementService tests', () => { // when I call doChangeLanguageFlavor try { let called = false; - connectionManagementService.onLanguageFlavorChanged((changeParams: data.DidChangeLanguageFlavorParams) => { + connectionManagementService.onLanguageFlavorChanged((changeParams: sqlops.DidChangeLanguageFlavorParams) => { called = true; assert.equal(changeParams.uri, uri); assert.equal(changeParams.language, language); @@ -727,7 +727,7 @@ suite('SQL ConnectionManagementService tests', () => { }; let connectionManagementService = createConnectionManagementService(); let called = false; - connectionManagementService.onLanguageFlavorChanged((changeParams: data.DidChangeLanguageFlavorParams) => { + connectionManagementService.onLanguageFlavorChanged((changeParams: sqlops.DidChangeLanguageFlavorParams) => { called = true; }); connect(uri, options).then(() => { @@ -776,7 +776,7 @@ suite('SQL ConnectionManagementService tests', () => { // Set up the connection store to give back a group for the expected connection profile configResult['tabColorMode'] = 'border'; let expectedColor = 'red'; - connectionStore.setup(x => x.getGroupFromId(connectionProfile.groupId)).returns(() => { + connectionStore.setup(x => x.getGroupFromId(connectionProfile.groupId)).returns(() => { color: expectedColor }); let uri = 'testUri'; diff --git a/src/sqltest/parts/connection/connectionProfile.test.ts b/src/sqltest/parts/connection/connectionProfile.test.ts index 561fbd4d71..56f172e14e 100644 --- a/src/sqltest/parts/connection/connectionProfile.test.ts +++ b/src/sqltest/parts/connection/connectionProfile.test.ts @@ -8,12 +8,12 @@ import { ConnectionProfile } from 'sql/parts/connection/common/connectionProfile'; import { IConnectionProfile, IConnectionProfileStore } from 'sql/parts/connection/common/interfaces'; -import data = require('data'); +import * as sqlops from 'sqlops'; import * as assert from 'assert'; import { ConnectionOptionSpecialType } from 'sql/workbench/api/common/sqlExtHostTypes'; suite('SQL ConnectionProfileInfo tests', () => { - let msSQLCapabilities: data.DataProtocolServerCapabilities; + let msSQLCapabilities: sqlops.DataProtocolServerCapabilities; let connectionProfile: IConnectionProfile = { serverName: 'new server', @@ -47,8 +47,8 @@ suite('SQL ConnectionProfileInfo tests', () => { }; setup(() => { - let capabilities: data.DataProtocolServerCapabilities[] = []; - let connectionProvider: data.ConnectionProviderOptions = { + let capabilities: sqlops.DataProtocolServerCapabilities[] = []; + let connectionProvider: sqlops.ConnectionProviderOptions = { options: [ { name: 'serverName', diff --git a/src/sqltest/parts/connection/connectionStatusManager.test.ts b/src/sqltest/parts/connection/connectionStatusManager.test.ts index 9a44b2b14f..2885ad4aa8 100644 --- a/src/sqltest/parts/connection/connectionStatusManager.test.ts +++ b/src/sqltest/parts/connection/connectionStatusManager.test.ts @@ -6,7 +6,7 @@ 'use strict'; import * as assert from 'assert'; -import data = require('data'); +import * as sqlops from 'sqlops'; import { ConnectionStatusManager } from 'sql/parts/connection/common/connectionStatusManager'; import * as Utils from 'sql/parts/connection/common/utils'; import { IConnectionProfile } from 'sql/parts/connection/common/interfaces'; @@ -127,7 +127,7 @@ suite('SQL ConnectionStatusManager tests', () => { test('addConnection should set connecting to true', () => { let expected = true; - let summary: data.ConnectionInfoSummary = { + let summary: sqlops.ConnectionInfoSummary = { ownerUri: connection1Id, connectionId: connection1Id, messages: undefined, @@ -143,7 +143,7 @@ suite('SQL ConnectionStatusManager tests', () => { test('onConnectionComplete should set connecting to false', () => { let expected = false; - let summary: data.ConnectionInfoSummary = { + let summary: sqlops.ConnectionInfoSummary = { ownerUri: connection1Id, connectionId: connection1Id, messages: undefined, @@ -177,7 +177,7 @@ suite('SQL ConnectionStatusManager tests', () => { test('updateDatabaseName should update the database name in connection', () => { let dbName: string = 'db name'; - let summary: data.ConnectionInfoSummary = { + let summary: sqlops.ConnectionInfoSummary = { connectionSummary: { databaseName: dbName, serverName: undefined, @@ -203,7 +203,7 @@ suite('SQL ConnectionStatusManager tests', () => { test('getOriginalOwnerUri should return the original uri given uri with db name', () => { let dbName: string = 'db name'; - let summary: data.ConnectionInfoSummary = { + let summary: sqlops.ConnectionInfoSummary = { connectionSummary: { databaseName: dbName, serverName: undefined, diff --git a/src/sqltest/parts/connection/connectionStore.test.ts b/src/sqltest/parts/connection/connectionStore.test.ts index 52616b28ee..e63bdda722 100644 --- a/src/sqltest/parts/connection/connectionStore.test.ts +++ b/src/sqltest/parts/connection/connectionStore.test.ts @@ -15,7 +15,7 @@ import { CredentialsService } from 'sql/services/credentials/credentialsService' import * as assert from 'assert'; import { Memento } from 'vs/workbench/common/memento'; import { CapabilitiesService } from 'sql/services/capabilities/capabilitiesService'; -import * as data from 'data'; +import * as sqlops from 'sqlops'; import { ConnectionProfile } from 'sql/parts/connection/common/connectionProfile'; import { Emitter } from 'vs/base/common/event'; import { ConnectionProfileGroup, IConnectionProfileGroup } from 'sql/parts/connection/common/connectionProfileGroup'; @@ -32,9 +32,9 @@ suite('SQL ConnectionStore tests', () => { let capabilitiesService: TypeMoq.Mock; let mementoArray: any = []; let maxRecent = 5; - let msSQLCapabilities: data.DataProtocolServerCapabilities; + let msSQLCapabilities: sqlops.DataProtocolServerCapabilities; let defaultNamedConnectionProfile: ConnectionProfile; - let onProviderRegistered = new Emitter(); + let onProviderRegistered = new Emitter(); setup(() => { @@ -97,8 +97,8 @@ suite('SQL ConnectionStore tests', () => { }; capabilitiesService = TypeMoq.Mock.ofType(CapabilitiesService, TypeMoq.MockBehavior.Loose, extensionManagementServiceMock, {}); - let capabilities: data.DataProtocolServerCapabilities[] = []; - let connectionProvider: data.ConnectionProviderOptions = { + let capabilities: sqlops.DataProtocolServerCapabilities[] = []; + let connectionProvider: sqlops.ConnectionProviderOptions = { options: [ { name: 'serverName', @@ -371,7 +371,7 @@ suite('SQL ConnectionStore tests', () => { test('isPasswordRequired should return false if the password is not required in capabilities', () => { let providerName: string = 'providername'; - let connectionProvider: data.ConnectionProviderOptions = { + let connectionProvider: sqlops.ConnectionProviderOptions = { options: msSQLCapabilities.connectionProvider.options.map(o => { if (o.name === 'password') { o.isRequired = false; diff --git a/src/sqltest/parts/connection/objectExplorerService.test.ts b/src/sqltest/parts/connection/objectExplorerService.test.ts index 5fbd9d3002..33c36a6ab7 100644 --- a/src/sqltest/parts/connection/objectExplorerService.test.ts +++ b/src/sqltest/parts/connection/objectExplorerService.test.ts @@ -13,7 +13,7 @@ import { NodeType } from 'sql/parts/registeredServer/common/nodeType'; import { TreeNode } from 'sql/parts/registeredServer/common/treeNode'; import { TPromise } from 'vs/base/common/winjs.base'; -import * as data from 'data'; +import * as sqlops from 'sqlops'; import * as TypeMoq from 'typemoq'; import * as assert from 'assert'; import { ServerTreeView } from 'sql/parts/registeredServer/viewlet/serverTreeView'; @@ -27,11 +27,11 @@ suite('SQL Object Explorer Service tests', () => { let connectionToFail: ConnectionProfile; let conProfGroup: ConnectionProfileGroup; let objectExplorerService: ObjectExplorerService; - let objectExplorerSession: data.ObjectExplorerSession; - let objectExplorerFailedSession: data.ObjectExplorerSession; - let objectExplorerCloseSessionResponse: data.ObjectExplorerCloseSessionResponse; - let objectExplorerExpandInfo: data.ObjectExplorerExpandInfo; - let objectExplorerExpandInfoRefresh: data.ObjectExplorerExpandInfo; + let objectExplorerSession: sqlops.ObjectExplorerSession; + let objectExplorerFailedSession: sqlops.ObjectExplorerSession; + let objectExplorerCloseSessionResponse: sqlops.ObjectExplorerCloseSessionResponse; + let objectExplorerExpandInfo: sqlops.ObjectExplorerExpandInfo; + let objectExplorerExpandInfoRefresh: sqlops.ObjectExplorerExpandInfo; let sessionId = '1234'; let failedSessionId = '12345'; let numberOfFailedSession: number = 0; @@ -111,11 +111,11 @@ suite('SQL Object Explorer Service tests', () => { errorMessage: '', nodePath: objectExplorerSession.rootNode.nodePath }; - let response: data.ObjectExplorerSessionResponse = { + let response: sqlops.ObjectExplorerSessionResponse = { sessionId: objectExplorerSession.sessionId }; - let failedResponse: data.ObjectExplorerSessionResponse = { + let failedResponse: sqlops.ObjectExplorerSessionResponse = { sessionId: failedSessionId }; @@ -253,10 +253,10 @@ suite('SQL Object Explorer Service tests', () => { objectExplorerService = new ObjectExplorerService(connectionManagementService.object, undefined); objectExplorerService.registerProvider('MSSQL', sqlOEProvider.object); - sqlOEProvider.setup(x => x.createNewSession(TypeMoq.It.is(x => x.options['serverName'] === connection.serverName))).returns(() => new Promise((resolve) => { + sqlOEProvider.setup(x => x.createNewSession(TypeMoq.It.is(x => x.options['serverName'] === connection.serverName))).returns(() => new Promise((resolve) => { resolve(response); })); - sqlOEProvider.setup(x => x.createNewSession(TypeMoq.It.is(x => x.options['serverName'] === connectionToFail.serverName))).returns(() => new Promise((resolve) => { + sqlOEProvider.setup(x => x.createNewSession(TypeMoq.It.is(x => x.options['serverName'] === connectionToFail.serverName))).returns(() => new Promise((resolve) => { resolve(failedResponse); })); sqlOEProvider.setup(x => x.expandNode(TypeMoq.It.isAny())).callback(() => { diff --git a/src/sqltest/parts/connection/providerConnectionInfo.test.ts b/src/sqltest/parts/connection/providerConnectionInfo.test.ts index c03093f2ea..dbf4a8b53a 100644 --- a/src/sqltest/parts/connection/providerConnectionInfo.test.ts +++ b/src/sqltest/parts/connection/providerConnectionInfo.test.ts @@ -8,12 +8,12 @@ import { ProviderConnectionInfo } from 'sql/parts/connection/common/providerConnectionInfo'; import { IConnectionProfile } from 'sql/parts/connection/common/interfaces'; -import data = require('data'); +import * as sqlops from 'sqlops'; import * as assert from 'assert'; import { ConnectionOptionSpecialType } from 'sql/workbench/api/common/sqlExtHostTypes'; suite('SQL ProviderConnectionInfo tests', () => { - let msSQLCapabilities: data.DataProtocolServerCapabilities; + let msSQLCapabilities: sqlops.DataProtocolServerCapabilities; let connectionProfile: IConnectionProfile = { serverName: 'new server', @@ -33,8 +33,8 @@ suite('SQL ProviderConnectionInfo tests', () => { }; setup(() => { - let capabilities: data.DataProtocolServerCapabilities[] = []; - let connectionProvider: data.ConnectionProviderOptions = { + let capabilities: sqlops.DataProtocolServerCapabilities[] = []; + let connectionProvider: sqlops.ConnectionProviderOptions = { options: [ { name: 'serverName', diff --git a/src/sqltest/parts/disasterRecovery/restoreViewModel.test.ts b/src/sqltest/parts/disasterRecovery/restoreViewModel.test.ts index 2851a0c5ca..210d243fa6 100644 --- a/src/sqltest/parts/disasterRecovery/restoreViewModel.test.ts +++ b/src/sqltest/parts/disasterRecovery/restoreViewModel.test.ts @@ -4,7 +4,7 @@ *--------------------------------------------------------------------------------------------*/ 'use strict'; -import data = require('data'); +import * as sqlops from 'sqlops'; import * as assert from 'assert'; import { RestoreViewModel } from 'sql/parts/disasterRecovery/restore/restoreViewModel'; import { ServiceOptionType } from 'sql/workbench/api/common/sqlExtHostTypes'; @@ -14,14 +14,14 @@ suite('Restore Dialog view model tests', () => { let option2Category = 'option2'; let option3Boolean = 'option3'; let options: { [name: string]: any }; - let stringServiceOption: data.ServiceOption; - let categoryServiceOption: data.ServiceOption; - let booleanServiceOption: data.ServiceOption; + let stringServiceOption: sqlops.ServiceOption; + let categoryServiceOption: sqlops.ServiceOption; + let booleanServiceOption: sqlops.ServiceOption; let viewModel: RestoreViewModel; - let planDetails: { [key: string]: data.RestorePlanDetailInfo }; - let backupSets: data.DatabaseFileInfo[]; + let planDetails: { [key: string]: sqlops.RestorePlanDetailInfo }; + let backupSets: sqlops.DatabaseFileInfo[]; setup(() => { options = {}; @@ -168,7 +168,7 @@ suite('Restore Dialog view model tests', () => { }); test('on restore plan response should update all options from restore plan response correctly', () => { - let restorePlanResponse: data.RestorePlanResponse = { + let restorePlanResponse: sqlops.RestorePlanResponse = { sessionId: '123', backupSetsToRestore: backupSets, canRestore: true, @@ -198,7 +198,7 @@ suite('Restore Dialog view model tests', () => { test('on reset restore options should reset all options', () => { - let restorePlanResponse: data.RestorePlanResponse = { + let restorePlanResponse: sqlops.RestorePlanResponse = { sessionId: '123', backupSetsToRestore: backupSets, canRestore: true, diff --git a/src/sqltest/parts/insights/insightsDialogController.test.ts b/src/sqltest/parts/insights/insightsDialogController.test.ts index 91b951813b..16eff932fb 100644 --- a/src/sqltest/parts/insights/insightsDialogController.test.ts +++ b/src/sqltest/parts/insights/insightsDialogController.test.ts @@ -12,7 +12,7 @@ import { IConnectionProfile } from 'sql/parts/connection/common/interfaces'; import { InstantiationService } from 'vs/platform/instantiation/common/instantiationService'; -import { IDbColumn, BatchSummary, QueryExecuteSubsetResult, ResultSetSubset } from 'data'; +import { IDbColumn, BatchSummary, QueryExecuteSubsetResult, ResultSetSubset } from 'sqlops'; import { EventEmitter } from 'sql/base/common/eventEmitter'; import { equal } from 'assert'; import { Mock, MockBehavior, It } from 'typemoq'; diff --git a/src/sqltest/parts/query/editor/queryActions.test.ts b/src/sqltest/parts/query/editor/queryActions.test.ts index 1d02515320..605c6cd166 100644 --- a/src/sqltest/parts/query/editor/queryActions.test.ts +++ b/src/sqltest/parts/query/editor/queryActions.test.ts @@ -7,7 +7,7 @@ import { Emitter } from 'vs/base/common/event'; import { TPromise } from 'vs/base/common/winjs.base'; -import { ISelectionData } from 'data'; +import { ISelectionData } from 'sqlops'; import { IConnectionManagementService, diff --git a/src/sqltest/services/accountManagement/accountManagementService.test.ts b/src/sqltest/services/accountManagement/accountManagementService.test.ts index 376014daf7..32ca6f90a8 100644 --- a/src/sqltest/services/accountManagement/accountManagementService.test.ts +++ b/src/sqltest/services/accountManagement/accountManagementService.test.ts @@ -6,7 +6,7 @@ 'use strict'; import * as assert from 'assert'; -import * as data from 'data'; +import * as sqlops from 'sqlops'; import * as TypeMoq from 'typemoq'; import AccountStore from 'sql/services/accountManagement/accountStore'; import { AccountDialogController } from 'sql/parts/accountManagement/accountDialog/accountDialogController'; @@ -18,16 +18,16 @@ import { EventVerifierSingle } from 'sqltest/utils/eventVerifier'; import { InstantiationService } from 'vs/platform/instantiation/common/instantiationService'; // SUITE CONSTANTS ///////////////////////////////////////////////////////// -const hasAccountProvider: data.AccountProviderMetadata = { +const hasAccountProvider: sqlops.AccountProviderMetadata = { id: 'hasAccounts', displayName: 'Provider with Accounts' }; -const noAccountProvider: data.AccountProviderMetadata = { +const noAccountProvider: sqlops.AccountProviderMetadata = { id: 'noAccounts', displayName: 'Provider without Accounts' }; -const account: data.Account = { +const account: sqlops.Account = { key: { providerId: hasAccountProvider.id, accountId: 'testAccount1' @@ -40,7 +40,7 @@ const account: data.Account = { isStale: false, properties: {} }; -const accountList: data.Account[] = [account]; +const accountList: sqlops.Account[] = [account]; suite('Account Management Service Tests:', () => { test('Constructor', () => { @@ -69,7 +69,7 @@ suite('Account Management Service Tests:', () => { .returns(() => Promise.resolve(true)); // ... Register a account provider with the management service - let mockProvider = TypeMoq.Mock.ofType(AccountProviderStub); + let mockProvider = TypeMoq.Mock.ofType(AccountProviderStub); mockProvider.setup(x => x.clear(TypeMoq.It.isAny())).returns(() => Promise.resolve()); state.accountManagementService._providers[hasAccountProvider.id] = { accounts: [account], @@ -85,8 +85,8 @@ suite('Account Management Service Tests:', () => { state.mockAccountStore.verify(x => x.remove(TypeMoq.It.isAny()), TypeMoq.Times.once()); }) .then( - () => done(), - err => done(err) + () => done(), + err => done(err) ); }); @@ -95,14 +95,14 @@ suite('Account Management Service Tests:', () => { // ... Create account management service and to mock up the store let state = getTestState(); state.mockAccountStore.setup(x => x.addOrUpdate(TypeMoq.It.isAny())) - .returns(account => Promise.resolve( { + .returns(account => Promise.resolve({ accountModified: true, accountAdded: false, changedAccount: account })); // ... Register a account provider with the management service - let mockProvider = TypeMoq.Mock.ofType(AccountProviderStub); + let mockProvider = TypeMoq.Mock.ofType(AccountProviderStub); mockProvider.setup(x => x.clear(TypeMoq.It.isAny())).returns(() => Promise.resolve()); state.accountManagementService._providers[hasAccountProvider.id] = { accounts: [account], @@ -125,8 +125,8 @@ suite('Account Management Service Tests:', () => { }); }) .then( - () => done(), - err => done(err) + () => done(), + err => done(err) ); }); @@ -240,8 +240,8 @@ suite('Account Management Service Tests:', () => { // Then: Nothing should have happened and the promise should be resolved return state.accountManagementService.addAccount(noAccountProvider.id) .then( - () => done('Add account promise resolved when it should have rejected'), - () => done() + () => done('Add account promise resolved when it should have rejected'), + () => done() ); }); @@ -255,8 +255,8 @@ suite('Account Management Service Tests:', () => { // Then: Nothing should have happened and the promise should be resolved return state.accountManagementService.addAccount(noAccountProvider.id) .then( - () => done(), - err => done(err) + () => done(), + err => done(err) ); }); @@ -364,7 +364,7 @@ suite('Account Management Service Tests:', () => { .returns(() => Promise.resolve(true)); // ... Register a account provider with the management service - let mockProvider = TypeMoq.Mock.ofType(AccountProviderStub); + let mockProvider = TypeMoq.Mock.ofType(AccountProviderStub); mockProvider.setup(x => x.clear(TypeMoq.It.isAny())).returns(() => Promise.resolve()); state.accountManagementService._providers[hasAccountProvider.id] = { accounts: [account], @@ -571,7 +571,7 @@ function getTestState(): AccountManagementState { // Wire up event handlers let evUpdate = new EventVerifierSingle(); let evAddProvider = new EventVerifierSingle(); - let evRemoveProvider = new EventVerifierSingle(); + let evRemoveProvider = new EventVerifierSingle(); ams.updateAccountListEvent(evUpdate.eventHandler); ams.addAccountProviderEvent(evAddProvider.eventHandler); ams.removeAccountProviderEvent(evRemoveProvider.eventHandler); @@ -587,8 +587,8 @@ function getTestState(): AccountManagementState { }; } -function getMockAccountProvider(): TypeMoq.Mock { - let mockProvider = TypeMoq.Mock.ofType(AccountProviderStub); +function getMockAccountProvider(): TypeMoq.Mock { + let mockProvider = TypeMoq.Mock.ofType(AccountProviderStub); mockProvider.setup(x => x.clear(TypeMoq.It.isAny())).returns(() => Promise.resolve()); mockProvider.setup(x => x.initialize(TypeMoq.It.isAny())).returns(param => Promise.resolve(param)); mockProvider.setup(x => x.prompt()).returns(() => Promise.resolve(account)); @@ -596,8 +596,8 @@ function getMockAccountProvider(): TypeMoq.Mock { return mockProvider; } -function getFailingMockAccountProvider(cancel: boolean): TypeMoq.Mock { - let mockProvider = TypeMoq.Mock.ofType(AccountProviderStub); +function getFailingMockAccountProvider(cancel: boolean): TypeMoq.Mock { + let mockProvider = TypeMoq.Mock.ofType(AccountProviderStub); mockProvider.setup(x => x.clear(TypeMoq.It.isAny())) .returns(() => Promise.resolve()); mockProvider.setup(x => x.initialize(TypeMoq.It.isAny())) @@ -605,13 +605,13 @@ function getFailingMockAccountProvider(cancel: boolean): TypeMoq.Mock x.prompt()) .returns(() => { return cancel - ? Promise.reject({userCancelledSignIn: true}).then() + ? Promise.reject({ userCancelledSignIn: true }).then() : Promise.reject(new Error()).then(); }); mockProvider.setup(x => x.refresh(TypeMoq.It.isAny())) .returns(() => { return cancel - ? Promise.reject({userCancelledSignIn: true}).then() + ? Promise.reject({ userCancelledSignIn: true }).then() : Promise.reject(new Error()).then(); }); return mockProvider; @@ -623,5 +623,5 @@ interface AccountManagementState { mockAccountStore: TypeMoq.Mock; eventVerifierUpdate: EventVerifierSingle; eventVerifierProviderAdded: EventVerifierSingle; - eventVerifierProviderRemoved: EventVerifierSingle; + eventVerifierProviderRemoved: EventVerifierSingle; } diff --git a/src/sqltest/services/accountManagement/accountStore.test.ts b/src/sqltest/services/accountManagement/accountStore.test.ts index 91fc4deb7a..0488e75c28 100644 --- a/src/sqltest/services/accountManagement/accountStore.test.ts +++ b/src/sqltest/services/accountManagement/accountStore.test.ts @@ -6,7 +6,7 @@ 'use strict'; import * as assert from 'assert'; -import * as data from 'data'; +import * as sqlops from 'sqlops'; import AccountStore from 'sql/services/accountManagement/accountStore'; import { EventVerifierSingle } from 'sqltest/utils/eventVerifier'; @@ -68,7 +68,7 @@ suite('Account Store Tests', () => { let as = new AccountStore(memento); // If: I add an account to the store that already exists - let param = { + let param = { key: account2.key, displayInfo: account1.displayInfo, isStale: account1.isStale @@ -308,7 +308,7 @@ suite('Account Store Tests', () => { let as = new AccountStore(memento); // ... Create a callback that we can verify was called - let updateCallback = new EventVerifierSingle(); + let updateCallback = new EventVerifierSingle(); // If: I update an account as.update(account1.key, updateCallback.eventHandler) @@ -337,7 +337,7 @@ suite('Account Store Tests', () => { let as = new AccountStore(memento); // ... Create a callback that we can verify was called - let updateCallback = new EventVerifierSingle(); + let updateCallback = new EventVerifierSingle(); // If: I update an account that doesn't exist as.update({ accountId: 'testyTest', providerId: 'cloudyCloud' }, updateCallback.eventHandler) @@ -366,7 +366,7 @@ suite('Account Store Tests', () => { // ... Create a callback to update the account let newDisplayName = 'Display Name Changed!'; - let updateCallback = (arg: data.Account) => { + let updateCallback = (arg: sqlops.Account) => { arg.displayInfo.displayName = newDisplayName; }; @@ -397,7 +397,7 @@ suite('Account Store Tests', () => { }); // TODO: Reinstate contextual logo once UI changes are checked in -const account1 = { +const account1 = { key: { providerId: 'azure', accountId: 'testAccount1' @@ -410,7 +410,7 @@ const account1 = { isStale: false }; -const account2 = { +const account2 = { key: { providerId: 'azure', accountId: 'testAccount2' @@ -430,7 +430,7 @@ function getTestMemento() { return memento; } -function assertAccountEqual(a: data.Account, b: data.Account) { +function assertAccountEqual(a: sqlops.Account, b: sqlops.Account) { assert.equal(a.key.providerId, b.key.providerId); assert.equal(a.key.accountId, b.key.accountId); diff --git a/src/sqltest/stubs/accountManagementStubs.ts b/src/sqltest/stubs/accountManagementStubs.ts index b86f1b4414..4bfaa1a492 100644 --- a/src/sqltest/stubs/accountManagementStubs.ts +++ b/src/sqltest/stubs/accountManagementStubs.ts @@ -5,7 +5,7 @@ 'use strict'; -import * as data from 'data'; +import * as sqlops from 'sqlops'; import Event from 'vs/base/common/event'; import { IAccountManagementService } from 'sql/services/accountManagement/interfaces'; import { AccountProviderAddedEventParams, UpdateAccountListEventParams } from 'sql/services/accountManagement/eventTypes'; @@ -15,10 +15,10 @@ export class AccountManagementTestService implements IAccountManagementService { _serviceBrand: any; public get addAccountProviderEvent(): Event { return () => { return undefined; }; } - public get removeAccountProviderEvent(): Event { return () => { return undefined; }; } + public get removeAccountProviderEvent(): Event { return () => { return undefined; }; } public get updateAccountListEvent(): Event { return () => { return undefined; }; } - accountUpdated(account: data.Account): Thenable { + accountUpdated(account: sqlops.Account): Thenable { return undefined; } @@ -42,23 +42,23 @@ export class AccountManagementTestService implements IAccountManagementService { return undefined; } - getAccountProviderMetadata(): Thenable { + getAccountProviderMetadata(): Thenable { return undefined; } - getAccountsForProvider(providerId: string): Thenable { + getAccountsForProvider(providerId: string): Thenable { return undefined; } - getSecurityToken(account: data.Account): Thenable<{}> { + getSecurityToken(account: sqlops.Account): Thenable<{}> { return undefined; } - removeAccount(accountKey: data.AccountKey): Thenable { + removeAccount(accountKey: sqlops.AccountKey): Thenable { return undefined; } - refreshAccount(account: data.Account): Thenable { + refreshAccount(account: sqlops.Account): Thenable { return undefined; } @@ -66,7 +66,7 @@ export class AccountManagementTestService implements IAccountManagementService { return undefined; } - registerProvider(providerMetadata: data.AccountProviderMetadata, provider: data.AccountProvider): void { + registerProvider(providerMetadata: sqlops.AccountProviderMetadata, provider: sqlops.AccountProvider): void { return undefined; } @@ -74,33 +74,33 @@ export class AccountManagementTestService implements IAccountManagementService { return undefined; } - unregisterProvider(providerMetadata: data.AccountProviderMetadata): void { + unregisterProvider(providerMetadata: sqlops.AccountProviderMetadata): void { return undefined; } } -export class AccountProviderStub implements data.AccountProvider { +export class AccountProviderStub implements sqlops.AccountProvider { autoOAuthCancelled(): Thenable { return Promise.resolve(); } - clear(account: data.AccountKey): Thenable { + clear(account: sqlops.AccountKey): Thenable { return Promise.resolve(); } - getSecurityToken(account: data.Account): Thenable<{}> { + getSecurityToken(account: sqlops.Account): Thenable<{}> { return Promise.resolve({}); } - initialize(storedAccounts: data.Account[]): Thenable { + initialize(storedAccounts: sqlops.Account[]): Thenable { return Promise.resolve(storedAccounts); } - prompt(): Thenable { + prompt(): Thenable { return Promise.resolve(undefined); } - refresh(account: data.Account): Thenable { + refresh(account: sqlops.Account): Thenable { return Promise.resolve(account); } } diff --git a/src/sqltest/stubs/capabilitiesTestService.ts b/src/sqltest/stubs/capabilitiesTestService.ts index e8f31fd4ba..6437e073ee 100644 --- a/src/sqltest/stubs/capabilitiesTestService.ts +++ b/src/sqltest/stubs/capabilitiesTestService.ts @@ -4,7 +4,7 @@ *--------------------------------------------------------------------------------------------*/ 'use strict'; -import data = require('data'); +import * as sqlops from 'sqlops'; import { ConnectionManagementInfo } from 'sql/parts/connection/common/connectionManagementInfo'; import { ICapabilitiesService } from 'sql/services/capabilities/capabilitiesService'; import Event from 'vs/base/common/event'; @@ -16,14 +16,14 @@ export class CapabilitiesTestService implements ICapabilitiesService { public _serviceBrand: any; - private _providers: data.CapabilitiesProvider[] = []; + private _providers: sqlops.CapabilitiesProvider[] = []; - private _capabilities: data.DataProtocolServerCapabilities[] = []; + private _capabilities: sqlops.DataProtocolServerCapabilities[] = []; constructor() { - let connectionProvider: data.ConnectionProviderOptions = { + let connectionProvider: sqlops.ConnectionProviderOptions = { options: [ { name: 'serverName', @@ -102,7 +102,7 @@ export class CapabilitiesTestService implements ICapabilitiesService { /** * Retrieve a list of registered server capabilities */ - public getCapabilities(): data.DataProtocolServerCapabilities[] { + public getCapabilities(): sqlops.DataProtocolServerCapabilities[] { return this._capabilities; } @@ -110,11 +110,11 @@ export class CapabilitiesTestService implements ICapabilitiesService { * Register the capabilities provider and query the provider for its capabilities * @param provider */ - public registerProvider(provider: data.CapabilitiesProvider): void { + public registerProvider(provider: sqlops.CapabilitiesProvider): void { } // Event Emitters - public get onProviderRegisteredEvent(): Event { + public get onProviderRegisteredEvent(): Event { return undefined; } diff --git a/src/sqltest/stubs/connectionManagementService.test.ts b/src/sqltest/stubs/connectionManagementService.test.ts index 37ea88ac8d..0d9a09ec78 100644 --- a/src/sqltest/stubs/connectionManagementService.test.ts +++ b/src/sqltest/stubs/connectionManagementService.test.ts @@ -9,7 +9,7 @@ import { IConnectionProfileGroup, ConnectionProfileGroup } from 'sql/parts/conne import { IConnectionProfile } from 'sql/parts/connection/common/interfaces'; import { ConnectionProfile } from 'sql/parts/connection/common/connectionProfile'; import { ConnectionManagementInfo } from 'sql/parts/connection/common/connectionManagementInfo'; -import data = require('data'); +import * as sqlops from 'sqlops'; import Event, { Emitter } from 'vs/base/common/event'; // Test stubs for commonly used objects @@ -31,7 +31,7 @@ export class TestConnectionManagementService implements IConnectionManagementSer return conEvent.event; } - registerProvider(providerId: string, provider: data.ConnectionProvider): void { + registerProvider(providerId: string, provider: sqlops.ConnectionProvider): void { } @@ -47,7 +47,7 @@ export class TestConnectionManagementService implements IConnectionManagementSer return undefined; } - onConnectionComplete(handle: number, connectionInfoSummary: data.ConnectionInfoSummary): void { + onConnectionComplete(handle: number, connectionInfoSummary: sqlops.ConnectionInfoSummary): void { } @@ -55,11 +55,11 @@ export class TestConnectionManagementService implements IConnectionManagementSer } - public onConnectionChangedNotification(handle: number, changedConnInfo: data.ChangedConnectionInfo): void { + public onConnectionChangedNotification(handle: number, changedConnInfo: sqlops.ChangedConnectionInfo): void { } - getCurrentConnectionSummary(): data.ConnectionSummary { + getCurrentConnectionSummary(): sqlops.ConnectionSummary { return undefined; } @@ -111,7 +111,7 @@ export class TestConnectionManagementService implements IConnectionManagementSer }); } - getAdvancedProperties(): data.ConnectionOption[] { + getAdvancedProperties(): sqlops.ConnectionOption[] { return []; } @@ -177,7 +177,7 @@ export class TestConnectionManagementService implements IConnectionManagementSer return new Promise(() => connectionProfile); } - public listDatabases(connectionUri: string): Thenable { + public listDatabases(connectionUri: string): Thenable { return Promise.resolve(undefined); } @@ -211,7 +211,7 @@ export class TestConnectionManagementService implements IConnectionManagementSer return true; } - getCapabilities(providerName: string): data.DataProtocolServerCapabilities { + getCapabilities(providerName: string): sqlops.DataProtocolServerCapabilities { return undefined; } diff --git a/src/sqltest/stubs/connectionProviderStub.ts b/src/sqltest/stubs/connectionProviderStub.ts index 4aa88f00db..4f2d99c7d2 100644 --- a/src/sqltest/stubs/connectionProviderStub.ts +++ b/src/sqltest/stubs/connectionProviderStub.ts @@ -3,12 +3,12 @@ * Licensed under the Source EULA. See License.txt in the project root for license information. *--------------------------------------------------------------------------------------------*/ -import * as data from 'data'; +import * as sqlops from 'sqlops'; -export class ConnectionProviderStub implements data.ConnectionProvider { +export class ConnectionProviderStub implements sqlops.ConnectionProvider { public readonly providerId = 'MSSQL'; - connect(connectionUri: string, connectionInfo: data.ConnectionInfo): Thenable { + connect(connectionUri: string, connectionInfo: sqlops.ConnectionInfo): Thenable { return undefined; } @@ -20,7 +20,7 @@ export class ConnectionProviderStub implements data.ConnectionProvider { return undefined; } - listDatabases(connectionUri: string): Thenable { + listDatabases(connectionUri: string): Thenable { return undefined; } @@ -32,7 +32,7 @@ export class ConnectionProviderStub implements data.ConnectionProvider { return undefined; } - registerOnConnectionComplete(handler: (connSummary: data.ConnectionInfoSummary) => any) { + registerOnConnectionComplete(handler: (connSummary: sqlops.ConnectionInfoSummary) => any) { return undefined; } @@ -40,7 +40,7 @@ export class ConnectionProviderStub implements data.ConnectionProvider { return undefined; } - registerOnConnectionChanged(handler: (changedConnInfo: data.ChangedConnectionInfo) => any) { + registerOnConnectionChanged(handler: (changedConnInfo: sqlops.ChangedConnectionInfo) => any) { return undefined; } } \ No newline at end of file diff --git a/src/sqltest/stubs/credentialsTestStubs.ts b/src/sqltest/stubs/credentialsTestStubs.ts index 45d8386bd9..0ea2c85c92 100644 --- a/src/sqltest/stubs/credentialsTestStubs.ts +++ b/src/sqltest/stubs/credentialsTestStubs.ts @@ -5,15 +5,15 @@ 'use strict'; -import * as data from 'data'; +import * as sqlops from 'sqlops'; import { TPromise } from 'vs/base/common/winjs.base'; -import {CredentialManagementEvents, ICredentialsService} from "sql/services/credentials/credentialsService"; -import {IDisposable} from "vs/base/common/lifecycle"; +import { CredentialManagementEvents, ICredentialsService } from 'sql/services/credentials/credentialsService'; +import { IDisposable } from 'vs/base/common/lifecycle'; -export class CredentialsTestProvider implements data.CredentialProvider { +export class CredentialsTestProvider implements sqlops.CredentialProvider { handle: number; - public storedCredentials: {[K: string]: data.Credential} = {}; + public storedCredentials: { [K: string]: sqlops.Credential } = {}; saveCredential(credentialId: string, password: string): Thenable { this.storedCredentials[credentialId] = { @@ -23,7 +23,7 @@ export class CredentialsTestProvider implements data.CredentialProvider { return TPromise.as(true); } - readCredential(credentialId: string): Thenable { + readCredential(credentialId: string): Thenable { return TPromise.as(this.storedCredentials[credentialId]); } @@ -41,7 +41,7 @@ export class CredentialsTestService implements ICredentialsService { return undefined; } - readCredential(credentialId: string): Thenable { + readCredential(credentialId: string): Thenable { return undefined; } diff --git a/src/sqltest/stubs/objectExplorerProviderTestService.ts b/src/sqltest/stubs/objectExplorerProviderTestService.ts index b62e8a5607..0b14a5967a 100644 --- a/src/sqltest/stubs/objectExplorerProviderTestService.ts +++ b/src/sqltest/stubs/objectExplorerProviderTestService.ts @@ -2,35 +2,35 @@ * Copyright (c) Microsoft Corporation. All rights reserved. * Licensed under the Source EULA. See License.txt in the project root for license information. *--------------------------------------------------------------------------------------------*/ -import data = require('data'); +import * as sqlops from 'sqlops'; // Test stubs for commonly used objects -export class ObjectExplorerProviderTestService implements data.ObjectExplorerProvider { +export class ObjectExplorerProviderTestService implements sqlops.ObjectExplorerProvider { public readonly providerId = 'MSSQL'; - public createNewSession(connInfo: data.ConnectionInfo): Thenable { + public createNewSession(connInfo: sqlops.ConnectionInfo): Thenable { return Promise.resolve(undefined); } - public expandNode(nodeInfo: data.ExpandNodeInfo): Thenable { + public expandNode(nodeInfo: sqlops.ExpandNodeInfo): Thenable { return Promise.resolve(undefined); } - public refreshNode(nodeInfo: data.ExpandNodeInfo): Thenable { + public refreshNode(nodeInfo: sqlops.ExpandNodeInfo): Thenable { return Promise.resolve(undefined); } - public closeSession(closeSessionInfo: data.ObjectExplorerCloseSessionInfo): Thenable { + public closeSession(closeSessionInfo: sqlops.ObjectExplorerCloseSessionInfo): Thenable { return Promise.resolve(undefined); } - public registerOnSessionCreated(handler: (response: data.ObjectExplorerSession) => any): void { + public registerOnSessionCreated(handler: (response: sqlops.ObjectExplorerSession) => any): void { } - public registerOnExpandCompleted(handler: (response: data.ObjectExplorerExpandInfo) => any): void { + public registerOnExpandCompleted(handler: (response: sqlops.ObjectExplorerExpandInfo) => any): void { } } \ No newline at end of file diff --git a/src/sqltest/stubs/resourceProviderServiceStub.ts b/src/sqltest/stubs/resourceProviderServiceStub.ts index e8752f4ab4..cb943ee197 100644 --- a/src/sqltest/stubs/resourceProviderServiceStub.ts +++ b/src/sqltest/stubs/resourceProviderServiceStub.ts @@ -3,14 +3,14 @@ * Licensed under the Source EULA. See License.txt in the project root for license information. *--------------------------------------------------------------------------------------------*/ -import * as data from 'data'; +import * as sqlops from 'sqlops'; import { IHandleFirewallRuleResult, IResourceProviderService } from 'sql/parts/accountManagement/common/interfaces'; import { IConnectionProfile } from 'sql/parts/connection/common/interfaces'; export class ResourceProviderStub implements IResourceProviderService { _serviceBrand: any; - registerProvider(providerId: string, provider: data.ResourceProvider) { + registerProvider(providerId: string, provider: sqlops.ResourceProvider) { } @@ -18,7 +18,7 @@ export class ResourceProviderStub implements IResourceProviderService { } - createFirewallRule(selectedAccount: data.Account, firewallruleInfo: data.FirewallRuleInfo, resourceProviderId: string): Promise { + createFirewallRule(selectedAccount: sqlops.Account, firewallruleInfo: sqlops.FirewallRuleInfo, resourceProviderId: string): Promise { return undefined; } diff --git a/src/sqltest/workbench/api/extHostAccountManagement.test.ts b/src/sqltest/workbench/api/extHostAccountManagement.test.ts index 7a7cccef10..f00f54de5e 100644 --- a/src/sqltest/workbench/api/extHostAccountManagement.test.ts +++ b/src/sqltest/workbench/api/extHostAccountManagement.test.ts @@ -6,7 +6,7 @@ 'use strict'; import * as assert from 'assert'; -import * as data from 'data'; +import * as sqlops from 'sqlops'; import * as TypeMoq from 'typemoq'; import { AccountProviderStub, AccountManagementTestService } from 'sqltest/stubs/accountManagementStubs'; import { ExtHostAccountManagement } from 'sql/workbench/api/node/extHostAccountManagement'; @@ -22,8 +22,8 @@ const IThreadService = createDecorator('threadService'); // SUITE STATE ///////////////////////////////////////////////////////////// let instantiationService: TestInstantiationService; -let mockAccountMetadata: data.AccountProviderMetadata; -let mockAccount: data.Account; +let mockAccountMetadata: sqlops.AccountProviderMetadata; +let mockAccount: sqlops.Account; let threadService: TestThreadService; // TESTS /////////////////////////////////////////////////////////////////// @@ -258,8 +258,8 @@ suite('ExtHostAccountManagement', () => { }); }); -function getMockAccountProvider(): TypeMoq.Mock { - let mock = TypeMoq.Mock.ofType(AccountProviderStub); +function getMockAccountProvider(): TypeMoq.Mock { + let mock = TypeMoq.Mock.ofType(AccountProviderStub); mock.setup((obj) => obj.clear(TypeMoq.It.isValue(mockAccount.key))) .returns(() => Promise.resolve(undefined)); mock.setup((obj) => obj.refresh(TypeMoq.It.isValue(mockAccount))) diff --git a/src/sqltest/workbench/api/extHostCredentialManagement.test.ts b/src/sqltest/workbench/api/extHostCredentialManagement.test.ts index e68aef9cdf..f8c3ef967c 100644 --- a/src/sqltest/workbench/api/extHostCredentialManagement.test.ts +++ b/src/sqltest/workbench/api/extHostCredentialManagement.test.ts @@ -6,15 +6,15 @@ 'use strict'; import * as assert from 'assert'; -import {TestThreadService} from 'vs/workbench/test/electron-browser/api/testThreadService'; -import {TestInstantiationService} from 'vs/platform/instantiation/test/common/instantiationServiceMock'; -import {ExtHostCredentialManagement} from 'sql/workbench/api/node/extHostCredentialManagement'; -import {SqlMainContext} from 'sql/workbench/api/node/sqlExtHost.protocol'; -import {IThreadService} from 'vs/workbench/services/thread/common/threadService'; -import {MainThreadCredentialManagement} from 'sql/workbench/api/node/mainThreadCredentialManagement'; -import {CredentialsTestProvider, CredentialsTestService} from 'sqltest/stubs/credentialsTestStubs'; -import {ICredentialsService} from 'sql/services/credentials/credentialsService'; -import {Credential, CredentialProvider} from 'data'; +import { TestThreadService } from 'vs/workbench/test/electron-browser/api/testThreadService'; +import { TestInstantiationService } from 'vs/platform/instantiation/test/common/instantiationServiceMock'; +import { ExtHostCredentialManagement } from 'sql/workbench/api/node/extHostCredentialManagement'; +import { SqlMainContext } from 'sql/workbench/api/node/sqlExtHost.protocol'; +import { IThreadService } from 'vs/workbench/services/thread/common/threadService'; +import { MainThreadCredentialManagement } from 'sql/workbench/api/node/mainThreadCredentialManagement'; +import { CredentialsTestProvider, CredentialsTestService } from 'sqltest/stubs/credentialsTestStubs'; +import { ICredentialsService } from 'sql/services/credentials/credentialsService'; +import { Credential, CredentialProvider } from 'sqlops'; import { createDecorator } from 'vs/platform/instantiation/common/instantiation'; const IThreadService = createDecorator('threadService'); @@ -116,18 +116,18 @@ suite('ExtHostCredentialManagement', () => { // Then: I should get an error extHost.$getCredentialProvider(undefined) .then( - () => { done('Provider was returned from undefined'); }, - () => { /* Swallow error, this is success path */ } + () => { done('Provider was returned from undefined'); }, + () => { /* Swallow error, this is success path */ } ) .then(() => { return extHost.$getCredentialProvider(null); }) .then( - () => { done('Provider was returned from null'); }, - () => { /* Swallow error, this is success path */ } + () => { done('Provider was returned from null'); }, + () => { /* Swallow error, this is success path */ } ) - .then(() => {return extHost.$getCredentialProvider(''); }) + .then(() => { return extHost.$getCredentialProvider(''); }) .then( - () => { done('Provider was returned from \'\''); }, - () => { done(); } + () => { done('Provider was returned from \'\''); }, + () => { done(); } ); }); }); diff --git a/src/sqltest/workbench/api/extHostDataProtocol.test.ts b/src/sqltest/workbench/api/extHostDataProtocol.test.ts index d385f2eb21..b26144e529 100644 --- a/src/sqltest/workbench/api/extHostDataProtocol.test.ts +++ b/src/sqltest/workbench/api/extHostDataProtocol.test.ts @@ -27,7 +27,7 @@ import { ExtHostDiagnostics } from 'vs/workbench/api/node/extHostDiagnostics'; import { ExtHostHeapService } from 'vs/workbench/api/node/extHostHeapService'; import * as vscode from 'vscode'; -import * as data from 'data'; +import * as sqlops from 'sqlops'; import { ExtHostDataProtocol } from 'sql/workbench/api/node/extHostDataProtocol'; import { SqlExtHostContext } from 'sql/workbench/api/node/sqlExtHost.protocol'; diff --git a/tslint.json b/tslint.json index 860f9e7eda..43c70c6616 100644 --- a/tslint.json +++ b/tslint.json @@ -46,9 +46,9 @@ "node" ] } - ], + ], // {{SQL CARBON EDIT}} - // remove import patterns + // remove import patterns "duplicate-imports": true, "translation-remind": true },