@theia/dev-container 1.71.0-next.8 → 1.71.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (56) hide show
  1. package/README.md +1 -0
  2. package/lib/electron-browser/container-connection-contribution.d.ts +8 -0
  3. package/lib/electron-browser/container-connection-contribution.d.ts.map +1 -1
  4. package/lib/electron-browser/container-connection-contribution.js +158 -6
  5. package/lib/electron-browser/container-connection-contribution.js.map +1 -1
  6. package/lib/electron-browser/dev-container-frontend-module.d.ts.map +1 -1
  7. package/lib/electron-browser/dev-container-frontend-module.js +3 -0
  8. package/lib/electron-browser/dev-container-frontend-module.js.map +1 -1
  9. package/lib/electron-browser/dev-container-suggestion-contribution.d.ts +16 -0
  10. package/lib/electron-browser/dev-container-suggestion-contribution.d.ts.map +1 -0
  11. package/lib/electron-browser/dev-container-suggestion-contribution.js +96 -0
  12. package/lib/electron-browser/dev-container-suggestion-contribution.js.map +1 -0
  13. package/lib/electron-common/remote-container-connection-provider.d.ts +9 -0
  14. package/lib/electron-common/remote-container-connection-provider.d.ts.map +1 -1
  15. package/lib/electron-node/dev-container-file-service.d.ts.map +1 -1
  16. package/lib/electron-node/dev-container-file-service.js +4 -6
  17. package/lib/electron-node/dev-container-file-service.js.map +1 -1
  18. package/lib/electron-node/devcontainer-contributions/cli-enhancing-creation-contributions.d.ts.map +1 -1
  19. package/lib/electron-node/devcontainer-contributions/cli-enhancing-creation-contributions.js +7 -1
  20. package/lib/electron-node/devcontainer-contributions/cli-enhancing-creation-contributions.js.map +1 -1
  21. package/lib/electron-node/devcontainer-contributions/cli-enhancing-creation-contributions.spec.d.ts +2 -0
  22. package/lib/electron-node/devcontainer-contributions/cli-enhancing-creation-contributions.spec.d.ts.map +1 -0
  23. package/lib/electron-node/devcontainer-contributions/cli-enhancing-creation-contributions.spec.js +421 -0
  24. package/lib/electron-node/devcontainer-contributions/cli-enhancing-creation-contributions.spec.js.map +1 -0
  25. package/lib/electron-node/devcontainer-contributions/main-container-creation-contributions.d.ts +28 -1
  26. package/lib/electron-node/devcontainer-contributions/main-container-creation-contributions.d.ts.map +1 -1
  27. package/lib/electron-node/devcontainer-contributions/main-container-creation-contributions.js +304 -4
  28. package/lib/electron-node/devcontainer-contributions/main-container-creation-contributions.js.map +1 -1
  29. package/lib/electron-node/devcontainer-contributions/variable-resolver-contribution.d.ts.map +1 -1
  30. package/lib/electron-node/devcontainer-contributions/variable-resolver-contribution.js +0 -1
  31. package/lib/electron-node/devcontainer-contributions/variable-resolver-contribution.js.map +1 -1
  32. package/lib/electron-node/devcontainer-file.d.ts +8 -1
  33. package/lib/electron-node/devcontainer-file.d.ts.map +1 -1
  34. package/lib/electron-node/devcontainer-file.js +14 -0
  35. package/lib/electron-node/devcontainer-file.js.map +1 -1
  36. package/lib/electron-node/remote-container-connection-provider.d.ts +6 -1
  37. package/lib/electron-node/remote-container-connection-provider.d.ts.map +1 -1
  38. package/lib/electron-node/remote-container-connection-provider.js +112 -4
  39. package/lib/electron-node/remote-container-connection-provider.js.map +1 -1
  40. package/lib/electron-node/remote-container-connection-provider.spec.d.ts +2 -0
  41. package/lib/electron-node/remote-container-connection-provider.spec.d.ts.map +1 -0
  42. package/lib/electron-node/remote-container-connection-provider.spec.js +131 -0
  43. package/lib/electron-node/remote-container-connection-provider.spec.js.map +1 -0
  44. package/package.json +10 -10
  45. package/src/electron-browser/container-connection-contribution.ts +173 -7
  46. package/src/electron-browser/dev-container-frontend-module.ts +4 -0
  47. package/src/electron-browser/dev-container-suggestion-contribution.ts +93 -0
  48. package/src/electron-common/remote-container-connection-provider.ts +10 -0
  49. package/src/electron-node/dev-container-file-service.ts +4 -6
  50. package/src/electron-node/devcontainer-contributions/cli-enhancing-creation-contributions.spec.ts +519 -0
  51. package/src/electron-node/devcontainer-contributions/cli-enhancing-creation-contributions.ts +7 -1
  52. package/src/electron-node/devcontainer-contributions/main-container-creation-contributions.ts +323 -5
  53. package/src/electron-node/devcontainer-contributions/variable-resolver-contribution.ts +0 -1
  54. package/src/electron-node/devcontainer-file.ts +13 -1
  55. package/src/electron-node/remote-container-connection-provider.spec.ts +152 -0
  56. package/src/electron-node/remote-container-connection-provider.ts +121 -5
@@ -0,0 +1,421 @@
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 cli_enhancing_creation_contributions_1 = require("./cli-enhancing-creation-contributions");
20
+ const os_1 = require("@theia/core/lib/common/os");
21
+ describe('SettingsContribution', () => {
22
+ let settingsContribution;
23
+ beforeEach(() => {
24
+ settingsContribution = new cli_enhancing_creation_contributions_1.SettingsContribution();
25
+ });
26
+ describe('base64 encoding for complex values', () => {
27
+ it('should encode nested objects as base64', async () => {
28
+ const nestedSettings = {
29
+ 'editor.codeActionsOnSave': {
30
+ 'source.fixAll': true,
31
+ 'source.organizeImports': true
32
+ }
33
+ };
34
+ const containerConfig = {
35
+ image: 'test',
36
+ settings: nestedSettings
37
+ };
38
+ await settingsContribution.handleContainerCreation({}, containerConfig);
39
+ const context = { platform: { os: os_1.OS.Type.Linux, arch: 'x64' }, directory: '/workspace' };
40
+ const args = settingsContribution.enhanceArgs(context);
41
+ (0, chai_1.expect)(args).to.have.lengthOf(1);
42
+ (0, chai_1.expect)(args[0]).to.match(/^--set-preference=editor\.codeActionsOnSave=base64:/);
43
+ const base64Part = args[0].split('base64:')[1];
44
+ const decoded = JSON.parse(Buffer.from(base64Part, 'base64').toString('utf-8'));
45
+ (0, chai_1.expect)(decoded).to.deep.equal(nestedSettings['editor.codeActionsOnSave']);
46
+ });
47
+ it('should encode deeply nested objects as base64', async () => {
48
+ const deeplyNestedSettings = {
49
+ 'complex.setting': {
50
+ level1: {
51
+ level2: {
52
+ level3: {
53
+ value: 'deep'
54
+ }
55
+ }
56
+ }
57
+ }
58
+ };
59
+ const containerConfig = {
60
+ image: 'test',
61
+ settings: deeplyNestedSettings
62
+ };
63
+ await settingsContribution.handleContainerCreation({}, containerConfig);
64
+ const context = { platform: { os: os_1.OS.Type.Linux, arch: 'x64' }, directory: '/workspace' };
65
+ const args = settingsContribution.enhanceArgs(context);
66
+ (0, chai_1.expect)(args).to.have.lengthOf(1);
67
+ (0, chai_1.expect)(args[0]).to.match(/^--set-preference=complex\.setting=base64:/);
68
+ const base64Part = args[0].split('base64:')[1];
69
+ const decoded = JSON.parse(Buffer.from(base64Part, 'base64').toString('utf-8'));
70
+ (0, chai_1.expect)(decoded).to.deep.equal(deeplyNestedSettings['complex.setting']);
71
+ });
72
+ it('should encode arrays as base64', async () => {
73
+ const arraySettings = {
74
+ 'files.exclude': ['**/.git', '**/.svn', '**/node_modules']
75
+ };
76
+ const containerConfig = {
77
+ image: 'test',
78
+ settings: arraySettings
79
+ };
80
+ await settingsContribution.handleContainerCreation({}, containerConfig);
81
+ const context = { platform: { os: os_1.OS.Type.Linux, arch: 'x64' }, directory: '/workspace' };
82
+ const args = settingsContribution.enhanceArgs(context);
83
+ (0, chai_1.expect)(args).to.have.lengthOf(1);
84
+ (0, chai_1.expect)(args[0]).to.match(/^--set-preference=files\.exclude=base64:/);
85
+ const base64Part = args[0].split('base64:')[1];
86
+ const decoded = JSON.parse(Buffer.from(base64Part, 'base64').toString('utf-8'));
87
+ (0, chai_1.expect)(decoded).to.deep.equal(arraySettings['files.exclude']);
88
+ });
89
+ it('should encode arrays of objects as base64', async () => {
90
+ const complexArraySettings = {
91
+ 'launch.configurations': [
92
+ { type: 'node', request: 'launch', name: 'Launch Program' },
93
+ { type: 'chrome', request: 'attach', name: 'Attach to Chrome' }
94
+ ]
95
+ };
96
+ const containerConfig = {
97
+ image: 'test',
98
+ settings: complexArraySettings
99
+ };
100
+ await settingsContribution.handleContainerCreation({}, containerConfig);
101
+ const context = { platform: { os: os_1.OS.Type.Linux, arch: 'x64' }, directory: '/workspace' };
102
+ const args = settingsContribution.enhanceArgs(context);
103
+ (0, chai_1.expect)(args).to.have.lengthOf(1);
104
+ (0, chai_1.expect)(args[0]).to.match(/^--set-preference=launch\.configurations=base64:/);
105
+ const base64Part = args[0].split('base64:')[1];
106
+ const decoded = JSON.parse(Buffer.from(base64Part, 'base64').toString('utf-8'));
107
+ (0, chai_1.expect)(decoded).to.deep.equal(complexArraySettings['launch.configurations']);
108
+ });
109
+ it('should encode empty objects as base64', async () => {
110
+ const emptyObjectSettings = {
111
+ 'empty.object': {}
112
+ };
113
+ const containerConfig = {
114
+ image: 'test',
115
+ settings: emptyObjectSettings
116
+ };
117
+ await settingsContribution.handleContainerCreation({}, containerConfig);
118
+ const context = { platform: { os: os_1.OS.Type.Linux, arch: 'x64' }, directory: '/workspace' };
119
+ const args = settingsContribution.enhanceArgs(context);
120
+ (0, chai_1.expect)(args).to.have.lengthOf(1);
121
+ (0, chai_1.expect)(args[0]).to.match(/^--set-preference=empty\.object=base64:/);
122
+ const base64Part = args[0].split('base64:')[1];
123
+ const decoded = JSON.parse(Buffer.from(base64Part, 'base64').toString('utf-8'));
124
+ (0, chai_1.expect)(decoded).to.deep.equal({});
125
+ });
126
+ it('should encode empty arrays as base64', async () => {
127
+ const emptyArraySettings = {
128
+ 'empty.array': []
129
+ };
130
+ const containerConfig = {
131
+ image: 'test',
132
+ settings: emptyArraySettings
133
+ };
134
+ await settingsContribution.handleContainerCreation({}, containerConfig);
135
+ const context = { platform: { os: os_1.OS.Type.Linux, arch: 'x64' }, directory: '/workspace' };
136
+ const args = settingsContribution.enhanceArgs(context);
137
+ (0, chai_1.expect)(args).to.have.lengthOf(1);
138
+ (0, chai_1.expect)(args[0]).to.match(/^--set-preference=empty\.array=base64:/);
139
+ const base64Part = args[0].split('base64:')[1];
140
+ const decoded = JSON.parse(Buffer.from(base64Part, 'base64').toString('utf-8'));
141
+ (0, chai_1.expect)(decoded).to.deep.equal([]);
142
+ });
143
+ it('should handle values containing equals signs in objects', async () => {
144
+ const settingsWithEquals = {
145
+ 'test.config': {
146
+ formula: 'a=b+c',
147
+ equation: 'x=y=z'
148
+ }
149
+ };
150
+ const containerConfig = {
151
+ image: 'test',
152
+ settings: settingsWithEquals
153
+ };
154
+ await settingsContribution.handleContainerCreation({}, containerConfig);
155
+ const context = { platform: { os: os_1.OS.Type.Linux, arch: 'x64' }, directory: '/workspace' };
156
+ const args = settingsContribution.enhanceArgs(context);
157
+ (0, chai_1.expect)(args).to.have.lengthOf(1);
158
+ (0, chai_1.expect)(args[0]).to.match(/^--set-preference=test\.config=base64:/);
159
+ const base64Part = args[0].split('base64:')[1];
160
+ const decoded = JSON.parse(Buffer.from(base64Part, 'base64').toString('utf-8'));
161
+ (0, chai_1.expect)(decoded).to.deep.equal(settingsWithEquals['test.config']);
162
+ (0, chai_1.expect)(decoded.formula).to.equal('a=b+c');
163
+ (0, chai_1.expect)(decoded.equation).to.equal('x=y=z');
164
+ });
165
+ });
166
+ describe('round-trip encode/decode validation', () => {
167
+ const simulateDecode = (encodedArg) => {
168
+ const prefixRemoved = encodedArg.substring('--set-preference='.length);
169
+ const firstEqualIndex = prefixRemoved.indexOf('=');
170
+ let rawValue = prefixRemoved.substring(firstEqualIndex + 1);
171
+ if (rawValue.startsWith('base64:')) {
172
+ rawValue = Buffer.from(rawValue.substring('base64:'.length), 'base64').toString('utf-8');
173
+ }
174
+ return JSON.parse(rawValue);
175
+ };
176
+ it('should successfully round-trip nested objects', async () => {
177
+ const originalValue = {
178
+ nested: {
179
+ deep: {
180
+ value: 'test',
181
+ number: 42
182
+ }
183
+ }
184
+ };
185
+ const containerConfig = {
186
+ image: 'test',
187
+ settings: { 'test.setting': originalValue }
188
+ };
189
+ await settingsContribution.handleContainerCreation({}, containerConfig);
190
+ const context = { platform: { os: os_1.OS.Type.Linux, arch: 'x64' }, directory: '/workspace' };
191
+ const args = settingsContribution.enhanceArgs(context);
192
+ const decodedValue = simulateDecode(args[0]);
193
+ (0, chai_1.expect)(decodedValue).to.deep.equal(originalValue);
194
+ });
195
+ it('should successfully round-trip arrays', async () => {
196
+ const originalValue = ['item1', 'item2', 'item3'];
197
+ const containerConfig = {
198
+ image: 'test',
199
+ settings: { 'test.array': originalValue }
200
+ };
201
+ await settingsContribution.handleContainerCreation({}, containerConfig);
202
+ const context = { platform: { os: os_1.OS.Type.Linux, arch: 'x64' }, directory: '/workspace' };
203
+ const args = settingsContribution.enhanceArgs(context);
204
+ const decodedValue = simulateDecode(args[0]);
205
+ (0, chai_1.expect)(decodedValue).to.deep.equal(originalValue);
206
+ });
207
+ it('should successfully round-trip values with equals signs', async () => {
208
+ const originalValue = {
209
+ equation: 'a=b=c',
210
+ formula: 'x=y'
211
+ };
212
+ const containerConfig = {
213
+ image: 'test',
214
+ settings: { 'test.equals': originalValue }
215
+ };
216
+ await settingsContribution.handleContainerCreation({}, containerConfig);
217
+ const context = { platform: { os: os_1.OS.Type.Linux, arch: 'x64' }, directory: '/workspace' };
218
+ const args = settingsContribution.enhanceArgs(context);
219
+ const decodedValue = simulateDecode(args[0]);
220
+ (0, chai_1.expect)(decodedValue).to.deep.equal(originalValue);
221
+ });
222
+ it('should successfully round-trip empty objects', async () => {
223
+ const originalValue = {};
224
+ const containerConfig = {
225
+ image: 'test',
226
+ settings: { 'test.empty': originalValue }
227
+ };
228
+ await settingsContribution.handleContainerCreation({}, containerConfig);
229
+ const context = { platform: { os: os_1.OS.Type.Linux, arch: 'x64' }, directory: '/workspace' };
230
+ const args = settingsContribution.enhanceArgs(context);
231
+ const decodedValue = simulateDecode(args[0]);
232
+ (0, chai_1.expect)(decodedValue).to.deep.equal(originalValue);
233
+ });
234
+ it('should successfully round-trip mixed complex structures', async () => {
235
+ const originalValue = {
236
+ string: 'test',
237
+ number: 123,
238
+ boolean: true,
239
+ array: [1, 'two', { three: 3 }],
240
+ nested: {
241
+ deep: {
242
+ value: 'with=equals'
243
+ }
244
+ }
245
+ };
246
+ const containerConfig = {
247
+ image: 'test',
248
+ settings: { 'test.complex': originalValue }
249
+ };
250
+ await settingsContribution.handleContainerCreation({}, containerConfig);
251
+ const context = { platform: { os: os_1.OS.Type.Linux, arch: 'x64' }, directory: '/workspace' };
252
+ const args = settingsContribution.enhanceArgs(context);
253
+ const decodedValue = simulateDecode(args[0]);
254
+ (0, chai_1.expect)(decodedValue).to.deep.equal(originalValue);
255
+ });
256
+ });
257
+ describe('primitive values (not base64 encoded)', () => {
258
+ it('should not encode string values as base64', async () => {
259
+ const stringSettings = {
260
+ 'editor.fontSize': '14'
261
+ };
262
+ const containerConfig = {
263
+ image: 'test',
264
+ settings: stringSettings
265
+ };
266
+ await settingsContribution.handleContainerCreation({}, containerConfig);
267
+ const context = { platform: { os: os_1.OS.Type.Linux, arch: 'x64' }, directory: '/workspace' };
268
+ const args = settingsContribution.enhanceArgs(context);
269
+ (0, chai_1.expect)(args).to.have.lengthOf(1);
270
+ (0, chai_1.expect)(args[0]).to.equal('--set-preference=editor.fontSize="14"');
271
+ (0, chai_1.expect)(args[0]).to.not.include('base64:');
272
+ });
273
+ it('should not encode number values as base64', async () => {
274
+ const numberSettings = {
275
+ 'editor.tabSize': 4
276
+ };
277
+ const containerConfig = {
278
+ image: 'test',
279
+ settings: numberSettings
280
+ };
281
+ await settingsContribution.handleContainerCreation({}, containerConfig);
282
+ const context = { platform: { os: os_1.OS.Type.Linux, arch: 'x64' }, directory: '/workspace' };
283
+ const args = settingsContribution.enhanceArgs(context);
284
+ (0, chai_1.expect)(args).to.have.lengthOf(1);
285
+ (0, chai_1.expect)(args[0]).to.equal('--set-preference=editor.tabSize=4');
286
+ (0, chai_1.expect)(args[0]).to.not.include('base64:');
287
+ });
288
+ it('should not encode boolean values as base64', async () => {
289
+ const booleanSettings = {
290
+ 'editor.wordWrap': true
291
+ };
292
+ const containerConfig = {
293
+ image: 'test',
294
+ settings: booleanSettings
295
+ };
296
+ await settingsContribution.handleContainerCreation({}, containerConfig);
297
+ const context = { platform: { os: os_1.OS.Type.Linux, arch: 'x64' }, directory: '/workspace' };
298
+ const args = settingsContribution.enhanceArgs(context);
299
+ (0, chai_1.expect)(args).to.have.lengthOf(1);
300
+ (0, chai_1.expect)(args[0]).to.equal('--set-preference=editor.wordWrap=true');
301
+ (0, chai_1.expect)(args[0]).to.not.include('base64:');
302
+ });
303
+ it('should handle strings containing equals signs without base64', async () => {
304
+ const stringWithEquals = {
305
+ 'test.value': 'a=b'
306
+ };
307
+ const containerConfig = {
308
+ image: 'test',
309
+ settings: stringWithEquals
310
+ };
311
+ await settingsContribution.handleContainerCreation({}, containerConfig);
312
+ const context = { platform: { os: os_1.OS.Type.Linux, arch: 'x64' }, directory: '/workspace' };
313
+ const args = settingsContribution.enhanceArgs(context);
314
+ (0, chai_1.expect)(args).to.have.lengthOf(1);
315
+ (0, chai_1.expect)(args[0]).to.equal('--set-preference=test.value="a=b"');
316
+ (0, chai_1.expect)(args[0]).to.not.include('base64:');
317
+ });
318
+ });
319
+ describe('vscode customizations', () => {
320
+ it('should merge settings from customizations.vscode.settings', async () => {
321
+ const containerConfig = {
322
+ image: 'test',
323
+ settings: {
324
+ 'editor.fontSize': '14'
325
+ },
326
+ customizations: {
327
+ vscode: {
328
+ settings: {
329
+ 'editor.tabSize': 4,
330
+ 'files.exclude': ['**/.git']
331
+ }
332
+ }
333
+ }
334
+ };
335
+ await settingsContribution.handleContainerCreation({}, containerConfig);
336
+ const context = { platform: { os: os_1.OS.Type.Linux, arch: 'x64' }, directory: '/workspace' };
337
+ const args = settingsContribution.enhanceArgs(context);
338
+ (0, chai_1.expect)(args).to.have.lengthOf(3);
339
+ (0, chai_1.expect)(args.some(arg => arg.includes('editor.fontSize'))).to.be.true;
340
+ (0, chai_1.expect)(args.some(arg => arg.includes('editor.tabSize'))).to.be.true;
341
+ (0, chai_1.expect)(args.some(arg => arg.includes('files.exclude'))).to.be.true;
342
+ });
343
+ it('should override settings with customizations.vscode.settings', async () => {
344
+ const containerConfig = {
345
+ image: 'test',
346
+ settings: {
347
+ 'editor.fontSize': '14'
348
+ },
349
+ customizations: {
350
+ vscode: {
351
+ settings: {
352
+ 'editor.fontSize': '16'
353
+ }
354
+ }
355
+ }
356
+ };
357
+ await settingsContribution.handleContainerCreation({}, containerConfig);
358
+ const context = { platform: { os: os_1.OS.Type.Linux, arch: 'x64' }, directory: '/workspace' };
359
+ const args = settingsContribution.enhanceArgs(context);
360
+ (0, chai_1.expect)(args).to.have.lengthOf(1);
361
+ (0, chai_1.expect)(args[0]).to.equal('--set-preference=editor.fontSize="16"');
362
+ });
363
+ });
364
+ describe('edge cases', () => {
365
+ it('should return empty array when no config is set', () => {
366
+ const context = { platform: { os: os_1.OS.Type.Linux, arch: 'x64' }, directory: '/workspace' };
367
+ const args = settingsContribution.enhanceArgs(context);
368
+ (0, chai_1.expect)(args).to.be.empty;
369
+ });
370
+ it('should handle config with no settings', async () => {
371
+ const containerConfig = {
372
+ image: 'test'
373
+ };
374
+ await settingsContribution.handleContainerCreation({}, containerConfig);
375
+ const context = { platform: { os: os_1.OS.Type.Linux, arch: 'x64' }, directory: '/workspace' };
376
+ const args = settingsContribution.enhanceArgs(context);
377
+ (0, chai_1.expect)(args).to.be.empty;
378
+ });
379
+ it('should clear config after enhanceArgs is called', async () => {
380
+ const containerConfig = {
381
+ image: 'test',
382
+ settings: { 'test.setting': 'value' }
383
+ };
384
+ await settingsContribution.handleContainerCreation({}, containerConfig);
385
+ const context = { platform: { os: os_1.OS.Type.Linux, arch: 'x64' }, directory: '/workspace' };
386
+ const firstCall = settingsContribution.enhanceArgs(context);
387
+ const secondCall = settingsContribution.enhanceArgs(context);
388
+ (0, chai_1.expect)(firstCall).to.have.lengthOf(1);
389
+ (0, chai_1.expect)(secondCall).to.be.empty;
390
+ });
391
+ it('should handle undefined values', async () => {
392
+ const containerConfig = {
393
+ image: 'test',
394
+ settings: {
395
+ 'test.undefined': undefined
396
+ }
397
+ };
398
+ await settingsContribution.handleContainerCreation({}, containerConfig);
399
+ const context = { platform: { os: os_1.OS.Type.Linux, arch: 'x64' }, directory: '/workspace' };
400
+ const args = settingsContribution.enhanceArgs(context);
401
+ (0, chai_1.expect)(args).to.have.lengthOf(1);
402
+ (0, chai_1.expect)(args[0]).to.equal('--set-preference=test.undefined=undefined');
403
+ });
404
+ it('should handle special characters in setting keys', async () => {
405
+ const containerConfig = {
406
+ image: 'test',
407
+ settings: {
408
+ 'setting.with-dash': 'value',
409
+ 'setting.with_underscore': 'value'
410
+ }
411
+ };
412
+ await settingsContribution.handleContainerCreation({}, containerConfig);
413
+ const context = { platform: { os: os_1.OS.Type.Linux, arch: 'x64' }, directory: '/workspace' };
414
+ const args = settingsContribution.enhanceArgs(context);
415
+ (0, chai_1.expect)(args).to.have.lengthOf(2);
416
+ (0, chai_1.expect)(args.some(arg => arg.includes('setting.with-dash'))).to.be.true;
417
+ (0, chai_1.expect)(args.some(arg => arg.includes('setting.with_underscore'))).to.be.true;
418
+ });
419
+ });
420
+ });
421
+ //# sourceMappingURL=cli-enhancing-creation-contributions.spec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cli-enhancing-creation-contributions.spec.js","sourceRoot":"","sources":["../../../src/electron-node/devcontainer-contributions/cli-enhancing-creation-contributions.spec.ts"],"names":[],"mappings":"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"}
@@ -2,8 +2,9 @@ import * as Docker from 'dockerode';
2
2
  import { interfaces } from '@theia/core/shared/inversify';
3
3
  import { ContainerCreationContribution } from '../docker-container-service';
4
4
  import { DevContainerConfiguration, DockerfileContainer, ImageContainer } from '../devcontainer-file';
5
+ import { ILogger } from '@theia/core';
5
6
  import { ContainerOutputProvider } from '../../electron-common/container-output-provider';
6
- import { RemotePortForwardingProvider } from '@theia/remote/lib/electron-common/remote-port-forwarding-provider';
7
+ import { ForwardedPort, RemotePortForwardingProvider } from '@theia/remote/lib/electron-common/remote-port-forwarding-provider';
7
8
  import { RemoteDockerContainerConnection } from '../remote-container-connection-provider';
8
9
  export declare function registerContainerCreationContributions(bind: interfaces.Bind): void;
9
10
  export declare class ImageFileContribution implements ContainerCreationContribution {
@@ -15,6 +16,11 @@ export declare class DockerFileContribution implements ContainerCreationContribu
15
16
  export declare class ForwardPortsContribution implements ContainerCreationContribution {
16
17
  protected readonly portForwardingProvider: RemotePortForwardingProvider;
17
18
  handlePostConnect(containerConfig: DevContainerConfiguration, connection: RemoteDockerContainerConnection): Promise<void>;
19
+ protected getPortAttributes(containerConfig: DevContainerConfiguration, port: number): {
20
+ label?: string;
21
+ protocol?: 'http' | 'https';
22
+ onAutoForward?: ForwardedPort['onAutoForward'];
23
+ } | undefined;
18
24
  }
19
25
  export declare class MountsContribution implements ContainerCreationContribution {
20
26
  handleContainerCreation(createOptions: Docker.ContainerCreateOptions, containerConfig: DevContainerConfiguration, api: Docker): Promise<void>;
@@ -28,6 +34,27 @@ export declare class PostCreateCommandContribution implements ContainerCreationC
28
34
  export declare class ContainerEnvContribution implements ContainerCreationContribution {
29
35
  handleContainerCreation(createOptions: Docker.ContainerCreateOptions, containerConfig: DevContainerConfiguration): Promise<void>;
30
36
  }
37
+ export declare class HostConfigSharingContribution implements ContainerCreationContribution {
38
+ protected static readonly ISOLATED_SSH_DIR: string;
39
+ protected readonly logger: ILogger;
40
+ handleContainerCreation(createOptions: Docker.ContainerCreateOptions, containerConfig: DevContainerConfiguration): Promise<void>;
41
+ handlePostCreate(containerConfig: DevContainerConfiguration, container: Docker.Container, _api: Docker, outputprovider: ContainerOutputProvider): Promise<void>;
42
+ protected detectSshSigningKey(): Promise<{
43
+ format: string;
44
+ keyFile?: string;
45
+ } | undefined>;
46
+ protected gitConfigGet(key: string): Promise<string>;
47
+ protected ensureIsolatedSshDir(sshSigningInfo?: {
48
+ format: string;
49
+ keyFile?: string;
50
+ }): Promise<string | undefined>;
51
+ protected execInContainer(container: Docker.Container, user: string, cmd: string): Promise<void>;
52
+ protected getContainerHomePath(containerConfig: DevContainerConfiguration, relativePath: string): string;
53
+ }
54
+ export declare class DefaultShellContribution implements ContainerCreationContribution {
55
+ handleContainerCreation(createOptions: Docker.ContainerCreateOptions, containerConfig: DevContainerConfiguration, api: Docker): Promise<void>;
56
+ protected isBashAvailable(api: Docker, image: string): Promise<boolean | undefined>;
57
+ }
31
58
  export declare namespace OutputHelper {
32
59
  interface Progress {
33
60
  id?: string;
@@ -1 +1 @@
1
- {"version":3,"file":"main-container-creation-contributions.d.ts","sourceRoot":"","sources":["../../../src/electron-node/devcontainer-contributions/main-container-creation-contributions.ts"],"names":[],"mappings":"AAeA,OAAO,KAAK,MAAM,MAAM,WAAW,CAAC;AACpC,OAAO,EAAsB,UAAU,EAAE,MAAM,8BAA8B,CAAC;AAC9E,OAAO,EAAE,6BAA6B,EAAE,MAAM,6BAA6B,CAAC;AAC5E,OAAO,EAAE,yBAAyB,EAAE,mBAAmB,EAAE,cAAc,EAA2B,MAAM,sBAAsB,CAAC;AAE/H,OAAO,EAAE,uBAAuB,EAAE,MAAM,iDAAiD,CAAC;AAE1F,OAAO,EAAE,4BAA4B,EAAE,MAAM,mEAAmE,CAAC;AACjH,OAAO,EAAE,+BAA+B,EAAE,MAAM,yCAAyC,CAAC;AAI1F,wBAAgB,sCAAsC,CAAC,IAAI,EAAE,UAAU,CAAC,IAAI,GAAG,IAAI,CASlF;AAED,qBACa,qBAAsB,YAAW,6BAA6B;IACjE,uBAAuB,CAAC,aAAa,EAAE,MAAM,CAAC,sBAAsB,EAAE,eAAe,EAAE,cAAc,EACvG,GAAG,EAAE,MAAM,EAAE,cAAc,EAAE,uBAAuB,GAAG,OAAO,CAAC,IAAI,CAAC;CAmB3E;AAED,qBACa,sBAAuB,YAAW,6BAA6B;IAClE,uBAAuB,CAAC,aAAa,EAAE,MAAM,CAAC,sBAAsB,EAAE,eAAe,EAAE,mBAAmB,EAC5G,GAAG,EAAE,MAAM,EAAE,cAAc,EAAE,uBAAuB,GAAG,OAAO,CAAC,IAAI,CAAC;CAmC3E;AAED,qBACa,wBAAyB,YAAW,6BAA6B;IAG1E,SAAS,CAAC,QAAQ,CAAC,sBAAsB,EAAE,4BAA4B,CAAC;IAElE,iBAAiB,CAAC,eAAe,EAAE,yBAAyB,EAAE,UAAU,EAAE,+BAA+B,GAAG,OAAO,CAAC,IAAI,CAAC;CAqBlI;AAED,qBACa,kBAAmB,YAAW,6BAA6B;IAC9D,uBAAuB,CAAC,aAAa,EAAE,MAAM,CAAC,sBAAsB,EAAE,eAAe,EAAE,yBAAyB,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;CAUtJ;AAED,qBACa,sBAAuB,YAAW,6BAA6B;IAClE,uBAAuB,CAAC,aAAa,EAAE,MAAM,CAAC,sBAAsB,EAAE,eAAe,EAAE,yBAAyB,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;CAKtJ;AAED,qBACa,6BAA8B,YAAW,6BAA6B;IACzE,gBAAgB,CAAC,CAAC,eAAe,EAAE,yBAAyB,EAAE,SAAS,EAAE,MAAM,CAAC,SAAS,EAAE,GAAG,EAAE,MAAM,EAAE,cAAc,EAAE,uBAAuB,GAAG,OAAO,CAAC,IAAI,CAAC;CAqBxK;AAED,qBACa,wBAAyB,YAAW,6BAA6B;IACpE,uBAAuB,CAAC,aAAa,EAAE,MAAM,CAAC,sBAAsB,EAAE,eAAe,EAAE,yBAAyB,GAAG,OAAO,CAAC,IAAI,CAAC;CAUzI;AAED,yBAAiB,YAAY,CAAC;IAC1B,UAAiB,QAAQ;QACrB,EAAE,CAAC,EAAE,MAAM,CAAC;QACZ,MAAM,EAAE,MAAM,CAAC;QACf,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;KACrB;IAED,SAAgB,aAAa,CAAC,QAAQ,EAAE,QAAQ,GAAG,MAAM,CAExD;CACJ"}
1
+ {"version":3,"file":"main-container-creation-contributions.d.ts","sourceRoot":"","sources":["../../../src/electron-node/devcontainer-contributions/main-container-creation-contributions.ts"],"names":[],"mappings":"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"}