Skip to content

Commit 66ff9a4

Browse files
dependabot[bot]Copilotrzhao271
authored
Bump @opentelemetry/core and @vscode/extension-telemetry and fix TelemetryReporter import (microsoft#26007)
Removes [@opentelemetry/core](https://github.com/open-telemetry/opentelemetry-js). It's no longer used after updating ancestor dependency [@vscode/extension-telemetry](https://github.com/Microsoft/vscode-extension-telemetry). These dependencies need to be updated together. Removes `@opentelemetry/core` Updates `@vscode/extension-telemetry` from 0.8.4 to 1.5.2 `@vscode/extension-telemetry` v1.5.2 changed `TelemetryReporter` from a default export to a named export. This PR also updates the import and runtime access in the extension source to match: - `src/client/telemetry/index.ts` and `src/client/browser/extension.ts`: changed `import TelemetryReporter from '@vscode/extension-telemetry'` to `import { TelemetryReporter } from '@vscode/extension-telemetry'` and updated `require('@vscode/extension-telemetry').default` to `require('@vscode/extension-telemetry').TelemetryReporter`. - `gulpfile.js`: strip ANSI color escape codes from webpack stdout before checking for `ERROR in` / `WARNING in` patterns, so webpack build errors are correctly detected instead of being silently swallowed. --------- Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com> Co-authored-by: Raymond Zhao <7199958+rzhao271@users.noreply.github.com>
1 parent d605c6d commit 66ff9a4

7 files changed

Lines changed: 290 additions & 860 deletions

File tree

gulpfile.js

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -165,9 +165,14 @@ async function buildWebPack(webpackConfigName, args, env) {
165165
['run', 'webpack', '--', ...args, ...['--mode', 'production', '--devtool', 'source-map']],
166166
env,
167167
);
168+
// Strip ANSI color/style escape codes before parsing webpack output lines.
169+
// Webpack colorizes output (e.g. "\u001b[1m\u001b[31mERROR\u001b[39m\u001b[22m in ..."),
170+
// which would prevent startsWith('ERROR in') / startsWith('WARNING in') from matching.
171+
// eslint-disable-next-line no-control-regex
172+
const stripAnsi = (str) => str.replace(/\u001b\[[0-9;]*m/g, '');
168173
const stdOutLines = stdOut
169174
.split(os.EOL)
170-
.map((item) => item.trim())
175+
.map((item) => stripAnsi(item).trim())
171176
.filter((item) => item.length > 0);
172177
// Remember to perform a case insensitive search.
173178
const warnings = stdOutLines

package-lock.json

Lines changed: 273 additions & 848 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1706,7 +1706,7 @@
17061706
},
17071707
"dependencies": {
17081708
"@iarna/toml": "^3.0.0",
1709-
"@vscode/extension-telemetry": "^0.8.4",
1709+
"@vscode/extension-telemetry": "^1.5.2",
17101710
"arch": "^2.1.0",
17111711
"fs-extra": "^11.2.0",
17121712
"glob": "^7.2.0",

src/client/browser/extension.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
// Licensed under the MIT License.
33

44
import * as vscode from 'vscode';
5-
import TelemetryReporter from '@vscode/extension-telemetry';
5+
import { TelemetryReporter } from '@vscode/extension-telemetry';
66
import { LanguageClientOptions } from 'vscode-languageclient';
77
import { LanguageClient } from 'vscode-languageclient/browser';
88
import { LanguageClientMiddlewareBase } from '../activation/languageClientMiddlewareBase';
@@ -153,7 +153,7 @@ function getTelemetryReporter() {
153153
}
154154

155155
// eslint-disable-next-line global-require
156-
const Reporter = require('@vscode/extension-telemetry').default as typeof TelemetryReporter;
156+
const Reporter = require('@vscode/extension-telemetry').TelemetryReporter as typeof TelemetryReporter;
157157
telemetryReporter = new Reporter(AppinsightsKey, [
158158
{
159159
lookup: /(errorName|errorMessage|errorStack)/g,

src/client/telemetry/index.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
// Copyright (c) Microsoft Corporation. All rights reserved.
33
// Licensed under the MIT License.
44

5-
import TelemetryReporter from '@vscode/extension-telemetry';
5+
import { TelemetryReporter } from '@vscode/extension-telemetry';
66
import type * as vscodeTypes from 'vscode';
77
import { DiagnosticCodes } from '../application/diagnostics/constants';
88
import { AppinsightsKey, isTestExecution, isUnitTestExecution, PVSC_EXTENSION_ID } from '../common/constants';
@@ -78,7 +78,7 @@ export function getTelemetryReporter(): TelemetryReporter {
7878
return telemetryReporter;
7979
}
8080

81-
const Reporter = require('@vscode/extension-telemetry').default as typeof TelemetryReporter;
81+
const Reporter = require('@vscode/extension-telemetry').TelemetryReporter as typeof TelemetryReporter;
8282
telemetryReporter = new Reporter(AppinsightsKey, [
8383
{
8484
lookup: /(errorName|errorMessage|errorStack)/g,

src/test/debugger/extension/adapter/factory.unit.test.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -73,7 +73,7 @@ suite('Debugging - Adapter Factory', () => {
7373
readJSONSyncStub = sinon.stub(fs, 'readJSONSync');
7474
readJSONSyncStub.returns({ enableTelemetry: true });
7575
rewiremock.enable();
76-
rewiremock('@vscode/extension-telemetry').with({ default: Reporter });
76+
rewiremock('@vscode/extension-telemetry').with({ TelemetryReporter: Reporter });
7777
stateFactory = mock(PersistentStateFactory);
7878
state = mock(PersistentState) as PersistentState<boolean | undefined>;
7979
commandManager = mock(CommandManager);

src/test/telemetry/index.unit.test.ts

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -61,7 +61,7 @@ suite('Telemetry', () => {
6161

6262
test('Send Telemetry', () => {
6363
rewiremock.enable();
64-
rewiremock('@vscode/extension-telemetry').with({ default: Reporter });
64+
rewiremock('@vscode/extension-telemetry').with({ TelemetryReporter: Reporter });
6565

6666
const eventName = 'Testing';
6767
const properties = { hello: 'world', foo: 'bar' };
@@ -75,7 +75,7 @@ suite('Telemetry', () => {
7575
});
7676
test('Send Telemetry with no properties', () => {
7777
rewiremock.enable();
78-
rewiremock('@vscode/extension-telemetry').with({ default: Reporter });
78+
rewiremock('@vscode/extension-telemetry').with({ TelemetryReporter: Reporter });
7979

8080
const eventName = 'Testing';
8181

@@ -87,7 +87,7 @@ suite('Telemetry', () => {
8787
});
8888
test('Send Telemetry with shared properties', () => {
8989
rewiremock.enable();
90-
rewiremock('@vscode/extension-telemetry').with({ default: Reporter });
90+
rewiremock('@vscode/extension-telemetry').with({ TelemetryReporter: Reporter });
9191

9292
const eventName = 'Testing';
9393
const properties = { hello: 'world', foo: 'bar' };
@@ -104,7 +104,7 @@ suite('Telemetry', () => {
104104
});
105105
test('Shared properties will replace existing ones', () => {
106106
rewiremock.enable();
107-
rewiremock('@vscode/extension-telemetry').with({ default: Reporter });
107+
rewiremock('@vscode/extension-telemetry').with({ TelemetryReporter: Reporter });
108108

109109
const eventName = 'Testing';
110110
const properties = { hello: 'world', foo: 'bar' };
@@ -122,7 +122,7 @@ suite('Telemetry', () => {
122122
test('Send Exception Telemetry', () => {
123123
rewiremock.enable();
124124
const error = new Error('Boo');
125-
rewiremock('@vscode/extension-telemetry').with({ default: Reporter });
125+
rewiremock('@vscode/extension-telemetry').with({ TelemetryReporter: Reporter });
126126

127127
const eventName = 'Testing';
128128
const measures = { start: 123, end: 987 };

0 commit comments

Comments
 (0)