@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.
- package/README.md +4 -4
- package/lib/browser/catalog.json +300 -36
- package/lib/browser/common-frontend-contribution.d.ts.map +1 -1
- package/lib/browser/common-frontend-contribution.js +1 -2
- package/lib/browser/common-frontend-contribution.js.map +1 -1
- package/lib/browser/keybinding.d.ts.map +1 -1
- package/lib/browser/keybinding.js +12 -7
- package/lib/browser/keybinding.js.map +1 -1
- package/lib/browser/preferences/preference-contribution.d.ts.map +1 -1
- package/lib/browser/preferences/preference-contribution.js +9 -1
- package/lib/browser/preferences/preference-contribution.js.map +1 -1
- package/lib/browser/preferences/preference-service.spec.js +63 -0
- package/lib/browser/preferences/preference-service.spec.js.map +1 -1
- package/lib/browser/shell/application-shell.d.ts.map +1 -1
- package/lib/browser/shell/application-shell.js +19 -26
- package/lib/browser/shell/application-shell.js.map +1 -1
- package/lib/browser/tree/tree-widget.d.ts +7 -33
- package/lib/browser/tree/tree-widget.d.ts.map +1 -1
- package/lib/browser/tree/tree-widget.js +7 -54
- package/lib/browser/tree/tree-widget.js.map +1 -1
- package/lib/browser/widgets/select-component.d.ts +2 -2
- package/lib/browser/widgets/select-component.d.ts.map +1 -1
- package/lib/browser/widgets/select-component.js +42 -12
- package/lib/browser/widgets/select-component.js.map +1 -1
- package/lib/common/preferences/index.d.ts +1 -0
- package/lib/common/preferences/index.d.ts.map +1 -1
- package/lib/common/preferences/index.js +1 -0
- package/lib/common/preferences/index.js.map +1 -1
- package/lib/common/preferences/preference-scope.d.ts +6 -1
- package/lib/common/preferences/preference-scope.d.ts.map +1 -1
- package/lib/common/preferences/preference-scope.js +5 -0
- package/lib/common/preferences/preference-scope.js.map +1 -1
- package/lib/common/preferences/preference-scope.spec.js +5 -3
- package/lib/common/preferences/preference-scope.spec.js.map +1 -1
- package/lib/common/preferences/preference-service.d.ts +19 -0
- package/lib/common/preferences/preference-service.d.ts.map +1 -1
- package/lib/common/preferences/preference-service.js +34 -5
- package/lib/common/preferences/preference-service.js.map +1 -1
- package/lib/common/preferences/session-preference-provider.d.ts +17 -0
- package/lib/common/preferences/session-preference-provider.d.ts.map +1 -0
- package/lib/common/preferences/session-preference-provider.js +77 -0
- package/lib/common/preferences/session-preference-provider.js.map +1 -0
- package/lib/common/preferences/session-preference-provider.spec.d.ts +2 -0
- package/lib/common/preferences/session-preference-provider.spec.d.ts.map +1 -0
- package/lib/common/preferences/session-preference-provider.spec.js +71 -0
- package/lib/common/preferences/session-preference-provider.spec.js.map +1 -0
- package/lib/electron-node/hosting/electron-backend-hosting-module.d.ts.map +1 -1
- package/lib/electron-node/hosting/electron-backend-hosting-module.js +7 -0
- package/lib/electron-node/hosting/electron-backend-hosting-module.js.map +1 -1
- package/lib/electron-node/hosting/electron-backend-hosting-module.spec.d.ts +2 -0
- package/lib/electron-node/hosting/electron-backend-hosting-module.spec.d.ts.map +1 -0
- package/lib/electron-node/hosting/electron-backend-hosting-module.spec.js +39 -0
- package/lib/electron-node/hosting/electron-backend-hosting-module.spec.js.map +1 -0
- package/lib/node/hosting/backend-hosting-module.d.ts.map +1 -1
- package/lib/node/hosting/backend-hosting-module.js +4 -1
- package/lib/node/hosting/backend-hosting-module.js.map +1 -1
- package/lib/node/hosting/browser-connection-token.d.ts +29 -1
- package/lib/node/hosting/browser-connection-token.d.ts.map +1 -1
- package/lib/node/hosting/browser-connection-token.js +25 -1
- package/lib/node/hosting/browser-connection-token.js.map +1 -1
- package/lib/node/hosting/browser-connection-token.spec.js +70 -0
- package/lib/node/hosting/browser-connection-token.spec.js.map +1 -1
- package/lib/node/index.d.ts +1 -0
- package/lib/node/index.d.ts.map +1 -1
- package/lib/node/index.js +3 -1
- package/lib/node/index.js.map +1 -1
- package/package.json +9 -9
- package/src/browser/common-frontend-contribution.ts +1 -2
- package/src/browser/keybinding.ts +12 -7
- package/src/browser/preferences/preference-contribution.ts +9 -1
- package/src/browser/preferences/preference-service.spec.ts +72 -0
- package/src/browser/shell/application-shell.ts +19 -25
- package/src/browser/style/select-component.css +16 -0
- package/src/browser/style/sidepanel.css +5 -0
- package/src/browser/style/status-bar.css +1 -1
- package/src/browser/tree/tree-widget.tsx +12 -78
- package/src/browser/widgets/select-component.tsx +41 -12
- package/src/common/preferences/index.ts +1 -0
- package/src/common/preferences/preference-scope.spec.ts +5 -3
- package/src/common/preferences/preference-scope.ts +6 -1
- package/src/common/preferences/preference-service.ts +39 -5
- package/src/common/preferences/session-preference-provider.spec.ts +78 -0
- package/src/common/preferences/session-preference-provider.ts +69 -0
- package/src/electron-node/hosting/electron-backend-hosting-module.spec.ts +42 -0
- package/src/electron-node/hosting/electron-backend-hosting-module.ts +8 -0
- package/src/node/hosting/backend-hosting-module.ts +5 -2
- package/src/node/hosting/browser-connection-token.spec.ts +92 -0
- package/src/node/hosting/browser-connection-token.ts +45 -1
- 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
|
|
239
|
-
|
|
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
|
-
|
|
283
|
-
|
|
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 @@
|
|
|
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;;
|
|
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;
|
|
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 @@
|
|
|
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,
|
|
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
|
|
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,
|
|
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
|
|
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;;;
|
|
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;;;AAyJhF,oEAEC;;AAzJD,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;AAMrD,QAAA,uBAAuB,GAAG,MAAM,CAAC,yBAAyB,CAAC,CAAC;AAoBzE;;;;;;;;;;;;;;;;GAgBG;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;IAED;;;OAGG;IACH,eAAe,CAAC,GAAoB,EAAE,GAAqB,EAAE,IAA0B;QACnF,IAAI,mBAAW,CAAC,QAAQ,CAAC,EAAE,EAAE,EAAE,CAAC;YAC5B,IAAI,EAAE,CAAC;YACP,OAAO;QACX,CAAC;QACD,MAAM,KAAK,GAAG,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,CAAC;QAC3C,IAAI,KAAK,IAAI,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,EAAE,CAAC;YACpC,IAAI,EAAE,CAAC;YACP,OAAO;QACX,CAAC;QACD,uFAAuF;QACvF,8FAA8F;QAC9F,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;IACxB,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;AAzFY,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,CAyFrD;AAED;;GAEG;AACH,SAAgB,4BAA4B;IACxC,OAAO,EAAE,KAAK,EAAE,IAAA,mBAAY,GAAE,EAAE,CAAC;AACrC,CAAC"}
|