@theia/telemetry 1.74.0-next.68

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.
Files changed (122) hide show
  1. package/README.md +66 -0
  2. package/lib/browser/browser-telemetry-service.d.ts +16 -0
  3. package/lib/browser/browser-telemetry-service.d.ts.map +1 -0
  4. package/lib/browser/browser-telemetry-service.js +68 -0
  5. package/lib/browser/browser-telemetry-service.js.map +1 -0
  6. package/lib/browser/browser-telemetry-service.spec.d.ts +2 -0
  7. package/lib/browser/browser-telemetry-service.spec.d.ts.map +1 -0
  8. package/lib/browser/browser-telemetry-service.spec.js +163 -0
  9. package/lib/browser/browser-telemetry-service.spec.js.map +1 -0
  10. package/lib/browser/index.d.ts +2 -0
  11. package/lib/browser/index.d.ts.map +1 -0
  12. package/lib/browser/index.js +20 -0
  13. package/lib/browser/index.js.map +1 -0
  14. package/lib/browser/telemetry-frontend-module.d.ts +4 -0
  15. package/lib/browser/telemetry-frontend-module.d.ts.map +1 -0
  16. package/lib/browser/telemetry-frontend-module.js +35 -0
  17. package/lib/browser/telemetry-frontend-module.js.map +1 -0
  18. package/lib/browser-only/browser-only-telemetry-service.d.ts +5 -0
  19. package/lib/browser-only/browser-only-telemetry-service.d.ts.map +1 -0
  20. package/lib/browser-only/browser-only-telemetry-service.js +28 -0
  21. package/lib/browser-only/browser-only-telemetry-service.js.map +1 -0
  22. package/lib/browser-only/browser-only-telemetry-service.spec.d.ts +2 -0
  23. package/lib/browser-only/browser-only-telemetry-service.spec.d.ts.map +1 -0
  24. package/lib/browser-only/browser-only-telemetry-service.spec.js +42 -0
  25. package/lib/browser-only/browser-only-telemetry-service.spec.js.map +1 -0
  26. package/lib/browser-only/telemetry-frontend-only-module.d.ts +4 -0
  27. package/lib/browser-only/telemetry-frontend-only-module.d.ts.map +1 -0
  28. package/lib/browser-only/telemetry-frontend-only-module.js +30 -0
  29. package/lib/browser-only/telemetry-frontend-only-module.js.map +1 -0
  30. package/lib/common/index.d.ts +7 -0
  31. package/lib/common/index.d.ts.map +1 -0
  32. package/lib/common/index.js +25 -0
  33. package/lib/common/index.js.map +1 -0
  34. package/lib/common/telemetry-consent-provider.d.ts +24 -0
  35. package/lib/common/telemetry-consent-provider.d.ts.map +1 -0
  36. package/lib/common/telemetry-consent-provider.js +73 -0
  37. package/lib/common/telemetry-consent-provider.js.map +1 -0
  38. package/lib/common/telemetry-consent-provider.spec.d.ts +2 -0
  39. package/lib/common/telemetry-consent-provider.spec.d.ts.map +1 -0
  40. package/lib/common/telemetry-consent-provider.spec.js +87 -0
  41. package/lib/common/telemetry-consent-provider.spec.js.map +1 -0
  42. package/lib/common/telemetry-preferences.d.ts +29 -0
  43. package/lib/common/telemetry-preferences.d.ts.map +1 -0
  44. package/lib/common/telemetry-preferences.js +77 -0
  45. package/lib/common/telemetry-preferences.js.map +1 -0
  46. package/lib/common/telemetry-preferences.spec.d.ts +2 -0
  47. package/lib/common/telemetry-preferences.spec.d.ts.map +1 -0
  48. package/lib/common/telemetry-preferences.spec.js +50 -0
  49. package/lib/common/telemetry-preferences.spec.js.map +1 -0
  50. package/lib/common/telemetry-protocol.d.ts +30 -0
  51. package/lib/common/telemetry-protocol.d.ts.map +1 -0
  52. package/lib/common/telemetry-protocol.js +78 -0
  53. package/lib/common/telemetry-protocol.js.map +1 -0
  54. package/lib/common/telemetry-service.d.ts +28 -0
  55. package/lib/common/telemetry-service.d.ts.map +1 -0
  56. package/lib/common/telemetry-service.js +65 -0
  57. package/lib/common/telemetry-service.js.map +1 -0
  58. package/lib/common/telemetry-service.spec.d.ts +2 -0
  59. package/lib/common/telemetry-service.spec.d.ts.map +1 -0
  60. package/lib/common/telemetry-service.spec.js +128 -0
  61. package/lib/common/telemetry-service.spec.js.map +1 -0
  62. package/lib/common/telemetry-topic.d.ts +9 -0
  63. package/lib/common/telemetry-topic.d.ts.map +1 -0
  64. package/lib/common/telemetry-topic.js +61 -0
  65. package/lib/common/telemetry-topic.js.map +1 -0
  66. package/lib/common/telemetry-topic.spec.d.ts +2 -0
  67. package/lib/common/telemetry-topic.spec.d.ts.map +1 -0
  68. package/lib/common/telemetry-topic.spec.js +67 -0
  69. package/lib/common/telemetry-topic.spec.js.map +1 -0
  70. package/lib/common/telemetry-types.d.ts +5 -0
  71. package/lib/common/telemetry-types.d.ts.map +1 -0
  72. package/lib/common/telemetry-types.js +21 -0
  73. package/lib/common/telemetry-types.js.map +1 -0
  74. package/lib/common/test/recording-logger.d.ts +9 -0
  75. package/lib/common/test/recording-logger.d.ts.map +1 -0
  76. package/lib/common/test/recording-logger.js +36 -0
  77. package/lib/common/test/recording-logger.js.map +1 -0
  78. package/lib/node/index.d.ts +3 -0
  79. package/lib/node/index.d.ts.map +1 -0
  80. package/lib/node/index.js +21 -0
  81. package/lib/node/index.js.map +1 -0
  82. package/lib/node/telemetry-backend-module.d.ts +4 -0
  83. package/lib/node/telemetry-backend-module.d.ts.map +1 -0
  84. package/lib/node/telemetry-backend-module.js +37 -0
  85. package/lib/node/telemetry-backend-module.js.map +1 -0
  86. package/lib/node/telemetry-service-impl.d.ts +36 -0
  87. package/lib/node/telemetry-service-impl.d.ts.map +1 -0
  88. package/lib/node/telemetry-service-impl.js +208 -0
  89. package/lib/node/telemetry-service-impl.js.map +1 -0
  90. package/lib/node/telemetry-service-impl.spec.d.ts +2 -0
  91. package/lib/node/telemetry-service-impl.spec.d.ts.map +1 -0
  92. package/lib/node/telemetry-service-impl.spec.js +411 -0
  93. package/lib/node/telemetry-service-impl.spec.js.map +1 -0
  94. package/lib/node/telemetry-sink.d.ts +31 -0
  95. package/lib/node/telemetry-sink.d.ts.map +1 -0
  96. package/lib/node/telemetry-sink.js +21 -0
  97. package/lib/node/telemetry-sink.js.map +1 -0
  98. package/package.json +52 -0
  99. package/src/browser/browser-telemetry-service.spec.ts +193 -0
  100. package/src/browser/browser-telemetry-service.ts +69 -0
  101. package/src/browser/index.ts +17 -0
  102. package/src/browser/telemetry-frontend-module.ts +34 -0
  103. package/src/browser-only/browser-only-telemetry-service.spec.ts +44 -0
  104. package/src/browser-only/browser-only-telemetry-service.ts +23 -0
  105. package/src/browser-only/telemetry-frontend-only-module.ts +28 -0
  106. package/src/common/index.ts +22 -0
  107. package/src/common/telemetry-consent-provider.spec.ts +95 -0
  108. package/src/common/telemetry-consent-provider.ts +72 -0
  109. package/src/common/telemetry-preferences.spec.ts +56 -0
  110. package/src/common/telemetry-preferences.ts +91 -0
  111. package/src/common/telemetry-protocol.ts +100 -0
  112. package/src/common/telemetry-service.spec.ts +152 -0
  113. package/src/common/telemetry-service.ts +90 -0
  114. package/src/common/telemetry-topic.spec.ts +78 -0
  115. package/src/common/telemetry-topic.ts +60 -0
  116. package/src/common/telemetry-types.ts +21 -0
  117. package/src/common/test/recording-logger.ts +33 -0
  118. package/src/node/index.ts +18 -0
  119. package/src/node/telemetry-backend-module.ts +40 -0
  120. package/src/node/telemetry-service-impl.spec.ts +500 -0
  121. package/src/node/telemetry-service-impl.ts +214 -0
  122. package/src/node/telemetry-sink.ts +48 -0
@@ -0,0 +1,65 @@
1
+ "use strict";
2
+ // *****************************************************************************
3
+ // Copyright (C) 2026 STMicroelectronics and others.
4
+ //
5
+ // This program and the accompanying materials are made available under the
6
+ // terms of the Eclipse Public License v. 2.0 which is available at
7
+ // http://www.eclipse.org/legal/epl-2.0.
8
+ //
9
+ // This Source Code may also be made available under the following Secondary
10
+ // Licenses when the conditions for such availability set forth in the Eclipse
11
+ // Public License v. 2.0 are satisfied: GNU General Public License, version 2
12
+ // with the GNU Classpath Exception which is available at
13
+ // https://www.gnu.org/software/classpath/license.html.
14
+ //
15
+ // SPDX-License-Identifier: EPL-2.0 OR GPL-2.0-only WITH Classpath-exception-2.0
16
+ // *****************************************************************************
17
+ Object.defineProperty(exports, "__esModule", { value: true });
18
+ exports.TelemetryService = void 0;
19
+ exports.isTelemetryData = isTelemetryData;
20
+ exports.snapshotTelemetryData = snapshotTelemetryData;
21
+ exports.isTelemetryEventKind = isTelemetryEventKind;
22
+ const objects_1 = require("@theia/core/lib/common/objects");
23
+ const types_1 = require("@theia/core/lib/common/types");
24
+ function isTelemetryPrimitive(value) {
25
+ return typeof value === 'string' || typeof value === 'number' || typeof value === 'boolean';
26
+ }
27
+ function isTelemetryArray(value) {
28
+ if (!Array.isArray(value)) {
29
+ return false;
30
+ }
31
+ if (value.length === 0) {
32
+ return true;
33
+ }
34
+ if (!Object.prototype.hasOwnProperty.call(value, 0) || !isTelemetryPrimitive(value[0])) {
35
+ return false;
36
+ }
37
+ const elementType = typeof value[0];
38
+ for (let index = 1; index < value.length; index++) {
39
+ if (!Object.prototype.hasOwnProperty.call(value, index) || !isTelemetryPrimitive(value[index]) || typeof value[index] !== elementType) {
40
+ return false;
41
+ }
42
+ }
43
+ return true;
44
+ }
45
+ function isTelemetryValue(value) {
46
+ return isTelemetryPrimitive(value) || isTelemetryArray(value);
47
+ }
48
+ /** @experimental */
49
+ function isTelemetryData(data) {
50
+ if (!(0, types_1.isObject)(data) || Array.isArray(data) || Object.getPrototypeOf(data) !== Object.prototype) {
51
+ return false;
52
+ }
53
+ return Object.values(data).every(isTelemetryValue);
54
+ }
55
+ /** @experimental */
56
+ function snapshotTelemetryData(data) {
57
+ return data === undefined ? undefined : (0, objects_1.deepFreeze)((0, objects_1.deepClone)(data));
58
+ }
59
+ /** @experimental */
60
+ function isTelemetryEventKind(value) {
61
+ return value === 'usage' || value === 'error' || value === 'crash';
62
+ }
63
+ /** @experimental */
64
+ exports.TelemetryService = Symbol('TelemetryService');
65
+ //# sourceMappingURL=telemetry-service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"telemetry-service.js","sourceRoot":"","sources":["../../src/common/telemetry-service.ts"],"names":[],"mappings":";AAAA,gFAAgF;AAChF,oDAAoD;AACpD,EAAE;AACF,2EAA2E;AAC3E,mEAAmE;AACnE,wCAAwC;AACxC,EAAE;AACF,4EAA4E;AAC5E,8EAA8E;AAC9E,6EAA6E;AAC7E,yDAAyD;AACzD,uDAAuD;AACvD,EAAE;AACF,gFAAgF;AAChF,gFAAgF;;;AA2ChF,0CAKC;AAGD,sDAEC;AAMD,oDAEC;AA3DD,4DAAuE;AACvE,wDAAwD;AAYxD,SAAS,oBAAoB,CAAC,KAAc;IACxC,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,OAAO,KAAK,KAAK,SAAS,CAAC;AAChG,CAAC;AAED,SAAS,gBAAgB,CAAC,KAAc;IACpC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QACxB,OAAO,KAAK,CAAC;IACjB,CAAC;IACD,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACrB,OAAO,IAAI,CAAC;IAChB,CAAC;IACD,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,IAAI,CAAC,oBAAoB,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QACrF,OAAO,KAAK,CAAC;IACjB,CAAC;IACD,MAAM,WAAW,GAAG,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC;IACpC,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,KAAK,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE,CAAC;QAChD,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,CAAC,oBAAoB,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,IAAI,OAAO,KAAK,CAAC,KAAK,CAAC,KAAK,WAAW,EAAE,CAAC;YACpI,OAAO,KAAK,CAAC;QACjB,CAAC;IACL,CAAC;IACD,OAAO,IAAI,CAAC;AAChB,CAAC;AAED,SAAS,gBAAgB,CAAC,KAAc;IACpC,OAAO,oBAAoB,CAAC,KAAK,CAAC,IAAI,gBAAgB,CAAC,KAAK,CAAC,CAAC;AAClE,CAAC;AAED,oBAAoB;AACpB,SAAgB,eAAe,CAAC,IAAa;IACzC,IAAI,CAAC,IAAA,gBAAQ,EAAC,IAAI,CAAC,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,MAAM,CAAC,cAAc,CAAC,IAAI,CAAC,KAAK,MAAM,CAAC,SAAS,EAAE,CAAC;QAC7F,OAAO,KAAK,CAAC;IACjB,CAAC;IACD,OAAO,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC;AACvD,CAAC;AAED,oBAAoB;AACpB,SAAgB,qBAAqB,CAAmB,IAAkC;IACtF,OAAO,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAA,oBAAU,EAAC,IAAA,mBAAS,EAAC,IAAI,CAAC,CAAC,CAAC;AACxE,CAAC;AAKD,oBAAoB;AACpB,SAAgB,oBAAoB,CAAC,KAAc;IAC/C,OAAO,KAAK,KAAK,OAAO,IAAI,KAAK,KAAK,OAAO,IAAI,KAAK,KAAK,OAAO,CAAC;AACvE,CAAC;AAQD,oBAAoB;AACP,QAAA,gBAAgB,GAAG,MAAM,CAAC,kBAAkB,CAAC,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=telemetry-service.spec.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"telemetry-service.spec.d.ts","sourceRoot":"","sources":["../../src/common/telemetry-service.spec.ts"],"names":[],"mappings":""}
@@ -0,0 +1,128 @@
1
+ "use strict";
2
+ // *****************************************************************************
3
+ // Copyright (C) 2026 STMicroelectronics and others.
4
+ //
5
+ // This program and the accompanying materials are made available under the
6
+ // terms of the Eclipse Public License v. 2.0 which is available at
7
+ // http://www.eclipse.org/legal/epl-2.0.
8
+ //
9
+ // This Source Code may also be made available under the following Secondary
10
+ // Licenses when the conditions for such availability set forth in the Eclipse
11
+ // Public License v. 2.0 are satisfied: GNU General Public License, version 2
12
+ // with the GNU Classpath Exception which is available at
13
+ // https://www.gnu.org/software/classpath/license.html.
14
+ //
15
+ // SPDX-License-Identifier: EPL-2.0 OR GPL-2.0-only WITH Classpath-exception-2.0
16
+ // *****************************************************************************
17
+ Object.defineProperty(exports, "__esModule", { value: true });
18
+ const chai_1 = require("chai");
19
+ const uri_1 = require("@theia/core/lib/common/uri");
20
+ const telemetry_protocol_1 = require("./telemetry-protocol");
21
+ const telemetry_service_1 = require("./telemetry-service");
22
+ const typedPayload = {
23
+ action: 'open',
24
+ duration: 12,
25
+ successful: true,
26
+ tags: ['editor', 'open'],
27
+ measurements: [4, 8],
28
+ states: [true, false]
29
+ };
30
+ const compileTimeUsage = (service) => service.report('consumer/action', typedPayload, {
31
+ kind: 'error',
32
+ attributes: { source: 'consumer' }
33
+ });
34
+ describe('telemetry service contract', () => {
35
+ it('supports consumer-defined payload interfaces without an index signature', () => {
36
+ (0, chai_1.expect)(compileTimeUsage).to.be.a('function');
37
+ });
38
+ it('validates telemetry event kinds', () => {
39
+ (0, chai_1.expect)(['usage', 'error', 'crash'].every(telemetry_service_1.isTelemetryEventKind)).to.be.true;
40
+ (0, chai_1.expect)((0, telemetry_service_1.isTelemetryEventKind)('invalid')).to.be.false;
41
+ });
42
+ it('validates event kind, attributes, and session', () => {
43
+ const event = {
44
+ topic: 'consumer/action',
45
+ kind: 'error',
46
+ data: typedPayload,
47
+ attributes: { source: 'consumer' },
48
+ session: 'frontend-session',
49
+ timestamp: 42
50
+ };
51
+ (0, chai_1.expect)((0, telemetry_protocol_1.isValidTelemetryEvent)(event)).to.be.true;
52
+ (0, chai_1.expect)((0, telemetry_protocol_1.isValidTelemetryEvent)({ ...event, kind: 'invalid' })).to.be.false;
53
+ (0, chai_1.expect)((0, telemetry_protocol_1.isValidTelemetryEvent)({ ...event, session: '' })).to.be.false;
54
+ (0, chai_1.expect)((0, telemetry_protocol_1.isValidTelemetryEvent)({ ...event, attributes: { nested: {} } })).to.be.false;
55
+ });
56
+ it('accepts plain flat payloads with primitive telemetry values', () => {
57
+ (0, chai_1.expect)((0, telemetry_service_1.isTelemetryData)(typedPayload)).to.be.true;
58
+ (0, chai_1.expect)((0, telemetry_service_1.isTelemetryData)({})).to.be.true;
59
+ });
60
+ it('accepts homogeneous primitive and empty arrays unchanged', () => {
61
+ const strings = ['editor', 'open'];
62
+ const numbers = [4, 8];
63
+ const booleans = [true, false];
64
+ const empty = [];
65
+ const data = { strings, numbers, booleans, empty };
66
+ (0, chai_1.expect)((0, telemetry_service_1.isTelemetryData)(data)).to.be.true;
67
+ (0, chai_1.expect)(data.strings).to.equal(strings);
68
+ (0, chai_1.expect)(data.numbers).to.equal(numbers);
69
+ (0, chai_1.expect)(data.booleans).to.equal(booleans);
70
+ (0, chai_1.expect)(data.empty).to.equal(empty);
71
+ });
72
+ it('creates immutable snapshots without transforming accepted values', () => {
73
+ const strings = ['editor', 'open'];
74
+ const data = { action: 'open', duration: 12, successful: true, strings };
75
+ const snapshot = (0, telemetry_service_1.snapshotTelemetryData)(data);
76
+ (0, chai_1.expect)(snapshot).to.deep.equal(data);
77
+ (0, chai_1.expect)(snapshot).not.to.equal(data);
78
+ (0, chai_1.expect)(snapshot?.strings).not.to.equal(strings);
79
+ (0, chai_1.expect)(Object.isFrozen(snapshot)).to.be.true;
80
+ (0, chai_1.expect)(Object.isFrozen(snapshot?.strings)).to.be.true;
81
+ (0, chai_1.expect)((0, telemetry_service_1.snapshotTelemetryData)(undefined)).to.be.undefined;
82
+ });
83
+ it('rejects non-object payloads', () => {
84
+ for (const value of [undefined, 'value', 1, true]) {
85
+ (0, chai_1.expect)((0, telemetry_service_1.isTelemetryData)(value)).to.be.false;
86
+ }
87
+ // eslint-disable-next-line no-null/no-null
88
+ (0, chai_1.expect)((0, telemetry_service_1.isTelemetryData)(null)).to.be.false;
89
+ });
90
+ it('rejects top-level arrays and nested objects', () => {
91
+ (0, chai_1.expect)((0, telemetry_service_1.isTelemetryData)([])).to.be.false;
92
+ (0, chai_1.expect)((0, telemetry_service_1.isTelemetryData)({ value: { nested: true } })).to.be.false;
93
+ });
94
+ it('rejects mixed, nested, and sparse arrays', () => {
95
+ const sparse = new Array(2);
96
+ sparse[1] = 'value';
97
+ (0, chai_1.expect)((0, telemetry_service_1.isTelemetryData)({ value: ['value', 1] })).to.be.false;
98
+ (0, chai_1.expect)((0, telemetry_service_1.isTelemetryData)({ value: [['nested']] })).to.be.false;
99
+ (0, chai_1.expect)((0, telemetry_service_1.isTelemetryData)({ value: sparse })).to.be.false;
100
+ });
101
+ it('rejects unsupported array elements', () => {
102
+ (0, chai_1.expect)((0, telemetry_service_1.isTelemetryData)({ value: [{ nested: true }] })).to.be.false;
103
+ (0, chai_1.expect)((0, telemetry_service_1.isTelemetryData)({ value: ['value', undefined] })).to.be.false;
104
+ (0, chai_1.expect)((0, telemetry_service_1.isTelemetryData)({ value: ['value', () => 'value'] })).to.be.false;
105
+ (0, chai_1.expect)((0, telemetry_service_1.isTelemetryData)({ value: ['value', Symbol('value')] })).to.be.false;
106
+ (0, chai_1.expect)((0, telemetry_service_1.isTelemetryData)({ value: new Uint8Array([1, 2]) })).to.be.false;
107
+ });
108
+ it('rejects special and binary objects', () => {
109
+ (0, chai_1.expect)((0, telemetry_service_1.isTelemetryData)(new Error('failure'))).to.be.false;
110
+ (0, chai_1.expect)((0, telemetry_service_1.isTelemetryData)(new Date())).to.be.false;
111
+ (0, chai_1.expect)((0, telemetry_service_1.isTelemetryData)(new uri_1.default('file:///workspace'))).to.be.false;
112
+ (0, chai_1.expect)((0, telemetry_service_1.isTelemetryData)(new Uint8Array([1, 2]))).to.be.false;
113
+ });
114
+ it('rejects class instances even when their properties are flat', () => {
115
+ class Payload {
116
+ constructor() {
117
+ this.value = 'value';
118
+ }
119
+ }
120
+ (0, chai_1.expect)((0, telemetry_service_1.isTelemetryData)(new Payload())).to.be.false;
121
+ });
122
+ it('rejects unsupported values in otherwise plain payloads', () => {
123
+ (0, chai_1.expect)((0, telemetry_service_1.isTelemetryData)({ value: undefined })).to.be.false;
124
+ (0, chai_1.expect)((0, telemetry_service_1.isTelemetryData)({ value: () => 'value' })).to.be.false;
125
+ (0, chai_1.expect)((0, telemetry_service_1.isTelemetryData)({ value: Symbol('value') })).to.be.false;
126
+ });
127
+ });
128
+ //# sourceMappingURL=telemetry-service.spec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"telemetry-service.spec.js","sourceRoot":"","sources":["../../src/common/telemetry-service.spec.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ /** @experimental */
2
+ export declare function isValidTelemetryTopic(topic: unknown): topic is string;
3
+ /** @experimental */
4
+ export declare function isValidTelemetrySinkId(id: unknown): id is string;
5
+ /** @experimental */
6
+ export declare function isValidTelemetryTopicPattern(pattern: unknown): pattern is string;
7
+ /** @experimental */
8
+ export declare function matchesTelemetryTopic(pattern: string, topic: string): boolean;
9
+ //# sourceMappingURL=telemetry-topic.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"telemetry-topic.d.ts","sourceRoot":"","sources":["../../src/common/telemetry-topic.ts"],"names":[],"mappings":"AAuBA,oBAAoB;AACpB,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,MAAM,CAErE;AAED,oBAAoB;AACpB,wBAAgB,sBAAsB,CAAC,EAAE,EAAE,OAAO,GAAG,EAAE,IAAI,MAAM,CAEhE;AAED,oBAAoB;AACpB,wBAAgB,4BAA4B,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,IAAI,MAAM,CAWhF;AAED,oBAAoB;AACpB,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAW7E"}
@@ -0,0 +1,61 @@
1
+ "use strict";
2
+ // *****************************************************************************
3
+ // Copyright (C) 2026 STMicroelectronics and others.
4
+ //
5
+ // This program and the accompanying materials are made available under the
6
+ // terms of the Eclipse Public License v. 2.0 which is available at
7
+ // http://www.eclipse.org/legal/epl-2.0.
8
+ //
9
+ // This Source Code may also be made available under the following Secondary
10
+ // Licenses when the conditions for such availability set forth in the Eclipse
11
+ // Public License v. 2.0 are satisfied: GNU General Public License, version 2
12
+ // with the GNU Classpath Exception which is available at
13
+ // https://www.gnu.org/software/classpath/license.html.
14
+ //
15
+ // SPDX-License-Identifier: EPL-2.0 OR GPL-2.0-only WITH Classpath-exception-2.0
16
+ // *****************************************************************************
17
+ Object.defineProperty(exports, "__esModule", { value: true });
18
+ exports.isValidTelemetryTopic = isValidTelemetryTopic;
19
+ exports.isValidTelemetrySinkId = isValidTelemetrySinkId;
20
+ exports.isValidTelemetryTopicPattern = isValidTelemetryTopicPattern;
21
+ exports.matchesTelemetryTopic = matchesTelemetryTopic;
22
+ const SEGMENT_PATTERN = /^[A-Za-z0-9][A-Za-z0-9._-]*$/;
23
+ function hasValidSegments(value, minimumSegments) {
24
+ const segments = value.split('/');
25
+ return segments.length >= minimumSegments && segments.every(segment => SEGMENT_PATTERN.test(segment));
26
+ }
27
+ /** @experimental */
28
+ function isValidTelemetryTopic(topic) {
29
+ return typeof topic === 'string' && hasValidSegments(topic, 2);
30
+ }
31
+ /** @experimental */
32
+ function isValidTelemetrySinkId(id) {
33
+ return typeof id === 'string' && hasValidSegments(id, 2);
34
+ }
35
+ /** @experimental */
36
+ function isValidTelemetryTopicPattern(pattern) {
37
+ if (typeof pattern !== 'string') {
38
+ return false;
39
+ }
40
+ if (pattern === '*') {
41
+ return true;
42
+ }
43
+ if (pattern.endsWith('/*')) {
44
+ return hasValidSegments(pattern.slice(0, -2), 1);
45
+ }
46
+ return isValidTelemetryTopic(pattern);
47
+ }
48
+ /** @experimental */
49
+ function matchesTelemetryTopic(pattern, topic) {
50
+ if (!isValidTelemetryTopicPattern(pattern) || !isValidTelemetryTopic(topic)) {
51
+ return false;
52
+ }
53
+ if (pattern === '*') {
54
+ return true;
55
+ }
56
+ if (pattern.endsWith('/*')) {
57
+ return topic.startsWith(`${pattern.slice(0, -2)}/`);
58
+ }
59
+ return pattern === topic;
60
+ }
61
+ //# sourceMappingURL=telemetry-topic.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"telemetry-topic.js","sourceRoot":"","sources":["../../src/common/telemetry-topic.ts"],"names":[],"mappings":";AAAA,gFAAgF;AAChF,oDAAoD;AACpD,EAAE;AACF,2EAA2E;AAC3E,mEAAmE;AACnE,wCAAwC;AACxC,EAAE;AACF,4EAA4E;AAC5E,8EAA8E;AAC9E,6EAA6E;AAC7E,yDAAyD;AACzD,uDAAuD;AACvD,EAAE;AACF,gFAAgF;AAChF,gFAAgF;;AAUhF,sDAEC;AAGD,wDAEC;AAGD,oEAWC;AAGD,sDAWC;AA3CD,MAAM,eAAe,GAAG,8BAA8B,CAAC;AAEvD,SAAS,gBAAgB,CAAC,KAAa,EAAE,eAAuB;IAC5D,MAAM,QAAQ,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAClC,OAAO,QAAQ,CAAC,MAAM,IAAI,eAAe,IAAI,QAAQ,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC,eAAe,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;AAC1G,CAAC;AAED,oBAAoB;AACpB,SAAgB,qBAAqB,CAAC,KAAc;IAChD,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,gBAAgB,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;AACnE,CAAC;AAED,oBAAoB;AACpB,SAAgB,sBAAsB,CAAC,EAAW;IAC9C,OAAO,OAAO,EAAE,KAAK,QAAQ,IAAI,gBAAgB,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;AAC7D,CAAC;AAED,oBAAoB;AACpB,SAAgB,4BAA4B,CAAC,OAAgB;IACzD,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE,CAAC;QAC9B,OAAO,KAAK,CAAC;IACjB,CAAC;IACD,IAAI,OAAO,KAAK,GAAG,EAAE,CAAC;QAClB,OAAO,IAAI,CAAC;IAChB,CAAC;IACD,IAAI,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;QACzB,OAAO,gBAAgB,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IACrD,CAAC;IACD,OAAO,qBAAqB,CAAC,OAAO,CAAC,CAAC;AAC1C,CAAC;AAED,oBAAoB;AACpB,SAAgB,qBAAqB,CAAC,OAAe,EAAE,KAAa;IAChE,IAAI,CAAC,4BAA4B,CAAC,OAAO,CAAC,IAAI,CAAC,qBAAqB,CAAC,KAAK,CAAC,EAAE,CAAC;QAC1E,OAAO,KAAK,CAAC;IACjB,CAAC;IACD,IAAI,OAAO,KAAK,GAAG,EAAE,CAAC;QAClB,OAAO,IAAI,CAAC;IAChB,CAAC;IACD,IAAI,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;QACzB,OAAO,KAAK,CAAC,UAAU,CAAC,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;IACxD,CAAC;IACD,OAAO,OAAO,KAAK,KAAK,CAAC;AAC7B,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=telemetry-topic.spec.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"telemetry-topic.spec.d.ts","sourceRoot":"","sources":["../../src/common/telemetry-topic.spec.ts"],"names":[],"mappings":""}
@@ -0,0 +1,67 @@
1
+ "use strict";
2
+ // *****************************************************************************
3
+ // Copyright (C) 2026 STMicroelectronics and others.
4
+ //
5
+ // This program and the accompanying materials are made available under the
6
+ // terms of the Eclipse Public License v. 2.0 which is available at
7
+ // http://www.eclipse.org/legal/epl-2.0.
8
+ //
9
+ // This Source Code may also be made available under the following Secondary
10
+ // Licenses when the conditions for such availability set forth in the Eclipse
11
+ // Public License v. 2.0 are satisfied: GNU General Public License, version 2
12
+ // with the GNU Classpath Exception which is available at
13
+ // https://www.gnu.org/software/classpath/license.html.
14
+ //
15
+ // SPDX-License-Identifier: EPL-2.0 OR GPL-2.0-only WITH Classpath-exception-2.0
16
+ // *****************************************************************************
17
+ Object.defineProperty(exports, "__esModule", { value: true });
18
+ const chai_1 = require("chai");
19
+ const telemetry_topic_1 = require("./telemetry-topic");
20
+ describe('telemetry topic contract', () => {
21
+ const validNames = ['company/metric', 'Company/Metric', 'company/product/metric', 'company-1/metric_2', 'company.name/metric'];
22
+ const invalidNames = ['', 'company', '/company/metric', 'company/metric/', 'company//metric', 'company/*', '*/metric', 'company/**', 'company/metric!', ' company/metric'];
23
+ for (const name of validNames) {
24
+ it(`accepts topic and sink ID '${name}'`, () => {
25
+ (0, chai_1.expect)((0, telemetry_topic_1.isValidTelemetryTopic)(name)).to.be.true;
26
+ (0, chai_1.expect)((0, telemetry_topic_1.isValidTelemetrySinkId)(name)).to.be.true;
27
+ });
28
+ }
29
+ for (const name of invalidNames) {
30
+ it(`rejects topic and sink ID '${name}'`, () => {
31
+ (0, chai_1.expect)((0, telemetry_topic_1.isValidTelemetryTopic)(name)).to.be.false;
32
+ (0, chai_1.expect)((0, telemetry_topic_1.isValidTelemetrySinkId)(name)).to.be.false;
33
+ });
34
+ }
35
+ it('accepts only exact, terminal prefix, and global patterns', () => {
36
+ for (const pattern of ['company/metric', 'company/product/metric', 'company/*', 'company/product/*', '*']) {
37
+ (0, chai_1.expect)((0, telemetry_topic_1.isValidTelemetryTopicPattern)(pattern), pattern).to.be.true;
38
+ }
39
+ const invalidPatterns = [
40
+ '', 'company', '/company/*', 'company/*/', 'company//metric', '*/metric',
41
+ 'company/*/metric', 'company/**', '**', '!company/metric', 'company/(metric)'
42
+ ];
43
+ for (const pattern of invalidPatterns) {
44
+ (0, chai_1.expect)((0, telemetry_topic_1.isValidTelemetryTopicPattern)(pattern), pattern).to.be.false;
45
+ }
46
+ });
47
+ it('matches exact topics case-sensitively', () => {
48
+ (0, chai_1.expect)((0, telemetry_topic_1.matchesTelemetryTopic)('company/metric', 'company/metric')).to.be.true;
49
+ (0, chai_1.expect)((0, telemetry_topic_1.matchesTelemetryTopic)('company/metric', 'company/other')).to.be.false;
50
+ (0, chai_1.expect)((0, telemetry_topic_1.matchesTelemetryTopic)('company/metric', 'Company/metric')).to.be.false;
51
+ });
52
+ it('matches descendants of a terminal prefix only', () => {
53
+ (0, chai_1.expect)((0, telemetry_topic_1.matchesTelemetryTopic)('company/*', 'company/metric')).to.be.true;
54
+ (0, chai_1.expect)((0, telemetry_topic_1.matchesTelemetryTopic)('company/*', 'company/product/metric')).to.be.true;
55
+ (0, chai_1.expect)((0, telemetry_topic_1.matchesTelemetryTopic)('company/*', 'company')).to.be.false;
56
+ (0, chai_1.expect)((0, telemetry_topic_1.matchesTelemetryTopic)('company/*', 'companyElse/metric')).to.be.false;
57
+ });
58
+ it('matches every valid topic with the global pattern', () => {
59
+ (0, chai_1.expect)((0, telemetry_topic_1.matchesTelemetryTopic)('*', 'company/metric')).to.be.true;
60
+ (0, chai_1.expect)((0, telemetry_topic_1.matchesTelemetryTopic)('*', 'company/product/metric')).to.be.true;
61
+ });
62
+ it('does not match invalid patterns or topics', () => {
63
+ (0, chai_1.expect)((0, telemetry_topic_1.matchesTelemetryTopic)('company/**', 'company/metric')).to.be.false;
64
+ (0, chai_1.expect)((0, telemetry_topic_1.matchesTelemetryTopic)('*', 'company')).to.be.false;
65
+ });
66
+ });
67
+ //# sourceMappingURL=telemetry-topic.spec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"telemetry-topic.spec.js","sourceRoot":"","sources":["../../src/common/telemetry-topic.spec.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ /** @experimental */
2
+ export type TelemetryLevel = 'off' | 'crash' | 'error' | 'all';
3
+ /** @experimental */
4
+ export declare const BACKEND_TELEMETRY_SESSION = "backend";
5
+ //# sourceMappingURL=telemetry-types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"telemetry-types.d.ts","sourceRoot":"","sources":["../../src/common/telemetry-types.ts"],"names":[],"mappings":"AAgBA,oBAAoB;AACpB,MAAM,MAAM,cAAc,GAAG,KAAK,GAAG,OAAO,GAAG,OAAO,GAAG,KAAK,CAAC;AAE/D,oBAAoB;AACpB,eAAO,MAAM,yBAAyB,YAAY,CAAC"}
@@ -0,0 +1,21 @@
1
+ "use strict";
2
+ // *****************************************************************************
3
+ // Copyright (C) 2026 STMicroelectronics and others.
4
+ //
5
+ // This program and the accompanying materials are made available under the
6
+ // terms of the Eclipse Public License v. 2.0 which is available at
7
+ // http://www.eclipse.org/legal/epl-2.0.
8
+ //
9
+ // This Source Code may also be made available under the following Secondary
10
+ // Licenses when the conditions for such availability set forth in the Eclipse
11
+ // Public License v. 2.0 are satisfied: GNU General Public License, version 2
12
+ // with the GNU Classpath Exception which is available at
13
+ // https://www.gnu.org/software/classpath/license.html.
14
+ //
15
+ // SPDX-License-Identifier: EPL-2.0 OR GPL-2.0-only WITH Classpath-exception-2.0
16
+ // *****************************************************************************
17
+ Object.defineProperty(exports, "__esModule", { value: true });
18
+ exports.BACKEND_TELEMETRY_SESSION = void 0;
19
+ /** @experimental */
20
+ exports.BACKEND_TELEMETRY_SESSION = 'backend';
21
+ //# sourceMappingURL=telemetry-types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"telemetry-types.js","sourceRoot":"","sources":["../../src/common/telemetry-types.ts"],"names":[],"mappings":";AAAA,gFAAgF;AAChF,oDAAoD;AACpD,EAAE;AACF,2EAA2E;AAC3E,mEAAmE;AACnE,wCAAwC;AACxC,EAAE;AACF,4EAA4E;AAC5E,8EAA8E;AAC9E,6EAA6E;AAC7E,yDAAyD;AACzD,uDAAuD;AACvD,EAAE;AACF,gFAAgF;AAChF,gFAAgF;;;AAKhF,oBAAoB;AACP,QAAA,yBAAyB,GAAG,SAAS,CAAC"}
@@ -0,0 +1,9 @@
1
+ import { Loggable } from '@theia/core/lib/common';
2
+ import { MockLogger } from '@theia/core/lib/common/test/mock-logger';
3
+ export declare class RecordingLogger extends MockLogger {
4
+ readonly warnings: string[];
5
+ readonly errors: string[];
6
+ warn(arg: string | Loggable, ...params: unknown[]): Promise<void>;
7
+ error(arg: string | Loggable | Error, ...params: unknown[]): Promise<void>;
8
+ }
9
+ //# sourceMappingURL=recording-logger.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"recording-logger.d.ts","sourceRoot":"","sources":["../../../src/common/test/recording-logger.ts"],"names":[],"mappings":"AAgBA,OAAO,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AAClD,OAAO,EAAE,UAAU,EAAE,MAAM,yCAAyC,CAAC;AAErE,qBAAa,eAAgB,SAAQ,UAAU;IAC3C,QAAQ,CAAC,QAAQ,EAAE,MAAM,EAAE,CAAM;IACjC,QAAQ,CAAC,MAAM,EAAE,MAAM,EAAE,CAAM;IAEtB,IAAI,CAAC,GAAG,EAAE,MAAM,GAAG,QAAQ,EAAE,GAAG,MAAM,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAKjE,KAAK,CAAC,GAAG,EAAE,MAAM,GAAG,QAAQ,GAAG,KAAK,EAAE,GAAG,MAAM,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;CAItF"}
@@ -0,0 +1,36 @@
1
+ "use strict";
2
+ // *****************************************************************************
3
+ // Copyright (C) 2026 STMicroelectronics and others.
4
+ //
5
+ // This program and the accompanying materials are made available under the
6
+ // terms of the Eclipse Public License v. 2.0 which is available at
7
+ // http://www.eclipse.org/legal/epl-2.0.
8
+ //
9
+ // This Source Code may also be made available under the following Secondary
10
+ // Licenses when the conditions for such availability set forth in the Eclipse
11
+ // Public License v. 2.0 are satisfied: GNU General Public License, version 2
12
+ // with the GNU Classpath Exception which is available at
13
+ // https://www.gnu.org/software/classpath/license.html.
14
+ //
15
+ // SPDX-License-Identifier: EPL-2.0 OR GPL-2.0-only WITH Classpath-exception-2.0
16
+ // *****************************************************************************
17
+ Object.defineProperty(exports, "__esModule", { value: true });
18
+ exports.RecordingLogger = void 0;
19
+ const mock_logger_1 = require("@theia/core/lib/common/test/mock-logger");
20
+ class RecordingLogger extends mock_logger_1.MockLogger {
21
+ constructor() {
22
+ super(...arguments);
23
+ this.warnings = [];
24
+ this.errors = [];
25
+ }
26
+ warn(arg, ...params) {
27
+ this.warnings.push(String(arg), ...params.map(String));
28
+ return Promise.resolve();
29
+ }
30
+ error(arg, ...params) {
31
+ this.errors.push(String(arg), ...params.map(String));
32
+ return Promise.resolve();
33
+ }
34
+ }
35
+ exports.RecordingLogger = RecordingLogger;
36
+ //# sourceMappingURL=recording-logger.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"recording-logger.js","sourceRoot":"","sources":["../../../src/common/test/recording-logger.ts"],"names":[],"mappings":";AAAA,gFAAgF;AAChF,oDAAoD;AACpD,EAAE;AACF,2EAA2E;AAC3E,mEAAmE;AACnE,wCAAwC;AACxC,EAAE;AACF,4EAA4E;AAC5E,8EAA8E;AAC9E,6EAA6E;AAC7E,yDAAyD;AACzD,uDAAuD;AACvD,EAAE;AACF,gFAAgF;AAChF,gFAAgF;;;AAGhF,yEAAqE;AAErE,MAAa,eAAgB,SAAQ,wBAAU;IAA/C;;QACa,aAAQ,GAAa,EAAE,CAAC;QACxB,WAAM,GAAa,EAAE,CAAC;IAWnC,CAAC;IATY,IAAI,CAAC,GAAsB,EAAE,GAAG,MAAiB;QACtD,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,GAAG,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC;QACvD,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;IAC7B,CAAC;IAEQ,KAAK,CAAC,GAA8B,EAAE,GAAG,MAAiB;QAC/D,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,GAAG,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC;QACrD,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;IAC7B,CAAC;CACJ;AAbD,0CAaC"}
@@ -0,0 +1,3 @@
1
+ export * from './telemetry-service-impl';
2
+ export * from './telemetry-sink';
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/node/index.ts"],"names":[],"mappings":"AAgBA,cAAc,0BAA0B,CAAC;AACzC,cAAc,kBAAkB,CAAC"}
@@ -0,0 +1,21 @@
1
+ "use strict";
2
+ // *****************************************************************************
3
+ // Copyright (C) 2026 STMicroelectronics and others.
4
+ //
5
+ // This program and the accompanying materials are made available under the
6
+ // terms of the Eclipse Public License v. 2.0 which is available at
7
+ // http://www.eclipse.org/legal/epl-2.0.
8
+ //
9
+ // This Source Code may also be made available under the following Secondary
10
+ // Licenses when the conditions for such availability set forth in the Eclipse
11
+ // Public License v. 2.0 are satisfied: GNU General Public License, version 2
12
+ // with the GNU Classpath Exception which is available at
13
+ // https://www.gnu.org/software/classpath/license.html.
14
+ //
15
+ // SPDX-License-Identifier: EPL-2.0 OR GPL-2.0-only WITH Classpath-exception-2.0
16
+ // *****************************************************************************
17
+ Object.defineProperty(exports, "__esModule", { value: true });
18
+ const tslib_1 = require("tslib");
19
+ tslib_1.__exportStar(require("./telemetry-service-impl"), exports);
20
+ tslib_1.__exportStar(require("./telemetry-sink"), exports);
21
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/node/index.ts"],"names":[],"mappings":";AAAA,gFAAgF;AAChF,oDAAoD;AACpD,EAAE;AACF,2EAA2E;AAC3E,mEAAmE;AACnE,wCAAwC;AACxC,EAAE;AACF,4EAA4E;AAC5E,8EAA8E;AAC9E,6EAA6E;AAC7E,yDAAyD;AACzD,uDAAuD;AACvD,EAAE;AACF,gFAAgF;AAChF,gFAAgF;;;AAEhF,mEAAyC;AACzC,2DAAiC"}
@@ -0,0 +1,4 @@
1
+ import { ContainerModule } from '@theia/core/shared/inversify';
2
+ declare const _default: ContainerModule;
3
+ export default _default;
4
+ //# sourceMappingURL=telemetry-backend-module.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"telemetry-backend-module.d.ts","sourceRoot":"","sources":["../../src/node/telemetry-backend-module.ts"],"names":[],"mappings":"AAkBA,OAAO,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;;AAQ/D,wBAaG"}
@@ -0,0 +1,37 @@
1
+ "use strict";
2
+ // *****************************************************************************
3
+ // Copyright (C) 2026 STMicroelectronics and others.
4
+ //
5
+ // This program and the accompanying materials are made available under the
6
+ // terms of the Eclipse Public License v. 2.0 which is available at
7
+ // http://www.eclipse.org/legal/epl-2.0.
8
+ //
9
+ // This Source Code may also be made available under the following Secondary
10
+ // Licenses when the conditions for such availability set forth in the Eclipse
11
+ // Public License v. 2.0 are satisfied: GNU General Public License, version 2
12
+ // with the GNU Classpath Exception which is available at
13
+ // https://www.gnu.org/software/classpath/license.html.
14
+ //
15
+ // SPDX-License-Identifier: EPL-2.0 OR GPL-2.0-only WITH Classpath-exception-2.0
16
+ // *****************************************************************************
17
+ Object.defineProperty(exports, "__esModule", { value: true });
18
+ const common_1 = require("@theia/core/lib/common");
19
+ const backend_application_1 = require("@theia/core/lib/node/backend-application");
20
+ const inversify_1 = require("@theia/core/shared/inversify");
21
+ const telemetry_consent_provider_1 = require("../common/telemetry-consent-provider");
22
+ const telemetry_preferences_1 = require("../common/telemetry-preferences");
23
+ const telemetry_protocol_1 = require("../common/telemetry-protocol");
24
+ const telemetry_service_1 = require("../common/telemetry-service");
25
+ const telemetry_service_impl_1 = require("./telemetry-service-impl");
26
+ const telemetry_sink_1 = require("./telemetry-sink");
27
+ exports.default = new inversify_1.ContainerModule(bind => {
28
+ (0, telemetry_preferences_1.bindTelemetryPreferences)(bind);
29
+ bind(telemetry_consent_provider_1.TelemetryConsentProvider).to(telemetry_consent_provider_1.PreferenceTelemetryConsentProvider).inSingletonScope();
30
+ (0, common_1.bindRootContributionProvider)(bind, telemetry_sink_1.TelemetrySink);
31
+ bind(telemetry_service_impl_1.TelemetryServiceImpl).toSelf().inSingletonScope();
32
+ bind(telemetry_service_1.TelemetryService).toService(telemetry_service_impl_1.TelemetryServiceImpl);
33
+ bind(telemetry_protocol_1.TelemetryRpc).toService(telemetry_service_impl_1.TelemetryServiceImpl);
34
+ bind(backend_application_1.BackendApplicationContribution).toService(telemetry_service_impl_1.TelemetryServiceImpl);
35
+ bind(common_1.ConnectionHandler).toDynamicValue(ctx => new common_1.RpcConnectionHandler(telemetry_protocol_1.telemetryServicePath, () => ctx.container.get(telemetry_protocol_1.TelemetryRpc))).inSingletonScope();
36
+ });
37
+ //# sourceMappingURL=telemetry-backend-module.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"telemetry-backend-module.js","sourceRoot":"","sources":["../../src/node/telemetry-backend-module.ts"],"names":[],"mappings":";AAAA,gFAAgF;AAChF,oDAAoD;AACpD,EAAE;AACF,2EAA2E;AAC3E,mEAAmE;AACnE,wCAAwC;AACxC,EAAE;AACF,4EAA4E;AAC5E,8EAA8E;AAC9E,6EAA6E;AAC7E,yDAAyD;AACzD,uDAAuD;AACvD,EAAE;AACF,gFAAgF;AAChF,gFAAgF;;AAEhF,mDAA+G;AAC/G,kFAA0F;AAC1F,4DAA+D;AAC/D,qFAAoH;AACpH,2EAA2E;AAC3E,qEAAkF;AAClF,mEAA+D;AAC/D,qEAAgE;AAChE,qDAAiD;AAEjD,kBAAe,IAAI,2BAAe,CAAC,IAAI,CAAC,EAAE;IACtC,IAAA,gDAAwB,EAAC,IAAI,CAAC,CAAC;IAC/B,IAAI,CAAC,qDAAwB,CAAC,CAAC,EAAE,CAAC,+DAAkC,CAAC,CAAC,gBAAgB,EAAE,CAAC;IACzF,IAAA,qCAA4B,EAAC,IAAI,EAAE,8BAAa,CAAC,CAAC;IAElD,IAAI,CAAC,6CAAoB,CAAC,CAAC,MAAM,EAAE,CAAC,gBAAgB,EAAE,CAAC;IACvD,IAAI,CAAC,oCAAgB,CAAC,CAAC,SAAS,CAAC,6CAAoB,CAAC,CAAC;IACvD,IAAI,CAAC,iCAAY,CAAC,CAAC,SAAS,CAAC,6CAAoB,CAAC,CAAC;IACnD,IAAI,CAAC,oDAA8B,CAAC,CAAC,SAAS,CAAC,6CAAoB,CAAC,CAAC;IAErE,IAAI,CAAC,0BAAiB,CAAC,CAAC,cAAc,CAAC,GAAG,CAAC,EAAE,CACzC,IAAI,6BAAoB,CAAC,yCAAoB,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,SAAS,CAAC,GAAG,CAAe,iCAAY,CAAC,CAAC,CACtG,CAAC,gBAAgB,EAAE,CAAC;AACzB,CAAC,CAAC,CAAC"}
@@ -0,0 +1,36 @@
1
+ import { ContributionProvider, ILogger } from '@theia/core/lib/common';
2
+ import { BackendApplicationContribution } from '@theia/core/lib/node/backend-application';
3
+ import { TelemetryConsentProvider } from '../common/telemetry-consent-provider';
4
+ import { TelemetryPreferences } from '../common/telemetry-preferences';
5
+ import { TelemetryEvent, TelemetryRpc } from '../common/telemetry-protocol';
6
+ import { TelemetryData, TelemetryReportOptions, TelemetryService } from '../common/telemetry-service';
7
+ import { TelemetrySink } from './telemetry-sink';
8
+ interface ValidatedTelemetrySink {
9
+ readonly sink: TelemetrySink;
10
+ readonly id: string;
11
+ readonly interests: readonly string[];
12
+ readonly scope: 'local' | 'remote';
13
+ }
14
+ export declare class TelemetryServiceImpl implements TelemetryService, TelemetryRpc, BackendApplicationContribution {
15
+ protected sinks: readonly ValidatedTelemetrySink[] | undefined;
16
+ protected filters: ReadonlyMap<string, readonly string[]> | undefined;
17
+ protected readinessState: 'pending' | 'ready' | 'failed';
18
+ protected pendingEvents: TelemetryEvent[];
19
+ protected pendingQueueOverflowWarned: boolean;
20
+ protected readonly consentProvider: TelemetryConsentProvider;
21
+ protected readonly preferences: TelemetryPreferences;
22
+ protected readonly sinkProvider: ContributionProvider<TelemetrySink>;
23
+ protected readonly logger: ILogger;
24
+ protected init(): void;
25
+ report<T extends object>(topic: string, data?: TelemetryData<T>, options?: TelemetryReportOptions): void;
26
+ notifyEvent(event: unknown): void;
27
+ getLocalSinkInterests(): Promise<string[]>;
28
+ onStop(): Promise<void>;
29
+ protected dispatch(event: unknown, rpcOrigin?: boolean): void;
30
+ protected doDispatch(event: TelemetryEvent): void;
31
+ protected getSinks(): readonly ValidatedTelemetrySink[];
32
+ protected getFilters(): ReadonlyMap<string, readonly string[]>;
33
+ protected logSinkFailure(sinkId: string, topic: string): void;
34
+ }
35
+ export {};
36
+ //# sourceMappingURL=telemetry-service-impl.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"telemetry-service-impl.d.ts","sourceRoot":"","sources":["../../src/node/telemetry-service-impl.ts"],"names":[],"mappings":"AAgBA,OAAO,EAAE,oBAAoB,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAC;AACvE,OAAO,EAAE,8BAA8B,EAAE,MAAM,0CAA0C,CAAC;AAE1F,OAAO,EAAE,wBAAwB,EAAwB,MAAM,sCAAsC,CAAC;AACtG,OAAO,EAAqB,oBAAoB,EAAE,MAAM,iCAAiC,CAAC;AAC1F,OAAO,EACH,cAAc,EAAE,YAAY,EAC/B,MAAM,8BAA8B,CAAC;AACtC,OAAO,EAAE,aAAa,EAAE,sBAAsB,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AAGtG,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAIjD,UAAU,sBAAsB;IAC5B,QAAQ,CAAC,IAAI,EAAE,aAAa,CAAC;IAC7B,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,SAAS,EAAE,SAAS,MAAM,EAAE,CAAC;IACtC,QAAQ,CAAC,KAAK,EAAE,OAAO,GAAG,QAAQ,CAAC;CACtC;AAED,qBACa,oBAAqB,YAAW,gBAAgB,EAAE,YAAY,EAAE,8BAA8B;IAEvG,SAAS,CAAC,KAAK,EAAE,SAAS,sBAAsB,EAAE,GAAG,SAAS,CAAC;IAC/D,SAAS,CAAC,OAAO,EAAE,WAAW,CAAC,MAAM,EAAE,SAAS,MAAM,EAAE,CAAC,GAAG,SAAS,CAAC;IACtE,SAAS,CAAC,cAAc,EAAE,SAAS,GAAG,OAAO,GAAG,QAAQ,CAAa;IACrE,SAAS,CAAC,aAAa,EAAE,cAAc,EAAE,CAAM;IAC/C,SAAS,CAAC,0BAA0B,UAAS;IAG7C,SAAS,CAAC,QAAQ,CAAC,eAAe,EAAE,wBAAwB,CAAC;IAG7D,SAAS,CAAC,QAAQ,CAAC,WAAW,EAAE,oBAAoB,CAAC;IAGrD,SAAS,CAAC,QAAQ,CAAC,YAAY,EAAE,oBAAoB,CAAC,aAAa,CAAC,CAAC;IAGrE,SAAS,CAAC,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;IAGnC,SAAS,CAAC,IAAI,IAAI,IAAI;IAyBtB,MAAM,CAAC,CAAC,SAAS,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,aAAa,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,EAAE,sBAAsB,GAAG,IAAI;IAIxG,WAAW,CAAC,KAAK,EAAE,OAAO,GAAG,IAAI;IAI3B,qBAAqB,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;IAM1C,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC;IAU7B,SAAS,CAAC,QAAQ,CAAC,KAAK,EAAE,OAAO,EAAE,SAAS,UAAQ,GAAG,IAAI;IAoB3D,SAAS,CAAC,UAAU,CAAC,KAAK,EAAE,cAAc,GAAG,IAAI;IAoBjD,SAAS,CAAC,QAAQ,IAAI,SAAS,sBAAsB,EAAE;IAqCvD,SAAS,CAAC,UAAU,IAAI,WAAW,CAAC,MAAM,EAAE,SAAS,MAAM,EAAE,CAAC;IAwB9D,SAAS,CAAC,cAAc,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI;CAGhE"}