@codingame/monaco-vscode-telemetry-service-override 26.2.2 → 28.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/index.js CHANGED
@@ -5,15 +5,12 @@ import { ITelemetryService } from '@codingame/monaco-vscode-api/vscode/vs/platfo
5
5
  import { TelemetryService } from './vscode/src/vs/workbench/services/telemetry/browser/telemetryService.js';
6
6
  import { IDataChannelService } from '@codingame/monaco-vscode-api/vscode/vs/platform/dataChannel/common/dataChannel.service';
7
7
  import { DataChannelService } from './vscode/src/vs/workbench/services/dataChannel/browser/dataChannelService.js';
8
- import { IRandomService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/editTelemetry/browser/randomService.service';
9
- import { RandomService } from './vscode/src/vs/workbench/contrib/editTelemetry/browser/randomService.js';
10
8
  import './vscode/src/vs/workbench/contrib/telemetry/browser/telemetry.contribution.js';
11
9
 
12
10
  function getServiceOverride() {
13
11
  return {
14
12
  [ITelemetryService.toString()]: new SyncDescriptor(TelemetryService, [], true),
15
- [IDataChannelService.toString()]: new SyncDescriptor(DataChannelService, [], true),
16
- [IRandomService.toString()]: new SyncDescriptor(RandomService, [], true)
13
+ [IDataChannelService.toString()]: new SyncDescriptor(DataChannelService, [], true)
17
14
  };
18
15
  }
19
16
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@codingame/monaco-vscode-telemetry-service-override",
3
- "version": "26.2.2",
3
+ "version": "28.0.0",
4
4
  "private": false,
5
5
  "description": "VSCode public API plugged on the monaco editor - telemetry service-override",
6
6
  "keywords": [],
@@ -15,7 +15,7 @@
15
15
  },
16
16
  "type": "module",
17
17
  "dependencies": {
18
- "@codingame/monaco-vscode-api": "26.2.2",
18
+ "@codingame/monaco-vscode-api": "28.0.0",
19
19
  "@microsoft/1ds-core-js": "3.2.18",
20
20
  "@microsoft/1ds-post-js": "3.2.18"
21
21
  },
@@ -19,7 +19,7 @@ let TelemetryLogAppender = class TelemetryLogAppender extends Disposable {
19
19
  const justLoggingAndNotSending = isLoggingOnly(productService, environmentService);
20
20
  const logSuffix = justLoggingAndNotSending ? " (Not Sent)" : "";
21
21
  this.logger = this._register(loggerService.createLogger(id, {
22
- name: ( localize(2064, "Telemetry{0}", logSuffix)),
22
+ name: ( localize(2102, "Telemetry{0}", logSuffix)),
23
23
  group: TelemetryLogGroup,
24
24
  hidden: true
25
25
  }));
@@ -1,4 +1,5 @@
1
1
  import { IConfigurationService } from "@codingame/monaco-vscode-api/vscode/vs/platform/configuration/common/configuration.service";
2
+ import { IMeteredConnectionService } from "@codingame/monaco-vscode-api/vscode/vs/platform/meteredConnection/common/meteredConnection.service";
2
3
  import { IProductService } from "@codingame/monaco-vscode-api/vscode/vs/platform/product/common/productService.service";
3
4
  import { ClassifiedEvent, IGDPRProperty, OmitMetadata, StrictPropertyCheck } from "@codingame/monaco-vscode-api/vscode/vs/platform/telemetry/common/gdprTypings";
4
5
  import { ITelemetryData, TelemetryLevel, ICommonProperties } from "@codingame/monaco-vscode-api/vscode/vs/platform/telemetry/common/telemetry";
@@ -14,6 +15,10 @@ export interface ITelemetryServiceConfig {
14
15
  * (up to 10 seconds) to ensure experiment context is attached to all events.
15
16
  */
16
17
  waitForExperimentProperties?: boolean;
18
+ /**
19
+ * If provided, telemetry events will be dropped when the connection is metered.
20
+ */
21
+ meteredConnectionService?: IMeteredConnectionService;
17
22
  }
18
23
  export declare class TelemetryService implements ITelemetryService {
19
24
  private _configurationService;
@@ -35,6 +40,7 @@ export declare class TelemetryService implements ITelemetryService {
35
40
  private _piiPaths;
36
41
  private _telemetryLevel;
37
42
  private _sendErrorTelemetry;
43
+ private readonly _meteredConnectionService;
38
44
  private _pendingEvents;
39
45
  private _isExperimentPropertySet;
40
46
  private _flushTimeout;
@@ -50,6 +50,7 @@ let TelemetryService = class TelemetryService {
50
50
  this._piiPaths = config.piiPaths || [];
51
51
  this._telemetryLevel = TelemetryLevel.USAGE;
52
52
  this._sendErrorTelemetry = !!config.sendErrorTelemetry;
53
+ this._meteredConnectionService = config.meteredConnectionService;
53
54
  this._cleanupPatterns = [/(vscode-)?file:\/\/.*?\/resources\/app\//gi];
54
55
  for (const piiPath of this._piiPaths) {
55
56
  this._cleanupPatterns.push(( new RegExp(escapeRegExpCharacters(piiPath), "gi")));
@@ -114,6 +115,9 @@ let TelemetryService = class TelemetryService {
114
115
  if (this._telemetryLevel < eventLevel) {
115
116
  return;
116
117
  }
118
+ if (this._meteredConnectionService?.isConnectionMetered) {
119
+ return;
120
+ }
117
121
  if (!this._isExperimentPropertySet) {
118
122
  if (this._pendingEvents.length < TelemetryService_1.MAX_BUFFER_SIZE) {
119
123
  this._pendingEvents.push({
@@ -151,28 +155,28 @@ let TelemetryService = class TelemetryService {
151
155
  TelemetryService = TelemetryService_1 = ( __decorate([( __param(1, IConfigurationService)), ( __param(2, IProductService))], TelemetryService));
152
156
  function getTelemetryLevelSettingDescription() {
153
157
  const telemetryText = ( localize(
154
- 2065,
158
+ 2103,
155
159
  "Controls {0} telemetry, first-party extension telemetry, and participating third-party extension telemetry. Some third party extensions might not respect this setting. Consult the specific extension's documentation to be sure. Telemetry helps us better understand how {0} is performing, where improvements need to be made, and how features are being used.",
156
160
  product.nameLong
157
161
  ));
158
162
  const externalLinksStatement = !product.privacyStatementUrl ? ( localize(
159
- 2066,
163
+ 2104,
160
164
  "Read more about the [data we collect]({0}).",
161
165
  "https://aka.ms/vscode-telemetry"
162
166
  )) : ( localize(
163
- 2067,
167
+ 2105,
164
168
  "Read more about the [data we collect]({0}) and our [privacy statement]({1}).",
165
169
  "https://aka.ms/vscode-telemetry",
166
170
  product.privacyStatementUrl
167
171
  ));
168
172
  const restartString = !isWeb ? ( localize(
169
- 2068,
173
+ 2106,
170
174
  "A full restart of the application is necessary for crash reporting changes to take effect."
171
175
  )) : "";
172
- const crashReportsHeader = ( localize(2069, "Crash Reports"));
173
- const errorsHeader = ( localize(2070, "Error Telemetry"));
174
- const usageHeader = ( localize(2071, "Usage Data"));
175
- const telemetryTableDescription = ( localize(2072, "The following table outlines the data sent with each setting:"));
176
+ const crashReportsHeader = ( localize(2107, "Crash Reports"));
177
+ const errorsHeader = ( localize(2108, "Error Telemetry"));
178
+ const usageHeader = ( localize(2109, "Usage Data"));
179
+ const telemetryTableDescription = ( localize(2110, "The following table outlines the data sent with each setting:"));
176
180
  const telemetryTable = `
177
181
  | | ${crashReportsHeader} | ${errorsHeader} | ${usageHeader} |
178
182
  |:------|:-------------:|:---------------:|:----------:|
@@ -182,7 +186,7 @@ function getTelemetryLevelSettingDescription() {
182
186
  | off | - | - | - |
183
187
  `;
184
188
  const deprecatedSettingNote = ( localize(
185
- 2073,
189
+ 2111,
186
190
  "****Note:*** If this setting is 'off', no telemetry will be sent regardless of other telemetry settings. If this setting is set to anything except 'off' and telemetry is disabled with deprecated settings, no telemetry will be sent.*"
187
191
  ));
188
192
  const telemetryDescription = `
@@ -204,7 +208,7 @@ configurationRegistry.registerConfiguration({
204
208
  "id": TELEMETRY_SECTION_ID,
205
209
  "order": 1,
206
210
  "type": "object",
207
- "title": ( localize(2074, "Telemetry")),
211
+ "title": ( localize(2112, "Telemetry")),
208
212
  "properties": {
209
213
  [TELEMETRY_SETTING_ID]: {
210
214
  "type": "string",
@@ -214,7 +218,7 @@ configurationRegistry.registerConfiguration({
214
218
  TelemetryConfiguration.CRASH,
215
219
  TelemetryConfiguration.OFF
216
220
  ],
217
- "enumDescriptions": [( localize(2075, "Sends usage data, errors, and crash reports.")), ( localize(2076, "Sends general error telemetry and crash reports.")), ( localize(2077, "Sends OS level crash reports.")), ( localize(2078, "Disables all product telemetry."))],
221
+ "enumDescriptions": [( localize(2113, "Sends usage data, errors, and crash reports.")), ( localize(2114, "Sends general error telemetry and crash reports.")), ( localize(2115, "Sends OS level crash reports.")), ( localize(2116, "Disables all product telemetry."))],
218
222
  "markdownDescription": getTelemetryLevelSettingDescription(),
219
223
  "default": TelemetryConfiguration.ON,
220
224
  "restricted": true,
@@ -227,20 +231,20 @@ configurationRegistry.registerConfiguration({
227
231
  localization: {
228
232
  description: {
229
233
  key: "telemetry.telemetryLevel.policyDescription",
230
- value: ( localize(2079, "Controls the level of telemetry."))
234
+ value: ( localize(2117, "Controls the level of telemetry."))
231
235
  },
232
236
  enumDescriptions: [{
233
237
  key: "telemetry.telemetryLevel.default",
234
- value: ( localize(2075, "Sends usage data, errors, and crash reports."))
238
+ value: ( localize(2113, "Sends usage data, errors, and crash reports."))
235
239
  }, {
236
240
  key: "telemetry.telemetryLevel.error",
237
- value: ( localize(2076, "Sends general error telemetry and crash reports."))
241
+ value: ( localize(2114, "Sends general error telemetry and crash reports."))
238
242
  }, {
239
243
  key: "telemetry.telemetryLevel.crash",
240
- value: ( localize(2077, "Sends OS level crash reports."))
244
+ value: ( localize(2115, "Sends OS level crash reports."))
241
245
  }, {
242
246
  key: "telemetry.telemetryLevel.off",
243
- value: ( localize(2078, "Disables all product telemetry."))
247
+ value: ( localize(2116, "Disables all product telemetry."))
244
248
  }]
245
249
  }
246
250
  }
@@ -249,7 +253,7 @@ configurationRegistry.registerConfiguration({
249
253
  type: "boolean",
250
254
  default: true,
251
255
  description: ( localize(
252
- 2080,
256
+ 2118,
253
257
  "Enable feedback mechanisms such as the issue reporter, surveys, and other feedback options."
254
258
  )),
255
259
  policy: {
@@ -260,7 +264,7 @@ configurationRegistry.registerConfiguration({
260
264
  description: {
261
265
  key: "telemetry.feedback.enabled",
262
266
  value: ( localize(
263
- 2080,
267
+ 2118,
264
268
  "Enable feedback mechanisms such as the issue reporter, surveys, and other feedback options."
265
269
  ))
266
270
  }
@@ -270,11 +274,11 @@ configurationRegistry.registerConfiguration({
270
274
  [TELEMETRY_OLD_SETTING_ID]: {
271
275
  "type": "boolean",
272
276
  "markdownDescription": !product.privacyStatementUrl ? ( localize(
273
- 2081,
277
+ 2119,
274
278
  "Enable diagnostic data to be collected. This helps us to better understand how {0} is performing and where improvements need to be made.",
275
279
  product.nameLong
276
280
  )) : ( localize(
277
- 2082,
281
+ 2120,
278
282
  "Enable diagnostic data to be collected. This helps us to better understand how {0} is performing and where improvements need to be made. [Read more]({1}) about what we collect and our privacy statement.",
279
283
  product.nameLong,
280
284
  product.privacyStatementUrl
@@ -282,7 +286,7 @@ configurationRegistry.registerConfiguration({
282
286
  "default": true,
283
287
  "restricted": true,
284
288
  "markdownDeprecationMessage": ( localize(
285
- 2083,
289
+ 2121,
286
290
  "If this setting is false, no telemetry will be sent regardless of the new setting's value. Deprecated in favor of the {0} setting.",
287
291
  `\`#${TELEMETRY_SETTING_ID}#\``
288
292
  )),
@@ -176,7 +176,7 @@ let TelemetryContribution = class TelemetryContribution extends Disposable {
176
176
  constructor() {
177
177
  super({
178
178
  id: "workbench.action.showTelemetry",
179
- title: ( localize2(12005, "Show Telemetry")),
179
+ title: ( localize2(13013, "Show Telemetry")),
180
180
  category: Categories.Developer,
181
181
  f1: true
182
182
  });
@@ -1,7 +1,6 @@
1
1
  import { Disposable } from "@codingame/monaco-vscode-api/vscode/vs/base/common/lifecycle";
2
2
  import { IConfigurationService } from "@codingame/monaco-vscode-api/vscode/vs/platform/configuration/common/configuration.service";
3
3
  import { ILoggerService } from "@codingame/monaco-vscode-api/vscode/vs/platform/log/common/log.service";
4
- import { ILogService } from "@codingame/monaco-vscode-api/vscode/vs/platform/log/common/log.service";
5
4
  import { IProductService } from "@codingame/monaco-vscode-api/vscode/vs/platform/product/common/productService.service";
6
5
  import { IStorageService } from "@codingame/monaco-vscode-api/vscode/vs/platform/storage/common/storage.service";
7
6
  import { ClassifiedEvent, IGDPRProperty, OmitMetadata, StrictPropertyCheck } from "@codingame/monaco-vscode-api/vscode/vs/platform/telemetry/common/gdprTypings";
@@ -9,6 +8,7 @@ import { ITelemetryData, TelemetryLevel } from "@codingame/monaco-vscode-api/vsc
9
8
  import { ITelemetryService } from "@codingame/monaco-vscode-api/vscode/vs/platform/telemetry/common/telemetry.service";
10
9
  import { IBrowserWorkbenchEnvironmentService } from "@codingame/monaco-vscode-api/vscode/vs/workbench/services/environment/browser/environmentService.service";
11
10
  import { IRemoteAgentService } from "@codingame/monaco-vscode-api/vscode/vs/workbench/services/remote/common/remoteAgentService.service";
11
+ import { IMeteredConnectionService } from "@codingame/monaco-vscode-api/vscode/vs/platform/meteredConnection/common/meteredConnection.service";
12
12
  export declare class TelemetryService extends Disposable implements ITelemetryService {
13
13
  readonly _serviceBrand: undefined;
14
14
  private impl;
@@ -19,7 +19,7 @@ export declare class TelemetryService extends Disposable implements ITelemetrySe
19
19
  get devDeviceId(): string;
20
20
  get firstSessionDate(): string;
21
21
  get msftInternal(): boolean | undefined;
22
- constructor(environmentService: IBrowserWorkbenchEnvironmentService, logService: ILogService, loggerService: ILoggerService, configurationService: IConfigurationService, storageService: IStorageService, productService: IProductService, remoteAgentService: IRemoteAgentService);
22
+ constructor(environmentService: IBrowserWorkbenchEnvironmentService, loggerService: ILoggerService, configurationService: IConfigurationService, storageService: IStorageService, productService: IProductService, remoteAgentService: IRemoteAgentService, meteredConnectionService: IMeteredConnectionService);
23
23
  /**
24
24
  * Initializes the telemetry service to be a full fledged service.
25
25
  * This is only done once and only when telemetry is enabled as this will also ping the endpoint to
@@ -3,7 +3,7 @@ import { __decorate, __param } from '@codingame/monaco-vscode-api/external/tslib
3
3
  import { Disposable } from '@codingame/monaco-vscode-api/vscode/vs/base/common/lifecycle';
4
4
  import { IConfigurationService } from '@codingame/monaco-vscode-api/vscode/vs/platform/configuration/common/configuration.service';
5
5
  import '@codingame/monaco-vscode-api/vscode/vs/platform/instantiation/common/extensions';
6
- import { ILogService, ILoggerService } from '@codingame/monaco-vscode-api/vscode/vs/platform/log/common/log.service';
6
+ import { ILoggerService } from '@codingame/monaco-vscode-api/vscode/vs/platform/log/common/log.service';
7
7
  import { IProductService } from '@codingame/monaco-vscode-api/vscode/vs/platform/product/common/productService.service';
8
8
  import { IStorageService } from '@codingame/monaco-vscode-api/vscode/vs/platform/storage/common/storage.service';
9
9
  import { OneDataSystemWebAppender } from '../../../../platform/telemetry/browser/1dsAppender.js';
@@ -14,6 +14,7 @@ import { TelemetryService as TelemetryService$1 } from '../../../../platform/tel
14
14
  import { NullTelemetryService, supportsTelemetry, getTelemetryLevel, isInternalTelemetry, isLoggingOnly } from '@codingame/monaco-vscode-api/vscode/vs/platform/telemetry/common/telemetryUtils';
15
15
  import { IBrowserWorkbenchEnvironmentService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/services/environment/browser/environmentService.service';
16
16
  import { IRemoteAgentService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/services/remote/common/remoteAgentService.service';
17
+ import { IMeteredConnectionService } from '@codingame/monaco-vscode-api/vscode/vs/platform/meteredConnection/common/meteredConnection.service';
17
18
  import { resolveWorkbenchCommonProperties } from './workbenchCommonProperties.js';
18
19
  import { experimentsEnabled } from '../common/workbenchTelemetryUtils.js';
19
20
 
@@ -38,47 +39,47 @@ let TelemetryService = class TelemetryService extends Disposable {
38
39
  }
39
40
  constructor(
40
41
  environmentService,
41
- logService,
42
42
  loggerService,
43
43
  configurationService,
44
44
  storageService,
45
45
  productService,
46
- remoteAgentService
46
+ remoteAgentService,
47
+ meteredConnectionService
47
48
  ) {
48
49
  super();
49
50
  this.impl = NullTelemetryService;
50
51
  this.sendErrorTelemetry = true;
51
52
  this.impl = this.initializeService(
52
53
  environmentService,
53
- logService,
54
54
  loggerService,
55
55
  configurationService,
56
56
  storageService,
57
57
  productService,
58
- remoteAgentService
58
+ remoteAgentService,
59
+ meteredConnectionService
59
60
  );
60
61
  this._register(configurationService.onDidChangeConfiguration(e => {
61
62
  if (e.affectsConfiguration(TELEMETRY_SETTING_ID)) {
62
63
  this.impl = this.initializeService(
63
64
  environmentService,
64
- logService,
65
65
  loggerService,
66
66
  configurationService,
67
67
  storageService,
68
68
  productService,
69
- remoteAgentService
69
+ remoteAgentService,
70
+ meteredConnectionService
70
71
  );
71
72
  }
72
73
  }));
73
74
  }
74
75
  initializeService(
75
76
  environmentService,
76
- logService,
77
77
  loggerService,
78
78
  configurationService,
79
79
  storageService,
80
80
  productService,
81
- remoteAgentService
81
+ remoteAgentService,
82
+ meteredConnectionService
82
83
  ) {
83
84
  const telemetrySupported = supportsTelemetry(productService, environmentService) && productService.aiConfig?.ariaKey;
84
85
  if (telemetrySupported && getTelemetryLevel(configurationService) !== TelemetryLevel.NONE && this.impl === NullTelemetryService) {
@@ -106,7 +107,8 @@ let TelemetryService = class TelemetryService extends Disposable {
106
107
  environmentService.options && environmentService.options.resolveCommonTelemetryProperties
107
108
  ),
108
109
  sendErrorTelemetry: this.sendErrorTelemetry,
109
- waitForExperimentProperties: experimentsEnabled(configurationService, productService, environmentService)
110
+ waitForExperimentProperties: experimentsEnabled(configurationService, productService, environmentService),
111
+ meteredConnectionService
110
112
  };
111
113
  return this._register(( new TelemetryService$1(config, configurationService, productService)));
112
114
  }
@@ -131,6 +133,6 @@ let TelemetryService = class TelemetryService extends Disposable {
131
133
  this.publicLogError(eventName, data);
132
134
  }
133
135
  };
134
- TelemetryService = ( __decorate([( __param(0, IBrowserWorkbenchEnvironmentService)), ( __param(1, ILogService)), ( __param(2, ILoggerService)), ( __param(3, IConfigurationService)), ( __param(4, IStorageService)), ( __param(5, IProductService)), ( __param(6, IRemoteAgentService))], TelemetryService));
136
+ TelemetryService = ( __decorate([( __param(0, IBrowserWorkbenchEnvironmentService)), ( __param(1, ILoggerService)), ( __param(2, IConfigurationService)), ( __param(3, IStorageService)), ( __param(4, IProductService)), ( __param(5, IRemoteAgentService)), ( __param(6, IMeteredConnectionService))], TelemetryService));
135
137
 
136
138
  export { TelemetryService };
@@ -1,7 +0,0 @@
1
- import { IRandomService } from "@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/editTelemetry/browser/randomService.service";
2
- export declare class RandomService implements IRandomService {
3
- readonly _serviceBrand: undefined;
4
- generateUuid(): string;
5
- /** Namespace should be 3 letter. */
6
- generatePrefixedUuid(namespace: string): string;
7
- }
@@ -1,13 +0,0 @@
1
-
2
- import { generateUuid } from '@codingame/monaco-vscode-api/vscode/vs/base/common/uuid';
3
-
4
- class RandomService {
5
- generateUuid() {
6
- return generateUuid();
7
- }
8
- generatePrefixedUuid(namespace) {
9
- return `${namespace}-${this.generateUuid()}`;
10
- }
11
- }
12
-
13
- export { RandomService };