@microsoft/teamsfx-core 2.0.4-alpha.e83c26af7.0 → 2.0.4-alpha.ea55e6d34.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.
Files changed (603) hide show
  1. package/build/common/constants.d.ts +1 -0
  2. package/build/common/constants.d.ts.map +1 -1
  3. package/build/common/constants.js +1 -0
  4. package/build/common/constants.js.map +1 -1
  5. package/build/common/deps-checker/checkerFactory.d.ts +1 -2
  6. package/build/common/deps-checker/checkerFactory.d.ts.map +1 -1
  7. package/build/common/deps-checker/checkerFactory.js +2 -2
  8. package/build/common/deps-checker/checkerFactory.js.map +1 -1
  9. package/build/common/deps-checker/depsLogger.d.ts +14 -14
  10. package/build/common/deps-checker/depsLogger.d.ts.map +1 -1
  11. package/build/common/deps-checker/depsLogger.js +7 -21
  12. package/build/common/deps-checker/depsLogger.js.map +1 -1
  13. package/build/common/deps-checker/internal/dotnetChecker.d.ts.map +1 -1
  14. package/build/common/deps-checker/internal/dotnetChecker.js +42 -37
  15. package/build/common/deps-checker/internal/dotnetChecker.js.map +1 -1
  16. package/build/common/deps-checker/internal/funcToolChecker.d.ts.map +1 -1
  17. package/build/common/deps-checker/internal/funcToolChecker.js +2 -2
  18. package/build/common/deps-checker/internal/funcToolChecker.js.map +1 -1
  19. package/build/common/deps-checker/internal/nodeChecker.d.ts.map +1 -1
  20. package/build/common/deps-checker/internal/nodeChecker.js +8 -8
  21. package/build/common/deps-checker/internal/nodeChecker.js.map +1 -1
  22. package/build/common/deps-checker/internal/vxTestAppChecker.js +1 -1
  23. package/build/common/deps-checker/internal/vxTestAppChecker.js.map +1 -1
  24. package/build/common/deps-checker/util/cpUtils.d.ts +1 -1
  25. package/build/common/deps-checker/util/cpUtils.d.ts.map +1 -1
  26. package/build/common/deps-checker/util/cpUtils.js +4 -4
  27. package/build/common/deps-checker/util/cpUtils.js.map +1 -1
  28. package/build/common/deps-checker/util/progressIndicator.js +2 -2
  29. package/build/common/deps-checker/util/progressIndicator.js.map +1 -1
  30. package/build/common/featureFlags.d.ts +1 -0
  31. package/build/common/featureFlags.d.ts.map +1 -1
  32. package/build/common/featureFlags.js +5 -1
  33. package/build/common/featureFlags.js.map +1 -1
  34. package/build/common/local/localCertificateManager.d.ts.map +1 -1
  35. package/build/common/local/localCertificateManager.js +4 -1
  36. package/build/common/local/localCertificateManager.js.map +1 -1
  37. package/build/common/local/packageJsonHelper.d.ts.map +1 -1
  38. package/build/common/local/packageJsonHelper.js +1 -0
  39. package/build/common/local/packageJsonHelper.js.map +1 -1
  40. package/build/common/local/portChecker.js.map +1 -1
  41. package/build/common/m365/launchHelper.d.ts +2 -2
  42. package/build/common/m365/launchHelper.d.ts.map +1 -1
  43. package/build/common/m365/launchHelper.js +24 -6
  44. package/build/common/m365/launchHelper.js.map +1 -1
  45. package/build/common/m365/packageService.d.ts.map +1 -1
  46. package/build/common/m365/packageService.js +66 -19
  47. package/build/common/m365/packageService.js.map +1 -1
  48. package/build/common/projectSettingsHelper.d.ts.map +1 -1
  49. package/build/common/projectSettingsHelper.js +1 -0
  50. package/build/common/projectSettingsHelper.js.map +1 -1
  51. package/build/common/samples.d.ts +13 -5
  52. package/build/common/samples.d.ts.map +1 -1
  53. package/build/common/samples.js +58 -38
  54. package/build/common/samples.js.map +1 -1
  55. package/build/common/spec-parser/adaptiveCardGenerator.d.ts +5 -0
  56. package/build/common/spec-parser/adaptiveCardGenerator.d.ts.map +1 -0
  57. package/build/common/spec-parser/adaptiveCardGenerator.js +120 -0
  58. package/build/common/spec-parser/adaptiveCardGenerator.js.map +1 -0
  59. package/build/common/spec-parser/constants.d.ts +21 -7
  60. package/build/common/spec-parser/constants.d.ts.map +1 -1
  61. package/build/common/spec-parser/constants.js +45 -7
  62. package/build/common/spec-parser/constants.js.map +1 -1
  63. package/build/common/spec-parser/interfaces.d.ts +83 -13
  64. package/build/common/spec-parser/interfaces.d.ts.map +1 -1
  65. package/build/common/spec-parser/interfaces.js +23 -13
  66. package/build/common/spec-parser/interfaces.js.map +1 -1
  67. package/build/common/spec-parser/manifestUpdater.d.ts +6 -0
  68. package/build/common/spec-parser/manifestUpdater.d.ts.map +1 -0
  69. package/build/common/spec-parser/manifestUpdater.js +133 -0
  70. package/build/common/spec-parser/manifestUpdater.js.map +1 -0
  71. package/build/common/spec-parser/specFilter.d.ts +3 -0
  72. package/build/common/spec-parser/specFilter.d.ts.map +1 -0
  73. package/build/common/spec-parser/specFilter.js +40 -0
  74. package/build/common/spec-parser/specFilter.js.map +1 -0
  75. package/build/common/spec-parser/specParser.d.ts +14 -5
  76. package/build/common/spec-parser/specParser.d.ts.map +1 -1
  77. package/build/common/spec-parser/specParser.js +181 -94
  78. package/build/common/spec-parser/specParser.js.map +1 -1
  79. package/build/common/spec-parser/utils.d.ts +29 -0
  80. package/build/common/spec-parser/utils.d.ts.map +1 -0
  81. package/build/common/spec-parser/utils.js +309 -0
  82. package/build/common/spec-parser/utils.js.map +1 -0
  83. package/build/common/telemetry.d.ts +7 -5
  84. package/build/common/telemetry.d.ts.map +1 -1
  85. package/build/common/telemetry.js +41 -15
  86. package/build/common/telemetry.js.map +1 -1
  87. package/build/common/tools.d.ts.map +1 -1
  88. package/build/common/tools.js +7 -2
  89. package/build/common/tools.js.map +1 -1
  90. package/build/common/utils.d.ts +1 -0
  91. package/build/common/utils.d.ts.map +1 -1
  92. package/build/common/utils.js +5 -1
  93. package/build/common/utils.js.map +1 -1
  94. package/build/component/configManager/interface.d.ts +5 -1
  95. package/build/component/configManager/interface.d.ts.map +1 -1
  96. package/build/component/configManager/interface.js.map +1 -1
  97. package/build/component/configManager/lifecycle.d.ts +1 -3
  98. package/build/component/configManager/lifecycle.d.ts.map +1 -1
  99. package/build/component/configManager/lifecycle.js +25 -52
  100. package/build/component/configManager/lifecycle.js.map +1 -1
  101. package/build/component/configManager/parser.d.ts.map +1 -1
  102. package/build/component/configManager/parser.js +12 -6
  103. package/build/component/configManager/parser.js.map +1 -1
  104. package/build/component/configManager/validator.d.ts +0 -3
  105. package/build/component/configManager/validator.d.ts.map +1 -1
  106. package/build/component/configManager/validator.js +2 -12
  107. package/build/component/configManager/validator.js.map +1 -1
  108. package/build/component/constants.d.ts +11 -0
  109. package/build/component/constants.d.ts.map +1 -1
  110. package/build/component/constants.js +11 -0
  111. package/build/component/constants.js.map +1 -1
  112. package/build/component/coordinator/index.d.ts +12 -8
  113. package/build/component/coordinator/index.d.ts.map +1 -1
  114. package/build/component/coordinator/index.js +80 -67
  115. package/build/component/coordinator/index.js.map +1 -1
  116. package/build/component/coordinator/summary.d.ts.map +1 -1
  117. package/build/component/coordinator/summary.js +2 -1
  118. package/build/component/coordinator/summary.js.map +1 -1
  119. package/build/component/developerPortalScaffoldUtils.d.ts +1 -1
  120. package/build/component/developerPortalScaffoldUtils.d.ts.map +1 -1
  121. package/build/component/developerPortalScaffoldUtils.js +7 -7
  122. package/build/component/developerPortalScaffoldUtils.js.map +1 -1
  123. package/build/component/driver/aad/create.d.ts +1 -2
  124. package/build/component/driver/aad/create.d.ts.map +1 -1
  125. package/build/component/driver/aad/create.js +4 -11
  126. package/build/component/driver/aad/create.js.map +1 -1
  127. package/build/component/driver/aad/error/aadManifestError.d.ts +3 -0
  128. package/build/component/driver/aad/error/aadManifestError.d.ts.map +1 -1
  129. package/build/component/driver/aad/error/aadManifestError.js +13 -1
  130. package/build/component/driver/aad/error/aadManifestError.js.map +1 -1
  131. package/build/component/driver/aad/update.d.ts +1 -2
  132. package/build/component/driver/aad/update.d.ts.map +1 -1
  133. package/build/component/driver/aad/update.js +4 -11
  134. package/build/component/driver/aad/update.js.map +1 -1
  135. package/build/component/driver/aad/utility/aadAppClient.d.ts +1 -1
  136. package/build/component/driver/aad/utility/aadAppClient.d.ts.map +1 -1
  137. package/build/component/driver/aad/utility/aadAppClient.js +58 -13
  138. package/build/component/driver/aad/utility/aadAppClient.js.map +1 -1
  139. package/build/component/driver/aad/utility/constants.d.ts +3 -0
  140. package/build/component/driver/aad/utility/constants.d.ts.map +1 -1
  141. package/build/component/driver/aad/utility/constants.js +4 -1
  142. package/build/component/driver/aad/utility/constants.js.map +1 -1
  143. package/build/component/driver/add/addWebPart.d.ts.map +1 -1
  144. package/build/component/driver/add/addWebPart.js +10 -1
  145. package/build/component/driver/add/addWebPart.js.map +1 -1
  146. package/build/component/driver/arm/deploy.d.ts +1 -3
  147. package/build/component/driver/arm/deploy.d.ts.map +1 -1
  148. package/build/component/driver/arm/deploy.js +1 -14
  149. package/build/component/driver/arm/deploy.js.map +1 -1
  150. package/build/component/driver/arm/deployImpl.d.ts +2 -1
  151. package/build/component/driver/arm/deployImpl.d.ts.map +1 -1
  152. package/build/component/driver/arm/deployImpl.js +15 -0
  153. package/build/component/driver/arm/deployImpl.js.map +1 -1
  154. package/build/component/driver/arm/util/bicepChecker.js +7 -6
  155. package/build/component/driver/arm/util/bicepChecker.js.map +1 -1
  156. package/build/component/driver/arm/util/handleError.js.map +1 -1
  157. package/build/component/driver/arm/validator.d.ts.map +1 -1
  158. package/build/component/driver/arm/validator.js +3 -3
  159. package/build/component/driver/arm/validator.js.map +1 -1
  160. package/build/component/driver/botAadApp/create.d.ts +2 -1
  161. package/build/component/driver/botAadApp/create.d.ts.map +1 -1
  162. package/build/component/driver/botAadApp/create.js +7 -10
  163. package/build/component/driver/botAadApp/create.js.map +1 -1
  164. package/build/component/driver/botFramework/createOrUpdateBot.d.ts +1 -0
  165. package/build/component/driver/botFramework/createOrUpdateBot.d.ts.map +1 -1
  166. package/build/component/driver/botFramework/createOrUpdateBot.js +8 -12
  167. package/build/component/driver/botFramework/createOrUpdateBot.js.map +1 -1
  168. package/build/component/driver/deploy/azure/azureAppServiceDeployDriver.d.ts +0 -2
  169. package/build/component/driver/deploy/azure/azureAppServiceDeployDriver.d.ts.map +1 -1
  170. package/build/component/driver/deploy/azure/azureAppServiceDeployDriver.js +0 -10
  171. package/build/component/driver/deploy/azure/azureAppServiceDeployDriver.js.map +1 -1
  172. package/build/component/driver/deploy/azure/azureFunctionDeployDriver.d.ts +0 -2
  173. package/build/component/driver/deploy/azure/azureFunctionDeployDriver.d.ts.map +1 -1
  174. package/build/component/driver/deploy/azure/azureFunctionDeployDriver.js +0 -10
  175. package/build/component/driver/deploy/azure/azureFunctionDeployDriver.js.map +1 -1
  176. package/build/component/driver/deploy/azure/azureStorageDeployDriver.d.ts +0 -2
  177. package/build/component/driver/deploy/azure/azureStorageDeployDriver.d.ts.map +1 -1
  178. package/build/component/driver/deploy/azure/azureStorageDeployDriver.js +17 -19
  179. package/build/component/driver/deploy/azure/azureStorageDeployDriver.js.map +1 -1
  180. package/build/component/driver/deploy/azure/azureStorageStaticWebsiteConfigDriver.d.ts.map +1 -1
  181. package/build/component/driver/deploy/azure/azureStorageStaticWebsiteConfigDriver.js +11 -4
  182. package/build/component/driver/deploy/azure/azureStorageStaticWebsiteConfigDriver.js.map +1 -1
  183. package/build/component/driver/deploy/azure/impl/AzureZipDeployImpl.d.ts.map +1 -1
  184. package/build/component/driver/deploy/azure/impl/AzureZipDeployImpl.js +29 -16
  185. package/build/component/driver/deploy/azure/impl/AzureZipDeployImpl.js.map +1 -1
  186. package/build/component/driver/deploy/azure/impl/azureDeployImpl.d.ts.map +1 -1
  187. package/build/component/driver/deploy/azure/impl/azureDeployImpl.js +18 -15
  188. package/build/component/driver/deploy/azure/impl/azureDeployImpl.js.map +1 -1
  189. package/build/component/driver/deploy/azure/impl/baseDeployImpl.d.ts.map +1 -1
  190. package/build/component/driver/deploy/azure/impl/baseDeployImpl.js +4 -4
  191. package/build/component/driver/deploy/azure/impl/baseDeployImpl.js.map +1 -1
  192. package/build/component/driver/deploy/spfx/deployDriver.d.ts +1 -0
  193. package/build/component/driver/deploy/spfx/deployDriver.d.ts.map +1 -1
  194. package/build/component/driver/deploy/spfx/deployDriver.js +27 -5
  195. package/build/component/driver/deploy/spfx/deployDriver.js.map +1 -1
  196. package/build/component/driver/devTool/installDriver.d.ts +1 -0
  197. package/build/component/driver/devTool/installDriver.d.ts.map +1 -1
  198. package/build/component/driver/devTool/installDriver.js +33 -11
  199. package/build/component/driver/devTool/installDriver.js.map +1 -1
  200. package/build/component/driver/file/createOrUpdateEnvironmentFile.d.ts +1 -0
  201. package/build/component/driver/file/createOrUpdateEnvironmentFile.d.ts.map +1 -1
  202. package/build/component/driver/file/createOrUpdateEnvironmentFile.js +12 -18
  203. package/build/component/driver/file/createOrUpdateEnvironmentFile.js.map +1 -1
  204. package/build/component/driver/file/createOrUpdateJsonFile.d.ts +1 -0
  205. package/build/component/driver/file/createOrUpdateJsonFile.d.ts.map +1 -1
  206. package/build/component/driver/file/createOrUpdateJsonFile.js +5 -11
  207. package/build/component/driver/file/createOrUpdateJsonFile.js.map +1 -1
  208. package/build/component/driver/interface/stepDriver.d.ts +2 -7
  209. package/build/component/driver/interface/stepDriver.d.ts.map +1 -1
  210. package/build/component/driver/m365/acquire.d.ts +1 -0
  211. package/build/component/driver/m365/acquire.d.ts.map +1 -1
  212. package/build/component/driver/m365/acquire.js +6 -12
  213. package/build/component/driver/m365/acquire.js.map +1 -1
  214. package/build/component/driver/script/baseBuildDriver.d.ts.map +1 -1
  215. package/build/component/driver/script/baseBuildDriver.js +1 -0
  216. package/build/component/driver/script/baseBuildDriver.js.map +1 -1
  217. package/build/component/driver/script/baseBuildStepDriver.d.ts +0 -2
  218. package/build/component/driver/script/baseBuildStepDriver.d.ts.map +1 -1
  219. package/build/component/driver/script/baseBuildStepDriver.js +0 -4
  220. package/build/component/driver/script/baseBuildStepDriver.js.map +1 -1
  221. package/build/component/driver/script/dotnetBuildDriver.d.ts +0 -2
  222. package/build/component/driver/script/dotnetBuildDriver.d.ts.map +1 -1
  223. package/build/component/driver/script/dotnetBuildDriver.js +0 -9
  224. package/build/component/driver/script/dotnetBuildDriver.js.map +1 -1
  225. package/build/component/driver/script/npmBuildDriver.d.ts +0 -2
  226. package/build/component/driver/script/npmBuildDriver.d.ts.map +1 -1
  227. package/build/component/driver/script/npmBuildDriver.js +0 -9
  228. package/build/component/driver/script/npmBuildDriver.js.map +1 -1
  229. package/build/component/driver/script/npxBuildDriver.d.ts +0 -2
  230. package/build/component/driver/script/npxBuildDriver.d.ts.map +1 -1
  231. package/build/component/driver/script/npxBuildDriver.js +0 -9
  232. package/build/component/driver/script/npxBuildDriver.js.map +1 -1
  233. package/build/component/driver/script/scriptDriver.d.ts +10 -1
  234. package/build/component/driver/script/scriptDriver.d.ts.map +1 -1
  235. package/build/component/driver/script/scriptDriver.js +31 -30
  236. package/build/component/driver/script/scriptDriver.js.map +1 -1
  237. package/build/component/driver/teamsApp/appStudio.d.ts.map +1 -1
  238. package/build/component/driver/teamsApp/appStudio.js +11 -11
  239. package/build/component/driver/teamsApp/appStudio.js.map +1 -1
  240. package/build/component/driver/teamsApp/clients/appStudioClient.d.ts +5 -5
  241. package/build/component/driver/teamsApp/clients/appStudioClient.d.ts.map +1 -1
  242. package/build/component/driver/teamsApp/clients/appStudioClient.js +31 -11
  243. package/build/component/driver/teamsApp/clients/appStudioClient.js.map +1 -1
  244. package/build/component/driver/teamsApp/clients/authSvcClient.d.ts.map +1 -1
  245. package/build/component/driver/teamsApp/clients/authSvcClient.js +2 -0
  246. package/build/component/driver/teamsApp/clients/authSvcClient.js.map +1 -1
  247. package/build/component/driver/teamsApp/configure.d.ts +1 -1
  248. package/build/component/driver/teamsApp/configure.d.ts.map +1 -1
  249. package/build/component/driver/teamsApp/configure.js +5 -23
  250. package/build/component/driver/teamsApp/configure.js.map +1 -1
  251. package/build/component/driver/teamsApp/constants.d.ts +0 -1
  252. package/build/component/driver/teamsApp/constants.d.ts.map +1 -1
  253. package/build/component/driver/teamsApp/constants.js +1 -2
  254. package/build/component/driver/teamsApp/constants.js.map +1 -1
  255. package/build/component/driver/teamsApp/copyAppPackageToSPFx.d.ts +1 -2
  256. package/build/component/driver/teamsApp/copyAppPackageToSPFx.d.ts.map +1 -1
  257. package/build/component/driver/teamsApp/copyAppPackageToSPFx.js +4 -11
  258. package/build/component/driver/teamsApp/copyAppPackageToSPFx.js.map +1 -1
  259. package/build/component/driver/teamsApp/create.d.ts +1 -1
  260. package/build/component/driver/teamsApp/create.d.ts.map +1 -1
  261. package/build/component/driver/teamsApp/create.js +6 -11
  262. package/build/component/driver/teamsApp/create.js.map +1 -1
  263. package/build/component/driver/teamsApp/createAppPackage.d.ts +4 -3
  264. package/build/component/driver/teamsApp/createAppPackage.d.ts.map +1 -1
  265. package/build/component/driver/teamsApp/createAppPackage.js +68 -32
  266. package/build/component/driver/teamsApp/createAppPackage.js.map +1 -1
  267. package/build/component/driver/teamsApp/errors.d.ts.map +1 -1
  268. package/build/component/driver/teamsApp/errors.js +2 -0
  269. package/build/component/driver/teamsApp/errors.js.map +1 -1
  270. package/build/component/driver/teamsApp/interfaces/appdefinitions/messagingExtension.d.ts +2 -0
  271. package/build/component/driver/teamsApp/interfaces/appdefinitions/messagingExtension.d.ts.map +1 -1
  272. package/build/component/driver/teamsApp/interfaces/appdefinitions/messagingExtensionCommand.d.ts +1 -0
  273. package/build/component/driver/teamsApp/interfaces/appdefinitions/messagingExtensionCommand.d.ts.map +1 -1
  274. package/build/component/driver/teamsApp/publishAppPackage.d.ts +1 -1
  275. package/build/component/driver/teamsApp/publishAppPackage.d.ts.map +1 -1
  276. package/build/component/driver/teamsApp/publishAppPackage.js +4 -12
  277. package/build/component/driver/teamsApp/publishAppPackage.js.map +1 -1
  278. package/build/component/driver/teamsApp/utils/ManifestUtils.d.ts +8 -2
  279. package/build/component/driver/teamsApp/utils/ManifestUtils.d.ts.map +1 -1
  280. package/build/component/driver/teamsApp/utils/ManifestUtils.js +24 -4
  281. package/build/component/driver/teamsApp/utils/ManifestUtils.js.map +1 -1
  282. package/build/component/driver/teamsApp/utils/telemetry.d.ts +1 -0
  283. package/build/component/driver/teamsApp/utils/telemetry.d.ts.map +1 -1
  284. package/build/component/driver/teamsApp/utils/telemetry.js +1 -0
  285. package/build/component/driver/teamsApp/utils/telemetry.js.map +1 -1
  286. package/build/component/driver/teamsApp/utils/utils.d.ts +2 -3
  287. package/build/component/driver/teamsApp/utils/utils.d.ts.map +1 -1
  288. package/build/component/driver/teamsApp/utils/utils.js +21 -19
  289. package/build/component/driver/teamsApp/utils/utils.js.map +1 -1
  290. package/build/component/driver/teamsApp/validate.d.ts +1 -1
  291. package/build/component/driver/teamsApp/validate.d.ts.map +1 -1
  292. package/build/component/driver/teamsApp/validate.js +17 -12
  293. package/build/component/driver/teamsApp/validate.js.map +1 -1
  294. package/build/component/driver/teamsApp/validateAppPackage.d.ts +1 -1
  295. package/build/component/driver/teamsApp/validateAppPackage.d.ts.map +1 -1
  296. package/build/component/driver/teamsApp/validateAppPackage.js +22 -18
  297. package/build/component/driver/teamsApp/validateAppPackage.js.map +1 -1
  298. package/build/component/error/componentError.d.ts +2 -1
  299. package/build/component/error/componentError.d.ts.map +1 -1
  300. package/build/component/error/componentError.js +8 -4
  301. package/build/component/error/componentError.js.map +1 -1
  302. package/build/component/feature/collaboration.d.ts.map +1 -1
  303. package/build/component/feature/collaboration.js +55 -26
  304. package/build/component/feature/collaboration.js.map +1 -1
  305. package/build/component/feature/createAuthFiles.js.map +1 -1
  306. package/build/component/generator/copilotPlugin/generator.d.ts +7 -2
  307. package/build/component/generator/copilotPlugin/generator.d.ts.map +1 -1
  308. package/build/component/generator/copilotPlugin/generator.js +133 -25
  309. package/build/component/generator/copilotPlugin/generator.js.map +1 -1
  310. package/build/component/generator/copilotPlugin/helper.d.ts +12 -12
  311. package/build/component/generator/copilotPlugin/helper.d.ts.map +1 -1
  312. package/build/component/generator/copilotPlugin/helper.js +214 -28
  313. package/build/component/generator/copilotPlugin/helper.js.map +1 -1
  314. package/build/component/generator/error.d.ts +7 -1
  315. package/build/component/generator/error.d.ts.map +1 -1
  316. package/build/component/generator/error.js +15 -3
  317. package/build/component/generator/error.js.map +1 -1
  318. package/build/component/generator/generator.d.ts.map +1 -1
  319. package/build/component/generator/generator.js +31 -22
  320. package/build/component/generator/generator.js.map +1 -1
  321. package/build/component/generator/generatorAction.d.ts +2 -1
  322. package/build/component/generator/generatorAction.d.ts.map +1 -1
  323. package/build/component/generator/generatorAction.js +12 -5
  324. package/build/component/generator/generatorAction.js.map +1 -1
  325. package/build/component/generator/officeAddin/generator.d.ts.map +1 -1
  326. package/build/component/generator/officeAddin/generator.js +9 -1
  327. package/build/component/generator/officeAddin/generator.js.map +1 -1
  328. package/build/component/generator/officeAddin/helperMethods.d.ts.map +1 -1
  329. package/build/component/generator/officeAddin/helperMethods.js +9 -5
  330. package/build/component/generator/officeAddin/helperMethods.js.map +1 -1
  331. package/build/component/generator/spfx/depsChecker/generatorChecker.d.ts +1 -1
  332. package/build/component/generator/spfx/depsChecker/generatorChecker.d.ts.map +1 -1
  333. package/build/component/generator/spfx/depsChecker/generatorChecker.js +12 -12
  334. package/build/component/generator/spfx/depsChecker/generatorChecker.js.map +1 -1
  335. package/build/component/generator/spfx/depsChecker/yoChecker.d.ts +1 -1
  336. package/build/component/generator/spfx/depsChecker/yoChecker.d.ts.map +1 -1
  337. package/build/component/generator/spfx/depsChecker/yoChecker.js +10 -10
  338. package/build/component/generator/spfx/depsChecker/yoChecker.js.map +1 -1
  339. package/build/component/generator/spfx/spfxGenerator.d.ts.map +1 -1
  340. package/build/component/generator/spfx/spfxGenerator.js +16 -14
  341. package/build/component/generator/spfx/spfxGenerator.js.map +1 -1
  342. package/build/component/generator/spfx/utils/constants.d.ts +1 -0
  343. package/build/component/generator/spfx/utils/constants.d.ts.map +1 -1
  344. package/build/component/generator/spfx/utils/constants.js +1 -0
  345. package/build/component/generator/spfx/utils/constants.js.map +1 -1
  346. package/build/component/generator/spfx/utils/utils.js +3 -3
  347. package/build/component/generator/spfx/utils/utils.js.map +1 -1
  348. package/build/component/generator/utils.d.ts +12 -4
  349. package/build/component/generator/utils.d.ts.map +1 -1
  350. package/build/component/generator/utils.js +17 -16
  351. package/build/component/generator/utils.js.map +1 -1
  352. package/build/component/messages.d.ts +2 -3
  353. package/build/component/messages.d.ts.map +1 -1
  354. package/build/component/messages.js +3 -4
  355. package/build/component/messages.js.map +1 -1
  356. package/build/component/middleware/actionExecutionMW.d.ts +2 -2
  357. package/build/component/middleware/actionExecutionMW.d.ts.map +1 -1
  358. package/build/component/middleware/envMW.js +1 -1
  359. package/build/component/middleware/envMW.js.map +1 -1
  360. package/build/component/middleware/questionMW.d.ts +2 -2
  361. package/build/component/middleware/questionMW.d.ts.map +1 -1
  362. package/build/component/middleware/questionMW.js +7 -11
  363. package/build/component/middleware/questionMW.js.map +1 -1
  364. package/build/component/migrate.js.map +1 -1
  365. package/build/component/provisionUtils.d.ts +3 -3
  366. package/build/component/provisionUtils.d.ts.map +1 -1
  367. package/build/component/provisionUtils.js +3 -3
  368. package/build/component/provisionUtils.js.map +1 -1
  369. package/build/component/resource/botService/appStudio/appStudioClient.d.ts.map +1 -1
  370. package/build/component/resource/botService/appStudio/appStudioClient.js +24 -2
  371. package/build/component/resource/botService/appStudio/appStudioClient.js.map +1 -1
  372. package/build/component/resource/botService/botRegistration/botFrameworkRegistration.d.ts +2 -2
  373. package/build/component/resource/botService/botRegistration/botFrameworkRegistration.d.ts.map +1 -1
  374. package/build/component/resource/botService/botRegistration/botFrameworkRegistration.js +6 -1
  375. package/build/component/resource/botService/botRegistration/botFrameworkRegistration.js.map +1 -1
  376. package/build/component/telemetry.d.ts.map +1 -1
  377. package/build/component/telemetry.js +3 -6
  378. package/build/component/telemetry.js.map +1 -1
  379. package/build/component/utils/ResourceGroupHelper.d.ts +2 -2
  380. package/build/component/utils/ResourceGroupHelper.d.ts.map +1 -1
  381. package/build/component/utils/ResourceGroupHelper.js +1 -4
  382. package/build/component/utils/ResourceGroupHelper.js.map +1 -1
  383. package/build/component/utils/azureResourceOperation.js +2 -2
  384. package/build/component/utils/azureResourceOperation.js.map +1 -1
  385. package/build/component/utils/charsetUtils.js +3 -3
  386. package/build/component/utils/charsetUtils.js.map +1 -1
  387. package/build/component/utils/common.d.ts +1 -1
  388. package/build/component/utils/common.d.ts.map +1 -1
  389. package/build/component/utils/common.js +4 -5
  390. package/build/component/utils/common.js.map +1 -1
  391. package/build/component/utils/depsChecker/cpUtils.d.ts.map +1 -1
  392. package/build/component/utils/depsChecker/cpUtils.js +8 -4
  393. package/build/component/utils/depsChecker/cpUtils.js.map +1 -1
  394. package/build/component/utils/envUtil.js +2 -2
  395. package/build/component/utils/envUtil.js.map +1 -1
  396. package/build/component/utils/metadataUtil.d.ts +3 -0
  397. package/build/component/utils/metadataUtil.d.ts.map +1 -1
  398. package/build/component/utils/metadataUtil.js +16 -4
  399. package/build/component/utils/metadataUtil.js.map +1 -1
  400. package/build/component/utils/teamsFxTelemetryReporter.d.ts.map +1 -1
  401. package/build/component/utils/teamsFxTelemetryReporter.js +3 -6
  402. package/build/component/utils/teamsFxTelemetryReporter.js.map +1 -1
  403. package/build/component/utils.js.map +1 -1
  404. package/build/core/FxCore.d.ts +44 -33
  405. package/build/core/FxCore.d.ts.map +1 -1
  406. package/build/core/FxCore.js +821 -64
  407. package/build/core/FxCore.js.map +1 -1
  408. package/build/core/collaborator.d.ts +1 -1
  409. package/build/core/collaborator.d.ts.map +1 -1
  410. package/build/core/collaborator.js +16 -10
  411. package/build/core/collaborator.js.map +1 -1
  412. package/build/core/error.d.ts +6 -0
  413. package/build/core/error.d.ts.map +1 -1
  414. package/build/core/error.js +23 -1
  415. package/build/core/error.js.map +1 -1
  416. package/build/core/globalVars.d.ts +16 -0
  417. package/build/core/globalVars.d.ts.map +1 -1
  418. package/build/core/globalVars.js +34 -1
  419. package/build/core/globalVars.js.map +1 -1
  420. package/build/core/middleware/concurrentLocker.d.ts.map +1 -1
  421. package/build/core/middleware/concurrentLocker.js +7 -3
  422. package/build/core/middleware/concurrentLocker.js.map +1 -1
  423. package/build/core/middleware/errorHandler.d.ts +2 -0
  424. package/build/core/middleware/errorHandler.d.ts.map +1 -1
  425. package/build/core/middleware/errorHandler.js +16 -25
  426. package/build/core/middleware/errorHandler.js.map +1 -1
  427. package/build/core/middleware/projectMigratorV3.d.ts +7 -1
  428. package/build/core/middleware/projectMigratorV3.d.ts.map +1 -1
  429. package/build/core/middleware/projectMigratorV3.js +35 -34
  430. package/build/core/middleware/projectMigratorV3.js.map +1 -1
  431. package/build/core/middleware/projectVersionChecker.js +8 -8
  432. package/build/core/middleware/projectVersionChecker.js.map +1 -1
  433. package/build/core/middleware/utils/appYmlGenerator.d.ts.map +1 -1
  434. package/build/core/middleware/utils/appYmlGenerator.js +2 -1
  435. package/build/core/middleware/utils/appYmlGenerator.js.map +1 -1
  436. package/build/core/middleware/utils/debug/appLocalYmlGenerator.d.ts.map +1 -1
  437. package/build/core/middleware/utils/debug/appLocalYmlGenerator.js +3 -2
  438. package/build/core/middleware/utils/debug/appLocalYmlGenerator.js.map +1 -1
  439. package/build/core/middleware/utils/debug/debugV3MigrationUtils.js.map +1 -1
  440. package/build/core/middleware/utils/debug/taskMigrator.d.ts.map +1 -1
  441. package/build/core/middleware/utils/debug/taskMigrator.js +33 -15
  442. package/build/core/middleware/utils/debug/taskMigrator.js.map +1 -1
  443. package/build/core/middleware/utils/migrationContext.d.ts +1 -0
  444. package/build/core/middleware/utils/migrationContext.d.ts.map +1 -1
  445. package/build/core/middleware/utils/migrationContext.js.map +1 -1
  446. package/build/core/middleware/utils/v3MigrationUtils.d.ts.map +1 -1
  447. package/build/core/middleware/utils/v3MigrationUtils.js +6 -2
  448. package/build/core/middleware/utils/v3MigrationUtils.js.map +1 -1
  449. package/build/error/common.d.ts +10 -4
  450. package/build/error/common.d.ts.map +1 -1
  451. package/build/error/common.js +132 -24
  452. package/build/error/common.js.map +1 -1
  453. package/build/index.d.ts +4 -1
  454. package/build/index.d.ts.map +1 -1
  455. package/build/index.js +5 -1
  456. package/build/index.js.map +1 -1
  457. package/build/question/constants.d.ts +6 -0
  458. package/build/question/constants.d.ts.map +1 -0
  459. package/build/question/constants.js +18 -0
  460. package/build/question/constants.js.map +1 -0
  461. package/build/question/create.d.ts +19 -21
  462. package/build/question/create.d.ts.map +1 -1
  463. package/build/question/create.js +454 -344
  464. package/build/question/create.js.map +1 -1
  465. package/build/question/generator.d.ts +4 -0
  466. package/build/question/generator.d.ts.map +1 -0
  467. package/build/question/generator.js +365 -0
  468. package/build/question/generator.js.map +1 -0
  469. package/build/question/index.d.ts +19 -30
  470. package/build/question/index.d.ts.map +1 -1
  471. package/build/question/index.js +14 -47
  472. package/build/question/index.js.map +1 -1
  473. package/build/question/inputs/CreateEnvInputs.d.ts +14 -0
  474. package/build/question/inputs/CreateEnvInputs.d.ts.map +1 -0
  475. package/build/question/inputs/CreateEnvInputs.js +5 -0
  476. package/build/question/inputs/CreateEnvInputs.js.map +1 -0
  477. package/build/question/inputs/CreateProjectInputs.d.ts +38 -0
  478. package/build/question/inputs/CreateProjectInputs.d.ts.map +1 -0
  479. package/build/question/inputs/CreateProjectInputs.js +5 -0
  480. package/build/question/inputs/CreateProjectInputs.js.map +1 -0
  481. package/build/question/inputs/CreateSampleProjectInputs.d.ts +12 -0
  482. package/build/question/inputs/CreateSampleProjectInputs.d.ts.map +1 -0
  483. package/build/question/inputs/CreateSampleProjectInputs.js +5 -0
  484. package/build/question/inputs/CreateSampleProjectInputs.js.map +1 -0
  485. package/build/question/inputs/DeployAadManifestInputs.d.ts +14 -0
  486. package/build/question/inputs/DeployAadManifestInputs.d.ts.map +1 -0
  487. package/build/question/inputs/DeployAadManifestInputs.js +5 -0
  488. package/build/question/inputs/DeployAadManifestInputs.js.map +1 -0
  489. package/build/question/inputs/PermissionGrantInputs.d.ts +18 -0
  490. package/build/question/inputs/PermissionGrantInputs.d.ts.map +1 -0
  491. package/build/question/inputs/PermissionGrantInputs.js +5 -0
  492. package/build/question/inputs/PermissionGrantInputs.js.map +1 -0
  493. package/build/question/inputs/PermissionListInputs.d.ts +16 -0
  494. package/build/question/inputs/PermissionListInputs.d.ts.map +1 -0
  495. package/build/question/inputs/PermissionListInputs.js +5 -0
  496. package/build/question/inputs/PermissionListInputs.js.map +1 -0
  497. package/build/question/inputs/PreviewTeamsAppInputs.d.ts +14 -0
  498. package/build/question/inputs/PreviewTeamsAppInputs.d.ts.map +1 -0
  499. package/build/question/inputs/PreviewTeamsAppInputs.js +5 -0
  500. package/build/question/inputs/PreviewTeamsAppInputs.js.map +1 -0
  501. package/build/question/inputs/SPFxAddWebpartInputs.d.ts +18 -0
  502. package/build/question/inputs/SPFxAddWebpartInputs.d.ts.map +1 -0
  503. package/build/question/inputs/SPFxAddWebpartInputs.js +5 -0
  504. package/build/question/inputs/SPFxAddWebpartInputs.js.map +1 -0
  505. package/build/question/inputs/SelectTeamsManifestInputs.d.ts +12 -0
  506. package/build/question/inputs/SelectTeamsManifestInputs.d.ts.map +1 -0
  507. package/build/question/inputs/SelectTeamsManifestInputs.js +5 -0
  508. package/build/question/inputs/SelectTeamsManifestInputs.js.map +1 -0
  509. package/build/question/inputs/ValidateTeamsAppInputs.d.ts +14 -0
  510. package/build/question/inputs/ValidateTeamsAppInputs.d.ts.map +1 -0
  511. package/build/question/inputs/ValidateTeamsAppInputs.js +5 -0
  512. package/build/question/inputs/ValidateTeamsAppInputs.js.map +1 -0
  513. package/build/question/inputs/index.d.ts +11 -0
  514. package/build/question/inputs/index.d.ts.map +1 -0
  515. package/build/question/inputs/index.js +16 -0
  516. package/build/question/inputs/index.js.map +1 -0
  517. package/build/question/options/CreateEnvOptions.d.ts +10 -0
  518. package/build/question/options/CreateEnvOptions.d.ts.map +1 -0
  519. package/build/question/options/CreateEnvOptions.js +24 -0
  520. package/build/question/options/CreateEnvOptions.js.map +1 -0
  521. package/build/question/options/CreateProjectOptions.d.ts +10 -0
  522. package/build/question/options/CreateProjectOptions.d.ts.map +1 -0
  523. package/build/question/options/CreateProjectOptions.js +132 -0
  524. package/build/question/options/CreateProjectOptions.js.map +1 -0
  525. package/build/question/options/CreateSampleProjectOptions.d.ts +10 -0
  526. package/build/question/options/CreateSampleProjectOptions.d.ts.map +1 -0
  527. package/build/question/options/CreateSampleProjectOptions.js +52 -0
  528. package/build/question/options/CreateSampleProjectOptions.js.map +1 -0
  529. package/build/question/options/DeployAadManifestOptions.d.ts +10 -0
  530. package/build/question/options/DeployAadManifestOptions.d.ts.map +1 -0
  531. package/build/question/options/DeployAadManifestOptions.js +21 -0
  532. package/build/question/options/DeployAadManifestOptions.js.map +1 -0
  533. package/build/question/options/PermissionGrantOptions.d.ts +10 -0
  534. package/build/question/options/PermissionGrantOptions.d.ts.map +1 -0
  535. package/build/question/options/PermissionGrantOptions.js +33 -0
  536. package/build/question/options/PermissionGrantOptions.js.map +1 -0
  537. package/build/question/options/PermissionListOptions.d.ts +10 -0
  538. package/build/question/options/PermissionListOptions.d.ts.map +1 -0
  539. package/build/question/options/PermissionListOptions.js +28 -0
  540. package/build/question/options/PermissionListOptions.js.map +1 -0
  541. package/build/question/options/PreviewTeamsAppOptions.d.ts +10 -0
  542. package/build/question/options/PreviewTeamsAppOptions.d.ts.map +1 -0
  543. package/build/question/options/PreviewTeamsAppOptions.js +26 -0
  544. package/build/question/options/PreviewTeamsAppOptions.js.map +1 -0
  545. package/build/question/options/SPFxAddWebpartOptions.d.ts +10 -0
  546. package/build/question/options/SPFxAddWebpartOptions.d.ts.map +1 -0
  547. package/build/question/options/SPFxAddWebpartOptions.js +39 -0
  548. package/build/question/options/SPFxAddWebpartOptions.js.map +1 -0
  549. package/build/question/options/SelectTeamsManifestOptions.d.ts +10 -0
  550. package/build/question/options/SelectTeamsManifestOptions.d.ts.map +1 -0
  551. package/build/question/options/SelectTeamsManifestOptions.js +17 -0
  552. package/build/question/options/SelectTeamsManifestOptions.js.map +1 -0
  553. package/build/question/options/ValidateTeamsAppOptions.d.ts +10 -0
  554. package/build/question/options/ValidateTeamsAppOptions.d.ts.map +1 -0
  555. package/build/question/options/ValidateTeamsAppOptions.js +23 -0
  556. package/build/question/options/ValidateTeamsAppOptions.js.map +1 -0
  557. package/build/question/options/index.d.ts +11 -0
  558. package/build/question/options/index.d.ts.map +1 -0
  559. package/build/question/options/index.js +16 -0
  560. package/build/question/options/index.js.map +1 -0
  561. package/build/question/other.d.ts +12 -1
  562. package/build/question/other.d.ts.map +1 -1
  563. package/build/question/other.js +129 -31
  564. package/build/question/other.js.map +1 -1
  565. package/build/question/questionNames.d.ts +6 -2
  566. package/build/question/questionNames.d.ts.map +1 -1
  567. package/build/question/questionNames.js +8 -3
  568. package/build/question/questionNames.js.map +1 -1
  569. package/build/ui/validationUtils.d.ts +31 -0
  570. package/build/ui/validationUtils.d.ts.map +1 -0
  571. package/build/ui/validationUtils.js +297 -0
  572. package/build/ui/validationUtils.js.map +1 -0
  573. package/build/ui/visitor.d.ts +13 -1
  574. package/build/ui/visitor.d.ts.map +1 -1
  575. package/build/ui/visitor.js +264 -215
  576. package/build/ui/visitor.js.map +1 -1
  577. package/package.json +21 -14
  578. package/resource/package.nls.json +59 -18
  579. package/resource/yaml-schema/v1.2/yaml.schema.json +1474 -0
  580. package/templates/fallback/common.zip +0 -0
  581. package/templates/fallback/csharp.zip +0 -0
  582. package/templates/fallback/js.zip +0 -0
  583. package/templates/fallback/ts.zip +0 -0
  584. package/templates/plugins/resource/aad/auth/V3/Tab/GetUserProfile.razor +1 -2
  585. package/templates/plugins/resource/aad/auth/bot/README.md +281 -263
  586. package/templates/plugins/resource/aad/auth/bot/js/sso/handleMessageExtensionQueryWithToken.js +13 -3
  587. package/templates/plugins/resource/aad/auth/bot/js/sso/profileSsoCommandHandler.js +14 -5
  588. package/templates/plugins/resource/aad/auth/bot/ts/sso/handleMessageExtensionQueryWithToken.ts +11 -3
  589. package/templates/plugins/resource/aad/auth/bot/ts/sso/profileSsoCommandHandler.ts +12 -3
  590. package/templates/plugins/resource/aad/auth/tab/csharp/GetUserProfile.razor +1 -2
  591. package/build/common/samples-config-v3.json +0 -233
  592. package/build/component/configManager/diagnostic.d.ts +0 -9
  593. package/build/component/configManager/diagnostic.d.ts.map +0 -1
  594. package/build/component/configManager/diagnostic.js +0 -49
  595. package/build/component/configManager/diagnostic.js.map +0 -1
  596. package/build/component/driver/middleware/updateProgress.d.ts +0 -6
  597. package/build/component/driver/middleware/updateProgress.d.ts.map +0 -1
  598. package/build/component/driver/middleware/updateProgress.js +0 -15
  599. package/build/component/driver/middleware/updateProgress.js.map +0 -1
  600. package/build/core/FxCoreImplementV3.d.ts +0 -44
  601. package/build/core/FxCoreImplementV3.d.ts.map +0 -1
  602. package/build/core/FxCoreImplementV3.js +0 -663
  603. package/build/core/FxCoreImplementV3.js.map +0 -1
@@ -2,9 +2,12 @@
2
2
  // Copyright (c) Microsoft Corporation.
3
3
  // Licensed under the MIT license.
4
4
  Object.defineProperty(exports, "__esModule", { value: true });
5
- exports.traverse = exports.getSingleOption = exports.isAutoSkipSelect = void 0;
5
+ exports.traverse = exports.collect = exports.questionVisitor = exports.loadOptions = exports.getSingleOption = exports.isAutoSkipSelect = void 0;
6
6
  const teamsfx_api_1 = require("@microsoft/teamsfx-api");
7
+ const lodash_1 = require("lodash");
8
+ const featureFlags_1 = require("../common/featureFlags");
7
9
  const error_1 = require("../error");
10
+ const validationUtils_1 = require("./validationUtils");
8
11
  function isAutoSkipSelect(q) {
9
12
  if (q.type === "singleSelect" || q.type === "multiSelect") {
10
13
  const select = q;
@@ -40,6 +43,14 @@ async function getCallFuncValue(inputs, raw) {
40
43
  }
41
44
  return raw;
42
45
  }
46
+ async function loadOptions(question, inputs) {
47
+ let options = question.staticOptions;
48
+ if (question.dynamicOptions) {
49
+ options = await question.dynamicOptions(inputs);
50
+ }
51
+ return options;
52
+ }
53
+ exports.loadOptions = loadOptions;
43
54
  /**
44
55
  * ask question when visiting the question tree
45
56
  * @param question
@@ -47,285 +58,323 @@ async function getCallFuncValue(inputs, raw) {
47
58
  * @param inputs
48
59
  */
49
60
  const questionVisitor = async function (question, ui, inputs, step, totalSteps) {
61
+ // check and validate preset answer
50
62
  if (inputs[question.name] !== undefined) {
63
+ // validate existing answer in inputs object
64
+ const res = await validationUtils_1.validationUtils.validateInputs(question, inputs[question.name], inputs);
65
+ if (res)
66
+ return teamsfx_api_1.err(new error_1.InputValidationError(question.name, res, "questionVisitor"));
51
67
  return teamsfx_api_1.ok({ type: "skip", result: inputs[question.name] });
52
68
  }
53
- const title = (await getCallFuncValue(inputs, question.title));
54
- if (question.type === "func") {
55
- try {
56
- let res;
57
- if (ui.executeFunction) {
58
- res = await ui.executeFunction({
59
- name: question.name,
60
- title: title !== null && title !== void 0 ? title : "Executing operation...",
61
- func: question.func,
62
- inputs: inputs,
63
- });
64
- }
65
- else {
66
- res = await question.func(inputs);
69
+ // non-interactive mode
70
+ if (inputs.nonInteractive && featureFlags_1.isCliNewUxEnabled()) {
71
+ // first priority: use single option as value
72
+ if (question.type === "singleSelect" || question.type === "multiSelect") {
73
+ if (question.skipSingleOption) {
74
+ const options = await loadOptions(question, inputs);
75
+ if (options.length === 0) {
76
+ return teamsfx_api_1.err(new error_1.EmptyOptionError(question.name, "questionVisitor"));
77
+ }
78
+ if (options.length === 1) {
79
+ const value = getSingleOption(question, options);
80
+ if (value) {
81
+ return teamsfx_api_1.ok({ type: "skip", result: value });
82
+ }
83
+ }
67
84
  }
68
- if (typeof res === "object" && "isOk" in res) {
69
- const fxresult = res;
70
- if (fxresult.isOk()) {
71
- return teamsfx_api_1.ok({ type: "success", result: fxresult.value });
85
+ }
86
+ // second priority: use default as value
87
+ if (question.default) {
88
+ const value = (await getCallFuncValue(inputs, question.default));
89
+ if (value) {
90
+ const validateRes = await validationUtils_1.validationUtils.validateInputs(question, value, inputs);
91
+ if (validateRes) {
92
+ return teamsfx_api_1.err(new error_1.InputValidationError(question.name, validateRes, "questionVisitor"));
72
93
  }
73
94
  else {
74
- return teamsfx_api_1.err(fxresult.error);
95
+ return teamsfx_api_1.ok({ type: "skip", result: value });
75
96
  }
76
97
  }
77
- return teamsfx_api_1.ok({ type: "success", result: res });
78
- }
79
- catch (e) {
80
- return teamsfx_api_1.err(error_1.assembleError(e));
81
98
  }
99
+ if (question.required)
100
+ return teamsfx_api_1.err(new error_1.MissingRequiredInputError(question.name, "questionVisitor"));
101
+ else
102
+ return teamsfx_api_1.ok({ type: "skip", result: undefined });
82
103
  }
104
+ // interactive mode
105
+ const title = (await getCallFuncValue(inputs, question.title));
106
+ let defaultValue = undefined;
107
+ if (question.forgetLastValue !== true && question.value)
108
+ defaultValue = question.value;
83
109
  else {
84
- const defaultValue = question.forgetLastValue !== true && question.value
85
- ? question.value
86
- : await getCallFuncValue(inputs, question.default);
87
- const placeholder = (await getCallFuncValue(inputs, question.placeholder));
88
- const prompt = (await getCallFuncValue(inputs, question.prompt));
89
- if (question.type === "text") {
90
- const validationFunc = question.validation
91
- ? teamsfx_api_1.getValidationFunction(question.validation, inputs)
92
- : undefined;
93
- const inputQuestion = question;
94
- return await ui.inputText({
95
- name: question.name,
96
- title: title,
97
- password: inputQuestion.password,
98
- default: defaultValue,
99
- placeholder: placeholder,
100
- prompt: prompt,
101
- validation: validationFunc,
102
- step: step,
103
- totalSteps: totalSteps,
104
- });
105
- }
106
- else if (question.type === "singleSelect" || question.type === "multiSelect") {
107
- const selectQuestion = question;
108
- let options = undefined;
109
- if (selectQuestion.dynamicOptions) {
110
- options = async () => {
111
- return selectQuestion.dynamicOptions(inputs);
110
+ if (question.default) {
111
+ if (typeof question.default === "function") {
112
+ defaultValue = async () => {
113
+ return await question.default(inputs);
112
114
  };
113
115
  }
114
116
  else {
115
- if (!selectQuestion.staticOptions || selectQuestion.staticOptions.length === 0) {
116
- return teamsfx_api_1.err(new error_1.EmptyOptionError());
117
- }
118
- if (selectQuestion.skipSingleOption && selectQuestion.staticOptions.length === 1) {
119
- const returnResult = getSingleOption(selectQuestion, selectQuestion.staticOptions);
120
- return teamsfx_api_1.ok({ type: "skip", result: returnResult });
121
- }
122
- options = selectQuestion.staticOptions;
117
+ defaultValue = question.default;
123
118
  }
124
- if (question.type === "singleSelect") {
125
- const validationFunc = question.validation
126
- ? teamsfx_api_1.getValidationFunction(question.validation, inputs)
127
- : undefined;
128
- return await ui.selectOption({
129
- name: question.name,
130
- title: title,
131
- options: options,
132
- returnObject: selectQuestion.returnObject,
133
- default: defaultValue,
134
- placeholder: placeholder,
135
- prompt: prompt,
136
- step: step,
137
- totalSteps: totalSteps,
138
- buttons: question.buttons,
139
- validation: validationFunc,
140
- skipSingleOption: selectQuestion.skipSingleOption,
141
- });
119
+ }
120
+ }
121
+ const placeholder = (await getCallFuncValue(inputs, question.placeholder));
122
+ const prompt = (await getCallFuncValue(inputs, question.prompt));
123
+ if (question.type === "text") {
124
+ const validationFunc = question.validation
125
+ ? validationUtils_1.getValidationFunction(question.validation, inputs)
126
+ : undefined;
127
+ const additionalValidationOnAcceptFunc = question.additionalValidationOnAccept
128
+ ? validationUtils_1.getValidationFunction(question.additionalValidationOnAccept, inputs)
129
+ : undefined;
130
+ return await ui.inputText({
131
+ name: question.name,
132
+ title: title,
133
+ password: question.password,
134
+ default: defaultValue,
135
+ placeholder: placeholder,
136
+ prompt: prompt,
137
+ validation: validationFunc,
138
+ step: step,
139
+ totalSteps: totalSteps,
140
+ additionalValidationOnAccept: additionalValidationOnAcceptFunc,
141
+ });
142
+ }
143
+ else if (question.type === "singleSelect" || question.type === "multiSelect") {
144
+ let options = undefined;
145
+ if (question.dynamicOptions) {
146
+ options = async () => {
147
+ return question.dynamicOptions(inputs);
148
+ };
149
+ }
150
+ else {
151
+ if (!question.staticOptions || question.staticOptions.length === 0) {
152
+ return teamsfx_api_1.err(new error_1.EmptyOptionError(question.name, "questionVisitor"));
142
153
  }
143
- else {
144
- const mq = selectQuestion;
145
- const validationFunc = question.validation
146
- ? teamsfx_api_1.getValidationFunction(question.validation, inputs)
147
- : undefined;
148
- return await ui.selectOptions({
149
- name: question.name,
150
- title: title,
151
- options: options,
152
- returnObject: selectQuestion.returnObject,
153
- default: defaultValue,
154
- placeholder: placeholder,
155
- prompt: prompt,
156
- onDidChangeSelection: mq.onDidChangeSelection,
157
- step: step,
158
- totalSteps: totalSteps,
159
- validation: validationFunc,
160
- skipSingleOption: selectQuestion.skipSingleOption,
161
- });
154
+ if (question.skipSingleOption && question.staticOptions.length === 1) {
155
+ const returnResult = getSingleOption(question, question.staticOptions);
156
+ return teamsfx_api_1.ok({ type: "skip", result: returnResult });
162
157
  }
158
+ options = question.staticOptions;
163
159
  }
164
- else if (question.type === "multiFile") {
165
- const validationFunc = question.validation
166
- ? teamsfx_api_1.getValidationFunction(question.validation, inputs)
167
- : undefined;
168
- return await ui.selectFiles({
169
- name: question.name,
170
- title: title,
171
- placeholder: placeholder,
172
- prompt: prompt,
173
- step: step,
174
- totalSteps: totalSteps,
175
- validation: validationFunc,
176
- });
177
- }
178
- else if (question.type === "singleFile") {
160
+ if (question.type === "singleSelect") {
179
161
  const validationFunc = question.validation
180
- ? teamsfx_api_1.getValidationFunction(question.validation, inputs)
162
+ ? validationUtils_1.getValidationFunction(question.validation, inputs)
181
163
  : undefined;
182
- return await ui.selectFile({
164
+ return await ui.selectOption({
183
165
  name: question.name,
184
166
  title: title,
185
- placeholder: placeholder,
186
- prompt: prompt,
167
+ options: options,
168
+ returnObject: question.returnObject,
187
169
  default: defaultValue,
188
- step: step,
189
- totalSteps: totalSteps,
190
- validation: validationFunc,
191
- filters: question.filters,
192
- });
193
- }
194
- else if (question.type === "folder") {
195
- const validationFunc = question.validation
196
- ? teamsfx_api_1.getValidationFunction(question.validation, inputs)
197
- : undefined;
198
- return await ui.selectFolder({
199
- name: question.name,
200
- title: title,
201
170
  placeholder: placeholder,
202
171
  prompt: prompt,
203
- default: defaultValue,
204
172
  step: step,
205
173
  totalSteps: totalSteps,
174
+ buttons: question.buttons,
206
175
  validation: validationFunc,
176
+ skipSingleOption: question.skipSingleOption,
207
177
  });
208
178
  }
209
- else if (question.type === "singleFileOrText" && !!ui.selectFileOrInput) {
179
+ else {
210
180
  const validationFunc = question.validation
211
- ? teamsfx_api_1.getValidationFunction(question.validation, inputs)
181
+ ? validationUtils_1.getValidationFunction(question.validation, inputs)
212
182
  : undefined;
213
- const res = await ui.selectFileOrInput({
183
+ return await ui.selectOptions({
214
184
  name: question.name,
215
185
  title: title,
186
+ options: options,
187
+ returnObject: question.returnObject,
188
+ default: defaultValue,
216
189
  placeholder: placeholder,
217
190
  prompt: prompt,
218
- inputOptionItem: question.inputOptionItem,
219
- inputBoxConfig: question.inputBoxConfig,
220
- filters: question.filters,
191
+ onDidChangeSelection: question.onDidChangeSelection,
221
192
  step: step,
222
193
  totalSteps: totalSteps,
223
194
  validation: validationFunc,
195
+ skipSingleOption: question.skipSingleOption,
224
196
  });
225
- return res;
226
197
  }
227
198
  }
199
+ else if (question.type === "multiFile") {
200
+ const validationFunc = question.validation
201
+ ? validationUtils_1.getValidationFunction(question.validation, inputs)
202
+ : undefined;
203
+ return await ui.selectFiles({
204
+ name: question.name,
205
+ title: title,
206
+ placeholder: placeholder,
207
+ prompt: prompt,
208
+ default: defaultValue,
209
+ step: step,
210
+ totalSteps: totalSteps,
211
+ validation: validationFunc,
212
+ });
213
+ }
214
+ else if (question.type === "singleFile") {
215
+ const validationFunc = question.validation
216
+ ? validationUtils_1.getValidationFunction(question.validation, inputs)
217
+ : undefined;
218
+ return await ui.selectFile({
219
+ name: question.name,
220
+ title: title,
221
+ placeholder: placeholder,
222
+ prompt: prompt,
223
+ default: defaultValue,
224
+ step: step,
225
+ totalSteps: totalSteps,
226
+ validation: validationFunc,
227
+ filters: question.filters,
228
+ });
229
+ }
230
+ else if (question.type === "folder") {
231
+ const validationFunc = question.validation
232
+ ? validationUtils_1.getValidationFunction(question.validation, inputs)
233
+ : undefined;
234
+ return await ui.selectFolder({
235
+ name: question.name,
236
+ title: title,
237
+ placeholder: placeholder,
238
+ prompt: prompt,
239
+ default: defaultValue,
240
+ step: step,
241
+ totalSteps: totalSteps,
242
+ validation: validationFunc,
243
+ });
244
+ }
245
+ else if (question.type === "singleFileOrText" && !!ui.selectFileOrInput) {
246
+ const validationFunc = question.validation
247
+ ? validationUtils_1.getValidationFunction(question.validation, inputs)
248
+ : undefined;
249
+ const inputValidationFunc = question.inputBoxConfig.validation
250
+ ? validationUtils_1.getValidationFunction(question.inputBoxConfig.validation, inputs)
251
+ : undefined;
252
+ const innerTitle = (await getCallFuncValue(inputs, question.inputBoxConfig.title));
253
+ const innerPlaceholder = (await getCallFuncValue(inputs, question.inputBoxConfig.placeholder));
254
+ const innerPrompt = (await getCallFuncValue(inputs, question.inputBoxConfig.prompt));
255
+ const res = await ui.selectFileOrInput({
256
+ name: question.name,
257
+ title: title,
258
+ placeholder: placeholder,
259
+ prompt: prompt,
260
+ inputOptionItem: question.inputOptionItem,
261
+ inputBoxConfig: {
262
+ name: question.inputBoxConfig.name,
263
+ title: innerTitle,
264
+ placeholder: innerPlaceholder,
265
+ prompt: innerPrompt,
266
+ validation: inputValidationFunc,
267
+ step: question.inputBoxConfig.step,
268
+ },
269
+ filters: question.filters,
270
+ step: step,
271
+ totalSteps: totalSteps,
272
+ validation: validationFunc,
273
+ });
274
+ return res;
275
+ }
228
276
  return teamsfx_api_1.err(new teamsfx_api_1.UserError("API", "UnsupportedNodeType", `Unsupported question node type:${JSON.stringify(question)}`, `Unsupported question node type:${JSON.stringify(question)}`));
229
277
  };
230
- async function traverse(root, inputs, ui, telemetryReporter, visitor = questionVisitor) {
231
- const stack = [];
232
- const history = [];
233
- stack.push(root);
234
- let step = 1; // manual input step
235
- let totalStep = 1;
278
+ exports.questionVisitor = questionVisitor;
279
+ /**
280
+ * serialize the tree node into array in DFS order
281
+ */
282
+ function collect(node, list, parentMap) {
283
+ list.push(node);
284
+ if (node.children) {
285
+ for (const child of node.children) {
286
+ if (child) {
287
+ parentMap.set(child, node);
288
+ collect(child, list, parentMap);
289
+ }
290
+ }
291
+ }
292
+ }
293
+ exports.collect = collect;
294
+ async function traverse(root, inputs, ui, telemetryReporter, visitor = exports.questionVisitor) {
295
+ // The reason to clone is that we don't want to change the original inputs if user cancel the process
296
+ const clonedInputs = lodash_1.cloneDeep(inputs);
297
+ // 1. collect all nodes into array
236
298
  const parentMap = new Map();
237
- // const valueMap = new Map<QTreeNode, unknown>();
238
- const autoSkipSet = new Set();
239
- while (stack.length > 0) {
240
- const curr = stack.pop();
241
- if (!curr)
242
- continue;
243
- //visit
244
- if (curr.data.type !== "group") {
245
- const question = curr.data;
246
- totalStep = step + stack.length;
247
- let qvRes;
299
+ const nodeList = [];
300
+ collect(root, nodeList, parentMap);
301
+ const visitedNodeSet = new Set();
302
+ const visitedInputNodeArray = [];
303
+ let i = 0;
304
+ for (; i < nodeList.length; ++i) {
305
+ const node = nodeList[i];
306
+ // if parent node is not visited, current node should not be visited
307
+ const parent = parentMap.get(node);
308
+ if (parent) {
309
+ if (!visitedNodeSet.has(parent)) {
310
+ continue;
311
+ }
312
+ }
313
+ // 1. check condition
314
+ if (node.condition) {
315
+ let parentValue = undefined;
316
+ // const parent = parentMap.get(node);
317
+ if (parent) {
318
+ parentValue = findValue(parent, parentMap);
319
+ }
320
+ const validRes = await validationUtils_1.validate(node.condition, parentValue, clonedInputs);
321
+ if (validRes !== undefined) {
322
+ continue;
323
+ }
324
+ }
325
+ // 2. visit node if not group
326
+ if (node.data.type !== "group") {
327
+ const question = node.data;
328
+ let res;
248
329
  try {
249
- qvRes = await visitor(question, ui, inputs, step, totalStep);
250
- sendTelemetryEvent(telemetryReporter, qvRes, question, inputs);
330
+ res = await visitor(question, ui, clonedInputs, visitedInputNodeArray.length + 1, undefined);
331
+ sendTelemetryEvent(telemetryReporter, res, question, clonedInputs);
251
332
  }
252
333
  catch (e) {
253
334
  return teamsfx_api_1.err(error_1.assembleError(e));
254
335
  }
255
- if (qvRes.isErr()) {
336
+ if (res.isErr()) {
256
337
  // Cancel or Error
257
- return teamsfx_api_1.err(qvRes.error);
338
+ return teamsfx_api_1.err(res.error);
258
339
  }
259
- const inputResult = qvRes.value;
340
+ const inputResult = res.value;
260
341
  if (inputResult.type === "back") {
261
- stack.push(curr);
262
- // find the previous input that is neither group nor func nor single option select
263
- let found = false;
264
- while (history.length > 0) {
265
- const last = history.pop();
266
- if (!last)
267
- continue;
268
- if (last.children) {
269
- while (stack.length > 0) {
270
- const tmp = stack[stack.length - 1];
271
- if (last.children.includes(tmp)) {
272
- stack.pop();
273
- }
274
- else {
275
- break;
276
- }
277
- }
342
+ const prevNode = visitedInputNodeArray.pop();
343
+ if (!prevNode) {
344
+ return teamsfx_api_1.err(new error_1.UserCancelError());
345
+ }
346
+ for (--i; i >= 0; --i) {
347
+ const tmpNode = nodeList[i];
348
+ visitedNodeSet.delete(tmpNode);
349
+ // clear prevNode data
350
+ if (tmpNode.data.type !== "group") {
351
+ delete tmpNode.data.value;
352
+ delete tmpNode.data.valueType;
353
+ delete clonedInputs[tmpNode.data.name];
278
354
  }
279
- stack.push(last);
280
- if (last.data.type !== "group")
281
- delete inputs[last.data.name];
282
- const lastIsAutoSkip = autoSkipSet.has(last);
283
- if (last.data.type !== "group" && last.data.type !== "func" && !lastIsAutoSkip) {
284
- found = true;
355
+ if (tmpNode === prevNode) {
285
356
  break;
286
357
  }
287
358
  }
288
- if (!found) {
289
- return teamsfx_api_1.err(new error_1.UserCancelError());
290
- }
291
- --step;
292
- continue; //ignore the following steps
359
+ --i;
360
+ continue;
293
361
  }
294
362
  else {
295
- //success or skip
363
+ //success or skip: set value
296
364
  question.value = inputResult.result;
297
- inputs[question.name] = question.value;
298
- if (inputResult.type === "skip" || question.type === "func") {
299
- if (inputResult.type === "skip")
300
- autoSkipSet.add(curr);
301
- }
302
- else {
303
- ++step;
365
+ question.valueType = inputResult.type;
366
+ clonedInputs[question.name] = question.value;
367
+ visitedNodeSet.add(node);
368
+ if (question.valueType === "success") {
369
+ visitedInputNodeArray.push(node);
304
370
  }
305
371
  }
306
372
  }
307
- history.push(curr);
308
- if (curr.children) {
309
- const matchChildren = [];
310
- const valueInMap = findValue(curr, parentMap); //curr.data.type !== "group" ? curr.data.value : undefined; //valueMap.get(curr);
311
- for (const child of curr.children) {
312
- if (!child)
313
- continue;
314
- if (child.condition) {
315
- const validRes = await teamsfx_api_1.validate(child.condition, valueInMap, inputs);
316
- if (validRes !== undefined) {
317
- continue;
318
- }
319
- }
320
- matchChildren.push(child);
321
- }
322
- for (let i = matchChildren.length - 1; i >= 0; --i) {
323
- const child = matchChildren[i];
324
- parentMap.set(child, curr);
325
- stack.push(child);
326
- }
373
+ else {
374
+ visitedNodeSet.add(node);
327
375
  }
328
376
  }
377
+ lodash_1.assign(inputs, clonedInputs);
329
378
  return teamsfx_api_1.ok(teamsfx_api_1.Void);
330
379
  }
331
380
  exports.traverse = traverse;
@@ -1 +1 @@
1
- {"version":3,"file":"visitor.js","sourceRoot":"","sources":["../../src/ui/visitor.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"visitor.js","sourceRoot":"","sources":["../../src/ui/visitor.ts"],"names":[],"mappings":"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"}