@microsoft/teamsfx-core 2.0.4-alpha.ef9e92acd.0 → 2.0.4-alpha.f2e5373f1.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 (498) hide show
  1. package/build/common/deps-checker/checkerFactory.d.ts +1 -2
  2. package/build/common/deps-checker/checkerFactory.d.ts.map +1 -1
  3. package/build/common/deps-checker/checkerFactory.js +2 -2
  4. package/build/common/deps-checker/checkerFactory.js.map +1 -1
  5. package/build/common/deps-checker/depsLogger.d.ts +14 -14
  6. package/build/common/deps-checker/depsLogger.d.ts.map +1 -1
  7. package/build/common/deps-checker/depsLogger.js +7 -21
  8. package/build/common/deps-checker/depsLogger.js.map +1 -1
  9. package/build/common/deps-checker/internal/dotnetChecker.d.ts.map +1 -1
  10. package/build/common/deps-checker/internal/dotnetChecker.js +40 -35
  11. package/build/common/deps-checker/internal/dotnetChecker.js.map +1 -1
  12. package/build/common/deps-checker/internal/nodeChecker.js +3 -3
  13. package/build/common/deps-checker/internal/nodeChecker.js.map +1 -1
  14. package/build/common/deps-checker/util/cpUtils.d.ts +1 -1
  15. package/build/common/deps-checker/util/cpUtils.d.ts.map +1 -1
  16. package/build/common/deps-checker/util/cpUtils.js +4 -4
  17. package/build/common/deps-checker/util/cpUtils.js.map +1 -1
  18. package/build/common/deps-checker/util/progressIndicator.js +2 -2
  19. package/build/common/deps-checker/util/progressIndicator.js.map +1 -1
  20. package/build/common/featureFlags.d.ts +1 -0
  21. package/build/common/featureFlags.d.ts.map +1 -1
  22. package/build/common/featureFlags.js +5 -1
  23. package/build/common/featureFlags.js.map +1 -1
  24. package/build/common/local/localCertificateManager.d.ts.map +1 -1
  25. package/build/common/local/localCertificateManager.js +3 -0
  26. package/build/common/local/localCertificateManager.js.map +1 -1
  27. package/build/common/local/packageJsonHelper.d.ts.map +1 -1
  28. package/build/common/local/packageJsonHelper.js +1 -0
  29. package/build/common/local/packageJsonHelper.js.map +1 -1
  30. package/build/common/local/portChecker.js.map +1 -1
  31. package/build/common/m365/launchHelper.d.ts +2 -2
  32. package/build/common/m365/launchHelper.d.ts.map +1 -1
  33. package/build/common/m365/launchHelper.js +13 -4
  34. package/build/common/m365/launchHelper.js.map +1 -1
  35. package/build/common/m365/packageService.d.ts.map +1 -1
  36. package/build/common/m365/packageService.js +52 -13
  37. package/build/common/m365/packageService.js.map +1 -1
  38. package/build/common/projectSettingsHelper.d.ts.map +1 -1
  39. package/build/common/projectSettingsHelper.js +1 -0
  40. package/build/common/projectSettingsHelper.js.map +1 -1
  41. package/build/common/samples-config-v3.json +22 -1
  42. package/build/common/samples.d.ts.map +1 -1
  43. package/build/common/samples.js.map +1 -1
  44. package/build/common/spec-parser/adaptiveCardGenerator.d.ts.map +1 -1
  45. package/build/common/spec-parser/adaptiveCardGenerator.js +38 -32
  46. package/build/common/spec-parser/adaptiveCardGenerator.js.map +1 -1
  47. package/build/common/spec-parser/constants.d.ts +12 -10
  48. package/build/common/spec-parser/constants.d.ts.map +1 -1
  49. package/build/common/spec-parser/constants.js +14 -10
  50. package/build/common/spec-parser/constants.js.map +1 -1
  51. package/build/common/spec-parser/interfaces.d.ts +17 -5
  52. package/build/common/spec-parser/interfaces.d.ts.map +1 -1
  53. package/build/common/spec-parser/interfaces.js +8 -0
  54. package/build/common/spec-parser/interfaces.js.map +1 -1
  55. package/build/common/spec-parser/manifestUpdater.d.ts.map +1 -1
  56. package/build/common/spec-parser/manifestUpdater.js +25 -21
  57. package/build/common/spec-parser/manifestUpdater.js.map +1 -1
  58. package/build/common/spec-parser/specFilter.d.ts.map +1 -1
  59. package/build/common/spec-parser/specFilter.js +26 -33
  60. package/build/common/spec-parser/specFilter.js.map +1 -1
  61. package/build/common/spec-parser/specParser.d.ts +5 -0
  62. package/build/common/spec-parser/specParser.d.ts.map +1 -1
  63. package/build/common/spec-parser/specParser.js +167 -96
  64. package/build/common/spec-parser/specParser.js.map +1 -1
  65. package/build/common/spec-parser/utils.d.ts +2 -0
  66. package/build/common/spec-parser/utils.d.ts.map +1 -1
  67. package/build/common/spec-parser/utils.js +23 -1
  68. package/build/common/spec-parser/utils.js.map +1 -1
  69. package/build/common/telemetry.d.ts +7 -4
  70. package/build/common/telemetry.d.ts.map +1 -1
  71. package/build/common/telemetry.js +42 -8
  72. package/build/common/telemetry.js.map +1 -1
  73. package/build/component/configManager/interface.d.ts +5 -3
  74. package/build/component/configManager/interface.d.ts.map +1 -1
  75. package/build/component/configManager/interface.js.map +1 -1
  76. package/build/component/configManager/lifecycle.d.ts +1 -3
  77. package/build/component/configManager/lifecycle.d.ts.map +1 -1
  78. package/build/component/configManager/lifecycle.js +20 -49
  79. package/build/component/configManager/lifecycle.js.map +1 -1
  80. package/build/component/configManager/parser.d.ts.map +1 -1
  81. package/build/component/configManager/parser.js +6 -7
  82. package/build/component/configManager/parser.js.map +1 -1
  83. package/build/component/configManager/validator.d.ts.map +1 -1
  84. package/build/component/configManager/validator.js +2 -3
  85. package/build/component/configManager/validator.js.map +1 -1
  86. package/build/component/constants.d.ts +5 -0
  87. package/build/component/constants.d.ts.map +1 -1
  88. package/build/component/constants.js +6 -1
  89. package/build/component/constants.js.map +1 -1
  90. package/build/component/coordinator/index.d.ts +10 -7
  91. package/build/component/coordinator/index.d.ts.map +1 -1
  92. package/build/component/coordinator/index.js +53 -55
  93. package/build/component/coordinator/index.js.map +1 -1
  94. package/build/component/coordinator/summary.d.ts.map +1 -1
  95. package/build/component/coordinator/summary.js +2 -1
  96. package/build/component/coordinator/summary.js.map +1 -1
  97. package/build/component/developerPortalScaffoldUtils.js +3 -3
  98. package/build/component/developerPortalScaffoldUtils.js.map +1 -1
  99. package/build/component/driver/aad/create.d.ts +1 -0
  100. package/build/component/driver/aad/create.d.ts.map +1 -1
  101. package/build/component/driver/aad/create.js +2 -5
  102. package/build/component/driver/aad/create.js.map +1 -1
  103. package/build/component/driver/aad/error/aadManifestError.d.ts +3 -0
  104. package/build/component/driver/aad/error/aadManifestError.d.ts.map +1 -1
  105. package/build/component/driver/aad/error/aadManifestError.js +13 -1
  106. package/build/component/driver/aad/error/aadManifestError.js.map +1 -1
  107. package/build/component/driver/aad/update.d.ts +1 -0
  108. package/build/component/driver/aad/update.d.ts.map +1 -1
  109. package/build/component/driver/aad/update.js +2 -5
  110. package/build/component/driver/aad/update.js.map +1 -1
  111. package/build/component/driver/aad/utility/aadAppClient.d.ts +1 -1
  112. package/build/component/driver/aad/utility/aadAppClient.d.ts.map +1 -1
  113. package/build/component/driver/aad/utility/aadAppClient.js +58 -13
  114. package/build/component/driver/aad/utility/aadAppClient.js.map +1 -1
  115. package/build/component/driver/aad/utility/constants.d.ts +3 -0
  116. package/build/component/driver/aad/utility/constants.d.ts.map +1 -1
  117. package/build/component/driver/aad/utility/constants.js +4 -1
  118. package/build/component/driver/aad/utility/constants.js.map +1 -1
  119. package/build/component/driver/add/addWebPart.js +1 -1
  120. package/build/component/driver/add/addWebPart.js.map +1 -1
  121. package/build/component/driver/arm/deploy.d.ts +1 -3
  122. package/build/component/driver/arm/deploy.d.ts.map +1 -1
  123. package/build/component/driver/arm/deploy.js +1 -14
  124. package/build/component/driver/arm/deploy.js.map +1 -1
  125. package/build/component/driver/arm/deployImpl.d.ts.map +1 -1
  126. package/build/component/driver/arm/deployImpl.js +8 -0
  127. package/build/component/driver/arm/deployImpl.js.map +1 -1
  128. package/build/component/driver/arm/util/bicepChecker.js +7 -6
  129. package/build/component/driver/arm/util/bicepChecker.js.map +1 -1
  130. package/build/component/driver/arm/util/handleError.js.map +1 -1
  131. package/build/component/driver/botAadApp/create.d.ts +1 -0
  132. package/build/component/driver/botAadApp/create.d.ts.map +1 -1
  133. package/build/component/driver/botAadApp/create.js +4 -7
  134. package/build/component/driver/botAadApp/create.js.map +1 -1
  135. package/build/component/driver/botFramework/createOrUpdateBot.d.ts +1 -0
  136. package/build/component/driver/botFramework/createOrUpdateBot.d.ts.map +1 -1
  137. package/build/component/driver/botFramework/createOrUpdateBot.js +6 -12
  138. package/build/component/driver/botFramework/createOrUpdateBot.js.map +1 -1
  139. package/build/component/driver/deploy/azure/azureStorageDeployDriver.d.ts.map +1 -1
  140. package/build/component/driver/deploy/azure/azureStorageDeployDriver.js +12 -5
  141. package/build/component/driver/deploy/azure/azureStorageDeployDriver.js.map +1 -1
  142. package/build/component/driver/deploy/azure/azureStorageStaticWebsiteConfigDriver.d.ts.map +1 -1
  143. package/build/component/driver/deploy/azure/azureStorageStaticWebsiteConfigDriver.js +11 -4
  144. package/build/component/driver/deploy/azure/azureStorageStaticWebsiteConfigDriver.js.map +1 -1
  145. package/build/component/driver/deploy/azure/impl/AzureZipDeployImpl.d.ts.map +1 -1
  146. package/build/component/driver/deploy/azure/impl/AzureZipDeployImpl.js +22 -14
  147. package/build/component/driver/deploy/azure/impl/AzureZipDeployImpl.js.map +1 -1
  148. package/build/component/driver/deploy/azure/impl/azureDeployImpl.d.ts.map +1 -1
  149. package/build/component/driver/deploy/azure/impl/azureDeployImpl.js +8 -8
  150. package/build/component/driver/deploy/azure/impl/azureDeployImpl.js.map +1 -1
  151. package/build/component/driver/deploy/azure/impl/baseDeployImpl.js +4 -4
  152. package/build/component/driver/deploy/azure/impl/baseDeployImpl.js.map +1 -1
  153. package/build/component/driver/deploy/spfx/deployDriver.d.ts +1 -0
  154. package/build/component/driver/deploy/spfx/deployDriver.d.ts.map +1 -1
  155. package/build/component/driver/deploy/spfx/deployDriver.js +9 -3
  156. package/build/component/driver/deploy/spfx/deployDriver.js.map +1 -1
  157. package/build/component/driver/devTool/installDriver.d.ts +1 -0
  158. package/build/component/driver/devTool/installDriver.d.ts.map +1 -1
  159. package/build/component/driver/devTool/installDriver.js +33 -11
  160. package/build/component/driver/devTool/installDriver.js.map +1 -1
  161. package/build/component/driver/file/createOrUpdateEnvironmentFile.d.ts +1 -0
  162. package/build/component/driver/file/createOrUpdateEnvironmentFile.d.ts.map +1 -1
  163. package/build/component/driver/file/createOrUpdateEnvironmentFile.js +12 -18
  164. package/build/component/driver/file/createOrUpdateEnvironmentFile.js.map +1 -1
  165. package/build/component/driver/file/createOrUpdateJsonFile.d.ts +1 -0
  166. package/build/component/driver/file/createOrUpdateJsonFile.d.ts.map +1 -1
  167. package/build/component/driver/file/createOrUpdateJsonFile.js +5 -11
  168. package/build/component/driver/file/createOrUpdateJsonFile.js.map +1 -1
  169. package/build/component/driver/interface/stepDriver.d.ts +2 -7
  170. package/build/component/driver/interface/stepDriver.d.ts.map +1 -1
  171. package/build/component/driver/m365/acquire.d.ts +1 -0
  172. package/build/component/driver/m365/acquire.d.ts.map +1 -1
  173. package/build/component/driver/m365/acquire.js +6 -12
  174. package/build/component/driver/m365/acquire.js.map +1 -1
  175. package/build/component/driver/script/baseBuildDriver.d.ts.map +1 -1
  176. package/build/component/driver/script/baseBuildDriver.js +1 -0
  177. package/build/component/driver/script/baseBuildDriver.js.map +1 -1
  178. package/build/component/driver/script/scriptDriver.d.ts +10 -1
  179. package/build/component/driver/script/scriptDriver.d.ts.map +1 -1
  180. package/build/component/driver/script/scriptDriver.js +31 -30
  181. package/build/component/driver/script/scriptDriver.js.map +1 -1
  182. package/build/component/driver/teamsApp/appStudio.d.ts.map +1 -1
  183. package/build/component/driver/teamsApp/appStudio.js +3 -3
  184. package/build/component/driver/teamsApp/appStudio.js.map +1 -1
  185. package/build/component/driver/teamsApp/clients/appStudioClient.d.ts.map +1 -1
  186. package/build/component/driver/teamsApp/clients/appStudioClient.js +21 -5
  187. package/build/component/driver/teamsApp/clients/appStudioClient.js.map +1 -1
  188. package/build/component/driver/teamsApp/clients/authSvcClient.d.ts.map +1 -1
  189. package/build/component/driver/teamsApp/clients/authSvcClient.js +2 -0
  190. package/build/component/driver/teamsApp/clients/authSvcClient.js.map +1 -1
  191. package/build/component/driver/teamsApp/configure.d.ts +1 -0
  192. package/build/component/driver/teamsApp/configure.d.ts.map +1 -1
  193. package/build/component/driver/teamsApp/configure.js +3 -6
  194. package/build/component/driver/teamsApp/configure.js.map +1 -1
  195. package/build/component/driver/teamsApp/copyAppPackageToSPFx.d.ts +1 -0
  196. package/build/component/driver/teamsApp/copyAppPackageToSPFx.d.ts.map +1 -1
  197. package/build/component/driver/teamsApp/copyAppPackageToSPFx.js +3 -6
  198. package/build/component/driver/teamsApp/copyAppPackageToSPFx.js.map +1 -1
  199. package/build/component/driver/teamsApp/create.d.ts +1 -0
  200. package/build/component/driver/teamsApp/create.d.ts.map +1 -1
  201. package/build/component/driver/teamsApp/create.js +5 -6
  202. package/build/component/driver/teamsApp/create.js.map +1 -1
  203. package/build/component/driver/teamsApp/createAppPackage.d.ts +3 -2
  204. package/build/component/driver/teamsApp/createAppPackage.d.ts.map +1 -1
  205. package/build/component/driver/teamsApp/createAppPackage.js +22 -24
  206. package/build/component/driver/teamsApp/createAppPackage.js.map +1 -1
  207. package/build/component/driver/teamsApp/errors.d.ts.map +1 -1
  208. package/build/component/driver/teamsApp/errors.js +2 -0
  209. package/build/component/driver/teamsApp/errors.js.map +1 -1
  210. package/build/component/driver/teamsApp/interfaces/appdefinitions/messagingExtension.d.ts +3 -0
  211. package/build/component/driver/teamsApp/interfaces/appdefinitions/messagingExtension.d.ts.map +1 -1
  212. package/build/component/driver/teamsApp/interfaces/appdefinitions/messagingExtensionCommand.d.ts +1 -0
  213. package/build/component/driver/teamsApp/interfaces/appdefinitions/messagingExtensionCommand.d.ts.map +1 -1
  214. package/build/component/driver/teamsApp/publishAppPackage.d.ts +1 -0
  215. package/build/component/driver/teamsApp/publishAppPackage.d.ts.map +1 -1
  216. package/build/component/driver/teamsApp/publishAppPackage.js +3 -6
  217. package/build/component/driver/teamsApp/publishAppPackage.js.map +1 -1
  218. package/build/component/driver/teamsApp/utils/ManifestUtils.d.ts.map +1 -1
  219. package/build/component/driver/teamsApp/utils/ManifestUtils.js +2 -0
  220. package/build/component/driver/teamsApp/utils/ManifestUtils.js.map +1 -1
  221. package/build/component/driver/teamsApp/utils/utils.d.ts +2 -2
  222. package/build/component/driver/teamsApp/utils/utils.d.ts.map +1 -1
  223. package/build/component/driver/teamsApp/utils/utils.js +21 -10
  224. package/build/component/driver/teamsApp/utils/utils.js.map +1 -1
  225. package/build/component/driver/teamsApp/validate.d.ts +1 -0
  226. package/build/component/driver/teamsApp/validate.d.ts.map +1 -1
  227. package/build/component/driver/teamsApp/validate.js +3 -6
  228. package/build/component/driver/teamsApp/validate.js.map +1 -1
  229. package/build/component/driver/teamsApp/validateAppPackage.d.ts +1 -0
  230. package/build/component/driver/teamsApp/validateAppPackage.d.ts.map +1 -1
  231. package/build/component/driver/teamsApp/validateAppPackage.js +3 -6
  232. package/build/component/driver/teamsApp/validateAppPackage.js.map +1 -1
  233. package/build/component/error/componentError.d.ts +2 -1
  234. package/build/component/error/componentError.d.ts.map +1 -1
  235. package/build/component/error/componentError.js +8 -4
  236. package/build/component/error/componentError.js.map +1 -1
  237. package/build/component/feature/collaboration.d.ts.map +1 -1
  238. package/build/component/feature/collaboration.js +25 -6
  239. package/build/component/feature/collaboration.js.map +1 -1
  240. package/build/component/generator/copilotPlugin/generator.d.ts.map +1 -1
  241. package/build/component/generator/copilotPlugin/generator.js +33 -8
  242. package/build/component/generator/copilotPlugin/generator.js.map +1 -1
  243. package/build/component/generator/copilotPlugin/helper.d.ts +4 -2
  244. package/build/component/generator/copilotPlugin/helper.d.ts.map +1 -1
  245. package/build/component/generator/copilotPlugin/helper.js +71 -21
  246. package/build/component/generator/copilotPlugin/helper.js.map +1 -1
  247. package/build/component/generator/error.d.ts +1 -1
  248. package/build/component/generator/error.d.ts.map +1 -1
  249. package/build/component/generator/error.js +2 -2
  250. package/build/component/generator/error.js.map +1 -1
  251. package/build/component/generator/generator.d.ts.map +1 -1
  252. package/build/component/generator/generator.js +17 -14
  253. package/build/component/generator/generator.js.map +1 -1
  254. package/build/component/generator/officeAddin/generator.d.ts.map +1 -1
  255. package/build/component/generator/officeAddin/generator.js +9 -1
  256. package/build/component/generator/officeAddin/generator.js.map +1 -1
  257. package/build/component/generator/officeAddin/helperMethods.d.ts.map +1 -1
  258. package/build/component/generator/officeAddin/helperMethods.js +8 -4
  259. package/build/component/generator/officeAddin/helperMethods.js.map +1 -1
  260. package/build/component/generator/spfx/depsChecker/generatorChecker.d.ts.map +1 -1
  261. package/build/component/generator/spfx/depsChecker/generatorChecker.js +4 -2
  262. package/build/component/generator/spfx/depsChecker/generatorChecker.js.map +1 -1
  263. package/build/component/generator/spfx/depsChecker/yoChecker.d.ts.map +1 -1
  264. package/build/component/generator/spfx/depsChecker/yoChecker.js +3 -3
  265. package/build/component/generator/spfx/depsChecker/yoChecker.js.map +1 -1
  266. package/build/component/generator/spfx/spfxGenerator.d.ts.map +1 -1
  267. package/build/component/generator/spfx/spfxGenerator.js +2 -2
  268. package/build/component/generator/spfx/spfxGenerator.js.map +1 -1
  269. package/build/component/generator/spfx/utils/utils.js +3 -3
  270. package/build/component/generator/spfx/utils/utils.js.map +1 -1
  271. package/build/component/generator/utils.d.ts.map +1 -1
  272. package/build/component/generator/utils.js +2 -1
  273. package/build/component/generator/utils.js.map +1 -1
  274. package/build/component/messages.d.ts +2 -3
  275. package/build/component/messages.d.ts.map +1 -1
  276. package/build/component/messages.js +3 -4
  277. package/build/component/messages.js.map +1 -1
  278. package/build/component/middleware/envMW.js +1 -1
  279. package/build/component/middleware/envMW.js.map +1 -1
  280. package/build/component/middleware/questionMW.d.ts +2 -2
  281. package/build/component/middleware/questionMW.d.ts.map +1 -1
  282. package/build/component/middleware/questionMW.js +7 -11
  283. package/build/component/middleware/questionMW.js.map +1 -1
  284. package/build/component/provisionUtils.d.ts +3 -3
  285. package/build/component/provisionUtils.d.ts.map +1 -1
  286. package/build/component/provisionUtils.js +3 -3
  287. package/build/component/provisionUtils.js.map +1 -1
  288. package/build/component/resource/botService/appStudio/appStudioClient.d.ts.map +1 -1
  289. package/build/component/resource/botService/appStudio/appStudioClient.js +24 -2
  290. package/build/component/resource/botService/appStudio/appStudioClient.js.map +1 -1
  291. package/build/component/resource/botService/botRegistration/botFrameworkRegistration.d.ts +2 -2
  292. package/build/component/resource/botService/botRegistration/botFrameworkRegistration.d.ts.map +1 -1
  293. package/build/component/resource/botService/botRegistration/botFrameworkRegistration.js +6 -1
  294. package/build/component/resource/botService/botRegistration/botFrameworkRegistration.js.map +1 -1
  295. package/build/component/telemetry.js +2 -2
  296. package/build/component/telemetry.js.map +1 -1
  297. package/build/component/utils/ResourceGroupHelper.d.ts +2 -2
  298. package/build/component/utils/ResourceGroupHelper.d.ts.map +1 -1
  299. package/build/component/utils/ResourceGroupHelper.js +1 -4
  300. package/build/component/utils/ResourceGroupHelper.js.map +1 -1
  301. package/build/component/utils/charsetUtils.js +3 -3
  302. package/build/component/utils/charsetUtils.js.map +1 -1
  303. package/build/component/utils/common.d.ts +1 -1
  304. package/build/component/utils/common.d.ts.map +1 -1
  305. package/build/component/utils/common.js +3 -3
  306. package/build/component/utils/common.js.map +1 -1
  307. package/build/component/utils/depsChecker/cpUtils.d.ts.map +1 -1
  308. package/build/component/utils/depsChecker/cpUtils.js +8 -4
  309. package/build/component/utils/depsChecker/cpUtils.js.map +1 -1
  310. package/build/component/utils/envUtil.js +2 -2
  311. package/build/component/utils/envUtil.js.map +1 -1
  312. package/build/component/utils/metadataUtil.d.ts +3 -0
  313. package/build/component/utils/metadataUtil.d.ts.map +1 -1
  314. package/build/component/utils/metadataUtil.js +16 -3
  315. package/build/component/utils/metadataUtil.js.map +1 -1
  316. package/build/component/utils/teamsFxTelemetryReporter.js +2 -2
  317. package/build/component/utils/teamsFxTelemetryReporter.js.map +1 -1
  318. package/build/core/FxCore.d.ts +40 -33
  319. package/build/core/FxCore.d.ts.map +1 -1
  320. package/build/core/FxCore.js +816 -66
  321. package/build/core/FxCore.js.map +1 -1
  322. package/build/core/collaborator.js +2 -2
  323. package/build/core/collaborator.js.map +1 -1
  324. package/build/core/globalVars.d.ts +16 -0
  325. package/build/core/globalVars.d.ts.map +1 -1
  326. package/build/core/globalVars.js +34 -1
  327. package/build/core/globalVars.js.map +1 -1
  328. package/build/core/middleware/concurrentLocker.d.ts.map +1 -1
  329. package/build/core/middleware/concurrentLocker.js +7 -3
  330. package/build/core/middleware/concurrentLocker.js.map +1 -1
  331. package/build/core/middleware/projectMigratorV3.d.ts +4 -0
  332. package/build/core/middleware/projectMigratorV3.d.ts.map +1 -1
  333. package/build/core/middleware/projectMigratorV3.js +34 -32
  334. package/build/core/middleware/projectMigratorV3.js.map +1 -1
  335. package/build/core/middleware/projectVersionChecker.js +5 -5
  336. package/build/core/middleware/projectVersionChecker.js.map +1 -1
  337. package/build/core/middleware/utils/appYmlGenerator.d.ts.map +1 -1
  338. package/build/core/middleware/utils/appYmlGenerator.js +2 -1
  339. package/build/core/middleware/utils/appYmlGenerator.js.map +1 -1
  340. package/build/core/middleware/utils/debug/taskMigrator.d.ts.map +1 -1
  341. package/build/core/middleware/utils/debug/taskMigrator.js +3 -0
  342. package/build/core/middleware/utils/debug/taskMigrator.js.map +1 -1
  343. package/build/core/middleware/utils/migrationContext.d.ts +1 -0
  344. package/build/core/middleware/utils/migrationContext.d.ts.map +1 -1
  345. package/build/core/middleware/utils/migrationContext.js.map +1 -1
  346. package/build/core/middleware/utils/v3MigrationUtils.d.ts.map +1 -1
  347. package/build/core/middleware/utils/v3MigrationUtils.js +5 -1
  348. package/build/core/middleware/utils/v3MigrationUtils.js.map +1 -1
  349. package/build/error/common.d.ts +2 -8
  350. package/build/error/common.d.ts.map +1 -1
  351. package/build/error/common.js +8 -33
  352. package/build/error/common.js.map +1 -1
  353. package/build/index.d.ts +1 -0
  354. package/build/index.d.ts.map +1 -1
  355. package/build/index.js +1 -0
  356. package/build/index.js.map +1 -1
  357. package/build/question/constants.d.ts +4 -0
  358. package/build/question/constants.d.ts.map +1 -0
  359. package/build/question/constants.js +12 -0
  360. package/build/question/constants.js.map +1 -0
  361. package/build/question/create.d.ts +11 -3
  362. package/build/question/create.d.ts.map +1 -1
  363. package/build/question/create.js +337 -246
  364. package/build/question/create.js.map +1 -1
  365. package/build/question/generator.d.ts +4 -0
  366. package/build/question/generator.d.ts.map +1 -0
  367. package/build/question/generator.js +371 -0
  368. package/build/question/generator.js.map +1 -0
  369. package/build/question/index.d.ts +18 -30
  370. package/build/question/index.d.ts.map +1 -1
  371. package/build/question/index.js +13 -47
  372. package/build/question/index.js.map +1 -1
  373. package/build/question/inputs/CreateEnvInputs.d.ts +14 -0
  374. package/build/question/inputs/CreateEnvInputs.d.ts.map +1 -0
  375. package/build/question/inputs/CreateEnvInputs.js +5 -0
  376. package/build/question/inputs/CreateEnvInputs.js.map +1 -0
  377. package/build/question/inputs/CreateProjectInputs.d.ts +40 -0
  378. package/build/question/inputs/CreateProjectInputs.d.ts.map +1 -0
  379. package/build/question/inputs/CreateProjectInputs.js +5 -0
  380. package/build/question/inputs/CreateProjectInputs.js.map +1 -0
  381. package/build/question/inputs/CreateSampleProjectInputs.d.ts +12 -0
  382. package/build/question/inputs/CreateSampleProjectInputs.d.ts.map +1 -0
  383. package/build/question/inputs/CreateSampleProjectInputs.js +5 -0
  384. package/build/question/inputs/CreateSampleProjectInputs.js.map +1 -0
  385. package/build/question/inputs/DeployAadManifestInputs.d.ts +14 -0
  386. package/build/question/inputs/DeployAadManifestInputs.d.ts.map +1 -0
  387. package/build/question/inputs/DeployAadManifestInputs.js +5 -0
  388. package/build/question/inputs/DeployAadManifestInputs.js.map +1 -0
  389. package/build/question/inputs/PermissionGrantInputs.d.ts +18 -0
  390. package/build/question/inputs/PermissionGrantInputs.d.ts.map +1 -0
  391. package/build/question/inputs/PermissionGrantInputs.js +5 -0
  392. package/build/question/inputs/PermissionGrantInputs.js.map +1 -0
  393. package/build/question/inputs/PermissionListInputs.d.ts +16 -0
  394. package/build/question/inputs/PermissionListInputs.d.ts.map +1 -0
  395. package/build/question/inputs/PermissionListInputs.js +5 -0
  396. package/build/question/inputs/PermissionListInputs.js.map +1 -0
  397. package/build/question/inputs/PreviewTeamsAppInputs.d.ts +14 -0
  398. package/build/question/inputs/PreviewTeamsAppInputs.d.ts.map +1 -0
  399. package/build/question/inputs/PreviewTeamsAppInputs.js +5 -0
  400. package/build/question/inputs/PreviewTeamsAppInputs.js.map +1 -0
  401. package/build/question/inputs/SPFxAddWebpartInputs.d.ts +18 -0
  402. package/build/question/inputs/SPFxAddWebpartInputs.d.ts.map +1 -0
  403. package/build/question/inputs/SPFxAddWebpartInputs.js +5 -0
  404. package/build/question/inputs/SPFxAddWebpartInputs.js.map +1 -0
  405. package/build/question/inputs/SelectTeamsManifestInputs.d.ts +12 -0
  406. package/build/question/inputs/SelectTeamsManifestInputs.d.ts.map +1 -0
  407. package/build/question/inputs/SelectTeamsManifestInputs.js +5 -0
  408. package/build/question/inputs/SelectTeamsManifestInputs.js.map +1 -0
  409. package/build/question/inputs/ValidateTeamsAppInputs.d.ts +14 -0
  410. package/build/question/inputs/ValidateTeamsAppInputs.d.ts.map +1 -0
  411. package/build/question/inputs/ValidateTeamsAppInputs.js +5 -0
  412. package/build/question/inputs/ValidateTeamsAppInputs.js.map +1 -0
  413. package/build/question/inputs/index.d.ts +11 -0
  414. package/build/question/inputs/index.d.ts.map +1 -0
  415. package/build/question/inputs/index.js +16 -0
  416. package/build/question/inputs/index.js.map +1 -0
  417. package/build/question/options/CreateEnvOptions.d.ts +10 -0
  418. package/build/question/options/CreateEnvOptions.d.ts.map +1 -0
  419. package/build/question/options/CreateEnvOptions.js +24 -0
  420. package/build/question/options/CreateEnvOptions.js.map +1 -0
  421. package/build/question/options/CreateProjectOptions.d.ts +10 -0
  422. package/build/question/options/CreateProjectOptions.d.ts.map +1 -0
  423. package/build/question/options/CreateProjectOptions.js +139 -0
  424. package/build/question/options/CreateProjectOptions.js.map +1 -0
  425. package/build/question/options/CreateSampleProjectOptions.d.ts +10 -0
  426. package/build/question/options/CreateSampleProjectOptions.d.ts.map +1 -0
  427. package/build/question/options/CreateSampleProjectOptions.js +52 -0
  428. package/build/question/options/CreateSampleProjectOptions.js.map +1 -0
  429. package/build/question/options/DeployAadManifestOptions.d.ts +10 -0
  430. package/build/question/options/DeployAadManifestOptions.d.ts.map +1 -0
  431. package/build/question/options/DeployAadManifestOptions.js +21 -0
  432. package/build/question/options/DeployAadManifestOptions.js.map +1 -0
  433. package/build/question/options/PermissionGrantOptions.d.ts +10 -0
  434. package/build/question/options/PermissionGrantOptions.d.ts.map +1 -0
  435. package/build/question/options/PermissionGrantOptions.js +33 -0
  436. package/build/question/options/PermissionGrantOptions.js.map +1 -0
  437. package/build/question/options/PermissionListOptions.d.ts +10 -0
  438. package/build/question/options/PermissionListOptions.d.ts.map +1 -0
  439. package/build/question/options/PermissionListOptions.js +28 -0
  440. package/build/question/options/PermissionListOptions.js.map +1 -0
  441. package/build/question/options/PreviewTeamsAppOptions.d.ts +10 -0
  442. package/build/question/options/PreviewTeamsAppOptions.d.ts.map +1 -0
  443. package/build/question/options/PreviewTeamsAppOptions.js +26 -0
  444. package/build/question/options/PreviewTeamsAppOptions.js.map +1 -0
  445. package/build/question/options/SPFxAddWebpartOptions.d.ts +10 -0
  446. package/build/question/options/SPFxAddWebpartOptions.d.ts.map +1 -0
  447. package/build/question/options/SPFxAddWebpartOptions.js +38 -0
  448. package/build/question/options/SPFxAddWebpartOptions.js.map +1 -0
  449. package/build/question/options/SelectTeamsManifestOptions.d.ts +10 -0
  450. package/build/question/options/SelectTeamsManifestOptions.d.ts.map +1 -0
  451. package/build/question/options/SelectTeamsManifestOptions.js +17 -0
  452. package/build/question/options/SelectTeamsManifestOptions.js.map +1 -0
  453. package/build/question/options/ValidateTeamsAppOptions.d.ts +10 -0
  454. package/build/question/options/ValidateTeamsAppOptions.d.ts.map +1 -0
  455. package/build/question/options/ValidateTeamsAppOptions.js +23 -0
  456. package/build/question/options/ValidateTeamsAppOptions.js.map +1 -0
  457. package/build/question/options/index.d.ts +11 -0
  458. package/build/question/options/index.d.ts.map +1 -0
  459. package/build/question/options/index.js +16 -0
  460. package/build/question/options/index.js.map +1 -0
  461. package/build/question/other.d.ts +12 -1
  462. package/build/question/other.d.ts.map +1 -1
  463. package/build/question/other.js +124 -30
  464. package/build/question/other.js.map +1 -1
  465. package/build/question/questionNames.d.ts +7 -2
  466. package/build/question/questionNames.d.ts.map +1 -1
  467. package/build/question/questionNames.js +9 -3
  468. package/build/question/questionNames.js.map +1 -1
  469. package/build/ui/validationUtils.d.ts +6 -3
  470. package/build/ui/validationUtils.d.ts.map +1 -1
  471. package/build/ui/validationUtils.js +25 -14
  472. package/build/ui/validationUtils.js.map +1 -1
  473. package/build/ui/visitor.d.ts +8 -0
  474. package/build/ui/visitor.d.ts.map +1 -1
  475. package/build/ui/visitor.js +179 -259
  476. package/build/ui/visitor.js.map +1 -1
  477. package/package.json +8 -10
  478. package/resource/package.nls.json +32 -15
  479. package/resource/yaml-schema/{1.1.1 → v1.2}/yaml.schema.json +11 -5
  480. package/templates/fallback/common.zip +0 -0
  481. package/templates/fallback/csharp.zip +0 -0
  482. package/templates/fallback/js.zip +0 -0
  483. package/templates/fallback/ts.zip +0 -0
  484. package/templates/plugins/resource/aad/auth/V3/Tab/GetUserProfile.razor +1 -2
  485. package/templates/plugins/resource/aad/auth/bot/README.md +281 -263
  486. package/templates/plugins/resource/aad/auth/bot/js/sso/handleMessageExtensionQueryWithToken.js +13 -3
  487. package/templates/plugins/resource/aad/auth/bot/js/sso/profileSsoCommandHandler.js +14 -5
  488. package/templates/plugins/resource/aad/auth/bot/ts/sso/handleMessageExtensionQueryWithToken.ts +11 -3
  489. package/templates/plugins/resource/aad/auth/bot/ts/sso/profileSsoCommandHandler.ts +12 -3
  490. package/templates/plugins/resource/aad/auth/tab/csharp/GetUserProfile.razor +1 -2
  491. package/build/component/driver/middleware/updateProgress.d.ts +0 -6
  492. package/build/component/driver/middleware/updateProgress.d.ts.map +0 -1
  493. package/build/component/driver/middleware/updateProgress.js +0 -15
  494. package/build/component/driver/middleware/updateProgress.js.map +0 -1
  495. package/build/core/FxCoreImplementV3.d.ts +0 -47
  496. package/build/core/FxCoreImplementV3.d.ts.map +0 -1
  497. package/build/core/FxCoreImplementV3.js +0 -702
  498. 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.openAIPluginManifestLocationQuestion = exports.apiSpecLocationQuestion = exports.RuntimeOptions = exports.appNameQuestion = exports.AppNamePattern = exports.programmingLanguageQuestion = exports.ProgrammingLanguage = exports.getLanguageOptions = exports.getTemplate = exports.SPFxImportFolderQuestion = 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.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"));
@@ -16,7 +16,6 @@ const localizeUtils_1 = require("../common/localizeUtils");
16
16
  const samples_1 = require("../common/samples");
17
17
  const utils_1 = require("../common/utils");
18
18
  const developerPortalScaffoldUtils_1 = require("../component/developerPortalScaffoldUtils");
19
- const ManifestUtils_1 = require("../component/driver/teamsApp/utils/ManifestUtils");
20
19
  const utils_2 = require("../component/driver/teamsApp/utils/utils");
21
20
  const helper_1 = require("../component/generator/copilotPlugin/helper");
22
21
  const projectsJsonData_1 = tslib_1.__importDefault(require("../component/generator/officeAddin/config/projectsJsonData"));
@@ -28,6 +27,7 @@ const utils_4 = require("../component/utils");
28
27
  const error_2 = require("../error");
29
28
  const questionNames_1 = require("./questionNames");
30
29
  const util_1 = require("./util");
30
+ const constants_3 = require("./constants");
31
31
  class ScratchOptions {
32
32
  static yes() {
33
33
  return {
@@ -86,19 +86,6 @@ class ProjectTypeOptions {
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
91
  ProjectTypeOptions.bot(),
@@ -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,22 +342,38 @@ class CapabilityOptions {
346
342
  CapabilityOptions.copilotPluginOpenAIPlugin(),
347
343
  ];
348
344
  }
345
+ static copilotPluginCli() {
346
+ return {
347
+ id: "copilot-plugin-capability",
348
+ label: `${localizeUtils_1.getLocalizedString("core.createProjectQuestion.projectType.copilotPlugin.label")}`,
349
+ detail: localizeUtils_1.getLocalizedString("core.createProjectQuestion.projectType.copilotPlugin.detail"),
350
+ };
351
+ }
352
+ static staticAll(inputs) {
353
+ const capabilityOptions = [
354
+ ...CapabilityOptions.bots(inputs),
355
+ ...CapabilityOptions.tabs(),
356
+ ...CapabilityOptions.mes(),
357
+ CapabilityOptions.copilotPluginCli(),
358
+ ];
359
+ return capabilityOptions;
360
+ }
349
361
  static all(inputs) {
362
+ // teamsfx list capabilities
350
363
  const capabilityOptions = [
351
364
  ...CapabilityOptions.bots(inputs),
352
365
  ...CapabilityOptions.tabs(),
353
366
  ...CapabilityOptions.mes(),
354
367
  ];
355
368
  if (featureFlags_1.isCopilotPluginEnabled()) {
356
- capabilityOptions.push(...CapabilityOptions.copilotPlugins());
369
+ capabilityOptions.push(CapabilityOptions.copilotPluginCli());
357
370
  }
358
371
  return capabilityOptions;
359
372
  }
360
373
  static officeAddinImport() {
361
374
  return {
362
- id: "import-addin-project",
375
+ id: "import",
363
376
  label: localizeUtils_1.getLocalizedString("core.importAddin.label"),
364
- cliName: "import",
365
377
  detail: localizeUtils_1.getLocalizedString("core.importAddin.detail"),
366
378
  description: localizeUtils_1.getLocalizedString("core.createProjectQuestion.option.description.previewOnWindow"),
367
379
  };
@@ -389,25 +401,32 @@ class CapabilityOptions {
389
401
  // copilot plugin
390
402
  static copilotPluginNewApi() {
391
403
  return {
392
- id: "copilot-new-api",
404
+ id: "new-api",
393
405
  label: localizeUtils_1.getLocalizedString("core.createProjectQuestion.capability.copilotPluginNewApiOption.label"),
394
406
  detail: localizeUtils_1.getLocalizedString("core.createProjectQuestion.capability.copilotPluginNewApiOption.detail"),
395
407
  };
396
408
  }
397
409
  static copilotPluginApiSpec() {
398
410
  return {
399
- id: "copilot-api-spec",
411
+ id: constants_3.copilotPluginApiSpecOptionId,
400
412
  label: localizeUtils_1.getLocalizedString("core.createProjectQuestion.capability.copilotPluginApiSpecOption.label"),
401
413
  detail: localizeUtils_1.getLocalizedString("core.createProjectQuestion.capability.copilotPluginApiSpecOption.detail"),
402
414
  };
403
415
  }
404
416
  static copilotPluginOpenAIPlugin() {
405
417
  return {
406
- id: "copilot-ai-plugin",
418
+ id: constants_3.copilotPluginOpenAIPluginOptionId,
407
419
  label: localizeUtils_1.getLocalizedString("core.createProjectQuestion.capability.copilotPluginAIPluginOption.label"),
408
420
  detail: localizeUtils_1.getLocalizedString("core.createProjectQuestion.capability.copilotPluginAIPluginOption.detail"),
409
421
  };
410
422
  }
423
+ static aiBot() {
424
+ return {
425
+ id: "ai-bot",
426
+ label: localizeUtils_1.getLocalizedString("core.aiBotOption.label"),
427
+ detail: localizeUtils_1.getLocalizedString("core.aiBotOption.detail"),
428
+ };
429
+ }
411
430
  }
412
431
  exports.CapabilityOptions = CapabilityOptions;
413
432
  function capabilityQuestion() {
@@ -430,8 +449,12 @@ function capabilityQuestion() {
430
449
  return localizeUtils_1.getLocalizedString("core.createCapabilityQuestion.titleNew");
431
450
  }
432
451
  },
452
+ cliDescription: "Specifies the Teams App capability.",
453
+ cliName: questionNames_1.CliQuestionName.Capability,
454
+ cliShortName: "c",
455
+ cliChoiceListCommand: "teamsfx list capabilities",
433
456
  type: "singleSelect",
434
- staticOptions: CapabilityOptions.all(),
457
+ staticOptions: CapabilityOptions.staticAll(),
435
458
  dynamicOptions: (inputs) => {
436
459
  var _a;
437
460
  // from dev portal
@@ -443,7 +466,7 @@ function capabilityQuestion() {
443
466
  }
444
467
  // dotnet capabilities
445
468
  if (getRuntime(inputs) === RuntimeOptions.DotNet().id) {
446
- return CapabilityOptions.dotnetCaps();
469
+ return CapabilityOptions.dotnetCaps(inputs);
447
470
  }
448
471
  // nodejs capabilities
449
472
  const projectType = inputs[questionNames_1.QuestionNames.ProjectType];
@@ -469,7 +492,7 @@ function capabilityQuestion() {
469
492
  ...CapabilityOptions.mes(),
470
493
  ];
471
494
  if (featureFlags_1.isCopilotPluginEnabled()) {
472
- capabilityOptions.push(...CapabilityOptions.copilotPlugins());
495
+ capabilityOptions.push(CapabilityOptions.copilotPluginCli());
473
496
  }
474
497
  return capabilityOptions;
475
498
  }
@@ -499,7 +522,6 @@ class NotificationTriggerOptions {
499
522
  id: "http-restify",
500
523
  hostType: HostType.AppService,
501
524
  label: localizeUtils_1.getLocalizedString("plugins.bot.triggers.http-restify.label"),
502
- cliName: localizeUtils_1.getLocalizedString("plugins.bot.triggers.http-restify.cliName"),
503
525
  description: localizeUtils_1.getLocalizedString("plugins.bot.triggers.http-restify.description"),
504
526
  detail: localizeUtils_1.getLocalizedString("plugins.bot.triggers.http-restify.detail"),
505
527
  };
@@ -509,7 +531,6 @@ class NotificationTriggerOptions {
509
531
  id: "http-webapi",
510
532
  hostType: HostType.AppService,
511
533
  label: localizeUtils_1.getLocalizedString("plugins.bot.triggers.http-webapi.label"),
512
- cliName: localizeUtils_1.getLocalizedString("plugins.bot.triggers.http-webapi.cliName"),
513
534
  description: localizeUtils_1.getLocalizedString("plugins.bot.triggers.http-webapi.description"),
514
535
  detail: localizeUtils_1.getLocalizedString("plugins.bot.triggers.http-webapi.detail"),
515
536
  };
@@ -521,7 +542,6 @@ class NotificationTriggerOptions {
521
542
  hostType: HostType.Functions,
522
543
  triggers: [NotificationTriggers.TIMER],
523
544
  label: localizeUtils_1.getLocalizedString("plugins.bot.triggers.timer-functions.label"),
524
- cliName: localizeUtils_1.getLocalizedString("plugins.bot.triggers.timer-functions.cliName"),
525
545
  description: localizeUtils_1.getLocalizedString("plugins.bot.triggers.timer-functions.description"),
526
546
  detail: localizeUtils_1.getLocalizedString("plugins.bot.triggers.timer-functions.detail"),
527
547
  };
@@ -532,7 +552,6 @@ class NotificationTriggerOptions {
532
552
  hostType: HostType.Functions,
533
553
  triggers: [NotificationTriggers.HTTP, NotificationTriggers.TIMER],
534
554
  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
555
  description: localizeUtils_1.getLocalizedString("plugins.bot.triggers.http-and-timer-functions.description"),
537
556
  detail: localizeUtils_1.getLocalizedString("plugins.bot.triggers.http-and-timer-functions.detail"),
538
557
  };
@@ -543,7 +562,6 @@ class NotificationTriggerOptions {
543
562
  hostType: HostType.Functions,
544
563
  triggers: [NotificationTriggers.HTTP],
545
564
  label: localizeUtils_1.getLocalizedString("plugins.bot.triggers.http-functions.label"),
546
- cliName: localizeUtils_1.getLocalizedString("plugins.bot.triggers.http-functions.cliName"),
547
565
  description: localizeUtils_1.getLocalizedString("plugins.bot.triggers.http-functions.description"),
548
566
  detail: localizeUtils_1.getLocalizedString("plugins.bot.triggers.http-functions.detail"),
549
567
  };
@@ -582,6 +600,8 @@ function botTriggerQuestion() {
582
600
  return {
583
601
  name: questionNames_1.QuestionNames.BotTrigger,
584
602
  title: localizeUtils_1.getLocalizedString("plugins.bot.questionHostTypeTrigger.title"),
603
+ cliDescription: "Specifies the trigger for `Chat Notification Message` app template.",
604
+ cliShortName: "t",
585
605
  type: "singleSelect",
586
606
  staticOptions: NotificationTriggerOptions.all(),
587
607
  dynamicOptions: (inputs) => {
@@ -602,11 +622,23 @@ function botTriggerQuestion() {
602
622
  placeholder: localizeUtils_1.getLocalizedString("plugins.bot.questionHostTypeTrigger.placeholder"),
603
623
  };
604
624
  }
625
+ function copilotPluginDevelopmentQuestion() {
626
+ return {
627
+ name: questionNames_1.QuestionNames.CopilotPluginDevelopment,
628
+ title: localizeUtils_1.getLocalizedString("core.createProjectQuestion.projectType.copilotPlugin.title"),
629
+ type: "singleSelect",
630
+ staticOptions: CapabilityOptions.copilotPlugins(),
631
+ cliShortName: "cp",
632
+ cliDescription: "Plugin for Copilot.",
633
+ };
634
+ }
605
635
  function SPFxSolutionQuestion() {
606
636
  return {
607
637
  type: "singleSelect",
608
638
  name: questionNames_1.QuestionNames.SPFxSolution,
609
639
  title: localizeUtils_1.getLocalizedString("plugins.spfx.questions.spfxSolution.title"),
640
+ cliDescription: "Create a new or import an existing SharePoint Framework solution.",
641
+ cliShortName: "ss",
610
642
  staticOptions: [
611
643
  {
612
644
  id: "new",
@@ -627,6 +659,7 @@ function SPFxPackageSelectQuestion() {
627
659
  type: "singleSelect",
628
660
  name: questionNames_1.QuestionNames.SPFxInstallPackage,
629
661
  title: localizeUtils_1.getLocalizedString("plugins.spfx.questions.packageSelect.title"),
662
+ cliDescription: "Install the latest version of SharePoint Framework.",
630
663
  staticOptions: [],
631
664
  placeholder: localizeUtils_1.getLocalizedString("plugins.spfx.questions.packageSelect.placeholder"),
632
665
  dynamicOptions: async (inputs) => {
@@ -656,18 +689,20 @@ function SPFxPackageSelectQuestion() {
656
689
  },
657
690
  default: SPFxVersionOptionIds.installLocally,
658
691
  validation: {
659
- validFunc: async (input, previousInputs) => {
692
+ validFunc: (input, previousInputs) => {
660
693
  if (input === SPFxVersionOptionIds.globalPackage) {
661
694
  const hasPackagesInstalled = !!previousInputs &&
662
695
  !!previousInputs.globalSpfxPackageVersion &&
663
696
  !!previousInputs.globalYeomanPackageVersion;
664
697
  if (!hasPackagesInstalled) {
665
- throw error_1.DevEnvironmentSetupError();
698
+ return Promise.reject(error_1.DevEnvironmentSetupError());
666
699
  }
667
700
  }
668
- return undefined;
701
+ return Promise.resolve(undefined);
669
702
  },
670
703
  },
704
+ cliShortName: "sp",
705
+ isBoolean: true,
671
706
  };
672
707
  }
673
708
  exports.SPFxPackageSelectQuestion = SPFxPackageSelectQuestion;
@@ -675,6 +710,7 @@ function SPFxFrameworkQuestion() {
675
710
  return {
676
711
  type: "singleSelect",
677
712
  name: questionNames_1.QuestionNames.SPFxFramework,
713
+ cliShortName: "sfk",
678
714
  title: localizeUtils_1.getLocalizedString("plugins.spfx.questions.framework.title"),
679
715
  staticOptions: [
680
716
  { id: "react", label: "React" },
@@ -689,7 +725,8 @@ function SPFxWebpartNameQuestion() {
689
725
  return {
690
726
  type: "text",
691
727
  name: questionNames_1.QuestionNames.SPFxWebpartName,
692
- title: "Web Part Name",
728
+ cliShortName: "sw",
729
+ title: "Name for SharePoint Framework Web Part.",
693
730
  default: constants_2.Constants.DEFAULT_WEBPART_NAME,
694
731
  validation: {
695
732
  validFunc: async (input, previousInputs) => {
@@ -724,7 +761,9 @@ function SPFxImportFolderQuestion(hasDefaultFunc = false) {
724
761
  return {
725
762
  type: "folder",
726
763
  name: questionNames_1.QuestionNames.SPFxFolder,
764
+ cliShortName: "sf",
727
765
  title: localizeUtils_1.getLocalizedString("core.spfxFolder.title"),
766
+ cliDescription: "Directory or Path that contains the existing SharePoint Framework solution.",
728
767
  placeholder: localizeUtils_1.getLocalizedString("core.spfxFolder.placeholder"),
729
768
  default: hasDefaultFunc
730
769
  ? (inputs) => {
@@ -740,7 +779,7 @@ const getTemplate = (inputs) => {
740
779
  const capabilities = inputs[questionNames_1.QuestionNames.Capabilities];
741
780
  const templates = officeAddinJsonData.getProjectTemplateNames();
742
781
  const foundTemplate = templates.find((template) => {
743
- return capabilities.includes(template);
782
+ return capabilities && capabilities.includes(template);
744
783
  });
745
784
  return foundTemplate !== null && foundTemplate !== void 0 ? foundTemplate : "";
746
785
  };
@@ -751,7 +790,7 @@ function officeAddinHostingQuestion() {
751
790
  name: questionNames_1.QuestionNames.OfficeAddinHost,
752
791
  title: "Add-in Host",
753
792
  staticOptions: [],
754
- dynamicOptions: async (inputs) => {
793
+ dynamicOptions: (inputs) => {
755
794
  const template = exports.getTemplate(inputs);
756
795
  const getHostTemplateNames = officeAddinJsonData.getHostTemplateNames(template);
757
796
  const options = getHostTemplateNames.map((host) => ({
@@ -760,7 +799,7 @@ function officeAddinHostingQuestion() {
760
799
  }));
761
800
  return options.length > 0 ? options : [{ label: "No Options", id: "No Options" }];
762
801
  },
763
- default: async (inputs) => {
802
+ default: (inputs) => {
764
803
  const template = exports.getTemplate(inputs);
765
804
  const options = officeAddinJsonData.getHostTemplateNames(template);
766
805
  return options[0] || "No Options";
@@ -769,6 +808,7 @@ function officeAddinHostingQuestion() {
769
808
  };
770
809
  return OfficeHostQuestion;
771
810
  }
811
+ exports.officeAddinHostingQuestion = officeAddinHostingQuestion;
772
812
  const officeAddinJsonData = new projectsJsonData_1.default();
773
813
  function getLanguageOptions(inputs) {
774
814
  const runtime = getRuntime(inputs);
@@ -805,7 +845,8 @@ var ProgrammingLanguage;
805
845
  function programmingLanguageQuestion() {
806
846
  const programmingLanguageQuestion = {
807
847
  name: questionNames_1.QuestionNames.ProgrammingLanguage,
808
- title: "Programming Language",
848
+ cliShortName: "l",
849
+ title: "Programming Language.",
809
850
  type: "singleSelect",
810
851
  staticOptions: [
811
852
  { id: ProgrammingLanguage.JS, label: "JavaScript" },
@@ -842,21 +883,30 @@ function programmingLanguageQuestion() {
842
883
  return programmingLanguageQuestion;
843
884
  }
844
885
  exports.programmingLanguageQuestion = programmingLanguageQuestion;
845
- function rootFolderQuestion() {
886
+ function folderQuestion() {
846
887
  return {
847
888
  type: "folder",
848
889
  name: questionNames_1.QuestionNames.Folder,
849
- title: localizeUtils_1.getLocalizedString("core.question.workspaceFolder.title"),
890
+ cliShortName: "f",
891
+ title: (inputs) => teamsfx_api_1.CLIPlatforms.includes(inputs.platform)
892
+ ? "Directory where the project folder will be created in"
893
+ : localizeUtils_1.getLocalizedString("core.question.workspaceFolder.title"),
894
+ cliDescription: "Directory where the project folder will be created in.",
850
895
  placeholder: localizeUtils_1.getLocalizedString("core.question.workspaceFolder.placeholder"),
851
- default: path.join(os.homedir(), constants_1.ConstantString.RootFolder),
896
+ default: (inputs) => teamsfx_api_1.CLIPlatforms.includes(inputs.platform)
897
+ ? "./"
898
+ : path.join(os.homedir(), constants_1.ConstantString.RootFolder),
852
899
  };
853
900
  }
901
+ exports.folderQuestion = folderQuestion;
854
902
  exports.AppNamePattern = '^(?=(.*[\\da-zA-Z]){2})[a-zA-Z][^"<>:\\?/*&|\u0000-\u001F]*[^"\\s.<>:\\?/*&|\u0000-\u001F]$';
855
903
  function appNameQuestion() {
856
904
  const question = {
857
905
  type: "text",
858
906
  name: questionNames_1.QuestionNames.AppName,
907
+ cliShortName: "n",
859
908
  title: "Application name",
909
+ required: true,
860
910
  default: async (inputs) => {
861
911
  var _a, _b;
862
912
  let defaultName = undefined;
@@ -908,6 +958,11 @@ function sampleSelectQuestion() {
908
958
  return {
909
959
  type: "singleSelect",
910
960
  name: questionNames_1.QuestionNames.Samples,
961
+ cliName: "sample-name",
962
+ cliDescription: "Specifies the Teams App sample name.",
963
+ cliChoiceListCommand: "teamsfx list samples",
964
+ skipValidation: true,
965
+ cliType: "argument",
911
966
  title: localizeUtils_1.getLocalizedString("core.SampleSelect.title"),
912
967
  staticOptions: samples_1.sampleProvider.SampleCollection.samples.map((sample) => {
913
968
  return {
@@ -963,6 +1018,7 @@ function runtimeQuestion() {
963
1018
  staticOptions: [RuntimeOptions.NodeJS(), RuntimeOptions.DotNet()],
964
1019
  default: RuntimeOptions.NodeJS().id,
965
1020
  placeholder: localizeUtils_1.getLocalizedString("core.getRuntimeQuestion.placeholder"),
1021
+ cliHidden: true,
966
1022
  };
967
1023
  }
968
1024
  const defaultTabLocalHostUrl = "https://localhost:53000/index.html#/tab";
@@ -1054,6 +1110,8 @@ function getBotIdAndMeId(appDefinition) {
1054
1110
  }
1055
1111
  function getBotOptions(inputs) {
1056
1112
  const appDefinition = inputs.teamsAppFromTdp;
1113
+ if (!appDefinition)
1114
+ return [];
1057
1115
  const [botId, messageExtensionId] = getBotIdAndMeId(appDefinition);
1058
1116
  const options = [];
1059
1117
  if (botId) {
@@ -1065,14 +1123,14 @@ function getBotOptions(inputs) {
1065
1123
  return options;
1066
1124
  }
1067
1125
  function selectBotIdsQuestion() {
1068
- const statcOptions = [];
1069
- statcOptions.push(botOptionItem(false, "000000-0000-0000"));
1070
- statcOptions.push(botOptionItem(true, "000000-0000-0000"));
1126
+ // const statcOptions: OptionItem[] = [];
1127
+ // statcOptions.push(botOptionItem(false, "000000-0000-0000"));
1128
+ // statcOptions.push(botOptionItem(true, "000000-0000-0000"));
1071
1129
  return {
1072
1130
  type: "multiSelect",
1073
1131
  name: questionNames_1.QuestionNames.ReplaceBotIds,
1074
1132
  title: localizeUtils_1.getLocalizedString("core.updateBotIdsQuestion.title"),
1075
- staticOptions: statcOptions,
1133
+ staticOptions: [],
1076
1134
  dynamicOptions: getBotOptions,
1077
1135
  default: (inputs) => {
1078
1136
  const options = getBotOptions(inputs);
@@ -1083,16 +1141,19 @@ function selectBotIdsQuestion() {
1083
1141
  };
1084
1142
  }
1085
1143
  const maximumLengthOfDetailsErrorMessageInInputBox = 90;
1086
- function apiSpecLocationQuestion() {
1144
+ function apiSpecLocationQuestion(includeExistingAPIs = true) {
1087
1145
  const validationOnAccept = async (input, inputs) => {
1088
1146
  try {
1089
1147
  const context = utils_4.createContextV3();
1090
- const res = await helper_1.listOperations(context, undefined, input, false);
1148
+ const res = await helper_1.listOperations(context, undefined, input, inputs[questionNames_1.QuestionNames.ManifestPath], includeExistingAPIs, false);
1091
1149
  if (res.isOk()) {
1092
1150
  inputs.supportedApisFromApiSpec = res.value;
1093
1151
  }
1094
1152
  else {
1095
1153
  const errors = res.error;
1154
+ if ((inputs === null || inputs === void 0 ? void 0 : inputs.platform) === teamsfx_api_1.Platform.CLI) {
1155
+ return errors.map((e) => e.content).join("\n");
1156
+ }
1096
1157
  if (errors.length === 1 &&
1097
1158
  errors[0].content.length <= maximumLengthOfDetailsErrorMessageInInputBox) {
1098
1159
  return errors[0].content;
@@ -1112,19 +1173,26 @@ function apiSpecLocationQuestion() {
1112
1173
  return {
1113
1174
  type: "singleFileOrText",
1114
1175
  name: questionNames_1.QuestionNames.ApiSpecLocation,
1176
+ cliShortName: "oapi",
1177
+ cliDescription: "OpenAPI specification file location.",
1115
1178
  title: localizeUtils_1.getLocalizedString("core.createProjectQuestion.apiSpec.title"),
1116
1179
  forgetLastValue: true,
1117
1180
  inputBoxConfig: {
1181
+ type: "innerText",
1118
1182
  title: localizeUtils_1.getLocalizedString("core.createProjectQuestion.apiSpec.title"),
1119
1183
  placeholder: localizeUtils_1.getLocalizedString("core.createProjectQuestion.apiSpec.placeholder"),
1120
1184
  name: "input-api-spec-url",
1121
1185
  step: 2,
1122
- validation: async (input) => {
1123
- return util_1.isValidHttpUrl(input)
1124
- ? undefined
1125
- : localizeUtils_1.getLocalizedString("core.createProjectQuestion.invalidUrl.message");
1186
+ validation: {
1187
+ validFunc: (input, inputs) => {
1188
+ const result = util_1.isValidHttpUrl(input)
1189
+ ? undefined
1190
+ : (inputs === null || inputs === void 0 ? void 0 : inputs.platform) === teamsfx_api_1.Platform.CLI
1191
+ ? "Please enter a valid URL or local path of your API Specification"
1192
+ : localizeUtils_1.getLocalizedString("core.createProjectQuestion.invalidUrl.message");
1193
+ return Promise.resolve(result);
1194
+ },
1126
1195
  },
1127
- additionalValidationOnAccept: validationOnAccept,
1128
1196
  },
1129
1197
  inputOptionItem: {
1130
1198
  id: "input",
@@ -1135,8 +1203,8 @@ function apiSpecLocationQuestion() {
1135
1203
  },
1136
1204
  validation: {
1137
1205
  validFunc: async (input, inputs) => {
1138
- if (input === "input") {
1139
- return undefined;
1206
+ if (!util_1.isValidHttpUrl(input) && !(await fs_extra_1.default.pathExists(input))) {
1207
+ return "Please enter a valid URL or local path of your API Specification";
1140
1208
  }
1141
1209
  return await validationOnAccept(input, inputs);
1142
1210
  },
@@ -1148,17 +1216,20 @@ function openAIPluginManifestLocationQuestion() {
1148
1216
  // export for unit test
1149
1217
  return {
1150
1218
  type: "text",
1151
- name: questionNames_1.QuestionNames.OpenAIPluginManifestLocation,
1219
+ name: questionNames_1.QuestionNames.OpenAIPluginDomain,
1220
+ cliShortName: "oai",
1152
1221
  title: localizeUtils_1.getLocalizedString("core.createProjectQuestion.AIPluginManifest.title"),
1153
1222
  placeholder: localizeUtils_1.getLocalizedString("core.createProjectQuestion.AIPluginManifest.placeholder"),
1223
+ cliDescription: "OpenAI plugin website domain.",
1154
1224
  forgetLastValue: true,
1155
1225
  validation: {
1156
- validFunc: async (input) => {
1157
- const pattern = /(https?:\/\/)?([a-z0-9-]+(\.[a-z0-9-]+)*)(:[0-9]{1,5})?$/i;
1226
+ validFunc: (input) => {
1227
+ const pattern = /(https?:\/\/)?([a-z0-9-]+(\.[a-z0-9-]+)*)(:[0-9]{1,5})?(\/)?$/i;
1158
1228
  const match = pattern.test(input);
1159
- return match
1229
+ const result = match
1160
1230
  ? undefined
1161
1231
  : localizeUtils_1.getLocalizedString("core.createProjectQuestion.invalidDomain.message");
1232
+ return Promise.resolve(result);
1162
1233
  },
1163
1234
  },
1164
1235
  additionalValidationOnAccept: {
@@ -1174,12 +1245,15 @@ function openAIPluginManifestLocationQuestion() {
1174
1245
  }
1175
1246
  const context = utils_4.createContextV3();
1176
1247
  try {
1177
- const res = await helper_1.listOperations(context, manifest, inputs[questionNames_1.QuestionNames.ApiSpecLocation], true);
1248
+ const res = await helper_1.listOperations(context, manifest, inputs[questionNames_1.QuestionNames.ApiSpecLocation], undefined, true, true);
1178
1249
  if (res.isOk()) {
1179
1250
  inputs.supportedApisFromApiSpec = res.value;
1180
1251
  }
1181
1252
  else {
1182
1253
  const errors = res.error;
1254
+ if ((inputs === null || inputs === void 0 ? void 0 : inputs.platform) === teamsfx_api_1.Platform.CLI) {
1255
+ return errors.map((e) => e.content).join("\n");
1256
+ }
1183
1257
  if (errors.length === 1 &&
1184
1258
  errors[0].content.length <= maximumLengthOfDetailsErrorMessageInInputBox) {
1185
1259
  return errors[0].content;
@@ -1206,6 +1280,8 @@ function apiOperationQuestion(includeExistingAPIs = true) {
1206
1280
  type: "multiSelect",
1207
1281
  name: questionNames_1.QuestionNames.ApiOperation,
1208
1282
  title: localizeUtils_1.getLocalizedString("core.createProjectQuestion.apiSpec.operation.title"),
1283
+ cliDescription: "Specifies API(s) to be used in Copilot plugin.",
1284
+ cliShortName: "api",
1209
1285
  placeholder: includeExistingAPIs
1210
1286
  ? localizeUtils_1.getLocalizedString("core.createProjectQuestion.apiSpec.operation.placeholder")
1211
1287
  : localizeUtils_1.getLocalizedString("core.createProjectQuestion.apiSpec.operation.placeholder.skipExisting"),
@@ -1214,188 +1290,203 @@ function apiOperationQuestion(includeExistingAPIs = true) {
1214
1290
  validation: {
1215
1291
  minItems: 1,
1216
1292
  },
1217
- dynamicOptions: async (inputs) => {
1293
+ dynamicOptions: (inputs) => {
1218
1294
  if (!inputs.supportedApisFromApiSpec) {
1219
- throw new error_2.EmptyOptionError();
1220
- }
1221
- let operations = inputs.supportedApisFromApiSpec;
1222
- if (!includeExistingAPIs) {
1223
- const teamsManifestPath = inputs.teamsManifestPath;
1224
- const manifest = await ManifestUtils_1.manifestUtils._readAppManifest(teamsManifestPath);
1225
- if (manifest.isOk()) {
1226
- const existingOperationIds = ManifestUtils_1.manifestUtils.getOperationIds(manifest.value);
1227
- operations = inputs.supportedApisFromApiSpec.filter((operation) => !existingOperationIds.includes(operation.id));
1228
- }
1229
- else {
1230
- throw manifest.error;
1231
- }
1295
+ throw new error_2.EmptyOptionError(questionNames_1.QuestionNames.ApiOperation, "question");
1232
1296
  }
1297
+ const operations = inputs.supportedApisFromApiSpec;
1233
1298
  return operations;
1234
1299
  },
1235
1300
  };
1236
1301
  }
1237
1302
  exports.apiOperationQuestion = apiOperationQuestion;
1238
- function createProjectQuestionNode() {
1239
- const createProjectQuestion = {
1240
- data: scratchOrSampleQuestion(),
1303
+ function getCopilotPluginFeatureId(inputs) {
1304
+ if (teamsfx_api_1.CLIPlatforms.includes(inputs.platform)) {
1305
+ return inputs[questionNames_1.QuestionNames.CopilotPluginDevelopment];
1306
+ }
1307
+ else {
1308
+ return inputs[questionNames_1.QuestionNames.Capabilities];
1309
+ }
1310
+ }
1311
+ function capabilitySubTree() {
1312
+ const node = {
1313
+ data: capabilityQuestion(),
1241
1314
  children: [
1242
1315
  {
1243
- condition: { equals: ScratchOptions.yes().id },
1244
- data: { type: "group", name: questionNames_1.QuestionNames.SctatchYes },
1316
+ // Notification bot trigger sub-tree
1317
+ condition: { equals: CapabilityOptions.notificationBot().id },
1318
+ data: botTriggerQuestion(),
1319
+ },
1320
+ {
1321
+ // SPFx sub-tree
1322
+ condition: { equals: CapabilityOptions.SPFxTab().id },
1323
+ data: SPFxSolutionQuestion(),
1245
1324
  children: [
1246
1325
  {
1247
- condition: (inputs) => featureFlags_1.isCLIDotNetEnabled() && teamsfx_api_1.CLIPlatforms.includes(inputs.platform),
1248
- data: runtimeQuestion(),
1326
+ data: { type: "group" },
1327
+ children: [
1328
+ { data: SPFxPackageSelectQuestion() },
1329
+ { data: SPFxFrameworkQuestion() },
1330
+ { data: SPFxWebpartNameQuestion() },
1331
+ ],
1332
+ condition: { equals: "new" },
1333
+ },
1334
+ {
1335
+ data: SPFxImportFolderQuestion(),
1336
+ condition: { equals: "import" },
1249
1337
  },
1338
+ ],
1339
+ },
1340
+ {
1341
+ // office addin import sub-tree
1342
+ condition: { equals: CapabilityOptions.officeAddinImport().id },
1343
+ data: { type: "group", name: questionNames_1.QuestionNames.OfficeAddinImport },
1344
+ children: [
1250
1345
  {
1251
- condition: (inputs) => inputs.platform === teamsfx_api_1.Platform.VSCode,
1252
- data: projectTypeQuestion(),
1346
+ data: {
1347
+ type: "folder",
1348
+ name: questionNames_1.QuestionNames.OfficeAddinFolder,
1349
+ title: "Existing add-in project folder",
1350
+ },
1253
1351
  },
1254
1352
  {
1255
- data: capabilityQuestion(),
1256
- children: [
1257
- {
1258
- // Notification bot trigger sub-tree
1259
- condition: { equals: CapabilityOptions.notificationBot().id },
1260
- data: botTriggerQuestion(),
1261
- },
1262
- {
1263
- // SPFx sub-tree
1264
- condition: { equals: CapabilityOptions.SPFxTab().id },
1265
- data: SPFxSolutionQuestion(),
1266
- children: [
1267
- {
1268
- data: { type: "group" },
1269
- children: [
1270
- { data: SPFxPackageSelectQuestion() },
1271
- { data: SPFxFrameworkQuestion() },
1272
- { data: SPFxWebpartNameQuestion() },
1273
- ],
1274
- condition: { equals: "new" },
1275
- },
1276
- {
1277
- data: SPFxImportFolderQuestion(),
1278
- condition: { equals: "import" },
1279
- },
1280
- ],
1281
- },
1282
- {
1283
- // office addin import sub-tree
1284
- condition: { equals: CapabilityOptions.officeAddinImport().id },
1285
- data: { type: "group", name: questionNames_1.QuestionNames.OfficeAddinImport },
1286
- children: [
1287
- {
1288
- data: {
1289
- type: "folder",
1290
- name: questionNames_1.QuestionNames.OfficeAddinFolder,
1291
- title: "Existing add-in project folder",
1292
- },
1293
- },
1294
- {
1295
- data: {
1296
- type: "singleFile",
1297
- name: questionNames_1.QuestionNames.OfficeAddinManifest,
1298
- title: "Select import project manifest file",
1299
- },
1300
- },
1301
- ],
1302
- },
1303
- {
1304
- // office addin other items sub-tree
1305
- condition: {
1306
- enum: CapabilityOptions.officeAddinItems().map((i) => i.id),
1307
- },
1308
- data: officeAddinHostingQuestion(),
1309
- },
1310
- {
1311
- // Copilot plugin from API spec or AI Plugin
1312
- condition: {
1313
- enum: [
1314
- CapabilityOptions.copilotPluginApiSpec().id,
1315
- CapabilityOptions.copilotPluginOpenAIPlugin().id,
1316
- ],
1317
- },
1318
- data: { type: "group", name: questionNames_1.QuestionNames.CopilotPluginExistingApi },
1319
- children: [
1320
- {
1321
- condition: { equals: CapabilityOptions.copilotPluginApiSpec().id },
1322
- data: apiSpecLocationQuestion(),
1323
- },
1324
- {
1325
- condition: { equals: CapabilityOptions.copilotPluginOpenAIPlugin().id },
1326
- data: openAIPluginManifestLocationQuestion(),
1327
- },
1328
- {
1329
- data: apiOperationQuestion(),
1330
- },
1331
- ],
1332
- },
1333
- {
1334
- // programming language
1335
- data: programmingLanguageQuestion(),
1336
- condition: {
1337
- excludesEnum: [
1338
- CapabilityOptions.copilotPluginApiSpec().id,
1339
- CapabilityOptions.copilotPluginOpenAIPlugin().id,
1340
- ],
1341
- },
1342
- },
1343
- {
1344
- // root folder
1345
- data: rootFolderQuestion(),
1346
- },
1347
- {
1348
- // app name
1349
- data: appNameQuestion(),
1350
- },
1351
- ],
1353
+ data: {
1354
+ type: "singleFile",
1355
+ name: questionNames_1.QuestionNames.OfficeAddinManifest,
1356
+ title: "Select import project manifest file",
1357
+ },
1352
1358
  },
1359
+ ],
1360
+ },
1361
+ {
1362
+ // office addin other items sub-tree
1363
+ condition: {
1364
+ enum: CapabilityOptions.officeAddinItems().map((i) => i.id),
1365
+ },
1366
+ data: officeAddinHostingQuestion(),
1367
+ },
1368
+ {
1369
+ // Copilot plugin sub-tree (will show in CLI only)
1370
+ condition: (inputs) => {
1371
+ return (teamsfx_api_1.CLIPlatforms.includes(inputs.platform) &&
1372
+ inputs[questionNames_1.QuestionNames.Capabilities] === CapabilityOptions.copilotPluginCli().id);
1373
+ },
1374
+ data: copilotPluginDevelopmentQuestion(),
1375
+ },
1376
+ {
1377
+ // Copilot plugin from API spec or AI Plugin
1378
+ condition: (inputs) => {
1379
+ return constants_3.copilotPluginExistingApiOptionIds.includes(getCopilotPluginFeatureId(inputs));
1380
+ },
1381
+ data: { type: "group", name: questionNames_1.QuestionNames.CopilotPluginExistingApi },
1382
+ children: [
1353
1383
  {
1354
- condition: (inputs) => inputs.teamsAppFromTdp && utils_2.isPersonalApp(inputs.teamsAppFromTdp),
1355
- data: { type: "group", name: questionNames_1.QuestionNames.RepalceTabUrl },
1356
- children: [
1357
- {
1358
- condition: (inputs) => {
1359
- var _a;
1360
- return (((_a = inputs.teamsAppFromTdp) === null || _a === void 0 ? void 0 : _a.staticTabs.filter((o) => !!o.websiteUrl)) || [])
1361
- .length > 0;
1362
- },
1363
- data: selectTabWebsiteUrlQuestion(),
1364
- },
1365
- {
1366
- condition: (inputs) => {
1367
- var _a;
1368
- return (((_a = inputs.teamsAppFromTdp) === null || _a === void 0 ? void 0 : _a.staticTabs.filter((o) => !!o.contentUrl)) || [])
1369
- .length > 0;
1370
- },
1371
- data: selectTabsContentUrlQuestion(),
1372
- },
1373
- ],
1384
+ condition: (inputs) => {
1385
+ return (getCopilotPluginFeatureId(inputs) === CapabilityOptions.copilotPluginApiSpec().id);
1386
+ },
1387
+ data: apiSpecLocationQuestion(),
1374
1388
  },
1375
1389
  {
1376
1390
  condition: (inputs) => {
1377
- const appDef = inputs.teamsAppFromTdp;
1378
- return appDef && utils_2.needBotCode(appDef);
1391
+ return (getCopilotPluginFeatureId(inputs) ===
1392
+ CapabilityOptions.copilotPluginOpenAIPlugin().id);
1379
1393
  },
1380
- data: selectBotIdsQuestion(),
1394
+ data: openAIPluginManifestLocationQuestion(),
1395
+ },
1396
+ {
1397
+ data: apiOperationQuestion(),
1381
1398
  },
1382
1399
  ],
1383
1400
  },
1384
1401
  {
1385
- condition: { equals: ScratchOptions.no().id },
1386
- data: sampleSelectQuestion(),
1402
+ // programming language
1403
+ data: programmingLanguageQuestion(),
1404
+ condition: (inputs) => {
1405
+ const copilotFeature = getCopilotPluginFeatureId(inputs);
1406
+ if (copilotFeature) {
1407
+ return !constants_3.copilotPluginExistingApiOptionIds.includes(getCopilotPluginFeatureId(inputs));
1408
+ }
1409
+ else {
1410
+ return !!inputs[questionNames_1.QuestionNames.Capabilities];
1411
+ }
1412
+ },
1413
+ },
1414
+ {
1415
+ // root folder
1416
+ data: folderQuestion(),
1417
+ },
1418
+ {
1419
+ // app name
1420
+ data: appNameQuestion(),
1421
+ },
1422
+ ],
1423
+ };
1424
+ return node;
1425
+ }
1426
+ exports.capabilitySubTree = capabilitySubTree;
1427
+ function createProjectQuestionNode() {
1428
+ const createProjectQuestion = {
1429
+ data: { type: "group" },
1430
+ children: [
1431
+ {
1432
+ condition: (inputs) => featureFlags_1.isCLIDotNetEnabled() && teamsfx_api_1.CLIPlatforms.includes(inputs.platform),
1433
+ data: runtimeQuestion(),
1434
+ },
1435
+ {
1436
+ condition: (inputs) => inputs.platform === teamsfx_api_1.Platform.VSCode,
1437
+ data: projectTypeQuestion(),
1438
+ cliOptionDisabled: "self",
1439
+ },
1440
+ capabilitySubTree(),
1441
+ {
1442
+ condition: (inputs) => inputs.teamsAppFromTdp && utils_2.isPersonalApp(inputs.teamsAppFromTdp),
1443
+ data: { type: "group", name: questionNames_1.QuestionNames.RepalceTabUrl },
1444
+ cliOptionDisabled: "all",
1445
+ inputsDisabled: "all",
1387
1446
  children: [
1388
1447
  {
1389
- // root folder
1390
- data: rootFolderQuestion(),
1448
+ condition: (inputs) => {
1449
+ var _a;
1450
+ return (((_a = inputs.teamsAppFromTdp) === null || _a === void 0 ? void 0 : _a.staticTabs.filter((o) => !!o.websiteUrl)) || []).length >
1451
+ 0;
1452
+ },
1453
+ data: selectTabWebsiteUrlQuestion(),
1454
+ },
1455
+ {
1456
+ condition: (inputs) => {
1457
+ var _a;
1458
+ return (((_a = inputs.teamsAppFromTdp) === null || _a === void 0 ? void 0 : _a.staticTabs.filter((o) => !!o.contentUrl)) || []).length >
1459
+ 0;
1460
+ },
1461
+ data: selectTabsContentUrlQuestion(),
1391
1462
  },
1392
1463
  ],
1393
1464
  },
1465
+ {
1466
+ condition: (inputs) => {
1467
+ const appDef = inputs.teamsAppFromTdp;
1468
+ return appDef && utils_2.needBotCode(appDef);
1469
+ },
1470
+ data: selectBotIdsQuestion(),
1471
+ cliOptionDisabled: "all",
1472
+ inputsDisabled: "all",
1473
+ },
1394
1474
  ],
1395
1475
  };
1396
1476
  return createProjectQuestion;
1397
1477
  }
1398
1478
  exports.createProjectQuestionNode = createProjectQuestionNode;
1479
+ function createSampleProjectQuestionNode() {
1480
+ return {
1481
+ data: sampleSelectQuestion(),
1482
+ children: [
1483
+ {
1484
+ data: folderQuestion(),
1485
+ },
1486
+ ],
1487
+ };
1488
+ }
1489
+ exports.createSampleProjectQuestionNode = createSampleProjectQuestionNode;
1399
1490
  function createProjectCliHelpNode() {
1400
1491
  const node = lodash_1.cloneDeep(createProjectQuestionNode());
1401
1492
  const deleteNames = [
@@ -1411,10 +1502,10 @@ function createProjectCliHelpNode() {
1411
1502
  }
1412
1503
  if (!featureFlags_1.isCopilotPluginEnabled()) {
1413
1504
  deleteNames.push(questionNames_1.QuestionNames.CopilotPluginExistingApi);
1505
+ deleteNames.push(questionNames_1.QuestionNames.CopilotPluginDevelopment);
1414
1506
  }
1415
1507
  trimQuestionTreeForCliHelp(node, deleteNames);
1416
- const subTree = pickSubTree(node, questionNames_1.QuestionNames.SctatchYes);
1417
- return subTree;
1508
+ return node;
1418
1509
  }
1419
1510
  exports.createProjectCliHelpNode = createProjectCliHelpNode;
1420
1511
  function trimQuestionTreeForCliHelp(node, deleteNames) {