@theia/workspace 1.68.0-next.7 → 1.68.0-next.79
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/lib/browser/quick-open-workspace.js +3 -4
- package/lib/browser/quick-open-workspace.js.map +1 -1
- package/lib/browser/workspace-breadcrumbs-contribution.js +3 -3
- package/lib/browser/workspace-breadcrumbs-contribution.js.map +1 -1
- package/lib/browser/workspace-commands.d.ts +1 -0
- package/lib/browser/workspace-commands.d.ts.map +1 -1
- package/lib/browser/workspace-commands.js +6 -2
- package/lib/browser/workspace-commands.js.map +1 -1
- package/lib/browser/workspace-frontend-contribution.d.ts +5 -1
- package/lib/browser/workspace-frontend-contribution.d.ts.map +1 -1
- package/lib/browser/workspace-frontend-contribution.js +48 -7
- package/lib/browser/workspace-frontend-contribution.js.map +1 -1
- package/lib/browser/workspace-frontend-module.d.ts +1 -0
- package/lib/browser/workspace-frontend-module.d.ts.map +1 -1
- package/lib/browser/workspace-frontend-module.js +2 -0
- package/lib/browser/workspace-frontend-module.js.map +1 -1
- package/lib/browser/workspace-schema-updater.d.ts.map +1 -1
- package/lib/browser/workspace-service.js +3 -5
- package/lib/browser/workspace-service.js.map +1 -1
- package/lib/browser/workspace-trust-dialog.d.ts +13 -0
- package/lib/browser/workspace-trust-dialog.d.ts.map +1 -0
- package/lib/browser/workspace-trust-dialog.js +66 -0
- package/lib/browser/workspace-trust-dialog.js.map +1 -0
- package/lib/browser/workspace-trust-service.d.ts +77 -1
- package/lib/browser/workspace-trust-service.d.ts.map +1 -1
- package/lib/browser/workspace-trust-service.js +322 -12
- package/lib/browser/workspace-trust-service.js.map +1 -1
- package/lib/browser/workspace-trust-service.spec.d.ts +2 -0
- package/lib/browser/workspace-trust-service.spec.d.ts.map +1 -0
- package/lib/browser/workspace-trust-service.spec.js +357 -0
- package/lib/browser/workspace-trust-service.spec.js.map +1 -0
- package/lib/browser/workspace-uri-contribution.js +1 -2
- package/lib/browser/workspace-uri-contribution.js.map +1 -1
- package/lib/browser/workspace-user-working-directory-provider.js +6 -5
- package/lib/browser/workspace-user-working-directory-provider.js.map +1 -1
- package/lib/common/untitled-workspace-service.d.ts +8 -1
- package/lib/common/untitled-workspace-service.d.ts.map +1 -1
- package/lib/common/untitled-workspace-service.js +22 -3
- package/lib/common/untitled-workspace-service.js.map +1 -1
- package/lib/common/workspace-preferences.js +3 -3
- package/lib/common/workspace-preferences.js.map +1 -1
- package/lib/common/workspace-trust-preferences.d.ts +2 -0
- package/lib/common/workspace-trust-preferences.d.ts.map +1 -1
- package/lib/common/workspace-trust-preferences.js +13 -3
- package/lib/common/workspace-trust-preferences.js.map +1 -1
- package/lib/node/default-workspace-server.d.ts +0 -1
- package/lib/node/default-workspace-server.d.ts.map +1 -1
- package/lib/node/default-workspace-server.js +2 -3
- package/lib/node/default-workspace-server.js.map +1 -1
- package/package.json +5 -5
- package/src/browser/style/index.css +75 -0
- package/src/browser/workspace-commands.ts +5 -0
- package/src/browser/workspace-frontend-contribution.ts +45 -2
- package/src/browser/workspace-frontend-module.ts +4 -1
- package/src/browser/workspace-trust-dialog.tsx +90 -0
- package/src/browser/workspace-trust-service.spec.ts +462 -0
- package/src/browser/workspace-trust-service.ts +381 -15
- package/src/common/untitled-workspace-service.ts +21 -2
- package/src/common/workspace-trust-preferences.ts +11 -0
|
@@ -0,0 +1,357 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
// *****************************************************************************
|
|
3
|
+
// Copyright (C) 2026 EclipseSource GmbH.
|
|
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 sinon = require("sinon");
|
|
20
|
+
const preferences_1 = require("@theia/core/lib/common/preferences");
|
|
21
|
+
const workspace_trust_service_1 = require("./workspace-trust-service");
|
|
22
|
+
const workspace_trust_preferences_1 = require("../common/workspace-trust-preferences");
|
|
23
|
+
const uri_1 = require("@theia/core/lib/common/uri");
|
|
24
|
+
class TestableWorkspaceTrustService extends workspace_trust_service_1.WorkspaceTrustService {
|
|
25
|
+
async testHandlePreferenceChange(change) {
|
|
26
|
+
return this.handlePreferenceChange(change);
|
|
27
|
+
}
|
|
28
|
+
async testHandleWorkspaceChanged() {
|
|
29
|
+
return this.handleWorkspaceChanged();
|
|
30
|
+
}
|
|
31
|
+
setCurrentTrust(trust) {
|
|
32
|
+
this.currentTrust = trust;
|
|
33
|
+
}
|
|
34
|
+
getCurrentTrust() {
|
|
35
|
+
return this.currentTrust;
|
|
36
|
+
}
|
|
37
|
+
isWorkspaceTrustResolved() {
|
|
38
|
+
return super.isWorkspaceTrustResolved();
|
|
39
|
+
}
|
|
40
|
+
async testCalculateWorkspaceTrust() {
|
|
41
|
+
return this.calculateWorkspaceTrust();
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
describe('WorkspaceTrustService', () => {
|
|
45
|
+
let service;
|
|
46
|
+
beforeEach(() => {
|
|
47
|
+
service = new TestableWorkspaceTrustService();
|
|
48
|
+
});
|
|
49
|
+
afterEach(() => {
|
|
50
|
+
sinon.restore();
|
|
51
|
+
});
|
|
52
|
+
describe('calculateWorkspaceTrust', () => {
|
|
53
|
+
let workspaceTrustPrefStub;
|
|
54
|
+
let workspaceServiceStub;
|
|
55
|
+
let untitledWorkspaceServiceStub;
|
|
56
|
+
let envVariablesServerStub;
|
|
57
|
+
beforeEach(() => {
|
|
58
|
+
workspaceTrustPrefStub = {
|
|
59
|
+
[workspace_trust_preferences_1.WORKSPACE_TRUST_ENABLED]: true,
|
|
60
|
+
[workspace_trust_preferences_1.WORKSPACE_TRUST_EMPTY_WINDOW]: false,
|
|
61
|
+
[workspace_trust_preferences_1.WORKSPACE_TRUST_STARTUP_PROMPT]: workspace_trust_preferences_1.WorkspaceTrustPrompt.NEVER,
|
|
62
|
+
[workspace_trust_preferences_1.WORKSPACE_TRUST_TRUSTED_FOLDERS]: []
|
|
63
|
+
};
|
|
64
|
+
workspaceServiceStub = {
|
|
65
|
+
tryGetRoots: () => [],
|
|
66
|
+
workspace: undefined,
|
|
67
|
+
saved: false
|
|
68
|
+
};
|
|
69
|
+
untitledWorkspaceServiceStub = {
|
|
70
|
+
isUntitledWorkspace: () => false
|
|
71
|
+
};
|
|
72
|
+
envVariablesServerStub = {
|
|
73
|
+
getConfigDirUri: async () => 'file:///home/user/.theia'
|
|
74
|
+
};
|
|
75
|
+
service.workspaceTrustPref = workspaceTrustPrefStub;
|
|
76
|
+
service.workspaceService = workspaceServiceStub;
|
|
77
|
+
service.untitledWorkspaceService = untitledWorkspaceServiceStub;
|
|
78
|
+
service.envVariablesServer = envVariablesServerStub;
|
|
79
|
+
});
|
|
80
|
+
it('should return true when trust is disabled', async () => {
|
|
81
|
+
workspaceTrustPrefStub[workspace_trust_preferences_1.WORKSPACE_TRUST_ENABLED] = false;
|
|
82
|
+
(0, chai_1.expect)(await service.testCalculateWorkspaceTrust()).to.be.true;
|
|
83
|
+
});
|
|
84
|
+
describe('empty workspace', () => {
|
|
85
|
+
it('should return emptyWindow setting when no workspace is open', async () => {
|
|
86
|
+
workspaceServiceStub.workspace = undefined;
|
|
87
|
+
workspaceTrustPrefStub[workspace_trust_preferences_1.WORKSPACE_TRUST_EMPTY_WINDOW] = true;
|
|
88
|
+
(0, chai_1.expect)(await service.testCalculateWorkspaceTrust()).to.be.true;
|
|
89
|
+
});
|
|
90
|
+
it('should return false when emptyWindow is false and no workspace', async () => {
|
|
91
|
+
workspaceServiceStub.workspace = undefined;
|
|
92
|
+
workspaceTrustPrefStub[workspace_trust_preferences_1.WORKSPACE_TRUST_EMPTY_WINDOW] = false;
|
|
93
|
+
(0, chai_1.expect)(await service.testCalculateWorkspaceTrust()).to.be.false;
|
|
94
|
+
});
|
|
95
|
+
it('should return emptyWindow setting for untitled workspace with no folders', async () => {
|
|
96
|
+
workspaceServiceStub.workspace = { resource: new uri_1.default('file:///home/user/.theia/workspaces/Untitled-123.theia-workspace') };
|
|
97
|
+
workspaceServiceStub.tryGetRoots = () => [];
|
|
98
|
+
untitledWorkspaceServiceStub.isUntitledWorkspace = () => true;
|
|
99
|
+
workspaceTrustPrefStub[workspace_trust_preferences_1.WORKSPACE_TRUST_EMPTY_WINDOW] = true;
|
|
100
|
+
(0, chai_1.expect)(await service.testCalculateWorkspaceTrust()).to.be.true;
|
|
101
|
+
});
|
|
102
|
+
it('should not treat saved workspace with no folders as empty', async () => {
|
|
103
|
+
workspaceServiceStub.workspace = { resource: new uri_1.default('file:///home/user/my.theia-workspace') };
|
|
104
|
+
workspaceServiceStub.tryGetRoots = () => [];
|
|
105
|
+
workspaceServiceStub.saved = true;
|
|
106
|
+
untitledWorkspaceServiceStub.isUntitledWorkspace = () => false;
|
|
107
|
+
workspaceTrustPrefStub[workspace_trust_preferences_1.WORKSPACE_TRUST_EMPTY_WINDOW] = true;
|
|
108
|
+
// Should return false because saved workspace with 0 folders is not "empty"
|
|
109
|
+
// and the workspace file is not trusted
|
|
110
|
+
(0, chai_1.expect)(await service.testCalculateWorkspaceTrust()).to.be.false;
|
|
111
|
+
});
|
|
112
|
+
});
|
|
113
|
+
describe('single-root workspace', () => {
|
|
114
|
+
it('should return true when folder is in trusted folders', async () => {
|
|
115
|
+
workspaceTrustPrefStub[workspace_trust_preferences_1.WORKSPACE_TRUST_TRUSTED_FOLDERS] = ['file:///home/user/project'];
|
|
116
|
+
workspaceServiceStub.workspace = { resource: new uri_1.default('file:///home/user/project') };
|
|
117
|
+
workspaceServiceStub.tryGetRoots = () => [
|
|
118
|
+
{ resource: new uri_1.default('file:///home/user/project') }
|
|
119
|
+
];
|
|
120
|
+
(0, chai_1.expect)(await service.testCalculateWorkspaceTrust()).to.be.true;
|
|
121
|
+
});
|
|
122
|
+
it('should return true when parent folder is trusted', async () => {
|
|
123
|
+
workspaceTrustPrefStub[workspace_trust_preferences_1.WORKSPACE_TRUST_TRUSTED_FOLDERS] = ['file:///home/user'];
|
|
124
|
+
workspaceServiceStub.workspace = { resource: new uri_1.default('file:///home/user/project') };
|
|
125
|
+
workspaceServiceStub.tryGetRoots = () => [
|
|
126
|
+
{ resource: new uri_1.default('file:///home/user/project') }
|
|
127
|
+
];
|
|
128
|
+
(0, chai_1.expect)(await service.testCalculateWorkspaceTrust()).to.be.true;
|
|
129
|
+
});
|
|
130
|
+
it('should return false when folder is not trusted', async () => {
|
|
131
|
+
workspaceTrustPrefStub[workspace_trust_preferences_1.WORKSPACE_TRUST_TRUSTED_FOLDERS] = ['file:///home/other'];
|
|
132
|
+
workspaceServiceStub.workspace = { resource: new uri_1.default('file:///home/user/project') };
|
|
133
|
+
workspaceServiceStub.tryGetRoots = () => [
|
|
134
|
+
{ resource: new uri_1.default('file:///home/user/project') }
|
|
135
|
+
];
|
|
136
|
+
(0, chai_1.expect)(await service.testCalculateWorkspaceTrust()).to.be.false;
|
|
137
|
+
});
|
|
138
|
+
});
|
|
139
|
+
describe('multi-root workspace', () => {
|
|
140
|
+
it('should return true when all folders are trusted', async () => {
|
|
141
|
+
workspaceTrustPrefStub[workspace_trust_preferences_1.WORKSPACE_TRUST_TRUSTED_FOLDERS] = [
|
|
142
|
+
'file:///home/user/project1',
|
|
143
|
+
'file:///home/user/project2'
|
|
144
|
+
];
|
|
145
|
+
workspaceServiceStub.workspace = { resource: new uri_1.default('file:///home/user/my.theia-workspace') };
|
|
146
|
+
workspaceServiceStub.tryGetRoots = () => [
|
|
147
|
+
{ resource: new uri_1.default('file:///home/user/project1') },
|
|
148
|
+
{ resource: new uri_1.default('file:///home/user/project2') }
|
|
149
|
+
];
|
|
150
|
+
(0, chai_1.expect)(await service.testCalculateWorkspaceTrust()).to.be.true;
|
|
151
|
+
});
|
|
152
|
+
it('should return false when one folder is not trusted', async () => {
|
|
153
|
+
workspaceTrustPrefStub[workspace_trust_preferences_1.WORKSPACE_TRUST_TRUSTED_FOLDERS] = ['file:///home/user/project1'];
|
|
154
|
+
workspaceServiceStub.workspace = { resource: new uri_1.default('file:///home/user/my.theia-workspace') };
|
|
155
|
+
workspaceServiceStub.tryGetRoots = () => [
|
|
156
|
+
{ resource: new uri_1.default('file:///home/user/project1') },
|
|
157
|
+
{ resource: new uri_1.default('file:///home/user/project2') }
|
|
158
|
+
];
|
|
159
|
+
(0, chai_1.expect)(await service.testCalculateWorkspaceTrust()).to.be.false;
|
|
160
|
+
});
|
|
161
|
+
it('should return true when parent folder covers all roots', async () => {
|
|
162
|
+
workspaceTrustPrefStub[workspace_trust_preferences_1.WORKSPACE_TRUST_TRUSTED_FOLDERS] = ['file:///home/user'];
|
|
163
|
+
workspaceServiceStub.workspace = { resource: new uri_1.default('file:///home/user/my.theia-workspace') };
|
|
164
|
+
workspaceServiceStub.tryGetRoots = () => [
|
|
165
|
+
{ resource: new uri_1.default('file:///home/user/project1') },
|
|
166
|
+
{ resource: new uri_1.default('file:///home/user/project2') }
|
|
167
|
+
];
|
|
168
|
+
(0, chai_1.expect)(await service.testCalculateWorkspaceTrust()).to.be.true;
|
|
169
|
+
});
|
|
170
|
+
});
|
|
171
|
+
describe('saved workspace file trust', () => {
|
|
172
|
+
it('should require workspace file to be trusted for saved workspaces', async () => {
|
|
173
|
+
// Folder is trusted but workspace file location is not
|
|
174
|
+
workspaceTrustPrefStub[workspace_trust_preferences_1.WORKSPACE_TRUST_TRUSTED_FOLDERS] = ['file:///home/user/project'];
|
|
175
|
+
workspaceServiceStub.workspace = { resource: new uri_1.default('file:///other/location/my.theia-workspace') };
|
|
176
|
+
workspaceServiceStub.saved = true;
|
|
177
|
+
workspaceServiceStub.tryGetRoots = () => [
|
|
178
|
+
{ resource: new uri_1.default('file:///home/user/project') }
|
|
179
|
+
];
|
|
180
|
+
(0, chai_1.expect)(await service.testCalculateWorkspaceTrust()).to.be.false;
|
|
181
|
+
});
|
|
182
|
+
it('should return true when both folder and workspace file are trusted', async () => {
|
|
183
|
+
workspaceTrustPrefStub[workspace_trust_preferences_1.WORKSPACE_TRUST_TRUSTED_FOLDERS] = ['file:///home/user'];
|
|
184
|
+
workspaceServiceStub.workspace = { resource: new uri_1.default('file:///home/user/my.theia-workspace') };
|
|
185
|
+
workspaceServiceStub.saved = true;
|
|
186
|
+
workspaceServiceStub.tryGetRoots = () => [
|
|
187
|
+
{ resource: new uri_1.default('file:///home/user/project') }
|
|
188
|
+
];
|
|
189
|
+
(0, chai_1.expect)(await service.testCalculateWorkspaceTrust()).to.be.true;
|
|
190
|
+
});
|
|
191
|
+
it('should not require workspace file trust for unsaved workspaces', async () => {
|
|
192
|
+
workspaceTrustPrefStub[workspace_trust_preferences_1.WORKSPACE_TRUST_TRUSTED_FOLDERS] = ['file:///home/user/project'];
|
|
193
|
+
workspaceServiceStub.workspace = { resource: new uri_1.default('file:///tmp/untitled.theia-workspace') };
|
|
194
|
+
workspaceServiceStub.saved = false;
|
|
195
|
+
workspaceServiceStub.tryGetRoots = () => [
|
|
196
|
+
{ resource: new uri_1.default('file:///home/user/project') }
|
|
197
|
+
];
|
|
198
|
+
(0, chai_1.expect)(await service.testCalculateWorkspaceTrust()).to.be.true;
|
|
199
|
+
});
|
|
200
|
+
});
|
|
201
|
+
});
|
|
202
|
+
describe('handleWorkspaceChanged', () => {
|
|
203
|
+
let resolveWorkspaceTrustStub;
|
|
204
|
+
let getWorkspaceTrustStub;
|
|
205
|
+
let updateRestrictedModeIndicatorStub;
|
|
206
|
+
beforeEach(() => {
|
|
207
|
+
resolveWorkspaceTrustStub = sinon.stub(service, 'resolveWorkspaceTrust').resolves();
|
|
208
|
+
getWorkspaceTrustStub = sinon.stub(service, 'getWorkspaceTrust').resolves(true);
|
|
209
|
+
updateRestrictedModeIndicatorStub = sinon.stub(service, 'updateRestrictedModeIndicator');
|
|
210
|
+
});
|
|
211
|
+
it('should reset trust state when workspace changes', async () => {
|
|
212
|
+
service.setCurrentTrust(true);
|
|
213
|
+
await service.testHandleWorkspaceChanged();
|
|
214
|
+
(0, chai_1.expect)(service.getCurrentTrust()).to.be.undefined;
|
|
215
|
+
});
|
|
216
|
+
it('should re-evaluate trust when workspace changes', async () => {
|
|
217
|
+
service.setCurrentTrust(true);
|
|
218
|
+
await service.testHandleWorkspaceChanged();
|
|
219
|
+
(0, chai_1.expect)(resolveWorkspaceTrustStub.calledOnce).to.be.true;
|
|
220
|
+
});
|
|
221
|
+
it('should update restricted mode indicator after workspace change if not trusted', async () => {
|
|
222
|
+
getWorkspaceTrustStub.resolves(false);
|
|
223
|
+
await service.testHandleWorkspaceChanged();
|
|
224
|
+
(0, chai_1.expect)(updateRestrictedModeIndicatorStub.calledOnceWith(false)).to.be.true;
|
|
225
|
+
});
|
|
226
|
+
it('should reset workspaceTrust deferred to unresolved state', async () => {
|
|
227
|
+
// First resolve the trust
|
|
228
|
+
service.setCurrentTrust(true);
|
|
229
|
+
await service.testHandleWorkspaceChanged();
|
|
230
|
+
// After workspace change, it should be reset and resolved again via resolveWorkspaceTrust
|
|
231
|
+
(0, chai_1.expect)(resolveWorkspaceTrustStub.calledOnce).to.be.true;
|
|
232
|
+
});
|
|
233
|
+
});
|
|
234
|
+
describe('handlePreferenceChange', () => {
|
|
235
|
+
let areAllWorkspaceUrisTrustedStub;
|
|
236
|
+
let setWorkspaceTrustStub;
|
|
237
|
+
let isEmptyWorkspaceStub;
|
|
238
|
+
let workspaceTrustPrefStub;
|
|
239
|
+
beforeEach(() => {
|
|
240
|
+
areAllWorkspaceUrisTrustedStub = sinon.stub(service, 'areAllWorkspaceUrisTrusted');
|
|
241
|
+
setWorkspaceTrustStub = sinon.stub(service, 'setWorkspaceTrust');
|
|
242
|
+
isEmptyWorkspaceStub = sinon.stub(service, 'isEmptyWorkspace');
|
|
243
|
+
// Mock workspaceTrustPref - default emptyWindow to false so trusted folders logic runs
|
|
244
|
+
workspaceTrustPrefStub = { [workspace_trust_preferences_1.WORKSPACE_TRUST_EMPTY_WINDOW]: false };
|
|
245
|
+
service.workspaceTrustPref = workspaceTrustPrefStub;
|
|
246
|
+
// Default to non-empty workspace
|
|
247
|
+
isEmptyWorkspaceStub.resolves(false);
|
|
248
|
+
});
|
|
249
|
+
it('should update trust to true when all workspace URIs become trusted', async () => {
|
|
250
|
+
service.setCurrentTrust(false);
|
|
251
|
+
areAllWorkspaceUrisTrustedStub.resolves(true);
|
|
252
|
+
const change = {
|
|
253
|
+
preferenceName: workspace_trust_preferences_1.WORKSPACE_TRUST_TRUSTED_FOLDERS,
|
|
254
|
+
scope: preferences_1.PreferenceScope.User,
|
|
255
|
+
domain: [],
|
|
256
|
+
affects: () => true
|
|
257
|
+
};
|
|
258
|
+
await service.testHandlePreferenceChange(change);
|
|
259
|
+
(0, chai_1.expect)(setWorkspaceTrustStub.calledOnceWith(true)).to.be.true;
|
|
260
|
+
});
|
|
261
|
+
it('should update trust to false when not all workspace URIs are trusted', async () => {
|
|
262
|
+
service.setCurrentTrust(true);
|
|
263
|
+
areAllWorkspaceUrisTrustedStub.resolves(false);
|
|
264
|
+
const change = {
|
|
265
|
+
preferenceName: workspace_trust_preferences_1.WORKSPACE_TRUST_TRUSTED_FOLDERS,
|
|
266
|
+
scope: preferences_1.PreferenceScope.User,
|
|
267
|
+
domain: [],
|
|
268
|
+
affects: () => true
|
|
269
|
+
};
|
|
270
|
+
await service.testHandlePreferenceChange(change);
|
|
271
|
+
(0, chai_1.expect)(setWorkspaceTrustStub.calledOnceWith(false)).to.be.true;
|
|
272
|
+
});
|
|
273
|
+
it('should not update trust when trustedFolders change does not affect trust status', async () => {
|
|
274
|
+
service.setCurrentTrust(false);
|
|
275
|
+
areAllWorkspaceUrisTrustedStub.resolves(false);
|
|
276
|
+
const change = {
|
|
277
|
+
preferenceName: workspace_trust_preferences_1.WORKSPACE_TRUST_TRUSTED_FOLDERS,
|
|
278
|
+
scope: preferences_1.PreferenceScope.User,
|
|
279
|
+
domain: [],
|
|
280
|
+
affects: () => true
|
|
281
|
+
};
|
|
282
|
+
await service.testHandlePreferenceChange(change);
|
|
283
|
+
(0, chai_1.expect)(setWorkspaceTrustStub.called).to.be.false;
|
|
284
|
+
});
|
|
285
|
+
describe('emptyWindow setting changes', () => {
|
|
286
|
+
beforeEach(() => {
|
|
287
|
+
// Reset to empty workspace for empty window tests
|
|
288
|
+
isEmptyWorkspaceStub.resolves(true);
|
|
289
|
+
});
|
|
290
|
+
it('should update trust to true when emptyWindow setting changes to true for empty window', async () => {
|
|
291
|
+
service.setCurrentTrust(false);
|
|
292
|
+
workspaceTrustPrefStub[workspace_trust_preferences_1.WORKSPACE_TRUST_EMPTY_WINDOW] = true;
|
|
293
|
+
const change = {
|
|
294
|
+
preferenceName: workspace_trust_preferences_1.WORKSPACE_TRUST_EMPTY_WINDOW,
|
|
295
|
+
scope: preferences_1.PreferenceScope.User,
|
|
296
|
+
domain: [],
|
|
297
|
+
affects: () => true
|
|
298
|
+
};
|
|
299
|
+
await service.testHandlePreferenceChange(change);
|
|
300
|
+
(0, chai_1.expect)(setWorkspaceTrustStub.calledOnceWith(true)).to.be.true;
|
|
301
|
+
});
|
|
302
|
+
it('should update trust to false when emptyWindow setting changes to false for empty window', async () => {
|
|
303
|
+
service.setCurrentTrust(true);
|
|
304
|
+
const change = {
|
|
305
|
+
preferenceName: workspace_trust_preferences_1.WORKSPACE_TRUST_EMPTY_WINDOW,
|
|
306
|
+
scope: preferences_1.PreferenceScope.User,
|
|
307
|
+
domain: [],
|
|
308
|
+
affects: () => true
|
|
309
|
+
};
|
|
310
|
+
await service.testHandlePreferenceChange(change);
|
|
311
|
+
(0, chai_1.expect)(setWorkspaceTrustStub.calledOnceWith(false)).to.be.true;
|
|
312
|
+
});
|
|
313
|
+
it('should not update trust when emptyWindow setting changes but workspace has roots', async () => {
|
|
314
|
+
service.setCurrentTrust(false);
|
|
315
|
+
isEmptyWorkspaceStub.resolves(false);
|
|
316
|
+
const change = {
|
|
317
|
+
preferenceName: workspace_trust_preferences_1.WORKSPACE_TRUST_EMPTY_WINDOW,
|
|
318
|
+
scope: preferences_1.PreferenceScope.User,
|
|
319
|
+
domain: [],
|
|
320
|
+
affects: () => true
|
|
321
|
+
};
|
|
322
|
+
await service.testHandlePreferenceChange(change);
|
|
323
|
+
(0, chai_1.expect)(setWorkspaceTrustStub.called).to.be.false;
|
|
324
|
+
});
|
|
325
|
+
it('should not update trust when emptyWindow setting changes but trust already matches', async () => {
|
|
326
|
+
service.setCurrentTrust(true);
|
|
327
|
+
workspaceTrustPrefStub[workspace_trust_preferences_1.WORKSPACE_TRUST_EMPTY_WINDOW] = true;
|
|
328
|
+
const change = {
|
|
329
|
+
preferenceName: workspace_trust_preferences_1.WORKSPACE_TRUST_EMPTY_WINDOW,
|
|
330
|
+
scope: preferences_1.PreferenceScope.User,
|
|
331
|
+
domain: [],
|
|
332
|
+
affects: () => true
|
|
333
|
+
};
|
|
334
|
+
await service.testHandlePreferenceChange(change);
|
|
335
|
+
(0, chai_1.expect)(setWorkspaceTrustStub.called).to.be.false;
|
|
336
|
+
});
|
|
337
|
+
});
|
|
338
|
+
describe('trustedFolders change for empty window with emptyWindow enabled', () => {
|
|
339
|
+
beforeEach(() => {
|
|
340
|
+
isEmptyWorkspaceStub.resolves(true);
|
|
341
|
+
workspaceTrustPrefStub[workspace_trust_preferences_1.WORKSPACE_TRUST_EMPTY_WINDOW] = true;
|
|
342
|
+
});
|
|
343
|
+
it('should not change trust when trustedFolders change for empty window with emptyWindow enabled', async () => {
|
|
344
|
+
service.setCurrentTrust(true);
|
|
345
|
+
const change = {
|
|
346
|
+
preferenceName: workspace_trust_preferences_1.WORKSPACE_TRUST_TRUSTED_FOLDERS,
|
|
347
|
+
scope: preferences_1.PreferenceScope.User,
|
|
348
|
+
domain: [],
|
|
349
|
+
affects: () => true
|
|
350
|
+
};
|
|
351
|
+
await service.testHandlePreferenceChange(change);
|
|
352
|
+
(0, chai_1.expect)(setWorkspaceTrustStub.called).to.be.false;
|
|
353
|
+
});
|
|
354
|
+
});
|
|
355
|
+
});
|
|
356
|
+
});
|
|
357
|
+
//# sourceMappingURL=workspace-trust-service.spec.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"workspace-trust-service.spec.js","sourceRoot":"","sources":["../../src/browser/workspace-trust-service.spec.ts"],"names":[],"mappings":"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"}
|
|
@@ -68,12 +68,11 @@ let WorkspaceUriLabelProviderContribution = class WorkspaceUriLabelProviderContr
|
|
|
68
68
|
return this.getLongName(uri.parent);
|
|
69
69
|
}
|
|
70
70
|
asURIIconReference(element) {
|
|
71
|
-
var _a;
|
|
72
71
|
if (files_1.FileStat.is(element)) {
|
|
73
72
|
return label_provider_1.URIIconReference.create(element.isDirectory ? 'folder' : 'file', element.resource);
|
|
74
73
|
}
|
|
75
74
|
const uri = this.getUri(element);
|
|
76
|
-
if (uri &&
|
|
75
|
+
if (uri && this.workspaceVariable.getWorkspaceRootUri(uri)?.isEqual(uri)) {
|
|
77
76
|
return label_provider_1.URIIconReference.create('folder', uri);
|
|
78
77
|
}
|
|
79
78
|
return element;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"workspace-uri-contribution.js","sourceRoot":"","sources":["../../src/browser/workspace-uri-contribution.ts"],"names":[],"mappings":";AAAA,gFAAgF;AAChF,yCAAyC;AACzC,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,2EAA+G;AAC/G,oDAA6C;AAC7C,4DAAiF;AACjF,8DAA8D;AAC9D,2DAAuD;AACvD,uFAAkF;AAG3E,IAAM,qCAAqC,GAA3C,MAAM,qCAAsC,SAAQ,oDAAmC;IAMjF,IAAI;QACT,gCAAgC;IACpC,CAAC;IAEQ,SAAS,CAAC,OAAe;QAC9B,IAAI,CAAC,OAAO,YAAY,aAAG,IAAI,OAAO,CAAC,MAAM,KAAK,MAAM,IAAI,iCAAgB,CAAC,EAAE,CAAC,OAAO,CAAC,IAAI,gBAAQ,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC;YAChH,OAAO,EAAE,CAAC;QACd,CAAC;QACD,OAAO,CAAC,CAAC;IACb,CAAC;IAEQ,OAAO,CAAC,OAA0C;QACvD,OAAO,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,kBAAkB,CAAC,OAAO,CAAC,CAAC,CAAC;IAC3D,CAAC;IAEQ,OAAO,CAAC,OAA0C;QACvD,OAAO,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,kBAAkB,CAAC,OAAO,CAAC,CAAC,CAAC;IAC3D,CAAC;IAED;;OAEG;IACM,WAAW,CAAC,OAA0C;QAC3D,MAAM,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QACjC,IAAI,GAAG,EAAE,CAAC;YACN,MAAM,UAAU,GAAG,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC;YAC5C,IAAI,UAAU,EAAE,CAAC;gBACb,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,UAAU,CAAC,CAAC;YAC3C,CAAC;QACL,CAAC;QACD,MAAM,YAAY,GAAG,GAAG,IAAI,IAAI,CAAC,iBAAiB,CAAC,wBAAwB,CAAC,GAAG,CAAC,CAAC;QACjF,OAAO,YAAY,IAAI,KAAK,CAAC,WAAW,CAAC,IAAI,CAAC,kBAAkB,CAAC,OAAO,CAAC,CAAC,CAAC;IAC/E,CAAC;IAEQ,UAAU,CAAC,OAA0C;QAC1D,MAAM,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QACjC,IAAI,CAAC,GAAG,EAAE,CAAC;YACP,OAAO,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;QACrC,CAAC;QACD,4HAA4H;QAC5H,MAAM,YAAY,GAAG,GAAG,IAAI,IAAI,CAAC,iBAAiB,CAAC,wBAAwB,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QACxF,IAAI,YAAY,KAAK,SAAS,EAAE,CAAC;YAC7B,MAAM,MAAM,GAAG,IAAI,CAAC,gBAAgB,CAAC,WAAW,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,iBAAiB,CAAC,mBAAmB,CAAC,GAAG,CAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;YACpI,MAAM,SAAS,GAAG,MAAM,IAAI,YAAY,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;YACtD,OAAO,MAAM,GAAG,SAAS,GAAG,YAAY,CAAC;QAC7C,CAAC;QACD,OAAO,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IACxC,CAAC;IAES,kBAAkB,CAAC,OAA0C
|
|
1
|
+
{"version":3,"file":"workspace-uri-contribution.js","sourceRoot":"","sources":["../../src/browser/workspace-uri-contribution.ts"],"names":[],"mappings":";AAAA,gFAAgF;AAChF,yCAAyC;AACzC,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,2EAA+G;AAC/G,oDAA6C;AAC7C,4DAAiF;AACjF,8DAA8D;AAC9D,2DAAuD;AACvD,uFAAkF;AAG3E,IAAM,qCAAqC,GAA3C,MAAM,qCAAsC,SAAQ,oDAAmC;IAMjF,IAAI;QACT,gCAAgC;IACpC,CAAC;IAEQ,SAAS,CAAC,OAAe;QAC9B,IAAI,CAAC,OAAO,YAAY,aAAG,IAAI,OAAO,CAAC,MAAM,KAAK,MAAM,IAAI,iCAAgB,CAAC,EAAE,CAAC,OAAO,CAAC,IAAI,gBAAQ,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC;YAChH,OAAO,EAAE,CAAC;QACd,CAAC;QACD,OAAO,CAAC,CAAC;IACb,CAAC;IAEQ,OAAO,CAAC,OAA0C;QACvD,OAAO,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,kBAAkB,CAAC,OAAO,CAAC,CAAC,CAAC;IAC3D,CAAC;IAEQ,OAAO,CAAC,OAA0C;QACvD,OAAO,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,kBAAkB,CAAC,OAAO,CAAC,CAAC,CAAC;IAC3D,CAAC;IAED;;OAEG;IACM,WAAW,CAAC,OAA0C;QAC3D,MAAM,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QACjC,IAAI,GAAG,EAAE,CAAC;YACN,MAAM,UAAU,GAAG,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC;YAC5C,IAAI,UAAU,EAAE,CAAC;gBACb,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,UAAU,CAAC,CAAC;YAC3C,CAAC;QACL,CAAC;QACD,MAAM,YAAY,GAAG,GAAG,IAAI,IAAI,CAAC,iBAAiB,CAAC,wBAAwB,CAAC,GAAG,CAAC,CAAC;QACjF,OAAO,YAAY,IAAI,KAAK,CAAC,WAAW,CAAC,IAAI,CAAC,kBAAkB,CAAC,OAAO,CAAC,CAAC,CAAC;IAC/E,CAAC;IAEQ,UAAU,CAAC,OAA0C;QAC1D,MAAM,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QACjC,IAAI,CAAC,GAAG,EAAE,CAAC;YACP,OAAO,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;QACrC,CAAC;QACD,4HAA4H;QAC5H,MAAM,YAAY,GAAG,GAAG,IAAI,IAAI,CAAC,iBAAiB,CAAC,wBAAwB,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QACxF,IAAI,YAAY,KAAK,SAAS,EAAE,CAAC;YAC7B,MAAM,MAAM,GAAG,IAAI,CAAC,gBAAgB,CAAC,WAAW,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,iBAAiB,CAAC,mBAAmB,CAAC,GAAG,CAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;YACpI,MAAM,SAAS,GAAG,MAAM,IAAI,YAAY,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;YACtD,OAAO,MAAM,GAAG,SAAS,GAAG,YAAY,CAAC;QAC7C,CAAC;QACD,OAAO,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IACxC,CAAC;IAES,kBAAkB,CAAC,OAA0C;QACnE,IAAI,gBAAQ,CAAC,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC;YACvB,OAAO,iCAAgB,CAAC,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC;QAC9F,CAAC;QACD,MAAM,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QACjC,IAAI,GAAG,IAAI,IAAI,CAAC,iBAAiB,CAAC,mBAAmB,CAAC,GAAG,CAAC,EAAE,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;YACvE,OAAO,iCAAgB,CAAC,MAAM,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;QAClD,CAAC;QACD,OAAO,OAAO,CAAC;IACnB,CAAC;IAEkB,MAAM,CAAC,OAA0C;QAChE,IAAI,gBAAQ,CAAC,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC;YACvB,OAAO,OAAO,CAAC,QAAQ,CAAC;QAC5B,CAAC;QACD,OAAO,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IACjC,CAAC;CACJ,CAAA;AAxEY,sFAAqC;AAEY;IAAzD,IAAA,kBAAM,EAAC,+DAA6B,CAAC;sCAAuC,+DAA6B;gFAAC;AAC9D;IAA5C,IAAA,kBAAM,EAAC,oCAAgB,CAAC;sCAAsC,oCAAgB;+EAAC;AAGvE;IADR,IAAA,yBAAa,GAAE;;;;iEAGf;gDARQ,qCAAqC;IADjD,IAAA,sBAAU,GAAE;GACA,qCAAqC,CAwEjD"}
|
|
@@ -23,12 +23,13 @@ const workspace_service_1 = require("./workspace-service");
|
|
|
23
23
|
const file_service_1 = require("@theia/filesystem/lib/browser/file-service");
|
|
24
24
|
let WorkspaceUserWorkingDirectoryProvider = class WorkspaceUserWorkingDirectoryProvider extends user_working_directory_provider_1.UserWorkingDirectoryProvider {
|
|
25
25
|
async getUserWorkingDir() {
|
|
26
|
-
|
|
27
|
-
|
|
26
|
+
return await this.getFromSelection()
|
|
27
|
+
?? await this.getFromLastOpenResource()
|
|
28
|
+
?? await this.getFromWorkspace()
|
|
29
|
+
?? this.getFromUserHome();
|
|
28
30
|
}
|
|
29
31
|
getFromWorkspace() {
|
|
30
|
-
|
|
31
|
-
return (_a = this.workspaceService.tryGetRoots()[0]) === null || _a === void 0 ? void 0 : _a.resource;
|
|
32
|
+
return this.workspaceService.tryGetRoots()[0]?.resource;
|
|
32
33
|
}
|
|
33
34
|
async ensureIsDirectory(uri) {
|
|
34
35
|
if (uri) {
|
|
@@ -36,7 +37,7 @@ let WorkspaceUserWorkingDirectoryProvider = class WorkspaceUserWorkingDirectoryP
|
|
|
36
37
|
const stat = await this.fileService.resolve(asFile)
|
|
37
38
|
.catch(() => this.fileService.resolve(asFile.parent))
|
|
38
39
|
.catch(() => undefined);
|
|
39
|
-
return
|
|
40
|
+
return stat?.isDirectory ? stat.resource : stat?.resource.parent;
|
|
40
41
|
}
|
|
41
42
|
}
|
|
42
43
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"workspace-user-working-directory-provider.js","sourceRoot":"","sources":["../../src/browser/workspace-user-working-directory-provider.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,4DAAkE;AAClE,6GAAuG;AAEvG,2DAAuD;AAEvD,6EAAyE;AAGlE,IAAM,qCAAqC,GAA3C,MAAM,qCAAsC,SAAQ,8DAA4B;IAI1E,KAAK,CAAC,iBAAiB
|
|
1
|
+
{"version":3,"file":"workspace-user-working-directory-provider.js","sourceRoot":"","sources":["../../src/browser/workspace-user-working-directory-provider.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,4DAAkE;AAClE,6GAAuG;AAEvG,2DAAuD;AAEvD,6EAAyE;AAGlE,IAAM,qCAAqC,GAA3C,MAAM,qCAAsC,SAAQ,8DAA4B;IAI1E,KAAK,CAAC,iBAAiB;QAC5B,OAAO,MAAM,IAAI,CAAC,gBAAgB,EAAE;eAC7B,MAAM,IAAI,CAAC,uBAAuB,EAAE;eACpC,MAAM,IAAI,CAAC,gBAAgB,EAAE;eAC7B,IAAI,CAAC,eAAe,EAAE,CAAC;IAClC,CAAC;IAES,gBAAgB;QACtB,OAAO,IAAI,CAAC,gBAAgB,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,QAAQ,CAAC;IAC5D,CAAC;IAEkB,KAAK,CAAC,iBAAiB,CAAC,GAAS;QAChD,IAAI,GAAG,EAAE,CAAC;YACN,MAAM,MAAM,GAAG,GAAG,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;YACtC,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,MAAM,CAAC;iBAC9C,KAAK,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;iBACpD,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC;YAC5B,OAAO,IAAI,EAAE,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,EAAE,QAAQ,CAAC,MAAM,CAAC;QACrE,CAAC;IACL,CAAC;CACJ,CAAA;AAxBY,sFAAqC;AACD;IAA5C,IAAA,kBAAM,EAAC,oCAAgB,CAAC;sCAAsC,oCAAgB;+EAAC;AACxC;IAAvC,IAAA,kBAAM,EAAC,0BAAW,CAAC;sCAAiC,0BAAW;0EAAC;gDAFxD,qCAAqC;IADjD,IAAA,sBAAU,GAAE;GACA,qCAAqC,CAwBjD"}
|
|
@@ -3,7 +3,14 @@ import { MaybePromise } from '@theia/core';
|
|
|
3
3
|
import { WorkspaceFileService } from './workspace-file-service';
|
|
4
4
|
export declare class UntitledWorkspaceService {
|
|
5
5
|
protected readonly workspaceFileService: WorkspaceFileService;
|
|
6
|
-
|
|
6
|
+
/**
|
|
7
|
+
* Check if a URI is an untitled workspace.
|
|
8
|
+
* @param candidate The URI to check
|
|
9
|
+
* @param configDirUri Optional config directory URI. If provided, also verifies
|
|
10
|
+
* that the candidate is under the expected workspaces directory.
|
|
11
|
+
* This is the secure check and should be used when possible.
|
|
12
|
+
*/
|
|
13
|
+
isUntitledWorkspace(candidate?: URI, configDirUri?: URI): boolean;
|
|
7
14
|
getUntitledWorkspaceUri(configDirUri: URI, isAcceptable: (candidate: URI) => MaybePromise<boolean>, warnOnHits?: () => unknown): Promise<URI>;
|
|
8
15
|
}
|
|
9
16
|
//# sourceMappingURL=untitled-workspace-service.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"untitled-workspace-service.d.ts","sourceRoot":"","sources":["../../src/common/untitled-workspace-service.ts"],"names":[],"mappings":"AAgBA,OAAO,GAAG,MAAM,4BAA4B,CAAC;AAE7C,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AAEhE,qBACa,wBAAwB;IAGjC,SAAS,CAAC,QAAQ,CAAC,oBAAoB,EAAE,oBAAoB,CAAC;IAE9D,mBAAmB,CAAC,SAAS,CAAC,EAAE,GAAG,GAAG,OAAO;
|
|
1
|
+
{"version":3,"file":"untitled-workspace-service.d.ts","sourceRoot":"","sources":["../../src/common/untitled-workspace-service.ts"],"names":[],"mappings":"AAgBA,OAAO,GAAG,MAAM,4BAA4B,CAAC;AAE7C,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AAEhE,qBACa,wBAAwB;IAGjC,SAAS,CAAC,QAAQ,CAAC,oBAAoB,EAAE,oBAAoB,CAAC;IAE9D;;;;;;OAMG;IACH,mBAAmB,CAAC,SAAS,CAAC,EAAE,GAAG,EAAE,YAAY,CAAC,EAAE,GAAG,GAAG,OAAO;IAgB3D,uBAAuB,CAAC,YAAY,EAAE,GAAG,EAAE,YAAY,EAAE,CAAC,SAAS,EAAE,GAAG,KAAK,YAAY,CAAC,OAAO,CAAC,EAAE,UAAU,CAAC,EAAE,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC;CAkBtJ"}
|
|
@@ -20,8 +20,27 @@ const tslib_1 = require("tslib");
|
|
|
20
20
|
const inversify_1 = require("@theia/core/shared/inversify");
|
|
21
21
|
const workspace_file_service_1 = require("./workspace-file-service");
|
|
22
22
|
let UntitledWorkspaceService = class UntitledWorkspaceService {
|
|
23
|
-
|
|
24
|
-
|
|
23
|
+
/**
|
|
24
|
+
* Check if a URI is an untitled workspace.
|
|
25
|
+
* @param candidate The URI to check
|
|
26
|
+
* @param configDirUri Optional config directory URI. If provided, also verifies
|
|
27
|
+
* that the candidate is under the expected workspaces directory.
|
|
28
|
+
* This is the secure check and should be used when possible.
|
|
29
|
+
*/
|
|
30
|
+
isUntitledWorkspace(candidate, configDirUri) {
|
|
31
|
+
if (!candidate || !this.workspaceFileService.isWorkspaceFile(candidate)) {
|
|
32
|
+
return false;
|
|
33
|
+
}
|
|
34
|
+
if (!candidate.path.base.startsWith('Untitled')) {
|
|
35
|
+
return false;
|
|
36
|
+
}
|
|
37
|
+
// If configDirUri is provided, verify the candidate is in the expected location
|
|
38
|
+
if (configDirUri) {
|
|
39
|
+
const expectedParentDir = configDirUri.resolve('workspaces');
|
|
40
|
+
return expectedParentDir.isEqualOrParent(candidate);
|
|
41
|
+
}
|
|
42
|
+
// Without configDirUri, fall back to name-only check (less secure)
|
|
43
|
+
return true;
|
|
25
44
|
}
|
|
26
45
|
async getUntitledWorkspaceUri(configDirUri, isAcceptable, warnOnHits) {
|
|
27
46
|
const parentDir = configDirUri.resolve('workspaces');
|
|
@@ -33,7 +52,7 @@ let UntitledWorkspaceService = class UntitledWorkspaceService {
|
|
|
33
52
|
attempts++;
|
|
34
53
|
uri = parentDir.resolve(`Untitled-${Math.round(Math.random() * 1000)}.${defaultFileExtension}`);
|
|
35
54
|
if (attempts === 10) {
|
|
36
|
-
warnOnHits
|
|
55
|
+
warnOnHits?.();
|
|
37
56
|
}
|
|
38
57
|
if (attempts === 50) {
|
|
39
58
|
throw new Error('Workspace Service: too many attempts to find unused filename.');
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"untitled-workspace-service.js","sourceRoot":"","sources":["../../src/common/untitled-workspace-service.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;;;;AAGhF,4DAAkE;AAElE,qEAAgE;AAGzD,IAAM,wBAAwB,GAA9B,MAAM,wBAAwB;IAKjC,mBAAmB,CAAC,SAAe;
|
|
1
|
+
{"version":3,"file":"untitled-workspace-service.js","sourceRoot":"","sources":["../../src/common/untitled-workspace-service.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;;;;AAGhF,4DAAkE;AAElE,qEAAgE;AAGzD,IAAM,wBAAwB,GAA9B,MAAM,wBAAwB;IAKjC;;;;;;OAMG;IACH,mBAAmB,CAAC,SAAe,EAAE,YAAkB;QACnD,IAAI,CAAC,SAAS,IAAI,CAAC,IAAI,CAAC,oBAAoB,CAAC,eAAe,CAAC,SAAS,CAAC,EAAE,CAAC;YACtE,OAAO,KAAK,CAAC;QACjB,CAAC;QACD,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;YAC9C,OAAO,KAAK,CAAC;QACjB,CAAC;QACD,gFAAgF;QAChF,IAAI,YAAY,EAAE,CAAC;YACf,MAAM,iBAAiB,GAAG,YAAY,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;YAC7D,OAAO,iBAAiB,CAAC,eAAe,CAAC,SAAS,CAAC,CAAC;QACxD,CAAC;QACD,mEAAmE;QACnE,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,KAAK,CAAC,uBAAuB,CAAC,YAAiB,EAAE,YAAuD,EAAE,UAA0B;QAChI,MAAM,SAAS,GAAG,YAAY,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;QACrD,MAAM,mBAAmB,GAAG,IAAI,CAAC,oBAAoB,CAAC,0BAA0B,EAAE,CAAC;QACnF,MAAM,oBAAoB,GAAG,mBAAmB,CAAC,IAAI,CAAC,oBAAoB,CAAC,oBAAoB,CAAC,CAAC;QACjG,IAAI,GAAG,CAAC;QACR,IAAI,QAAQ,GAAG,CAAC,CAAC;QACjB,GAAG,CAAC;YACA,QAAQ,EAAE,CAAC;YACX,GAAG,GAAG,SAAS,CAAC,OAAO,CAAC,YAAY,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,IAAI,CAAC,IAAI,oBAAoB,EAAE,CAAC,CAAC;YAChG,IAAI,QAAQ,KAAK,EAAE,EAAE,CAAC;gBAClB,UAAU,EAAE,EAAE,CAAC;YACnB,CAAC;YACD,IAAI,QAAQ,KAAK,EAAE,EAAE,CAAC;gBAClB,MAAM,IAAI,KAAK,CAAC,+DAA+D,CAAC,CAAC;YACrF,CAAC;QACL,CAAC,QAAQ,CAAC,CAAC,MAAM,YAAY,CAAC,GAAG,CAAC,CAAC,EAAE;QACrC,OAAO,GAAG,CAAC;IACf,CAAC;CACJ,CAAA;AA9CY,4DAAwB;AAGd;IADlB,IAAA,kBAAM,EAAC,6CAAoB,CAAC;sCACY,6CAAoB;sEAAC;mCAHrD,wBAAwB;IADpC,IAAA,sBAAU,GAAE;GACA,wBAAwB,CA8CpC"}
|
|
@@ -15,7 +15,9 @@
|
|
|
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.
|
|
18
|
+
exports.WorkspacePreferences = exports.WorkspacePreferenceContribution = exports.workspacePreferenceSchema = void 0;
|
|
19
|
+
exports.createWorkspacePreferences = createWorkspacePreferences;
|
|
20
|
+
exports.bindWorkspacePreferences = bindWorkspacePreferences;
|
|
19
21
|
const preferences_1 = require("@theia/core/lib/common/preferences");
|
|
20
22
|
const nls_1 = require("@theia/core/lib/common/nls");
|
|
21
23
|
exports.workspacePreferenceSchema = {
|
|
@@ -32,7 +34,6 @@ exports.WorkspacePreferences = Symbol('WorkspacePreferences');
|
|
|
32
34
|
function createWorkspacePreferences(preferences, schema = exports.workspacePreferenceSchema) {
|
|
33
35
|
return (0, preferences_1.createPreferenceProxy)(preferences, schema);
|
|
34
36
|
}
|
|
35
|
-
exports.createWorkspacePreferences = createWorkspacePreferences;
|
|
36
37
|
function bindWorkspacePreferences(bind) {
|
|
37
38
|
bind(exports.WorkspacePreferences).toDynamicValue(ctx => {
|
|
38
39
|
const preferences = ctx.container.get(preferences_1.PreferenceService);
|
|
@@ -42,5 +43,4 @@ function bindWorkspacePreferences(bind) {
|
|
|
42
43
|
bind(exports.WorkspacePreferenceContribution).toConstantValue({ schema: exports.workspacePreferenceSchema });
|
|
43
44
|
bind(preferences_1.PreferenceContribution).toService(exports.WorkspacePreferenceContribution);
|
|
44
45
|
}
|
|
45
|
-
exports.bindWorkspacePreferences = bindWorkspacePreferences;
|
|
46
46
|
//# sourceMappingURL=workspace-preferences.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"workspace-preferences.js","sourceRoot":"","sources":["../../src/common/workspace-preferences.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;;;
|
|
1
|
+
{"version":3,"file":"workspace-preferences.js","sourceRoot":"","sources":["../../src/common/workspace-preferences.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;;;AAwBhF,gEAEC;AAED,4DAQC;AAjCD,oEAAyJ;AACzJ,oDAAiD;AAEpC,QAAA,yBAAyB,GAAqB;IACvD,UAAU,EAAE;QACR,0BAA0B,EAAE;YACxB,WAAW,EAAE,SAAG,CAAC,QAAQ,CAAC,gCAAgC,EAAE,8CAA8C,CAAC;YAC3G,IAAI,EAAE,SAAS;YACf,OAAO,EAAE,KAAK;SACjB;KACJ;CACJ,CAAC;AAMW,QAAA,+BAA+B,GAAG,MAAM,CAAC,iCAAiC,CAAC,CAAC;AAC5E,QAAA,oBAAoB,GAAG,MAAM,CAAC,sBAAsB,CAAC,CAAC;AAGnE,SAAgB,0BAA0B,CAAC,WAA8B,EAAE,SAA2B,iCAAyB;IAC3H,OAAO,IAAA,mCAAqB,EAAC,WAAW,EAAE,MAAM,CAAC,CAAC;AACtD,CAAC;AAED,SAAgB,wBAAwB,CAAC,IAAqB;IAC1D,IAAI,CAAC,4BAAoB,CAAC,CAAC,cAAc,CAAC,GAAG,CAAC,EAAE;QAC5C,MAAM,WAAW,GAAG,GAAG,CAAC,SAAS,CAAC,GAAG,CAAoB,+BAAiB,CAAC,CAAC;QAC5E,MAAM,YAAY,GAAG,GAAG,CAAC,SAAS,CAAC,GAAG,CAAyB,uCAA+B,CAAC,CAAC;QAChG,OAAO,0BAA0B,CAAC,WAAW,EAAE,YAAY,CAAC,MAAM,CAAC,CAAC;IACxE,CAAC,CAAC,CAAC,gBAAgB,EAAE,CAAC;IACtB,IAAI,CAAC,uCAA+B,CAAC,CAAC,eAAe,CAAC,EAAE,MAAM,EAAE,iCAAyB,EAAE,CAAC,CAAC;IAC7F,IAAI,CAAC,oCAAsB,CAAC,CAAC,SAAS,CAAC,uCAA+B,CAAC,CAAC;AAC5E,CAAC"}
|
|
@@ -3,6 +3,7 @@ import { interfaces } from '@theia/core/shared/inversify';
|
|
|
3
3
|
export declare const WORKSPACE_TRUST_ENABLED = "security.workspace.trust.enabled";
|
|
4
4
|
export declare const WORKSPACE_TRUST_STARTUP_PROMPT = "security.workspace.trust.startupPrompt";
|
|
5
5
|
export declare const WORKSPACE_TRUST_EMPTY_WINDOW = "security.workspace.trust.emptyWindow";
|
|
6
|
+
export declare const WORKSPACE_TRUST_TRUSTED_FOLDERS = "security.workspace.trust.trustedFolders";
|
|
6
7
|
export declare enum WorkspaceTrustPrompt {
|
|
7
8
|
ALWAYS = "always",
|
|
8
9
|
ONCE = "once",
|
|
@@ -13,6 +14,7 @@ export interface WorkspaceTrustConfiguration {
|
|
|
13
14
|
[WORKSPACE_TRUST_ENABLED]: boolean;
|
|
14
15
|
[WORKSPACE_TRUST_STARTUP_PROMPT]: WorkspaceTrustPrompt;
|
|
15
16
|
[WORKSPACE_TRUST_EMPTY_WINDOW]: boolean;
|
|
17
|
+
[WORKSPACE_TRUST_TRUSTED_FOLDERS]: string[];
|
|
16
18
|
}
|
|
17
19
|
export declare const WorkspaceTrustPreferenceContribution: unique symbol;
|
|
18
20
|
export declare const WorkspaceTrustPreferences: unique symbol;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"workspace-trust-preferences.d.ts","sourceRoot":"","sources":["../../src/common/workspace-trust-preferences.ts"],"names":[],"mappings":"AAgBA,OAAO,EAAyB,eAAe,EAAmB,iBAAiB,EAA0B,gBAAgB,EAAE,MAAM,oCAAoC,CAAC;AAE1K,OAAO,EAAE,UAAU,EAAE,MAAM,8BAA8B,CAAC;AAE1D,eAAO,MAAM,uBAAuB,qCAAqC,CAAC;AAC1E,eAAO,MAAM,8BAA8B,2CAA2C,CAAC;AACvF,eAAO,MAAM,4BAA4B,yCAAyC,CAAC;
|
|
1
|
+
{"version":3,"file":"workspace-trust-preferences.d.ts","sourceRoot":"","sources":["../../src/common/workspace-trust-preferences.ts"],"names":[],"mappings":"AAgBA,OAAO,EAAyB,eAAe,EAAmB,iBAAiB,EAA0B,gBAAgB,EAAE,MAAM,oCAAoC,CAAC;AAE1K,OAAO,EAAE,UAAU,EAAE,MAAM,8BAA8B,CAAC;AAE1D,eAAO,MAAM,uBAAuB,qCAAqC,CAAC;AAC1E,eAAO,MAAM,8BAA8B,2CAA2C,CAAC;AACvF,eAAO,MAAM,4BAA4B,yCAAyC,CAAC;AACnF,eAAO,MAAM,+BAA+B,4CAA4C,CAAC;AAEzF,oBAAY,oBAAoB;IAC5B,MAAM,WAAW;IACjB,IAAI,SAAS;IACb,KAAK,UAAU;CAClB;AAED,eAAO,MAAM,8BAA8B,EAAE,gBA4B5C,CAAC;AAEF,MAAM,WAAW,2BAA2B;IACxC,CAAC,uBAAuB,CAAC,EAAE,OAAO,CAAC;IACnC,CAAC,8BAA8B,CAAC,EAAE,oBAAoB,CAAC;IACvD,CAAC,4BAA4B,CAAC,EAAE,OAAO,CAAC;IACxC,CAAC,+BAA+B,CAAC,EAAE,MAAM,EAAE,CAAC;CAC/C;AAED,eAAO,MAAM,oCAAoC,eAAiD,CAAC;AACnG,eAAO,MAAM,yBAAyB,eAAsC,CAAC;AAC7E,MAAM,MAAM,yBAAyB,GAAG,eAAe,CAAC,2BAA2B,CAAC,CAAC;AAErF,wBAAgB,+BAA+B,CAAC,WAAW,EAAE,iBAAiB,EAAE,MAAM,GAAE,gBAAiD,GAAG,yBAAyB,CAEpK;AAED,wBAAgB,6BAA6B,CAAC,IAAI,EAAE,UAAU,CAAC,IAAI,GAAG,IAAI,CAQzE"}
|