@theia/workspace 1.68.0 → 1.68.1
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/index.d.ts +1 -0
- package/lib/browser/index.d.ts.map +1 -1
- package/lib/browser/index.js +1 -0
- package/lib/browser/index.js.map +1 -1
- package/lib/browser/metadata-storage/index.d.ts +18 -0
- package/lib/browser/metadata-storage/index.d.ts.map +1 -0
- package/lib/browser/metadata-storage/index.js +25 -0
- package/lib/browser/metadata-storage/index.js.map +1 -0
- package/lib/browser/metadata-storage/workspace-metadata-storage-service.d.ts +94 -0
- package/lib/browser/metadata-storage/workspace-metadata-storage-service.d.ts.map +1 -0
- package/lib/browser/metadata-storage/workspace-metadata-storage-service.js +191 -0
- package/lib/browser/metadata-storage/workspace-metadata-storage-service.js.map +1 -0
- package/lib/browser/metadata-storage/workspace-metadata-storage-service.spec.d.ts +17 -0
- package/lib/browser/metadata-storage/workspace-metadata-storage-service.spec.d.ts.map +1 -0
- package/lib/browser/metadata-storage/workspace-metadata-storage-service.spec.js +279 -0
- package/lib/browser/metadata-storage/workspace-metadata-storage-service.spec.js.map +1 -0
- package/lib/browser/metadata-storage/workspace-metadata-store.d.ts +81 -0
- package/lib/browser/metadata-storage/workspace-metadata-store.d.ts.map +1 -0
- package/lib/browser/metadata-storage/workspace-metadata-store.js +137 -0
- package/lib/browser/metadata-storage/workspace-metadata-store.js.map +1 -0
- package/lib/browser/workspace-frontend-module.d.ts.map +1 -1
- package/lib/browser/workspace-frontend-module.js +6 -0
- package/lib/browser/workspace-frontend-module.js.map +1 -1
- package/lib/browser/workspace-trust-service.d.ts.map +1 -1
- package/lib/browser/workspace-trust-service.js +4 -4
- package/lib/browser/workspace-trust-service.js.map +1 -1
- package/package.json +6 -6
- package/src/browser/index.ts +1 -0
- package/src/browser/metadata-storage/index.ts +23 -0
- package/src/browser/metadata-storage/workspace-metadata-storage-service.spec.ts +342 -0
- package/src/browser/metadata-storage/workspace-metadata-storage-service.ts +244 -0
- package/src/browser/metadata-storage/workspace-metadata-store.ts +172 -0
- package/src/browser/workspace-frontend-module.ts +7 -0
- package/src/browser/workspace-trust-service.ts +4 -5
|
@@ -0,0 +1,279 @@
|
|
|
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 jsdom_1 = require("@theia/core/lib/browser/test/jsdom");
|
|
19
|
+
let disableJSDOM = (0, jsdom_1.enableJSDOM)();
|
|
20
|
+
const frontend_application_config_provider_1 = require("@theia/core/lib/browser/frontend-application-config-provider");
|
|
21
|
+
frontend_application_config_provider_1.FrontendApplicationConfigProvider.set({});
|
|
22
|
+
const inversify_1 = require("@theia/core/shared/inversify");
|
|
23
|
+
const chai_1 = require("chai");
|
|
24
|
+
const sinon = require("sinon");
|
|
25
|
+
const env_variables_1 = require("@theia/core/lib/common/env-variables");
|
|
26
|
+
const logger_1 = require("@theia/core/lib/common/logger");
|
|
27
|
+
const uri_1 = require("@theia/core/lib/common/uri");
|
|
28
|
+
const buffer_1 = require("@theia/core/lib/common/buffer");
|
|
29
|
+
const file_service_1 = require("@theia/filesystem/lib/browser/file-service");
|
|
30
|
+
const workspace_service_1 = require("../workspace-service");
|
|
31
|
+
const workspace_metadata_storage_service_1 = require("./workspace-metadata-storage-service");
|
|
32
|
+
const workspace_metadata_store_1 = require("./workspace-metadata-store");
|
|
33
|
+
const uuid = require("@theia/core/lib/common/uuid");
|
|
34
|
+
disableJSDOM();
|
|
35
|
+
before(() => disableJSDOM = (0, jsdom_1.enableJSDOM)());
|
|
36
|
+
after(() => disableJSDOM());
|
|
37
|
+
describe('WorkspaceMetadataStorageService', () => {
|
|
38
|
+
let service;
|
|
39
|
+
let fileService;
|
|
40
|
+
let workspaceService;
|
|
41
|
+
let envVariableServer;
|
|
42
|
+
let logger;
|
|
43
|
+
let container;
|
|
44
|
+
let generateUuidStub;
|
|
45
|
+
const configDir = '/home/user/.theia';
|
|
46
|
+
const workspaceRootPath = '/home/user/my-workspace';
|
|
47
|
+
const workspaceRootUri = new uri_1.URI(`file://${workspaceRootPath}`);
|
|
48
|
+
beforeEach(() => {
|
|
49
|
+
// Create container for DI
|
|
50
|
+
container = new inversify_1.Container();
|
|
51
|
+
// Create mocks
|
|
52
|
+
fileService = {
|
|
53
|
+
exists: sinon.stub(),
|
|
54
|
+
readFile: sinon.stub(),
|
|
55
|
+
writeFile: sinon.stub(),
|
|
56
|
+
createFolder: sinon.stub(),
|
|
57
|
+
delete: sinon.stub(),
|
|
58
|
+
};
|
|
59
|
+
// Create workspace service with stubs
|
|
60
|
+
workspaceService = new workspace_service_1.WorkspaceService();
|
|
61
|
+
sinon.stub(workspaceService, 'tryGetRoots').returns([{
|
|
62
|
+
resource: workspaceRootUri,
|
|
63
|
+
isDirectory: true
|
|
64
|
+
}]);
|
|
65
|
+
envVariableServer = {
|
|
66
|
+
getConfigDirUri: sinon.stub().resolves(`file://${configDir}`)
|
|
67
|
+
};
|
|
68
|
+
logger = {
|
|
69
|
+
debug: sinon.stub(),
|
|
70
|
+
info: sinon.stub(),
|
|
71
|
+
warn: sinon.stub(),
|
|
72
|
+
error: sinon.stub(),
|
|
73
|
+
};
|
|
74
|
+
// Bind to container
|
|
75
|
+
container.bind(file_service_1.FileService).toConstantValue(fileService);
|
|
76
|
+
container.bind(workspace_service_1.WorkspaceService).toConstantValue(workspaceService);
|
|
77
|
+
container.bind(env_variables_1.EnvVariablesServer).toConstantValue(envVariableServer);
|
|
78
|
+
container.bind(logger_1.ILogger).toConstantValue(logger).whenTargetNamed('WorkspaceMetadataStorage');
|
|
79
|
+
container.bind(workspace_metadata_store_1.WorkspaceMetadataStoreImpl).toSelf();
|
|
80
|
+
container.bind(workspace_metadata_storage_service_1.WorkspaceMetadataStoreFactory).toFactory(ctx => () => ctx.container.get(workspace_metadata_store_1.WorkspaceMetadataStoreImpl));
|
|
81
|
+
container.bind(workspace_metadata_storage_service_1.WorkspaceMetadataStorageServiceImpl).toSelf();
|
|
82
|
+
service = container.get(workspace_metadata_storage_service_1.WorkspaceMetadataStorageServiceImpl);
|
|
83
|
+
// Stub UUID generation
|
|
84
|
+
generateUuidStub = sinon.stub(uuid, 'generateUuid');
|
|
85
|
+
// Default file service behavior
|
|
86
|
+
fileService.exists.resolves(false);
|
|
87
|
+
fileService.createFolder.resolves({
|
|
88
|
+
resource: new uri_1.URI('file:///dummy'),
|
|
89
|
+
isFile: false,
|
|
90
|
+
isDirectory: true,
|
|
91
|
+
isSymbolicLink: false,
|
|
92
|
+
mtime: Date.now(),
|
|
93
|
+
ctime: Date.now(),
|
|
94
|
+
etag: 'dummy',
|
|
95
|
+
size: 0
|
|
96
|
+
});
|
|
97
|
+
fileService.writeFile.resolves({
|
|
98
|
+
resource: new uri_1.URI('file:///dummy'),
|
|
99
|
+
isFile: true,
|
|
100
|
+
isDirectory: false,
|
|
101
|
+
isSymbolicLink: false,
|
|
102
|
+
mtime: Date.now(),
|
|
103
|
+
ctime: Date.now(),
|
|
104
|
+
etag: 'dummy',
|
|
105
|
+
size: 0
|
|
106
|
+
});
|
|
107
|
+
});
|
|
108
|
+
afterEach(() => {
|
|
109
|
+
sinon.restore();
|
|
110
|
+
});
|
|
111
|
+
describe('getOrCreateStore', () => {
|
|
112
|
+
it('should create a new store with a unique key', async () => {
|
|
113
|
+
const testUuid = 'test-uuid-1234';
|
|
114
|
+
generateUuidStub.returns(testUuid);
|
|
115
|
+
const store = await service.getOrCreateStore('my-feature');
|
|
116
|
+
(0, chai_1.expect)(store).to.exist;
|
|
117
|
+
(0, chai_1.expect)(store.key).to.equal('my-feature');
|
|
118
|
+
(0, chai_1.expect)(store.location.toString()).to.equal(`file://${configDir}/workspace-metadata/${testUuid}/my-feature`);
|
|
119
|
+
});
|
|
120
|
+
it('should return existing store if key already exists', async () => {
|
|
121
|
+
const testUuid = 'test-uuid-1234';
|
|
122
|
+
generateUuidStub.returns(testUuid);
|
|
123
|
+
const store1 = await service.getOrCreateStore('my-feature');
|
|
124
|
+
const store2 = await service.getOrCreateStore('my-feature');
|
|
125
|
+
(0, chai_1.expect)(store1).to.equal(store2);
|
|
126
|
+
});
|
|
127
|
+
it('should throw error if no workspace is open', async () => {
|
|
128
|
+
workspaceService.tryGetRoots.returns([]);
|
|
129
|
+
try {
|
|
130
|
+
await service.getOrCreateStore('my-feature');
|
|
131
|
+
chai_1.expect.fail('Should have thrown error for no workspace');
|
|
132
|
+
}
|
|
133
|
+
catch (error) {
|
|
134
|
+
(0, chai_1.expect)(error.message).to.contain('no workspace is currently open');
|
|
135
|
+
}
|
|
136
|
+
});
|
|
137
|
+
it('should mangle keys with special characters', async () => {
|
|
138
|
+
const testUuid = 'test-uuid-1234';
|
|
139
|
+
generateUuidStub.returns(testUuid);
|
|
140
|
+
const store = await service.getOrCreateStore('my/feature.name');
|
|
141
|
+
(0, chai_1.expect)(store.key).to.equal('my-feature-name');
|
|
142
|
+
(0, chai_1.expect)(store.location.toString()).to.equal(`file://${configDir}/workspace-metadata/${testUuid}/my-feature-name`);
|
|
143
|
+
});
|
|
144
|
+
it('should generate and store UUID for new workspace', async () => {
|
|
145
|
+
const testUuid = 'test-uuid-1234';
|
|
146
|
+
generateUuidStub.returns(testUuid);
|
|
147
|
+
await service.getOrCreateStore('my-feature');
|
|
148
|
+
// Check that writeFile was called to save the index
|
|
149
|
+
(0, chai_1.expect)(fileService.writeFile.calledOnce).to.be.true;
|
|
150
|
+
const writeCall = fileService.writeFile.getCall(0);
|
|
151
|
+
const indexUri = writeCall.args[0];
|
|
152
|
+
const content = writeCall.args[1].toString();
|
|
153
|
+
(0, chai_1.expect)(indexUri.toString()).to.equal(`file://${configDir}/workspace-metadata/index.json`);
|
|
154
|
+
const index = JSON.parse(content);
|
|
155
|
+
(0, chai_1.expect)(index[workspaceRootPath]).to.equal(testUuid);
|
|
156
|
+
});
|
|
157
|
+
it('should reuse existing UUID for known workspace', async () => {
|
|
158
|
+
const existingUuid = 'existing-uuid-5678';
|
|
159
|
+
const indexContent = JSON.stringify({
|
|
160
|
+
[workspaceRootPath]: existingUuid
|
|
161
|
+
});
|
|
162
|
+
fileService.exists.resolves(true);
|
|
163
|
+
fileService.readFile.resolves({
|
|
164
|
+
resource: new uri_1.URI(`file://${configDir}/workspace-metadata/index.json`),
|
|
165
|
+
value: buffer_1.BinaryBuffer.fromString(indexContent)
|
|
166
|
+
});
|
|
167
|
+
const store = await service.getOrCreateStore('my-feature');
|
|
168
|
+
(0, chai_1.expect)(store.location.toString()).to.equal(`file://${configDir}/workspace-metadata/${existingUuid}/my-feature`);
|
|
169
|
+
// Should not write index again since UUID already existed
|
|
170
|
+
(0, chai_1.expect)(fileService.writeFile.called).to.be.false;
|
|
171
|
+
});
|
|
172
|
+
it('should handle multiple stores with different keys', async () => {
|
|
173
|
+
generateUuidStub.returns('test-uuid-1234');
|
|
174
|
+
const store1 = await service.getOrCreateStore('feature-1');
|
|
175
|
+
const store2 = await service.getOrCreateStore('feature-2');
|
|
176
|
+
(0, chai_1.expect)(store1.key).to.equal('feature-1');
|
|
177
|
+
(0, chai_1.expect)(store2.key).to.equal('feature-2');
|
|
178
|
+
(0, chai_1.expect)(store1.location.toString()).to.not.equal(store2.location.toString());
|
|
179
|
+
});
|
|
180
|
+
it('should allow recreating store with same key after disposal', async () => {
|
|
181
|
+
generateUuidStub.returns('test-uuid-1234');
|
|
182
|
+
const store1 = await service.getOrCreateStore('my-feature');
|
|
183
|
+
(0, chai_1.expect)(store1.key).to.equal('my-feature');
|
|
184
|
+
store1.dispose();
|
|
185
|
+
// Should not throw - the key should be available again
|
|
186
|
+
const store2 = await service.getOrCreateStore('my-feature');
|
|
187
|
+
(0, chai_1.expect)(store2.key).to.equal('my-feature');
|
|
188
|
+
(0, chai_1.expect)(store2).to.not.equal(store1);
|
|
189
|
+
});
|
|
190
|
+
});
|
|
191
|
+
describe('key mangling', () => {
|
|
192
|
+
beforeEach(() => {
|
|
193
|
+
generateUuidStub.returns('test-uuid');
|
|
194
|
+
});
|
|
195
|
+
it('should replace forward slashes with hyphens', async () => {
|
|
196
|
+
const store = await service.getOrCreateStore('path/to/feature');
|
|
197
|
+
(0, chai_1.expect)(store.key).to.equal('path-to-feature');
|
|
198
|
+
});
|
|
199
|
+
it('should replace dots with hyphens', async () => {
|
|
200
|
+
const store = await service.getOrCreateStore('my.feature.name');
|
|
201
|
+
(0, chai_1.expect)(store.key).to.equal('my-feature-name');
|
|
202
|
+
});
|
|
203
|
+
it('should replace spaces with hyphens', async () => {
|
|
204
|
+
const store = await service.getOrCreateStore('my feature name');
|
|
205
|
+
(0, chai_1.expect)(store.key).to.equal('my-feature-name');
|
|
206
|
+
});
|
|
207
|
+
it('should preserve alphanumeric characters, hyphens, and underscores', async () => {
|
|
208
|
+
const store = await service.getOrCreateStore('My_Feature-123');
|
|
209
|
+
(0, chai_1.expect)(store.key).to.equal('My_Feature-123');
|
|
210
|
+
});
|
|
211
|
+
it('should replace multiple special characters', async () => {
|
|
212
|
+
const store = await service.getOrCreateStore('!@#$%^&*()');
|
|
213
|
+
(0, chai_1.expect)(store.key).to.equal('----------');
|
|
214
|
+
});
|
|
215
|
+
});
|
|
216
|
+
describe('index management', () => {
|
|
217
|
+
it('should handle missing index file', async () => {
|
|
218
|
+
generateUuidStub.returns('new-uuid');
|
|
219
|
+
fileService.exists.resolves(false);
|
|
220
|
+
const store = await service.getOrCreateStore('feature');
|
|
221
|
+
(0, chai_1.expect)(store).to.exist;
|
|
222
|
+
(0, chai_1.expect)(fileService.writeFile.calledOnce).to.be.true;
|
|
223
|
+
});
|
|
224
|
+
it('should handle corrupted index file', async () => {
|
|
225
|
+
generateUuidStub.returns('new-uuid');
|
|
226
|
+
fileService.exists.resolves(true);
|
|
227
|
+
fileService.readFile.resolves({
|
|
228
|
+
resource: new uri_1.URI(`file://${configDir}/workspace-metadata/index.json`),
|
|
229
|
+
value: buffer_1.BinaryBuffer.fromString('{ invalid json')
|
|
230
|
+
});
|
|
231
|
+
const store = await service.getOrCreateStore('feature');
|
|
232
|
+
(0, chai_1.expect)(store).to.exist;
|
|
233
|
+
(0, chai_1.expect)(logger.warn.calledOnce).to.be.true;
|
|
234
|
+
});
|
|
235
|
+
it('should create metadata root directory when saving index', async () => {
|
|
236
|
+
generateUuidStub.returns('test-uuid');
|
|
237
|
+
await service.getOrCreateStore('feature');
|
|
238
|
+
(0, chai_1.expect)(fileService.createFolder.calledOnce).to.be.true;
|
|
239
|
+
const createCall = fileService.createFolder.getCall(0);
|
|
240
|
+
const createdUri = createCall.args[0];
|
|
241
|
+
(0, chai_1.expect)(createdUri.toString()).to.equal(`file://${configDir}/workspace-metadata`);
|
|
242
|
+
});
|
|
243
|
+
});
|
|
244
|
+
describe('workspace changes', () => {
|
|
245
|
+
it('should update store location when workspace root changes', async () => {
|
|
246
|
+
const uuid1 = 'workspace-1-uuid';
|
|
247
|
+
const uuid2 = 'workspace-2-uuid';
|
|
248
|
+
let uuidCallCount = 0;
|
|
249
|
+
generateUuidStub.callsFake(() => {
|
|
250
|
+
uuidCallCount++;
|
|
251
|
+
return uuidCallCount === 1 ? uuid1 : uuid2;
|
|
252
|
+
});
|
|
253
|
+
const store = await service.getOrCreateStore('feature');
|
|
254
|
+
const initialLocation = store.location.toString();
|
|
255
|
+
// Simulate workspace change
|
|
256
|
+
const newWorkspaceRoot = new uri_1.URI('file:///home/user/other-workspace');
|
|
257
|
+
workspaceService.tryGetRoots.returns([{
|
|
258
|
+
resource: newWorkspaceRoot,
|
|
259
|
+
isDirectory: true
|
|
260
|
+
}]);
|
|
261
|
+
// Track location changes
|
|
262
|
+
let locationChanged = false;
|
|
263
|
+
let newLocation;
|
|
264
|
+
store.onDidChangeLocation(uri => {
|
|
265
|
+
locationChanged = true;
|
|
266
|
+
newLocation = uri;
|
|
267
|
+
});
|
|
268
|
+
// Trigger workspace change via the protected emitter
|
|
269
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
270
|
+
workspaceService['onWorkspaceChangeEmitter'].fire([]);
|
|
271
|
+
// Wait for async updates
|
|
272
|
+
await new Promise(resolve => setTimeout(resolve, 10));
|
|
273
|
+
(0, chai_1.expect)(locationChanged).to.be.true;
|
|
274
|
+
(0, chai_1.expect)(newLocation?.toString()).to.not.equal(initialLocation);
|
|
275
|
+
(0, chai_1.expect)(newLocation?.toString()).to.contain(uuid2);
|
|
276
|
+
});
|
|
277
|
+
});
|
|
278
|
+
});
|
|
279
|
+
//# sourceMappingURL=workspace-metadata-storage-service.spec.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"workspace-metadata-storage-service.spec.js","sourceRoot":"","sources":["../../../src/browser/metadata-storage/workspace-metadata-storage-service.spec.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
/********************************************************************************
|
|
2
|
+
* Copyright (C) 2026 EclipseSource and others.
|
|
3
|
+
*
|
|
4
|
+
* This program and the accompanying materials are made available under the
|
|
5
|
+
* terms of the Eclipse Public License v. 2.0 which is available at
|
|
6
|
+
* http://www.eclipse.org/legal/epl-2.0.
|
|
7
|
+
*
|
|
8
|
+
* This Source Code may also be made available under the following Secondary
|
|
9
|
+
* Licenses when the conditions for such availability set forth in the Eclipse
|
|
10
|
+
* Public License v. 2.0 are satisfied: GNU General Public License, version 2
|
|
11
|
+
* with the GNU Classpath Exception which is available at
|
|
12
|
+
* https://www.gnu.org/software/classpath/license.html.
|
|
13
|
+
*
|
|
14
|
+
* SPDX-License-Identifier: EPL-2.0 OR GPL-2.0-only WITH Classpath-exception-2.0
|
|
15
|
+
********************************************************************************/
|
|
16
|
+
import { FileService } from '@theia/filesystem/lib/browser/file-service';
|
|
17
|
+
import { ILogger, Emitter, Event, Disposable, DisposableCollection, URI } from '@theia/core/lib/common';
|
|
18
|
+
import { WorkspaceService } from '../workspace-service';
|
|
19
|
+
/**
|
|
20
|
+
* Represents a metadata store for a specific key within a workspace.
|
|
21
|
+
* The store provides access to a dedicated directory for storing workspace-specific metadata.
|
|
22
|
+
*/
|
|
23
|
+
export interface WorkspaceMetadataStore extends Disposable {
|
|
24
|
+
/**
|
|
25
|
+
* The key identifying this metadata store.
|
|
26
|
+
*/
|
|
27
|
+
readonly key: string;
|
|
28
|
+
/**
|
|
29
|
+
* The URI location of the metadata store directory.
|
|
30
|
+
*/
|
|
31
|
+
readonly location: URI;
|
|
32
|
+
/**
|
|
33
|
+
* Event that fires when the location of the metadata store changes.
|
|
34
|
+
* It is the client's responsibility to reload or reinitialize any metadata from
|
|
35
|
+
* or in the new location.
|
|
36
|
+
*/
|
|
37
|
+
readonly onDidChangeLocation: Event<URI>;
|
|
38
|
+
/**
|
|
39
|
+
* Ensures that the metadata store directory exists on disk.
|
|
40
|
+
* Creates the directory if it doesn't exist.
|
|
41
|
+
*/
|
|
42
|
+
ensureExists(): Promise<void>;
|
|
43
|
+
/**
|
|
44
|
+
* Deletes the metadata store directory and all of its contents.
|
|
45
|
+
*/
|
|
46
|
+
delete(): Promise<void>;
|
|
47
|
+
}
|
|
48
|
+
/**
|
|
49
|
+
* Implementation of WorkspaceMetadataStore.
|
|
50
|
+
* @internal
|
|
51
|
+
*/
|
|
52
|
+
export declare class WorkspaceMetadataStoreImpl implements WorkspaceMetadataStore {
|
|
53
|
+
protected readonly fileService: FileService;
|
|
54
|
+
protected readonly workspaceService: WorkspaceService;
|
|
55
|
+
protected readonly logger: ILogger;
|
|
56
|
+
protected readonly toDispose: DisposableCollection;
|
|
57
|
+
protected readonly onDidChangeLocationEmitter: Emitter<URI>;
|
|
58
|
+
readonly onDidChangeLocation: Event<URI>;
|
|
59
|
+
protected _location: URI;
|
|
60
|
+
protected _key: string;
|
|
61
|
+
protected currentWorkspaceRoot?: URI;
|
|
62
|
+
protected locationProvider: () => Promise<URI>;
|
|
63
|
+
protected onDisposeCallback?: () => void;
|
|
64
|
+
get location(): URI;
|
|
65
|
+
get key(): string;
|
|
66
|
+
/**
|
|
67
|
+
* Initializes the WorkspaceMetadataStore.
|
|
68
|
+
* @param key The key identifying this store
|
|
69
|
+
* @param initialLocation The initial location URI
|
|
70
|
+
* @param locationProvider Function to resolve the current location based on workspace changes
|
|
71
|
+
* @param onDispose Callback invoked when the store is disposed
|
|
72
|
+
*/
|
|
73
|
+
initialize(key: string, initialLocation: URI, locationProvider: () => Promise<URI>, onDispose?: () => void): void;
|
|
74
|
+
protected init(): void;
|
|
75
|
+
protected handleWorkspaceChange(): Promise<void>;
|
|
76
|
+
protected getFirstWorkspaceRoot(): URI | undefined;
|
|
77
|
+
ensureExists(): Promise<void>;
|
|
78
|
+
delete(): Promise<void>;
|
|
79
|
+
dispose(): void;
|
|
80
|
+
}
|
|
81
|
+
//# sourceMappingURL=workspace-metadata-store.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"workspace-metadata-store.d.ts","sourceRoot":"","sources":["../../../src/browser/metadata-storage/workspace-metadata-store.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;kFAckF;AAGlF,OAAO,EAAE,WAAW,EAAE,MAAM,4CAA4C,CAAC;AACzE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,UAAU,EAAE,oBAAoB,EAAE,GAAG,EAAE,MAAM,wBAAwB,CAAC;AACxG,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAExD;;;GAGG;AACH,MAAM,WAAW,sBAAuB,SAAQ,UAAU;IACtD;;OAEG;IACH,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IAErB;;OAEG;IACH,QAAQ,CAAC,QAAQ,EAAE,GAAG,CAAC;IAEvB;;;;OAIG;IACH,QAAQ,CAAC,mBAAmB,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC;IAEzC;;;OAGG;IACH,YAAY,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAE9B;;OAEG;IACH,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CAC3B;AAED;;;GAGG;AACH,qBACa,0BAA2B,YAAW,sBAAsB;IAGrE,SAAS,CAAC,QAAQ,CAAC,WAAW,EAAE,WAAW,CAAC;IAG5C,SAAS,CAAC,QAAQ,CAAC,gBAAgB,EAAE,gBAAgB,CAAC;IAGtD,SAAS,CAAC,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;IAEnC,SAAS,CAAC,QAAQ,CAAC,SAAS,uBAA8B;IAE1D,SAAS,CAAC,QAAQ,CAAC,0BAA0B,eAAsB;IACnE,QAAQ,CAAC,mBAAmB,EAAE,KAAK,CAAC,GAAG,CAAC,CAAyC;IAEjF,SAAS,CAAC,SAAS,EAAE,GAAG,CAAC;IACzB,SAAS,CAAC,IAAI,EAAE,MAAM,CAAC;IACvB,SAAS,CAAC,oBAAoB,CAAC,EAAE,GAAG,CAAC;IACrC,SAAS,CAAC,gBAAgB,EAAE,MAAM,OAAO,CAAC,GAAG,CAAC,CAAC;IAC/C,SAAS,CAAC,iBAAiB,CAAC,EAAE,MAAM,IAAI,CAAC;IAEzC,IAAI,QAAQ,IAAI,GAAG,CAElB;IAED,IAAI,GAAG,IAAI,MAAM,CAEhB;IAED;;;;;;OAMG;IACH,UAAU,CAAC,GAAG,EAAE,MAAM,EAAE,eAAe,EAAE,GAAG,EAAE,gBAAgB,EAAE,MAAM,OAAO,CAAC,GAAG,CAAC,EAAE,SAAS,CAAC,EAAE,MAAM,IAAI,GAAG,IAAI;IASjH,SAAS,CAAC,IAAI,IAAI,IAAI;cAON,qBAAqB,IAAI,OAAO,CAAC,IAAI,CAAC;IAsBtD,SAAS,CAAC,qBAAqB,IAAI,GAAG,GAAG,SAAS;IAK5C,YAAY,IAAI,OAAO,CAAC,IAAI,CAAC;IAY7B,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC;IAe7B,OAAO,IAAI,IAAI;CAIlB"}
|
|
@@ -0,0 +1,137 @@
|
|
|
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.WorkspaceMetadataStoreImpl = void 0;
|
|
19
|
+
const tslib_1 = require("tslib");
|
|
20
|
+
const inversify_1 = require("@theia/core/shared/inversify");
|
|
21
|
+
const file_service_1 = require("@theia/filesystem/lib/browser/file-service");
|
|
22
|
+
const common_1 = require("@theia/core/lib/common");
|
|
23
|
+
const workspace_service_1 = require("../workspace-service");
|
|
24
|
+
/**
|
|
25
|
+
* Implementation of WorkspaceMetadataStore.
|
|
26
|
+
* @internal
|
|
27
|
+
*/
|
|
28
|
+
let WorkspaceMetadataStoreImpl = class WorkspaceMetadataStoreImpl {
|
|
29
|
+
constructor() {
|
|
30
|
+
this.toDispose = new common_1.DisposableCollection();
|
|
31
|
+
this.onDidChangeLocationEmitter = new common_1.Emitter();
|
|
32
|
+
this.onDidChangeLocation = this.onDidChangeLocationEmitter.event;
|
|
33
|
+
}
|
|
34
|
+
get location() {
|
|
35
|
+
return this._location;
|
|
36
|
+
}
|
|
37
|
+
get key() {
|
|
38
|
+
return this._key;
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* Initializes the WorkspaceMetadataStore.
|
|
42
|
+
* @param key The key identifying this store
|
|
43
|
+
* @param initialLocation The initial location URI
|
|
44
|
+
* @param locationProvider Function to resolve the current location based on workspace changes
|
|
45
|
+
* @param onDispose Callback invoked when the store is disposed
|
|
46
|
+
*/
|
|
47
|
+
initialize(key, initialLocation, locationProvider, onDispose) {
|
|
48
|
+
this._key = key;
|
|
49
|
+
this._location = initialLocation;
|
|
50
|
+
this.locationProvider = locationProvider;
|
|
51
|
+
this.onDisposeCallback = onDispose;
|
|
52
|
+
this.currentWorkspaceRoot = this.getFirstWorkspaceRoot();
|
|
53
|
+
}
|
|
54
|
+
init() {
|
|
55
|
+
this.toDispose.push(this.onDidChangeLocationEmitter);
|
|
56
|
+
this.toDispose.push(this.workspaceService.onWorkspaceChanged(() => this.handleWorkspaceChange()));
|
|
57
|
+
}
|
|
58
|
+
async handleWorkspaceChange() {
|
|
59
|
+
const newWorkspaceRoot = this.getFirstWorkspaceRoot();
|
|
60
|
+
// Check if the first workspace root actually changed
|
|
61
|
+
if (this.currentWorkspaceRoot?.toString() !== newWorkspaceRoot?.toString()) {
|
|
62
|
+
this.currentWorkspaceRoot = newWorkspaceRoot;
|
|
63
|
+
try {
|
|
64
|
+
const newLocation = await this.locationProvider();
|
|
65
|
+
if (this._location.toString() !== newLocation.toString()) {
|
|
66
|
+
this._location = newLocation;
|
|
67
|
+
this.onDidChangeLocationEmitter.fire(newLocation);
|
|
68
|
+
this.logger.debug(`Metadata store location changed for key '${this._key}'`, {
|
|
69
|
+
newLocation: newLocation.toString()
|
|
70
|
+
});
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
catch (error) {
|
|
74
|
+
this.logger.error(`Failed to update location for metadata store '${this._key}'`, error);
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
getFirstWorkspaceRoot() {
|
|
79
|
+
const roots = this.workspaceService.tryGetRoots();
|
|
80
|
+
return roots.length > 0 ? roots[0].resource : undefined;
|
|
81
|
+
}
|
|
82
|
+
async ensureExists() {
|
|
83
|
+
try {
|
|
84
|
+
await this.fileService.createFolder(this._location);
|
|
85
|
+
this.logger.debug(`Ensured metadata store exists for key '${this._key}'`, {
|
|
86
|
+
location: this._location.toString()
|
|
87
|
+
});
|
|
88
|
+
}
|
|
89
|
+
catch (error) {
|
|
90
|
+
this.logger.error(`Failed to create metadata store directory for key '${this._key}'`, error);
|
|
91
|
+
throw error;
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
async delete() {
|
|
95
|
+
try {
|
|
96
|
+
const exists = await this.fileService.exists(this._location);
|
|
97
|
+
if (exists) {
|
|
98
|
+
await this.fileService.delete(this._location, { recursive: true, useTrash: false });
|
|
99
|
+
this.logger.debug(`Deleted metadata store for key '${this._key}'`, {
|
|
100
|
+
location: this._location.toString()
|
|
101
|
+
});
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
catch (error) {
|
|
105
|
+
this.logger.error(`Failed to delete metadata store directory for key '${this._key}'`, error);
|
|
106
|
+
throw error;
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
dispose() {
|
|
110
|
+
this.toDispose.dispose();
|
|
111
|
+
this.onDisposeCallback?.();
|
|
112
|
+
}
|
|
113
|
+
};
|
|
114
|
+
exports.WorkspaceMetadataStoreImpl = WorkspaceMetadataStoreImpl;
|
|
115
|
+
tslib_1.__decorate([
|
|
116
|
+
(0, inversify_1.inject)(file_service_1.FileService),
|
|
117
|
+
tslib_1.__metadata("design:type", file_service_1.FileService)
|
|
118
|
+
], WorkspaceMetadataStoreImpl.prototype, "fileService", void 0);
|
|
119
|
+
tslib_1.__decorate([
|
|
120
|
+
(0, inversify_1.inject)(workspace_service_1.WorkspaceService),
|
|
121
|
+
tslib_1.__metadata("design:type", workspace_service_1.WorkspaceService)
|
|
122
|
+
], WorkspaceMetadataStoreImpl.prototype, "workspaceService", void 0);
|
|
123
|
+
tslib_1.__decorate([
|
|
124
|
+
(0, inversify_1.inject)(common_1.ILogger),
|
|
125
|
+
(0, inversify_1.named)('WorkspaceMetadataStorage'),
|
|
126
|
+
tslib_1.__metadata("design:type", Object)
|
|
127
|
+
], WorkspaceMetadataStoreImpl.prototype, "logger", void 0);
|
|
128
|
+
tslib_1.__decorate([
|
|
129
|
+
(0, inversify_1.postConstruct)(),
|
|
130
|
+
tslib_1.__metadata("design:type", Function),
|
|
131
|
+
tslib_1.__metadata("design:paramtypes", []),
|
|
132
|
+
tslib_1.__metadata("design:returntype", void 0)
|
|
133
|
+
], WorkspaceMetadataStoreImpl.prototype, "init", null);
|
|
134
|
+
exports.WorkspaceMetadataStoreImpl = WorkspaceMetadataStoreImpl = tslib_1.__decorate([
|
|
135
|
+
(0, inversify_1.injectable)()
|
|
136
|
+
], WorkspaceMetadataStoreImpl);
|
|
137
|
+
//# sourceMappingURL=workspace-metadata-store.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"workspace-metadata-store.js","sourceRoot":"","sources":["../../../src/browser/metadata-storage/workspace-metadata-store.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"workspace-frontend-module.d.ts","sourceRoot":"","sources":["../../src/browser/workspace-frontend-module.ts"],"names":[],"mappings":"AAgBA,OAAO,mCAAmC,CAAC;AAE3C,OAAO,EAAE,eAAe,EAAc,MAAM,8BAA8B,CAAC;;
|
|
1
|
+
{"version":3,"file":"workspace-frontend-module.d.ts","sourceRoot":"","sources":["../../src/browser/workspace-frontend-module.ts"],"names":[],"mappings":"AAgBA,OAAO,mCAAmC,CAAC;AAE3C,OAAO,EAAE,eAAe,EAAc,MAAM,8BAA8B,CAAC;;AA4C3E,wBAmEG"}
|
|
@@ -48,6 +48,8 @@ const workspace_user_working_directory_provider_1 = require("./workspace-user-wo
|
|
|
48
48
|
const window_title_updater_1 = require("@theia/core/lib/browser/window/window-title-updater");
|
|
49
49
|
const workspace_window_title_updater_1 = require("./workspace-window-title-updater");
|
|
50
50
|
const canonical_uri_service_1 = require("./canonical-uri-service");
|
|
51
|
+
const metadata_storage_1 = require("./metadata-storage");
|
|
52
|
+
const workspace_metadata_store_1 = require("./metadata-storage/workspace-metadata-store");
|
|
51
53
|
exports.default = new inversify_1.ContainerModule((bind, unbind, isBound, rebind) => {
|
|
52
54
|
(0, workspace_preferences_1.bindWorkspacePreferences)(bind);
|
|
53
55
|
(0, workspace_trust_preferences_1.bindWorkspaceTrustPreferences)(bind);
|
|
@@ -77,6 +79,10 @@ exports.default = new inversify_1.ContainerModule((bind, unbind, isBound, rebind
|
|
|
77
79
|
bind(diff_service_1.DiffService).toSelf().inSingletonScope();
|
|
78
80
|
bind(workspace_storage_service_1.WorkspaceStorageService).toSelf().inSingletonScope();
|
|
79
81
|
rebind(storage_service_1.StorageService).toService(workspace_storage_service_1.WorkspaceStorageService);
|
|
82
|
+
bind(workspace_metadata_store_1.WorkspaceMetadataStoreImpl).toSelf();
|
|
83
|
+
bind(metadata_storage_1.WorkspaceMetadataStoreFactory).toFactory(ctx => () => ctx.container.get(workspace_metadata_store_1.WorkspaceMetadataStoreImpl));
|
|
84
|
+
bind(metadata_storage_1.WorkspaceMetadataStorageServiceImpl).toSelf().inSingletonScope();
|
|
85
|
+
bind(metadata_storage_1.WorkspaceMetadataStorageService).toService(metadata_storage_1.WorkspaceMetadataStorageServiceImpl);
|
|
80
86
|
bind(label_provider_1.LabelProviderContribution).to(workspace_uri_contribution_1.WorkspaceUriLabelProviderContribution).inSingletonScope();
|
|
81
87
|
bind(workspace_variable_contribution_1.WorkspaceVariableContribution).toSelf().inSingletonScope();
|
|
82
88
|
bind(browser_3.VariableContribution).toService(workspace_variable_contribution_1.WorkspaceVariableContribution);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"workspace-frontend-module.js","sourceRoot":"","sources":["../../src/browser/workspace-frontend-module.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,6CAA2C;AAE3C,4DAA2E;AAC3E,mDAAyG;AACzG,qDAA+H;AAC/H,2DASuC;AACvC,6EAAyE;AACzE,2EAAmF;AACnF,kEAA4E;AAC5E,sCAA2G;AAC3G,uFAAkF;AAClF,2DAAyF;AACzF,6DAAgH;AAChH,uFAAkF;AAClF,2EAAsE;AACtE,6EAAqF;AACrF,2EAA2E;AAC3E,iEAA4D;AAC5D,yEAAoE;AACpE,+EAA0E;AAC1E,uDAAmD;AACnD,2EAAsE;AACtE,iDAA6C;AAC7C,iFAAmF;AACnF,yEAAoE;AACpE,6FAAwF;AACxF,mIAA8H;AAC9H,uEAAoG;AACpG,uFAAsF;AACtF,6GAAuG;AACvG,2GAAoG;AACpG,8FAAyF;AACzF,qFAA+E;AAC/E,mEAA8D;
|
|
1
|
+
{"version":3,"file":"workspace-frontend-module.js","sourceRoot":"","sources":["../../src/browser/workspace-frontend-module.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"workspace-trust-service.d.ts","sourceRoot":"","sources":["../../src/browser/workspace-trust-service.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"workspace-trust-service.d.ts","sourceRoot":"","sources":["../../src/browser/workspace-trust-service.ts"],"names":[],"mappings":"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"}
|
|
@@ -290,11 +290,11 @@ let WorkspaceTrustService = class WorkspaceTrustService {
|
|
|
290
290
|
if (change.preferenceName === workspace_trust_preferences_1.WORKSPACE_TRUST_STARTUP_PROMPT && this.workspaceTrustPref[workspace_trust_preferences_1.WORKSPACE_TRUST_STARTUP_PROMPT] !== workspace_trust_preferences_1.WorkspaceTrustPrompt.ONCE) {
|
|
291
291
|
this.storage.setData(STORAGE_TRUSTED, undefined);
|
|
292
292
|
}
|
|
293
|
-
if (change.preferenceName === workspace_trust_preferences_1.WORKSPACE_TRUST_ENABLED && this.isWorkspaceTrustResolved() && await this.confirmRestart()) {
|
|
294
|
-
this.windowService.setSafeToShutDown();
|
|
295
|
-
this.windowService.reload();
|
|
296
|
-
}
|
|
297
293
|
if (change.preferenceName === workspace_trust_preferences_1.WORKSPACE_TRUST_ENABLED) {
|
|
294
|
+
if (!await this.isEmptyWorkspace() && this.isWorkspaceTrustResolved() && await this.confirmRestart()) {
|
|
295
|
+
this.windowService.setSafeToShutDown();
|
|
296
|
+
this.windowService.reload();
|
|
297
|
+
}
|
|
298
298
|
this.resolveWorkspaceTrust();
|
|
299
299
|
}
|
|
300
300
|
// Handle emptyWindow setting change for empty windows
|