@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,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.createProjectCliHelpNode = exports.createProjectQuestionNode = exports.apiOperationQuestion = exports.apiSpecLocationQuestion = exports.RuntimeOptions = exports.appNameQuestion = exports.AppNamePattern = exports.programmingLanguageQuestion = exports.ProgrammingLanguage = exports.getLanguageOptions = exports.getTemplate = exports.SPFxImportFolderQuestion = exports.PackageSelectOptionsHelper = exports.SPFxVersionOptionIds = exports.SPFxWebpartNameQuestion = exports.SPFxPackageSelectQuestion = exports.NotificationTriggerOptions = exports.CapabilityOptions = exports.ProjectTypeOptions = exports.ScratchOptions = void 0;
5
+ exports.createProjectCliHelpNode = exports.createSampleProjectQuestionNode = exports.createProjectQuestionNode = exports.capabilitySubTree = exports.apiOperationQuestion = exports.openAIPluginManifestLocationQuestion = exports.apiSpecLocationQuestion = exports.RuntimeOptions = exports.appNameQuestion = exports.AppNamePattern = exports.folderQuestion = exports.programmingLanguageQuestion = exports.ProgrammingLanguage = exports.getLanguageOptions = exports.officeAddinHostingQuestion = exports.getTemplate = exports.SPFxImportFolderQuestion = exports.SPFxVersionOptionIds = exports.SPFxWebpartNameQuestion = exports.SPFxPackageSelectQuestion = exports.NotificationTriggerOptions = exports.capabilityQuestion = exports.CapabilityOptions = exports.ProjectTypeOptions = exports.ScratchOptions = void 0;
6
6
  const tslib_1 = require("tslib");
7
7
  const teamsfx_api_1 = require("@microsoft/teamsfx-api");
8
8
  const fs_extra_1 = tslib_1.__importDefault(require("fs-extra"));
@@ -10,7 +10,6 @@ const jsonschema = tslib_1.__importStar(require("jsonschema"));
10
10
  const lodash_1 = require("lodash");
11
11
  const os = tslib_1.__importStar(require("os"));
12
12
  const path = tslib_1.__importStar(require("path"));
13
- const semver_1 = tslib_1.__importDefault(require("semver"));
14
13
  const constants_1 = require("../common/constants");
15
14
  const featureFlags_1 = require("../common/featureFlags");
16
15
  const localizeUtils_1 = require("../common/localizeUtils");
@@ -18,16 +17,17 @@ const samples_1 = require("../common/samples");
18
17
  const utils_1 = require("../common/utils");
19
18
  const developerPortalScaffoldUtils_1 = require("../component/developerPortalScaffoldUtils");
20
19
  const utils_2 = require("../component/driver/teamsApp/utils/utils");
20
+ const helper_1 = require("../component/generator/copilotPlugin/helper");
21
21
  const projectsJsonData_1 = tslib_1.__importDefault(require("../component/generator/officeAddin/config/projectsJsonData"));
22
22
  const error_1 = require("../component/generator/spfx/error");
23
23
  const spfxGenerator_1 = require("../component/generator/spfx/spfxGenerator");
24
24
  const constants_2 = require("../component/generator/spfx/utils/constants");
25
25
  const utils_3 = require("../component/generator/spfx/utils/utils");
26
+ const utils_4 = require("../component/utils");
27
+ const error_2 = require("../error");
26
28
  const questionNames_1 = require("./questionNames");
27
29
  const util_1 = require("./util");
28
- const error_2 = require("../error");
29
- const helper_1 = require("../component/generator/copilotPlugin/helper");
30
- const utils_4 = require("../component/utils");
30
+ const constants_3 = require("./constants");
31
31
  class ScratchOptions {
32
32
  static yes() {
33
33
  return {
@@ -49,62 +49,49 @@ class ScratchOptions {
49
49
  }
50
50
  exports.ScratchOptions = ScratchOptions;
51
51
  class ProjectTypeOptions {
52
- static tab() {
52
+ static tab(platform) {
53
53
  return {
54
54
  id: "tab-type",
55
- label: `$(browser) ${localizeUtils_1.getLocalizedString("core.TabOption.label")}`,
55
+ label: `${platform === teamsfx_api_1.Platform.VSCode ? "$(browser) " : ""}${localizeUtils_1.getLocalizedString("core.TabOption.label")}`,
56
56
  detail: localizeUtils_1.getLocalizedString("core.createProjectQuestion.projectType.tab.detail"),
57
57
  };
58
58
  }
59
- static bot() {
59
+ static bot(platform) {
60
60
  return {
61
61
  id: "bot-type",
62
- label: `$(hubot) ${localizeUtils_1.getLocalizedString("core.createProjectQuestion.projectType.bot.label")}`,
62
+ label: `${platform === teamsfx_api_1.Platform.VSCode ? "$(hubot) " : ""}${localizeUtils_1.getLocalizedString("core.createProjectQuestion.projectType.bot.label")}`,
63
63
  detail: localizeUtils_1.getLocalizedString("core.createProjectQuestion.projectType.bot.detail"),
64
64
  };
65
65
  }
66
- static me() {
66
+ static me(platform) {
67
67
  return {
68
68
  id: "me-type",
69
- label: `$(symbol-keyword) ${localizeUtils_1.getLocalizedString("core.MessageExtensionOption.label")}`,
69
+ label: `${platform === teamsfx_api_1.Platform.VSCode ? "$(symbol-keyword) " : ""}${localizeUtils_1.getLocalizedString("core.MessageExtensionOption.label")}`,
70
70
  detail: localizeUtils_1.getLocalizedString("core.createProjectQuestion.projectType.messageExtension.detail"),
71
71
  };
72
72
  }
73
- static outlookAddin() {
73
+ static outlookAddin(platform) {
74
74
  return {
75
75
  id: "outlook-addin-type",
76
- label: `$(mail) ${localizeUtils_1.getLocalizedString("core.createProjectQuestion.projectType.outlookAddin.label")}`,
76
+ label: `${platform === teamsfx_api_1.Platform.VSCode ? "$(mail) " : ""}${localizeUtils_1.getLocalizedString("core.createProjectQuestion.projectType.outlookAddin.label")}`,
77
77
  detail: localizeUtils_1.getLocalizedString("core.createProjectQuestion.projectType.outlookAddin.detail"),
78
78
  };
79
79
  }
80
- static copilotPlugin() {
80
+ static copilotPlugin(platform) {
81
81
  return {
82
82
  id: "copilot-plugin-type",
83
- label: `$(sparkle) ${localizeUtils_1.getLocalizedString("core.createProjectQuestion.projectType.copilotPlugin.label")}`,
83
+ label: `${platform === teamsfx_api_1.Platform.VSCode ? "$(sparkle) " : ""}${localizeUtils_1.getLocalizedString("core.createProjectQuestion.projectType.copilotPlugin.label")}`,
84
84
  detail: localizeUtils_1.getLocalizedString("core.createProjectQuestion.projectType.copilotPlugin.detail"),
85
85
  };
86
86
  }
87
87
  }
88
88
  exports.ProjectTypeOptions = ProjectTypeOptions;
89
- function scratchOrSampleQuestion() {
90
- const staticOptions = ScratchOptions.all();
91
- return {
92
- type: "singleSelect",
93
- name: questionNames_1.QuestionNames.Scratch,
94
- title: localizeUtils_1.getLocalizedString("core.getCreateNewOrFromSampleQuestion.title"),
95
- staticOptions,
96
- default: ScratchOptions.yes().id,
97
- placeholder: localizeUtils_1.getLocalizedString("core.getCreateNewOrFromSampleQuestion.placeholder"),
98
- skipSingleOption: true,
99
- forgetLastValue: true,
100
- };
101
- }
102
89
  function projectTypeQuestion() {
103
90
  const staticOptions = [
104
- ProjectTypeOptions.bot(),
105
- ProjectTypeOptions.tab(),
106
- ProjectTypeOptions.me(),
107
- ProjectTypeOptions.outlookAddin(),
91
+ ProjectTypeOptions.bot(teamsfx_api_1.Platform.CLI),
92
+ ProjectTypeOptions.tab(teamsfx_api_1.Platform.CLI),
93
+ ProjectTypeOptions.me(teamsfx_api_1.Platform.CLI),
94
+ ProjectTypeOptions.outlookAddin(teamsfx_api_1.Platform.CLI),
108
95
  ];
109
96
  return {
110
97
  name: questionNames_1.QuestionNames.ProjectType,
@@ -116,27 +103,27 @@ function projectTypeQuestion() {
116
103
  let staticOptions;
117
104
  if (featureFlags_1.isCopilotPluginEnabled()) {
118
105
  staticOptions = [
119
- ProjectTypeOptions.copilotPlugin(),
120
- ProjectTypeOptions.bot(),
121
- ProjectTypeOptions.tab(),
122
- ProjectTypeOptions.me(),
106
+ ProjectTypeOptions.copilotPlugin(inputs.platform),
107
+ ProjectTypeOptions.bot(inputs.platform),
108
+ ProjectTypeOptions.tab(inputs.platform),
109
+ ProjectTypeOptions.me(inputs.platform),
123
110
  ];
124
111
  }
125
112
  else {
126
113
  staticOptions = [
127
- ProjectTypeOptions.bot(),
128
- ProjectTypeOptions.tab(),
129
- ProjectTypeOptions.me(),
114
+ ProjectTypeOptions.bot(inputs.platform),
115
+ ProjectTypeOptions.tab(inputs.platform),
116
+ ProjectTypeOptions.me(inputs.platform),
130
117
  ];
131
118
  }
132
119
  if (developerPortalScaffoldUtils_1.isFromDevPortal(inputs)) {
133
- const projectType = (_a = developerPortalScaffoldUtils_1.getTemplateId(inputs.teamsAppFromTdp)) === null || _a === void 0 ? void 0 : _a.projectType;
120
+ const projectType = (_a = developerPortalScaffoldUtils_1.getProjectTypeAndCapability(inputs.teamsAppFromTdp)) === null || _a === void 0 ? void 0 : _a.projectType;
134
121
  if (projectType) {
135
122
  return [projectType];
136
123
  }
137
124
  }
138
125
  else {
139
- staticOptions.push(ProjectTypeOptions.outlookAddin());
126
+ staticOptions.push(ProjectTypeOptions.outlookAddin(inputs.platform));
140
127
  }
141
128
  return staticOptions;
142
129
  },
@@ -149,18 +136,16 @@ class CapabilityOptions {
149
136
  // bot
150
137
  static basicBot() {
151
138
  return {
152
- id: "Bot",
139
+ id: "bot",
153
140
  label: `${localizeUtils_1.getLocalizedString("core.BotNewUIOption.label")}`,
154
- cliName: "bot",
155
141
  detail: localizeUtils_1.getLocalizedString("core.BotNewUIOption.detail"),
156
142
  };
157
143
  }
158
144
  static notificationBot() {
159
145
  return {
160
146
  // For default option, id and cliName must be the same
161
- id: "Notification",
147
+ id: "notification",
162
148
  label: `${localizeUtils_1.getLocalizedString("core.NotificationOption.label")}`,
163
- cliName: "notification",
164
149
  detail: localizeUtils_1.getLocalizedString("core.NotificationOption.detail"),
165
150
  data: "https://aka.ms/teamsfx-send-notification",
166
151
  buttons: [
@@ -177,7 +162,6 @@ class CapabilityOptions {
177
162
  // id must match cli `yargsHelp`
178
163
  id: "command-bot",
179
164
  label: `${localizeUtils_1.getLocalizedString("core.CommandAndResponseOption.label")}`,
180
- cliName: "command-bot",
181
165
  detail: localizeUtils_1.getLocalizedString("core.CommandAndResponseOption.detail"),
182
166
  data: "https://aka.ms/teamsfx-create-command",
183
167
  buttons: [
@@ -194,7 +178,6 @@ class CapabilityOptions {
194
178
  // id must match cli `yargsHelp`
195
179
  id: "workflow-bot",
196
180
  label: `${localizeUtils_1.getLocalizedString("core.WorkflowOption.label")}`,
197
- cliName: "workflow-bot",
198
181
  detail: localizeUtils_1.getLocalizedString("core.WorkflowOption.detail"),
199
182
  data: "https://aka.ms/teamsfx-create-workflow",
200
183
  buttons: [
@@ -220,27 +203,24 @@ class CapabilityOptions {
220
203
  //tab
221
204
  static nonSsoTab() {
222
205
  return {
223
- id: "TabNonSso",
206
+ id: "tab-non-sso",
224
207
  label: `${localizeUtils_1.getLocalizedString("core.TabNonSso.label")}`,
225
- cliName: "tab-non-sso",
226
208
  detail: localizeUtils_1.getLocalizedString("core.TabNonSso.detail"),
227
209
  description: localizeUtils_1.getLocalizedString("core.createProjectQuestion.option.description.worksInOutlookM365"),
228
210
  };
229
211
  }
230
212
  static tab() {
231
213
  return {
232
- id: "Tab",
214
+ id: "tab",
233
215
  label: localizeUtils_1.getLocalizedString("core.TabOption.label"),
234
- cliName: "tab",
235
216
  description: localizeUtils_1.getLocalizedString("core.TabOption.description"),
236
217
  detail: localizeUtils_1.getLocalizedString("core.TabOption.detail"),
237
218
  };
238
219
  }
239
220
  static m365SsoLaunchPage() {
240
221
  return {
241
- id: "M365SsoLaunchPage",
222
+ id: "sso-launch-page",
242
223
  label: `${localizeUtils_1.getLocalizedString("core.M365SsoLaunchPageOptionItem.label")}`,
243
- cliName: "sso-launch-page",
244
224
  detail: localizeUtils_1.getLocalizedString("core.M365SsoLaunchPageOptionItem.detail"),
245
225
  description: localizeUtils_1.getLocalizedString("core.createProjectQuestion.option.description.worksInOutlookM365"),
246
226
  };
@@ -249,7 +229,6 @@ class CapabilityOptions {
249
229
  return {
250
230
  id: "dashboard-tab",
251
231
  label: `${localizeUtils_1.getLocalizedString("core.DashboardOption.label")}`,
252
- cliName: "dashboard-tab",
253
232
  detail: localizeUtils_1.getLocalizedString("core.DashboardOption.detail"),
254
233
  description: localizeUtils_1.getLocalizedString("core.createProjectQuestion.option.description.worksInOutlookM365"),
255
234
  data: "https://aka.ms/teamsfx-dashboard-app",
@@ -264,9 +243,8 @@ class CapabilityOptions {
264
243
  }
265
244
  static SPFxTab() {
266
245
  return {
267
- id: "TabSPFx",
246
+ id: "tab-spfx",
268
247
  label: localizeUtils_1.getLocalizedString("core.TabSPFxOption.labelNew"),
269
- cliName: "tab-spfx",
270
248
  description: localizeUtils_1.getLocalizedString("core.createProjectQuestion.option.description.worksInOutlookM365"),
271
249
  detail: localizeUtils_1.getLocalizedString("core.TabSPFxOption.detailNew"),
272
250
  };
@@ -274,46 +252,58 @@ class CapabilityOptions {
274
252
  //message extension
275
253
  static linkUnfurling() {
276
254
  return {
277
- id: "LinkUnfurling",
255
+ id: "link-unfurling",
278
256
  label: `${localizeUtils_1.getLocalizedString("core.LinkUnfurlingOption.label")}`,
279
- cliName: "link-unfurling",
280
257
  detail: localizeUtils_1.getLocalizedString("core.LinkUnfurlingOption.detail"),
281
258
  description: localizeUtils_1.getLocalizedString("core.createProjectQuestion.option.description.worksInOutlook"),
282
259
  };
283
260
  }
284
261
  static m365SearchMe() {
285
262
  return {
286
- id: "M365SearchApp",
263
+ id: "search-app",
287
264
  label: `${localizeUtils_1.getLocalizedString("core.M365SearchAppOptionItem.label")}`,
288
- cliName: "search-app",
289
265
  detail: localizeUtils_1.getLocalizedString("core.M365SearchAppOptionItem.detail"),
290
266
  description: localizeUtils_1.getLocalizedString("core.createProjectQuestion.option.description.worksInOutlook"),
291
267
  };
292
268
  }
269
+ static SearchMe() {
270
+ return {
271
+ id: "search-message-extension",
272
+ label: `${localizeUtils_1.getLocalizedString("core.M365SearchAppOptionItem.label")}`,
273
+ detail: localizeUtils_1.getLocalizedString("core.SearchAppOptionItem.detail"),
274
+ };
275
+ }
293
276
  static collectFormMe() {
294
277
  return {
295
- id: "MessagingExtension",
278
+ id: "collect-form-message-extension",
296
279
  label: `${localizeUtils_1.getLocalizedString("core.MessageExtensionOption.labelNew")}`,
297
- cliName: "message-extension",
298
280
  detail: localizeUtils_1.getLocalizedString("core.MessageExtensionOption.detail"),
299
281
  };
300
282
  }
301
283
  static me() {
302
284
  return {
303
- id: "MessagingExtension",
285
+ id: "message-extension",
304
286
  label: localizeUtils_1.getLocalizedString("core.MessageExtensionOption.label"),
305
- cliName: "message-extension",
306
287
  description: localizeUtils_1.getLocalizedString("core.MessageExtensionOption.description"),
307
288
  detail: localizeUtils_1.getLocalizedString("core.MessageExtensionOption.detail"),
308
289
  };
309
290
  }
310
291
  static bots(inputs) {
311
- return [
312
- CapabilityOptions.basicBot(),
313
- CapabilityOptions.notificationBot(),
314
- CapabilityOptions.commandBot(),
315
- CapabilityOptions.workflowBot(inputs),
316
- ];
292
+ return inputs !== undefined && getRuntime(inputs) === RuntimeOptions.DotNet().id
293
+ ? // currently no ai bot for dotnet
294
+ [
295
+ CapabilityOptions.basicBot(),
296
+ CapabilityOptions.notificationBot(),
297
+ CapabilityOptions.commandBot(),
298
+ CapabilityOptions.workflowBot(inputs),
299
+ ]
300
+ : [
301
+ CapabilityOptions.basicBot(),
302
+ CapabilityOptions.aiBot(),
303
+ CapabilityOptions.notificationBot(),
304
+ CapabilityOptions.commandBot(),
305
+ CapabilityOptions.workflowBot(inputs),
306
+ ];
317
307
  }
318
308
  static tabs() {
319
309
  return [
@@ -323,21 +313,27 @@ class CapabilityOptions {
323
313
  CapabilityOptions.SPFxTab(),
324
314
  ];
325
315
  }
326
- static dotnetCaps() {
316
+ static dotnetCaps(inputs) {
327
317
  return [
328
- CapabilityOptions.notificationBot(),
329
- CapabilityOptions.commandBot(),
318
+ ...CapabilityOptions.copilotPlugins(),
319
+ ...CapabilityOptions.bots(inputs),
330
320
  CapabilityOptions.nonSsoTab(),
331
321
  CapabilityOptions.tab(),
332
- CapabilityOptions.me(),
322
+ ...CapabilityOptions.mes(inputs),
333
323
  ];
334
324
  }
335
- static mes() {
336
- return [
337
- CapabilityOptions.linkUnfurling(),
338
- CapabilityOptions.m365SearchMe(),
339
- CapabilityOptions.collectFormMe(),
340
- ];
325
+ static mes(inputs) {
326
+ return inputs !== undefined && getRuntime(inputs) === RuntimeOptions.DotNet().id
327
+ ? [
328
+ CapabilityOptions.linkUnfurling(),
329
+ CapabilityOptions.SearchMe(),
330
+ CapabilityOptions.collectFormMe(),
331
+ ]
332
+ : [
333
+ CapabilityOptions.linkUnfurling(),
334
+ CapabilityOptions.m365SearchMe(),
335
+ CapabilityOptions.collectFormMe(),
336
+ ];
341
337
  }
342
338
  static copilotPlugins() {
343
339
  return [
@@ -346,7 +342,17 @@ class CapabilityOptions {
346
342
  CapabilityOptions.copilotPluginOpenAIPlugin(),
347
343
  ];
348
344
  }
345
+ static staticAll(inputs) {
346
+ const capabilityOptions = [
347
+ ...CapabilityOptions.bots(inputs),
348
+ ...CapabilityOptions.tabs(),
349
+ ...CapabilityOptions.mes(),
350
+ ...CapabilityOptions.copilotPlugins(),
351
+ ];
352
+ return capabilityOptions;
353
+ }
349
354
  static all(inputs) {
355
+ // teamsfx list templates
350
356
  const capabilityOptions = [
351
357
  ...CapabilityOptions.bots(inputs),
352
358
  ...CapabilityOptions.tabs(),
@@ -359,9 +365,8 @@ class CapabilityOptions {
359
365
  }
360
366
  static officeAddinImport() {
361
367
  return {
362
- id: "import-addin-project",
368
+ id: "import",
363
369
  label: localizeUtils_1.getLocalizedString("core.importAddin.label"),
364
- cliName: "import",
365
370
  detail: localizeUtils_1.getLocalizedString("core.importAddin.detail"),
366
371
  description: localizeUtils_1.getLocalizedString("core.createProjectQuestion.option.description.previewOnWindow"),
367
372
  };
@@ -389,25 +394,32 @@ class CapabilityOptions {
389
394
  // copilot plugin
390
395
  static copilotPluginNewApi() {
391
396
  return {
392
- id: "copilot-new-api",
397
+ id: constants_3.copilotPluginNewApiOptionId,
393
398
  label: localizeUtils_1.getLocalizedString("core.createProjectQuestion.capability.copilotPluginNewApiOption.label"),
394
399
  detail: localizeUtils_1.getLocalizedString("core.createProjectQuestion.capability.copilotPluginNewApiOption.detail"),
395
400
  };
396
401
  }
397
402
  static copilotPluginApiSpec() {
398
403
  return {
399
- id: "copilot-api-spec",
404
+ id: constants_3.copilotPluginApiSpecOptionId,
400
405
  label: localizeUtils_1.getLocalizedString("core.createProjectQuestion.capability.copilotPluginApiSpecOption.label"),
401
406
  detail: localizeUtils_1.getLocalizedString("core.createProjectQuestion.capability.copilotPluginApiSpecOption.detail"),
402
407
  };
403
408
  }
404
409
  static copilotPluginOpenAIPlugin() {
405
410
  return {
406
- id: "copilot-ai-plugin",
411
+ id: constants_3.copilotPluginOpenAIPluginOptionId,
407
412
  label: localizeUtils_1.getLocalizedString("core.createProjectQuestion.capability.copilotPluginAIPluginOption.label"),
408
413
  detail: localizeUtils_1.getLocalizedString("core.createProjectQuestion.capability.copilotPluginAIPluginOption.detail"),
409
414
  };
410
415
  }
416
+ static aiBot() {
417
+ return {
418
+ id: "ai-bot",
419
+ label: localizeUtils_1.getLocalizedString("core.aiBotOption.label"),
420
+ detail: localizeUtils_1.getLocalizedString("core.aiBotOption.detail"),
421
+ };
422
+ }
411
423
  }
412
424
  exports.CapabilityOptions = CapabilityOptions;
413
425
  function capabilityQuestion() {
@@ -430,20 +442,28 @@ function capabilityQuestion() {
430
442
  return localizeUtils_1.getLocalizedString("core.createCapabilityQuestion.titleNew");
431
443
  }
432
444
  },
445
+ cliDescription: "Specifies the Microsoft Teams App capability.",
446
+ cliName: questionNames_1.CliQuestionName.Capability,
447
+ cliShortName: "c",
448
+ cliChoiceListCommand: "teamsfx list templates",
433
449
  type: "singleSelect",
434
- staticOptions: CapabilityOptions.all(),
450
+ staticOptions: CapabilityOptions.staticAll(),
435
451
  dynamicOptions: (inputs) => {
436
452
  var _a;
437
453
  // from dev portal
438
454
  if (developerPortalScaffoldUtils_1.isFromDevPortal(inputs)) {
439
- const capability = (_a = developerPortalScaffoldUtils_1.getTemplateId(inputs.teamsAppFromTdp)) === null || _a === void 0 ? void 0 : _a.templateId;
455
+ const capability = (_a = developerPortalScaffoldUtils_1.getProjectTypeAndCapability(inputs.teamsAppFromTdp)) === null || _a === void 0 ? void 0 : _a.templateId;
440
456
  if (capability) {
441
457
  return [capability];
442
458
  }
443
459
  }
444
460
  // dotnet capabilities
445
461
  if (getRuntime(inputs) === RuntimeOptions.DotNet().id) {
446
- return CapabilityOptions.dotnetCaps();
462
+ return CapabilityOptions.dotnetCaps(inputs);
463
+ }
464
+ if (inputs.nonInteractive && inputs.platform === teamsfx_api_1.Platform.CLI) {
465
+ //cli non-interactive mode the choice list is the same as staticOptions
466
+ return CapabilityOptions.all(inputs);
447
467
  }
448
468
  // nodejs capabilities
449
469
  const projectType = inputs[questionNames_1.QuestionNames.ProjectType];
@@ -463,15 +483,7 @@ function capabilityQuestion() {
463
483
  return CapabilityOptions.copilotPlugins();
464
484
  }
465
485
  else {
466
- const capabilityOptions = [
467
- ...CapabilityOptions.bots(inputs),
468
- ...CapabilityOptions.tabs(),
469
- ...CapabilityOptions.mes(),
470
- ];
471
- if (featureFlags_1.isCopilotPluginEnabled()) {
472
- capabilityOptions.push(...CapabilityOptions.copilotPlugins());
473
- }
474
- return capabilityOptions;
486
+ return CapabilityOptions.all(inputs);
475
487
  }
476
488
  },
477
489
  placeholder: (inputs) => {
@@ -484,6 +496,7 @@ function capabilityQuestion() {
484
496
  skipSingleOption: true,
485
497
  };
486
498
  }
499
+ exports.capabilityQuestion = capabilityQuestion;
487
500
  var HostType;
488
501
  (function (HostType) {
489
502
  HostType["AppService"] = "app-service";
@@ -499,7 +512,6 @@ class NotificationTriggerOptions {
499
512
  id: "http-restify",
500
513
  hostType: HostType.AppService,
501
514
  label: localizeUtils_1.getLocalizedString("plugins.bot.triggers.http-restify.label"),
502
- cliName: localizeUtils_1.getLocalizedString("plugins.bot.triggers.http-restify.cliName"),
503
515
  description: localizeUtils_1.getLocalizedString("plugins.bot.triggers.http-restify.description"),
504
516
  detail: localizeUtils_1.getLocalizedString("plugins.bot.triggers.http-restify.detail"),
505
517
  };
@@ -509,7 +521,6 @@ class NotificationTriggerOptions {
509
521
  id: "http-webapi",
510
522
  hostType: HostType.AppService,
511
523
  label: localizeUtils_1.getLocalizedString("plugins.bot.triggers.http-webapi.label"),
512
- cliName: localizeUtils_1.getLocalizedString("plugins.bot.triggers.http-webapi.cliName"),
513
524
  description: localizeUtils_1.getLocalizedString("plugins.bot.triggers.http-webapi.description"),
514
525
  detail: localizeUtils_1.getLocalizedString("plugins.bot.triggers.http-webapi.detail"),
515
526
  };
@@ -521,7 +532,6 @@ class NotificationTriggerOptions {
521
532
  hostType: HostType.Functions,
522
533
  triggers: [NotificationTriggers.TIMER],
523
534
  label: localizeUtils_1.getLocalizedString("plugins.bot.triggers.timer-functions.label"),
524
- cliName: localizeUtils_1.getLocalizedString("plugins.bot.triggers.timer-functions.cliName"),
525
535
  description: localizeUtils_1.getLocalizedString("plugins.bot.triggers.timer-functions.description"),
526
536
  detail: localizeUtils_1.getLocalizedString("plugins.bot.triggers.timer-functions.detail"),
527
537
  };
@@ -532,7 +542,6 @@ class NotificationTriggerOptions {
532
542
  hostType: HostType.Functions,
533
543
  triggers: [NotificationTriggers.HTTP, NotificationTriggers.TIMER],
534
544
  label: localizeUtils_1.getLocalizedString("plugins.bot.triggers.http-and-timer-functions.label"),
535
- cliName: localizeUtils_1.getLocalizedString("plugins.bot.triggers.http-and-timer-functions.cliName"),
536
545
  description: localizeUtils_1.getLocalizedString("plugins.bot.triggers.http-and-timer-functions.description"),
537
546
  detail: localizeUtils_1.getLocalizedString("plugins.bot.triggers.http-and-timer-functions.detail"),
538
547
  };
@@ -543,7 +552,6 @@ class NotificationTriggerOptions {
543
552
  hostType: HostType.Functions,
544
553
  triggers: [NotificationTriggers.HTTP],
545
554
  label: localizeUtils_1.getLocalizedString("plugins.bot.triggers.http-functions.label"),
546
- cliName: localizeUtils_1.getLocalizedString("plugins.bot.triggers.http-functions.cliName"),
547
555
  description: localizeUtils_1.getLocalizedString("plugins.bot.triggers.http-functions.description"),
548
556
  detail: localizeUtils_1.getLocalizedString("plugins.bot.triggers.http-functions.detail"),
549
557
  };
@@ -582,6 +590,8 @@ function botTriggerQuestion() {
582
590
  return {
583
591
  name: questionNames_1.QuestionNames.BotTrigger,
584
592
  title: localizeUtils_1.getLocalizedString("plugins.bot.questionHostTypeTrigger.title"),
593
+ cliDescription: "Specifies the trigger for `Chat Notification Message` app template.",
594
+ cliShortName: "t",
585
595
  type: "singleSelect",
586
596
  staticOptions: NotificationTriggerOptions.all(),
587
597
  dynamicOptions: (inputs) => {
@@ -607,11 +617,18 @@ function SPFxSolutionQuestion() {
607
617
  type: "singleSelect",
608
618
  name: questionNames_1.QuestionNames.SPFxSolution,
609
619
  title: localizeUtils_1.getLocalizedString("plugins.spfx.questions.spfxSolution.title"),
620
+ cliDescription: "Create a new or import an existing SharePoint Framework solution.",
621
+ cliShortName: "s",
610
622
  staticOptions: [
611
- { id: "new", label: localizeUtils_1.getLocalizedString("plugins.spfx.questions.spfxSolution.createNew") },
623
+ {
624
+ id: "new",
625
+ label: localizeUtils_1.getLocalizedString("plugins.spfx.questions.spfxSolution.createNew"),
626
+ detail: localizeUtils_1.getLocalizedString("plugins.spfx.questions.spfxSolution.createNew.detail"),
627
+ },
612
628
  {
613
629
  id: "import",
614
630
  label: localizeUtils_1.getLocalizedString("plugins.spfx.questions.spfxSolution.importExisting"),
631
+ detail: localizeUtils_1.getLocalizedString("plugins.spfx.questions.spfxSolution.importExisting.detail"),
615
632
  },
616
633
  ],
617
634
  default: "new",
@@ -622,24 +639,49 @@ function SPFxPackageSelectQuestion() {
622
639
  type: "singleSelect",
623
640
  name: questionNames_1.QuestionNames.SPFxInstallPackage,
624
641
  title: localizeUtils_1.getLocalizedString("plugins.spfx.questions.packageSelect.title"),
642
+ cliDescription: "Install the latest version of SharePoint Framework.",
625
643
  staticOptions: [],
626
644
  placeholder: localizeUtils_1.getLocalizedString("plugins.spfx.questions.packageSelect.placeholder"),
627
645
  dynamicOptions: async (inputs) => {
628
- await PackageSelectOptionsHelper.loadOptions();
629
- return PackageSelectOptionsHelper.getOptions();
646
+ const versions = await Promise.all([
647
+ utils_3.Utils.findGloballyInstalledVersion(undefined, constants_2.Constants.GeneratorPackageName, 0, false),
648
+ utils_3.Utils.findLatestVersion(undefined, constants_2.Constants.GeneratorPackageName, 5),
649
+ utils_3.Utils.findGloballyInstalledVersion(undefined, constants_2.Constants.YeomanPackageName, 0, false),
650
+ ]);
651
+ inputs.globalSpfxPackageVersion = versions[0];
652
+ inputs.latestSpfxPackageVersion = versions[1];
653
+ inputs.globalYeomanPackageVersion = versions[2];
654
+ return [
655
+ {
656
+ id: SPFxVersionOptionIds.installLocally,
657
+ label: versions[1] !== undefined
658
+ ? localizeUtils_1.getLocalizedString("plugins.spfx.questions.packageSelect.installLocally.withVersion.label", "v" + versions[1])
659
+ : localizeUtils_1.getLocalizedString("plugins.spfx.questions.packageSelect.installLocally.noVersion.label"),
660
+ },
661
+ {
662
+ id: SPFxVersionOptionIds.globalPackage,
663
+ label: versions[0] !== undefined
664
+ ? localizeUtils_1.getLocalizedString("plugins.spfx.questions.packageSelect.useGlobalPackage.withVersion.label", "v" + versions[0])
665
+ : localizeUtils_1.getLocalizedString("plugins.spfx.questions.packageSelect.useGlobalPackage.noVersion.label"),
666
+ description: localizeUtils_1.getLocalizedString("plugins.spfx.questions.packageSelect.useGlobalPackage.detail", constants_2.Constants.RecommendedLowestSpfxVersion),
667
+ },
668
+ ];
630
669
  },
631
670
  default: SPFxVersionOptionIds.installLocally,
632
671
  validation: {
633
- validFunc: async (input) => {
672
+ validFunc: (input, previousInputs) => {
634
673
  if (input === SPFxVersionOptionIds.globalPackage) {
635
- const hasPackagesInstalled = PackageSelectOptionsHelper.checkGlobalPackages();
674
+ const hasPackagesInstalled = !!previousInputs &&
675
+ !!previousInputs.globalSpfxPackageVersion &&
676
+ !!previousInputs.globalYeomanPackageVersion;
636
677
  if (!hasPackagesInstalled) {
637
- throw error_1.DevEnvironmentSetupError();
678
+ return Promise.reject(error_1.DevEnvironmentSetupError());
638
679
  }
639
680
  }
640
- return undefined;
681
+ return Promise.resolve(undefined);
641
682
  },
642
683
  },
684
+ isBoolean: true,
643
685
  };
644
686
  }
645
687
  exports.SPFxPackageSelectQuestion = SPFxPackageSelectQuestion;
@@ -647,6 +689,8 @@ function SPFxFrameworkQuestion() {
647
689
  return {
648
690
  type: "singleSelect",
649
691
  name: questionNames_1.QuestionNames.SPFxFramework,
692
+ cliShortName: "k",
693
+ cliDescription: "Framework.",
650
694
  title: localizeUtils_1.getLocalizedString("plugins.spfx.questions.framework.title"),
651
695
  staticOptions: [
652
696
  { id: "react", label: "React" },
@@ -661,7 +705,9 @@ function SPFxWebpartNameQuestion() {
661
705
  return {
662
706
  type: "text",
663
707
  name: questionNames_1.QuestionNames.SPFxWebpartName,
664
- title: "Web Part Name",
708
+ cliShortName: "w",
709
+ cliDescription: "Name for SharePoint Framework Web Part.",
710
+ title: localizeUtils_1.getLocalizedString("plugins.spfx.questions.webpartName"),
665
711
  default: constants_2.Constants.DEFAULT_WEBPART_NAME,
666
712
  validation: {
667
713
  validFunc: async (input, previousInputs) => {
@@ -692,65 +738,12 @@ var SPFxVersionOptionIds;
692
738
  SPFxVersionOptionIds["installLocally"] = "true";
693
739
  SPFxVersionOptionIds["globalPackage"] = "false";
694
740
  })(SPFxVersionOptionIds = exports.SPFxVersionOptionIds || (exports.SPFxVersionOptionIds = {}));
695
- class PackageSelectOptionsHelper {
696
- static async loadOptions() {
697
- const versions = await Promise.all([
698
- utils_3.Utils.findGloballyInstalledVersion(undefined, constants_2.Constants.GeneratorPackageName, 0, false),
699
- utils_3.Utils.findLatestVersion(undefined, constants_2.Constants.GeneratorPackageName, 5),
700
- utils_3.Utils.findGloballyInstalledVersion(undefined, constants_2.Constants.YeomanPackageName, 0, false),
701
- ]);
702
- PackageSelectOptionsHelper.globalPackageVersions[0] = versions[0];
703
- PackageSelectOptionsHelper.globalPackageVersions[1] = versions[2];
704
- PackageSelectOptionsHelper.latestSpGeneratorVersion = versions[1];
705
- PackageSelectOptionsHelper.options = [
706
- {
707
- id: SPFxVersionOptionIds.installLocally,
708
- label: versions[1] !== undefined
709
- ? localizeUtils_1.getLocalizedString("plugins.spfx.questions.packageSelect.installLocally.withVersion.label", "v" + versions[1])
710
- : localizeUtils_1.getLocalizedString("plugins.spfx.questions.packageSelect.installLocally.noVersion.label"),
711
- },
712
- {
713
- id: SPFxVersionOptionIds.globalPackage,
714
- label: versions[0] !== undefined
715
- ? localizeUtils_1.getLocalizedString("plugins.spfx.questions.packageSelect.useGlobalPackage.withVersion.label", "v" + versions[0])
716
- : localizeUtils_1.getLocalizedString("plugins.spfx.questions.packageSelect.useGlobalPackage.noVersion.label"),
717
- description: localizeUtils_1.getLocalizedString("plugins.spfx.questions.packageSelect.useGlobalPackage.detail", constants_2.Constants.RecommendedLowestSpfxVersion),
718
- },
719
- ];
720
- }
721
- static getOptions() {
722
- return PackageSelectOptionsHelper.options;
723
- }
724
- static clear() {
725
- PackageSelectOptionsHelper.options = [];
726
- PackageSelectOptionsHelper.globalPackageVersions = [undefined, undefined];
727
- PackageSelectOptionsHelper.latestSpGeneratorVersion = undefined;
728
- }
729
- static checkGlobalPackages() {
730
- return (!!PackageSelectOptionsHelper.globalPackageVersions[0] &&
731
- !!PackageSelectOptionsHelper.globalPackageVersions[1]);
732
- }
733
- static getLatestSpGeneratorVersion() {
734
- return PackageSelectOptionsHelper.latestSpGeneratorVersion;
735
- }
736
- static isLowerThanRecommendedVersion() {
737
- const installedVersion = PackageSelectOptionsHelper.globalPackageVersions[0];
738
- if (!installedVersion) {
739
- return undefined;
740
- }
741
- const recommendedLowestVersion = constants_2.Constants.RecommendedLowestSpfxVersion.substring(1); // remove "v"
742
- return semver_1.default.lte(installedVersion, recommendedLowestVersion);
743
- }
744
- }
745
- exports.PackageSelectOptionsHelper = PackageSelectOptionsHelper;
746
- PackageSelectOptionsHelper.options = [];
747
- PackageSelectOptionsHelper.globalPackageVersions = [undefined, undefined];
748
- PackageSelectOptionsHelper.latestSpGeneratorVersion = undefined;
749
741
  function SPFxImportFolderQuestion(hasDefaultFunc = false) {
750
742
  return {
751
743
  type: "folder",
752
744
  name: questionNames_1.QuestionNames.SPFxFolder,
753
745
  title: localizeUtils_1.getLocalizedString("core.spfxFolder.title"),
746
+ cliDescription: "Directory or Path that contains the existing SharePoint Framework solution.",
754
747
  placeholder: localizeUtils_1.getLocalizedString("core.spfxFolder.placeholder"),
755
748
  default: hasDefaultFunc
756
749
  ? (inputs) => {
@@ -766,7 +759,7 @@ const getTemplate = (inputs) => {
766
759
  const capabilities = inputs[questionNames_1.QuestionNames.Capabilities];
767
760
  const templates = officeAddinJsonData.getProjectTemplateNames();
768
761
  const foundTemplate = templates.find((template) => {
769
- return capabilities.includes(template);
762
+ return capabilities && capabilities.includes(template);
770
763
  });
771
764
  return foundTemplate !== null && foundTemplate !== void 0 ? foundTemplate : "";
772
765
  };
@@ -777,7 +770,7 @@ function officeAddinHostingQuestion() {
777
770
  name: questionNames_1.QuestionNames.OfficeAddinHost,
778
771
  title: "Add-in Host",
779
772
  staticOptions: [],
780
- dynamicOptions: async (inputs) => {
773
+ dynamicOptions: (inputs) => {
781
774
  const template = exports.getTemplate(inputs);
782
775
  const getHostTemplateNames = officeAddinJsonData.getHostTemplateNames(template);
783
776
  const options = getHostTemplateNames.map((host) => ({
@@ -786,7 +779,7 @@ function officeAddinHostingQuestion() {
786
779
  }));
787
780
  return options.length > 0 ? options : [{ label: "No Options", id: "No Options" }];
788
781
  },
789
- default: async (inputs) => {
782
+ default: (inputs) => {
790
783
  const template = exports.getTemplate(inputs);
791
784
  const options = officeAddinJsonData.getHostTemplateNames(template);
792
785
  return options[0] || "No Options";
@@ -795,6 +788,7 @@ function officeAddinHostingQuestion() {
795
788
  };
796
789
  return OfficeHostQuestion;
797
790
  }
791
+ exports.officeAddinHostingQuestion = officeAddinHostingQuestion;
798
792
  const officeAddinJsonData = new projectsJsonData_1.default();
799
793
  function getLanguageOptions(inputs) {
800
794
  const runtime = getRuntime(inputs);
@@ -831,7 +825,8 @@ var ProgrammingLanguage;
831
825
  function programmingLanguageQuestion() {
832
826
  const programmingLanguageQuestion = {
833
827
  name: questionNames_1.QuestionNames.ProgrammingLanguage,
834
- title: "Programming Language",
828
+ cliShortName: "l",
829
+ title: "Programming Language.",
835
830
  type: "singleSelect",
836
831
  staticOptions: [
837
832
  { id: ProgrammingLanguage.JS, label: "JavaScript" },
@@ -868,21 +863,30 @@ function programmingLanguageQuestion() {
868
863
  return programmingLanguageQuestion;
869
864
  }
870
865
  exports.programmingLanguageQuestion = programmingLanguageQuestion;
871
- function rootFolderQuestion() {
866
+ function folderQuestion() {
872
867
  return {
873
868
  type: "folder",
874
869
  name: questionNames_1.QuestionNames.Folder,
875
- title: localizeUtils_1.getLocalizedString("core.question.workspaceFolder.title"),
870
+ cliShortName: "f",
871
+ title: (inputs) => teamsfx_api_1.CLIPlatforms.includes(inputs.platform)
872
+ ? "Directory where the project folder will be created in"
873
+ : localizeUtils_1.getLocalizedString("core.question.workspaceFolder.title"),
874
+ cliDescription: "Directory where the project folder will be created in.",
876
875
  placeholder: localizeUtils_1.getLocalizedString("core.question.workspaceFolder.placeholder"),
877
- default: path.join(os.homedir(), constants_1.ConstantString.RootFolder),
876
+ default: (inputs) => teamsfx_api_1.CLIPlatforms.includes(inputs.platform)
877
+ ? "./"
878
+ : path.join(os.homedir(), constants_1.ConstantString.RootFolder),
878
879
  };
879
880
  }
881
+ exports.folderQuestion = folderQuestion;
880
882
  exports.AppNamePattern = '^(?=(.*[\\da-zA-Z]){2})[a-zA-Z][^"<>:\\?/*&|\u0000-\u001F]*[^"\\s.<>:\\?/*&|\u0000-\u001F]$';
881
883
  function appNameQuestion() {
882
884
  const question = {
883
885
  type: "text",
884
886
  name: questionNames_1.QuestionNames.AppName,
887
+ cliShortName: "n",
885
888
  title: "Application name",
889
+ required: true,
886
890
  default: async (inputs) => {
887
891
  var _a, _b;
888
892
  let defaultName = undefined;
@@ -892,6 +896,9 @@ function appNameQuestion() {
892
896
  else if (inputs[questionNames_1.QuestionNames.SPFxSolution] == "import") {
893
897
  defaultName = await spfxGenerator_1.SPFxGenerator.getSolutionName(inputs[questionNames_1.QuestionNames.SPFxFolder]);
894
898
  }
899
+ else if (inputs.openAIPluginManifest) {
900
+ defaultName = inputs.openAIPluginManifest.name_for_human;
901
+ }
895
902
  return defaultName;
896
903
  },
897
904
  validation: {
@@ -931,6 +938,11 @@ function sampleSelectQuestion() {
931
938
  return {
932
939
  type: "singleSelect",
933
940
  name: questionNames_1.QuestionNames.Samples,
941
+ cliName: "sample-name",
942
+ cliDescription: "Specifies the Microsoft Teams App sample name.",
943
+ cliChoiceListCommand: "teamsfx list samples",
944
+ skipValidation: true,
945
+ cliType: "argument",
934
946
  title: localizeUtils_1.getLocalizedString("core.SampleSelect.title"),
935
947
  staticOptions: samples_1.sampleProvider.SampleCollection.samples.map((sample) => {
936
948
  return {
@@ -940,6 +952,17 @@ function sampleSelectQuestion() {
940
952
  detail: sample.shortDescription,
941
953
  };
942
954
  }),
955
+ dynamicOptions: async () => {
956
+ await samples_1.sampleProvider.fetchSampleConfig();
957
+ return samples_1.sampleProvider.SampleCollection.samples.map((sample) => {
958
+ return {
959
+ id: sample.id,
960
+ label: sample.title,
961
+ description: `${sample.time} • ${sample.configuration}`,
962
+ detail: sample.shortDescription,
963
+ };
964
+ });
965
+ },
943
966
  placeholder: localizeUtils_1.getLocalizedString("core.SampleSelect.placeholder"),
944
967
  buttons: [
945
968
  {
@@ -975,6 +998,7 @@ function runtimeQuestion() {
975
998
  staticOptions: [RuntimeOptions.NodeJS(), RuntimeOptions.DotNet()],
976
999
  default: RuntimeOptions.NodeJS().id,
977
1000
  placeholder: localizeUtils_1.getLocalizedString("core.getRuntimeQuestion.placeholder"),
1001
+ cliHidden: true,
978
1002
  };
979
1003
  }
980
1004
  const defaultTabLocalHostUrl = "https://localhost:53000/index.html#/tab";
@@ -1066,6 +1090,8 @@ function getBotIdAndMeId(appDefinition) {
1066
1090
  }
1067
1091
  function getBotOptions(inputs) {
1068
1092
  const appDefinition = inputs.teamsAppFromTdp;
1093
+ if (!appDefinition)
1094
+ return [];
1069
1095
  const [botId, messageExtensionId] = getBotIdAndMeId(appDefinition);
1070
1096
  const options = [];
1071
1097
  if (botId) {
@@ -1077,14 +1103,14 @@ function getBotOptions(inputs) {
1077
1103
  return options;
1078
1104
  }
1079
1105
  function selectBotIdsQuestion() {
1080
- const statcOptions = [];
1081
- statcOptions.push(botOptionItem(false, "000000-0000-0000"));
1082
- statcOptions.push(botOptionItem(true, "000000-0000-0000"));
1106
+ // const statcOptions: OptionItem[] = [];
1107
+ // statcOptions.push(botOptionItem(false, "000000-0000-0000"));
1108
+ // statcOptions.push(botOptionItem(true, "000000-0000-0000"));
1083
1109
  return {
1084
1110
  type: "multiSelect",
1085
1111
  name: questionNames_1.QuestionNames.ReplaceBotIds,
1086
1112
  title: localizeUtils_1.getLocalizedString("core.updateBotIdsQuestion.title"),
1087
- staticOptions: statcOptions,
1113
+ staticOptions: [],
1088
1114
  dynamicOptions: getBotOptions,
1089
1115
  default: (inputs) => {
1090
1116
  const options = getBotOptions(inputs);
@@ -1094,21 +1120,58 @@ function selectBotIdsQuestion() {
1094
1120
  forgetLastValue: true,
1095
1121
  };
1096
1122
  }
1097
- function apiSpecLocationQuestion() {
1123
+ const maximumLengthOfDetailsErrorMessageInInputBox = 90;
1124
+ function apiSpecLocationQuestion(includeExistingAPIs = true) {
1125
+ const validationOnAccept = async (input, inputs) => {
1126
+ try {
1127
+ const context = utils_4.createContextV3();
1128
+ const res = await helper_1.listOperations(context, undefined, input, inputs[questionNames_1.QuestionNames.ManifestPath], includeExistingAPIs, false);
1129
+ if (res.isOk()) {
1130
+ inputs.supportedApisFromApiSpec = res.value;
1131
+ }
1132
+ else {
1133
+ const errors = res.error;
1134
+ if ((inputs === null || inputs === void 0 ? void 0 : inputs.platform) === teamsfx_api_1.Platform.CLI) {
1135
+ return errors.map((e) => e.content).join("\n");
1136
+ }
1137
+ if (errors.length === 1 &&
1138
+ errors[0].content.length <= maximumLengthOfDetailsErrorMessageInInputBox) {
1139
+ return errors[0].content;
1140
+ }
1141
+ else {
1142
+ return inputs.platform === teamsfx_api_1.Platform.VSCode
1143
+ ? localizeUtils_1.getLocalizedString("core.createProjectQuestion.apiSpec.multipleValidationErrors.vscode.message")
1144
+ : localizeUtils_1.getLocalizedString("core.createProjectQuestion.apiSpec.multipleValidationErrors.message");
1145
+ }
1146
+ }
1147
+ }
1148
+ catch (e) {
1149
+ const error = error_2.assembleError(e);
1150
+ throw error;
1151
+ }
1152
+ };
1098
1153
  return {
1099
1154
  type: "singleFileOrText",
1100
1155
  name: questionNames_1.QuestionNames.ApiSpecLocation,
1156
+ cliShortName: "a",
1157
+ cliDescription: "OpenAPI specification file location.",
1101
1158
  title: localizeUtils_1.getLocalizedString("core.createProjectQuestion.apiSpec.title"),
1102
1159
  forgetLastValue: true,
1103
1160
  inputBoxConfig: {
1161
+ type: "innerText",
1104
1162
  title: localizeUtils_1.getLocalizedString("core.createProjectQuestion.apiSpec.title"),
1105
1163
  placeholder: localizeUtils_1.getLocalizedString("core.createProjectQuestion.apiSpec.placeholder"),
1106
1164
  name: "input-api-spec-url",
1107
1165
  step: 2,
1108
- validation: async (input) => {
1109
- return util_1.isValidHttpUrl(input)
1110
- ? undefined
1111
- : localizeUtils_1.getLocalizedString("core.createProjectQuestion.invalidUrl.message");
1166
+ validation: {
1167
+ validFunc: (input, inputs) => {
1168
+ const result = util_1.isValidHttpUrl(input)
1169
+ ? undefined
1170
+ : (inputs === null || inputs === void 0 ? void 0 : inputs.platform) === teamsfx_api_1.Platform.CLI
1171
+ ? "Please enter a valid URL or local path of your API Specification"
1172
+ : localizeUtils_1.getLocalizedString("core.createProjectQuestion.invalidUrl.message");
1173
+ return Promise.resolve(result);
1174
+ },
1112
1175
  },
1113
1176
  },
1114
1177
  inputOptionItem: {
@@ -1118,224 +1181,272 @@ function apiSpecLocationQuestion() {
1118
1181
  filters: {
1119
1182
  files: ["json", "yml", "yaml"],
1120
1183
  },
1184
+ validation: {
1185
+ validFunc: async (input, inputs) => {
1186
+ if (!util_1.isValidHttpUrl(input) && !(await fs_extra_1.default.pathExists(input))) {
1187
+ return "Please enter a valid URL or local path of your API Specification";
1188
+ }
1189
+ return await validationOnAccept(input, inputs);
1190
+ },
1191
+ },
1121
1192
  };
1122
1193
  }
1123
1194
  exports.apiSpecLocationQuestion = apiSpecLocationQuestion;
1124
1195
  function openAIPluginManifestLocationQuestion() {
1196
+ // export for unit test
1125
1197
  return {
1126
1198
  type: "text",
1127
- name: questionNames_1.QuestionNames.OpenAIPluginManifestLocation,
1199
+ name: questionNames_1.QuestionNames.OpenAIPluginDomain,
1200
+ cliShortName: "d",
1128
1201
  title: localizeUtils_1.getLocalizedString("core.createProjectQuestion.AIPluginManifest.title"),
1129
1202
  placeholder: localizeUtils_1.getLocalizedString("core.createProjectQuestion.AIPluginManifest.placeholder"),
1203
+ cliDescription: "OpenAI plugin website domain.",
1130
1204
  forgetLastValue: true,
1131
1205
  validation: {
1132
- validFunc: async (input) => {
1133
- return util_1.isValidHttpUrl(input)
1206
+ validFunc: (input) => {
1207
+ const pattern = /(https?:\/\/)?([a-z0-9-]+(\.[a-z0-9-]+)*)(:[0-9]{1,5})?(\/)?$/i;
1208
+ const match = pattern.test(input);
1209
+ const result = match
1134
1210
  ? undefined
1135
- : localizeUtils_1.getLocalizedString("core.createProjectQuestion.invalidUrl.message");
1211
+ : localizeUtils_1.getLocalizedString("core.createProjectQuestion.invalidDomain.message");
1212
+ return Promise.resolve(result);
1213
+ },
1214
+ },
1215
+ additionalValidationOnAccept: {
1216
+ validFunc: async (input, inputs) => {
1217
+ let manifest;
1218
+ try {
1219
+ manifest = await helper_1.OpenAIPluginManifestHelper.loadOpenAIPluginManifest(input);
1220
+ inputs.openAIPluginManifest = manifest;
1221
+ }
1222
+ catch (e) {
1223
+ const error = error_2.assembleError(e);
1224
+ return error.message;
1225
+ }
1226
+ const context = utils_4.createContextV3();
1227
+ try {
1228
+ const res = await helper_1.listOperations(context, manifest, inputs[questionNames_1.QuestionNames.ApiSpecLocation], undefined, true, true);
1229
+ if (res.isOk()) {
1230
+ inputs.supportedApisFromApiSpec = res.value;
1231
+ }
1232
+ else {
1233
+ const errors = res.error;
1234
+ if ((inputs === null || inputs === void 0 ? void 0 : inputs.platform) === teamsfx_api_1.Platform.CLI) {
1235
+ return errors.map((e) => e.content).join("\n");
1236
+ }
1237
+ if (errors.length === 1 &&
1238
+ errors[0].content.length <= maximumLengthOfDetailsErrorMessageInInputBox) {
1239
+ return errors[0].content;
1240
+ }
1241
+ else {
1242
+ return inputs.platform === teamsfx_api_1.Platform.VSCode
1243
+ ? localizeUtils_1.getLocalizedString("core.createProjectQuestion.openAiPluginManifest.multipleValidationErrors.vscode.message")
1244
+ : localizeUtils_1.getLocalizedString("core.createProjectQuestion.openAiPluginManifest.multipleValidationErrors.message");
1245
+ }
1246
+ }
1247
+ }
1248
+ catch (e) {
1249
+ const error = error_2.assembleError(e);
1250
+ throw error;
1251
+ }
1136
1252
  },
1137
1253
  },
1138
1254
  };
1139
1255
  }
1140
- function apiOperationQuestion() {
1256
+ exports.openAIPluginManifestLocationQuestion = openAIPluginManifestLocationQuestion;
1257
+ function apiOperationQuestion(includeExistingAPIs = true) {
1141
1258
  // export for unit test
1142
1259
  return {
1143
1260
  type: "multiSelect",
1144
1261
  name: questionNames_1.QuestionNames.ApiOperation,
1145
1262
  title: localizeUtils_1.getLocalizedString("core.createProjectQuestion.apiSpec.operation.title"),
1146
- placeholder: localizeUtils_1.getLocalizedString("core.createProjectQuestion.apiSpec.operation.placeholder"),
1263
+ cliDescription: "Specifies API(s) to be used in Copilot plugin.",
1264
+ cliShortName: "o",
1265
+ placeholder: includeExistingAPIs
1266
+ ? localizeUtils_1.getLocalizedString("core.createProjectQuestion.apiSpec.operation.placeholder")
1267
+ : localizeUtils_1.getLocalizedString("core.createProjectQuestion.apiSpec.operation.placeholder.skipExisting"),
1147
1268
  forgetLastValue: true,
1148
1269
  staticOptions: [],
1149
1270
  validation: {
1150
1271
  minItems: 1,
1272
+ maxItems: 10,
1151
1273
  },
1152
- dynamicOptions: async (inputs) => {
1153
- let manifest;
1154
- if (inputs[questionNames_1.QuestionNames.OpenAIPluginManifestLocation]) {
1155
- manifest = await helper_1.OpenAIManifestHelper.loadOpenAIPluginManifest(inputs[questionNames_1.QuestionNames.OpenAIPluginManifestLocation]);
1156
- inputs.openAIPluginManifest = manifest;
1157
- }
1158
- const context = utils_4.createContextV3();
1159
- try {
1160
- const res = await helper_1.listOperations(context, manifest, inputs[questionNames_1.QuestionNames.ApiSpecLocation]);
1161
- if (res.isOk()) {
1162
- return res.value.map((operation) => {
1163
- return { id: operation, label: operation };
1164
- });
1165
- }
1166
- else {
1167
- throw new error_2.EmptyOptionError(); // TODO: handle errors based on error results
1168
- }
1169
- }
1170
- catch (e) {
1171
- const error = error_2.assembleError(e);
1172
- throw error;
1274
+ dynamicOptions: (inputs) => {
1275
+ if (!inputs.supportedApisFromApiSpec) {
1276
+ throw new error_2.EmptyOptionError(questionNames_1.QuestionNames.ApiOperation, "question");
1173
1277
  }
1278
+ const operations = inputs.supportedApisFromApiSpec;
1279
+ return operations;
1174
1280
  },
1175
1281
  };
1176
1282
  }
1177
1283
  exports.apiOperationQuestion = apiOperationQuestion;
1178
- function createProjectQuestionNode() {
1179
- const createProjectQuestion = {
1180
- data: scratchOrSampleQuestion(),
1284
+ function capabilitySubTree() {
1285
+ const node = {
1286
+ data: capabilityQuestion(),
1181
1287
  children: [
1182
1288
  {
1183
- condition: { equals: ScratchOptions.yes().id },
1184
- data: { type: "group", name: questionNames_1.QuestionNames.SctatchYes },
1289
+ // Notification bot trigger sub-tree
1290
+ condition: { equals: CapabilityOptions.notificationBot().id },
1291
+ data: botTriggerQuestion(),
1292
+ },
1293
+ {
1294
+ // SPFx sub-tree
1295
+ condition: { equals: CapabilityOptions.SPFxTab().id },
1296
+ data: SPFxSolutionQuestion(),
1185
1297
  children: [
1186
1298
  {
1187
- condition: (inputs) => featureFlags_1.isCLIDotNetEnabled() && teamsfx_api_1.CLIPlatforms.includes(inputs.platform),
1188
- data: runtimeQuestion(),
1299
+ data: { type: "group" },
1300
+ children: [
1301
+ { data: SPFxPackageSelectQuestion() },
1302
+ { data: SPFxFrameworkQuestion() },
1303
+ { data: SPFxWebpartNameQuestion() },
1304
+ ],
1305
+ condition: { equals: "new" },
1189
1306
  },
1190
1307
  {
1191
- condition: (inputs) => inputs.platform === teamsfx_api_1.Platform.VSCode,
1192
- data: projectTypeQuestion(),
1308
+ data: SPFxImportFolderQuestion(),
1309
+ condition: { equals: "import" },
1193
1310
  },
1311
+ ],
1312
+ },
1313
+ {
1314
+ // office addin import sub-tree
1315
+ condition: { equals: CapabilityOptions.officeAddinImport().id },
1316
+ data: { type: "group", name: questionNames_1.QuestionNames.OfficeAddinImport },
1317
+ children: [
1194
1318
  {
1195
- data: capabilityQuestion(),
1196
- children: [
1197
- {
1198
- // Notification bot trigger sub-tree
1199
- condition: { equals: CapabilityOptions.notificationBot().id },
1200
- data: botTriggerQuestion(),
1201
- },
1202
- {
1203
- // SPFx sub-tree
1204
- condition: { equals: CapabilityOptions.SPFxTab().id },
1205
- data: SPFxSolutionQuestion(),
1206
- children: [
1207
- {
1208
- data: { type: "group" },
1209
- children: [
1210
- { data: SPFxPackageSelectQuestion() },
1211
- { data: SPFxFrameworkQuestion() },
1212
- { data: SPFxWebpartNameQuestion() },
1213
- ],
1214
- condition: { equals: "new" },
1215
- },
1216
- {
1217
- data: SPFxImportFolderQuestion(),
1218
- condition: { equals: "import" },
1219
- },
1220
- ],
1221
- },
1222
- {
1223
- // office addin import sub-tree
1224
- condition: { equals: CapabilityOptions.officeAddinImport().id },
1225
- data: { type: "group", name: questionNames_1.QuestionNames.OfficeAddinImport },
1226
- children: [
1227
- {
1228
- data: {
1229
- type: "folder",
1230
- name: questionNames_1.QuestionNames.OfficeAddinFolder,
1231
- title: "Existing add-in project folder",
1232
- },
1233
- },
1234
- {
1235
- data: {
1236
- type: "singleFile",
1237
- name: questionNames_1.QuestionNames.OfficeAddinManifest,
1238
- title: "Select import project manifest file",
1239
- },
1240
- },
1241
- ],
1242
- },
1243
- {
1244
- // office addin other items sub-tree
1245
- condition: {
1246
- enum: CapabilityOptions.officeAddinItems().map((i) => i.id),
1247
- },
1248
- data: officeAddinHostingQuestion(),
1249
- },
1250
- {
1251
- // Copilot plugin from API spec or AI Plugin
1252
- condition: {
1253
- enum: [
1254
- CapabilityOptions.copilotPluginApiSpec().id,
1255
- CapabilityOptions.copilotPluginOpenAIPlugin().id,
1256
- ],
1257
- },
1258
- data: { type: "group", name: questionNames_1.QuestionNames.CopilotPluginExistingApi },
1259
- children: [
1260
- {
1261
- condition: { equals: CapabilityOptions.copilotPluginApiSpec().id },
1262
- data: apiSpecLocationQuestion(),
1263
- },
1264
- {
1265
- condition: { equals: CapabilityOptions.copilotPluginOpenAIPlugin().id },
1266
- data: openAIPluginManifestLocationQuestion(),
1267
- },
1268
- {
1269
- data: apiOperationQuestion(),
1270
- },
1271
- ],
1272
- },
1273
- {
1274
- // programming language
1275
- data: programmingLanguageQuestion(),
1276
- condition: {
1277
- excludesEnum: [
1278
- CapabilityOptions.copilotPluginApiSpec().id,
1279
- CapabilityOptions.copilotPluginOpenAIPlugin().id,
1280
- ],
1281
- },
1282
- },
1283
- {
1284
- // root folder
1285
- data: rootFolderQuestion(),
1286
- },
1287
- {
1288
- // app name
1289
- data: appNameQuestion(),
1290
- },
1291
- ],
1319
+ data: {
1320
+ type: "folder",
1321
+ name: questionNames_1.QuestionNames.OfficeAddinFolder,
1322
+ title: "Existing add-in project folder",
1323
+ },
1292
1324
  },
1293
1325
  {
1294
- condition: (inputs) => inputs.teamsAppFromTdp && utils_2.isPersonalApp(inputs.teamsAppFromTdp),
1295
- data: { type: "group", name: questionNames_1.QuestionNames.RepalceTabUrl },
1296
- children: [
1297
- {
1298
- condition: (inputs) => {
1299
- var _a;
1300
- return (((_a = inputs.teamsAppFromTdp) === null || _a === void 0 ? void 0 : _a.staticTabs.filter((o) => !!o.websiteUrl)) || [])
1301
- .length > 0;
1302
- },
1303
- data: selectTabWebsiteUrlQuestion(),
1304
- },
1305
- {
1306
- condition: (inputs) => {
1307
- var _a;
1308
- return (((_a = inputs.teamsAppFromTdp) === null || _a === void 0 ? void 0 : _a.staticTabs.filter((o) => !!o.contentUrl)) || [])
1309
- .length > 0;
1310
- },
1311
- data: selectTabsContentUrlQuestion(),
1312
- },
1313
- ],
1326
+ data: {
1327
+ type: "singleFile",
1328
+ name: questionNames_1.QuestionNames.OfficeAddinManifest,
1329
+ title: "Select import project manifest file",
1330
+ },
1314
1331
  },
1332
+ ],
1333
+ },
1334
+ {
1335
+ // office addin other items sub-tree
1336
+ condition: {
1337
+ enum: CapabilityOptions.officeAddinItems().map((i) => i.id),
1338
+ },
1339
+ data: officeAddinHostingQuestion(),
1340
+ },
1341
+ {
1342
+ // Copilot plugin from API spec or AI Plugin
1343
+ condition: {
1344
+ enum: [
1345
+ CapabilityOptions.copilotPluginApiSpec().id,
1346
+ CapabilityOptions.copilotPluginOpenAIPlugin().id,
1347
+ ],
1348
+ },
1349
+ data: { type: "group", name: questionNames_1.QuestionNames.CopilotPluginExistingApi },
1350
+ children: [
1315
1351
  {
1316
- condition: (inputs) => {
1317
- const appDef = inputs.teamsAppFromTdp;
1318
- return appDef && utils_2.needBotCode(appDef);
1319
- },
1320
- data: selectBotIdsQuestion(),
1352
+ condition: { equals: CapabilityOptions.copilotPluginApiSpec().id },
1353
+ data: apiSpecLocationQuestion(),
1354
+ },
1355
+ {
1356
+ condition: { equals: CapabilityOptions.copilotPluginOpenAIPlugin().id },
1357
+ data: openAIPluginManifestLocationQuestion(),
1358
+ },
1359
+ {
1360
+ data: apiOperationQuestion(),
1321
1361
  },
1322
1362
  ],
1323
1363
  },
1324
1364
  {
1325
- condition: { equals: ScratchOptions.no().id },
1326
- data: sampleSelectQuestion(),
1365
+ // programming language
1366
+ data: programmingLanguageQuestion(),
1367
+ condition: {
1368
+ excludesEnum: [
1369
+ CapabilityOptions.copilotPluginApiSpec().id,
1370
+ CapabilityOptions.copilotPluginOpenAIPlugin().id,
1371
+ ],
1372
+ },
1373
+ },
1374
+ {
1375
+ // root folder
1376
+ data: folderQuestion(),
1377
+ },
1378
+ {
1379
+ // app name
1380
+ data: appNameQuestion(),
1381
+ },
1382
+ ],
1383
+ };
1384
+ return node;
1385
+ }
1386
+ exports.capabilitySubTree = capabilitySubTree;
1387
+ function createProjectQuestionNode() {
1388
+ const createProjectQuestion = {
1389
+ data: { type: "group" },
1390
+ children: [
1391
+ {
1392
+ condition: (inputs) => featureFlags_1.isCLIDotNetEnabled() && teamsfx_api_1.CLIPlatforms.includes(inputs.platform),
1393
+ data: runtimeQuestion(),
1394
+ },
1395
+ {
1396
+ condition: (inputs) => inputs.platform === teamsfx_api_1.Platform.VSCode || inputs.platform === teamsfx_api_1.Platform.CLI,
1397
+ data: projectTypeQuestion(),
1398
+ cliOptionDisabled: "self",
1399
+ },
1400
+ capabilitySubTree(),
1401
+ {
1402
+ condition: (inputs) => inputs.teamsAppFromTdp && utils_2.isPersonalApp(inputs.teamsAppFromTdp),
1403
+ data: { type: "group", name: questionNames_1.QuestionNames.RepalceTabUrl },
1404
+ cliOptionDisabled: "all",
1405
+ inputsDisabled: "all",
1327
1406
  children: [
1328
1407
  {
1329
- // root folder
1330
- data: rootFolderQuestion(),
1408
+ condition: (inputs) => {
1409
+ var _a;
1410
+ return (((_a = inputs.teamsAppFromTdp) === null || _a === void 0 ? void 0 : _a.staticTabs.filter((o) => !!o.websiteUrl)) || []).length >
1411
+ 0;
1412
+ },
1413
+ data: selectTabWebsiteUrlQuestion(),
1414
+ },
1415
+ {
1416
+ condition: (inputs) => {
1417
+ var _a;
1418
+ return (((_a = inputs.teamsAppFromTdp) === null || _a === void 0 ? void 0 : _a.staticTabs.filter((o) => !!o.contentUrl)) || []).length >
1419
+ 0;
1420
+ },
1421
+ data: selectTabsContentUrlQuestion(),
1331
1422
  },
1332
1423
  ],
1333
1424
  },
1425
+ {
1426
+ condition: (inputs) => {
1427
+ const appDef = inputs.teamsAppFromTdp;
1428
+ return appDef && utils_2.needBotCode(appDef);
1429
+ },
1430
+ data: selectBotIdsQuestion(),
1431
+ cliOptionDisabled: "all",
1432
+ inputsDisabled: "all",
1433
+ },
1334
1434
  ],
1335
1435
  };
1336
1436
  return createProjectQuestion;
1337
1437
  }
1338
1438
  exports.createProjectQuestionNode = createProjectQuestionNode;
1439
+ function createSampleProjectQuestionNode() {
1440
+ return {
1441
+ data: sampleSelectQuestion(),
1442
+ children: [
1443
+ {
1444
+ data: folderQuestion(),
1445
+ },
1446
+ ],
1447
+ };
1448
+ }
1449
+ exports.createSampleProjectQuestionNode = createSampleProjectQuestionNode;
1339
1450
  function createProjectCliHelpNode() {
1340
1451
  const node = lodash_1.cloneDeep(createProjectQuestionNode());
1341
1452
  const deleteNames = [
@@ -1353,8 +1464,7 @@ function createProjectCliHelpNode() {
1353
1464
  deleteNames.push(questionNames_1.QuestionNames.CopilotPluginExistingApi);
1354
1465
  }
1355
1466
  trimQuestionTreeForCliHelp(node, deleteNames);
1356
- const subTree = pickSubTree(node, questionNames_1.QuestionNames.SctatchYes);
1357
- return subTree;
1467
+ return node;
1358
1468
  }
1359
1469
  exports.createProjectCliHelpNode = createProjectCliHelpNode;
1360
1470
  function trimQuestionTreeForCliHelp(node, deleteNames) {