@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 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
@@ -1 +1 @@
1
- {"version":3,"file":"error.d.ts","sourceRoot":"","sources":["../src/error.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AAEnD,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"}
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
@@ -1 +1 @@
1
- {"version":3,"file":"error.js","sourceRoot":"","sources":["../src/error.ts"],"names":[],"mappings":";AAAA,uCAAuC;AACvC,kCAAkC;;;AAElC,wDAAmD;AAEnD,MAAa,eAAgB,SAAQ,uBAAS;IAC5C,YAAY,OAAe,EAAE,cAAsB;QACjD,KAAK,CAAC;YACJ,MAAM,EAAE,IAAI;YACZ,IAAI,EAAE,iBAAiB;YACvB,OAAO,EAAE,OAAO;YAChB,cAAc,EAAE,cAAc;YAC9B,UAAU,EAAE,CAAC,UAAU,CAAC;SACzB,CAAC,CAAC;IACL,CAAC;CACF;AAVD,0CAUC;AAED,MAAa,iBAAkB,SAAQ,uBAAS;IAC9C,YAAY,OAAe,EAAE,cAAsB;QACjD,KAAK,CAAC;YACJ,MAAM,EAAE,IAAI;YACZ,IAAI,EAAE,mBAAmB;YACzB,OAAO,EAAE,OAAO;YAChB,cAAc,EAAE,cAAc;YAC9B,UAAU,EAAE,CAAC,UAAU,CAAC;SACzB,CAAC,CAAC;IACL,CAAC;CACF;AAVD,8CAUC;AAED,MAAa,eAAgB,SAAQ,uBAAS;IAC5C,YAAY,OAAe,EAAE,cAAsB;QACjD,KAAK,CAAC;YACJ,MAAM,EAAE,IAAI;YACZ,IAAI,EAAE,iBAAiB;YACvB,OAAO,EAAE,OAAO;YAChB,cAAc,EAAE,cAAc;YAC9B,UAAU,EAAE,CAAC,UAAU,CAAC;SACzB,CAAC,CAAC;IACL,CAAC;CACF;AAVD,0CAUC;AAED,MAAa,kBAAmB,SAAQ,uBAAS;IAC/C,YAAY,OAAe,EAAE,cAAsB;QACjD,KAAK,CAAC;YACJ,MAAM,EAAE,IAAI;YACZ,IAAI,EAAE,oBAAoB;YAC1B,OAAO,EAAE,OAAO;YAChB,cAAc,EAAE,cAAc;YAC9B,UAAU,EAAE,CAAC,UAAU,CAAC;SACzB,CAAC,CAAC;IACL,CAAC;CACF;AAVD,gDAUC"}
1
+ {"version":3,"file":"error.js","sourceRoot":"","sources":["../src/error.ts"],"names":[],"mappings":"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"}
package/build/index.d.ts CHANGED
@@ -2,4 +2,6 @@ export * from "./ui";
2
2
  export * from "./progressHandler";
3
3
  export * from "./localize";
4
4
  export * from "./error";
5
+ export * from "./visitor";
6
+ export * from "./validationUtils";
5
7
  //# sourceMappingURL=index.d.ts.map
@@ -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
@@ -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"}
@@ -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
@@ -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;CAC5D;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;CAGpC"}
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
@@ -1 +1 @@
1
- {"version":3,"file":"localize.js","sourceRoot":"","sources":["../src/localize.ts"],"names":[],"mappings":";AAAA,uCAAuC;AACvC,kCAAkC;;;AAmBlC,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;CACF;AA3CD,4CA2CC"}
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"}
@@ -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.94d0acbf8.0",
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.6-alpha.94d0acbf8.0",
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": "ad54e9300a07295f2b81795c2b4e66015312a7b3",
63
+ "gitHead": "7f421846809944842384aaa2e053b19917ae66aa",
63
64
  "publishConfig": {
64
65
  "access": "public"
65
66
  },