@theia/variable-resolver 1.77.0-next.29 → 1.77.0-next.37

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.
@@ -1 +1 @@
1
- {"version":3,"file":"common-variable-contribution.d.ts","sourceRoot":"","sources":["../../src/browser/common-variable-contribution.ts"],"names":[],"mappings":"AAiBA,OAAO,EAAE,oBAAoB,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AACpE,OAAO,EAAE,iBAAiB,EAAE,MAAM,6CAA6C,CAAC;AAChF,OAAO,EAAE,kBAAkB,EAAE,MAAM,sCAAsC,CAAC;AAC1E,OAAO,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAC;AAEhE,OAAO,EAAE,iBAAiB,EAAE,MAAM,uDAAuD,CAAC;AAC1F,OAAO,EAAE,kBAAkB,EAAE,MAAM,8CAA8C,CAAC;AAElF,OAAO,EAAE,iBAAiB,EAAkB,MAAM,yBAAyB,CAAC;AAK5E,qBACa,0BAA2B,YAAW,oBAAoB;IAGnE,SAAS,CAAC,QAAQ,CAAC,GAAG,EAAE,kBAAkB,CAAC;IAG3C,SAAS,CAAC,QAAQ,CAAC,QAAQ,EAAE,cAAc,CAAC;IAG5C,SAAS,CAAC,QAAQ,CAAC,WAAW,EAAE,iBAAiB,CAAC;IAGlD,SAAS,CAAC,QAAQ,CAAC,kBAAkB,EAAE,kBAAkB,CAAC;IAG1D,SAAS,CAAC,QAAQ,CAAC,iBAAiB,EAAE,iBAAiB,CAAC;IAGxD,SAAS,CAAC,QAAQ,CAAC,SAAS,EAAE,iBAAiB,CAAC;IAE1C,iBAAiB,CAAC,SAAS,EAAE,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC;CAmGtE"}
1
+ {"version":3,"file":"common-variable-contribution.d.ts","sourceRoot":"","sources":["../../src/browser/common-variable-contribution.ts"],"names":[],"mappings":"AAiBA,OAAO,EAAE,oBAAoB,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AACpE,OAAO,EAAE,iBAAiB,EAAE,MAAM,6CAA6C,CAAC;AAChF,OAAO,EAAE,kBAAkB,EAAE,MAAM,sCAAsC,CAAC;AAC1E,OAAO,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAC;AAEhE,OAAO,EAAE,iBAAiB,EAAE,MAAM,uDAAuD,CAAC;AAC1F,OAAO,EAAE,kBAAkB,EAAE,MAAM,8CAA8C,CAAC;AAElF,OAAO,EAAE,iBAAiB,EAAkB,MAAM,yBAAyB,CAAC;AAK5E,qBACa,0BAA2B,YAAW,oBAAoB;IAGnE,SAAS,CAAC,QAAQ,CAAC,GAAG,EAAE,kBAAkB,CAAC;IAG3C,SAAS,CAAC,QAAQ,CAAC,QAAQ,EAAE,cAAc,CAAC;IAG5C,SAAS,CAAC,QAAQ,CAAC,WAAW,EAAE,iBAAiB,CAAC;IAGlD,SAAS,CAAC,QAAQ,CAAC,kBAAkB,EAAE,kBAAkB,CAAC;IAG1D,SAAS,CAAC,QAAQ,CAAC,iBAAiB,EAAE,iBAAiB,CAAC;IAGxD,SAAS,CAAC,QAAQ,CAAC,SAAS,EAAE,iBAAiB,CAAC;IAE1C,iBAAiB,CAAC,SAAS,EAAE,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC;CA8GtE"}
@@ -87,10 +87,15 @@ let CommonVariableContribution = class CommonVariableContribution {
87
87
  if (typeof input.description !== 'string') {
88
88
  return undefined;
89
89
  }
90
- return this.quickInputService?.input({
90
+ const value = await this.quickInputService?.input({
91
91
  prompt: input.description,
92
- value: input.default
92
+ value: input.default,
93
+ ignoreFocusLost: true
93
94
  });
95
+ if (value === undefined) {
96
+ throw (0, cancellation_1.cancelled)();
97
+ }
98
+ return value;
94
99
  }
95
100
  if (input.type === 'pickString') {
96
101
  if (typeof input.description !== 'string' || !Array.isArray(input.options)) {
@@ -115,8 +120,14 @@ let CommonVariableContribution = class CommonVariableContribution {
115
120
  });
116
121
  }
117
122
  }
118
- const selectedPick = await this.quickInputService?.showQuickPick(elements, { placeholder: input.description });
119
- return selectedPick?.value;
123
+ const selectedPick = await this.quickInputService?.showQuickPick(elements, {
124
+ placeholder: input.description,
125
+ ignoreFocusOut: true
126
+ });
127
+ if (!selectedPick) {
128
+ throw (0, cancellation_1.cancelled)();
129
+ }
130
+ return selectedPick.value;
120
131
  }
121
132
  if (input.type === 'command') {
122
133
  if (typeof input.command !== 'string') {
@@ -1 +1 @@
1
- {"version":3,"file":"common-variable-contribution.js","sourceRoot":"","sources":["../../src/browser/common-variable-contribution.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"common-variable-contribution.js","sourceRoot":"","sources":["../../src/browser/common-variable-contribution.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=common-variable-contribution.spec.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"common-variable-contribution.spec.d.ts","sourceRoot":"","sources":["../../src/browser/common-variable-contribution.spec.ts"],"names":[],"mappings":""}
@@ -0,0 +1,135 @@
1
+ "use strict";
2
+ // *****************************************************************************
3
+ // Copyright (C) 2026 Md. Mehedi Hasan.
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 resource_context_key_1 = require("@theia/core/lib/browser/resource-context-key");
21
+ const application_protocol_1 = require("@theia/core/lib/common/application-protocol");
22
+ const command_1 = require("@theia/core/lib/common/command");
23
+ const env_variables_1 = require("@theia/core/lib/common/env-variables");
24
+ const cancellation_1 = require("@theia/core/lib/common/cancellation");
25
+ const logger_1 = require("@theia/core/lib/common/logger");
26
+ const preference_service_1 = require("@theia/core/lib/common/preferences/preference-service");
27
+ const quick_pick_service_1 = require("@theia/core/lib/common/quick-pick-service");
28
+ const mock_logger_1 = require("@theia/core/lib/common/test/mock-logger");
29
+ const inversify_1 = require("@theia/core/shared/inversify");
30
+ const chai_1 = require("chai");
31
+ const sinon = require("sinon");
32
+ const uri_1 = require("@theia/core/lib/common/uri");
33
+ const common_variable_contribution_1 = require("./common-variable-contribution");
34
+ const variable_1 = require("./variable");
35
+ disableJSDOM();
36
+ describe('CommonVariableContribution', () => {
37
+ before(() => {
38
+ disableJSDOM = (0, jsdom_1.enableJSDOM)();
39
+ });
40
+ after(() => {
41
+ disableJSDOM();
42
+ });
43
+ const workspace = new uri_1.default('file:///workspace');
44
+ const promptInput = {
45
+ id: 'task-argument',
46
+ type: 'promptString',
47
+ description: 'Enter a task argument',
48
+ default: 'default-value'
49
+ };
50
+ const pickInput = {
51
+ id: 'task-argument-choice',
52
+ type: 'pickString',
53
+ description: 'Choose a task argument',
54
+ options: ['first', 'second'],
55
+ default: 'second'
56
+ };
57
+ let variables;
58
+ let input;
59
+ let showQuickPick;
60
+ beforeEach(async () => {
61
+ const container = new inversify_1.Container();
62
+ container.bind(logger_1.ILogger).to(mock_logger_1.MockLogger);
63
+ input = sinon.stub().resolves('task-argument');
64
+ showQuickPick = sinon.stub();
65
+ const inputs = [promptInput, pickInput];
66
+ container.bind(env_variables_1.EnvVariablesServer).toConstantValue({
67
+ getExecPath: async () => ''
68
+ });
69
+ container.bind(command_1.CommandService).toConstantValue({});
70
+ container.bind(preference_service_1.PreferenceService).toConstantValue({
71
+ get: sinon.stub().returns({ inputs })
72
+ });
73
+ container.bind(resource_context_key_1.ResourceContextKey).toConstantValue({
74
+ get: () => workspace.toString()
75
+ });
76
+ container.bind(quick_pick_service_1.QuickInputService).toConstantValue({
77
+ input,
78
+ showQuickPick
79
+ });
80
+ container.bind(application_protocol_1.ApplicationServer).toConstantValue({});
81
+ container.bind(variable_1.VariableRegistry).toSelf();
82
+ container.bind(common_variable_contribution_1.CommonVariableContribution).toSelf();
83
+ variables = container.get(variable_1.VariableRegistry);
84
+ await container.get(common_variable_contribution_1.CommonVariableContribution).registerVariables(variables);
85
+ });
86
+ it('keeps promptString inputs open when focus is lost', async () => {
87
+ const resolved = await variables.getVariable('input')?.resolve(workspace, 'task-argument', 'tasks');
88
+ (0, chai_1.expect)(resolved).to.equal('task-argument');
89
+ sinon.assert.calledOnceWithExactly(input, {
90
+ prompt: 'Enter a task argument',
91
+ value: 'default-value',
92
+ ignoreFocusLost: true
93
+ });
94
+ });
95
+ it('accepts an empty promptString value', async () => {
96
+ input.resolves('');
97
+ const resolved = await variables.getVariable('input')?.resolve(workspace, 'task-argument', 'tasks');
98
+ (0, chai_1.expect)(resolved).to.equal('');
99
+ });
100
+ it('cancels promptString inputs when input returns undefined', async () => {
101
+ input.resolves(undefined);
102
+ let error;
103
+ try {
104
+ await variables.getVariable('input')?.resolve(workspace, 'task-argument', 'tasks');
105
+ }
106
+ catch (e) {
107
+ error = e;
108
+ }
109
+ (0, chai_1.expect)((0, cancellation_1.isCancelled)(error)).to.equal(true);
110
+ });
111
+ it('keeps pickString inputs open when focus is lost', async () => {
112
+ showQuickPick.resolves({ label: 'first', value: 'first' });
113
+ const resolved = await variables.getVariable('input')?.resolve(workspace, 'task-argument-choice', 'tasks');
114
+ (0, chai_1.expect)(resolved).to.equal('first');
115
+ sinon.assert.calledOnceWithExactly(showQuickPick, [
116
+ { label: 'second', value: 'second', description: 'Default' },
117
+ { label: 'first', value: 'first' }
118
+ ], {
119
+ placeholder: 'Choose a task argument',
120
+ ignoreFocusOut: true
121
+ });
122
+ });
123
+ it('cancels pickString inputs when no item is selected', async () => {
124
+ showQuickPick.resolves(undefined);
125
+ let error;
126
+ try {
127
+ await variables.getVariable('input')?.resolve(workspace, 'task-argument-choice', 'tasks');
128
+ }
129
+ catch (e) {
130
+ error = e;
131
+ }
132
+ (0, chai_1.expect)((0, cancellation_1.isCancelled)(error)).to.equal(true);
133
+ });
134
+ });
135
+ //# sourceMappingURL=common-variable-contribution.spec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"common-variable-contribution.spec.js","sourceRoot":"","sources":["../../src/browser/common-variable-contribution.spec.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,9 +1,9 @@
1
1
  {
2
2
  "name": "@theia/variable-resolver",
3
- "version": "1.77.0-next.29+b5e3a3281",
3
+ "version": "1.77.0-next.37+29045502f",
4
4
  "description": "Theia - Variable Resolver Extension",
5
5
  "dependencies": {
6
- "@theia/core": "1.77.0-next.29+b5e3a3281",
6
+ "@theia/core": "1.77.0-next.37+29045502f",
7
7
  "tslib": "^2.8.1"
8
8
  },
9
9
  "publishConfig": {
@@ -50,5 +50,5 @@
50
50
  "nyc": {
51
51
  "extends": "../../configs/nyc.json"
52
52
  },
53
- "gitHead": "b5e3a3281ee084a2b7aa65c146caa7313e58d719"
53
+ "gitHead": "29045502ffe2bd1ecd5c655b40f37f0d0bc0c4ad"
54
54
  }
@@ -0,0 +1,157 @@
1
+ // *****************************************************************************
2
+ // Copyright (C) 2026 Md. Mehedi Hasan.
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
+
17
+ import { enableJSDOM } from '@theia/core/lib/browser/test/jsdom';
18
+
19
+ let disableJSDOM = enableJSDOM();
20
+
21
+ import { ResourceContextKey } from '@theia/core/lib/browser/resource-context-key';
22
+ import { ApplicationServer } from '@theia/core/lib/common/application-protocol';
23
+ import { CommandService } from '@theia/core/lib/common/command';
24
+ import { EnvVariablesServer } from '@theia/core/lib/common/env-variables';
25
+ import { isCancelled } from '@theia/core/lib/common/cancellation';
26
+ import { ILogger } from '@theia/core/lib/common/logger';
27
+ import { PreferenceService } from '@theia/core/lib/common/preferences/preference-service';
28
+ import { QuickInputService } from '@theia/core/lib/common/quick-pick-service';
29
+ import { MockLogger } from '@theia/core/lib/common/test/mock-logger';
30
+ import { Container } from '@theia/core/shared/inversify';
31
+ import { expect } from 'chai';
32
+ import * as sinon from 'sinon';
33
+ import URI from '@theia/core/lib/common/uri';
34
+ import { CommonVariableContribution } from './common-variable-contribution';
35
+ import { VariableInput } from './variable-input';
36
+ import { VariableRegistry } from './variable';
37
+
38
+ disableJSDOM();
39
+
40
+ describe('CommonVariableContribution', () => {
41
+
42
+ before(() => {
43
+ disableJSDOM = enableJSDOM();
44
+ });
45
+
46
+ after(() => {
47
+ disableJSDOM();
48
+ });
49
+
50
+ const workspace = new URI('file:///workspace');
51
+ const promptInput: VariableInput = {
52
+ id: 'task-argument',
53
+ type: 'promptString',
54
+ description: 'Enter a task argument',
55
+ default: 'default-value'
56
+ };
57
+ const pickInput: VariableInput = {
58
+ id: 'task-argument-choice',
59
+ type: 'pickString',
60
+ description: 'Choose a task argument',
61
+ options: ['first', 'second'],
62
+ default: 'second'
63
+ };
64
+
65
+ let variables: VariableRegistry;
66
+ let input: sinon.SinonStub;
67
+ let showQuickPick: sinon.SinonStub;
68
+
69
+ beforeEach(async () => {
70
+ const container = new Container();
71
+ container.bind(ILogger).to(MockLogger);
72
+ input = sinon.stub().resolves('task-argument');
73
+ showQuickPick = sinon.stub();
74
+ const inputs = [promptInput, pickInput];
75
+
76
+ container.bind<Partial<EnvVariablesServer>>(EnvVariablesServer).toConstantValue({
77
+ getExecPath: async () => ''
78
+ });
79
+ container.bind<Partial<CommandService>>(CommandService).toConstantValue({});
80
+ container.bind<Partial<PreferenceService>>(PreferenceService).toConstantValue({
81
+ get: sinon.stub().returns({ inputs })
82
+ });
83
+ container.bind<Partial<ResourceContextKey>>(ResourceContextKey).toConstantValue({
84
+ get: () => workspace.toString()
85
+ });
86
+ container.bind<Partial<QuickInputService>>(QuickInputService).toConstantValue({
87
+ input,
88
+ showQuickPick
89
+ });
90
+ container.bind<Partial<ApplicationServer>>(ApplicationServer).toConstantValue({});
91
+ container.bind(VariableRegistry).toSelf();
92
+ container.bind(CommonVariableContribution).toSelf();
93
+
94
+ variables = container.get(VariableRegistry);
95
+ await container.get(CommonVariableContribution).registerVariables(variables);
96
+ });
97
+
98
+ it('keeps promptString inputs open when focus is lost', async () => {
99
+ const resolved = await variables.getVariable('input')?.resolve(workspace, 'task-argument', 'tasks');
100
+
101
+ expect(resolved).to.equal('task-argument');
102
+ sinon.assert.calledOnceWithExactly(input, {
103
+ prompt: 'Enter a task argument',
104
+ value: 'default-value',
105
+ ignoreFocusLost: true
106
+ });
107
+ });
108
+
109
+ it('accepts an empty promptString value', async () => {
110
+ input.resolves('');
111
+
112
+ const resolved = await variables.getVariable('input')?.resolve(workspace, 'task-argument', 'tasks');
113
+
114
+ expect(resolved).to.equal('');
115
+ });
116
+
117
+ it('cancels promptString inputs when input returns undefined', async () => {
118
+ input.resolves(undefined);
119
+
120
+ let error: Error | undefined;
121
+ try {
122
+ await variables.getVariable('input')?.resolve(workspace, 'task-argument', 'tasks');
123
+ } catch (e) {
124
+ error = e as Error;
125
+ }
126
+
127
+ expect(isCancelled(error)).to.equal(true);
128
+ });
129
+
130
+ it('keeps pickString inputs open when focus is lost', async () => {
131
+ showQuickPick.resolves({ label: 'first', value: 'first' });
132
+
133
+ const resolved = await variables.getVariable('input')?.resolve(workspace, 'task-argument-choice', 'tasks');
134
+
135
+ expect(resolved).to.equal('first');
136
+ sinon.assert.calledOnceWithExactly(showQuickPick, [
137
+ { label: 'second', value: 'second', description: 'Default' },
138
+ { label: 'first', value: 'first' }
139
+ ], {
140
+ placeholder: 'Choose a task argument',
141
+ ignoreFocusOut: true
142
+ });
143
+ });
144
+
145
+ it('cancels pickString inputs when no item is selected', async () => {
146
+ showQuickPick.resolves(undefined);
147
+
148
+ let error: Error | undefined;
149
+ try {
150
+ await variables.getVariable('input')?.resolve(workspace, 'task-argument-choice', 'tasks');
151
+ } catch (e) {
152
+ error = e as Error;
153
+ }
154
+
155
+ expect(isCancelled(error)).to.equal(true);
156
+ });
157
+ });
@@ -108,10 +108,15 @@ export class CommonVariableContribution implements VariableContribution {
108
108
  if (typeof input.description !== 'string') {
109
109
  return undefined;
110
110
  }
111
- return this.quickInputService?.input({
111
+ const value = await this.quickInputService?.input({
112
112
  prompt: input.description,
113
- value: input.default
113
+ value: input.default,
114
+ ignoreFocusLost: true
114
115
  });
116
+ if (value === undefined) {
117
+ throw cancelled();
118
+ }
119
+ return value;
115
120
  }
116
121
  if (input.type === 'pickString') {
117
122
  if (typeof input.description !== 'string' || !Array.isArray(input.options)) {
@@ -135,8 +140,14 @@ export class CommonVariableContribution implements VariableContribution {
135
140
  });
136
141
  }
137
142
  }
138
- const selectedPick = await this.quickInputService?.showQuickPick(elements, { placeholder: input.description });
139
- return selectedPick?.value;
143
+ const selectedPick = await this.quickInputService?.showQuickPick(elements, {
144
+ placeholder: input.description,
145
+ ignoreFocusOut: true
146
+ });
147
+ if (!selectedPick) {
148
+ throw cancelled();
149
+ }
150
+ return selectedPick.value;
140
151
  }
141
152
  if (input.type === 'command') {
142
153
  if (typeof input.command !== 'string') {