@microsoft/vscode-ui 1.0.1-alpha.94d0acbf8.0 → 1.0.1-alpha.a8fa2ab1d.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/error.d.ts +14 -1
- package/build/error.d.ts.map +1 -1
- package/build/error.js +54 -1
- package/build/error.js.map +1 -1
- package/build/index.d.ts +2 -0
- package/build/index.d.ts.map +1 -1
- package/build/index.js +2 -0
- package/build/index.js.map +1 -1
- package/build/localize.d.ts +8 -0
- package/build/localize.d.ts.map +1 -1
- package/build/localize.js +12 -0
- package/build/localize.js.map +1 -1
- package/build/validationUtils.d.ts +31 -0
- package/build/validationUtils.d.ts.map +1 -0
- package/build/validationUtils.js +294 -0
- package/build/validationUtils.js.map +1 -0
- package/build/visitor.d.ts +17 -0
- package/build/visitor.d.ts.map +1 -0
- package/build/visitor.js +412 -0
- package/build/visitor.js.map +1 -0
- package/package.json +4 -3
package/build/error.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { UserError } from "@microsoft/teamsfx-api";
|
|
1
|
+
import { FxError, SystemError, UserError } from "@microsoft/teamsfx-api";
|
|
2
2
|
export declare class UserCancelError extends UserError {
|
|
3
3
|
constructor(message: string, displayMessage: string);
|
|
4
4
|
}
|
|
@@ -11,4 +11,17 @@ export declare class InternalUIError extends UserError {
|
|
|
11
11
|
export declare class ScriptTimeoutError extends UserError {
|
|
12
12
|
constructor(message: string, displayMessage: string);
|
|
13
13
|
}
|
|
14
|
+
export declare class UnsupportedQuestionTypeError extends UserError {
|
|
15
|
+
constructor(message: string, displayMessage: string);
|
|
16
|
+
}
|
|
17
|
+
export declare class InputValidationError extends UserError {
|
|
18
|
+
constructor(message: string, displayMessage: string);
|
|
19
|
+
}
|
|
20
|
+
export declare class MissingRequiredInputError extends UserError {
|
|
21
|
+
constructor(message: string, displayMessage: string);
|
|
22
|
+
}
|
|
23
|
+
export declare class UnhandledError extends SystemError {
|
|
24
|
+
constructor(e: any, message: string, displayMessage: string);
|
|
25
|
+
}
|
|
26
|
+
export declare function assembleError(e: any, message: string, displayMessage: string): FxError;
|
|
14
27
|
//# sourceMappingURL=error.d.ts.map
|
package/build/error.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"error.d.ts","sourceRoot":"","sources":["../src/error.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;
|
|
1
|
+
{"version":3,"file":"error.d.ts","sourceRoot":"","sources":["../src/error.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,OAAO,EAAE,WAAW,EAAsB,SAAS,EAAE,MAAM,wBAAwB,CAAC;AAE7F,qBAAa,eAAgB,SAAQ,SAAS;gBAChC,OAAO,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM;CASpD;AAED,qBAAa,iBAAkB,SAAQ,SAAS;gBAClC,OAAO,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM;CASpD;AAED,qBAAa,eAAgB,SAAQ,SAAS;gBAChC,OAAO,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM;CASpD;AAED,qBAAa,kBAAmB,SAAQ,SAAS;gBACnC,OAAO,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM;CASpD;AAED,qBAAa,4BAA6B,SAAQ,SAAS;gBAC7C,OAAO,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM;CASpD;AAED,qBAAa,oBAAqB,SAAQ,SAAS;gBACrC,OAAO,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM;CAQpD;AAED,qBAAa,yBAA0B,SAAQ,SAAS;gBAC1C,OAAO,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM;CAQpD;AACD,qBAAa,cAAe,SAAQ,WAAW;gBACjC,CAAC,EAAE,GAAG,EAAE,OAAO,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM;CAU5D;AACD,wBAAgB,aAAa,CAAC,CAAC,EAAE,GAAG,EAAE,OAAO,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,GAAG,OAAO,CAGtF"}
|
package/build/error.js
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
// Copyright (c) Microsoft Corporation.
|
|
3
3
|
// Licensed under the MIT license.
|
|
4
4
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
5
|
-
exports.ScriptTimeoutError = exports.InternalUIError = exports.EmptyOptionsError = exports.UserCancelError = void 0;
|
|
5
|
+
exports.assembleError = exports.UnhandledError = exports.MissingRequiredInputError = exports.InputValidationError = exports.UnsupportedQuestionTypeError = exports.ScriptTimeoutError = exports.InternalUIError = exports.EmptyOptionsError = exports.UserCancelError = void 0;
|
|
6
6
|
const teamsfx_api_1 = require("@microsoft/teamsfx-api");
|
|
7
7
|
class UserCancelError extends teamsfx_api_1.UserError {
|
|
8
8
|
constructor(message, displayMessage) {
|
|
@@ -52,4 +52,57 @@ class ScriptTimeoutError extends teamsfx_api_1.UserError {
|
|
|
52
52
|
}
|
|
53
53
|
}
|
|
54
54
|
exports.ScriptTimeoutError = ScriptTimeoutError;
|
|
55
|
+
class UnsupportedQuestionTypeError extends teamsfx_api_1.UserError {
|
|
56
|
+
constructor(message, displayMessage) {
|
|
57
|
+
super({
|
|
58
|
+
source: "UI",
|
|
59
|
+
name: "UnsupportedQuestionTypeError",
|
|
60
|
+
message: message,
|
|
61
|
+
displayMessage: displayMessage,
|
|
62
|
+
categories: ["internal"],
|
|
63
|
+
});
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
exports.UnsupportedQuestionTypeError = UnsupportedQuestionTypeError;
|
|
67
|
+
class InputValidationError extends teamsfx_api_1.UserError {
|
|
68
|
+
constructor(message, displayMessage) {
|
|
69
|
+
super({
|
|
70
|
+
source: "UI",
|
|
71
|
+
message: message,
|
|
72
|
+
displayMessage: displayMessage,
|
|
73
|
+
categories: ["internal"],
|
|
74
|
+
});
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
exports.InputValidationError = InputValidationError;
|
|
78
|
+
class MissingRequiredInputError extends teamsfx_api_1.UserError {
|
|
79
|
+
constructor(message, displayMessage) {
|
|
80
|
+
super({
|
|
81
|
+
source: "UI",
|
|
82
|
+
message: message,
|
|
83
|
+
displayMessage: displayMessage,
|
|
84
|
+
categories: ["internal"],
|
|
85
|
+
});
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
exports.MissingRequiredInputError = MissingRequiredInputError;
|
|
89
|
+
class UnhandledError extends teamsfx_api_1.SystemError {
|
|
90
|
+
constructor(e, message, displayMessage) {
|
|
91
|
+
const option = {
|
|
92
|
+
source: "UI",
|
|
93
|
+
error: e,
|
|
94
|
+
message: message,
|
|
95
|
+
displayMessage: displayMessage,
|
|
96
|
+
categories: ["unhandled"],
|
|
97
|
+
};
|
|
98
|
+
super(option);
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
exports.UnhandledError = UnhandledError;
|
|
102
|
+
function assembleError(e, message, displayMessage) {
|
|
103
|
+
if (e instanceof teamsfx_api_1.UserError || e instanceof teamsfx_api_1.SystemError)
|
|
104
|
+
return e;
|
|
105
|
+
return new UnhandledError(e, message, displayMessage);
|
|
106
|
+
}
|
|
107
|
+
exports.assembleError = assembleError;
|
|
55
108
|
//# sourceMappingURL=error.js.map
|
package/build/error.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"error.js","sourceRoot":"","sources":["../src/error.ts"],"names":[],"mappings":";AAAA,uCAAuC;AACvC,kCAAkC;;;AAElC,
|
|
1
|
+
{"version":3,"file":"error.js","sourceRoot":"","sources":["../src/error.ts"],"names":[],"mappings":"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"}
|
package/build/index.d.ts
CHANGED
package/build/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAEA,cAAc,MAAM,CAAC;AACrB,cAAc,mBAAmB,CAAC;AAClC,cAAc,YAAY,CAAC;AAC3B,cAAc,SAAS,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAEA,cAAc,MAAM,CAAC;AACrB,cAAc,mBAAmB,CAAC;AAClC,cAAc,YAAY,CAAC;AAC3B,cAAc,SAAS,CAAC;AACxB,cAAc,WAAW,CAAC;AAC1B,cAAc,mBAAmB,CAAC"}
|
package/build/index.js
CHANGED
|
@@ -7,4 +7,6 @@ tslib_1.__exportStar(require("./ui"), exports);
|
|
|
7
7
|
tslib_1.__exportStar(require("./progressHandler"), exports);
|
|
8
8
|
tslib_1.__exportStar(require("./localize"), exports);
|
|
9
9
|
tslib_1.__exportStar(require("./error"), exports);
|
|
10
|
+
tslib_1.__exportStar(require("./visitor"), exports);
|
|
11
|
+
tslib_1.__exportStar(require("./validationUtils"), exports);
|
|
10
12
|
//# sourceMappingURL=index.js.map
|
package/build/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AAAA,uCAAuC;AACvC,kCAAkC;AAClC,+CAAqB;AACrB,4DAAkC;AAClC,qDAA2B;AAC3B,kDAAwB"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AAAA,uCAAuC;AACvC,kCAAkC;AAClC,+CAAqB;AACrB,4DAAkC;AAClC,qDAA2B;AAC3B,kDAAwB;AACxB,oDAA0B;AAC1B,4DAAkC"}
|
package/build/localize.d.ts
CHANGED
|
@@ -13,6 +13,10 @@ export interface Localizer {
|
|
|
13
13
|
internalErrorDisplayMessage(action: string): string;
|
|
14
14
|
commandTimeoutErrorMessage(command: string): string;
|
|
15
15
|
commandTimeoutErrorDisplayMessage(command: string): string;
|
|
16
|
+
invalidInputErrorMessage?(name: string, reason: string): string;
|
|
17
|
+
invalidInputDisplayMessage?(name: string, reason: string): string;
|
|
18
|
+
missingInputErrorMessage?(name: string): string;
|
|
19
|
+
missingInputDisplayMessage?(name: string): string;
|
|
16
20
|
}
|
|
17
21
|
export declare class DefaultLocalizer implements Localizer {
|
|
18
22
|
commandTimeoutErrorMessage(command: string): string;
|
|
@@ -29,5 +33,9 @@ export declare class DefaultLocalizer implements Localizer {
|
|
|
29
33
|
loadingOptionsTimeoutMessage(): string;
|
|
30
34
|
loadingDefaultPlaceholder(): string;
|
|
31
35
|
loadingOptionsPlaceholder(): string;
|
|
36
|
+
invalidInputErrorMessage(name: string, reason: string): string;
|
|
37
|
+
invalidInputDisplayMessage(name: string, reason: string): string;
|
|
38
|
+
missingInputErrorMessage(name: string): string;
|
|
39
|
+
missingInputDisplayMessage(name: string): string;
|
|
32
40
|
}
|
|
33
41
|
//# sourceMappingURL=localize.d.ts.map
|
package/build/localize.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"localize.d.ts","sourceRoot":"","sources":["../src/localize.ts"],"names":[],"mappings":"AAGA,MAAM,WAAW,SAAS;IACxB,yBAAyB,IAAI,MAAM,CAAC;IACpC,yBAAyB,IAAI,MAAM,CAAC;IACpC,4BAA4B,IAAI,MAAM,CAAC;IACvC,8BAA8B,IAAI,MAAM,CAAC;IACzC,aAAa,IAAI,MAAM,CAAC;IACxB,MAAM,IAAI,MAAM,CAAC;IACjB,uBAAuB,IAAI,MAAM,CAAC;IAClC,8BAA8B,IAAI,MAAM,CAAC;IACzC,kBAAkB,IAAI,MAAM,CAAC;IAC7B,yBAAyB,IAAI,MAAM,CAAC;IACpC,oBAAoB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC;IAC7C,2BAA2B,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC;IACpD,0BAA0B,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAAC;IACpD,iCAAiC,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"localize.d.ts","sourceRoot":"","sources":["../src/localize.ts"],"names":[],"mappings":"AAGA,MAAM,WAAW,SAAS;IACxB,yBAAyB,IAAI,MAAM,CAAC;IACpC,yBAAyB,IAAI,MAAM,CAAC;IACpC,4BAA4B,IAAI,MAAM,CAAC;IACvC,8BAA8B,IAAI,MAAM,CAAC;IACzC,aAAa,IAAI,MAAM,CAAC;IACxB,MAAM,IAAI,MAAM,CAAC;IACjB,uBAAuB,IAAI,MAAM,CAAC;IAClC,8BAA8B,IAAI,MAAM,CAAC;IACzC,kBAAkB,IAAI,MAAM,CAAC;IAC7B,yBAAyB,IAAI,MAAM,CAAC;IACpC,oBAAoB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC;IAC7C,2BAA2B,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC;IACpD,0BAA0B,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAAC;IACpD,iCAAiC,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAAC;IAC3D,wBAAwB,CAAC,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC;IAChE,0BAA0B,CAAC,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC;IAClE,wBAAwB,CAAC,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAAC;IAChD,0BAA0B,CAAC,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAAC;CACnD;AAED,qBAAa,gBAAiB,YAAW,SAAS;IAChD,0BAA0B,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM;IAGnD,iCAAiC,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM;IAG1D,2BAA2B,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM;IAGnD,oBAAoB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM;IAG5C,kBAAkB,IAAI,MAAM;IAG5B,yBAAyB,IAAI,MAAM;IAGnC,uBAAuB,IAAI,MAAM;IAGjC,8BAA8B,IAAI,MAAM;IAGxC,MAAM,IAAI,MAAM;IAGhB,aAAa,IAAI,MAAM;IAGvB,8BAA8B,IAAI,MAAM;IAGxC,4BAA4B,IAAI,MAAM;IAGtC,yBAAyB,IAAI,MAAM;IAGnC,yBAAyB,IAAI,MAAM;IAGnC,wBAAwB,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM;IAG9D,0BAA0B,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM;IAGhE,wBAAwB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM;IAG9C,0BAA0B,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM;CAGjD"}
|
package/build/localize.js
CHANGED
|
@@ -46,6 +46,18 @@ class DefaultLocalizer {
|
|
|
46
46
|
loadingOptionsPlaceholder() {
|
|
47
47
|
return "Loading options...";
|
|
48
48
|
}
|
|
49
|
+
invalidInputErrorMessage(name, reason) {
|
|
50
|
+
return `Input '${name}' validation failed: ${reason}`;
|
|
51
|
+
}
|
|
52
|
+
invalidInputDisplayMessage(name, reason) {
|
|
53
|
+
return `Input '${name}' validation failed: ${reason}`;
|
|
54
|
+
}
|
|
55
|
+
missingInputErrorMessage(name) {
|
|
56
|
+
return `Missing required input: ${name}`;
|
|
57
|
+
}
|
|
58
|
+
missingInputDisplayMessage(name) {
|
|
59
|
+
return `Missing required input: ${name}`;
|
|
60
|
+
}
|
|
49
61
|
}
|
|
50
62
|
exports.DefaultLocalizer = DefaultLocalizer;
|
|
51
63
|
//# sourceMappingURL=localize.js.map
|
package/build/localize.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"localize.js","sourceRoot":"","sources":["../src/localize.ts"],"names":[],"mappings":";AAAA,uCAAuC;AACvC,kCAAkC;;;
|
|
1
|
+
{"version":3,"file":"localize.js","sourceRoot":"","sources":["../src/localize.ts"],"names":[],"mappings":";AAAA,uCAAuC;AACvC,kCAAkC;;;AAuBlC,MAAa,gBAAgB;IAC3B,0BAA0B,CAAC,OAAe;QACxC,OAAO,2BAA2B,GAAG,OAAO,CAAC;IAC/C,CAAC;IACD,iCAAiC,CAAC,OAAe;QAC/C,OAAO,2BAA2B,GAAG,OAAO,CAAC;IAC/C,CAAC;IACD,2BAA2B,CAAC,MAAc;QACxC,OAAO,6BAA6B,GAAG,MAAM,CAAC;IAChD,CAAC;IACD,oBAAoB,CAAC,MAAc;QACjC,OAAO,6BAA6B,GAAG,MAAM,CAAC;IAChD,CAAC;IACD,kBAAkB;QAChB,OAAO,gBAAgB,CAAC;IAC1B,CAAC;IACD,yBAAyB;QACvB,OAAO,gBAAgB,CAAC;IAC1B,CAAC;IACD,uBAAuB;QACrB,OAAO,gBAAgB,CAAC;IAC1B,CAAC;IACD,8BAA8B;QAC5B,OAAO,gBAAgB,CAAC;IAC1B,CAAC;IACD,MAAM;QACJ,OAAO,WAAW,CAAC;IACrB,CAAC;IACD,aAAa;QACX,OAAO,gBAAgB,CAAC;IAC1B,CAAC;IACD,8BAA8B;QAC5B,OAAO,+BAA+B,CAAC;IACzC,CAAC;IACD,4BAA4B;QAC1B,OAAO,0BAA0B,CAAC;IACpC,CAAC;IACD,yBAAyB;QACvB,OAAO,0BAA0B,CAAC;IACpC,CAAC;IACD,yBAAyB;QACvB,OAAO,oBAAoB,CAAC;IAC9B,CAAC;IACD,wBAAwB,CAAC,IAAY,EAAE,MAAc;QACnD,OAAO,UAAU,IAAI,wBAAwB,MAAM,EAAE,CAAC;IACxD,CAAC;IACD,0BAA0B,CAAC,IAAY,EAAE,MAAc;QACrD,OAAO,UAAU,IAAI,wBAAwB,MAAM,EAAE,CAAC;IACxD,CAAC;IACD,wBAAwB,CAAC,IAAY;QACnC,OAAO,2BAA2B,IAAI,EAAE,CAAC;IAC3C,CAAC;IACD,0BAA0B,CAAC,IAAY;QACrC,OAAO,2BAA2B,IAAI,EAAE,CAAC;IAC3C,CAAC;CACF;AAvDD,4CAuDC"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { ConditionFunc, Inputs, MultiSelectQuestion, OptionItem, Question, SingleSelectQuestion, StaticOptions, ValidationSchema } from "@microsoft/teamsfx-api";
|
|
2
|
+
declare class ValidationUtils {
|
|
3
|
+
validateInputForSingleSelectQuestion(question: SingleSelectQuestion, value: string | OptionItem, inputs: Inputs): Promise<string | undefined>;
|
|
4
|
+
validateInputForMultipleSelectQuestion(question: MultiSelectQuestion, value: string[] | OptionItem[], inputs: Inputs): Promise<string | undefined>;
|
|
5
|
+
formatInvalidInputError(key: string, value: string | OptionItem, options: StaticOptions): string;
|
|
6
|
+
formatInvalidOptionsError(options: StaticOptions): string;
|
|
7
|
+
isAllowedValue(key: string, value: string | OptionItem, options: StaticOptions, returnObject?: boolean): string | undefined;
|
|
8
|
+
/**
|
|
9
|
+
* validate value against question model definition
|
|
10
|
+
*/
|
|
11
|
+
validateInputs(question: Question, value: string | string[] | OptionItem | OptionItem[], inputs: Inputs): Promise<string | undefined>;
|
|
12
|
+
}
|
|
13
|
+
export declare const validationUtils: ValidationUtils;
|
|
14
|
+
/**
|
|
15
|
+
* A function to return a validation function according the validation schema
|
|
16
|
+
* @param validation validation schema
|
|
17
|
+
* @param inputs object to carry all user inputs
|
|
18
|
+
* @returns a validation function
|
|
19
|
+
*/
|
|
20
|
+
export declare function getValidationFunction<T extends string | string[] | undefined>(validation: ValidationSchema, inputs: Inputs): (input: T) => string | undefined | Promise<string | undefined>;
|
|
21
|
+
/**
|
|
22
|
+
* Implementation of validation function
|
|
23
|
+
* @param validSchema validation schema
|
|
24
|
+
* @param value value to validate
|
|
25
|
+
* @param inputs user inputs object, which works as the context of the validation
|
|
26
|
+
* @returns A human-readable string which is presented as diagnostic message.
|
|
27
|
+
* Return `undefined` when 'value' is valid.
|
|
28
|
+
*/
|
|
29
|
+
export declare function validate<T extends string | string[] | OptionItem | OptionItem[] | undefined>(validSchema: ValidationSchema | ConditionFunc, value: T, inputs?: Inputs): Promise<string | undefined>;
|
|
30
|
+
export {};
|
|
31
|
+
//# sourceMappingURL=validationUtils.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"validationUtils.d.ts","sourceRoot":"","sources":["../src/validationUtils.ts"],"names":[],"mappings":"AAGA,OAAO,EACL,aAAa,EAEb,MAAM,EACN,mBAAmB,EACnB,UAAU,EACV,QAAQ,EACR,oBAAoB,EACpB,aAAa,EAIb,gBAAgB,EACjB,MAAM,wBAAwB,CAAC;AAIhC,cAAM,eAAe;IACb,oCAAoC,CACxC,QAAQ,EAAE,oBAAoB,EAC9B,KAAK,EAAE,MAAM,GAAG,UAAU,EAC1B,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC;IAQxB,sCAAsC,CAC1C,QAAQ,EAAE,mBAAmB,EAC7B,KAAK,EAAE,MAAM,EAAE,GAAG,UAAU,EAAE,EAC9B,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC;IAW9B,uBAAuB,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,UAAU,EAAE,OAAO,EAAE,aAAa,GAAG,MAAM;IAKhG,yBAAyB,CAAC,OAAO,EAAE,aAAa,GAAG,MAAM;IAGzD,cAAc,CACZ,GAAG,EAAE,MAAM,EACX,KAAK,EAAE,MAAM,GAAG,UAAU,EAC1B,OAAO,EAAE,aAAa,EACtB,YAAY,CAAC,EAAE,OAAO,GACrB,MAAM,GAAG,SAAS;IA6BrB;;OAEG;IACG,cAAc,CAClB,QAAQ,EAAE,QAAQ,EAClB,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,UAAU,GAAG,UAAU,EAAE,EACpD,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC;CAgC/B;AAED,eAAO,MAAM,eAAe,iBAAwB,CAAC;AAErD;;;;;GAKG;AACH,wBAAgB,qBAAqB,CAAC,CAAC,SAAS,MAAM,GAAG,MAAM,EAAE,GAAG,SAAS,EAC3E,UAAU,EAAE,gBAAgB,EAC5B,MAAM,EAAE,MAAM,GACb,CAAC,KAAK,EAAE,CAAC,KAAK,MAAM,GAAG,SAAS,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAIhE;AACD;;;;;;;GAOG;AACH,wBAAsB,QAAQ,CAAC,CAAC,SAAS,MAAM,GAAG,MAAM,EAAE,GAAG,UAAU,GAAG,UAAU,EAAE,GAAG,SAAS,EAChG,WAAW,EAAE,gBAAgB,GAAG,aAAa,EAC7C,KAAK,EAAE,CAAC,EACR,MAAM,CAAC,EAAE,MAAM,GACd,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAkL7B"}
|
|
@@ -0,0 +1,294 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
// Copyright (c) Microsoft Corporation.
|
|
3
|
+
// Licensed under the MIT license.
|
|
4
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
5
|
+
exports.validate = exports.getValidationFunction = exports.validationUtils = void 0;
|
|
6
|
+
const tslib_1 = require("tslib");
|
|
7
|
+
const jsonschema = tslib_1.__importStar(require("jsonschema"));
|
|
8
|
+
const error_1 = require("./error");
|
|
9
|
+
class ValidationUtils {
|
|
10
|
+
async validateInputForSingleSelectQuestion(question, value, inputs) {
|
|
11
|
+
let options = question.staticOptions;
|
|
12
|
+
if (question.dynamicOptions) {
|
|
13
|
+
options = await question.dynamicOptions(inputs);
|
|
14
|
+
}
|
|
15
|
+
return this.isAllowedValue(question.name, value, options, question.returnObject);
|
|
16
|
+
}
|
|
17
|
+
async validateInputForMultipleSelectQuestion(question, value, inputs) {
|
|
18
|
+
let options = question.staticOptions;
|
|
19
|
+
if (question.dynamicOptions) {
|
|
20
|
+
options = await question.dynamicOptions(inputs);
|
|
21
|
+
}
|
|
22
|
+
for (const item of value) {
|
|
23
|
+
const error = this.isAllowedValue(question.name, item, options, question.returnObject);
|
|
24
|
+
if (error)
|
|
25
|
+
return error;
|
|
26
|
+
}
|
|
27
|
+
return undefined;
|
|
28
|
+
}
|
|
29
|
+
formatInvalidInputError(key, value, options) {
|
|
30
|
+
return `Invalid input '${key}':${JSON.stringify(value)}, allowed value: ${JSON.stringify(options)}`;
|
|
31
|
+
}
|
|
32
|
+
formatInvalidOptionsError(options) {
|
|
33
|
+
return `Invalid question, expect input object, but allowed value: ${JSON.stringify(options)}`;
|
|
34
|
+
}
|
|
35
|
+
isAllowedValue(key, value, options, returnObject) {
|
|
36
|
+
if (options.length === 0) {
|
|
37
|
+
return new error_1.EmptyOptionsError("Empty options.", "Empty options.").message;
|
|
38
|
+
}
|
|
39
|
+
const optionIsStringArray = typeof options[0] === "string";
|
|
40
|
+
if (returnObject) {
|
|
41
|
+
if (optionIsStringArray) {
|
|
42
|
+
return this.formatInvalidOptionsError(options);
|
|
43
|
+
}
|
|
44
|
+
if (!value || typeof value === "string") {
|
|
45
|
+
return this.formatInvalidInputError(key, value, options);
|
|
46
|
+
}
|
|
47
|
+
if (!options.find((item) => item.id === value.id)) {
|
|
48
|
+
return this.formatInvalidInputError(key, value, options);
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
else {
|
|
52
|
+
if (!value || typeof value !== "string") {
|
|
53
|
+
return this.formatInvalidInputError(key, value, options);
|
|
54
|
+
}
|
|
55
|
+
// value is string here
|
|
56
|
+
const foundOption = optionIsStringArray
|
|
57
|
+
? options.find((item) => item === value)
|
|
58
|
+
: options.find((item) => item.id === value);
|
|
59
|
+
if (!foundOption) {
|
|
60
|
+
return this.formatInvalidInputError(key, value, options);
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
/**
|
|
65
|
+
* validate value against question model definition
|
|
66
|
+
*/
|
|
67
|
+
async validateInputs(question, value, inputs) {
|
|
68
|
+
if (question.type === "singleSelect") {
|
|
69
|
+
if (question.skipValidation)
|
|
70
|
+
return undefined;
|
|
71
|
+
return await this.validateInputForSingleSelectQuestion(question, value, inputs);
|
|
72
|
+
}
|
|
73
|
+
else if (question.type === "multiSelect") {
|
|
74
|
+
if (question.skipValidation)
|
|
75
|
+
return undefined;
|
|
76
|
+
return await this.validateInputForMultipleSelectQuestion(question, value, inputs);
|
|
77
|
+
}
|
|
78
|
+
else {
|
|
79
|
+
if (question.validation) {
|
|
80
|
+
const vFunc = getValidationFunction(question.validation, inputs);
|
|
81
|
+
const res = await vFunc(value);
|
|
82
|
+
if (res)
|
|
83
|
+
return res;
|
|
84
|
+
}
|
|
85
|
+
if (question.type === "text" && question.additionalValidationOnAccept) {
|
|
86
|
+
const vFunc = getValidationFunction(question.additionalValidationOnAccept, inputs);
|
|
87
|
+
const res = await vFunc(value);
|
|
88
|
+
if (res)
|
|
89
|
+
return res;
|
|
90
|
+
}
|
|
91
|
+
return undefined;
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
exports.validationUtils = new ValidationUtils();
|
|
96
|
+
/**
|
|
97
|
+
* A function to return a validation function according the validation schema
|
|
98
|
+
* @param validation validation schema
|
|
99
|
+
* @param inputs object to carry all user inputs
|
|
100
|
+
* @returns a validation function
|
|
101
|
+
*/
|
|
102
|
+
function getValidationFunction(validation, inputs) {
|
|
103
|
+
return function (input) {
|
|
104
|
+
return validate(validation, input, inputs);
|
|
105
|
+
};
|
|
106
|
+
}
|
|
107
|
+
exports.getValidationFunction = getValidationFunction;
|
|
108
|
+
/**
|
|
109
|
+
* Implementation of validation function
|
|
110
|
+
* @param validSchema validation schema
|
|
111
|
+
* @param value value to validate
|
|
112
|
+
* @param inputs user inputs object, which works as the context of the validation
|
|
113
|
+
* @returns A human-readable string which is presented as diagnostic message.
|
|
114
|
+
* Return `undefined` when 'value' is valid.
|
|
115
|
+
*/
|
|
116
|
+
async function validate(validSchema, value, inputs) {
|
|
117
|
+
{
|
|
118
|
+
//FuncValidation
|
|
119
|
+
const funcValidation = validSchema;
|
|
120
|
+
if (funcValidation.validFunc) {
|
|
121
|
+
const res = await funcValidation.validFunc(value, inputs);
|
|
122
|
+
return res;
|
|
123
|
+
}
|
|
124
|
+
else if (typeof funcValidation === "function") {
|
|
125
|
+
const res = await funcValidation(inputs);
|
|
126
|
+
if (res)
|
|
127
|
+
return undefined;
|
|
128
|
+
return "condition function is not met.";
|
|
129
|
+
}
|
|
130
|
+
}
|
|
131
|
+
if (!value) {
|
|
132
|
+
if (validSchema.required === true)
|
|
133
|
+
return `input value is required.`;
|
|
134
|
+
}
|
|
135
|
+
const noneEmptyKeyNum = Object.keys(validSchema).filter((key) => validSchema[key] !== undefined).length;
|
|
136
|
+
if (noneEmptyKeyNum === 0) {
|
|
137
|
+
return undefined;
|
|
138
|
+
}
|
|
139
|
+
if (value === undefined &&
|
|
140
|
+
(validSchema.required ||
|
|
141
|
+
validSchema.equals ||
|
|
142
|
+
validSchema.maxLength ||
|
|
143
|
+
validSchema.minLength ||
|
|
144
|
+
validSchema.pattern ||
|
|
145
|
+
validSchema.enum ||
|
|
146
|
+
validSchema.startsWith ||
|
|
147
|
+
validSchema.endsWith ||
|
|
148
|
+
validSchema.includes ||
|
|
149
|
+
validSchema.maxItems ||
|
|
150
|
+
validSchema.minItems ||
|
|
151
|
+
validSchema.uniqueItems ||
|
|
152
|
+
validSchema.contains ||
|
|
153
|
+
validSchema.containsAll ||
|
|
154
|
+
validSchema.containsAny)) {
|
|
155
|
+
return `'undefined' does not meet condition:'${JSON.stringify(validSchema)}'`;
|
|
156
|
+
}
|
|
157
|
+
const jsonValue = JSON.stringify(value);
|
|
158
|
+
{
|
|
159
|
+
// StringValidation
|
|
160
|
+
const stringValidation = validSchema;
|
|
161
|
+
const strToValidate = value;
|
|
162
|
+
if (strToValidate === undefined || typeof strToValidate === "string") {
|
|
163
|
+
const schema = {};
|
|
164
|
+
if (stringValidation.equals && typeof stringValidation.equals === "string") {
|
|
165
|
+
schema.const = stringValidation.equals;
|
|
166
|
+
}
|
|
167
|
+
if (stringValidation.enum &&
|
|
168
|
+
stringValidation.enum.length > 0 &&
|
|
169
|
+
typeof stringValidation.enum[0] === "string")
|
|
170
|
+
schema.enum = stringValidation.enum;
|
|
171
|
+
if (stringValidation.minLength)
|
|
172
|
+
schema.minLength = stringValidation.minLength;
|
|
173
|
+
if (stringValidation.maxLength)
|
|
174
|
+
schema.maxLength = stringValidation.maxLength;
|
|
175
|
+
if (stringValidation.pattern)
|
|
176
|
+
schema.pattern = stringValidation.pattern;
|
|
177
|
+
if (Object.keys(schema).length > 0) {
|
|
178
|
+
const validateResult = jsonschema.validate(strToValidate, schema);
|
|
179
|
+
if (validateResult.errors && validateResult.errors.length > 0) {
|
|
180
|
+
// eslint-disable-next-line @typescript-eslint/restrict-template-expressions
|
|
181
|
+
return `${jsonValue} ${validateResult.errors[0].message}`;
|
|
182
|
+
}
|
|
183
|
+
}
|
|
184
|
+
if (stringValidation.startsWith) {
|
|
185
|
+
if (!strToValidate.startsWith(stringValidation.startsWith)) {
|
|
186
|
+
return `${jsonValue} does not meet startsWith:'${stringValidation.startsWith}'`;
|
|
187
|
+
}
|
|
188
|
+
}
|
|
189
|
+
if (stringValidation.endsWith) {
|
|
190
|
+
if (!strToValidate.endsWith(stringValidation.endsWith)) {
|
|
191
|
+
return `${jsonValue} does not meet endsWith:'${stringValidation.endsWith}'`;
|
|
192
|
+
}
|
|
193
|
+
}
|
|
194
|
+
if (stringValidation.includes) {
|
|
195
|
+
if (!strToValidate.includes(stringValidation.includes)) {
|
|
196
|
+
return `${jsonValue} does not meet includes:'${stringValidation.includes}'`;
|
|
197
|
+
}
|
|
198
|
+
}
|
|
199
|
+
if (stringValidation.notEquals) {
|
|
200
|
+
if (strToValidate === stringValidation.notEquals) {
|
|
201
|
+
return `${jsonValue} does not meet notEquals:'${stringValidation.notEquals}'`;
|
|
202
|
+
}
|
|
203
|
+
}
|
|
204
|
+
if (stringValidation.excludesEnum) {
|
|
205
|
+
if (stringValidation.excludesEnum.includes(strToValidate)) {
|
|
206
|
+
// eslint-disable-next-line @typescript-eslint/restrict-template-expressions
|
|
207
|
+
return `${jsonValue} does not meet excludesEnum:'${stringValidation.excludesEnum}'`;
|
|
208
|
+
}
|
|
209
|
+
}
|
|
210
|
+
}
|
|
211
|
+
}
|
|
212
|
+
//StringArrayValidation
|
|
213
|
+
{
|
|
214
|
+
const stringArrayValidation = validSchema;
|
|
215
|
+
const arrayToValidate = value;
|
|
216
|
+
if (arrayToValidate === undefined || arrayToValidate instanceof Array) {
|
|
217
|
+
const schema = {};
|
|
218
|
+
if (stringArrayValidation.maxItems)
|
|
219
|
+
schema.maxItems = stringArrayValidation.maxItems;
|
|
220
|
+
if (stringArrayValidation.minItems)
|
|
221
|
+
schema.minItems = stringArrayValidation.minItems;
|
|
222
|
+
if (stringArrayValidation.uniqueItems)
|
|
223
|
+
schema.uniqueItems = stringArrayValidation.uniqueItems;
|
|
224
|
+
if (Object.keys(schema).length > 0) {
|
|
225
|
+
const validateResult = jsonschema.validate(arrayToValidate, schema);
|
|
226
|
+
if (validateResult.errors && validateResult.errors.length > 0) {
|
|
227
|
+
// eslint-disable-next-line @typescript-eslint/restrict-template-expressions
|
|
228
|
+
return `${jsonValue} ${validateResult.errors[0].message}`;
|
|
229
|
+
}
|
|
230
|
+
}
|
|
231
|
+
if (stringArrayValidation.equals) {
|
|
232
|
+
if (stringArrayValidation.equals instanceof Array) {
|
|
233
|
+
stringArrayValidation.enum = stringArrayValidation.equals;
|
|
234
|
+
stringArrayValidation.containsAll = stringArrayValidation.equals;
|
|
235
|
+
}
|
|
236
|
+
else {
|
|
237
|
+
// eslint-disable-next-line @typescript-eslint/restrict-template-expressions
|
|
238
|
+
return `${jsonValue} does not equals to:'${stringArrayValidation.equals}'`;
|
|
239
|
+
}
|
|
240
|
+
}
|
|
241
|
+
if (stringArrayValidation.enum && arrayToValidate) {
|
|
242
|
+
for (const item of arrayToValidate) {
|
|
243
|
+
if (!stringArrayValidation.enum.includes(item)) {
|
|
244
|
+
// eslint-disable-next-line @typescript-eslint/restrict-template-expressions
|
|
245
|
+
return `${jsonValue} does not meet with enum:'${stringArrayValidation.enum}'`;
|
|
246
|
+
}
|
|
247
|
+
}
|
|
248
|
+
}
|
|
249
|
+
if (stringArrayValidation.excludes) {
|
|
250
|
+
if (arrayToValidate && arrayToValidate.includes(stringArrayValidation.excludes)) {
|
|
251
|
+
// eslint-disable-next-line @typescript-eslint/restrict-template-expressions
|
|
252
|
+
return `${jsonValue} does not meet with excludes:'${stringArrayValidation.excludes}'`;
|
|
253
|
+
}
|
|
254
|
+
}
|
|
255
|
+
if (stringArrayValidation.contains) {
|
|
256
|
+
if (arrayToValidate && !arrayToValidate.includes(stringArrayValidation.contains)) {
|
|
257
|
+
// eslint-disable-next-line @typescript-eslint/restrict-template-expressions
|
|
258
|
+
return `${jsonValue} does not meet with contains:'${stringArrayValidation.contains}'`;
|
|
259
|
+
}
|
|
260
|
+
}
|
|
261
|
+
if (stringArrayValidation.containsAll) {
|
|
262
|
+
const containsAll = stringArrayValidation.containsAll;
|
|
263
|
+
if (containsAll.length > 0) {
|
|
264
|
+
for (const i of containsAll) {
|
|
265
|
+
if (arrayToValidate && !arrayToValidate.includes(i)) {
|
|
266
|
+
// eslint-disable-next-line @typescript-eslint/restrict-template-expressions
|
|
267
|
+
return `${jsonValue} does not meet with containsAll:'${containsAll}'`;
|
|
268
|
+
}
|
|
269
|
+
}
|
|
270
|
+
}
|
|
271
|
+
}
|
|
272
|
+
if (stringArrayValidation.containsAny) {
|
|
273
|
+
const containsAny = stringArrayValidation.containsAny;
|
|
274
|
+
if (containsAny.length > 0) {
|
|
275
|
+
// let array = valueToValidate as string[];
|
|
276
|
+
let found = false;
|
|
277
|
+
for (const i of containsAny) {
|
|
278
|
+
if (arrayToValidate && arrayToValidate.includes(i)) {
|
|
279
|
+
found = true;
|
|
280
|
+
break;
|
|
281
|
+
}
|
|
282
|
+
}
|
|
283
|
+
if (!found) {
|
|
284
|
+
// eslint-disable-next-line @typescript-eslint/restrict-template-expressions
|
|
285
|
+
return `${jsonValue} does not meet containsAny:'${containsAny}'`;
|
|
286
|
+
}
|
|
287
|
+
}
|
|
288
|
+
}
|
|
289
|
+
}
|
|
290
|
+
}
|
|
291
|
+
return undefined;
|
|
292
|
+
}
|
|
293
|
+
exports.validate = validate;
|
|
294
|
+
//# sourceMappingURL=validationUtils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"validationUtils.js","sourceRoot":"","sources":["../src/validationUtils.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { FxError, IQTreeNode, InputResult, Inputs, MultiSelectQuestion, Question, Result, SingleSelectQuestion, StaticOptions, UserInteraction } from "@microsoft/teamsfx-api";
|
|
2
|
+
import { Localizer } from "./localize";
|
|
3
|
+
export declare class QuestionModelEngine {
|
|
4
|
+
localizer: Localizer;
|
|
5
|
+
constructor(localizer?: Localizer);
|
|
6
|
+
defaultVisotor(question: Question, ui: UserInteraction, inputs: Inputs, step?: number, totalSteps?: number): Promise<Result<InputResult<any>, FxError>>;
|
|
7
|
+
traverse(root: IQTreeNode, inputs: Inputs, ui: UserInteraction, visitor?: QuestionNodeVisitor, postVisitor?: QuestionNodePostVisitor): Promise<Result<undefined, FxError>>;
|
|
8
|
+
}
|
|
9
|
+
export declare function getSingleOption(q: SingleSelectQuestion | MultiSelectQuestion, option?: StaticOptions): any;
|
|
10
|
+
export declare function loadOptions(question: SingleSelectQuestion | MultiSelectQuestion, inputs: Inputs): Promise<StaticOptions>;
|
|
11
|
+
export declare type QuestionNodeVisitor = (question: Question, ui: UserInteraction, inputs: Inputs, step?: number, totalSteps?: number) => Promise<Result<InputResult<any>, FxError>>;
|
|
12
|
+
export declare type QuestionNodePostVisitor = (question: Question, result: Result<InputResult<any>, FxError>, inputs: Inputs) => void;
|
|
13
|
+
/**
|
|
14
|
+
* serialize the tree node into array in DFS order
|
|
15
|
+
*/
|
|
16
|
+
export declare function collect(node: IQTreeNode, list: IQTreeNode[], parentMap: Map<IQTreeNode, IQTreeNode>): void;
|
|
17
|
+
//# sourceMappingURL=visitor.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"visitor.d.ts","sourceRoot":"","sources":["../src/visitor.ts"],"names":[],"mappings":"AAGA,OAAO,EACL,OAAO,EACP,UAAU,EACV,WAAW,EACX,MAAM,EACN,mBAAmB,EAEnB,QAAQ,EACR,MAAM,EACN,oBAAoB,EACpB,aAAa,EACb,eAAe,EAGhB,MAAM,wBAAwB,CAAC;AAUhC,OAAO,EAAoB,SAAS,EAAE,MAAM,YAAY,CAAC;AAGzD,qBAAa,mBAAmB;IAC9B,SAAS,EAAE,SAAS,CAAC;gBACT,SAAS,CAAC,EAAE,SAAS;IAG3B,cAAc,CAClB,QAAQ,EAAE,QAAQ,EAClB,EAAE,EAAE,eAAe,EACnB,MAAM,EAAE,MAAM,EACd,IAAI,CAAC,EAAE,MAAM,EACb,UAAU,CAAC,EAAE,MAAM,GAClB,OAAO,CAAC,MAAM,CAAC,WAAW,CAAC,GAAG,CAAC,EAAE,OAAO,CAAC,CAAC;IA4QhC,QAAQ,CACnB,IAAI,EAAE,UAAU,EAChB,MAAM,EAAE,MAAM,EACd,EAAE,EAAE,eAAe,EACnB,OAAO,CAAC,EAAE,mBAAmB,EAC7B,WAAW,CAAC,EAAE,uBAAuB,GACpC,OAAO,CAAC,MAAM,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;CA4GvC;AAED,wBAAgB,eAAe,CAC7B,CAAC,EAAE,oBAAoB,GAAG,mBAAmB,EAC7C,MAAM,CAAC,EAAE,aAAa,GACrB,GAAG,CAWL;AASD,wBAAsB,WAAW,CAC/B,QAAQ,EAAE,oBAAoB,GAAG,mBAAmB,EACpD,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,aAAa,CAAC,CAMxB;AAED,oBAAY,mBAAmB,GAAG,CAChC,QAAQ,EAAE,QAAQ,EAClB,EAAE,EAAE,eAAe,EACnB,MAAM,EAAE,MAAM,EACd,IAAI,CAAC,EAAE,MAAM,EACb,UAAU,CAAC,EAAE,MAAM,KAChB,OAAO,CAAC,MAAM,CAAC,WAAW,CAAC,GAAG,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC;AAEhD,oBAAY,uBAAuB,GAAG,CACpC,QAAQ,EAAE,QAAQ,EAClB,MAAM,EAAE,MAAM,CAAC,WAAW,CAAC,GAAG,CAAC,EAAE,OAAO,CAAC,EACzC,MAAM,EAAE,MAAM,KACX,IAAI,CAAC;AAEV;;GAEG;AACH,wBAAgB,OAAO,CACrB,IAAI,EAAE,UAAU,EAChB,IAAI,EAAE,UAAU,EAAE,EAClB,SAAS,EAAE,GAAG,CAAC,UAAU,EAAE,UAAU,CAAC,GACrC,IAAI,CAUN"}
|
package/build/visitor.js
ADDED
|
@@ -0,0 +1,412 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
// Copyright (c) Microsoft Corporation.
|
|
3
|
+
// Licensed under the MIT license.
|
|
4
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
5
|
+
exports.collect = exports.loadOptions = exports.getSingleOption = exports.QuestionModelEngine = void 0;
|
|
6
|
+
const teamsfx_api_1 = require("@microsoft/teamsfx-api");
|
|
7
|
+
const lodash_1 = require("lodash");
|
|
8
|
+
const error_1 = require("./error");
|
|
9
|
+
const localize_1 = require("./localize");
|
|
10
|
+
const validationUtils_1 = require("./validationUtils");
|
|
11
|
+
class QuestionModelEngine {
|
|
12
|
+
constructor(localizer) {
|
|
13
|
+
this.localizer = localizer || new localize_1.DefaultLocalizer();
|
|
14
|
+
}
|
|
15
|
+
async defaultVisotor(question, ui, inputs, step, totalSteps) {
|
|
16
|
+
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m;
|
|
17
|
+
// check and validate preset answer
|
|
18
|
+
if (inputs[question.name] !== undefined) {
|
|
19
|
+
// validate existing answer in inputs object
|
|
20
|
+
const res = await validationUtils_1.validationUtils.validateInputs(question, inputs[question.name], inputs);
|
|
21
|
+
if (res)
|
|
22
|
+
return teamsfx_api_1.err(new error_1.InputValidationError(((_b = (_a = this.localizer).invalidInputErrorMessage) === null || _b === void 0 ? void 0 : _b.call(_a, question.name, res)) ||
|
|
23
|
+
`Input '${question.name}' validation failed: ${res}`, ((_d = (_c = this.localizer).invalidInputDisplayMessage) === null || _d === void 0 ? void 0 : _d.call(_c, question.name, res)) ||
|
|
24
|
+
`Input '${question.name}' validation failed: ${res}`));
|
|
25
|
+
return teamsfx_api_1.ok({ type: "skip", result: inputs[question.name] });
|
|
26
|
+
}
|
|
27
|
+
// non-interactive mode
|
|
28
|
+
if (inputs.nonInteractive) {
|
|
29
|
+
// first priority: use single option as value
|
|
30
|
+
if (question.type === "singleSelect" || question.type === "multiSelect") {
|
|
31
|
+
if (question.skipSingleOption) {
|
|
32
|
+
const options = await loadOptions(question, inputs);
|
|
33
|
+
if (options.length === 0) {
|
|
34
|
+
return teamsfx_api_1.err(new error_1.EmptyOptionsError(question.name, "questionVisitor"));
|
|
35
|
+
}
|
|
36
|
+
if (options.length === 1) {
|
|
37
|
+
const value = getSingleOption(question, options);
|
|
38
|
+
if (value) {
|
|
39
|
+
return teamsfx_api_1.ok({ type: "skip", result: value });
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
// second priority: use default as value
|
|
45
|
+
if (question.default) {
|
|
46
|
+
const value = (await getCallFuncValue(inputs, question.default));
|
|
47
|
+
if (value) {
|
|
48
|
+
const validateRes = await validationUtils_1.validationUtils.validateInputs(question, value, inputs);
|
|
49
|
+
if (validateRes) {
|
|
50
|
+
return teamsfx_api_1.err(new error_1.InputValidationError(((_f = (_e = this.localizer).invalidInputErrorMessage) === null || _f === void 0 ? void 0 : _f.call(_e, question.name, validateRes)) ||
|
|
51
|
+
`Input '${question.name}' validation failed: ${validateRes}`, ((_h = (_g = this.localizer).invalidInputDisplayMessage) === null || _h === void 0 ? void 0 : _h.call(_g, question.name, validateRes)) ||
|
|
52
|
+
`Input '${question.name}' validation failed: ${validateRes}`));
|
|
53
|
+
}
|
|
54
|
+
else {
|
|
55
|
+
return teamsfx_api_1.ok({ type: "skip", result: value });
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
if (question.required)
|
|
60
|
+
return teamsfx_api_1.err(new error_1.MissingRequiredInputError(((_k = (_j = this.localizer).missingInputErrorMessage) === null || _k === void 0 ? void 0 : _k.call(_j, question.name)) ||
|
|
61
|
+
`Missing required input: ${question.name}`, ((_m = (_l = this.localizer).missingInputDisplayMessage) === null || _m === void 0 ? void 0 : _m.call(_l, question.name)) ||
|
|
62
|
+
`Missing required input: ${question.name}`));
|
|
63
|
+
else
|
|
64
|
+
return teamsfx_api_1.ok({ type: "skip", result: undefined });
|
|
65
|
+
}
|
|
66
|
+
// interactive mode
|
|
67
|
+
const title = (await getCallFuncValue(inputs, question.title));
|
|
68
|
+
let defaultValue = undefined;
|
|
69
|
+
if (question.forgetLastValue !== true && question.value)
|
|
70
|
+
defaultValue = question.value;
|
|
71
|
+
else {
|
|
72
|
+
if (question.default) {
|
|
73
|
+
if (typeof question.default === "function") {
|
|
74
|
+
defaultValue = async () => {
|
|
75
|
+
return await question.default(inputs);
|
|
76
|
+
};
|
|
77
|
+
}
|
|
78
|
+
else {
|
|
79
|
+
defaultValue = question.default;
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
const placeholder = (await getCallFuncValue(inputs, question.placeholder));
|
|
84
|
+
const prompt = (await getCallFuncValue(inputs, question.prompt));
|
|
85
|
+
if (question.type === "text") {
|
|
86
|
+
const validationFunc = question.validation
|
|
87
|
+
? validationUtils_1.getValidationFunction(question.validation, inputs)
|
|
88
|
+
: undefined;
|
|
89
|
+
const additionalValidationOnAcceptFunc = question.additionalValidationOnAccept
|
|
90
|
+
? validationUtils_1.getValidationFunction(question.additionalValidationOnAccept, inputs)
|
|
91
|
+
: undefined;
|
|
92
|
+
return await ui.inputText({
|
|
93
|
+
name: question.name,
|
|
94
|
+
title: title,
|
|
95
|
+
password: question.password,
|
|
96
|
+
default: defaultValue,
|
|
97
|
+
placeholder: placeholder,
|
|
98
|
+
prompt: prompt,
|
|
99
|
+
validation: validationFunc,
|
|
100
|
+
step: step,
|
|
101
|
+
totalSteps: totalSteps,
|
|
102
|
+
additionalValidationOnAccept: additionalValidationOnAcceptFunc,
|
|
103
|
+
});
|
|
104
|
+
}
|
|
105
|
+
else if (question.type === "singleSelect" || question.type === "multiSelect") {
|
|
106
|
+
let options = undefined;
|
|
107
|
+
if (question.dynamicOptions) {
|
|
108
|
+
options = async () => {
|
|
109
|
+
return question.dynamicOptions(inputs);
|
|
110
|
+
};
|
|
111
|
+
}
|
|
112
|
+
else {
|
|
113
|
+
if (!question.staticOptions || question.staticOptions.length === 0) {
|
|
114
|
+
return teamsfx_api_1.err(new error_1.EmptyOptionsError(this.localizer.emptyOptionErrorMessage(), this.localizer.emptyOptionErrorDisplayMessage()));
|
|
115
|
+
}
|
|
116
|
+
if (question.skipSingleOption && question.staticOptions.length === 1) {
|
|
117
|
+
const returnResult = getSingleOption(question, question.staticOptions);
|
|
118
|
+
return teamsfx_api_1.ok({ type: "skip", result: returnResult });
|
|
119
|
+
}
|
|
120
|
+
options = question.staticOptions;
|
|
121
|
+
}
|
|
122
|
+
if (question.type === "singleSelect") {
|
|
123
|
+
const validationFunc = question.validation
|
|
124
|
+
? validationUtils_1.getValidationFunction(question.validation, inputs)
|
|
125
|
+
: undefined;
|
|
126
|
+
return await ui.selectOption({
|
|
127
|
+
name: question.name,
|
|
128
|
+
title: title,
|
|
129
|
+
options: options,
|
|
130
|
+
returnObject: question.returnObject,
|
|
131
|
+
default: defaultValue,
|
|
132
|
+
placeholder: placeholder,
|
|
133
|
+
prompt: prompt,
|
|
134
|
+
step: step,
|
|
135
|
+
totalSteps: totalSteps,
|
|
136
|
+
buttons: question.buttons,
|
|
137
|
+
validation: validationFunc,
|
|
138
|
+
skipSingleOption: question.skipSingleOption,
|
|
139
|
+
});
|
|
140
|
+
}
|
|
141
|
+
else {
|
|
142
|
+
const validationFunc = question.validation
|
|
143
|
+
? validationUtils_1.getValidationFunction(question.validation, inputs)
|
|
144
|
+
: undefined;
|
|
145
|
+
return await ui.selectOptions({
|
|
146
|
+
name: question.name,
|
|
147
|
+
title: title,
|
|
148
|
+
options: options,
|
|
149
|
+
returnObject: question.returnObject,
|
|
150
|
+
default: defaultValue,
|
|
151
|
+
placeholder: placeholder,
|
|
152
|
+
prompt: prompt,
|
|
153
|
+
onDidChangeSelection: question.onDidChangeSelection,
|
|
154
|
+
step: step,
|
|
155
|
+
totalSteps: totalSteps,
|
|
156
|
+
validation: validationFunc,
|
|
157
|
+
skipSingleOption: question.skipSingleOption,
|
|
158
|
+
});
|
|
159
|
+
}
|
|
160
|
+
}
|
|
161
|
+
else if (question.type === "multiFile") {
|
|
162
|
+
const validationFunc = question.validation
|
|
163
|
+
? validationUtils_1.getValidationFunction(question.validation, inputs)
|
|
164
|
+
: undefined;
|
|
165
|
+
return await ui.selectFiles({
|
|
166
|
+
name: question.name,
|
|
167
|
+
title: title,
|
|
168
|
+
placeholder: placeholder,
|
|
169
|
+
prompt: prompt,
|
|
170
|
+
default: defaultValue,
|
|
171
|
+
step: step,
|
|
172
|
+
totalSteps: totalSteps,
|
|
173
|
+
validation: validationFunc,
|
|
174
|
+
});
|
|
175
|
+
}
|
|
176
|
+
else if (question.type === "singleFile") {
|
|
177
|
+
const validationFunc = question.validation
|
|
178
|
+
? validationUtils_1.getValidationFunction(question.validation, inputs)
|
|
179
|
+
: undefined;
|
|
180
|
+
return await ui.selectFile({
|
|
181
|
+
name: question.name,
|
|
182
|
+
title: title,
|
|
183
|
+
placeholder: placeholder,
|
|
184
|
+
prompt: prompt,
|
|
185
|
+
default: defaultValue,
|
|
186
|
+
step: step,
|
|
187
|
+
totalSteps: totalSteps,
|
|
188
|
+
validation: validationFunc,
|
|
189
|
+
filters: question.filters,
|
|
190
|
+
});
|
|
191
|
+
}
|
|
192
|
+
else if (question.type === "folder") {
|
|
193
|
+
const validationFunc = question.validation
|
|
194
|
+
? validationUtils_1.getValidationFunction(question.validation, inputs)
|
|
195
|
+
: undefined;
|
|
196
|
+
return await ui.selectFolder({
|
|
197
|
+
name: question.name,
|
|
198
|
+
title: title,
|
|
199
|
+
placeholder: placeholder,
|
|
200
|
+
prompt: prompt,
|
|
201
|
+
default: defaultValue,
|
|
202
|
+
step: step,
|
|
203
|
+
totalSteps: totalSteps,
|
|
204
|
+
validation: validationFunc,
|
|
205
|
+
});
|
|
206
|
+
}
|
|
207
|
+
else if (question.type === "singleFileOrText" && !!ui.selectFileOrInput) {
|
|
208
|
+
const validationFunc = question.validation
|
|
209
|
+
? validationUtils_1.getValidationFunction(question.validation, inputs)
|
|
210
|
+
: undefined;
|
|
211
|
+
const inputValidationFunc = question.inputBoxConfig.validation
|
|
212
|
+
? validationUtils_1.getValidationFunction(question.inputBoxConfig.validation, inputs)
|
|
213
|
+
: undefined;
|
|
214
|
+
const innerTitle = (await getCallFuncValue(inputs, question.inputBoxConfig.title));
|
|
215
|
+
const innerPlaceholder = (await getCallFuncValue(inputs, question.inputBoxConfig.placeholder));
|
|
216
|
+
const innerPrompt = (await getCallFuncValue(inputs, question.inputBoxConfig.prompt));
|
|
217
|
+
const res = await ui.selectFileOrInput({
|
|
218
|
+
name: question.name,
|
|
219
|
+
title: title,
|
|
220
|
+
placeholder: placeholder,
|
|
221
|
+
prompt: prompt,
|
|
222
|
+
inputOptionItem: question.inputOptionItem,
|
|
223
|
+
inputBoxConfig: {
|
|
224
|
+
name: question.inputBoxConfig.name,
|
|
225
|
+
title: innerTitle,
|
|
226
|
+
placeholder: innerPlaceholder,
|
|
227
|
+
prompt: innerPrompt,
|
|
228
|
+
validation: inputValidationFunc,
|
|
229
|
+
step: question.inputBoxConfig.step,
|
|
230
|
+
},
|
|
231
|
+
filters: question.filters,
|
|
232
|
+
step: step,
|
|
233
|
+
totalSteps: totalSteps,
|
|
234
|
+
validation: validationFunc,
|
|
235
|
+
});
|
|
236
|
+
return res;
|
|
237
|
+
}
|
|
238
|
+
else if (question.type === "confirm" && ui.confirm) {
|
|
239
|
+
const res = await ui.confirm({
|
|
240
|
+
name: question.name,
|
|
241
|
+
title: title,
|
|
242
|
+
default: defaultValue,
|
|
243
|
+
step: step,
|
|
244
|
+
totalSteps: totalSteps,
|
|
245
|
+
});
|
|
246
|
+
return res;
|
|
247
|
+
}
|
|
248
|
+
return teamsfx_api_1.err(new error_1.UnsupportedQuestionTypeError(`Unsupported question node type:${JSON.stringify(question)}`, `Unsupported question node type:${JSON.stringify(question)}`));
|
|
249
|
+
}
|
|
250
|
+
async traverse(root, inputs, ui, visitor, postVisitor) {
|
|
251
|
+
// The reason to clone is that we don't want to change the original inputs if user cancel the process
|
|
252
|
+
const clonedInputs = lodash_1.cloneDeep(inputs);
|
|
253
|
+
// 1. collect all nodes into array
|
|
254
|
+
const parentMap = new Map();
|
|
255
|
+
const nodeList = [];
|
|
256
|
+
collect(root, nodeList, parentMap);
|
|
257
|
+
const visitedNodeSet = new Set();
|
|
258
|
+
const visitedInputNodeArray = [];
|
|
259
|
+
let i = 0;
|
|
260
|
+
for (; i < nodeList.length; ++i) {
|
|
261
|
+
const node = nodeList[i];
|
|
262
|
+
// if parent node is not visited, current node should not be visited
|
|
263
|
+
const parent = parentMap.get(node);
|
|
264
|
+
if (parent) {
|
|
265
|
+
if (!visitedNodeSet.has(parent)) {
|
|
266
|
+
continue;
|
|
267
|
+
}
|
|
268
|
+
}
|
|
269
|
+
// 1. check condition
|
|
270
|
+
if (node.condition) {
|
|
271
|
+
let parentValue = undefined;
|
|
272
|
+
// const parent = parentMap.get(node);
|
|
273
|
+
if (parent) {
|
|
274
|
+
parentValue = findValue(parent, parentMap);
|
|
275
|
+
}
|
|
276
|
+
const validRes = await validationUtils_1.validate(node.condition, parentValue, clonedInputs);
|
|
277
|
+
if (validRes !== undefined) {
|
|
278
|
+
continue;
|
|
279
|
+
}
|
|
280
|
+
}
|
|
281
|
+
// 2. visit node if not group
|
|
282
|
+
if (node.data.type !== "group") {
|
|
283
|
+
const question = node.data;
|
|
284
|
+
let res;
|
|
285
|
+
try {
|
|
286
|
+
const finalVisitor = visitor ? visitor : this.defaultVisotor.bind(this);
|
|
287
|
+
res = await finalVisitor(question, ui, clonedInputs, visitedInputNodeArray.length + 1, undefined);
|
|
288
|
+
postVisitor === null || postVisitor === void 0 ? void 0 : postVisitor(question, res, clonedInputs);
|
|
289
|
+
}
|
|
290
|
+
catch (e) {
|
|
291
|
+
const error = teamsfx_api_1.err(error_1.assembleError(e, "visit node error", "visit node error"));
|
|
292
|
+
postVisitor === null || postVisitor === void 0 ? void 0 : postVisitor(question, error, clonedInputs);
|
|
293
|
+
return error;
|
|
294
|
+
}
|
|
295
|
+
if (res.isErr()) {
|
|
296
|
+
// Cancel or Error
|
|
297
|
+
return teamsfx_api_1.err(res.error);
|
|
298
|
+
}
|
|
299
|
+
const inputResult = res.value;
|
|
300
|
+
if (inputResult.type === "back") {
|
|
301
|
+
const prevNode = visitedInputNodeArray.pop();
|
|
302
|
+
if (!prevNode) {
|
|
303
|
+
return teamsfx_api_1.err(new error_1.UserCancelError(this.localizer.cancelErrorMessage(), this.localizer.cancelErrorDisplayMessage()));
|
|
304
|
+
}
|
|
305
|
+
for (--i; i >= 0; --i) {
|
|
306
|
+
const tmpNode = nodeList[i];
|
|
307
|
+
visitedNodeSet.delete(tmpNode);
|
|
308
|
+
// clear prevNode data
|
|
309
|
+
if (tmpNode.data.type !== "group") {
|
|
310
|
+
delete tmpNode.data.value;
|
|
311
|
+
delete tmpNode.data.valueType;
|
|
312
|
+
delete clonedInputs[tmpNode.data.name];
|
|
313
|
+
}
|
|
314
|
+
if (tmpNode === prevNode) {
|
|
315
|
+
break;
|
|
316
|
+
}
|
|
317
|
+
}
|
|
318
|
+
--i;
|
|
319
|
+
continue;
|
|
320
|
+
}
|
|
321
|
+
else {
|
|
322
|
+
//success or skip: set value
|
|
323
|
+
question.value = inputResult.result;
|
|
324
|
+
question.valueType = inputResult.type;
|
|
325
|
+
clonedInputs[question.name] = question.value;
|
|
326
|
+
visitedNodeSet.add(node);
|
|
327
|
+
if (question.valueType === "success") {
|
|
328
|
+
visitedInputNodeArray.push(node);
|
|
329
|
+
}
|
|
330
|
+
}
|
|
331
|
+
}
|
|
332
|
+
else {
|
|
333
|
+
visitedNodeSet.add(node);
|
|
334
|
+
}
|
|
335
|
+
}
|
|
336
|
+
lodash_1.assign(inputs, clonedInputs);
|
|
337
|
+
return teamsfx_api_1.ok(undefined);
|
|
338
|
+
}
|
|
339
|
+
}
|
|
340
|
+
exports.QuestionModelEngine = QuestionModelEngine;
|
|
341
|
+
function getSingleOption(q, option) {
|
|
342
|
+
if (!option)
|
|
343
|
+
option = q.staticOptions;
|
|
344
|
+
const optionIsString = typeof option[0] === "string";
|
|
345
|
+
let returnResult;
|
|
346
|
+
if (optionIsString)
|
|
347
|
+
returnResult = option[0];
|
|
348
|
+
else {
|
|
349
|
+
if (q.returnObject === true)
|
|
350
|
+
returnResult = option[0];
|
|
351
|
+
else
|
|
352
|
+
returnResult = option[0].id;
|
|
353
|
+
}
|
|
354
|
+
if (q.type === "singleSelect")
|
|
355
|
+
return returnResult;
|
|
356
|
+
else
|
|
357
|
+
return [returnResult];
|
|
358
|
+
}
|
|
359
|
+
exports.getSingleOption = getSingleOption;
|
|
360
|
+
async function getCallFuncValue(inputs, raw) {
|
|
361
|
+
if (raw && typeof raw === "function") {
|
|
362
|
+
return await raw(inputs);
|
|
363
|
+
}
|
|
364
|
+
return raw;
|
|
365
|
+
}
|
|
366
|
+
async function loadOptions(question, inputs) {
|
|
367
|
+
let options = question.staticOptions;
|
|
368
|
+
if (question.dynamicOptions) {
|
|
369
|
+
options = await question.dynamicOptions(inputs);
|
|
370
|
+
}
|
|
371
|
+
return options;
|
|
372
|
+
}
|
|
373
|
+
exports.loadOptions = loadOptions;
|
|
374
|
+
/**
|
|
375
|
+
* serialize the tree node into array in DFS order
|
|
376
|
+
*/
|
|
377
|
+
function collect(node, list, parentMap) {
|
|
378
|
+
list.push(node);
|
|
379
|
+
if (node.children) {
|
|
380
|
+
for (const child of node.children) {
|
|
381
|
+
if (child) {
|
|
382
|
+
parentMap.set(child, node);
|
|
383
|
+
collect(child, list, parentMap);
|
|
384
|
+
}
|
|
385
|
+
}
|
|
386
|
+
}
|
|
387
|
+
}
|
|
388
|
+
exports.collect = collect;
|
|
389
|
+
function findValue(curr, parentMap) {
|
|
390
|
+
if (curr.data.type !== "group") {
|
|
391
|
+
// need to convert OptionItem value into id for validation
|
|
392
|
+
if (curr.data.type === "singleSelect") {
|
|
393
|
+
const sq = curr.data;
|
|
394
|
+
if (sq.value && typeof sq.value !== "string" && sq.value.id) {
|
|
395
|
+
return sq.value.id;
|
|
396
|
+
}
|
|
397
|
+
}
|
|
398
|
+
else if (curr.data.type === "multiSelect") {
|
|
399
|
+
const mq = curr.data;
|
|
400
|
+
if (mq.value && typeof mq.value[0] !== "string") {
|
|
401
|
+
return mq.value.map((i) => i.id);
|
|
402
|
+
}
|
|
403
|
+
}
|
|
404
|
+
return curr.data.value;
|
|
405
|
+
}
|
|
406
|
+
const parent = parentMap.get(curr);
|
|
407
|
+
if (parent) {
|
|
408
|
+
return findValue(parent, parentMap);
|
|
409
|
+
}
|
|
410
|
+
return undefined;
|
|
411
|
+
}
|
|
412
|
+
//# sourceMappingURL=visitor.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"visitor.js","sourceRoot":"","sources":["../src/visitor.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@microsoft/vscode-ui",
|
|
3
|
-
"version": "1.0.1-alpha.
|
|
3
|
+
"version": "1.0.1-alpha.a8fa2ab1d.0",
|
|
4
4
|
"main": "build/index.js",
|
|
5
5
|
"types": "build/index.d.ts",
|
|
6
6
|
"license": "MIT",
|
|
@@ -19,8 +19,9 @@
|
|
|
19
19
|
"installAll": "npm run install:tabs"
|
|
20
20
|
},
|
|
21
21
|
"dependencies": {
|
|
22
|
-
"@microsoft/teamsfx-api": "0.22.
|
|
22
|
+
"@microsoft/teamsfx-api": "0.22.7-alpha.a8fa2ab1d.0",
|
|
23
23
|
"async-mutex": "^0.3.1",
|
|
24
|
+
"jsonschema": "1.4.0",
|
|
24
25
|
"lodash": "^4.17.21"
|
|
25
26
|
},
|
|
26
27
|
"devDependencies": {
|
|
@@ -59,7 +60,7 @@
|
|
|
59
60
|
"files": [
|
|
60
61
|
"build/**/*"
|
|
61
62
|
],
|
|
62
|
-
"gitHead": "
|
|
63
|
+
"gitHead": "7f421846809944842384aaa2e053b19917ae66aa",
|
|
63
64
|
"publishConfig": {
|
|
64
65
|
"access": "public"
|
|
65
66
|
},
|