@microsoft/teamsfx-api 0.22.4-alpha.9fd4f497a.0 → 0.22.4-alpha.a99162fe0.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 +195 -0
- package/build/cli.d.ts.map +1 -0
- package/build/{bicep.js → cli.js} +1 -1
- package/build/cli.js.map +1 -0
- package/build/constants.d.ts +4 -9
- package/build/constants.d.ts.map +1 -1
- package/build/constants.js +4 -9
- package/build/constants.js.map +1 -1
- package/build/context.d.ts +9 -28
- package/build/context.d.ts.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 +5 -12
- package/build/index.d.ts.map +1 -1
- package/build/index.js +5 -13
- package/build/index.js.map +1 -1
- package/build/qm/question.d.ts +126 -15
- package/build/qm/question.d.ts.map +1 -1
- package/build/qm/question.js.map +1 -1
- package/build/qm/ui.d.ts +53 -3
- package/build/qm/ui.d.ts.map +1 -1
- package/build/qm/validation.d.ts +6 -1
- package/build/qm/validation.d.ts.map +1 -1
- package/build/qm/validation.js +48 -11
- package/build/qm/validation.js.map +1 -1
- package/build/types.d.ts +70 -144
- package/build/types.d.ts.map +1 -1
- package/build/types.js +8 -87
- package/build/types.js.map +1 -1
- package/build/utils/login.d.ts.map +1 -1
- package/build/utils/login.js +3 -3
- package/build/utils/login.js.map +1 -1
- package/build/utils/telemetry.d.ts.map +1 -1
- package/package.json +4 -4
- package/build/action.d.ts +0 -109
- package/build/action.d.ts.map +0 -1
- package/build/action.js +0 -5
- package/build/action.js.map +0 -1
- package/build/bicep.d.ts +0 -19
- package/build/bicep.d.ts.map +0 -1
- package/build/bicep.js.map +0 -1
- package/build/component.d.ts +0 -31
- package/build/component.d.ts.map +0 -1
- package/build/component.js +0 -3
- package/build/component.js.map +0 -1
- package/build/v2/index.d.ts +0 -2
- package/build/v2/index.d.ts.map +0 -1
- package/build/v2/index.js +0 -7
- package/build/v2/index.js.map +0 -1
- package/build/v2/types.d.ts +0 -32
- package/build/v2/types.d.ts.map +0 -1
- package/build/v2/types.js +0 -5
- package/build/v2/types.js.map +0 -1
- package/build/v3/AzureResourceStates.d.ts +0 -58
- package/build/v3/AzureResourceStates.d.ts.map +0 -1
- package/build/v3/AzureResourceStates.js +0 -3
- package/build/v3/AzureResourceStates.js.map +0 -1
- package/build/v3/index.d.ts +0 -5
- package/build/v3/index.d.ts.map +0 -1
- package/build/v3/index.js +0 -10
- package/build/v3/index.js.map +0 -1
- package/build/v3/plugins.d.ts +0 -12
- package/build/v3/plugins.d.ts.map +0 -1
- package/build/v3/plugins.js +0 -5
- package/build/v3/plugins.js.map +0 -1
- package/build/v3/resourceStates.d.ts +0 -66
- package/build/v3/resourceStates.d.ts.map +0 -1
- package/build/v3/resourceStates.js +0 -5
- package/build/v3/resourceStates.js.map +0 -1
- package/build/v3/types.d.ts +0 -28
- package/build/v3/types.d.ts.map +0 -1
- package/build/v3/types.js +0 -5
- package/build/v3/types.js.map +0 -1
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;
|
|
@@ -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";
|
|
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,10 @@ 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>;
|
|
207
259
|
}
|
|
208
260
|
/**
|
|
209
261
|
* Definition of single file selection
|
|
@@ -222,6 +274,20 @@ export interface SingleFileQuestion extends UserInputQuestion {
|
|
|
222
274
|
* validation function
|
|
223
275
|
*/
|
|
224
276
|
validation?: FuncValidation<string>;
|
|
277
|
+
/**
|
|
278
|
+
* This will only take effect in VSC.
|
|
279
|
+
* A set of file filters that are used by the dialog. Each entry is a human-readable label,
|
|
280
|
+
* like "TypeScript", and an array of extensions, e.g.
|
|
281
|
+
* ```ts
|
|
282
|
+
* {
|
|
283
|
+
* 'Images': ['png', 'jpg']
|
|
284
|
+
* 'TypeScript': ['ts', 'tsx']
|
|
285
|
+
* }
|
|
286
|
+
* ```
|
|
287
|
+
*/
|
|
288
|
+
filters?: {
|
|
289
|
+
[name: string]: string[];
|
|
290
|
+
};
|
|
225
291
|
}
|
|
226
292
|
export interface MultiFileQuestion extends UserInputQuestion {
|
|
227
293
|
type: "multiFile";
|
|
@@ -253,16 +319,30 @@ export interface FolderQuestion extends UserInputQuestion {
|
|
|
253
319
|
*/
|
|
254
320
|
validation?: FuncValidation<string>;
|
|
255
321
|
}
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
* The dynamic data can be referred by the following question.
|
|
259
|
-
*/
|
|
260
|
-
export interface FuncQuestion extends BaseQuestion {
|
|
261
|
-
type: "func";
|
|
322
|
+
export interface SingleFileOrInputQuestion extends UserInputQuestion {
|
|
323
|
+
type: "singleFileOrText";
|
|
262
324
|
/**
|
|
263
|
-
*
|
|
325
|
+
* An item shown in the list in VSC that user can click to input text.
|
|
264
326
|
*/
|
|
265
|
-
|
|
327
|
+
inputOptionItem: OptionItem;
|
|
328
|
+
/**
|
|
329
|
+
* Config for the input box.
|
|
330
|
+
*/
|
|
331
|
+
inputBoxConfig: TextInputQuestion;
|
|
332
|
+
/**
|
|
333
|
+
* This will only take effect in VSC.
|
|
334
|
+
* A set of file filters that are used by the dialog. Each entry is a human-readable label,
|
|
335
|
+
* like "TypeScript", and an array of extensions, e.g.
|
|
336
|
+
* ```ts
|
|
337
|
+
* {
|
|
338
|
+
* 'Images': ['png', 'jpg']
|
|
339
|
+
* 'TypeScript': ['ts', 'tsx']
|
|
340
|
+
* }
|
|
341
|
+
* ```
|
|
342
|
+
*/
|
|
343
|
+
filters?: {
|
|
344
|
+
[name: string]: string[];
|
|
345
|
+
};
|
|
266
346
|
}
|
|
267
347
|
/**
|
|
268
348
|
* `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,19 +351,31 @@ export interface Group {
|
|
|
271
351
|
type: "group";
|
|
272
352
|
name?: string;
|
|
273
353
|
}
|
|
274
|
-
export declare type Question = SingleSelectQuestion | MultiSelectQuestion | TextInputQuestion | SingleFileQuestion | MultiFileQuestion | FolderQuestion |
|
|
354
|
+
export declare type Question = SingleSelectQuestion | MultiSelectQuestion | TextInputQuestion | SingleFileQuestion | MultiFileQuestion | FolderQuestion | SingleFileQuestion | SingleFileOrInputQuestion;
|
|
275
355
|
/**
|
|
276
356
|
* QTreeNode is the tree node data structure, which have three main properties:
|
|
277
357
|
* - data: data is either a group or question. Questions can be organized into a group, which has the same trigger condition.
|
|
278
358
|
* - condition: trigger condition for this node to be activated;
|
|
279
359
|
* - children: child questions that will be activated according their trigger condition.
|
|
280
360
|
*/
|
|
281
|
-
export declare class QTreeNode {
|
|
361
|
+
export declare class QTreeNode implements IQTreeNode {
|
|
282
362
|
data: Question | Group;
|
|
283
|
-
condition?:
|
|
284
|
-
target?: string;
|
|
285
|
-
};
|
|
363
|
+
condition?: StringValidation | StringArrayValidation | ConditionFunc;
|
|
286
364
|
children?: QTreeNode[];
|
|
365
|
+
/**
|
|
366
|
+
* @description the question node will be ignored as CLI option in non-interactive mode
|
|
367
|
+
* "self" - only ignore the question itself
|
|
368
|
+
* "children" - ignore all nodes in sub-tree
|
|
369
|
+
* "all" - ignore self and all nodes in sub-tree
|
|
370
|
+
*/
|
|
371
|
+
cliOptionDisabled?: "self" | "children" | "all";
|
|
372
|
+
/**
|
|
373
|
+
* @description the question node will be ignored as an Inputs property
|
|
374
|
+
* "self" - only ignore the question itself
|
|
375
|
+
* "children" - ignore all nodes in sub-tree
|
|
376
|
+
* "all" - ignore self and all nodes in sub-tree
|
|
377
|
+
*/
|
|
378
|
+
inputsDisabled?: "self" | "children" | "all";
|
|
287
379
|
addChild(node: QTreeNode): QTreeNode;
|
|
288
380
|
validate(): boolean;
|
|
289
381
|
/**
|
|
@@ -292,4 +384,23 @@ export declare class QTreeNode {
|
|
|
292
384
|
trim(): QTreeNode | undefined;
|
|
293
385
|
constructor(data: Question | Group);
|
|
294
386
|
}
|
|
387
|
+
export interface IQTreeNode {
|
|
388
|
+
data: Question | Group;
|
|
389
|
+
condition?: StringValidation | StringArrayValidation | ConditionFunc;
|
|
390
|
+
children?: IQTreeNode[];
|
|
391
|
+
/**
|
|
392
|
+
* @description the question node will be ignored as CLI option in non-interactive mode
|
|
393
|
+
* "self" - only ignore the question itself
|
|
394
|
+
* "children" - ignore all nodes in sub-tree
|
|
395
|
+
* "all" - ignore self and all nodes in sub-tree
|
|
396
|
+
*/
|
|
397
|
+
cliOptionDisabled?: "self" | "children" | "all";
|
|
398
|
+
/**
|
|
399
|
+
* @description the question node will be ignored as an Inputs property
|
|
400
|
+
* "self" - only ignore the question itself
|
|
401
|
+
* "children" - ignore all nodes in sub-tree
|
|
402
|
+
* "all" - ignore self and all nodes in sub-tree
|
|
403
|
+
*/
|
|
404
|
+
inputsDisabled?: "self" | "children" | "all";
|
|
405
|
+
}
|
|
295
406
|
//# 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.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;;;AA0alC;;;;;GAKG;AACH,MAAa,SAAS;IAyDpB,YAAY,IAAsB;QAChC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IACnB,CAAC;IAzCD,QAAQ,CAAC,IAAe;QACtB,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;YAClB,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC;SACpB;QACD,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACzB,OAAO,IAAI,CAAC;IACd,CAAC;IACD,QAAQ;QACN,kCAAkC;QAClC,iCAAiC;QACjC,+BAA+B;QAC/B,yGAAyG;QACzG,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;OAEG;IACH,IAAI;QACF,IAAI,IAAI,CAAC,QAAQ,EAAE;YACjB,MAAM,WAAW,GAAgB,EAAE,CAAC;YACpC,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,QAAQ,EAAE;gBAChC,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;gBAC5B,IAAI,OAAO;oBAAE,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;aACxC;YACD,IAAI,CAAC,QAAQ,GAAG,WAAW,CAAC;SAC7B;QACD,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,KAAK,OAAO,EAAE;YAC9B,IAAI,CAAC,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,KAAK,CAAC;gBAAE,OAAO,SAAS,CAAC;YACnE,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE;gBAC9B,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;gBAC/B,IAAI,CAAC,CAAC,IAAI,CAAC,SAAS,IAAI,KAAK,CAAC,SAAS,CAAC,EAAE;oBACxC,KAAK,CAAC,SAAS,KAAf,KAAK,CAAC,SAAS,GAAK,IAAI,CAAC,SAAS,EAAC;oBACnC,OAAO,KAAK,CAAC;iBACd;aACF;SACF;QACD,OAAO,IAAI,CAAC;IACd,CAAC;CAIF;AA5DD,8BA4DC"}
|
package/build/qm/ui.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { Result } from "neverthrow";
|
|
2
|
-
import { LocalFunc } from ".";
|
|
2
|
+
import { LocalFunc, ValidateFunc } from ".";
|
|
3
3
|
import { FxError } from "../error";
|
|
4
4
|
import { OnSelectionChangeFunc, StaticOptions } from "../qm/question";
|
|
5
5
|
import { Inputs, OptionItem } from "../types";
|
|
@@ -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,23 @@ 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
|
+
* @param inputs The current values of all inputs.
|
|
120
|
+
* @return A human-readable string which is presented as diagnostic message.
|
|
121
|
+
* Return `undefined` when 'value' is valid.
|
|
122
|
+
*/
|
|
123
|
+
additionalValidationOnAccept?: ValidateFunc<string>;
|
|
112
124
|
}
|
|
113
125
|
/**
|
|
114
126
|
* single file selector config
|
|
115
127
|
*/
|
|
116
128
|
export declare type SelectFileConfig = UIConfig<string> & {
|
|
117
129
|
/**
|
|
130
|
+
* This will only take effect in VSC.
|
|
118
131
|
* A set of file filters that are used by the dialog. Each entry is a human-readable label,
|
|
119
132
|
* like "TypeScript", and an array of extensions, e.g.
|
|
120
133
|
* ```ts
|
|
@@ -127,6 +140,7 @@ export declare type SelectFileConfig = UIConfig<string> & {
|
|
|
127
140
|
filters?: {
|
|
128
141
|
[name: string]: string[];
|
|
129
142
|
};
|
|
143
|
+
default?: string | (() => Promise<string>);
|
|
130
144
|
/**
|
|
131
145
|
* Possible files that will be listed for users to select.
|
|
132
146
|
* The id cannot be "default" or "browse" as they are reserved for default and browse options.
|
|
@@ -142,6 +156,7 @@ export declare type SelectFileConfig = UIConfig<string> & {
|
|
|
142
156
|
*/
|
|
143
157
|
export declare type SelectFilesConfig = UIConfig<string[]> & {
|
|
144
158
|
/**
|
|
159
|
+
* This will only take effect in VSC.
|
|
145
160
|
* A set of file filters that are used by the dialog. Each entry is a human-readable label,
|
|
146
161
|
* like "TypeScript", and an array of extensions, e.g.
|
|
147
162
|
* ```ts
|
|
@@ -154,11 +169,14 @@ export declare type SelectFilesConfig = UIConfig<string[]> & {
|
|
|
154
169
|
filters?: {
|
|
155
170
|
[name: string]: string[];
|
|
156
171
|
};
|
|
172
|
+
default?: string[] | (() => Promise<string[]>);
|
|
157
173
|
};
|
|
158
174
|
/**
|
|
159
175
|
* folder selector config
|
|
160
176
|
*/
|
|
161
|
-
export declare type SelectFolderConfig = UIConfig<string
|
|
177
|
+
export declare type SelectFolderConfig = UIConfig<string> & {
|
|
178
|
+
default?: string | (() => Promise<string>);
|
|
179
|
+
};
|
|
162
180
|
/**
|
|
163
181
|
* func execution config
|
|
164
182
|
*/
|
|
@@ -166,6 +184,30 @@ export interface ExecuteFuncConfig extends UIConfig<string> {
|
|
|
166
184
|
func: LocalFunc<any>;
|
|
167
185
|
inputs: Inputs;
|
|
168
186
|
}
|
|
187
|
+
export interface SingleFileOrInputConfig extends UIConfig<string> {
|
|
188
|
+
/**
|
|
189
|
+
* An item shown in the list in VSC that user can click to input text.
|
|
190
|
+
*/
|
|
191
|
+
inputOptionItem: OptionItem;
|
|
192
|
+
/**
|
|
193
|
+
* Config for the input box.
|
|
194
|
+
*/
|
|
195
|
+
inputBoxConfig: InputTextConfig;
|
|
196
|
+
/**
|
|
197
|
+
* This will only take effect in VSC.
|
|
198
|
+
* A set of file filters that are used by the dialog. Each entry is a human-readable label,
|
|
199
|
+
* like "TypeScript", and an array of extensions, e.g.
|
|
200
|
+
* ```ts
|
|
201
|
+
* {
|
|
202
|
+
* 'Images': ['png', 'jpg']
|
|
203
|
+
* 'TypeScript': ['ts', 'tsx']
|
|
204
|
+
* }
|
|
205
|
+
* ```
|
|
206
|
+
*/
|
|
207
|
+
filters?: {
|
|
208
|
+
[name: string]: string[];
|
|
209
|
+
};
|
|
210
|
+
}
|
|
169
211
|
/**
|
|
170
212
|
* a wrapper of user input result
|
|
171
213
|
*/
|
|
@@ -297,6 +339,14 @@ export interface UserInteraction {
|
|
|
297
339
|
[k: string]: string;
|
|
298
340
|
};
|
|
299
341
|
}): Promise<Result<string, FxError>>;
|
|
342
|
+
/**
|
|
343
|
+
* 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.
|
|
344
|
+
* If CLI, it will directly asks user to enter a value.
|
|
345
|
+
* @param config config to select local file or enter a value
|
|
346
|
+
* @returns A promise that resolves to the local file path or the value entered by user or FxError
|
|
347
|
+
* @throws FxError
|
|
348
|
+
*/
|
|
349
|
+
selectFileOrInput?(config: SingleFileOrInputConfig): Promise<Result<InputResult<string>, FxError>>;
|
|
300
350
|
}
|
|
301
351
|
export interface IProgressHandler {
|
|
302
352
|
/**
|
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,EAAE,MAAM,GAAG,CAAC;
|
|
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
|
@@ -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,6 +115,7 @@ export interface FuncValidation<T extends string | string[] | OptionItem | Optio
|
|
|
111
115
|
*/
|
|
112
116
|
validFunc: ValidateFunc<T>;
|
|
113
117
|
}
|
|
118
|
+
export declare 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
|
*/
|
|
@@ -130,5 +135,5 @@ export declare function getValidationFunction<T extends string | string[] | unde
|
|
|
130
135
|
* @returns A human-readable string which is presented as diagnostic message.
|
|
131
136
|
* Return `undefined` when 'value' is valid.
|
|
132
137
|
*/
|
|
133
|
-
export declare function validate<T extends string | string[] | OptionItem | OptionItem[] | undefined>(validSchema: ValidationSchema, value: T, inputs?: Inputs): Promise<string | undefined>;
|
|
138
|
+
export declare function validate<T extends string | string[] | OptionItem | OptionItem[] | undefined>(validSchema: ValidationSchema | ConditionFunc, value: T, inputs?: Inputs): Promise<string | undefined>;
|
|
134
139
|
//# sourceMappingURL=validation.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"validation.d.ts","sourceRoot":"","sources":["../../src/qm/validation.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAE9C,oBAAY,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;
|
|
1
|
+
{"version":3,"file":"validation.d.ts","sourceRoot":"","sources":["../../src/qm/validation.ts"],"names":[],"mappings":"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"}
|
package/build/qm/validation.js
CHANGED
|
@@ -33,19 +33,51 @@ async function validate(validSchema, value, inputs) {
|
|
|
33
33
|
const res = await funcValidation.validFunc(value, inputs);
|
|
34
34
|
return res;
|
|
35
35
|
}
|
|
36
|
+
else if (typeof funcValidation === "function") {
|
|
37
|
+
const res = await funcValidation(inputs);
|
|
38
|
+
if (res)
|
|
39
|
+
return undefined;
|
|
40
|
+
return "condition function is not met.";
|
|
41
|
+
}
|
|
36
42
|
}
|
|
37
43
|
if (!value) {
|
|
38
44
|
if (validSchema.required === true)
|
|
39
45
|
return `input value is required.`;
|
|
40
46
|
}
|
|
47
|
+
const noneEmptyKeyNum = Object.keys(validSchema).filter((key) => validSchema[key] !== undefined).length;
|
|
48
|
+
if (noneEmptyKeyNum === 0) {
|
|
49
|
+
return undefined;
|
|
50
|
+
}
|
|
51
|
+
if (value === undefined &&
|
|
52
|
+
(validSchema.required ||
|
|
53
|
+
validSchema.equals ||
|
|
54
|
+
validSchema.maxLength ||
|
|
55
|
+
validSchema.minLength ||
|
|
56
|
+
validSchema.pattern ||
|
|
57
|
+
validSchema.enum ||
|
|
58
|
+
validSchema.startsWith ||
|
|
59
|
+
validSchema.endsWith ||
|
|
60
|
+
validSchema.includes ||
|
|
61
|
+
validSchema.maxItems ||
|
|
62
|
+
validSchema.minItems ||
|
|
63
|
+
validSchema.uniqueItems ||
|
|
64
|
+
validSchema.contains ||
|
|
65
|
+
validSchema.containsAll ||
|
|
66
|
+
validSchema.containsAny)) {
|
|
67
|
+
return `'undefined' does not meet condition:'${JSON.stringify(validSchema)}'`;
|
|
68
|
+
}
|
|
41
69
|
{
|
|
42
70
|
// StringValidation
|
|
43
71
|
const stringValidation = validSchema;
|
|
44
72
|
const strToValidate = value;
|
|
45
|
-
if (typeof strToValidate === "string") {
|
|
73
|
+
if (strToValidate === undefined || typeof strToValidate === "string") {
|
|
46
74
|
const schema = {};
|
|
47
|
-
if (stringValidation.equals && typeof stringValidation.equals === "string")
|
|
75
|
+
if (stringValidation.equals && typeof stringValidation.equals === "string") {
|
|
76
|
+
if (strToValidate === undefined) {
|
|
77
|
+
return `'${strToValidate}' does not meet equals:'${stringValidation.equals}'`;
|
|
78
|
+
}
|
|
48
79
|
schema.const = stringValidation.equals;
|
|
80
|
+
}
|
|
49
81
|
if (stringValidation.enum &&
|
|
50
82
|
stringValidation.enum.length > 0 &&
|
|
51
83
|
typeof stringValidation.enum[0] === "string")
|
|
@@ -72,23 +104,28 @@ async function validate(validSchema, value, inputs) {
|
|
|
72
104
|
return `'${strToValidate}' does not meet endsWith:'${stringValidation.endsWith}'`;
|
|
73
105
|
}
|
|
74
106
|
}
|
|
75
|
-
if (stringValidation.includes
|
|
107
|
+
if (stringValidation.includes) {
|
|
76
108
|
if (!strToValidate.includes(stringValidation.includes)) {
|
|
77
109
|
return `'${strToValidate}' does not meet includes:'${stringValidation.includes}'`;
|
|
78
110
|
}
|
|
79
111
|
}
|
|
80
|
-
if (stringValidation.notEquals
|
|
112
|
+
if (stringValidation.notEquals) {
|
|
81
113
|
if (strToValidate === stringValidation.notEquals) {
|
|
82
114
|
return `'${strToValidate}' does not meet notEquals:'${stringValidation.notEquals}'`;
|
|
83
115
|
}
|
|
84
116
|
}
|
|
117
|
+
if (stringValidation.excludesEnum) {
|
|
118
|
+
if (stringValidation.excludesEnum.includes(strToValidate)) {
|
|
119
|
+
return `'${strToValidate}' does not meet excludesEnum:'${stringValidation.excludesEnum}'`;
|
|
120
|
+
}
|
|
121
|
+
}
|
|
85
122
|
}
|
|
86
123
|
}
|
|
87
124
|
//StringArrayValidation
|
|
88
125
|
{
|
|
89
126
|
const stringArrayValidation = validSchema;
|
|
90
127
|
const arrayToValidate = value;
|
|
91
|
-
if (arrayToValidate instanceof Array) {
|
|
128
|
+
if (arrayToValidate === undefined || arrayToValidate instanceof Array) {
|
|
92
129
|
const schema = {};
|
|
93
130
|
if (stringArrayValidation.maxItems)
|
|
94
131
|
schema.maxItems = stringArrayValidation.maxItems;
|
|
@@ -108,10 +145,10 @@ async function validate(validSchema, value, inputs) {
|
|
|
108
145
|
stringArrayValidation.containsAll = stringArrayValidation.equals;
|
|
109
146
|
}
|
|
110
147
|
else {
|
|
111
|
-
return `
|
|
148
|
+
return `'${arrayToValidate}' does not equals to:'${stringArrayValidation.equals}'`;
|
|
112
149
|
}
|
|
113
150
|
}
|
|
114
|
-
if (stringArrayValidation.enum) {
|
|
151
|
+
if (stringArrayValidation.enum && arrayToValidate) {
|
|
115
152
|
for (const item of arrayToValidate) {
|
|
116
153
|
if (!stringArrayValidation.enum.includes(item)) {
|
|
117
154
|
return `'${arrayToValidate}' does not meet with enum:'${stringArrayValidation.enum}'`;
|
|
@@ -119,12 +156,12 @@ async function validate(validSchema, value, inputs) {
|
|
|
119
156
|
}
|
|
120
157
|
}
|
|
121
158
|
if (stringArrayValidation.excludes) {
|
|
122
|
-
if (arrayToValidate.includes(stringArrayValidation.excludes)) {
|
|
159
|
+
if (arrayToValidate && arrayToValidate.includes(stringArrayValidation.excludes)) {
|
|
123
160
|
return `'${arrayToValidate}' does not meet with excludes:'${stringArrayValidation.excludes}'`;
|
|
124
161
|
}
|
|
125
162
|
}
|
|
126
163
|
if (stringArrayValidation.contains) {
|
|
127
|
-
if (!arrayToValidate.includes(stringArrayValidation.contains)) {
|
|
164
|
+
if (arrayToValidate && !arrayToValidate.includes(stringArrayValidation.contains)) {
|
|
128
165
|
return `'${arrayToValidate}' does not meet with contains:'${stringArrayValidation.contains}'`;
|
|
129
166
|
}
|
|
130
167
|
}
|
|
@@ -132,7 +169,7 @@ async function validate(validSchema, value, inputs) {
|
|
|
132
169
|
const containsAll = stringArrayValidation.containsAll;
|
|
133
170
|
if (containsAll.length > 0) {
|
|
134
171
|
for (const i of containsAll) {
|
|
135
|
-
if (!arrayToValidate.includes(i)) {
|
|
172
|
+
if (arrayToValidate && !arrayToValidate.includes(i)) {
|
|
136
173
|
return `'${arrayToValidate}' does not meet with containsAll:'${containsAll}'`;
|
|
137
174
|
}
|
|
138
175
|
}
|
|
@@ -144,7 +181,7 @@ async function validate(validSchema, value, inputs) {
|
|
|
144
181
|
// let array = valueToValidate as string[];
|
|
145
182
|
let found = false;
|
|
146
183
|
for (const i of containsAny) {
|
|
147
|
-
if (arrayToValidate.includes(i)) {
|
|
184
|
+
if (arrayToValidate && arrayToValidate.includes(i)) {
|
|
148
185
|
found = true;
|
|
149
186
|
break;
|
|
150
187
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"validation.js","sourceRoot":"","sources":["../../src/qm/validation.ts"],"names":[],"mappings":";;;;AAAA,uCAAuC;AACvC,kCAAkC;AAClC,+DAAyC;
|
|
1
|
+
{"version":3,"file":"validation.js","sourceRoot":"","sources":["../../src/qm/validation.ts"],"names":[],"mappings":"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"}
|