@theia/core 1.74.0-next.5 → 1.74.0-next.51

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 (89) hide show
  1. package/README.md +4 -4
  2. package/lib/browser/catalog.json +300 -36
  3. package/lib/browser/common-frontend-contribution.d.ts.map +1 -1
  4. package/lib/browser/common-frontend-contribution.js +1 -2
  5. package/lib/browser/common-frontend-contribution.js.map +1 -1
  6. package/lib/browser/keybinding.d.ts.map +1 -1
  7. package/lib/browser/keybinding.js +12 -7
  8. package/lib/browser/keybinding.js.map +1 -1
  9. package/lib/browser/preferences/preference-contribution.d.ts.map +1 -1
  10. package/lib/browser/preferences/preference-contribution.js +9 -1
  11. package/lib/browser/preferences/preference-contribution.js.map +1 -1
  12. package/lib/browser/preferences/preference-service.spec.js +63 -0
  13. package/lib/browser/preferences/preference-service.spec.js.map +1 -1
  14. package/lib/browser/shell/application-shell.d.ts.map +1 -1
  15. package/lib/browser/shell/application-shell.js +19 -26
  16. package/lib/browser/shell/application-shell.js.map +1 -1
  17. package/lib/browser/tree/tree-widget.d.ts +7 -33
  18. package/lib/browser/tree/tree-widget.d.ts.map +1 -1
  19. package/lib/browser/tree/tree-widget.js +7 -54
  20. package/lib/browser/tree/tree-widget.js.map +1 -1
  21. package/lib/browser/widgets/select-component.d.ts +2 -2
  22. package/lib/browser/widgets/select-component.d.ts.map +1 -1
  23. package/lib/browser/widgets/select-component.js +42 -12
  24. package/lib/browser/widgets/select-component.js.map +1 -1
  25. package/lib/common/preferences/index.d.ts +1 -0
  26. package/lib/common/preferences/index.d.ts.map +1 -1
  27. package/lib/common/preferences/index.js +1 -0
  28. package/lib/common/preferences/index.js.map +1 -1
  29. package/lib/common/preferences/preference-scope.d.ts +6 -1
  30. package/lib/common/preferences/preference-scope.d.ts.map +1 -1
  31. package/lib/common/preferences/preference-scope.js +5 -0
  32. package/lib/common/preferences/preference-scope.js.map +1 -1
  33. package/lib/common/preferences/preference-scope.spec.js +5 -3
  34. package/lib/common/preferences/preference-scope.spec.js.map +1 -1
  35. package/lib/common/preferences/preference-service.d.ts +19 -0
  36. package/lib/common/preferences/preference-service.d.ts.map +1 -1
  37. package/lib/common/preferences/preference-service.js +34 -5
  38. package/lib/common/preferences/preference-service.js.map +1 -1
  39. package/lib/common/preferences/session-preference-provider.d.ts +17 -0
  40. package/lib/common/preferences/session-preference-provider.d.ts.map +1 -0
  41. package/lib/common/preferences/session-preference-provider.js +77 -0
  42. package/lib/common/preferences/session-preference-provider.js.map +1 -0
  43. package/lib/common/preferences/session-preference-provider.spec.d.ts +2 -0
  44. package/lib/common/preferences/session-preference-provider.spec.d.ts.map +1 -0
  45. package/lib/common/preferences/session-preference-provider.spec.js +71 -0
  46. package/lib/common/preferences/session-preference-provider.spec.js.map +1 -0
  47. package/lib/electron-node/hosting/electron-backend-hosting-module.d.ts.map +1 -1
  48. package/lib/electron-node/hosting/electron-backend-hosting-module.js +7 -0
  49. package/lib/electron-node/hosting/electron-backend-hosting-module.js.map +1 -1
  50. package/lib/electron-node/hosting/electron-backend-hosting-module.spec.d.ts +2 -0
  51. package/lib/electron-node/hosting/electron-backend-hosting-module.spec.d.ts.map +1 -0
  52. package/lib/electron-node/hosting/electron-backend-hosting-module.spec.js +39 -0
  53. package/lib/electron-node/hosting/electron-backend-hosting-module.spec.js.map +1 -0
  54. package/lib/node/hosting/backend-hosting-module.d.ts.map +1 -1
  55. package/lib/node/hosting/backend-hosting-module.js +4 -1
  56. package/lib/node/hosting/backend-hosting-module.js.map +1 -1
  57. package/lib/node/hosting/browser-connection-token.d.ts +29 -1
  58. package/lib/node/hosting/browser-connection-token.d.ts.map +1 -1
  59. package/lib/node/hosting/browser-connection-token.js +25 -1
  60. package/lib/node/hosting/browser-connection-token.js.map +1 -1
  61. package/lib/node/hosting/browser-connection-token.spec.js +70 -0
  62. package/lib/node/hosting/browser-connection-token.spec.js.map +1 -1
  63. package/lib/node/index.d.ts +1 -0
  64. package/lib/node/index.d.ts.map +1 -1
  65. package/lib/node/index.js +3 -1
  66. package/lib/node/index.js.map +1 -1
  67. package/package.json +9 -9
  68. package/src/browser/common-frontend-contribution.ts +1 -2
  69. package/src/browser/keybinding.ts +12 -7
  70. package/src/browser/preferences/preference-contribution.ts +9 -1
  71. package/src/browser/preferences/preference-service.spec.ts +72 -0
  72. package/src/browser/shell/application-shell.ts +19 -25
  73. package/src/browser/style/select-component.css +16 -0
  74. package/src/browser/style/sidepanel.css +5 -0
  75. package/src/browser/style/status-bar.css +1 -1
  76. package/src/browser/tree/tree-widget.tsx +12 -78
  77. package/src/browser/widgets/select-component.tsx +41 -12
  78. package/src/common/preferences/index.ts +1 -0
  79. package/src/common/preferences/preference-scope.spec.ts +5 -3
  80. package/src/common/preferences/preference-scope.ts +6 -1
  81. package/src/common/preferences/preference-service.ts +39 -5
  82. package/src/common/preferences/session-preference-provider.spec.ts +78 -0
  83. package/src/common/preferences/session-preference-provider.ts +69 -0
  84. package/src/electron-node/hosting/electron-backend-hosting-module.spec.ts +42 -0
  85. package/src/electron-node/hosting/electron-backend-hosting-module.ts +8 -0
  86. package/src/node/hosting/backend-hosting-module.ts +5 -2
  87. package/src/node/hosting/browser-connection-token.spec.ts +92 -0
  88. package/src/node/hosting/browser-connection-token.ts +45 -1
  89. package/src/node/index.ts +1 -0
@@ -1 +1 @@
1
- {"version":3,"file":"preference-service.d.ts","sourceRoot":"","sources":["../../../src/common/preferences/preference-service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"preference-service.d.ts","sourceRoot":"","sources":["../../../src/common/preferences/preference-service.ts"],"names":[],"mappings":"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"}
@@ -202,10 +202,35 @@ let PreferenceServiceImpl = class PreferenceServiceImpl {
202
202
  }
203
203
  const provider = this.getProvider(resolvedScope);
204
204
  if (provider && await provider.setPreference(preferenceName, value, resourceUri)) {
205
+ await this.evictSessionOverride(preferenceName, resolvedScope);
205
206
  return;
206
207
  }
207
208
  throw new Error(`Unable to write to ${preference_scope_1.PreferenceScope[resolvedScope]} Settings.`);
208
209
  }
210
+ /**
211
+ * When a preference is written to a persistent scope, drop any in-memory session
212
+ * override (set via `--session-preference`) for the same key so that the explicit
213
+ * change takes effect for the remainder of the session. Without this, the session
214
+ * scope would keep shadowing the user's change because it has higher precedence.
215
+ *
216
+ * Note: this fires for any write to a persistent scope, including programmatic
217
+ * writes from extensions. Extensions that race with startup CLI overrides will
218
+ * therefore clear them. This is intentional: a programmatic write is "explicit"
219
+ * from the preference system's point of view, but consumers should be aware.
220
+ *
221
+ * Session preferences are global (no per-resource scoping), so `resourceUri` is
222
+ * not threaded through.
223
+ */
224
+ async evictSessionOverride(preferenceName, writtenScope) {
225
+ if (writtenScope === preference_scope_1.PreferenceScope.Session || writtenScope === preference_scope_1.PreferenceScope.Default) {
226
+ return;
227
+ }
228
+ const sessionProvider = this.getProvider(preference_scope_1.PreferenceScope.Session);
229
+ if (sessionProvider && sessionProvider.get(preferenceName) !== undefined) {
230
+ // Passing `undefined` clears the value in the session provider.
231
+ await sessionProvider.setPreference(preferenceName, undefined);
232
+ }
233
+ }
209
234
  getBoolean(preferenceName, defaultValue, resourceUri) {
210
235
  const value = resourceUri ? this.get(preferenceName, defaultValue, resourceUri) : this.get(preferenceName, defaultValue);
211
236
  // eslint-disable-next-line no-null/no-null
@@ -235,8 +260,9 @@ let PreferenceServiceImpl = class PreferenceServiceImpl {
235
260
  const globalValue = this.inspectInScope(preferenceName, preference_scope_1.PreferenceScope.User, resourceUri, forceLanguageOverride);
236
261
  const workspaceValue = this.inspectInScope(preferenceName, preference_scope_1.PreferenceScope.Workspace, resourceUri, forceLanguageOverride);
237
262
  const workspaceFolderValue = this.inspectInScope(preferenceName, preference_scope_1.PreferenceScope.Folder, resourceUri, forceLanguageOverride);
238
- const valueApplied = workspaceFolderValue ?? workspaceValue ?? globalValue ?? defaultValue;
239
- return { preferenceName, defaultValue, globalValue, workspaceValue, workspaceFolderValue, value: valueApplied };
263
+ const sessionValue = this.inspectInScope(preferenceName, preference_scope_1.PreferenceScope.Session, resourceUri, forceLanguageOverride);
264
+ const valueApplied = sessionValue ?? workspaceFolderValue ?? workspaceValue ?? globalValue ?? defaultValue;
265
+ return { preferenceName, defaultValue, globalValue, workspaceValue, workspaceFolderValue, sessionValue, value: valueApplied };
240
266
  }
241
267
  inspectInScope(preferenceName, scope, resourceUri, forceLanguageOverride) {
242
268
  const value = this.doInspectInScope(preferenceName, scope, resourceUri);
@@ -258,6 +284,8 @@ let PreferenceServiceImpl = class PreferenceServiceImpl {
258
284
  return inspection.workspaceValue;
259
285
  case preference_scope_1.PreferenceScope.Folder:
260
286
  return inspection.workspaceFolderValue;
287
+ case preference_scope_1.PreferenceScope.Session:
288
+ return inspection.sessionValue;
261
289
  }
262
290
  (0, types_1.unreachable)(scope, 'Not all PreferenceScope enum variants handled.');
263
291
  }
@@ -278,9 +306,10 @@ let PreferenceServiceImpl = class PreferenceServiceImpl {
278
306
  return [];
279
307
  }
280
308
  // Scopes in ascending order of scope breadth.
281
- const allScopes = [...this.schemaService.validScopes].reverse();
282
- // Get rid of Default scope. We can't set anything there.
283
- allScopes.pop();
309
+ const allScopes = [...this.schemaService.validScopes].reverse()
310
+ // Default is read-only, and Session is populated only by `--session-preference`,
311
+ // so neither is a valid target for a regular user edit.
312
+ .filter(scope => scope !== preference_scope_1.PreferenceScope.Default && scope !== preference_scope_1.PreferenceScope.Session);
284
313
  const isScopeDefined = (scope) => this.getScopedValueFromInspection(inspection, scope) !== undefined;
285
314
  if (intendedValue === undefined) {
286
315
  return allScopes.filter(isScopeDefined);
@@ -1 +1 @@
1
- {"version":3,"file":"preference-service.js","sourceRoot":"","sources":["../../../src/common/preferences/preference-service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"preference-service.js","sourceRoot":"","sources":["../../../src/common/preferences/preference-service.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,17 @@
1
+ import { JSONObject, JSONValue } from '@lumino/coreutils';
2
+ import { PreferenceProvider } from './preference-provider';
3
+ import { PreferenceProviderImpl } from './preference-provider-impl';
4
+ import { PreferenceScope } from './preference-scope';
5
+ /**
6
+ * In-memory preference provider used for process-lifetime overrides such as those
7
+ * supplied via the `--session-preference` CLI option. Values live in memory only
8
+ * and are dropped when the process exits.
9
+ */
10
+ export declare class SessionPreferenceProvider extends PreferenceProviderImpl implements PreferenceProvider {
11
+ protected readonly preferences: Map<string, JSONValue>;
12
+ protected init(): void;
13
+ canHandleScope(scope: PreferenceScope): boolean;
14
+ getPreferences(): JSONObject;
15
+ setPreference(key: string, value: JSONValue | undefined): Promise<boolean>;
16
+ }
17
+ //# sourceMappingURL=session-preference-provider.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"session-preference-provider.d.ts","sourceRoot":"","sources":["../../../src/common/preferences/session-preference-provider.ts"],"names":[],"mappings":"AAgBA,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAE1D,OAAO,EAAE,kBAAkB,EAAgC,MAAM,uBAAuB,CAAC;AACzF,OAAO,EAAE,sBAAsB,EAAE,MAAM,4BAA4B,CAAC;AACpE,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAErD;;;;GAIG;AACH,qBACa,yBAA0B,SAAQ,sBAAuB,YAAW,kBAAkB;IAE/F,SAAS,CAAC,QAAQ,CAAC,WAAW,yBAAgC;IAG9D,SAAS,CAAC,IAAI,IAAI,IAAI;IAIb,cAAc,CAAC,KAAK,EAAE,eAAe,GAAG,OAAO;IAIxD,cAAc,IAAI,UAAU;IAQtB,aAAa,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,GAAG,SAAS,GAAG,OAAO,CAAC,OAAO,CAAC;CAmBnF"}
@@ -0,0 +1,77 @@
1
+ "use strict";
2
+ // *****************************************************************************
3
+ // Copyright (C) 2026 EclipseSource 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.SessionPreferenceProvider = void 0;
19
+ const tslib_1 = require("tslib");
20
+ const inversify_1 = require("inversify");
21
+ const preference_provider_impl_1 = require("./preference-provider-impl");
22
+ const preference_scope_1 = require("./preference-scope");
23
+ /**
24
+ * In-memory preference provider used for process-lifetime overrides such as those
25
+ * supplied via the `--session-preference` CLI option. Values live in memory only
26
+ * and are dropped when the process exits.
27
+ */
28
+ let SessionPreferenceProvider = class SessionPreferenceProvider extends preference_provider_impl_1.PreferenceProviderImpl {
29
+ constructor() {
30
+ super(...arguments);
31
+ this.preferences = new Map();
32
+ }
33
+ init() {
34
+ this._ready.resolve();
35
+ }
36
+ canHandleScope(scope) {
37
+ return scope === preference_scope_1.PreferenceScope.Session;
38
+ }
39
+ getPreferences() {
40
+ const result = {};
41
+ for (const [name, value] of this.preferences) {
42
+ result[name] = value;
43
+ }
44
+ return result;
45
+ }
46
+ async setPreference(key, value) {
47
+ const oldValue = this.preferences.get(key);
48
+ if (value === undefined) {
49
+ if (!this.preferences.has(key)) {
50
+ return false;
51
+ }
52
+ this.preferences.delete(key);
53
+ }
54
+ else {
55
+ this.preferences.set(key, value);
56
+ }
57
+ const change = {
58
+ preferenceName: key,
59
+ newValue: value,
60
+ oldValue,
61
+ scope: preference_scope_1.PreferenceScope.Session
62
+ };
63
+ await this.emitPreferencesChangedEvent([change]);
64
+ return true;
65
+ }
66
+ };
67
+ exports.SessionPreferenceProvider = SessionPreferenceProvider;
68
+ tslib_1.__decorate([
69
+ (0, inversify_1.postConstruct)(),
70
+ tslib_1.__metadata("design:type", Function),
71
+ tslib_1.__metadata("design:paramtypes", []),
72
+ tslib_1.__metadata("design:returntype", void 0)
73
+ ], SessionPreferenceProvider.prototype, "init", null);
74
+ exports.SessionPreferenceProvider = SessionPreferenceProvider = tslib_1.__decorate([
75
+ (0, inversify_1.injectable)()
76
+ ], SessionPreferenceProvider);
77
+ //# sourceMappingURL=session-preference-provider.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"session-preference-provider.js","sourceRoot":"","sources":["../../../src/common/preferences/session-preference-provider.ts"],"names":[],"mappings":";AAAA,gFAAgF;AAChF,+CAA+C;AAC/C,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,yCAAsD;AAEtD,yEAAoE;AACpE,yDAAqD;AAErD;;;;GAIG;AAEI,IAAM,yBAAyB,GAA/B,MAAM,yBAA0B,SAAQ,iDAAsB;IAA9D;;QAEgB,gBAAW,GAAG,IAAI,GAAG,EAAqB,CAAC;IAsClE,CAAC;IAnCa,IAAI;QACV,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;IAC1B,CAAC;IAEQ,cAAc,CAAC,KAAsB;QAC1C,OAAO,KAAK,KAAK,kCAAe,CAAC,OAAO,CAAC;IAC7C,CAAC;IAED,cAAc;QACV,MAAM,MAAM,GAAe,EAAE,CAAC;QAC9B,KAAK,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;YAC3C,MAAM,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC;QACzB,CAAC;QACD,OAAO,MAAM,CAAC;IAClB,CAAC;IAED,KAAK,CAAC,aAAa,CAAC,GAAW,EAAE,KAA4B;QACzD,MAAM,QAAQ,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAC3C,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;YACtB,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;gBAC7B,OAAO,KAAK,CAAC;YACjB,CAAC;YACD,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QACjC,CAAC;aAAM,CAAC;YACJ,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;QACrC,CAAC;QACD,MAAM,MAAM,GAAiC;YACzC,cAAc,EAAE,GAAG;YACnB,QAAQ,EAAE,KAAK;YACf,QAAQ;YACR,KAAK,EAAE,kCAAe,CAAC,OAAO;SACjC,CAAC;QACF,MAAM,IAAI,CAAC,2BAA2B,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;QACjD,OAAO,IAAI,CAAC;IAChB,CAAC;CACJ,CAAA;AAxCY,8DAAyB;AAKxB;IADT,IAAA,yBAAa,GAAE;;;;qDAGf;oCAPQ,yBAAyB;IADrC,IAAA,sBAAU,GAAE;GACA,yBAAyB,CAwCrC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=session-preference-provider.spec.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"session-preference-provider.spec.d.ts","sourceRoot":"","sources":["../../../src/common/preferences/session-preference-provider.spec.ts"],"names":[],"mappings":""}
@@ -0,0 +1,71 @@
1
+ "use strict";
2
+ // *****************************************************************************
3
+ // Copyright (C) 2026 EclipseSource 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 session_preference_provider_1 = require("./session-preference-provider");
20
+ const preference_scope_1 = require("./preference-scope");
21
+ describe('SessionPreferenceProvider', () => {
22
+ let provider;
23
+ beforeEach(() => {
24
+ provider = new session_preference_provider_1.SessionPreferenceProvider();
25
+ // PostConstruct emulation
26
+ provider.init();
27
+ });
28
+ it('claims only the Session scope', () => {
29
+ (0, chai_1.expect)(provider.canHandleScope(preference_scope_1.PreferenceScope.Session)).to.be.true;
30
+ (0, chai_1.expect)(provider.canHandleScope(preference_scope_1.PreferenceScope.User)).to.be.false;
31
+ (0, chai_1.expect)(provider.canHandleScope(preference_scope_1.PreferenceScope.Workspace)).to.be.false;
32
+ (0, chai_1.expect)(provider.canHandleScope(preference_scope_1.PreferenceScope.Folder)).to.be.false;
33
+ (0, chai_1.expect)(provider.canHandleScope(preference_scope_1.PreferenceScope.Default)).to.be.false;
34
+ });
35
+ it('starts empty', () => {
36
+ (0, chai_1.expect)(provider.getPreferences()).to.deep.equal({});
37
+ });
38
+ it('stores set values in memory and exposes them via get/resolve', async () => {
39
+ const ok = await provider.setPreference('editor.fontSize', 18);
40
+ (0, chai_1.expect)(ok).to.be.true;
41
+ (0, chai_1.expect)(provider.get('editor.fontSize')).to.equal(18);
42
+ (0, chai_1.expect)(provider.resolve('editor.fontSize').value).to.equal(18);
43
+ (0, chai_1.expect)(provider.getPreferences()).to.deep.equal({ 'editor.fontSize': 18 });
44
+ });
45
+ it('emits a change event on set', async () => {
46
+ let received;
47
+ provider.onDidPreferencesChanged(changes => {
48
+ const key = Object.keys(changes)[0];
49
+ received = {
50
+ name: changes[key].preferenceName,
51
+ newValue: changes[key].newValue,
52
+ oldValue: changes[key].oldValue,
53
+ scope: changes[key].scope
54
+ };
55
+ });
56
+ await provider.setPreference('foo', 'bar');
57
+ (0, chai_1.expect)(received).to.deep.equal({ name: 'foo', newValue: 'bar', oldValue: undefined, scope: preference_scope_1.PreferenceScope.Session });
58
+ });
59
+ it('removes a value when set to undefined', async () => {
60
+ await provider.setPreference('foo', 'bar');
61
+ const removed = await provider.setPreference('foo', undefined);
62
+ (0, chai_1.expect)(removed).to.be.true;
63
+ (0, chai_1.expect)(provider.get('foo')).to.equal(undefined);
64
+ (0, chai_1.expect)(provider.getPreferences()).to.deep.equal({});
65
+ });
66
+ it('returns false when removing a key that was never set', async () => {
67
+ const removed = await provider.setPreference('missing', undefined);
68
+ (0, chai_1.expect)(removed).to.be.false;
69
+ });
70
+ });
71
+ //# sourceMappingURL=session-preference-provider.spec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"session-preference-provider.spec.js","sourceRoot":"","sources":["../../../src/common/preferences/session-preference-provider.spec.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"electron-backend-hosting-module.d.ts","sourceRoot":"","sources":["../../../src/electron-node/hosting/electron-backend-hosting-module.ts"],"names":[],"mappings":"AAgBA,OAAO,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;;AAI5C,wBAGG"}
1
+ {"version":3,"file":"electron-backend-hosting-module.d.ts","sourceRoot":"","sources":["../../../src/electron-node/hosting/electron-backend-hosting-module.ts"],"names":[],"mappings":"AAgBA,OAAO,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;;AAK5C,wBAUG"}
@@ -17,9 +17,16 @@
17
17
  Object.defineProperty(exports, "__esModule", { value: true });
18
18
  const inversify_1 = require("inversify");
19
19
  const ws_request_validators_1 = require("../../node/ws-request-validators");
20
+ const browser_connection_token_1 = require("../../node/hosting/browser-connection-token");
20
21
  const electron_ws_origin_validator_1 = require("./electron-ws-origin-validator");
21
22
  exports.default = new inversify_1.ContainerModule(bind => {
22
23
  bind(electron_ws_origin_validator_1.ElectronWsOriginValidator).toSelf().inSingletonScope();
23
24
  bind(ws_request_validators_1.WsRequestValidatorContribution).toService(electron_ws_origin_validator_1.ElectronWsOriginValidator);
25
+ // Electron uses its own `ElectronSecurityToken`, so the connection-token cookie is not used.
26
+ // Bind a no-op validator so consumers can inject it uniformly.
27
+ const noopValidator = {
28
+ validateRequest: (_req, _res, next) => next()
29
+ };
30
+ bind(browser_connection_token_1.HttpConnectionValidator).toConstantValue(noopValidator);
24
31
  });
25
32
  //# sourceMappingURL=electron-backend-hosting-module.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"electron-backend-hosting-module.js","sourceRoot":"","sources":["../../../src/electron-node/hosting/electron-backend-hosting-module.ts"],"names":[],"mappings":";AAAA,gFAAgF;AAChF,0CAA0C;AAC1C,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,yCAA4C;AAC5C,4EAAkF;AAClF,iFAA2E;AAE3E,kBAAe,IAAI,2BAAe,CAAC,IAAI,CAAC,EAAE;IACtC,IAAI,CAAC,wDAAyB,CAAC,CAAC,MAAM,EAAE,CAAC,gBAAgB,EAAE,CAAC;IAC5D,IAAI,CAAC,sDAA8B,CAAC,CAAC,SAAS,CAAC,wDAAyB,CAAC,CAAC;AAC9E,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"electron-backend-hosting-module.js","sourceRoot":"","sources":["../../../src/electron-node/hosting/electron-backend-hosting-module.ts"],"names":[],"mappings":";AAAA,gFAAgF;AAChF,0CAA0C;AAC1C,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,yCAA4C;AAC5C,4EAAkF;AAClF,0FAAsF;AACtF,iFAA2E;AAE3E,kBAAe,IAAI,2BAAe,CAAC,IAAI,CAAC,EAAE;IACtC,IAAI,CAAC,wDAAyB,CAAC,CAAC,MAAM,EAAE,CAAC,gBAAgB,EAAE,CAAC;IAC5D,IAAI,CAAC,sDAA8B,CAAC,CAAC,SAAS,CAAC,wDAAyB,CAAC,CAAC;IAE1E,6FAA6F;IAC7F,+DAA+D;IAC/D,MAAM,aAAa,GAA4B;QAC3C,eAAe,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,CAAC,IAAI,EAAE;KAChD,CAAC;IACF,IAAI,CAAC,kDAAuB,CAAC,CAAC,eAAe,CAAC,aAAa,CAAC,CAAC;AACjE,CAAC,CAAC,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=electron-backend-hosting-module.spec.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"electron-backend-hosting-module.spec.d.ts","sourceRoot":"","sources":["../../../src/electron-node/hosting/electron-backend-hosting-module.spec.ts"],"names":[],"mappings":""}
@@ -0,0 +1,39 @@
1
+ "use strict";
2
+ // *****************************************************************************
3
+ // Copyright (C) 2026 EclipseSource GmbH 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 inversify_1 = require("inversify");
20
+ const electron_backend_hosting_module_1 = require("./electron-backend-hosting-module");
21
+ const browser_connection_token_1 = require("../../node/hosting/browser-connection-token");
22
+ describe('electron-backend-hosting-module', () => {
23
+ it('should bind a no-op HttpConnectionValidator that calls next() unconditionally', () => {
24
+ const container = new inversify_1.Container();
25
+ container.load(electron_backend_hosting_module_1.default);
26
+ const validator = container.get(browser_connection_token_1.HttpConnectionValidator);
27
+ let nextCalled = false;
28
+ let sentStatus;
29
+ // No cookie provided: the no-op validator must still call next() and never send a status.
30
+ const req = { headers: {} };
31
+ const res = { sendStatus: (status) => { sentStatus = status; } };
32
+ const next = () => { nextCalled = true; };
33
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
34
+ validator.validateRequest(req, res, next);
35
+ (0, chai_1.expect)(nextCalled).to.be.true;
36
+ (0, chai_1.expect)(sentStatus).to.be.undefined;
37
+ });
38
+ });
39
+ //# sourceMappingURL=electron-backend-hosting-module.spec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"electron-backend-hosting-module.spec.js","sourceRoot":"","sources":["../../../src/electron-node/hosting/electron-backend-hosting-module.spec.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,+BAA8B;AAC9B,yCAAsC;AACtC,uFAA6E;AAC7E,0FAAsF;AAEtF,QAAQ,CAAC,iCAAiC,EAAE,GAAG,EAAE;IAE7C,EAAE,CAAC,+EAA+E,EAAE,GAAG,EAAE;QACrF,MAAM,SAAS,GAAG,IAAI,qBAAS,EAAE,CAAC;QAClC,SAAS,CAAC,IAAI,CAAC,yCAA4B,CAAC,CAAC;QAC7C,MAAM,SAAS,GAAG,SAAS,CAAC,GAAG,CAA0B,kDAAuB,CAAC,CAAC;QAElF,IAAI,UAAU,GAAG,KAAK,CAAC;QACvB,IAAI,UAA8B,CAAC;QACnC,0FAA0F;QAC1F,MAAM,GAAG,GAAG,EAAE,OAAO,EAAE,EAAwC,EAAE,CAAC;QAClE,MAAM,GAAG,GAAG,EAAE,UAAU,EAAE,CAAC,MAAc,EAAE,EAAE,GAAG,UAAU,GAAG,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;QACzE,MAAM,IAAI,GAAG,GAAS,EAAE,GAAG,UAAU,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;QAEhD,8DAA8D;QAC9D,SAAS,CAAC,eAAe,CAAC,GAAU,EAAE,GAAU,EAAE,IAAW,CAAC,CAAC;QAE/D,IAAA,aAAM,EAAC,UAAU,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC;QAC9B,IAAA,aAAM,EAAC,UAAU,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,SAAS,CAAC;IACvC,CAAC,CAAC,CAAC;AACP,CAAC,CAAC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"backend-hosting-module.d.ts","sourceRoot":"","sources":["../../../src/node/hosting/backend-hosting-module.ts"],"names":[],"mappings":"AAgBA,OAAO,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;;AAS5C,wBAUG"}
1
+ {"version":3,"file":"backend-hosting-module.d.ts","sourceRoot":"","sources":["../../../src/node/hosting/backend-hosting-module.ts"],"names":[],"mappings":"AAgBA,OAAO,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;;AAS5C,wBAaG"}
@@ -25,10 +25,13 @@ exports.default = new inversify_1.ContainerModule(bind => {
25
25
  bind(backend_application_hosts_1.BackendApplicationHosts).toSelf().inSingletonScope();
26
26
  bind(ws_origin_validator_1.WsOriginValidator).toSelf().inSingletonScope();
27
27
  bind(ws_request_validators_1.WsRequestValidatorContribution).toService(ws_origin_validator_1.WsOriginValidator);
28
- // Cookie-based connection token protects both HTTP and WebSocket endpoints.
28
+ // Cookie-based connection token. It is validated on WebSocket upgrades and bootstrapped
29
+ // (set as a cookie) on every HTTP request; HTTP enforcement is opt-in per route via
30
+ // `HttpConnectionValidator`.
29
31
  bind(browser_connection_token_1.BrowserConnectionToken).toConstantValue((0, browser_connection_token_1.createBrowserConnectionToken)());
30
32
  bind(browser_connection_token_1.BrowserConnectionTokenBackendContribution).toSelf().inSingletonScope();
31
33
  bind(backend_application_1.BackendApplicationContribution).toService(browser_connection_token_1.BrowserConnectionTokenBackendContribution);
32
34
  bind(ws_request_validators_1.WsRequestValidatorContribution).toService(browser_connection_token_1.BrowserConnectionTokenBackendContribution);
35
+ bind(browser_connection_token_1.HttpConnectionValidator).toService(browser_connection_token_1.BrowserConnectionTokenBackendContribution);
33
36
  });
34
37
  //# sourceMappingURL=backend-hosting-module.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"backend-hosting-module.js","sourceRoot":"","sources":["../../../src/node/hosting/backend-hosting-module.ts"],"names":[],"mappings":";AAAA,gFAAgF;AAChF,0CAA0C;AAC1C,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,yCAA4C;AAC5C,gEAAwE;AACxE,oEAA0E;AAC1E,2EAAsE;AACtE,yEAEoC;AACpC,+DAA0D;AAE1D,kBAAe,IAAI,2BAAe,CAAC,IAAI,CAAC,EAAE;IACtC,IAAI,CAAC,mDAAuB,CAAC,CAAC,MAAM,EAAE,CAAC,gBAAgB,EAAE,CAAC;IAC1D,IAAI,CAAC,uCAAiB,CAAC,CAAC,MAAM,EAAE,CAAC,gBAAgB,EAAE,CAAC;IACpD,IAAI,CAAC,sDAA8B,CAAC,CAAC,SAAS,CAAC,uCAAiB,CAAC,CAAC;IAElE,4EAA4E;IAC5E,IAAI,CAAC,iDAAsB,CAAC,CAAC,eAAe,CAAC,IAAA,uDAA4B,GAAE,CAAC,CAAC;IAC7E,IAAI,CAAC,oEAAyC,CAAC,CAAC,MAAM,EAAE,CAAC,gBAAgB,EAAE,CAAC;IAC5E,IAAI,CAAC,oDAA8B,CAAC,CAAC,SAAS,CAAC,oEAAyC,CAAC,CAAC;IAC1F,IAAI,CAAC,sDAA8B,CAAC,CAAC,SAAS,CAAC,oEAAyC,CAAC,CAAC;AAC9F,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"backend-hosting-module.js","sourceRoot":"","sources":["../../../src/node/hosting/backend-hosting-module.ts"],"names":[],"mappings":";AAAA,gFAAgF;AAChF,0CAA0C;AAC1C,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,yCAA4C;AAC5C,gEAAwE;AACxE,oEAA0E;AAC1E,2EAAsE;AACtE,yEAEoC;AACpC,+DAA0D;AAE1D,kBAAe,IAAI,2BAAe,CAAC,IAAI,CAAC,EAAE;IACtC,IAAI,CAAC,mDAAuB,CAAC,CAAC,MAAM,EAAE,CAAC,gBAAgB,EAAE,CAAC;IAC1D,IAAI,CAAC,uCAAiB,CAAC,CAAC,MAAM,EAAE,CAAC,gBAAgB,EAAE,CAAC;IACpD,IAAI,CAAC,sDAA8B,CAAC,CAAC,SAAS,CAAC,uCAAiB,CAAC,CAAC;IAElE,wFAAwF;IACxF,oFAAoF;IACpF,6BAA6B;IAC7B,IAAI,CAAC,iDAAsB,CAAC,CAAC,eAAe,CAAC,IAAA,uDAA4B,GAAE,CAAC,CAAC;IAC7E,IAAI,CAAC,oEAAyC,CAAC,CAAC,MAAM,EAAE,CAAC,gBAAgB,EAAE,CAAC;IAC5E,IAAI,CAAC,oDAA8B,CAAC,CAAC,SAAS,CAAC,oEAAyC,CAAC,CAAC;IAC1F,IAAI,CAAC,sDAA8B,CAAC,CAAC,SAAS,CAAC,oEAAyC,CAAC,CAAC;IAC1F,IAAI,CAAC,kDAAuB,CAAC,CAAC,SAAS,CAAC,oEAAyC,CAAC,CAAC;AACvF,CAAC,CAAC,CAAC"}
@@ -8,6 +8,24 @@ export declare const BROWSER_TOKEN_COOKIE_NAME = "theia-connection-token";
8
8
  export interface BrowserConnectionToken {
9
9
  value: string;
10
10
  }
11
+ export declare const HttpConnectionValidator: unique symbol;
12
+ /**
13
+ * Express middleware provider that rejects HTTP requests lacking a valid connection token.
14
+ *
15
+ * The connection-token cookie is only *bootstrapped* globally (see
16
+ * {@link BrowserConnectionTokenBackendContribution}); enforcement is opt-in per route.
17
+ * Security-sensitive HTTP endpoints (e.g. the filesystem upload/download routes) should
18
+ * inject this and apply {@link validateRequest} as route middleware. Non-sensitive routes
19
+ * (the initial HTML page, static assets) must not use it, as they legitimately have no
20
+ * cookie yet on the very first page load.
21
+ */
22
+ export interface HttpConnectionValidator {
23
+ /**
24
+ * Express middleware that calls `next()` when the request carries a valid connection-token
25
+ * cookie (or when running in Electron) and responds with `403` otherwise.
26
+ */
27
+ validateRequest(req: express.Request, res: express.Response, next: express.NextFunction): void;
28
+ }
11
29
  /**
12
30
  * Validates WebSocket and HTTP requests using a cookie-based connection token.
13
31
  *
@@ -15,12 +33,17 @@ export interface BrowserConnectionToken {
15
33
  * as a `SameSite=Strict; HttpOnly` cookie on the first page load. Cross-origin pages
16
34
  * cannot obtain or send this cookie, so their requests are rejected.
17
35
  *
36
+ * The cookie is *bootstrapped* for every HTTP request (via {@link expressMiddleware}) so that
37
+ * browsers always receive it, but HTTP requests are only *rejected* on routes that opt in to
38
+ * enforcement via {@link validateRequest} (see {@link HttpConnectionValidator}). WebSocket
39
+ * upgrades are always validated (see {@link allowWsUpgrade}).
40
+ *
18
41
  * This complements the origin validator: non-browser callers that omit the Origin
19
42
  * header (e.g. Node.js scripts) still cannot reach the backend without the cookie.
20
43
  *
21
44
  * Skipped in Electron deployments (which use their own `ElectronSecurityToken`).
22
45
  */
23
- export declare class BrowserConnectionTokenBackendContribution implements BackendApplicationContribution, WsRequestValidatorContribution {
46
+ export declare class BrowserConnectionTokenBackendContribution implements BackendApplicationContribution, WsRequestValidatorContribution, HttpConnectionValidator {
24
47
  protected readonly browserConnectionToken: BrowserConnectionToken;
25
48
  protected readonly earlyMiddleware: EarlyExpressMiddleware;
26
49
  /**
@@ -35,6 +58,11 @@ export declare class BrowserConnectionTokenBackendContribution implements Backen
35
58
  * cannot provide the `SameSite=Strict` cookie either, so they are rejected.
36
59
  */
37
60
  allowWsUpgrade(request: http.IncomingMessage): MaybePromise<boolean>;
61
+ /**
62
+ * Reject the request with `403` unless it carries a valid connection-token cookie.
63
+ * Always allows the request in Electron deployments, consistent with {@link allowWsUpgrade}.
64
+ */
65
+ validateRequest(req: express.Request, res: express.Response, next: express.NextFunction): void;
38
66
  protected expressMiddleware(req: express.Request, res: express.Response, next: express.NextFunction): void;
39
67
  protected getTokenFromCookie(req: http.IncomingMessage): string | undefined;
40
68
  protected isTokenValid(token: string): boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"browser-connection-token.d.ts","sourceRoot":"","sources":["../../../src/node/hosting/browser-connection-token.ts"],"names":[],"mappings":"AAkBA,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAC7B,OAAO,OAAO,GAAG,QAAQ,SAAS,CAAC,CAAC;AAGpC,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAC5C,OAAO,EAAE,8BAA8B,EAAE,sBAAsB,EAAE,MAAM,wBAAwB,CAAC;AAChG,OAAO,EAAE,8BAA8B,EAAE,MAAM,0BAA0B,CAAC;AAG1E,eAAO,MAAM,sBAAsB,eAAmC,CAAC;AAEvE,eAAO,MAAM,yBAAyB,2BAA2B,CAAC;AAElE,MAAM,WAAW,sBAAsB;IACnC,KAAK,EAAE,MAAM,CAAC;CACjB;AAED;;;;;;;;;;;GAWG;AACH,qBACa,yCAA0C,YAAW,8BAA8B,EAAE,8BAA8B;IAG5H,SAAS,CAAC,QAAQ,CAAC,sBAAsB,EAAE,sBAAsB,CAAC;IAGlE,SAAS,CAAC,QAAQ,CAAC,eAAe,EAAE,sBAAsB,CAAC;IAE3D;;;;OAIG;IACH,UAAU,IAAI,IAAI;IAOlB;;;;OAIG;IACH,cAAc,CAAC,OAAO,EAAE,IAAI,CAAC,eAAe,GAAG,YAAY,CAAC,OAAO,CAAC;IAapE,SAAS,CAAC,iBAAiB,CAAC,GAAG,EAAE,OAAO,CAAC,OAAO,EAAE,GAAG,EAAE,OAAO,CAAC,QAAQ,EAAE,IAAI,EAAE,OAAO,CAAC,YAAY,GAAG,IAAI;IAc1G,SAAS,CAAC,kBAAkB,CAAC,GAAG,EAAE,IAAI,CAAC,eAAe,GAAG,MAAM,GAAG,SAAS;IAQ3E,SAAS,CAAC,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO;CAUjD;AAED;;GAEG;AACH,wBAAgB,4BAA4B,IAAI,sBAAsB,CAErE"}
1
+ {"version":3,"file":"browser-connection-token.d.ts","sourceRoot":"","sources":["../../../src/node/hosting/browser-connection-token.ts"],"names":[],"mappings":"AAkBA,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAC7B,OAAO,OAAO,GAAG,QAAQ,SAAS,CAAC,CAAC;AAGpC,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAC5C,OAAO,EAAE,8BAA8B,EAAE,sBAAsB,EAAE,MAAM,wBAAwB,CAAC;AAChG,OAAO,EAAE,8BAA8B,EAAE,MAAM,0BAA0B,CAAC;AAG1E,eAAO,MAAM,sBAAsB,eAAmC,CAAC;AAEvE,eAAO,MAAM,yBAAyB,2BAA2B,CAAC;AAElE,MAAM,WAAW,sBAAsB;IACnC,KAAK,EAAE,MAAM,CAAC;CACjB;AAED,eAAO,MAAM,uBAAuB,eAAoC,CAAC;AAEzE;;;;;;;;;GASG;AACH,MAAM,WAAW,uBAAuB;IACpC;;;OAGG;IACH,eAAe,CAAC,GAAG,EAAE,OAAO,CAAC,OAAO,EAAE,GAAG,EAAE,OAAO,CAAC,QAAQ,EAAE,IAAI,EAAE,OAAO,CAAC,YAAY,GAAG,IAAI,CAAC;CAClG;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,qBACa,yCAA0C,YAAW,8BAA8B,EAAE,8BAA8B,EAAE,uBAAuB;IAGrJ,SAAS,CAAC,QAAQ,CAAC,sBAAsB,EAAE,sBAAsB,CAAC;IAGlE,SAAS,CAAC,QAAQ,CAAC,eAAe,EAAE,sBAAsB,CAAC;IAE3D;;;;OAIG;IACH,UAAU,IAAI,IAAI;IAOlB;;;;OAIG;IACH,cAAc,CAAC,OAAO,EAAE,IAAI,CAAC,eAAe,GAAG,YAAY,CAAC,OAAO,CAAC;IAapE;;;OAGG;IACH,eAAe,CAAC,GAAG,EAAE,OAAO,CAAC,OAAO,EAAE,GAAG,EAAE,OAAO,CAAC,QAAQ,EAAE,IAAI,EAAE,OAAO,CAAC,YAAY,GAAG,IAAI;IAe9F,SAAS,CAAC,iBAAiB,CAAC,GAAG,EAAE,OAAO,CAAC,OAAO,EAAE,GAAG,EAAE,OAAO,CAAC,QAAQ,EAAE,IAAI,EAAE,OAAO,CAAC,YAAY,GAAG,IAAI;IAc1G,SAAS,CAAC,kBAAkB,CAAC,GAAG,EAAE,IAAI,CAAC,eAAe,GAAG,MAAM,GAAG,SAAS;IAQ3E,SAAS,CAAC,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO;CAUjD;AAED;;GAEG;AACH,wBAAgB,4BAA4B,IAAI,sBAAsB,CAErE"}
@@ -15,7 +15,7 @@
15
15
  // SPDX-License-Identifier: EPL-2.0 OR GPL-2.0-only WITH Classpath-exception-2.0
16
16
  // *****************************************************************************
17
17
  Object.defineProperty(exports, "__esModule", { value: true });
18
- exports.BrowserConnectionTokenBackendContribution = exports.BROWSER_TOKEN_COOKIE_NAME = exports.BrowserConnectionToken = void 0;
18
+ exports.BrowserConnectionTokenBackendContribution = exports.HttpConnectionValidator = exports.BROWSER_TOKEN_COOKIE_NAME = exports.BrowserConnectionToken = void 0;
19
19
  exports.createBrowserConnectionToken = createBrowserConnectionToken;
20
20
  const tslib_1 = require("tslib");
21
21
  const cookie = require("cookie");
@@ -26,6 +26,7 @@ const backend_application_1 = require("../backend-application");
26
26
  const uuid_1 = require("../../common/uuid");
27
27
  exports.BrowserConnectionToken = Symbol('BrowserConnectionToken');
28
28
  exports.BROWSER_TOKEN_COOKIE_NAME = 'theia-connection-token';
29
+ exports.HttpConnectionValidator = Symbol('HttpConnectionValidator');
29
30
  /**
30
31
  * Validates WebSocket and HTTP requests using a cookie-based connection token.
31
32
  *
@@ -33,6 +34,11 @@ exports.BROWSER_TOKEN_COOKIE_NAME = 'theia-connection-token';
33
34
  * as a `SameSite=Strict; HttpOnly` cookie on the first page load. Cross-origin pages
34
35
  * cannot obtain or send this cookie, so their requests are rejected.
35
36
  *
37
+ * The cookie is *bootstrapped* for every HTTP request (via {@link expressMiddleware}) so that
38
+ * browsers always receive it, but HTTP requests are only *rejected* on routes that opt in to
39
+ * enforcement via {@link validateRequest} (see {@link HttpConnectionValidator}). WebSocket
40
+ * upgrades are always validated (see {@link allowWsUpgrade}).
41
+ *
36
42
  * This complements the origin validator: non-browser callers that omit the Origin
37
43
  * header (e.g. Node.js scripts) still cannot reach the backend without the cookie.
38
44
  *
@@ -67,6 +73,24 @@ let BrowserConnectionTokenBackendContribution = class BrowserConnectionTokenBack
67
73
  // because it is set on the initial page load.
68
74
  return false;
69
75
  }
76
+ /**
77
+ * Reject the request with `403` unless it carries a valid connection-token cookie.
78
+ * Always allows the request in Electron deployments, consistent with {@link allowWsUpgrade}.
79
+ */
80
+ validateRequest(req, res, next) {
81
+ if (index_1.environment.electron.is()) {
82
+ next();
83
+ return;
84
+ }
85
+ const token = this.getTokenFromCookie(req);
86
+ if (token && this.isTokenValid(token)) {
87
+ next();
88
+ return;
89
+ }
90
+ // No cookie or stale/invalid token: reject. Legitimate browsers always have the cookie
91
+ // because it is set on the initial page load, and same-origin requests send it automatically.
92
+ res.sendStatus(403);
93
+ }
70
94
  expressMiddleware(req, res, next) {
71
95
  const existing = this.getTokenFromCookie(req);
72
96
  if (!existing || !this.isTokenValid(existing)) {
@@ -1 +1 @@
1
- {"version":3,"file":"browser-connection-token.js","sourceRoot":"","sources":["../../../src/node/hosting/browser-connection-token.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;;;AA6GhF,oEAEC;;AA7GD,iCAAiC;AACjC,iCAAiC;AAGjC,yCAA+C;AAC/C,8CAAiD;AAEjD,gEAAgG;AAEhG,4CAAiD;AAEpC,QAAA,sBAAsB,GAAG,MAAM,CAAC,wBAAwB,CAAC,CAAC;AAE1D,QAAA,yBAAyB,GAAG,wBAAwB,CAAC;AAMlE;;;;;;;;;;;GAWG;AAEI,IAAM,yCAAyC,GAA/C,MAAM,yCAAyC;IAQlD;;;;OAIG;IACH,UAAU;QACN,IAAI,mBAAW,CAAC,QAAQ,CAAC,EAAE,EAAE,EAAE,CAAC;YAC5B,OAAO;QACX,CAAC;QACD,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,iBAAiB,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC,CAAC;IACnG,CAAC;IAED;;;;OAIG;IACH,cAAc,CAAC,OAA6B;QACxC,IAAI,mBAAW,CAAC,QAAQ,CAAC,EAAE,EAAE,EAAE,CAAC;YAC5B,OAAO,IAAI,CAAC;QAChB,CAAC;QACD,MAAM,KAAK,GAAG,IAAI,CAAC,kBAAkB,CAAC,OAAO,CAAC,CAAC;QAC/C,IAAI,KAAK,EAAE,CAAC;YACR,OAAO,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;QACpC,CAAC;QACD,gEAAgE;QAChE,8CAA8C;QAC9C,OAAO,KAAK,CAAC;IACjB,CAAC;IAES,iBAAiB,CAAC,GAAoB,EAAE,GAAqB,EAAE,IAA0B;QAC/F,MAAM,QAAQ,GAAG,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,CAAC;QAC9C,IAAI,CAAC,QAAQ,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC5C,0EAA0E;YAC1E,+DAA+D;YAC/D,GAAG,CAAC,MAAM,CAAC,iCAAyB,EAAE,IAAI,CAAC,sBAAsB,CAAC,KAAK,EAAE;gBACrE,QAAQ,EAAE,IAAI;gBACd,QAAQ,EAAE,QAAQ;gBAClB,IAAI,EAAE,GAAG;aACZ,CAAC,CAAC;QACP,CAAC;QACD,IAAI,EAAE,CAAC;IACX,CAAC;IAES,kBAAkB,CAAC,GAAyB;QAClD,MAAM,YAAY,GAAG,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC;QACxC,IAAI,YAAY,EAAE,CAAC;YACf,OAAO,MAAM,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,iCAAyB,CAAC,CAAC;QACjE,CAAC;QACD,OAAO,SAAS,CAAC;IACrB,CAAC;IAES,YAAY,CAAC,KAAa;QAChC,IAAI,CAAC;YACD,MAAM,QAAQ,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;YAC5C,MAAM,QAAQ,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,sBAAsB,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;YACxE,OAAO,QAAQ,CAAC,UAAU,KAAK,QAAQ,CAAC,UAAU,IAAI,MAAM,CAAC,eAAe,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;QACrG,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACb,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QACzB,CAAC;QACD,OAAO,KAAK,CAAC;IACjB,CAAC;CACJ,CAAA;AAtEY,8FAAyC;AAG/B;IADlB,IAAA,kBAAM,EAAC,8BAAsB,CAAC;;yFACmC;AAG/C;IADlB,IAAA,kBAAM,EAAC,4CAAsB,CAAC;sCACK,4CAAsB;kFAAC;oDANlD,yCAAyC;IADrD,IAAA,sBAAU,GAAE;GACA,yCAAyC,CAsErD;AAED;;GAEG;AACH,SAAgB,4BAA4B;IACxC,OAAO,EAAE,KAAK,EAAE,IAAA,mBAAY,GAAE,EAAE,CAAC;AACrC,CAAC"}
1
+ {"version":3,"file":"browser-connection-token.js","sourceRoot":"","sources":["../../../src/node/hosting/browser-connection-token.ts"],"names":[],"mappings":"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"}