diff --git a/.esbuild.config.js b/.esbuild.config.js deleted file mode 100644 index c9be900..0000000 --- a/.esbuild.config.js +++ /dev/null @@ -1,51 +0,0 @@ -const esbuild = require('esbuild'); - -// Build node packages and their minifed versions -esbuild.build({ - entryPoints: ['src/node/telemetryReporter.ts'], - tsconfig: "./src/node/tsconfig.json", - bundle: true, - external: ['vscode', './node_modules/*'], - sourcemap: true, - platform: 'node', - target: ['node14'], - outfile: 'lib/telemetryReporter.node.js', -}).catch(() => process.exit(1)) - -esbuild.build({ - entryPoints: ['src/node/telemetryReporter.ts'], - tsconfig: "./src/node/tsconfig.json", - bundle: true, - sourcemap: false, - external: ['vscode', './node_modules/*'], - minify: true, - platform: 'node', - target: ['node14'], - outfile: 'lib/telemetryReporter.node.min.js', -}).catch(() => process.exit(1)) - -// Build browser packages and their minified versions -esbuild.build({ - entryPoints: ['src/browser/telemetryReporter.ts'], - format: "esm", - tsconfig: "./src/browser/tsconfig.json", - bundle: true, - sourcemap: true, - external: ['vscode', './node_modules/*'], - platform: 'browser', - target: ['es6'], - outfile: 'lib/telemetryReporter.web.js', -}).catch(() => process.exit(1)) - -esbuild.build({ - entryPoints: ['src/browser/telemetryReporter.ts'], - tsconfig: "./src/browser/tsconfig.json", - format: "esm", - bundle: true, - sourcemap: false, - external: ['vscode', './node_modules/*'], - minify: true, - platform: 'browser', - target: ['es6'], - outfile: 'lib/telemetryReporter.web.min.js', -}).catch(() => process.exit(1)) diff --git a/.gitignore b/.gitignore index 7a33cf1..8cb6b8d 100644 --- a/.gitignore +++ b/.gitignore @@ -9,8 +9,13 @@ npm-debug.log # sourcemaps src/**/*.js.map -lib/**/*.js.map -lib/**/*.js + +# dist +dist/**/* +!dist/**/*.d.ts # Packaged node modules -*.tgz \ No newline at end of file +*.tgz + +# Extracted npm modules +package \ No newline at end of file diff --git a/.npmignore b/.npmignore index 88d0e3f..53426a5 100644 --- a/.npmignore +++ b/.npmignore @@ -1,10 +1,6 @@ .vscode build .github -lib/*.js.map -lib/*.js -lib/test -!lib/*.min.js node_modules src typings_patches @@ -16,4 +12,5 @@ tsfmt.json .esbuild.config.js .eslintrc.json .eslintignore +*.tgz *.test.ts \ No newline at end of file diff --git a/lib/telemetryReporter.d.ts b/dist/telemetryReporter.d.ts similarity index 100% rename from lib/telemetryReporter.d.ts rename to dist/telemetryReporter.d.ts diff --git a/injectVersion.js b/injectVersion.js new file mode 100644 index 0000000..680ca97 --- /dev/null +++ b/injectVersion.js @@ -0,0 +1,17 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ + +const fs = require('fs'); + +// Reads dist/node/common/baseTelemetryReporter.js and replaces PACKAGE_JSON_VERSION with the number from the package.json +const packageJson = require('./package.json'); +const baseTelemetryReporter = fs.readFileSync('./dist/node/common/baseTelemetryReporter.js', 'utf8'); +const newBaseTelemetryReporter = baseTelemetryReporter.replace(/PACKAGE_JSON_VERSION/g, packageJson.version); +fs.writeFileSync('./dist/node/common/baseTelemetryReporter.js', newBaseTelemetryReporter); + +// Reads dist/browser/common/baseTelemetryReporter.js and replaces PACKAGE_JSON_VERSION with the number from the package.json +const baseTelemetryReporterBrowser = fs.readFileSync('./dist/browser/common/baseTelemetryReporter.js', 'utf8'); +const newBaseTelemetryReporterBrowser = baseTelemetryReporterBrowser.replace(/PACKAGE_JSON_VERSION/g, packageJson.version); +fs.writeFileSync('./dist/browser/common/baseTelemetryReporter.js', newBaseTelemetryReporterBrowser); \ No newline at end of file diff --git a/package-lock.json b/package-lock.json index 4f7866b..650baf6 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "@vscode/extension-telemetry", - "version": "0.6.2", + "version": "0.6.3", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "@vscode/extension-telemetry", - "version": "0.6.2", + "version": "0.6.3", "license": "MIT", "dependencies": { "@microsoft/1ds-core-js": "^3.2.4", @@ -21,7 +21,6 @@ "@types/vscode": "^1.60.0", "@typescript-eslint/eslint-plugin": "^5.18.0", "@typescript-eslint/parser": "^5.18.0", - "esbuild": "^0.14.32", "eslint": "^8.12.0", "mocha": "^9.2.2", "sinon": "^13.0.2", @@ -1153,361 +1152,6 @@ "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", "dev": true }, - "node_modules/esbuild": { - "version": "0.14.32", - "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.14.32.tgz", - "integrity": "sha512-RuzVUP/bkStmnVHK6Gh3gjaMjfXNLqBqvYVDiS9JKl5KdRdRLUeW5Wo8NrbL7cL6CW7Cyak7SvACqyPOBuA8vA==", - "dev": true, - "hasInstallScript": true, - "bin": { - "esbuild": "bin/esbuild" - }, - "engines": { - "node": ">=12" - }, - "optionalDependencies": { - "esbuild-android-64": "0.14.32", - "esbuild-android-arm64": "0.14.32", - "esbuild-darwin-64": "0.14.32", - "esbuild-darwin-arm64": "0.14.32", - "esbuild-freebsd-64": "0.14.32", - "esbuild-freebsd-arm64": "0.14.32", - "esbuild-linux-32": "0.14.32", - "esbuild-linux-64": "0.14.32", - "esbuild-linux-arm": "0.14.32", - "esbuild-linux-arm64": "0.14.32", - "esbuild-linux-mips64le": "0.14.32", - "esbuild-linux-ppc64le": "0.14.32", - "esbuild-linux-riscv64": "0.14.32", - "esbuild-linux-s390x": "0.14.32", - "esbuild-netbsd-64": "0.14.32", - "esbuild-openbsd-64": "0.14.32", - "esbuild-sunos-64": "0.14.32", - "esbuild-windows-32": "0.14.32", - "esbuild-windows-64": "0.14.32", - "esbuild-windows-arm64": "0.14.32" - } - }, - "node_modules/esbuild-android-64": { - "version": "0.14.32", - "resolved": "https://registry.npmjs.org/esbuild-android-64/-/esbuild-android-64-0.14.32.tgz", - "integrity": "sha512-q1qjB2UcoWehR9Yp9dO2RdJUeLLrXAYsbOU4tkYa+GmJzxTwuvOrMdvaemsXYqb7F4STVTca9KpfqGicEChtUg==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "android" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/esbuild-android-arm64": { - "version": "0.14.32", - "resolved": "https://registry.npmjs.org/esbuild-android-arm64/-/esbuild-android-arm64-0.14.32.tgz", - "integrity": "sha512-bs1uu+RuM15f8yjFc0FhPDE/6NID4fKl7beDVsGCme6Q8ld2IzRXmp5QaHurlcH93PFyQnUgVvdahIWgtK2QZw==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "android" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/esbuild-darwin-64": { - "version": "0.14.32", - "resolved": "https://registry.npmjs.org/esbuild-darwin-64/-/esbuild-darwin-64-0.14.32.tgz", - "integrity": "sha512-6MekflAld28wYtzanwZTxQlxMPeYw/yv1ToFG2hpo3LGxOIE2mBD5IJaMCcyy1//EYvGnGToO3p6XKdbS8E1QQ==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/esbuild-darwin-arm64": { - "version": "0.14.32", - "resolved": "https://registry.npmjs.org/esbuild-darwin-arm64/-/esbuild-darwin-arm64-0.14.32.tgz", - "integrity": "sha512-BHYIjiPDYQTD+4zwqdqRo+I2bbg3fn9mah/gZm4SCCy+7uwTTYOYobIunHT7wVCgxnFCr50PJUdaMrEoCImRbw==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/esbuild-freebsd-64": { - "version": "0.14.32", - "resolved": "https://registry.npmjs.org/esbuild-freebsd-64/-/esbuild-freebsd-64-0.14.32.tgz", - "integrity": "sha512-6BOBhtfAf9AlfjL1AvtfVOxwY82tHPfYrA0lskJpFjfiEMGTLU6e0vdOwb4+4x++gGz49azuGK0woYqdfL03uw==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "freebsd" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/esbuild-freebsd-arm64": { - "version": "0.14.32", - "resolved": "https://registry.npmjs.org/esbuild-freebsd-arm64/-/esbuild-freebsd-arm64-0.14.32.tgz", - "integrity": "sha512-zIRR4gKQW56p/xLM8TlpxVBNiX0w3VoR9ZxfH4nrfJ7QiL0SYHRy8YPL5C7zMWRjSze2WxQRHfS9bHKdVrVXBw==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "freebsd" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/esbuild-linux-32": { - "version": "0.14.32", - "resolved": "https://registry.npmjs.org/esbuild-linux-32/-/esbuild-linux-32-0.14.32.tgz", - "integrity": "sha512-kn0AkGtPvzA6xiv93/mavvZ7DVinu/ewh2F2S0/8mE8/PXi3D4+svZ6V3beV5DIH7vcHVuGhoooWav8HPF04tg==", - "cpu": [ - "ia32" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/esbuild-linux-64": { - "version": "0.14.32", - "resolved": "https://registry.npmjs.org/esbuild-linux-64/-/esbuild-linux-64-0.14.32.tgz", - "integrity": "sha512-Ie+PMvrPj/HCOmSc0QubKttDxP2iBtPzDu+b+V3HGDGwkGmVpDkyXx1NXp5LjkIphIay2QekMwy1dSw3KDqCew==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/esbuild-linux-arm": { - "version": "0.14.32", - "resolved": "https://registry.npmjs.org/esbuild-linux-arm/-/esbuild-linux-arm-0.14.32.tgz", - "integrity": "sha512-R/Bvn/YQNDyvfN0SERh/I7hKPqN+nSSruQdVeiYEJ+jc3fUi73jXYAscpTQgIBeER/yXnEsgJGU/UQ9+sscr7A==", - "cpu": [ - "arm" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/esbuild-linux-arm64": { - "version": "0.14.32", - "resolved": "https://registry.npmjs.org/esbuild-linux-arm64/-/esbuild-linux-arm64-0.14.32.tgz", - "integrity": "sha512-ykoqKaxX95nB+lk2K/+qxr0ke+BxkeVi0yKOnymCR5Ive7IZDHa4BJX53NEGSBKLfWPwKE6SXTz8qcEewSntoA==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/esbuild-linux-mips64le": { - "version": "0.14.32", - "resolved": "https://registry.npmjs.org/esbuild-linux-mips64le/-/esbuild-linux-mips64le-0.14.32.tgz", - "integrity": "sha512-IilnlBexpHpt/5po0cle/L/S6CYnwaq23UuAqWzxp+opHLOCNnyANpC1jOoP551aRx4JuZ7z3xZZ7bYQZB147w==", - "cpu": [ - "mips64el" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/esbuild-linux-ppc64le": { - "version": "0.14.32", - "resolved": "https://registry.npmjs.org/esbuild-linux-ppc64le/-/esbuild-linux-ppc64le-0.14.32.tgz", - "integrity": "sha512-TR6l5nWZbfq7jSY+1vsiQjT4m67NWplNhbX6GBieZq6DBt0nTx1XgTZAdKROF7jTuaK7YrCYlPXtfO3w86Mysw==", - "cpu": [ - "ppc64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/esbuild-linux-riscv64": { - "version": "0.14.32", - "resolved": "https://registry.npmjs.org/esbuild-linux-riscv64/-/esbuild-linux-riscv64-0.14.32.tgz", - "integrity": "sha512-aSOcUzTeIAslfri8e+bMpyzQuxhcIiNhWyuCGGXum2PtxwYiUqR8/UCMYfwYtYkhr1yABOFOfs83mm9KBy5qCQ==", - "cpu": [ - "riscv64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/esbuild-linux-s390x": { - "version": "0.14.32", - "resolved": "https://registry.npmjs.org/esbuild-linux-s390x/-/esbuild-linux-s390x-0.14.32.tgz", - "integrity": "sha512-dNlip+EvexxKjRZitFCWCd7DVk64c7R5ySr8aFEMHCb/RriNiyDxYJGzYWm4EMJsMRMupMUHlMY64BAa3Op9FA==", - "cpu": [ - "s390x" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/esbuild-netbsd-64": { - "version": "0.14.32", - "resolved": "https://registry.npmjs.org/esbuild-netbsd-64/-/esbuild-netbsd-64-0.14.32.tgz", - "integrity": "sha512-Pa3QByYqxzlBFQQQhjYBPg3WUfSjwibqzh1hC6mPDRUHnCeUcrLoBuIiG4xqOYEpQM9/kDowIBsrGIQEVWWdQA==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "netbsd" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/esbuild-openbsd-64": { - "version": "0.14.32", - "resolved": "https://registry.npmjs.org/esbuild-openbsd-64/-/esbuild-openbsd-64-0.14.32.tgz", - "integrity": "sha512-uWKKqpCjkMY8TCIobFvaSETonQY3OrmgnoTCC3tF+lvMoneYjppB6akx7L5Xv0kP+1tnSbrIof1ca8PfqGUyjw==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "openbsd" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/esbuild-sunos-64": { - "version": "0.14.32", - "resolved": "https://registry.npmjs.org/esbuild-sunos-64/-/esbuild-sunos-64-0.14.32.tgz", - "integrity": "sha512-Ar+u3mBk0oVV4Fwv/qlinJZNIPPtTBSG+1W42o8lOaVxJ+rJgecDoeUN+5uyd9at0BK1SVrQ1qZ4wjHKB0qFpQ==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "sunos" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/esbuild-windows-32": { - "version": "0.14.32", - "resolved": "https://registry.npmjs.org/esbuild-windows-32/-/esbuild-windows-32-0.14.32.tgz", - "integrity": "sha512-rLMsbflMY6Hjh3rmQnCDVZahJQ7n+XfT6o1+no5pHRpDlMh38MHthgGh35q+EcOMgrGP3ppnw70rhJq80SaYTQ==", - "cpu": [ - "ia32" - ], - "dev": true, - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/esbuild-windows-64": { - "version": "0.14.32", - "resolved": "https://registry.npmjs.org/esbuild-windows-64/-/esbuild-windows-64-0.14.32.tgz", - "integrity": "sha512-OHnMMxYufVgLXIMnwLynLMKguHMrsVnWcehieSP9i6ZX31KEsOFYWrorcnTWOn4rbZVLSL10ofxLuVIgRW3SWw==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/esbuild-windows-arm64": { - "version": "0.14.32", - "resolved": "https://registry.npmjs.org/esbuild-windows-arm64/-/esbuild-windows-arm64-0.14.32.tgz", - "integrity": "sha512-ddavy6IPUBySMfqDfG243TgtuqwQBNJQJPVaA4DaavmMfpBsUxFrSV+HzBWXTKU3I9EcuoEvIATLuQ7NJKxjwg==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">=12" - } - }, "node_modules/escalade": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", @@ -4039,174 +3683,6 @@ "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", "dev": true }, - "esbuild": { - "version": "0.14.32", - "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.14.32.tgz", - "integrity": "sha512-RuzVUP/bkStmnVHK6Gh3gjaMjfXNLqBqvYVDiS9JKl5KdRdRLUeW5Wo8NrbL7cL6CW7Cyak7SvACqyPOBuA8vA==", - "dev": true, - "requires": { - "esbuild-android-64": "0.14.32", - "esbuild-android-arm64": "0.14.32", - "esbuild-darwin-64": "0.14.32", - "esbuild-darwin-arm64": "0.14.32", - "esbuild-freebsd-64": "0.14.32", - "esbuild-freebsd-arm64": "0.14.32", - "esbuild-linux-32": "0.14.32", - "esbuild-linux-64": "0.14.32", - "esbuild-linux-arm": "0.14.32", - "esbuild-linux-arm64": "0.14.32", - "esbuild-linux-mips64le": "0.14.32", - "esbuild-linux-ppc64le": "0.14.32", - "esbuild-linux-riscv64": "0.14.32", - "esbuild-linux-s390x": "0.14.32", - "esbuild-netbsd-64": "0.14.32", - "esbuild-openbsd-64": "0.14.32", - "esbuild-sunos-64": "0.14.32", - "esbuild-windows-32": "0.14.32", - "esbuild-windows-64": "0.14.32", - "esbuild-windows-arm64": "0.14.32" - } - }, - "esbuild-android-64": { - "version": "0.14.32", - "resolved": "https://registry.npmjs.org/esbuild-android-64/-/esbuild-android-64-0.14.32.tgz", - "integrity": "sha512-q1qjB2UcoWehR9Yp9dO2RdJUeLLrXAYsbOU4tkYa+GmJzxTwuvOrMdvaemsXYqb7F4STVTca9KpfqGicEChtUg==", - "dev": true, - "optional": true - }, - "esbuild-android-arm64": { - "version": "0.14.32", - "resolved": "https://registry.npmjs.org/esbuild-android-arm64/-/esbuild-android-arm64-0.14.32.tgz", - "integrity": "sha512-bs1uu+RuM15f8yjFc0FhPDE/6NID4fKl7beDVsGCme6Q8ld2IzRXmp5QaHurlcH93PFyQnUgVvdahIWgtK2QZw==", - "dev": true, - "optional": true - }, - "esbuild-darwin-64": { - "version": "0.14.32", - "resolved": "https://registry.npmjs.org/esbuild-darwin-64/-/esbuild-darwin-64-0.14.32.tgz", - "integrity": "sha512-6MekflAld28wYtzanwZTxQlxMPeYw/yv1ToFG2hpo3LGxOIE2mBD5IJaMCcyy1//EYvGnGToO3p6XKdbS8E1QQ==", - "dev": true, - "optional": true - }, - "esbuild-darwin-arm64": { - "version": "0.14.32", - "resolved": "https://registry.npmjs.org/esbuild-darwin-arm64/-/esbuild-darwin-arm64-0.14.32.tgz", - "integrity": "sha512-BHYIjiPDYQTD+4zwqdqRo+I2bbg3fn9mah/gZm4SCCy+7uwTTYOYobIunHT7wVCgxnFCr50PJUdaMrEoCImRbw==", - "dev": true, - "optional": true - }, - "esbuild-freebsd-64": { - "version": "0.14.32", - "resolved": "https://registry.npmjs.org/esbuild-freebsd-64/-/esbuild-freebsd-64-0.14.32.tgz", - "integrity": "sha512-6BOBhtfAf9AlfjL1AvtfVOxwY82tHPfYrA0lskJpFjfiEMGTLU6e0vdOwb4+4x++gGz49azuGK0woYqdfL03uw==", - "dev": true, - "optional": true - }, - "esbuild-freebsd-arm64": { - "version": "0.14.32", - "resolved": "https://registry.npmjs.org/esbuild-freebsd-arm64/-/esbuild-freebsd-arm64-0.14.32.tgz", - "integrity": "sha512-zIRR4gKQW56p/xLM8TlpxVBNiX0w3VoR9ZxfH4nrfJ7QiL0SYHRy8YPL5C7zMWRjSze2WxQRHfS9bHKdVrVXBw==", - "dev": true, - "optional": true - }, - "esbuild-linux-32": { - "version": "0.14.32", - "resolved": "https://registry.npmjs.org/esbuild-linux-32/-/esbuild-linux-32-0.14.32.tgz", - "integrity": "sha512-kn0AkGtPvzA6xiv93/mavvZ7DVinu/ewh2F2S0/8mE8/PXi3D4+svZ6V3beV5DIH7vcHVuGhoooWav8HPF04tg==", - "dev": true, - "optional": true - }, - "esbuild-linux-64": { - "version": "0.14.32", - "resolved": "https://registry.npmjs.org/esbuild-linux-64/-/esbuild-linux-64-0.14.32.tgz", - "integrity": "sha512-Ie+PMvrPj/HCOmSc0QubKttDxP2iBtPzDu+b+V3HGDGwkGmVpDkyXx1NXp5LjkIphIay2QekMwy1dSw3KDqCew==", - "dev": true, - "optional": true - }, - "esbuild-linux-arm": { - "version": "0.14.32", - "resolved": "https://registry.npmjs.org/esbuild-linux-arm/-/esbuild-linux-arm-0.14.32.tgz", - "integrity": "sha512-R/Bvn/YQNDyvfN0SERh/I7hKPqN+nSSruQdVeiYEJ+jc3fUi73jXYAscpTQgIBeER/yXnEsgJGU/UQ9+sscr7A==", - "dev": true, - "optional": true - }, - "esbuild-linux-arm64": { - "version": "0.14.32", - "resolved": "https://registry.npmjs.org/esbuild-linux-arm64/-/esbuild-linux-arm64-0.14.32.tgz", - "integrity": "sha512-ykoqKaxX95nB+lk2K/+qxr0ke+BxkeVi0yKOnymCR5Ive7IZDHa4BJX53NEGSBKLfWPwKE6SXTz8qcEewSntoA==", - "dev": true, - "optional": true - }, - "esbuild-linux-mips64le": { - "version": "0.14.32", - "resolved": "https://registry.npmjs.org/esbuild-linux-mips64le/-/esbuild-linux-mips64le-0.14.32.tgz", - "integrity": "sha512-IilnlBexpHpt/5po0cle/L/S6CYnwaq23UuAqWzxp+opHLOCNnyANpC1jOoP551aRx4JuZ7z3xZZ7bYQZB147w==", - "dev": true, - "optional": true - }, - "esbuild-linux-ppc64le": { - "version": "0.14.32", - "resolved": "https://registry.npmjs.org/esbuild-linux-ppc64le/-/esbuild-linux-ppc64le-0.14.32.tgz", - "integrity": "sha512-TR6l5nWZbfq7jSY+1vsiQjT4m67NWplNhbX6GBieZq6DBt0nTx1XgTZAdKROF7jTuaK7YrCYlPXtfO3w86Mysw==", - "dev": true, - "optional": true - }, - "esbuild-linux-riscv64": { - "version": "0.14.32", - "resolved": "https://registry.npmjs.org/esbuild-linux-riscv64/-/esbuild-linux-riscv64-0.14.32.tgz", - "integrity": "sha512-aSOcUzTeIAslfri8e+bMpyzQuxhcIiNhWyuCGGXum2PtxwYiUqR8/UCMYfwYtYkhr1yABOFOfs83mm9KBy5qCQ==", - "dev": true, - "optional": true - }, - "esbuild-linux-s390x": { - "version": "0.14.32", - "resolved": "https://registry.npmjs.org/esbuild-linux-s390x/-/esbuild-linux-s390x-0.14.32.tgz", - "integrity": "sha512-dNlip+EvexxKjRZitFCWCd7DVk64c7R5ySr8aFEMHCb/RriNiyDxYJGzYWm4EMJsMRMupMUHlMY64BAa3Op9FA==", - "dev": true, - "optional": true - }, - "esbuild-netbsd-64": { - "version": "0.14.32", - "resolved": "https://registry.npmjs.org/esbuild-netbsd-64/-/esbuild-netbsd-64-0.14.32.tgz", - "integrity": "sha512-Pa3QByYqxzlBFQQQhjYBPg3WUfSjwibqzh1hC6mPDRUHnCeUcrLoBuIiG4xqOYEpQM9/kDowIBsrGIQEVWWdQA==", - "dev": true, - "optional": true - }, - "esbuild-openbsd-64": { - "version": "0.14.32", - "resolved": "https://registry.npmjs.org/esbuild-openbsd-64/-/esbuild-openbsd-64-0.14.32.tgz", - "integrity": "sha512-uWKKqpCjkMY8TCIobFvaSETonQY3OrmgnoTCC3tF+lvMoneYjppB6akx7L5Xv0kP+1tnSbrIof1ca8PfqGUyjw==", - "dev": true, - "optional": true - }, - "esbuild-sunos-64": { - "version": "0.14.32", - "resolved": "https://registry.npmjs.org/esbuild-sunos-64/-/esbuild-sunos-64-0.14.32.tgz", - "integrity": "sha512-Ar+u3mBk0oVV4Fwv/qlinJZNIPPtTBSG+1W42o8lOaVxJ+rJgecDoeUN+5uyd9at0BK1SVrQ1qZ4wjHKB0qFpQ==", - "dev": true, - "optional": true - }, - "esbuild-windows-32": { - "version": "0.14.32", - "resolved": "https://registry.npmjs.org/esbuild-windows-32/-/esbuild-windows-32-0.14.32.tgz", - "integrity": "sha512-rLMsbflMY6Hjh3rmQnCDVZahJQ7n+XfT6o1+no5pHRpDlMh38MHthgGh35q+EcOMgrGP3ppnw70rhJq80SaYTQ==", - "dev": true, - "optional": true - }, - "esbuild-windows-64": { - "version": "0.14.32", - "resolved": "https://registry.npmjs.org/esbuild-windows-64/-/esbuild-windows-64-0.14.32.tgz", - "integrity": "sha512-OHnMMxYufVgLXIMnwLynLMKguHMrsVnWcehieSP9i6ZX31KEsOFYWrorcnTWOn4rbZVLSL10ofxLuVIgRW3SWw==", - "dev": true, - "optional": true - }, - "esbuild-windows-arm64": { - "version": "0.14.32", - "resolved": "https://registry.npmjs.org/esbuild-windows-arm64/-/esbuild-windows-arm64-0.14.32.tgz", - "integrity": "sha512-ddavy6IPUBySMfqDfG243TgtuqwQBNJQJPVaA4DaavmMfpBsUxFrSV+HzBWXTKU3I9EcuoEvIATLuQ7NJKxjwg==", - "dev": true, - "optional": true - }, "escalade": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", diff --git a/package.json b/package.json index 08018cc..25e904c 100644 --- a/package.json +++ b/package.json @@ -1,21 +1,22 @@ { "name": "@vscode/extension-telemetry", "description": "A module for Visual Studio Code extensions to report consistent telemetry.", - "version": "0.6.2", + "version": "0.6.3", "author": { "name": "Microsoft Corporation" }, - "main": "./lib/telemetryReporter.node.min.js", - "browser": "./lib/telemetryReporter.web.min.js", - "types": "./lib/telemetryReporter.d.ts", + "main": "./dist/node/node/telemetryReporter.js", + "browser": "./dist/browser/browser/telemetryReporter.js", + "types": "./dist/telemetryReporter.d.ts", "license": "MIT", "engines": { "vscode": "^1.60.0" }, "scripts": { - "build": "node .esbuild.config.js", - "test": "tsc -p 'test/tsconfig.json' && mocha lib/test/*", - "compile": "tsc -noEmit -p 'src/browser/tsconfig.json' && tsc -noEmit -p 'src/node/tsconfig.json' && npm run build" + "prepack": "node injectVersion.js", + "build": "npm run compile", + "test": "tsc -p 'test/tsconfig.json' && mocha dist/test/*", + "compile": "tsc -p 'src/browser/tsconfig.json' && tsc -p 'src/node/tsconfig.json'" }, "dependencies": { "@microsoft/1ds-core-js": "^3.2.4", @@ -30,7 +31,6 @@ "@types/vscode": "^1.60.0", "@typescript-eslint/eslint-plugin": "^5.18.0", "@typescript-eslint/parser": "^5.18.0", - "esbuild": "^0.14.32", "eslint": "^8.12.0", "mocha": "^9.2.2", "sinon": "^13.0.2", diff --git a/src/browser/telemetryReporter.ts b/src/browser/telemetryReporter.ts index 7fd52b6..7a964e6 100644 --- a/src/browser/telemetryReporter.ts +++ b/src/browser/telemetryReporter.ts @@ -12,7 +12,7 @@ import { TelemetryUtil } from "../common/util"; const webAppInsightsClientFactory = async (key: string, replacementOptions?: ReplacementOption[]): Promise => { let appInsightsClient: ApplicationInsights | undefined; try { - const web = await import("@microsoft/applicationinsights-web"); + const web = await import/* webpackMode: "eager" */ ("@microsoft/applicationinsights-web"); appInsightsClient = new web.ApplicationInsights({ config: { instrumentationKey: key, diff --git a/src/browser/tsconfig.json b/src/browser/tsconfig.json index fef0c26..87a6f62 100644 --- a/src/browser/tsconfig.json +++ b/src/browser/tsconfig.json @@ -4,7 +4,7 @@ "lib": ["ES2015","DOM"], "module": "ES2020", "moduleResolution": "node", - "outDir": "./lib", + "outDir": "../../dist/browser", "typeRoots": [] }, "include": [".", "../common", "../../vscode.proposed.telemetry.d.ts"] diff --git a/src/common/1dsClientFactory.ts b/src/common/1dsClientFactory.ts index b8a0c19..9c9ff92 100644 --- a/src/common/1dsClientFactory.ts +++ b/src/common/1dsClientFactory.ts @@ -16,8 +16,8 @@ import { AppenderData } from "./baseTelemetryReporter"; * @returns The AI core object */ const getAICore = async (key: string, vscodeAPI: typeof vscode, xhrOverride?: IXHROverride): Promise => { - const oneDs = await import("@microsoft/1ds-core-js"); - const postPlugin = await import("@microsoft/1ds-post-js"); + const oneDs = await import(/* webpackMode: "eager" */ "@microsoft/1ds-core-js"); + const postPlugin = await import(/* webpackMode: "eager" */ "@microsoft/1ds-post-js"); const appInsightsCore = new oneDs.AppInsightsCore(); const collectorChannelPlugin: PostChannel = new postPlugin.PostChannel(); // Configure the app insights core to send to collector++ and disable logging of debug info diff --git a/src/common/baseTelemetryReporter.ts b/src/common/baseTelemetryReporter.ts index e145737..d5a2df6 100644 --- a/src/common/baseTelemetryReporter.ts +++ b/src/common/baseTelemetryReporter.ts @@ -3,7 +3,7 @@ *--------------------------------------------------------*/ import type * as vscode from "vscode"; -import type { TelemetryEventMeasurements, TelemetryEventProperties, RawTelemetryEventProperties } from "../../lib/telemetryReporter"; +import type { TelemetryEventMeasurements, TelemetryEventProperties, RawTelemetryEventProperties } from "../../dist/telemetryReporter"; import { ITelemetryAppender } from "./baseTelemetryAppender"; import { TelemetryLevel, TelemetryUtil } from "./util"; @@ -148,6 +148,7 @@ export class BaseTelemetryReporter { // __GDPR__COMMON__ "common.remotename" : { "classification": "SystemMetaData", "purpose": "FeatureInsight" } // __GDPR__COMMON__ "common.isnewappinstall" : { "classification": "SystemMetaData", "purpose": "FeatureInsight" } // __GDPR__COMMON__ "common.product" : { "classification": "SystemMetaData", "purpose": "FeatureInsight" } + // __GDPR__COMMON__ "common.telemetryclientversion" : { "classification": "SystemMetaData", "purpose": "FeatureInsight" } private getCommonProperties(): TelemetryEventProperties { const commonProperties: Record = {}; commonProperties["common.os"] = this.osShim.platform; @@ -155,6 +156,8 @@ export class BaseTelemetryReporter { commonProperties["common.platformversion"] = (this.osShim.release || "").replace(/^(\d+)(\.\d+)?(\.\d+)?(.*)/, "$1$2$3"); commonProperties["common.extname"] = this.extensionId; commonProperties["common.extversion"] = this.extensionVersion; + // Do not change this string as it gets found and replaced upon packaging + commonProperties["common.telemetryclientversion"] = "PACKAGE_JSON_VERSION"; if (this.vscodeAPI && this.vscodeAPI.env) { commonProperties["common.vscodemachineid"] = this.vscodeAPI.env.machineId; commonProperties["common.vscodesessionid"] = this.vscodeAPI.env.sessionId; diff --git a/src/node/telemetryReporter.ts b/src/node/telemetryReporter.ts index c8ce245..8dcb0d5 100644 --- a/src/node/telemetryReporter.ts +++ b/src/node/telemetryReporter.ts @@ -24,7 +24,7 @@ const appInsightsClientFactory = async (key: string, replacementOptions?: Replac let appInsightsClient: TelemetryClient | undefined; try { process.env["APPLICATION_INSIGHTS_NO_DIAGNOSTIC_CHANNEL"] = "1"; - const appInsights = await import("applicationinsights"); + const appInsights = await import(/* webpackMode: "eager" */ "applicationinsights"); //check if another instance is already initialized if (appInsights.defaultClient) { appInsightsClient = new appInsights.TelemetryClient(key); diff --git a/src/node/tsconfig.json b/src/node/tsconfig.json index 5972e2a..46550e1 100644 --- a/src/node/tsconfig.json +++ b/src/node/tsconfig.json @@ -5,7 +5,7 @@ "lib": ["ES2015", "DOM"], "module": "CommonJS", "moduleResolution": "node", - "outDir": "./lib", + "outDir": "../../dist/node", "typeRoots": [] }, "include": [".", "../common", "../../vscode.proposed.telemetry.d.ts"] diff --git a/test/tsconfig.json b/test/tsconfig.json index 6457fc5..e198b7e 100644 --- a/test/tsconfig.json +++ b/test/tsconfig.json @@ -5,7 +5,7 @@ "lib": ["ES2015", "DOM"], "module": "CommonJS", "moduleResolution": "node", - "outDir": "../lib/test", + "outDir": "../dist/test", // Not sure why it cannot find them, but alas it must be pointed out where the types are "typeRoots": ["../node_modules/@types"] }, diff --git a/thirdpartynotices.txt b/thirdpartynotices.txt deleted file mode 100644 index 001d8c9..0000000 --- a/thirdpartynotices.txt +++ /dev/null @@ -1,30 +0,0 @@ - -THIRD-PARTY SOFTWARE NOTICES AND INFORMATION -For Microsoft vscode-extension-telemetry - -This project incorporates material from the projects listed below. The original copyright notice -and the license under which Microsoft received such material are set out below. Microsoft reserves -all other rights not expressly granted, whether by implication, estoppel or otherwise. - -1. DefinitelyTyped version 0.0.1 (https://github.com/borisyankov/DefinitelyTyped) - -This project is licensed under the MIT license. -Copyrights are respective of each contributor listed at the beginning of each definition file. - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -THE SOFTWARE.