@microsoft/teamsfx-api 0.22.4-alpha.8a27a2c7c.0 → 0.22.4-alpha.8b99c1e71.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.
- package/build/cli.d.ts +203 -0
- package/build/cli.d.ts.map +1 -0
- package/build/cli.js +5 -0
- package/build/cli.js.map +1 -0
- package/build/constants.d.ts +4 -4
- package/build/constants.d.ts.map +1 -1
- package/build/constants.js +4 -4
- package/build/constants.js.map +1 -1
- package/build/error.d.ts +4 -0
- package/build/error.d.ts.map +1 -1
- package/build/error.js +6 -4
- package/build/error.js.map +1 -1
- package/build/index.d.ts +1 -0
- package/build/index.d.ts.map +1 -1
- package/build/index.js +1 -0
- package/build/index.js.map +1 -1
- package/build/qm/question.d.ts +134 -26
- package/build/qm/question.d.ts.map +1 -1
- package/build/qm/question.js +0 -53
- package/build/qm/question.js.map +1 -1
- package/build/qm/ui.d.ts +59 -10
- package/build/qm/ui.d.ts.map +1 -1
- package/build/qm/validation.d.ts +7 -18
- package/build/qm/validation.d.ts.map +1 -1
- package/build/qm/validation.js +0 -159
- package/build/qm/validation.js.map +1 -1
- package/build/schemas/envConfig.d.ts +128 -0
- package/build/schemas/envConfig.d.ts.map +1 -0
- package/build/schemas/envConfig.js +9 -0
- package/build/schemas/envConfig.js.map +1 -0
- package/build/schemas/envConfig.json +162 -0
- package/build/schemas/index.d.ts +4 -0
- package/build/schemas/index.d.ts.map +1 -0
- package/build/schemas/index.js +10 -0
- package/build/schemas/index.js.map +1 -0
- package/build/schemas/src/schemas/envConfig.json +162 -0
- package/build/types.d.ts +47 -23
- package/build/types.d.ts.map +1 -1
- package/build/types.js +8 -1
- package/build/types.js.map +1 -1
- package/build/utils/log.d.ts +23 -36
- package/build/utils/log.d.ts.map +1 -1
- package/build/utils/log.js +7 -11
- package/build/utils/log.js.map +1 -1
- package/build/utils/login.d.ts +4 -4
- package/build/utils/login.d.ts.map +1 -1
- package/build/utils/login.js +4 -4
- package/build/utils/login.js.map +1 -1
- package/package.json +10 -6
package/build/qm/question.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { Inputs, OptionItem } from "../types";
|
|
2
|
-
import { FuncValidation, StringArrayValidation, StringValidation, ValidationSchema } from "./validation";
|
|
2
|
+
import { ConditionFunc, FuncValidation, StringArrayValidation, StringValidation, ValidationSchema } from "./validation";
|
|
3
3
|
export interface FunctionRouter {
|
|
4
4
|
namespace: string;
|
|
5
5
|
method: string;
|
|
@@ -10,18 +10,18 @@ export interface Func extends FunctionRouter {
|
|
|
10
10
|
/**
|
|
11
11
|
* definition of a function that return some dynamic value
|
|
12
12
|
*/
|
|
13
|
-
export
|
|
14
|
-
export
|
|
13
|
+
export type LocalFunc<T> = (inputs: Inputs) => T | Promise<T>;
|
|
14
|
+
export type OnSelectionChangeFunc = (currentSelectedIds: Set<string>, previousSelectedIds: Set<string>) => Promise<Set<string>>;
|
|
15
15
|
/**
|
|
16
16
|
* static option is `string` array or `OptionItem` array.
|
|
17
17
|
* If the option is a string array, each element of which will be converted to an `OptionItem` object with `id` and `label` field equal to the string element.
|
|
18
18
|
* For example, option=['id1','id2'] => [{'id':'id1', label:'id1'},{'id':'id2', label:'id2'}].
|
|
19
19
|
*/
|
|
20
|
-
export
|
|
20
|
+
export type StaticOptions = string[] | OptionItem[];
|
|
21
21
|
/**
|
|
22
22
|
* dynamic option is defined by a function
|
|
23
23
|
*/
|
|
24
|
-
export
|
|
24
|
+
export type DynamicOptions = LocalFunc<StaticOptions>;
|
|
25
25
|
/**
|
|
26
26
|
* Basic question data
|
|
27
27
|
*/
|
|
@@ -38,6 +38,7 @@ export interface BaseQuestion {
|
|
|
38
38
|
* the answer of the question
|
|
39
39
|
*/
|
|
40
40
|
value?: unknown;
|
|
41
|
+
valueType?: "skip" | "success";
|
|
41
42
|
/**
|
|
42
43
|
* default input value
|
|
43
44
|
*/
|
|
@@ -75,7 +76,7 @@ export interface UserInputQuestion extends BaseQuestion {
|
|
|
75
76
|
/**
|
|
76
77
|
* question type
|
|
77
78
|
*/
|
|
78
|
-
type: "singleSelect" | "multiSelect" | "singleFile" | "multiFile" | "folder" | "text";
|
|
79
|
+
type: "singleSelect" | "multiSelect" | "singleFile" | "multiFile" | "folder" | "text" | "singleFileOrText" | "innerText";
|
|
79
80
|
/**
|
|
80
81
|
* title is required for human input question
|
|
81
82
|
*/
|
|
@@ -102,6 +103,37 @@ export interface UserInputQuestion extends BaseQuestion {
|
|
|
102
103
|
* An optional validation message indicating or explaining the problem with the current input value.
|
|
103
104
|
*/
|
|
104
105
|
validationHelp?: string;
|
|
106
|
+
/**
|
|
107
|
+
* A flag to indicate whether the question is required for CLI non-interactive mode.
|
|
108
|
+
* Default value is false.
|
|
109
|
+
* If not explicitly defined, the framework will try to fillin this field.
|
|
110
|
+
*/
|
|
111
|
+
required?: boolean;
|
|
112
|
+
/**
|
|
113
|
+
* alternative names of the question that use to map the input properties into final Input object
|
|
114
|
+
*/
|
|
115
|
+
alternativeNames?: string[];
|
|
116
|
+
/**
|
|
117
|
+
* CLI option/argument name, if not specified, the question name will be used as the CLI option/argument name
|
|
118
|
+
*/
|
|
119
|
+
cliName?: string;
|
|
120
|
+
/**
|
|
121
|
+
* the question is only for CLI option abbrevation
|
|
122
|
+
*/
|
|
123
|
+
cliShortName?: string;
|
|
124
|
+
/**
|
|
125
|
+
* whether the value is a boolean string value, if true, it will support '--option', which is equivalant to '--option true'
|
|
126
|
+
*/
|
|
127
|
+
isBoolean?: boolean;
|
|
128
|
+
/**
|
|
129
|
+
* whether the question is mapped to CLI option or argument, default is option
|
|
130
|
+
*/
|
|
131
|
+
cliType?: "option" | "argument";
|
|
132
|
+
cliDescription?: string;
|
|
133
|
+
/**
|
|
134
|
+
* @description the question will converted to a hidden option in CLI
|
|
135
|
+
*/
|
|
136
|
+
cliHidden?: boolean;
|
|
105
137
|
}
|
|
106
138
|
/**
|
|
107
139
|
* Definition of single selection question
|
|
@@ -136,6 +168,14 @@ export interface SingleSelectQuestion extends UserInputQuestion {
|
|
|
136
168
|
* if false: use still need to do the selection manually even there is no other choice.
|
|
137
169
|
*/
|
|
138
170
|
skipSingleOption?: boolean;
|
|
171
|
+
/**
|
|
172
|
+
* the command is only for CLI option description
|
|
173
|
+
*/
|
|
174
|
+
cliChoiceListCommand?: string;
|
|
175
|
+
/**
|
|
176
|
+
* whether to skip validation against allowed list in non-interactive mode, default false
|
|
177
|
+
*/
|
|
178
|
+
skipValidation?: boolean;
|
|
139
179
|
}
|
|
140
180
|
/**
|
|
141
181
|
* Definition of multiple selection question
|
|
@@ -181,6 +221,14 @@ export interface MultiSelectQuestion extends UserInputQuestion {
|
|
|
181
221
|
* validation schema for the answer values
|
|
182
222
|
*/
|
|
183
223
|
validation?: StringArrayValidation | FuncValidation<string[]>;
|
|
224
|
+
/**
|
|
225
|
+
* the command is only for CLI option description
|
|
226
|
+
*/
|
|
227
|
+
cliChoiceListCommand?: string;
|
|
228
|
+
/**
|
|
229
|
+
* whether to skip validation against allowed list in non-interactive mode, default false
|
|
230
|
+
*/
|
|
231
|
+
skipValidation?: boolean;
|
|
184
232
|
}
|
|
185
233
|
/**
|
|
186
234
|
* Definition of text input question
|
|
@@ -204,6 +252,33 @@ export interface TextInputQuestion extends UserInputQuestion {
|
|
|
204
252
|
* validation schema, which can be a dynamic function closure
|
|
205
253
|
*/
|
|
206
254
|
validation?: StringValidation | FuncValidation<string>;
|
|
255
|
+
/**
|
|
256
|
+
* validation when user confirms the input.
|
|
257
|
+
*/
|
|
258
|
+
additionalValidationOnAccept?: StringValidation | FuncValidation<string>;
|
|
259
|
+
}
|
|
260
|
+
/**
|
|
261
|
+
* Definition of text input question of a sub-question of SingleFileOrInputQuestion
|
|
262
|
+
*/
|
|
263
|
+
export interface InnerTextInputQuestion extends UserInputQuestion {
|
|
264
|
+
type: "innerText";
|
|
265
|
+
/**
|
|
266
|
+
* If the input value should be hidden. Defaults to false.
|
|
267
|
+
*/
|
|
268
|
+
password?: boolean;
|
|
269
|
+
/**
|
|
270
|
+
* input value.
|
|
271
|
+
*/
|
|
272
|
+
value?: string;
|
|
273
|
+
/**
|
|
274
|
+
* default value
|
|
275
|
+
*
|
|
276
|
+
*/
|
|
277
|
+
default?: string | LocalFunc<string | undefined>;
|
|
278
|
+
/**
|
|
279
|
+
* validation schema, which can be a dynamic function closure
|
|
280
|
+
*/
|
|
281
|
+
validation?: StringValidation | FuncValidation<string>;
|
|
207
282
|
}
|
|
208
283
|
/**
|
|
209
284
|
* Definition of single file selection
|
|
@@ -222,6 +297,20 @@ export interface SingleFileQuestion extends UserInputQuestion {
|
|
|
222
297
|
* validation function
|
|
223
298
|
*/
|
|
224
299
|
validation?: FuncValidation<string>;
|
|
300
|
+
/**
|
|
301
|
+
* This will only take effect in VSC.
|
|
302
|
+
* A set of file filters that are used by the dialog. Each entry is a human-readable label,
|
|
303
|
+
* like "TypeScript", and an array of extensions, e.g.
|
|
304
|
+
* ```ts
|
|
305
|
+
* {
|
|
306
|
+
* 'Images': ['png', 'jpg']
|
|
307
|
+
* 'TypeScript': ['ts', 'tsx']
|
|
308
|
+
* }
|
|
309
|
+
* ```
|
|
310
|
+
*/
|
|
311
|
+
filters?: {
|
|
312
|
+
[name: string]: string[];
|
|
313
|
+
};
|
|
225
314
|
}
|
|
226
315
|
export interface MultiFileQuestion extends UserInputQuestion {
|
|
227
316
|
type: "multiFile";
|
|
@@ -253,16 +342,30 @@ export interface FolderQuestion extends UserInputQuestion {
|
|
|
253
342
|
*/
|
|
254
343
|
validation?: FuncValidation<string>;
|
|
255
344
|
}
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
345
|
+
export interface SingleFileOrInputQuestion extends UserInputQuestion {
|
|
346
|
+
type: "singleFileOrText";
|
|
347
|
+
/**
|
|
348
|
+
* An item shown in the list in VSC that user can click to input text.
|
|
349
|
+
*/
|
|
350
|
+
inputOptionItem: OptionItem;
|
|
351
|
+
/**
|
|
352
|
+
* Config for the input box.
|
|
353
|
+
*/
|
|
354
|
+
inputBoxConfig: InnerTextInputQuestion;
|
|
262
355
|
/**
|
|
263
|
-
*
|
|
356
|
+
* This will only take effect in VSC.
|
|
357
|
+
* A set of file filters that are used by the dialog. Each entry is a human-readable label,
|
|
358
|
+
* like "TypeScript", and an array of extensions, e.g.
|
|
359
|
+
* ```ts
|
|
360
|
+
* {
|
|
361
|
+
* 'Images': ['png', 'jpg']
|
|
362
|
+
* 'TypeScript': ['ts', 'tsx']
|
|
363
|
+
* }
|
|
364
|
+
* ```
|
|
264
365
|
*/
|
|
265
|
-
|
|
366
|
+
filters?: {
|
|
367
|
+
[name: string]: string[];
|
|
368
|
+
};
|
|
266
369
|
}
|
|
267
370
|
/**
|
|
268
371
|
* `Group` is a virtual node in the question tree that wraps a group of questions, which share the same activation condition in this group.
|
|
@@ -271,25 +374,30 @@ export interface Group {
|
|
|
271
374
|
type: "group";
|
|
272
375
|
name?: string;
|
|
273
376
|
}
|
|
274
|
-
export
|
|
377
|
+
export type Question = SingleSelectQuestion | MultiSelectQuestion | TextInputQuestion | SingleFileQuestion | MultiFileQuestion | FolderQuestion | SingleFileQuestion | SingleFileOrInputQuestion;
|
|
275
378
|
/**
|
|
276
|
-
*
|
|
379
|
+
* IQTreeNode is the tree node data structure, which have three main properties:
|
|
277
380
|
* - data: data is either a group or question. Questions can be organized into a group, which has the same trigger condition.
|
|
278
381
|
* - condition: trigger condition for this node to be activated;
|
|
279
382
|
* - children: child questions that will be activated according their trigger condition.
|
|
280
383
|
*/
|
|
281
|
-
export
|
|
384
|
+
export interface IQTreeNode {
|
|
282
385
|
data: Question | Group;
|
|
283
|
-
condition?:
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
386
|
+
condition?: StringValidation | StringArrayValidation | ConditionFunc;
|
|
387
|
+
children?: IQTreeNode[];
|
|
388
|
+
/**
|
|
389
|
+
* @description the question node will be ignored as CLI option in non-interactive mode
|
|
390
|
+
* "self" - only ignore the question itself
|
|
391
|
+
* "children" - ignore all nodes in sub-tree
|
|
392
|
+
* "all" - ignore self and all nodes in sub-tree
|
|
393
|
+
*/
|
|
394
|
+
cliOptionDisabled?: "self" | "children" | "all";
|
|
289
395
|
/**
|
|
290
|
-
*
|
|
396
|
+
* @description the question node will be ignored as an Inputs property
|
|
397
|
+
* "self" - only ignore the question itself
|
|
398
|
+
* "children" - ignore all nodes in sub-tree
|
|
399
|
+
* "all" - ignore self and all nodes in sub-tree
|
|
291
400
|
*/
|
|
292
|
-
|
|
293
|
-
constructor(data: Question | Group);
|
|
401
|
+
inputsDisabled?: "self" | "children" | "all";
|
|
294
402
|
}
|
|
295
403
|
//# sourceMappingURL=question.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"question.d.ts","sourceRoot":"","sources":["../../src/qm/question.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"question.d.ts","sourceRoot":"","sources":["../../src/qm/question.ts"],"names":[],"mappings":"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"}
|
package/build/qm/question.js
CHANGED
|
@@ -2,57 +2,4 @@
|
|
|
2
2
|
// Copyright (c) Microsoft Corporation.
|
|
3
3
|
// Licensed under the MIT license.
|
|
4
4
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
5
|
-
exports.QTreeNode = void 0;
|
|
6
|
-
/**
|
|
7
|
-
* QTreeNode is the tree node data structure, which have three main properties:
|
|
8
|
-
* - data: data is either a group or question. Questions can be organized into a group, which has the same trigger condition.
|
|
9
|
-
* - condition: trigger condition for this node to be activated;
|
|
10
|
-
* - children: child questions that will be activated according their trigger condition.
|
|
11
|
-
*/
|
|
12
|
-
class QTreeNode {
|
|
13
|
-
constructor(data) {
|
|
14
|
-
this.data = data;
|
|
15
|
-
}
|
|
16
|
-
addChild(node) {
|
|
17
|
-
if (!this.children) {
|
|
18
|
-
this.children = [];
|
|
19
|
-
}
|
|
20
|
-
this.children.push(node);
|
|
21
|
-
return this;
|
|
22
|
-
}
|
|
23
|
-
validate() {
|
|
24
|
-
//1. validate the cycle dependency
|
|
25
|
-
//2. validate the name uniqueness
|
|
26
|
-
//3. validate the params of RPC
|
|
27
|
-
// if (this.data.type === NodeType.group && (!this.children || this.children.length === 0)) return false;
|
|
28
|
-
return true;
|
|
29
|
-
}
|
|
30
|
-
/**
|
|
31
|
-
* trim the tree
|
|
32
|
-
*/
|
|
33
|
-
trim() {
|
|
34
|
-
if (this.children) {
|
|
35
|
-
const newChildren = [];
|
|
36
|
-
for (const node of this.children) {
|
|
37
|
-
const trimmed = node.trim();
|
|
38
|
-
if (trimmed)
|
|
39
|
-
newChildren.push(trimmed);
|
|
40
|
-
}
|
|
41
|
-
this.children = newChildren;
|
|
42
|
-
}
|
|
43
|
-
if (this.data.type === "group") {
|
|
44
|
-
if (!this.children || this.children.length === 0)
|
|
45
|
-
return undefined;
|
|
46
|
-
if (this.children.length === 1) {
|
|
47
|
-
const child = this.children[0];
|
|
48
|
-
if (!(this.condition && child.condition)) {
|
|
49
|
-
child.condition || (child.condition = this.condition);
|
|
50
|
-
return child;
|
|
51
|
-
}
|
|
52
|
-
}
|
|
53
|
-
}
|
|
54
|
-
return this;
|
|
55
|
-
}
|
|
56
|
-
}
|
|
57
|
-
exports.QTreeNode = QTreeNode;
|
|
58
5
|
//# sourceMappingURL=question.js.map
|
package/build/qm/question.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"question.js","sourceRoot":"","sources":["../../src/qm/question.ts"],"names":[],"mappings":";AAAA,uCAAuC;AACvC,kCAAkC
|
|
1
|
+
{"version":3,"file":"question.js","sourceRoot":"","sources":["../../src/qm/question.ts"],"names":[],"mappings":";AAAA,uCAAuC;AACvC,kCAAkC"}
|
package/build/qm/ui.d.ts
CHANGED
|
@@ -36,7 +36,7 @@ export interface UIConfig<T> {
|
|
|
36
36
|
/**
|
|
37
37
|
* default input value
|
|
38
38
|
*/
|
|
39
|
-
default?: T;
|
|
39
|
+
default?: T | (() => Promise<T>);
|
|
40
40
|
/**
|
|
41
41
|
* A function that will be called to validate input and to give a hint to the user.
|
|
42
42
|
*
|
|
@@ -66,6 +66,7 @@ export interface SingleSelectConfig extends UIConfig<string> {
|
|
|
66
66
|
* option array or a callback function which returns option array
|
|
67
67
|
*/
|
|
68
68
|
options: StaticOptions | (() => Promise<StaticOptions>);
|
|
69
|
+
default?: string | (() => Promise<string>);
|
|
69
70
|
/**
|
|
70
71
|
* This config only works for option items with `OptionItem[]` type. If `returnObject` is true, the answer value is an `OptionItem` object; otherwise, the answer value is the `id` string of the `OptionItem`.
|
|
71
72
|
* In case of option items with `string[]` type, whether `returnObject` is true or false, the returned answer value is always a string.
|
|
@@ -84,6 +85,7 @@ export interface MultiSelectConfig extends UIConfig<string[]> {
|
|
|
84
85
|
* option array or a callback function which returns option array
|
|
85
86
|
*/
|
|
86
87
|
options: StaticOptions | (() => Promise<StaticOptions>);
|
|
88
|
+
default?: string[] | (() => Promise<string[]>);
|
|
87
89
|
/**
|
|
88
90
|
* This config only works for option items with `OptionItem[]` type. If `returnObject` is true, the answer value is an array of `OptionItem` objects; otherwise, the answer value is an array of `id` strings.
|
|
89
91
|
* In case of option items with `string[]` type, whether `returnObject` is true or false, the returned answer value is always a string array.
|
|
@@ -109,12 +111,22 @@ export interface InputTextConfig extends UIConfig<string> {
|
|
|
109
111
|
* If the input value should be hidden. Defaults to false.
|
|
110
112
|
*/
|
|
111
113
|
password?: boolean;
|
|
114
|
+
default?: string | (() => Promise<string>);
|
|
115
|
+
/**
|
|
116
|
+
* A function that will be called to validate the input that user accepted.
|
|
117
|
+
*
|
|
118
|
+
* @param input The current value of the input to be validated.
|
|
119
|
+
* @return A human-readable string which is presented as diagnostic message.
|
|
120
|
+
* Return `undefined` when 'value' is valid.
|
|
121
|
+
*/
|
|
122
|
+
additionalValidationOnAccept?: (input: string) => string | undefined | Promise<string | undefined>;
|
|
112
123
|
}
|
|
113
124
|
/**
|
|
114
125
|
* single file selector config
|
|
115
126
|
*/
|
|
116
|
-
export
|
|
127
|
+
export type SelectFileConfig = UIConfig<string> & {
|
|
117
128
|
/**
|
|
129
|
+
* This will only take effect in VSC.
|
|
118
130
|
* A set of file filters that are used by the dialog. Each entry is a human-readable label,
|
|
119
131
|
* like "TypeScript", and an array of extensions, e.g.
|
|
120
132
|
* ```ts
|
|
@@ -127,6 +139,7 @@ export declare type SelectFileConfig = UIConfig<string> & {
|
|
|
127
139
|
filters?: {
|
|
128
140
|
[name: string]: string[];
|
|
129
141
|
};
|
|
142
|
+
default?: string | (() => Promise<string>);
|
|
130
143
|
/**
|
|
131
144
|
* Possible files that will be listed for users to select.
|
|
132
145
|
* The id cannot be "default" or "browse" as they are reserved for default and browse options.
|
|
@@ -140,8 +153,9 @@ export declare type SelectFileConfig = UIConfig<string> & {
|
|
|
140
153
|
/**
|
|
141
154
|
* multiple files selector config
|
|
142
155
|
*/
|
|
143
|
-
export
|
|
156
|
+
export type SelectFilesConfig = UIConfig<string[]> & {
|
|
144
157
|
/**
|
|
158
|
+
* This will only take effect in VSC.
|
|
145
159
|
* A set of file filters that are used by the dialog. Each entry is a human-readable label,
|
|
146
160
|
* like "TypeScript", and an array of extensions, e.g.
|
|
147
161
|
* ```ts
|
|
@@ -154,11 +168,14 @@ export declare type SelectFilesConfig = UIConfig<string[]> & {
|
|
|
154
168
|
filters?: {
|
|
155
169
|
[name: string]: string[];
|
|
156
170
|
};
|
|
171
|
+
default?: string[] | (() => Promise<string[]>);
|
|
157
172
|
};
|
|
158
173
|
/**
|
|
159
174
|
* folder selector config
|
|
160
175
|
*/
|
|
161
|
-
export
|
|
176
|
+
export type SelectFolderConfig = UIConfig<string> & {
|
|
177
|
+
default?: string | (() => Promise<string>);
|
|
178
|
+
};
|
|
162
179
|
/**
|
|
163
180
|
* func execution config
|
|
164
181
|
*/
|
|
@@ -166,6 +183,30 @@ export interface ExecuteFuncConfig extends UIConfig<string> {
|
|
|
166
183
|
func: LocalFunc<any>;
|
|
167
184
|
inputs: Inputs;
|
|
168
185
|
}
|
|
186
|
+
export interface SingleFileOrInputConfig extends UIConfig<string> {
|
|
187
|
+
/**
|
|
188
|
+
* An item shown in the list in VSC that user can click to input text.
|
|
189
|
+
*/
|
|
190
|
+
inputOptionItem: OptionItem;
|
|
191
|
+
/**
|
|
192
|
+
* Config for the input box.
|
|
193
|
+
*/
|
|
194
|
+
inputBoxConfig: UIConfig<string>;
|
|
195
|
+
/**
|
|
196
|
+
* This will only take effect in VSC.
|
|
197
|
+
* A set of file filters that are used by the dialog. Each entry is a human-readable label,
|
|
198
|
+
* like "TypeScript", and an array of extensions, e.g.
|
|
199
|
+
* ```ts
|
|
200
|
+
* {
|
|
201
|
+
* 'Images': ['png', 'jpg']
|
|
202
|
+
* 'TypeScript': ['ts', 'tsx']
|
|
203
|
+
* }
|
|
204
|
+
* ```
|
|
205
|
+
*/
|
|
206
|
+
filters?: {
|
|
207
|
+
[name: string]: string[];
|
|
208
|
+
};
|
|
209
|
+
}
|
|
169
210
|
/**
|
|
170
211
|
* a wrapper of user input result
|
|
171
212
|
*/
|
|
@@ -181,12 +222,12 @@ export interface InputResult<T> {
|
|
|
181
222
|
*/
|
|
182
223
|
result?: T;
|
|
183
224
|
}
|
|
184
|
-
export
|
|
185
|
-
export
|
|
186
|
-
export
|
|
187
|
-
export
|
|
188
|
-
export
|
|
189
|
-
export
|
|
225
|
+
export type SingleSelectResult = InputResult<string | OptionItem>;
|
|
226
|
+
export type MultiSelectResult = InputResult<StaticOptions>;
|
|
227
|
+
export type InputTextResult = InputResult<string>;
|
|
228
|
+
export type SelectFileResult = InputResult<string>;
|
|
229
|
+
export type SelectFilesResult = InputResult<string[]>;
|
|
230
|
+
export type SelectFolderResult = InputResult<string>;
|
|
190
231
|
/**
|
|
191
232
|
* Definition of user interaction, which is platform independent
|
|
192
233
|
*/
|
|
@@ -297,6 +338,14 @@ export interface UserInteraction {
|
|
|
297
338
|
[k: string]: string;
|
|
298
339
|
};
|
|
299
340
|
}): Promise<Result<string, FxError>>;
|
|
341
|
+
/**
|
|
342
|
+
* In VSC, it shows two options to user, one will open a dialog to the user which allows to select a single file, another one will show an input box asking to enter a value.
|
|
343
|
+
* If CLI, it will directly asks user to enter a value.
|
|
344
|
+
* @param config config to select local file or enter a value
|
|
345
|
+
* @returns A promise that resolves to the local file path or the value entered by user or FxError
|
|
346
|
+
* @throws FxError
|
|
347
|
+
*/
|
|
348
|
+
selectFileOrInput?(config: SingleFileOrInputConfig): Promise<Result<InputResult<string>, FxError>>;
|
|
300
349
|
}
|
|
301
350
|
export interface IProgressHandler {
|
|
302
351
|
/**
|
package/build/qm/ui.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ui.d.ts","sourceRoot":"","sources":["../../src/qm/ui.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,MAAM,EAAE,MAAM,YAAY,CAAC;AACpC,OAAO,EAAE,SAAS,
|
|
1
|
+
{"version":3,"file":"ui.d.ts","sourceRoot":"","sources":["../../src/qm/ui.ts"],"names":[],"mappings":"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"}
|
package/build/qm/validation.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { Inputs, OptionItem } from "../types";
|
|
2
|
-
export
|
|
2
|
+
export type ValidateFunc<T> = (input: T, inputs?: Inputs) => string | undefined | Promise<string | undefined>;
|
|
3
3
|
/**
|
|
4
4
|
* Validation for Any Instance Type
|
|
5
5
|
* JSON Schema Validation reference: http://json-schema.org/draft/2019-09/json-schema-validation.html
|
|
@@ -54,6 +54,10 @@ export interface StringValidation extends StaticValidation {
|
|
|
54
54
|
* An instance validates successfully against this keyword if its value is not equal to the value of the keyword.
|
|
55
55
|
*/
|
|
56
56
|
notEquals?: string;
|
|
57
|
+
/**
|
|
58
|
+
* A string instance validates successfully against this keyword if its value does not equal to any of the elements in this keyword's array value.
|
|
59
|
+
*/
|
|
60
|
+
excludesEnum?: string[];
|
|
57
61
|
}
|
|
58
62
|
/**
|
|
59
63
|
* Validation for String Arrays
|
|
@@ -111,24 +115,9 @@ export interface FuncValidation<T extends string | string[] | OptionItem | Optio
|
|
|
111
115
|
*/
|
|
112
116
|
validFunc: ValidateFunc<T>;
|
|
113
117
|
}
|
|
118
|
+
export type ConditionFunc = (inputs: Inputs) => boolean | Promise<boolean>;
|
|
114
119
|
/**
|
|
115
120
|
* Definition of validation schema, which is a union of `StringValidation`, `StringArrayValidation` and `FuncValidation<any>`
|
|
116
121
|
*/
|
|
117
|
-
export
|
|
118
|
-
/**
|
|
119
|
-
* A function to return a validation function according the validation schema
|
|
120
|
-
* @param validation validation schema
|
|
121
|
-
* @param inputs object to carry all user inputs
|
|
122
|
-
* @returns a validation function
|
|
123
|
-
*/
|
|
124
|
-
export declare function getValidationFunction<T extends string | string[] | undefined>(validation: ValidationSchema, inputs: Inputs): (input: T) => string | undefined | Promise<string | undefined>;
|
|
125
|
-
/**
|
|
126
|
-
* Implementation of validation function
|
|
127
|
-
* @param validSchema validation schema
|
|
128
|
-
* @param value value to validate
|
|
129
|
-
* @param inputs user inputs object, which works as the context of the validation
|
|
130
|
-
* @returns A human-readable string which is presented as diagnostic message.
|
|
131
|
-
* Return `undefined` when 'value' is valid.
|
|
132
|
-
*/
|
|
133
|
-
export declare function validate<T extends string | string[] | OptionItem | OptionItem[] | undefined>(validSchema: ValidationSchema, value: T, inputs?: Inputs): Promise<string | undefined>;
|
|
122
|
+
export type ValidationSchema = StringValidation | StringArrayValidation | FuncValidation<any>;
|
|
134
123
|
//# sourceMappingURL=validation.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"validation.d.ts","sourceRoot":"","sources":["../../src/qm/validation.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"validation.d.ts","sourceRoot":"","sources":["../../src/qm/validation.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAE9C,MAAM,MAAM,YAAY,CAAC,CAAC,IAAI,CAC5B,KAAK,EAAE,CAAC,EACR,MAAM,CAAC,EAAE,MAAM,KACZ,MAAM,GAAG,SAAS,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAAC;AAEtD;;;GAGG;AACH,MAAM,WAAW,gBAAgB;IAC/B;;OAEG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB;;OAEG;IACH,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAED;;GAEG;AACH,MAAM,WAAW,gBAAiB,SAAQ,gBAAgB;IACxD;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;OAEG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB;;OAEG;IACH,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB;;OAEG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB;;OAEG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB;;OAEG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB;;OAEG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB;;OAEG;IACH,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;CACzB;AAED;;GAEG;AACH,MAAM,WAAW,qBAAsB,SAAQ,gBAAgB;IAC7D;;;OAGG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB;;;OAGG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB;;OAEG;IACH,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB;;OAEG;IACH,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB;;OAEG;IACH,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAEhB;;OAEG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB;;OAEG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB;;OAEG;IACH,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;IACvB;;OAEG;IACH,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;CACxB;AAED;;GAEG;AACH,MAAM,WAAW,cAAc,CAC7B,CAAC,SAAS,MAAM,GAAG,MAAM,EAAE,GAAG,UAAU,GAAG,UAAU,EAAE,GAAG,SAAS;IAEnE;;;;;;OAMG;IACH,SAAS,EAAE,YAAY,CAAC,CAAC,CAAC,CAAC;CAC5B;AAED,MAAM,MAAM,aAAa,GAAG,CAAC,MAAM,EAAE,MAAM,KAAK,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;AAE3E;;GAEG;AACH,MAAM,MAAM,gBAAgB,GAAG,gBAAgB,GAAG,qBAAqB,GAAG,cAAc,CAAC,GAAG,CAAC,CAAC"}
|