diff --git a/.vscode/settings.json b/.vscode/settings.json index cdb66a421..310ff76a3 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -18,7 +18,7 @@ ], "editor.formatOnSave": false, "editor.codeActionsOnSave": { - "source.fixAll.eslint": true + "source.fixAll.eslint": "explicit" }, "[markdown]": { "editor.defaultFormatter": "esbenp.prettier-vscode" @@ -32,12 +32,13 @@ "[java]": { "editor.defaultFormatter": "redhat.java", "editor.codeActionsOnSave": { - "source.fixAll.spotlessGradle": true + "source.fixAll.spotlessGradle": "explicit" } }, "[xml]": { "editor.defaultFormatter": "esbenp.prettier-vscode" }, "files.insertFinalNewline": true, - "files.trimTrailingWhitespace": true + "files.trimTrailingWhitespace": true, + "java.compile.nullAnalysis.mode": "disabled" } diff --git a/extension/package-lock.json b/extension/package-lock.json index dfa036b18..871451056 100644 --- a/extension/package-lock.json +++ b/extension/package-lock.json @@ -17,7 +17,7 @@ "minimatch": "^5.1.1", "string-argv": "^0.3.1", "tree-kill": "^1.2.2", - "vscode-extension-telemetry-wrapper": "0.13.3", + "vscode-extension-telemetry-wrapper": "0.14.0", "vscode-languageclient": "7.0.0" }, "devDependencies": { @@ -307,46 +307,118 @@ } }, "node_modules/@microsoft/1ds-core-js": { - "version": "3.2.10", - "resolved": "https://registry.npmjs.org/@microsoft/1ds-core-js/-/1ds-core-js-3.2.10.tgz", - "integrity": "sha512-fYzgrVuAK6HH66QJq5gyB+hmql2OTWwvP2520B7vM/idl8+O0yV9/PPTuwTpCWzGcksq5X3LaUX2MugzaRHLHA==", + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/@microsoft/1ds-core-js/-/1ds-core-js-4.2.1.tgz", + "integrity": "sha512-fcowL6s42sj4+yU0nko9gkGDCGbeQEGgYxXnwejSAjMw9MKZ0jjYRvxFBR+Aip6aCzf0WV0Jw0j4FA72EXMbIg==", "dependencies": { - "@microsoft/applicationinsights-core-js": "2.8.12", - "@microsoft/applicationinsights-shims": "^2.0.2", - "@microsoft/dynamicproto-js": "^1.1.7" + "@microsoft/applicationinsights-core-js": "3.2.1", + "@microsoft/applicationinsights-shims": "3.0.1", + "@microsoft/dynamicproto-js": "^2.0.3", + "@nevware21/ts-async": ">= 0.5.1 < 2.x", + "@nevware21/ts-utils": ">= 0.11.1 < 2.x" } }, "node_modules/@microsoft/1ds-post-js": { - "version": "3.2.10", - "resolved": "https://registry.npmjs.org/@microsoft/1ds-post-js/-/1ds-post-js-3.2.10.tgz", - "integrity": "sha512-/yUdt1wUQpB0jM3LGwgrkSX2TLc3geHj4RflYYmW20uHN9XDqjSQfPiTm5m1sMcISz7OdQQd/PeqYnybkBOMfQ==", + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/@microsoft/1ds-post-js/-/1ds-post-js-4.2.1.tgz", + "integrity": "sha512-MeGvTxBbADo8um8ylTJST+gDcIpKx0mLtLtcbJtgSdL+SerITf2wvweobE3/NMQiWI8URtCb1XIYKauW7lqVlg==", + "dependencies": { + "@microsoft/1ds-core-js": "4.2.1", + "@microsoft/applicationinsights-shims": "3.0.1", + "@microsoft/dynamicproto-js": "^2.0.3", + "@nevware21/ts-async": ">= 0.5.1 < 2.x", + "@nevware21/ts-utils": ">= 0.11.1 < 2.x" + } + }, + "node_modules/@microsoft/applicationinsights-channel-js": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/@microsoft/applicationinsights-channel-js/-/applicationinsights-channel-js-3.2.1.tgz", + "integrity": "sha512-+aWBBbIW4/Tf4sLGZmWhd5chktBpKQpnCbkuoTHGe+AWO8Q8fsDa4w2Y89OGuEg9OJ3kr2VKTUU7LgILKFz/cg==", "dependencies": { - "@microsoft/1ds-core-js": "3.2.10", - "@microsoft/applicationinsights-shims": "^2.0.2", - "@microsoft/dynamicproto-js": "^1.1.7" + "@microsoft/applicationinsights-common": "3.2.1", + "@microsoft/applicationinsights-core-js": "3.2.1", + "@microsoft/applicationinsights-shims": "3.0.1", + "@microsoft/dynamicproto-js": "^2.0.3", + "@nevware21/ts-async": ">= 0.5.1 < 2.x", + "@nevware21/ts-utils": ">= 0.11.1 < 2.x" + }, + "peerDependencies": { + "tslib": "*" + } + }, + "node_modules/@microsoft/applicationinsights-common": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/@microsoft/applicationinsights-common/-/applicationinsights-common-3.2.1.tgz", + "integrity": "sha512-vRYQ1SIZJEz1eFbs2AQiLtev5L+zmjZ1Jkj3BWfIxJLd6n0cVR4NZETBSyMuk11KH7MIOrDLvh1CzjBIJIpDAg==", + "dependencies": { + "@microsoft/applicationinsights-core-js": "3.2.1", + "@microsoft/applicationinsights-shims": "3.0.1", + "@microsoft/dynamicproto-js": "^2.0.3", + "@nevware21/ts-utils": ">= 0.11.1 < 2.x" + }, + "peerDependencies": { + "tslib": "*" } }, "node_modules/@microsoft/applicationinsights-core-js": { - "version": "2.8.12", - "resolved": "https://registry.npmjs.org/@microsoft/applicationinsights-core-js/-/applicationinsights-core-js-2.8.12.tgz", - "integrity": "sha512-lA4epwWPBJ4awx07QQVCkoxygsl0qiTNoSYaR63hRE56ybu4kpp3tpYo/AfOI1DZMgKB8H0EwDz4vVmzUT3p/A==", + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/@microsoft/applicationinsights-core-js/-/applicationinsights-core-js-3.2.1.tgz", + "integrity": "sha512-euxkDrF5BroAY7wgviaTVZdMvRAENQtUW4pDTsIjJK26shi1m5fPCc5l+vMn7kO2wQEaEgAOVw+/kSQgXDHN+Q==", "dependencies": { - "@microsoft/applicationinsights-shims": "2.0.2", - "@microsoft/dynamicproto-js": "^1.1.9" + "@microsoft/applicationinsights-shims": "3.0.1", + "@microsoft/dynamicproto-js": "^2.0.3", + "@nevware21/ts-async": ">= 0.5.1 < 2.x", + "@nevware21/ts-utils": ">= 0.11.1 < 2.x" }, "peerDependencies": { "tslib": "*" } }, "node_modules/@microsoft/applicationinsights-shims": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/@microsoft/applicationinsights-shims/-/applicationinsights-shims-2.0.2.tgz", - "integrity": "sha512-PoHEgsnmcqruLNHZ/amACqdJ6YYQpED0KSRe6J7gIJTtpZC1FfFU9b1fmDKDKtFoUSrPzEh1qzO3kmRZP0betg==" + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@microsoft/applicationinsights-shims/-/applicationinsights-shims-3.0.1.tgz", + "integrity": "sha512-DKwboF47H1nb33rSUfjqI6ryX29v+2QWcTrRvcQDA32AZr5Ilkr7whOOSsD1aBzwqX0RJEIP1Z81jfE3NBm/Lg==", + "dependencies": { + "@nevware21/ts-utils": ">= 0.9.4 < 2.x" + } + }, + "node_modules/@microsoft/applicationinsights-web-basic": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/@microsoft/applicationinsights-web-basic/-/applicationinsights-web-basic-3.2.1.tgz", + "integrity": "sha512-aPvZX8VOSwLwnXpLpRnFXUB5Znw+9mcsp4/UMWi6V0SVGKTlyGEDn/xcHAN2uKEcb5aD/w9UYdAsbPWEW6yEpw==", + "dependencies": { + "@microsoft/applicationinsights-channel-js": "3.2.1", + "@microsoft/applicationinsights-common": "3.2.1", + "@microsoft/applicationinsights-core-js": "3.2.1", + "@microsoft/applicationinsights-shims": "3.0.1", + "@microsoft/dynamicproto-js": "^2.0.3", + "@nevware21/ts-async": ">= 0.5.1 < 2.x", + "@nevware21/ts-utils": ">= 0.11.1 < 2.x" + }, + "peerDependencies": { + "tslib": "*" + } }, "node_modules/@microsoft/dynamicproto-js": { - "version": "1.1.9", - "resolved": "https://registry.npmjs.org/@microsoft/dynamicproto-js/-/dynamicproto-js-1.1.9.tgz", - "integrity": "sha512-n1VPsljTSkthsAFYdiWfC+DKzK2WwcRp83Y1YAqdX552BstvsDjft9YXppjUzp11BPsapDoO1LDgrDB0XVsfNQ==" + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/@microsoft/dynamicproto-js/-/dynamicproto-js-2.0.3.tgz", + "integrity": "sha512-JTWTU80rMy3mdxOjjpaiDQsTLZ6YSGGqsjURsY6AUQtIj0udlF/jYmhdLZu8693ZIC0T1IwYnFa0+QeiMnziBA==", + "dependencies": { + "@nevware21/ts-utils": ">= 0.10.4 < 2.x" + } + }, + "node_modules/@nevware21/ts-async": { + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/@nevware21/ts-async/-/ts-async-0.5.1.tgz", + "integrity": "sha512-O2kN8n2HpDWJ7Oji+oTMnhITrCndmrNvrHbGDwAIBydx+FWvLE/vrw4QwnRRMvSCa2AJrcP59Ryklxv30KfkWQ==", + "dependencies": { + "@nevware21/ts-utils": ">= 0.11.2 < 2.x" + } + }, + "node_modules/@nevware21/ts-utils": { + "version": "0.11.2", + "resolved": "https://registry.npmjs.org/@nevware21/ts-utils/-/ts-utils-0.11.2.tgz", + "integrity": "sha512-80W8BkS09kkGuUHJX50Fqq+QqAslxUaOQytH+3JhRacXs1EpEt2JOOkYKytqFZAYir3SeH9fahniEaDzIBxlUw==" }, "node_modules/@nodelib/fs.scandir": { "version": "2.1.5", @@ -822,15 +894,16 @@ } }, "node_modules/@vscode/extension-telemetry": { - "version": "0.6.2", - "resolved": "https://registry.npmjs.org/@vscode/extension-telemetry/-/extension-telemetry-0.6.2.tgz", - "integrity": "sha512-yb/wxLuaaCRcBAZtDCjNYSisAXz3FWsSqAha5nhHcYxx2ZPdQdWuZqVXGKq0ZpHVndBWWtK6XqtpCN2/HB4S1w==", + "version": "0.9.6", + "resolved": "https://registry.npmjs.org/@vscode/extension-telemetry/-/extension-telemetry-0.9.6.tgz", + "integrity": "sha512-qWK2GNw+b69QRYpjuNM9g3JKToMICoNIdc0rQMtvb4gIG9vKKCZCVCz+ZOx6XM/YlfWAyuPiyxcjIY0xyF+Djg==", "dependencies": { - "@microsoft/1ds-core-js": "^3.2.3", - "@microsoft/1ds-post-js": "^3.2.3" + "@microsoft/1ds-core-js": "^4.1.2", + "@microsoft/1ds-post-js": "^4.1.2", + "@microsoft/applicationinsights-web-basic": "^3.1.2" }, "engines": { - "vscode": "^1.60.0" + "vscode": "^1.75.0" } }, "node_modules/@vscode/test-electron": { @@ -5338,15 +5411,12 @@ } }, "node_modules/vscode-extension-telemetry-wrapper": { - "version": "0.13.3", - "resolved": "https://registry.npmjs.org/vscode-extension-telemetry-wrapper/-/vscode-extension-telemetry-wrapper-0.13.3.tgz", - "integrity": "sha512-k/PbUbH9/xqiMXI2g2RXpDg+4/v08t3NzdPc7HuDPF3A1XcYkgYwsPnS/bqsKZNymSQdbLvVuie6STMxbDX9KQ==", + "version": "0.14.0", + "resolved": "https://registry.npmjs.org/vscode-extension-telemetry-wrapper/-/vscode-extension-telemetry-wrapper-0.14.0.tgz", + "integrity": "sha512-EYr1hqiYVSGfupchDN405zSwuvA8V3tJ62KcLIRDr/4ongOc2AvSZ0BlRq8a0w950tadsMlXTKEheB97fZBttg==", "dependencies": { - "@vscode/extension-telemetry": "^0.6.2", + "@vscode/extension-telemetry": "^0.9.6", "uuid": "^8.3.2" - }, - "engines": { - "vscode": "^1.14.0" } }, "node_modules/vscode-jsonrpc": { diff --git a/extension/package.json b/extension/package.json index f80bfe4c6..2e6d5ae63 100644 --- a/extension/package.json +++ b/extension/package.json @@ -987,7 +987,7 @@ "minimatch": "^5.1.1", "string-argv": "^0.3.1", "tree-kill": "^1.2.2", - "vscode-extension-telemetry-wrapper": "0.13.3", + "vscode-extension-telemetry-wrapper": "0.14.0", "vscode-languageclient": "7.0.0" } } diff --git a/extension/src/bs/BuildServerController.ts b/extension/src/bs/BuildServerController.ts index d4316a83d..0d19224ab 100644 --- a/extension/src/bs/BuildServerController.ts +++ b/extension/src/bs/BuildServerController.ts @@ -59,21 +59,29 @@ export class BuildServerController implements Disposable { this.logOutputChannel.appendLine(msg); } }), - commands.registerCommand(SEND_TELEMETRY_CMD, (data: string | object) => { - let jsonString: string; + commands.registerCommand(SEND_TELEMETRY_CMD, (data: string | object | Error) => { let jsonObj: { [key: string]: any }; if (typeof data === "string") { jsonObj = JSON.parse(data); - jsonString = data; } else { jsonObj = data; - jsonString = JSON.stringify(data); } - sendInfo("", { - kind: jsonObj.kind, - data: jsonString, - ...(jsonObj.schemaVersion && { schemaVersion: jsonObj.schemaVersion }), - }); + + const { kind, trace, rootCauseMessage, schemaVersion, ...rest } = jsonObj; + if (trace || rootCauseMessage) { + sendInfo("", { + kind: "bsp-error", + operationName: jsonObj.operationName, + rootCauseMessage, + trace, + }); + } else { + sendInfo("", { + kind: kind, + data2: JSON.stringify(rest), + ...(schemaVersion && { schemaVersion: schemaVersion }), + }); + } }), workspace.onDidChangeConfiguration((e: ConfigurationChangeEvent) => { if (e.affectsConfiguration("java.gradle.buildServer.enabled")) { diff --git a/extension/src/index.ts b/extension/src/index.ts index 39dd644a9..d6b7863ac 100644 --- a/extension/src/index.ts +++ b/extension/src/index.ts @@ -7,7 +7,7 @@ import { Extension } from "./Extension"; let extension: Extension; export async function activate(context: vscode.ExtensionContext): Promise { - await initializeFromJsonFile(context.asAbsolutePath("./package.json"), { firstParty: true }); + await initializeFromJsonFile(context.asAbsolutePath("./package.json")); return instrumentOperation("activation", activateExtension)(context); }