@theia/plugin-ext 1.76.0-next.7 → 1.76.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.
Files changed (221) hide show
  1. package/lib/common/paths-util.d.ts.map +1 -1
  2. package/lib/common/paths-util.js +9 -2
  3. package/lib/common/paths-util.js.map +1 -1
  4. package/lib/common/paths-util.spec.d.ts +2 -0
  5. package/lib/common/paths-util.spec.d.ts.map +1 -0
  6. package/lib/common/paths-util.spec.js +42 -0
  7. package/lib/common/paths-util.spec.js.map +1 -0
  8. package/lib/common/plugin-api-rpc.d.ts +14 -0
  9. package/lib/common/plugin-api-rpc.d.ts.map +1 -1
  10. package/lib/common/plugin-api-rpc.js +1 -1
  11. package/lib/common/plugin-api-rpc.js.map +1 -1
  12. package/lib/common/plugin-protocol.d.ts +2 -2
  13. package/lib/common/plugin-protocol.d.ts.map +1 -1
  14. package/lib/common/plugin-protocol.js +2 -1
  15. package/lib/common/plugin-protocol.js.map +1 -1
  16. package/lib/hosted/browser/hosted-plugin.d.ts +2 -0
  17. package/lib/hosted/browser/hosted-plugin.d.ts.map +1 -1
  18. package/lib/hosted/browser/hosted-plugin.js +9 -3
  19. package/lib/hosted/browser/hosted-plugin.js.map +1 -1
  20. package/lib/hosted/browser/worker/worker-main.js +22 -12
  21. package/lib/hosted/browser/worker/worker-main.js.map +1 -1
  22. package/lib/hosted/browser/worker/worker-plugin-module.d.ts.map +1 -1
  23. package/lib/hosted/browser/worker/worker-plugin-module.js +2 -0
  24. package/lib/hosted/browser/worker/worker-plugin-module.js.map +1 -1
  25. package/lib/hosted/browser-only/browser-only-hosted-plugin-server.d.ts +37 -0
  26. package/lib/hosted/browser-only/browser-only-hosted-plugin-server.d.ts.map +1 -0
  27. package/lib/hosted/browser-only/browser-only-hosted-plugin-server.js +107 -0
  28. package/lib/hosted/browser-only/browser-only-hosted-plugin-server.js.map +1 -0
  29. package/lib/hosted/browser-only/browser-only-hosted-plugin-server.spec.d.ts +2 -0
  30. package/lib/hosted/browser-only/browser-only-hosted-plugin-server.spec.d.ts.map +1 -0
  31. package/lib/hosted/browser-only/browser-only-hosted-plugin-server.spec.js +106 -0
  32. package/lib/hosted/browser-only/browser-only-hosted-plugin-server.spec.js.map +1 -0
  33. package/lib/hosted/browser-only/browser-only-plugin-file-system-provider.d.ts +38 -0
  34. package/lib/hosted/browser-only/browser-only-plugin-file-system-provider.d.ts.map +1 -0
  35. package/lib/hosted/browser-only/browser-only-plugin-file-system-provider.js +124 -0
  36. package/lib/hosted/browser-only/browser-only-plugin-file-system-provider.js.map +1 -0
  37. package/lib/hosted/browser-only/browser-only-plugin-file-system-provider.spec.d.ts +2 -0
  38. package/lib/hosted/browser-only/browser-only-plugin-file-system-provider.spec.d.ts.map +1 -0
  39. package/lib/hosted/browser-only/browser-only-plugin-file-system-provider.spec.js +137 -0
  40. package/lib/hosted/browser-only/browser-only-plugin-file-system-provider.spec.js.map +1 -0
  41. package/lib/hosted/browser-only/browser-only-plugin-paths-service.d.ts +43 -0
  42. package/lib/hosted/browser-only/browser-only-plugin-paths-service.d.ts.map +1 -0
  43. package/lib/hosted/browser-only/browser-only-plugin-paths-service.js +145 -0
  44. package/lib/hosted/browser-only/browser-only-plugin-paths-service.js.map +1 -0
  45. package/lib/hosted/browser-only/browser-only-plugin-paths-service.spec.d.ts +2 -0
  46. package/lib/hosted/browser-only/browser-only-plugin-paths-service.spec.d.ts.map +1 -0
  47. package/lib/hosted/browser-only/browser-only-plugin-paths-service.spec.js +165 -0
  48. package/lib/hosted/browser-only/browser-only-plugin-paths-service.spec.js.map +1 -0
  49. package/lib/hosted/browser-only/browser-only-plugin-server.d.ts +54 -0
  50. package/lib/hosted/browser-only/browser-only-plugin-server.d.ts.map +1 -0
  51. package/lib/hosted/browser-only/browser-only-plugin-server.js +155 -0
  52. package/lib/hosted/browser-only/browser-only-plugin-server.js.map +1 -0
  53. package/lib/hosted/browser-only/browser-only-plugin-server.spec.d.ts +2 -0
  54. package/lib/hosted/browser-only/browser-only-plugin-server.spec.d.ts.map +1 -0
  55. package/lib/hosted/browser-only/browser-only-plugin-server.spec.js +190 -0
  56. package/lib/hosted/browser-only/browser-only-plugin-server.spec.js.map +1 -0
  57. package/lib/hosted/browser-only/test/navigator-locks-test-util.d.ts +24 -0
  58. package/lib/hosted/browser-only/test/navigator-locks-test-util.d.ts.map +1 -0
  59. package/lib/hosted/browser-only/test/navigator-locks-test-util.js +46 -0
  60. package/lib/hosted/browser-only/test/navigator-locks-test-util.js.map +1 -0
  61. package/lib/hosted/common/hosted-plugin.d.ts +2 -2
  62. package/lib/hosted/common/hosted-plugin.d.ts.map +1 -1
  63. package/lib/hosted/common/hosted-plugin.js +2 -2
  64. package/lib/hosted/common/hosted-plugin.js.map +1 -1
  65. package/lib/hosted/node/plugin-host-module.d.ts.map +1 -1
  66. package/lib/hosted/node/plugin-host-module.js +2 -0
  67. package/lib/hosted/node/plugin-host-module.js.map +1 -1
  68. package/lib/hosted/node/plugin-host-rpc.d.ts +3 -0
  69. package/lib/hosted/node/plugin-host-rpc.d.ts.map +1 -1
  70. package/lib/hosted/node/plugin-host-rpc.js +9 -3
  71. package/lib/hosted/node/plugin-host-rpc.js.map +1 -1
  72. package/lib/main/browser/editors-and-documents-main.d.ts +7 -0
  73. package/lib/main/browser/editors-and-documents-main.d.ts.map +1 -1
  74. package/lib/main/browser/editors-and-documents-main.js +19 -9
  75. package/lib/main/browser/editors-and-documents-main.js.map +1 -1
  76. package/lib/main/browser/editors-and-documents-main.spec.d.ts +2 -0
  77. package/lib/main/browser/editors-and-documents-main.spec.d.ts.map +1 -0
  78. package/lib/main/browser/editors-and-documents-main.spec.js +117 -0
  79. package/lib/main/browser/editors-and-documents-main.spec.js.map +1 -0
  80. package/lib/main/browser/languages-main.d.ts +7 -0
  81. package/lib/main/browser/languages-main.d.ts.map +1 -1
  82. package/lib/main/browser/languages-main.js +31 -9
  83. package/lib/main/browser/languages-main.js.map +1 -1
  84. package/lib/main/browser/languages-main.spec.d.ts +2 -0
  85. package/lib/main/browser/languages-main.spec.d.ts.map +1 -0
  86. package/lib/main/browser/languages-main.spec.js +82 -0
  87. package/lib/main/browser/languages-main.spec.js.map +1 -0
  88. package/lib/main/browser/main-context.d.ts.map +1 -1
  89. package/lib/main/browser/main-context.js +3 -0
  90. package/lib/main/browser/main-context.js.map +1 -1
  91. package/lib/main/browser/menus/vscode-theia-menu-mappings.d.ts +5 -0
  92. package/lib/main/browser/menus/vscode-theia-menu-mappings.d.ts.map +1 -1
  93. package/lib/main/browser/menus/vscode-theia-menu-mappings.js +5 -0
  94. package/lib/main/browser/menus/vscode-theia-menu-mappings.js.map +1 -1
  95. package/lib/main/browser/plugin-ext-frontend-module.d.ts.map +1 -1
  96. package/lib/main/browser/plugin-ext-frontend-module.js +1 -0
  97. package/lib/main/browser/plugin-ext-frontend-module.js.map +1 -1
  98. package/lib/main/browser/plugin-icon-service.d.ts +6 -0
  99. package/lib/main/browser/plugin-icon-service.d.ts.map +1 -1
  100. package/lib/main/browser/plugin-icon-service.js +14 -2
  101. package/lib/main/browser/plugin-icon-service.js.map +1 -1
  102. package/lib/main/browser/plugin-icon-service.spec.d.ts +2 -0
  103. package/lib/main/browser/plugin-icon-service.spec.d.ts.map +1 -0
  104. package/lib/main/browser/plugin-icon-service.spec.js +83 -0
  105. package/lib/main/browser/plugin-icon-service.spec.js.map +1 -0
  106. package/lib/main/browser/plugin-icon-theme-service.d.ts.map +1 -1
  107. package/lib/main/browser/plugin-icon-theme-service.js +2 -1
  108. package/lib/main/browser/plugin-icon-theme-service.js.map +1 -1
  109. package/lib/main/browser/plugin-icon-theme-service.spec.d.ts +2 -0
  110. package/lib/main/browser/plugin-icon-theme-service.spec.d.ts.map +1 -0
  111. package/lib/main/browser/plugin-icon-theme-service.spec.js +91 -0
  112. package/lib/main/browser/plugin-icon-theme-service.spec.js.map +1 -0
  113. package/lib/main/browser/telemetry-main.d.ts +20 -0
  114. package/lib/main/browser/telemetry-main.d.ts.map +1 -0
  115. package/lib/main/browser/telemetry-main.js +43 -0
  116. package/lib/main/browser/telemetry-main.js.map +1 -0
  117. package/lib/main/browser/telemetry-main.spec.d.ts +2 -0
  118. package/lib/main/browser/telemetry-main.spec.d.ts.map +1 -0
  119. package/lib/main/browser/telemetry-main.spec.js +66 -0
  120. package/lib/main/browser/telemetry-main.spec.js.map +1 -0
  121. package/lib/main/browser/webview/webview-context-keys.d.ts +3 -2
  122. package/lib/main/browser/webview/webview-context-keys.d.ts.map +1 -1
  123. package/lib/main/browser/webview/webview-context-keys.js +16 -2
  124. package/lib/main/browser/webview/webview-context-keys.js.map +1 -1
  125. package/lib/main/browser/webview/webview-environment.d.ts.map +1 -1
  126. package/lib/main/browser/webview/webview-environment.js +2 -1
  127. package/lib/main/browser/webview/webview-environment.js.map +1 -1
  128. package/lib/main/common/paths/const.d.ts +13 -0
  129. package/lib/main/common/paths/const.d.ts.map +1 -0
  130. package/lib/main/common/paths/const.js +32 -0
  131. package/lib/main/common/paths/const.js.map +1 -0
  132. package/lib/main/node/paths/const.d.ts +5 -5
  133. package/lib/main/node/paths/const.d.ts.map +1 -1
  134. package/lib/main/node/paths/const.js +6 -6
  135. package/lib/main/node/paths/const.js.map +1 -1
  136. package/lib/main/node/paths/plugin-paths-service.js +1 -1
  137. package/lib/main/node/paths/plugin-paths-service.js.map +1 -1
  138. package/lib/main/node/plugin-cli-contribution.d.ts +2 -2
  139. package/lib/main/node/plugin-cli-contribution.d.ts.map +1 -1
  140. package/lib/main/node/plugin-cli-contribution.js +4 -3
  141. package/lib/main/node/plugin-cli-contribution.js.map +1 -1
  142. package/lib/main/node/plugins-key-value-storage.js +1 -1
  143. package/lib/main/node/plugins-key-value-storage.js.map +1 -1
  144. package/lib/main/node/resolvers/local-directory-plugin-deployer-resolver.d.ts +5 -0
  145. package/lib/main/node/resolvers/local-directory-plugin-deployer-resolver.d.ts.map +1 -1
  146. package/lib/main/node/resolvers/local-directory-plugin-deployer-resolver.js +12 -1
  147. package/lib/main/node/resolvers/local-directory-plugin-deployer-resolver.js.map +1 -1
  148. package/lib/main/node/resolvers/local-directory-plugin-deployer-resolver.spec.d.ts +2 -0
  149. package/lib/main/node/resolvers/local-directory-plugin-deployer-resolver.spec.d.ts.map +1 -0
  150. package/lib/main/node/resolvers/local-directory-plugin-deployer-resolver.spec.js +54 -0
  151. package/lib/main/node/resolvers/local-directory-plugin-deployer-resolver.spec.js.map +1 -0
  152. package/lib/plugin/plugin-context.d.ts +2 -1
  153. package/lib/plugin/plugin-context.d.ts.map +1 -1
  154. package/lib/plugin/plugin-context.js +2 -3
  155. package/lib/plugin/plugin-context.js.map +1 -1
  156. package/lib/plugin/plugin-manager.d.ts +2 -0
  157. package/lib/plugin/plugin-manager.d.ts.map +1 -1
  158. package/lib/plugin/plugin-manager.js +12 -1
  159. package/lib/plugin/plugin-manager.js.map +1 -1
  160. package/lib/plugin/relative-pattern.spec.d.ts +2 -0
  161. package/lib/plugin/relative-pattern.spec.d.ts.map +1 -0
  162. package/lib/plugin/relative-pattern.spec.js +51 -0
  163. package/lib/plugin/relative-pattern.spec.js.map +1 -0
  164. package/lib/plugin/telemetry-ext.d.ts +23 -7
  165. package/lib/plugin/telemetry-ext.d.ts.map +1 -1
  166. package/lib/plugin/telemetry-ext.js +60 -33
  167. package/lib/plugin/telemetry-ext.js.map +1 -1
  168. package/lib/plugin/telemetry-ext.spec.js +121 -16
  169. package/lib/plugin/telemetry-ext.spec.js.map +1 -1
  170. package/lib/plugin-ext-frontend-only-module.d.ts +4 -0
  171. package/lib/plugin-ext-frontend-only-module.d.ts.map +1 -0
  172. package/lib/plugin-ext-frontend-only-module.js +34 -0
  173. package/lib/plugin-ext-frontend-only-module.js.map +1 -0
  174. package/package.json +36 -32
  175. package/src/common/paths-util.spec.ts +47 -0
  176. package/src/common/paths-util.ts +11 -2
  177. package/src/common/plugin-api-rpc.ts +15 -1
  178. package/src/common/plugin-protocol.ts +2 -0
  179. package/src/hosted/browser/hosted-plugin.ts +9 -4
  180. package/src/hosted/browser/worker/worker-main.ts +23 -12
  181. package/src/hosted/browser/worker/worker-plugin-module.ts +2 -0
  182. package/src/hosted/browser-only/browser-only-hosted-plugin-server.spec.ts +133 -0
  183. package/src/hosted/browser-only/browser-only-hosted-plugin-server.ts +122 -0
  184. package/src/hosted/browser-only/browser-only-plugin-file-system-provider.spec.ts +178 -0
  185. package/src/hosted/browser-only/browser-only-plugin-file-system-provider.ts +129 -0
  186. package/src/hosted/browser-only/browser-only-plugin-paths-service.spec.ts +199 -0
  187. package/src/hosted/browser-only/browser-only-plugin-paths-service.ts +145 -0
  188. package/src/hosted/browser-only/browser-only-plugin-server.spec.ts +228 -0
  189. package/src/hosted/browser-only/browser-only-plugin-server.ts +165 -0
  190. package/src/hosted/browser-only/test/navigator-locks-test-util.ts +54 -0
  191. package/src/hosted/common/hosted-plugin.ts +4 -4
  192. package/src/hosted/node/plugin-host-module.ts +2 -0
  193. package/src/hosted/node/plugin-host-rpc.ts +10 -4
  194. package/src/main/browser/editors-and-documents-main.spec.ts +140 -0
  195. package/src/main/browser/editors-and-documents-main.ts +19 -7
  196. package/src/main/browser/languages-main.spec.ts +101 -0
  197. package/src/main/browser/languages-main.ts +31 -9
  198. package/src/main/browser/main-context.ts +4 -0
  199. package/src/main/browser/menus/vscode-theia-menu-mappings.ts +5 -0
  200. package/src/main/browser/plugin-ext-frontend-module.ts +2 -1
  201. package/src/main/browser/plugin-icon-service.spec.ts +101 -0
  202. package/src/main/browser/plugin-icon-service.ts +16 -3
  203. package/src/main/browser/plugin-icon-theme-service.spec.ts +103 -0
  204. package/src/main/browser/plugin-icon-theme-service.ts +2 -1
  205. package/src/main/browser/telemetry-main.spec.ts +77 -0
  206. package/src/main/browser/telemetry-main.ts +46 -0
  207. package/src/main/browser/webview/webview-context-keys.ts +20 -4
  208. package/src/main/browser/webview/webview-environment.ts +2 -1
  209. package/src/main/common/paths/const.ts +28 -0
  210. package/src/main/node/paths/const.ts +5 -5
  211. package/src/main/node/paths/plugin-paths-service.ts +1 -1
  212. package/src/main/node/plugin-cli-contribution.ts +4 -3
  213. package/src/main/node/plugins-key-value-storage.ts +1 -1
  214. package/src/main/node/resolvers/local-directory-plugin-deployer-resolver.spec.ts +61 -0
  215. package/src/main/node/resolvers/local-directory-plugin-deployer-resolver.ts +14 -1
  216. package/src/plugin/plugin-context.ts +3 -2
  217. package/src/plugin/plugin-manager.ts +11 -1
  218. package/src/plugin/relative-pattern.spec.ts +55 -0
  219. package/src/plugin/telemetry-ext.spec.ts +158 -17
  220. package/src/plugin/telemetry-ext.ts +63 -33
  221. package/src/plugin-ext-frontend-only-module.ts +34 -0
@@ -16,52 +16,77 @@
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
17
  exports.TelemetryLogger = exports.TelemetryExtImpl = void 0;
18
18
  exports.cleanData = cleanData;
19
+ const tslib_1 = require("tslib");
19
20
  const event_1 = require("@theia/core/lib/common/event");
20
21
  const core_1 = require("@theia/core");
22
+ const inversify_1 = require("@theia/core/shared/inversify");
23
+ const telemetry_types_1 = require("@theia/telemetry/lib/common/telemetry-types");
21
24
  const types_1 = require("../common/types");
22
25
  const types_impl_1 = require("./types-impl");
23
- class TelemetryExtImpl {
26
+ /**
27
+ * Holds the telemetry level the user consented to and hands it to the loggers plugins create.
28
+ *
29
+ * @experimental
30
+ */
31
+ let TelemetryExtImpl = class TelemetryExtImpl {
24
32
  constructor() {
25
- this._isTelemetryEnabled = false; // telemetry not activated by default
33
+ this.currentLevel = 'off';
26
34
  this.onDidChangeTelemetryEnabledEmitter = new event_1.Emitter();
27
35
  this.onDidChangeTelemetryEnabled = this.onDidChangeTelemetryEnabledEmitter.event;
36
+ this.onDidChangeTelemetryLevelEmitter = new event_1.Emitter();
37
+ this.onDidChangeTelemetryLevel = this.onDidChangeTelemetryLevelEmitter.event;
28
38
  }
29
- get isTelemetryEnabled() {
30
- return this._isTelemetryEnabled;
39
+ get level() {
40
+ return this.currentLevel;
31
41
  }
32
- set isTelemetryEnabled(isTelemetryEnabled) {
33
- if (this._isTelemetryEnabled !== isTelemetryEnabled) {
34
- this._isTelemetryEnabled = isTelemetryEnabled;
35
- this.onDidChangeTelemetryEnabledEmitter.fire(this._isTelemetryEnabled);
42
+ $onDidChangeTelemetryLevel(level) {
43
+ this.setLevel(level);
44
+ }
45
+ setLevel(level) {
46
+ if (this.currentLevel === level) {
47
+ return;
36
48
  }
49
+ const wasTelemetryEnabled = this.isTelemetryEnabled;
50
+ this.currentLevel = level;
51
+ this.onDidChangeTelemetryLevelEmitter.fire(level);
52
+ if (this.isTelemetryEnabled !== wasTelemetryEnabled) {
53
+ this.onDidChangeTelemetryEnabledEmitter.fire(this.isTelemetryEnabled);
54
+ }
55
+ }
56
+ get isTelemetryEnabled() {
57
+ return (0, telemetry_types_1.isKindAllowedByLevel)(this.currentLevel, 'usage');
37
58
  }
38
59
  createTelemetryLogger(sender, options) {
39
- const logger = new TelemetryLogger(sender, this._isTelemetryEnabled, options);
40
- this.onDidChangeTelemetryEnabled(isEnabled => {
41
- logger.telemetryEnabled = isEnabled;
42
- });
43
- return logger;
60
+ return new TelemetryLogger(sender, this.currentLevel, this.onDidChangeTelemetryLevel, options);
44
61
  }
45
- }
62
+ };
46
63
  exports.TelemetryExtImpl = TelemetryExtImpl;
64
+ exports.TelemetryExtImpl = TelemetryExtImpl = tslib_1.__decorate([
65
+ (0, inversify_1.injectable)()
66
+ ], TelemetryExtImpl);
47
67
  class TelemetryLogger {
48
- constructor(sender, telemetryEnabled, options) {
68
+ constructor(sender, level, onDidChangeTelemetryLevel, options) {
49
69
  this.onDidChangeEnableStatesEmitter = new event_1.Emitter();
50
70
  this.onDidChangeEnableStates = this.onDidChangeEnableStatesEmitter.event;
51
71
  this.sender = sender;
52
72
  this.options = options;
53
73
  this.commonProperties = this.getCommonProperties();
54
- this._telemetryEnabled = telemetryEnabled;
55
- this._isErrorsEnabled = telemetryEnabled;
56
- this._isUsageEnabled = telemetryEnabled;
74
+ this._level = level;
75
+ this._isErrorsEnabled = (0, telemetry_types_1.isKindAllowedByLevel)(level, 'error');
76
+ this._isUsageEnabled = (0, telemetry_types_1.isKindAllowedByLevel)(level, 'usage');
77
+ this.levelSubscription = onDidChangeTelemetryLevel(next => this.applyLevel(next));
57
78
  }
58
- get telemetryEnabled() {
59
- return this._telemetryEnabled;
79
+ /**
80
+ * The telemetry level the user consented to. Must stay read-only: the object handed to a plugin is proxied with a
81
+ * `get` trap only, so a setter here would let the plugin raise its own gate.
82
+ */
83
+ get level() {
84
+ return this._level;
60
85
  }
61
- set telemetryEnabled(telemetryEnabled) {
62
- if (this._telemetryEnabled !== telemetryEnabled) {
63
- this._telemetryEnabled = telemetryEnabled;
64
- this.updateEnableStates(telemetryEnabled, telemetryEnabled);
86
+ applyLevel(level) {
87
+ if (this._level !== level) {
88
+ this._level = level;
89
+ this.updateEnableStates((0, telemetry_types_1.isKindAllowedByLevel)(level, 'usage'), (0, telemetry_types_1.isKindAllowedByLevel)(level, 'error'));
65
90
  }
66
91
  }
67
92
  get isUsageEnabled() {
@@ -91,14 +116,14 @@ class TelemetryLogger {
91
116
  }
92
117
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
93
118
  logUsage(eventName, data) {
94
- if (!this.telemetryEnabled || !this.isUsageEnabled) {
119
+ if (!(0, telemetry_types_1.isKindAllowedByLevel)(this._level, 'usage') || !this.isUsageEnabled) {
95
120
  return;
96
121
  }
97
122
  this.logEvent(eventName, data);
98
123
  }
99
124
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
100
125
  logError(eventNameOrException, data) {
101
- if (!this.telemetryEnabled || !this.isErrorsEnabled || !this.sender) {
126
+ if (!(0, telemetry_types_1.isKindAllowedByLevel)(this._level, 'error') || !this.isErrorsEnabled || !this.sender) {
102
127
  // no sender available or error shall not be sent
103
128
  return;
104
129
  }
@@ -110,16 +135,18 @@ class TelemetryLogger {
110
135
  }
111
136
  }
112
137
  dispose() {
113
- if (this.sender?.flush) {
114
- let tempSender = this.sender;
115
- this.sender = undefined;
116
- Promise.resolve(tempSender.flush()).then(tempSender = undefined);
138
+ this.levelSubscription.dispose();
139
+ this.onDidChangeEnableStatesEmitter.dispose();
140
+ const sender = this.sender;
141
+ this.sender = undefined;
142
+ const reportFlushFailure = (error) => console.error('Failed to flush the telemetry sender.', error);
143
+ try {
144
+ Promise.resolve(sender?.flush?.()).catch(reportFlushFailure);
117
145
  }
118
- else {
119
- this.sender = undefined;
146
+ catch (error) {
147
+ reportFlushFailure(error);
120
148
  }
121
149
  }
122
- ;
123
150
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
124
151
  logEvent(eventName, data) {
125
152
  // No sender means likely disposed of, we should no-op
@@ -1 +1 @@
1
- {"version":3,"file":"telemetry-ext.js","sourceRoot":"","sources":["../../src/plugin/telemetry-ext.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"telemetry-ext.js","sourceRoot":"","sources":["../../src/plugin/telemetry-ext.ts"],"names":[],"mappings":"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"}
@@ -18,34 +18,139 @@ Object.defineProperty(exports, "__esModule", { value: true });
18
18
  const chai = require("chai");
19
19
  const telemetry_ext_1 = require("./telemetry-ext");
20
20
  const expect = chai.expect;
21
- describe('TelemetryLogger', () => {
21
+ describe('TelemetryExtImpl', () => {
22
22
  const sender = {
23
23
  sendEventData: () => { },
24
24
  sendErrorData: () => { }
25
25
  };
26
- it('reflects the current telemetry enabled state', () => {
26
+ const expectations = {
27
+ off: { isTelemetryEnabled: false, isUsageEnabled: false, isErrorsEnabled: false },
28
+ crash: { isTelemetryEnabled: false, isUsageEnabled: false, isErrorsEnabled: false },
29
+ error: { isTelemetryEnabled: false, isUsageEnabled: false, isErrorsEnabled: true },
30
+ all: { isTelemetryEnabled: true, isUsageEnabled: true, isErrorsEnabled: true }
31
+ };
32
+ for (const level of ['off', 'crash', 'error', 'all']) {
33
+ const expected = expectations[level];
34
+ it(`derives the enablement states from telemetry level '${level}'`, () => {
35
+ const telemetry = new telemetry_ext_1.TelemetryExtImpl();
36
+ telemetry.$onDidChangeTelemetryLevel(level);
37
+ const logger = telemetry.createTelemetryLogger(sender);
38
+ expect(telemetry.level).to.equal(level);
39
+ expect(telemetry.isTelemetryEnabled).to.equal(expected.isTelemetryEnabled);
40
+ expect(logger.isUsageEnabled).to.equal(expected.isUsageEnabled);
41
+ expect(logger.isErrorsEnabled).to.equal(expected.isErrorsEnabled);
42
+ });
43
+ it(`applies telemetry level '${level}' to loggers created before the level arrived`, () => {
44
+ const telemetry = new telemetry_ext_1.TelemetryExtImpl();
45
+ const logger = telemetry.createTelemetryLogger(sender);
46
+ telemetry.$onDidChangeTelemetryLevel(level);
47
+ expect(logger.isUsageEnabled).to.equal(expected.isUsageEnabled);
48
+ expect(logger.isErrorsEnabled).to.equal(expected.isErrorsEnabled);
49
+ });
50
+ }
51
+ it('only fires onDidChangeTelemetryEnabled when the boolean it reports changes', () => {
52
+ const telemetry = new telemetry_ext_1.TelemetryExtImpl();
53
+ const fired = [];
54
+ telemetry.onDidChangeTelemetryEnabled(enabled => fired.push(enabled));
55
+ telemetry.$onDidChangeTelemetryLevel('crash');
56
+ telemetry.$onDidChangeTelemetryLevel('error');
57
+ telemetry.$onDidChangeTelemetryLevel('all');
58
+ telemetry.$onDidChangeTelemetryLevel('off');
59
+ expect(fired).to.deep.equal([true, false]);
60
+ });
61
+ it('fires onDidChangeEnableStates once per transition that changes an enablement state', () => {
27
62
  const telemetry = new telemetry_ext_1.TelemetryExtImpl();
28
63
  const logger = telemetry.createTelemetryLogger(sender);
29
- expect(logger.telemetryEnabled).to.equal(false);
30
- expect(logger.isUsageEnabled).to.equal(false);
31
- expect(logger.isErrorsEnabled).to.equal(false);
32
- telemetry.isTelemetryEnabled = true;
33
- expect(logger.telemetryEnabled).to.equal(true);
34
- expect(logger.isUsageEnabled).to.equal(true);
35
- expect(logger.isErrorsEnabled).to.equal(true);
36
- telemetry.isTelemetryEnabled = false;
37
- expect(logger.telemetryEnabled).to.equal(false);
64
+ let changes = 0;
65
+ logger.onDidChangeEnableStates(() => changes++);
66
+ telemetry.$onDidChangeTelemetryLevel('crash'); // off -> crash: both stay false
67
+ expect(changes).to.equal(0);
68
+ telemetry.$onDidChangeTelemetryLevel('error'); // errors become enabled
69
+ expect(changes).to.equal(1);
70
+ telemetry.$onDidChangeTelemetryLevel('all'); // usage becomes enabled
71
+ expect(changes).to.equal(2);
72
+ telemetry.$onDidChangeTelemetryLevel('off');
73
+ expect(changes).to.equal(3);
74
+ });
75
+ it('stops following the level once the logger is disposed', () => {
76
+ const telemetry = new telemetry_ext_1.TelemetryExtImpl();
77
+ const logger = telemetry.createTelemetryLogger(sender);
78
+ let changes = 0;
79
+ logger.onDidChangeEnableStates(() => changes++);
80
+ logger.dispose();
81
+ telemetry.$onDidChangeTelemetryLevel('all');
38
82
  expect(logger.isUsageEnabled).to.equal(false);
39
- expect(logger.isErrorsEnabled).to.equal(false);
83
+ logger.isUsageEnabled = true;
84
+ expect(changes).to.equal(0);
40
85
  });
41
- it('emits enable-state changes when telemetry is toggled', () => {
86
+ it('logs rather than propagates a sender that fails to flush on disposal', async () => {
87
+ const telemetry = new telemetry_ext_1.TelemetryExtImpl();
88
+ const logged = [];
89
+ const consoleError = console.error;
90
+ console.error = (...args) => { logged.push(args); };
91
+ try {
92
+ telemetry.createTelemetryLogger({ ...sender, flush: () => { throw new Error('boom'); } }).dispose();
93
+ telemetry.createTelemetryLogger({ ...sender, flush: () => Promise.reject(new Error('boom')) }).dispose();
94
+ await new Promise(resolve => setTimeout(resolve, 0));
95
+ }
96
+ finally {
97
+ console.error = consoleError;
98
+ }
99
+ expect(logged).to.have.lengthOf(2);
100
+ });
101
+ it('ignores a repeated telemetry level', () => {
42
102
  const telemetry = new telemetry_ext_1.TelemetryExtImpl();
43
103
  const logger = telemetry.createTelemetryLogger(sender);
44
104
  let changes = 0;
45
105
  logger.onDidChangeEnableStates(() => changes++);
46
- telemetry.isTelemetryEnabled = true;
47
- telemetry.isTelemetryEnabled = false;
48
- expect(changes).to.equal(2);
106
+ telemetry.$onDidChangeTelemetryLevel('all');
107
+ telemetry.$onDidChangeTelemetryLevel('all');
108
+ expect(changes).to.equal(1);
109
+ });
110
+ });
111
+ describe('TelemetryLogger', () => {
112
+ function createSender() {
113
+ const events = [];
114
+ const errors = [];
115
+ return {
116
+ events,
117
+ errors,
118
+ sendEventData: (eventName) => events.push(eventName),
119
+ sendErrorData: (error) => errors.push(error)
120
+ };
121
+ }
122
+ it('delivers errors but suppresses usage at telemetry level \'error\'', () => {
123
+ const telemetry = new telemetry_ext_1.TelemetryExtImpl();
124
+ telemetry.$onDidChangeTelemetryLevel('error');
125
+ const sender = createSender();
126
+ const logger = telemetry.createTelemetryLogger(sender);
127
+ logger.logUsage('usage-event');
128
+ logger.logError('error-event');
129
+ logger.logError(new Error('boom'));
130
+ expect(sender.events).to.deep.equal(['error-event']);
131
+ expect(sender.errors).to.have.lengthOf(1);
132
+ });
133
+ it('suppresses usage that a plugin re-enables while the telemetry level forbids it', () => {
134
+ const telemetry = new telemetry_ext_1.TelemetryExtImpl();
135
+ telemetry.$onDidChangeTelemetryLevel('off');
136
+ const sender = createSender();
137
+ const logger = telemetry.createTelemetryLogger(sender);
138
+ logger.isUsageEnabled = true;
139
+ logger.isErrorsEnabled = true;
140
+ logger.logUsage('usage-event');
141
+ logger.logError('error-event');
142
+ expect(sender.events).to.be.empty;
143
+ });
144
+ it('refuses to let a plugin assign the telemetry level of its logger', () => {
145
+ const telemetry = new telemetry_ext_1.TelemetryExtImpl();
146
+ telemetry.$onDidChangeTelemetryLevel('off');
147
+ const sender = createSender();
148
+ const logger = telemetry.createTelemetryLogger(sender);
149
+ expect(Reflect.set(logger, 'level', 'all')).to.be.false;
150
+ logger.logUsage('usage-event');
151
+ expect(logger.level).to.equal('off');
152
+ expect(logger.isUsageEnabled).to.be.false;
153
+ expect(sender.events).to.be.empty;
49
154
  });
50
155
  });
51
156
  //# sourceMappingURL=telemetry-ext.spec.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"telemetry-ext.spec.js","sourceRoot":"","sources":["../../src/plugin/telemetry-ext.spec.ts"],"names":[],"mappings":";AAAA,gFAAgF;AAChF,wCAAwC;AACxC,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,6BAA6B;AAC7B,mDAAmD;AAEnD,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;AAE3B,QAAQ,CAAC,iBAAiB,EAAE,GAAG,EAAE;IAC7B,MAAM,MAAM,GAAG;QACX,aAAa,EAAE,GAAG,EAAE,GAAG,CAAC;QACxB,aAAa,EAAE,GAAG,EAAE,GAAG,CAAC;KAC3B,CAAC;IAEF,EAAE,CAAC,8CAA8C,EAAE,GAAG,EAAE;QACpD,MAAM,SAAS,GAAG,IAAI,gCAAgB,EAAE,CAAC;QACzC,MAAM,MAAM,GAAG,SAAS,CAAC,qBAAqB,CAAC,MAAM,CAAC,CAAC;QAEvD,MAAM,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QAChD,MAAM,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QAC9C,MAAM,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QAE/C,SAAS,CAAC,kBAAkB,GAAG,IAAI,CAAC;QAEpC,MAAM,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAC/C,MAAM,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAC7C,MAAM,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAE9C,SAAS,CAAC,kBAAkB,GAAG,KAAK,CAAC;QAErC,MAAM,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QAChD,MAAM,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QAC9C,MAAM,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IACnD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,sDAAsD,EAAE,GAAG,EAAE;QAC5D,MAAM,SAAS,GAAG,IAAI,gCAAgB,EAAE,CAAC;QACzC,MAAM,MAAM,GAAG,SAAS,CAAC,qBAAqB,CAAC,MAAM,CAAC,CAAC;QACvD,IAAI,OAAO,GAAG,CAAC,CAAC;QAEhB,MAAM,CAAC,uBAAuB,CAAC,GAAG,EAAE,CAAC,OAAO,EAAE,CAAC,CAAC;QAEhD,SAAS,CAAC,kBAAkB,GAAG,IAAI,CAAC;QACpC,SAAS,CAAC,kBAAkB,GAAG,KAAK,CAAC;QAErC,MAAM,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IAChC,CAAC,CAAC,CAAC;AACP,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"telemetry-ext.spec.js","sourceRoot":"","sources":["../../src/plugin/telemetry-ext.spec.ts"],"names":[],"mappings":";AAAA,gFAAgF;AAChF,wCAAwC;AACxC,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,6BAA6B;AAE7B,mDAAmD;AAEnD,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;AAE3B,QAAQ,CAAC,kBAAkB,EAAE,GAAG,EAAE;IAC9B,MAAM,MAAM,GAAG;QACX,aAAa,EAAE,GAAG,EAAE,GAAG,CAAC;QACxB,aAAa,EAAE,GAAG,EAAE,GAAG,CAAC;KAC3B,CAAC;IAQF,MAAM,YAAY,GAAwC;QACtD,GAAG,EAAE,EAAE,kBAAkB,EAAE,KAAK,EAAE,cAAc,EAAE,KAAK,EAAE,eAAe,EAAE,KAAK,EAAE;QACjF,KAAK,EAAE,EAAE,kBAAkB,EAAE,KAAK,EAAE,cAAc,EAAE,KAAK,EAAE,eAAe,EAAE,KAAK,EAAE;QACnF,KAAK,EAAE,EAAE,kBAAkB,EAAE,KAAK,EAAE,cAAc,EAAE,KAAK,EAAE,eAAe,EAAE,IAAI,EAAE;QAClF,GAAG,EAAE,EAAE,kBAAkB,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE,eAAe,EAAE,IAAI,EAAE;KACjF,CAAC;IAEF,KAAK,MAAM,KAAK,IAAI,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,CAAU,EAAE,CAAC;QAC5D,MAAM,QAAQ,GAAG,YAAY,CAAC,KAAK,CAAC,CAAC;QAErC,EAAE,CAAC,uDAAuD,KAAK,GAAG,EAAE,GAAG,EAAE;YACrE,MAAM,SAAS,GAAG,IAAI,gCAAgB,EAAE,CAAC;YACzC,SAAS,CAAC,0BAA0B,CAAC,KAAK,CAAC,CAAC;YAC5C,MAAM,MAAM,GAAG,SAAS,CAAC,qBAAqB,CAAC,MAAM,CAAC,CAAC;YAEvD,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;YACxC,MAAM,CAAC,SAAS,CAAC,kBAAkB,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,kBAAkB,CAAC,CAAC;YAC3E,MAAM,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC;YAChE,MAAM,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC;QACtE,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,4BAA4B,KAAK,+CAA+C,EAAE,GAAG,EAAE;YACtF,MAAM,SAAS,GAAG,IAAI,gCAAgB,EAAE,CAAC;YACzC,MAAM,MAAM,GAAG,SAAS,CAAC,qBAAqB,CAAC,MAAM,CAAC,CAAC;YACvD,SAAS,CAAC,0BAA0B,CAAC,KAAK,CAAC,CAAC;YAE5C,MAAM,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC;YAChE,MAAM,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC;QACtE,CAAC,CAAC,CAAC;IACP,CAAC;IAED,EAAE,CAAC,4EAA4E,EAAE,GAAG,EAAE;QAClF,MAAM,SAAS,GAAG,IAAI,gCAAgB,EAAE,CAAC;QACzC,MAAM,KAAK,GAAc,EAAE,CAAC;QAC5B,SAAS,CAAC,2BAA2B,CAAC,OAAO,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;QAEtE,SAAS,CAAC,0BAA0B,CAAC,OAAO,CAAC,CAAC;QAC9C,SAAS,CAAC,0BAA0B,CAAC,OAAO,CAAC,CAAC;QAC9C,SAAS,CAAC,0BAA0B,CAAC,KAAK,CAAC,CAAC;QAC5C,SAAS,CAAC,0BAA0B,CAAC,KAAK,CAAC,CAAC;QAE5C,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC;IAC/C,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,oFAAoF,EAAE,GAAG,EAAE;QAC1F,MAAM,SAAS,GAAG,IAAI,gCAAgB,EAAE,CAAC;QACzC,MAAM,MAAM,GAAG,SAAS,CAAC,qBAAqB,CAAC,MAAM,CAAC,CAAC;QACvD,IAAI,OAAO,GAAG,CAAC,CAAC;QAChB,MAAM,CAAC,uBAAuB,CAAC,GAAG,EAAE,CAAC,OAAO,EAAE,CAAC,CAAC;QAEhD,SAAS,CAAC,0BAA0B,CAAC,OAAO,CAAC,CAAC,CAAC,gCAAgC;QAC/E,MAAM,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QAE5B,SAAS,CAAC,0BAA0B,CAAC,OAAO,CAAC,CAAC,CAAC,wBAAwB;QACvE,MAAM,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QAE5B,SAAS,CAAC,0BAA0B,CAAC,KAAK,CAAC,CAAC,CAAC,wBAAwB;QACrE,MAAM,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QAE5B,SAAS,CAAC,0BAA0B,CAAC,KAAK,CAAC,CAAC;QAC5C,MAAM,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IAChC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,uDAAuD,EAAE,GAAG,EAAE;QAC7D,MAAM,SAAS,GAAG,IAAI,gCAAgB,EAAE,CAAC;QACzC,MAAM,MAAM,GAAG,SAAS,CAAC,qBAAqB,CAAC,MAAM,CAAC,CAAC;QACvD,IAAI,OAAO,GAAG,CAAC,CAAC;QAChB,MAAM,CAAC,uBAAuB,CAAC,GAAG,EAAE,CAAC,OAAO,EAAE,CAAC,CAAC;QAEhD,MAAM,CAAC,OAAO,EAAE,CAAC;QACjB,SAAS,CAAC,0BAA0B,CAAC,KAAK,CAAC,CAAC;QAC5C,MAAM,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QAE9C,MAAM,CAAC,cAAc,GAAG,IAAI,CAAC;QAC7B,MAAM,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IAChC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,sEAAsE,EAAE,KAAK,IAAI,EAAE;QAClF,MAAM,SAAS,GAAG,IAAI,gCAAgB,EAAE,CAAC;QACzC,MAAM,MAAM,GAAc,EAAE,CAAC;QAC7B,MAAM,YAAY,GAAG,OAAO,CAAC,KAAK,CAAC;QACnC,OAAO,CAAC,KAAK,GAAG,CAAC,GAAG,IAAe,EAAE,EAAE,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;QAC/D,IAAI,CAAC;YACD,SAAS,CAAC,qBAAqB,CAAC,EAAE,GAAG,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,MAAM,IAAI,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC;YACpG,SAAS,CAAC,qBAAqB,CAAC,EAAE,GAAG,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC;YACzG,MAAM,IAAI,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC;QACzD,CAAC;gBAAS,CAAC;YACP,OAAO,CAAC,KAAK,GAAG,YAAY,CAAC;QACjC,CAAC;QAED,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;IACvC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,oCAAoC,EAAE,GAAG,EAAE;QAC1C,MAAM,SAAS,GAAG,IAAI,gCAAgB,EAAE,CAAC;QACzC,MAAM,MAAM,GAAG,SAAS,CAAC,qBAAqB,CAAC,MAAM,CAAC,CAAC;QACvD,IAAI,OAAO,GAAG,CAAC,CAAC;QAChB,MAAM,CAAC,uBAAuB,CAAC,GAAG,EAAE,CAAC,OAAO,EAAE,CAAC,CAAC;QAEhD,SAAS,CAAC,0BAA0B,CAAC,KAAK,CAAC,CAAC;QAC5C,SAAS,CAAC,0BAA0B,CAAC,KAAK,CAAC,CAAC;QAE5C,MAAM,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IAChC,CAAC,CAAC,CAAC;AACP,CAAC,CAAC,CAAC;AAEH,QAAQ,CAAC,iBAAiB,EAAE,GAAG,EAAE;IAS7B,SAAS,YAAY;QACjB,MAAM,MAAM,GAAa,EAAE,CAAC;QAC5B,MAAM,MAAM,GAAY,EAAE,CAAC;QAC3B,OAAO;YACH,MAAM;YACN,MAAM;YACN,aAAa,EAAE,CAAC,SAAiB,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC;YAC5D,aAAa,EAAE,CAAC,KAAY,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC;SACtD,CAAC;IACN,CAAC;IAED,EAAE,CAAC,mEAAmE,EAAE,GAAG,EAAE;QACzE,MAAM,SAAS,GAAG,IAAI,gCAAgB,EAAE,CAAC;QACzC,SAAS,CAAC,0BAA0B,CAAC,OAAO,CAAC,CAAC;QAC9C,MAAM,MAAM,GAAG,YAAY,EAAE,CAAC;QAC9B,MAAM,MAAM,GAAG,SAAS,CAAC,qBAAqB,CAAC,MAAM,CAAC,CAAC;QAEvD,MAAM,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC;QAC/B,MAAM,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC;QAC/B,MAAM,CAAC,QAAQ,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC;QAEnC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC;QACrD,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;IAC9C,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,gFAAgF,EAAE,GAAG,EAAE;QACtF,MAAM,SAAS,GAAG,IAAI,gCAAgB,EAAE,CAAC;QACzC,SAAS,CAAC,0BAA0B,CAAC,KAAK,CAAC,CAAC;QAC5C,MAAM,MAAM,GAAG,YAAY,EAAE,CAAC;QAC9B,MAAM,MAAM,GAAG,SAAS,CAAC,qBAAqB,CAAC,MAAM,CAAC,CAAC;QAEvD,MAAM,CAAC,cAAc,GAAG,IAAI,CAAC;QAC7B,MAAM,CAAC,eAAe,GAAG,IAAI,CAAC;QAC9B,MAAM,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC;QAC/B,MAAM,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC;QAE/B,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC;IACtC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,kEAAkE,EAAE,GAAG,EAAE;QACxE,MAAM,SAAS,GAAG,IAAI,gCAAgB,EAAE,CAAC;QACzC,SAAS,CAAC,0BAA0B,CAAC,KAAK,CAAC,CAAC;QAC5C,MAAM,MAAM,GAAG,YAAY,EAAE,CAAC;QAC9B,MAAM,MAAM,GAAG,SAAS,CAAC,qBAAqB,CAAC,MAAM,CAAC,CAAC;QAEvD,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC;QACxD,MAAM,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC;QAE/B,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QACrC,MAAM,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC;QAC1C,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC;IACtC,CAAC,CAAC,CAAC;AACP,CAAC,CAAC,CAAC"}
@@ -0,0 +1,4 @@
1
+ import { ContainerModule } from '@theia/core/shared/inversify';
2
+ declare const _default: ContainerModule;
3
+ export default _default;
4
+ //# sourceMappingURL=plugin-ext-frontend-only-module.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"plugin-ext-frontend-only-module.d.ts","sourceRoot":"","sources":["../src/plugin-ext-frontend-only-module.ts"],"names":[],"mappings":"AAgBA,OAAO,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;;AAS/D,wBAQG"}
@@ -0,0 +1,34 @@
1
+ "use strict";
2
+ // *****************************************************************************
3
+ // Copyright (C) 2026 Robert Jandow
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 inversify_1 = require("@theia/core/shared/inversify");
19
+ const plugin_protocol_1 = require("./common/plugin-protocol");
20
+ const browser_only_hosted_plugin_server_1 = require("./hosted/browser-only/browser-only-hosted-plugin-server");
21
+ const plugin_paths_protocol_1 = require("./main/common/plugin-paths-protocol");
22
+ const browser_only_plugin_paths_service_1 = require("./hosted/browser-only/browser-only-plugin-paths-service");
23
+ const browser_only_plugin_server_1 = require("./hosted/browser-only/browser-only-plugin-server");
24
+ const browser_only_plugin_file_system_provider_1 = require("./hosted/browser-only/browser-only-plugin-file-system-provider");
25
+ const file_service_1 = require("@theia/filesystem/lib/browser/file-service");
26
+ exports.default = new inversify_1.ContainerModule((bind, unbind, isBound, rebind) => {
27
+ rebind(plugin_protocol_1.HostedPluginServer).to(browser_only_hosted_plugin_server_1.BrowserOnlyHostedPluginServer).inSingletonScope();
28
+ rebind(plugin_protocol_1.PluginServer).to(browser_only_plugin_server_1.BrowserOnlyPluginServer).inSingletonScope();
29
+ rebind(plugin_paths_protocol_1.PluginPathsService).to(browser_only_plugin_paths_service_1.BrowserOnlyPluginPathsService).inSingletonScope();
30
+ bind(browser_only_plugin_file_system_provider_1.BrowserOnlyPluginFileSystemProvider).toSelf().inSingletonScope();
31
+ bind(browser_only_plugin_file_system_provider_1.BrowserOnlyPluginFileServiceContribution).toSelf().inSingletonScope();
32
+ bind(file_service_1.FileServiceContribution).toService(browser_only_plugin_file_system_provider_1.BrowserOnlyPluginFileServiceContribution);
33
+ });
34
+ //# sourceMappingURL=plugin-ext-frontend-only-module.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"plugin-ext-frontend-only-module.js","sourceRoot":"","sources":["../src/plugin-ext-frontend-only-module.ts"],"names":[],"mappings":";AAAA,gFAAgF;AAChF,mCAAmC;AACnC,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,4DAA+D;AAC/D,8DAA4E;AAC5E,+GAAwG;AACxG,+EAAyE;AACzE,+GAAwG;AACxG,iGAA2F;AAC3F,6HAA+J;AAC/J,6EAAqF;AAErF,kBAAe,IAAI,2BAAe,CAAC,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE;IACjE,MAAM,CAAC,oCAAkB,CAAC,CAAC,EAAE,CAAC,iEAA6B,CAAC,CAAC,gBAAgB,EAAE,CAAC;IAChF,MAAM,CAAC,8BAAY,CAAC,CAAC,EAAE,CAAC,oDAAuB,CAAC,CAAC,gBAAgB,EAAE,CAAC;IACpE,MAAM,CAAC,0CAAkB,CAAC,CAAC,EAAE,CAAC,iEAA6B,CAAC,CAAC,gBAAgB,EAAE,CAAC;IAEhF,IAAI,CAAC,8EAAmC,CAAC,CAAC,MAAM,EAAE,CAAC,gBAAgB,EAAE,CAAC;IACtE,IAAI,CAAC,mFAAwC,CAAC,CAAC,MAAM,EAAE,CAAC,gBAAgB,EAAE,CAAC;IAC3E,IAAI,CAAC,sCAAuB,CAAC,CAAC,SAAS,CAAC,mFAAwC,CAAC,CAAC;AACtF,CAAC,CAAC,CAAC"}
package/package.json CHANGED
@@ -1,40 +1,41 @@
1
1
  {
2
2
  "name": "@theia/plugin-ext",
3
- "version": "1.76.0-next.7+7c303b183",
3
+ "version": "1.76.0",
4
4
  "description": "Theia - Plugin Extension",
5
5
  "main": "lib/common/index.js",
6
6
  "typings": "lib/common/index.d.ts",
7
7
  "dependencies": {
8
- "@theia/ai-core": "1.76.0-next.7+7c303b183",
9
- "@theia/ai-mcp": "1.76.0-next.7+7c303b183",
10
- "@theia/bulk-edit": "1.76.0-next.7+7c303b183",
11
- "@theia/callhierarchy": "1.76.0-next.7+7c303b183",
12
- "@theia/console": "1.76.0-next.7+7c303b183",
13
- "@theia/core": "1.76.0-next.7+7c303b183",
14
- "@theia/debug": "1.76.0-next.7+7c303b183",
15
- "@theia/editor": "1.76.0-next.7+7c303b183",
16
- "@theia/editor-preview": "1.76.0-next.7+7c303b183",
17
- "@theia/file-search": "1.76.0-next.7+7c303b183",
18
- "@theia/filesystem": "1.76.0-next.7+7c303b183",
19
- "@theia/markers": "1.76.0-next.7+7c303b183",
20
- "@theia/messages": "1.76.0-next.7+7c303b183",
21
- "@theia/monaco": "1.76.0-next.7+7c303b183",
8
+ "@theia/ai-core": "1.76.0",
9
+ "@theia/ai-mcp": "1.76.0",
10
+ "@theia/bulk-edit": "1.76.0",
11
+ "@theia/callhierarchy": "1.76.0",
12
+ "@theia/console": "1.76.0",
13
+ "@theia/core": "1.76.0",
14
+ "@theia/debug": "1.76.0",
15
+ "@theia/editor": "1.76.0",
16
+ "@theia/editor-preview": "1.76.0",
17
+ "@theia/file-search": "1.76.0",
18
+ "@theia/filesystem": "1.76.0",
19
+ "@theia/markers": "1.76.0",
20
+ "@theia/messages": "1.76.0",
21
+ "@theia/monaco": "1.76.0",
22
22
  "@theia/monaco-editor-core": "1.108.201",
23
- "@theia/navigator": "1.76.0-next.7+7c303b183",
24
- "@theia/notebook": "1.76.0-next.7+7c303b183",
25
- "@theia/output": "1.76.0-next.7+7c303b183",
26
- "@theia/plugin": "1.76.0-next.7+7c303b183",
27
- "@theia/plugin-utils": "1.76.0-next.7+7c303b183",
28
- "@theia/preferences": "1.76.0-next.7+7c303b183",
29
- "@theia/scm": "1.76.0-next.7+7c303b183",
30
- "@theia/search-in-workspace": "1.76.0-next.7+7c303b183",
31
- "@theia/task": "1.76.0-next.7+7c303b183",
32
- "@theia/terminal": "1.76.0-next.7+7c303b183",
33
- "@theia/test": "1.76.0-next.7+7c303b183",
34
- "@theia/timeline": "1.76.0-next.7+7c303b183",
35
- "@theia/typehierarchy": "1.76.0-next.7+7c303b183",
36
- "@theia/variable-resolver": "1.76.0-next.7+7c303b183",
37
- "@theia/workspace": "1.76.0-next.7+7c303b183",
23
+ "@theia/navigator": "1.76.0",
24
+ "@theia/notebook": "1.76.0",
25
+ "@theia/output": "1.76.0",
26
+ "@theia/plugin": "1.76.0",
27
+ "@theia/plugin-utils": "1.76.0",
28
+ "@theia/preferences": "1.76.0",
29
+ "@theia/scm": "1.76.0",
30
+ "@theia/search-in-workspace": "1.76.0",
31
+ "@theia/task": "1.76.0",
32
+ "@theia/telemetry": "1.76.0",
33
+ "@theia/terminal": "1.76.0",
34
+ "@theia/test": "1.76.0",
35
+ "@theia/timeline": "1.76.0",
36
+ "@theia/typehierarchy": "1.76.0",
37
+ "@theia/variable-resolver": "1.76.0",
38
+ "@theia/workspace": "1.76.0",
38
39
  "@types/mime": "^2.0.3",
39
40
  "@vscode/debugprotocol": "^1.68.0",
40
41
  "@vscode/proxy-agent": "^0.13.2",
@@ -62,6 +63,9 @@
62
63
  "backendElectron": "lib/plugin-ext-backend-electron-module",
63
64
  "frontend": "lib/plugin-ext-frontend-module"
64
65
  },
66
+ {
67
+ "frontendOnly": "lib/plugin-ext-frontend-only-module"
68
+ },
65
69
  {
66
70
  "frontendElectron": "lib/plugin-ext-frontend-electron-module"
67
71
  }
@@ -91,7 +95,7 @@
91
95
  "watch": "theiaext watch"
92
96
  },
93
97
  "devDependencies": {
94
- "@theia/ext-scripts": "1.75.0",
98
+ "@theia/ext-scripts": "1.76.0",
95
99
  "@types/decompress": "^4.2.7",
96
100
  "@types/escape-html": "^0.0.20",
97
101
  "@types/lodash.clonedeep": "^4.5.9"
@@ -99,5 +103,5 @@
99
103
  "nyc": {
100
104
  "extends": "../../configs/nyc.json"
101
105
  },
102
- "gitHead": "7c303b1836421183d7013f0bd679a9a30ff0b5dc"
106
+ "gitHead": "b9b54c500b46515512e2b44371bc0c7122947bed"
103
107
  }
@@ -0,0 +1,47 @@
1
+ // *****************************************************************************
2
+ // Copyright (C) 2026 JuliaHub, Inc. and others.
3
+ //
4
+ // This program and the accompanying materials are made available under the
5
+ // terms of the Eclipse Public License v. 2.0 which is available at
6
+ // http://www.eclipse.org/legal/epl-2.0.
7
+ //
8
+ // This Source Code may also be made available under the following Secondary
9
+ // Licenses when the conditions for such availability set forth in the Eclipse
10
+ // Public License v. 2.0 are satisfied: GNU General Public License, version 2
11
+ // with the GNU Classpath Exception which is available at
12
+ // https://www.gnu.org/software/classpath/license.html.
13
+ //
14
+ // SPDX-License-Identifier: EPL-2.0 OR GPL-2.0-only WITH Classpath-exception-2.0
15
+ // *****************************************************************************
16
+
17
+ import { expect } from 'chai';
18
+ import { relative } from './paths-util';
19
+
20
+ describe('paths-util', () => {
21
+
22
+ describe('relative', () => {
23
+ it('should resolve a child against its parent', () => {
24
+ expect(relative('/tmp/project', '/tmp/project/Project.toml')).to.equal('Project.toml');
25
+ });
26
+
27
+ it('should resolve a nested child against its parent', () => {
28
+ expect(relative('/tmp/project', '/tmp/project/generated/definitions.jl')).to.equal('generated/definitions.jl');
29
+ });
30
+
31
+ it('should resolve a child given Windows separators', () => {
32
+ expect(relative('c:\\tmp\\project', 'c:\\tmp\\project\\Project.toml')).to.equal('Project.toml');
33
+ });
34
+
35
+ it('should resolve a nested child given Windows separators', () => {
36
+ expect(relative('c:\\tmp\\project', 'c:\\tmp\\project\\generated\\definitions.jl')).to.equal('generated/definitions.jl');
37
+ });
38
+
39
+ it('should resolve a sibling given Windows separators', () => {
40
+ expect(relative('c:\\tmp\\project', 'c:\\tmp\\other\\Project.toml')).to.equal('../other/Project.toml');
41
+ });
42
+
43
+ it('should return an empty string for identical paths', () => {
44
+ expect(relative('c:\\tmp\\project', 'c:\\tmp\\project')).to.equal('');
45
+ });
46
+ });
47
+ });
@@ -46,6 +46,12 @@ import { sep } from '@theia/core/lib/common/paths';
46
46
 
47
47
  const replaceRegex = new RegExp('//+', 'g');
48
48
 
49
+ const backslashRegex = new RegExp('\\\\', 'g');
50
+
51
+ function toPosixSeparators(p: string): string {
52
+ return p.replace(backslashRegex, sep);
53
+ }
54
+
49
55
  export function resolve(...paths: string[]): string {
50
56
  let processed: string[] = [];
51
57
  for (const p of paths) {
@@ -70,8 +76,11 @@ export function resolve(...paths: string[]): string {
70
76
  export function relative(from: string, to: string): string {
71
77
  let i: number;
72
78
 
73
- from = resolve(from);
74
- to = resolve(to);
79
+ // This module is POSIX-only: `sep` is always '/'. Callers hand it native
80
+ // paths (e.g. `Uri.fsPath`), which on Windows are backslash-separated and
81
+ // would otherwise split into a single segment and yield ''.
82
+ from = resolve(toPosixSeparators(from));
83
+ to = resolve(toPosixSeparators(to));
75
84
  const fromSegments = from.split(sep);
76
85
  const toSegments = to.split(sep);
77
86
 
@@ -125,6 +125,7 @@ import * as notebookCommon from '@theia/notebook/lib/common';
125
125
  import { CellExecutionUpdateType, CellRange, NotebookCellExecutionState } from '@theia/notebook/lib/common';
126
126
  import { LanguagePackBundle } from './language-pack-service';
127
127
  import { AccessibilityInformation } from '@theia/core/lib/common/accessibility';
128
+ import { TelemetryLevel } from '@theia/telemetry/lib/common/telemetry-types';
128
129
 
129
130
  import { TreeDelta } from '@theia/test/lib/common/tree-delta';
130
131
  import { TestItemDTO, TestOutputDTO, TestRunDTO, TestRunProfileDTO, TestRunRequestDTO, TestStateChangeDTO } from './test-types';
@@ -258,6 +259,12 @@ export interface PluginManagerInitializeParams {
258
259
  webview: WebviewInitData
259
260
  jsonValidation: PluginJsonValidationContribution[]
260
261
  supportedActivationEvents?: string[]
262
+ /**
263
+ * The telemetry level the plugin host starts with. Defaults to `off` when absent.
264
+ *
265
+ * @experimental
266
+ */
267
+ telemetryLevel?: TelemetryLevel
261
268
  }
262
269
 
263
270
  export interface PluginManagerStartParams {
@@ -2362,6 +2369,13 @@ export interface TelemetryMain {
2362
2369
  }
2363
2370
 
2364
2371
  export interface TelemetryExt {
2372
+ /**
2373
+ * Applies the telemetry level the user consented to. Only changes are sent this way;
2374
+ * the initial level arrives with `PluginManagerInitializeParams`.
2375
+ *
2376
+ * @experimental
2377
+ */
2378
+ $onDidChangeTelemetryLevel(level: TelemetryLevel): void;
2365
2379
  }
2366
2380
 
2367
2381
  // endregion
@@ -2524,7 +2538,7 @@ export const MAIN_RPC_CONTEXT = {
2524
2538
  THEMING_EXT: createProxyIdentifier<ThemingExt>('ThemingExt'),
2525
2539
  COMMENTS_EXT: createProxyIdentifier<CommentsExt>('CommentsExt'),
2526
2540
  TABS_EXT: createProxyIdentifier<TabsExt>('TabsExt'),
2527
- TELEMETRY_EXT: createProxyIdentifier<TelemetryExt>('TelemetryExt)'),
2541
+ TELEMETRY_EXT: createProxyIdentifier<TelemetryExt>('TelemetryExt'),
2528
2542
  TESTING_EXT: createProxyIdentifier<TestingExt>('TestingExt'),
2529
2543
  URI_EXT: createProxyIdentifier<UriExt>('UriExt'),
2530
2544
  MCP_SERVER_DEFINITION_REGISTRY_EXT: createProxyIdentifier<McpServerDefinitionRegistryExt>('McpServerDefinitionRegistryExt'),