@microsoft/teamsfx-core 1.7.0 → 1.7.1-alpha.266fa3b9f.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 (322) hide show
  1. package/build/common/constants.d.ts +2 -1
  2. package/build/common/constants.d.ts.map +1 -1
  3. package/build/common/constants.js +2 -1
  4. package/build/common/constants.js.map +1 -1
  5. package/build/common/featureFlags.d.ts +3 -0
  6. package/build/common/featureFlags.d.ts.map +1 -0
  7. package/build/common/featureFlags.js +24 -0
  8. package/build/common/featureFlags.js.map +1 -0
  9. package/build/common/local/localEnvManager.d.ts +1 -1
  10. package/build/common/local/localEnvManager.d.ts.map +1 -1
  11. package/build/common/local/localEnvManager.js +1 -1
  12. package/build/common/local/localEnvManager.js.map +1 -1
  13. package/build/common/projectSettingsHelper.d.ts +1 -1
  14. package/build/common/projectSettingsHelper.d.ts.map +1 -1
  15. package/build/common/projectSettingsHelper.js +6 -4
  16. package/build/common/projectSettingsHelper.js.map +1 -1
  17. package/build/common/samples-config.json +29 -15
  18. package/build/common/samples.d.ts +1 -1
  19. package/build/common/samples.d.ts.map +1 -1
  20. package/build/common/samples.js +3 -2
  21. package/build/common/samples.js.map +1 -1
  22. package/build/common/telemetry.d.ts +9 -0
  23. package/build/common/telemetry.d.ts.map +1 -1
  24. package/build/common/telemetry.js +9 -0
  25. package/build/common/telemetry.js.map +1 -1
  26. package/build/common/templates-config.json +2 -2
  27. package/build/common/tools.d.ts +4 -3
  28. package/build/common/tools.d.ts.map +1 -1
  29. package/build/common/tools.js +31 -28
  30. package/build/common/tools.js.map +1 -1
  31. package/build/core/FxCore.d.ts +3 -2
  32. package/build/core/FxCore.d.ts.map +1 -1
  33. package/build/core/FxCore.js +69 -13
  34. package/build/core/FxCore.js.map +1 -1
  35. package/build/core/environment.d.ts +1 -1
  36. package/build/core/environment.d.ts.map +1 -1
  37. package/build/core/environment.js +6 -1
  38. package/build/core/environment.js.map +1 -1
  39. package/build/core/error.d.ts +1 -0
  40. package/build/core/error.d.ts.map +1 -1
  41. package/build/core/error.js +5 -1
  42. package/build/core/error.js.map +1 -1
  43. package/build/core/middleware/aadManifestMigration.d.ts +3 -0
  44. package/build/core/middleware/aadManifestMigration.d.ts.map +1 -0
  45. package/build/core/middleware/aadManifestMigration.js +207 -0
  46. package/build/core/middleware/aadManifestMigration.js.map +1 -0
  47. package/build/core/middleware/consolidateLocalRemote.d.ts +2 -0
  48. package/build/core/middleware/consolidateLocalRemote.d.ts.map +1 -1
  49. package/build/core/middleware/consolidateLocalRemote.js +80 -51
  50. package/build/core/middleware/consolidateLocalRemote.js.map +1 -1
  51. package/build/core/middleware/questionModel.d.ts.map +1 -1
  52. package/build/core/middleware/questionModel.js +11 -55
  53. package/build/core/middleware/questionModel.js.map +1 -1
  54. package/build/core/question.d.ts +2 -8
  55. package/build/core/question.d.ts.map +1 -1
  56. package/build/core/question.js +68 -52
  57. package/build/core/question.js.map +1 -1
  58. package/build/core/telemetry.d.ts +23 -0
  59. package/build/core/telemetry.d.ts.map +1 -0
  60. package/build/core/telemetry.js +46 -0
  61. package/build/core/telemetry.js.map +1 -0
  62. package/build/plugins/resource/aad/constants.d.ts +3 -0
  63. package/build/plugins/resource/aad/constants.d.ts.map +1 -1
  64. package/build/plugins/resource/aad/constants.js +3 -0
  65. package/build/plugins/resource/aad/constants.js.map +1 -1
  66. package/build/plugins/resource/aad/errors.d.ts +2 -0
  67. package/build/plugins/resource/aad/errors.d.ts.map +1 -1
  68. package/build/plugins/resource/aad/errors.js +15 -1
  69. package/build/plugins/resource/aad/errors.js.map +1 -1
  70. package/build/plugins/resource/aad/index.d.ts.map +1 -1
  71. package/build/plugins/resource/aad/index.js +4 -0
  72. package/build/plugins/resource/aad/index.js.map +1 -1
  73. package/build/plugins/resource/aad/plugin.d.ts +3 -0
  74. package/build/plugins/resource/aad/plugin.d.ts.map +1 -1
  75. package/build/plugins/resource/aad/plugin.js +105 -19
  76. package/build/plugins/resource/aad/plugin.js.map +1 -1
  77. package/build/plugins/resource/aad/utils/configs.d.ts +2 -1
  78. package/build/plugins/resource/aad/utils/configs.d.ts.map +1 -1
  79. package/build/plugins/resource/aad/utils/configs.js +18 -3
  80. package/build/plugins/resource/aad/utils/configs.js.map +1 -1
  81. package/build/plugins/resource/apiconnector/checker.d.ts +6 -0
  82. package/build/plugins/resource/apiconnector/checker.d.ts.map +1 -0
  83. package/build/plugins/resource/apiconnector/checker.js +54 -0
  84. package/build/plugins/resource/apiconnector/checker.js.map +1 -0
  85. package/build/plugins/resource/apiconnector/config.d.ts +23 -0
  86. package/build/plugins/resource/apiconnector/config.d.ts.map +1 -0
  87. package/build/plugins/resource/apiconnector/config.js +5 -0
  88. package/build/plugins/resource/apiconnector/config.js.map +1 -0
  89. package/build/plugins/resource/apiconnector/constants.d.ts +24 -0
  90. package/build/plugins/resource/apiconnector/constants.d.ts.map +1 -1
  91. package/build/plugins/resource/apiconnector/constants.js +33 -7
  92. package/build/plugins/resource/apiconnector/constants.js.map +1 -1
  93. package/build/plugins/resource/apiconnector/depsHandler.d.ts +12 -0
  94. package/build/plugins/resource/apiconnector/depsHandler.d.ts.map +1 -0
  95. package/build/plugins/resource/apiconnector/depsHandler.js +66 -0
  96. package/build/plugins/resource/apiconnector/depsHandler.js.map +1 -0
  97. package/build/plugins/resource/apiconnector/envHandler.d.ts +3 -2
  98. package/build/plugins/resource/apiconnector/envHandler.d.ts.map +1 -1
  99. package/build/plugins/resource/apiconnector/envHandler.js +35 -25
  100. package/build/plugins/resource/apiconnector/envHandler.js.map +1 -1
  101. package/build/plugins/resource/apiconnector/errors.d.ts +13 -1
  102. package/build/plugins/resource/apiconnector/errors.d.ts.map +1 -1
  103. package/build/plugins/resource/apiconnector/errors.js +19 -7
  104. package/build/plugins/resource/apiconnector/errors.js.map +1 -1
  105. package/build/plugins/resource/apiconnector/index.d.ts.map +1 -1
  106. package/build/plugins/resource/apiconnector/index.js +1 -8
  107. package/build/plugins/resource/apiconnector/index.js.map +1 -1
  108. package/build/plugins/resource/apiconnector/plugin.d.ts +12 -2
  109. package/build/plugins/resource/apiconnector/plugin.d.ts.map +1 -1
  110. package/build/plugins/resource/apiconnector/plugin.js +240 -31
  111. package/build/plugins/resource/apiconnector/plugin.js.map +1 -1
  112. package/build/plugins/resource/apiconnector/questions.d.ts +26 -3
  113. package/build/plugins/resource/apiconnector/questions.d.ts.map +1 -1
  114. package/build/plugins/resource/apiconnector/questions.js +100 -22
  115. package/build/plugins/resource/apiconnector/questions.js.map +1 -1
  116. package/build/plugins/resource/apiconnector/result.d.ts +2 -1
  117. package/build/plugins/resource/apiconnector/result.d.ts.map +1 -1
  118. package/build/plugins/resource/apiconnector/result.js.map +1 -1
  119. package/build/plugins/resource/apiconnector/sampleHandler.d.ts +1 -1
  120. package/build/plugins/resource/apiconnector/sampleHandler.d.ts.map +1 -1
  121. package/build/plugins/resource/apiconnector/sampleHandler.js +7 -3
  122. package/build/plugins/resource/apiconnector/sampleHandler.js.map +1 -1
  123. package/build/plugins/resource/apiconnector/utils.d.ts +18 -20
  124. package/build/plugins/resource/apiconnector/utils.d.ts.map +1 -1
  125. package/build/plugins/resource/apiconnector/utils.js +89 -16
  126. package/build/plugins/resource/apiconnector/utils.js.map +1 -1
  127. package/build/plugins/resource/appstudio/appStudio.d.ts.map +1 -1
  128. package/build/plugins/resource/appstudio/appStudio.js +6 -5
  129. package/build/plugins/resource/appstudio/appStudio.js.map +1 -1
  130. package/build/plugins/resource/appstudio/constants.d.ts +1 -0
  131. package/build/plugins/resource/appstudio/constants.d.ts.map +1 -1
  132. package/build/plugins/resource/appstudio/constants.js +23 -1
  133. package/build/plugins/resource/appstudio/constants.js.map +1 -1
  134. package/build/plugins/resource/appstudio/index.d.ts.map +1 -1
  135. package/build/plugins/resource/appstudio/index.js +17 -10
  136. package/build/plugins/resource/appstudio/index.js.map +1 -1
  137. package/build/plugins/resource/appstudio/manifestTemplate.d.ts +2 -2
  138. package/build/plugins/resource/appstudio/manifestTemplate.d.ts.map +1 -1
  139. package/build/plugins/resource/appstudio/manifestTemplate.js +27 -5
  140. package/build/plugins/resource/appstudio/manifestTemplate.js.map +1 -1
  141. package/build/plugins/resource/appstudio/plugin.d.ts.map +1 -1
  142. package/build/plugins/resource/appstudio/plugin.js +3 -1
  143. package/build/plugins/resource/appstudio/plugin.js.map +1 -1
  144. package/build/plugins/resource/appstudio/v3/index.js +1 -1
  145. package/build/plugins/resource/appstudio/v3/index.js.map +1 -1
  146. package/build/plugins/resource/appstudio/v3/plugin.d.ts.map +1 -1
  147. package/build/plugins/resource/appstudio/v3/plugin.js +5 -0
  148. package/build/plugins/resource/appstudio/v3/plugin.js.map +1 -1
  149. package/build/plugins/resource/bot/azureOps.d.ts +0 -1
  150. package/build/plugins/resource/bot/azureOps.d.ts.map +1 -1
  151. package/build/plugins/resource/bot/azureOps.js +0 -28
  152. package/build/plugins/resource/bot/azureOps.js.map +1 -1
  153. package/build/plugins/resource/bot/clientFactory.d.ts +0 -5
  154. package/build/plugins/resource/bot/clientFactory.d.ts.map +1 -1
  155. package/build/plugins/resource/bot/clientFactory.js +1 -29
  156. package/build/plugins/resource/bot/clientFactory.js.map +1 -1
  157. package/build/plugins/resource/bot/configs/teamsBotConfig.d.ts +1 -0
  158. package/build/plugins/resource/bot/configs/teamsBotConfig.d.ts.map +1 -1
  159. package/build/plugins/resource/bot/configs/teamsBotConfig.js +15 -13
  160. package/build/plugins/resource/bot/configs/teamsBotConfig.js.map +1 -1
  161. package/build/plugins/resource/bot/constants.d.ts +2 -9
  162. package/build/plugins/resource/bot/constants.d.ts.map +1 -1
  163. package/build/plugins/resource/bot/constants.js +1 -8
  164. package/build/plugins/resource/bot/constants.js.map +1 -1
  165. package/build/plugins/resource/bot/errors.d.ts +0 -18
  166. package/build/plugins/resource/bot/errors.d.ts.map +1 -1
  167. package/build/plugins/resource/bot/errors.js +1 -38
  168. package/build/plugins/resource/bot/errors.js.map +1 -1
  169. package/build/plugins/resource/bot/functionsHostedBot/deployMgr.d.ts +1 -1
  170. package/build/plugins/resource/bot/functionsHostedBot/deployMgr.d.ts.map +1 -1
  171. package/build/plugins/resource/bot/functionsHostedBot/deployMgr.js +10 -4
  172. package/build/plugins/resource/bot/functionsHostedBot/deployMgr.js.map +1 -1
  173. package/build/plugins/resource/bot/functionsHostedBot/plugin.d.ts.map +1 -1
  174. package/build/plugins/resource/bot/functionsHostedBot/plugin.js +2 -6
  175. package/build/plugins/resource/bot/functionsHostedBot/plugin.js.map +1 -1
  176. package/build/plugins/resource/bot/languageStrategy.d.ts.map +1 -1
  177. package/build/plugins/resource/bot/languageStrategy.js +3 -1
  178. package/build/plugins/resource/bot/languageStrategy.js.map +1 -1
  179. package/build/plugins/resource/bot/plugin.d.ts.map +1 -1
  180. package/build/plugins/resource/bot/plugin.js +4 -1
  181. package/build/plugins/resource/bot/plugin.js.map +1 -1
  182. package/build/plugins/resource/bot/question.d.ts +1 -0
  183. package/build/plugins/resource/bot/question.d.ts.map +1 -1
  184. package/build/plugins/resource/bot/question.js +2 -0
  185. package/build/plugins/resource/bot/question.js.map +1 -1
  186. package/build/plugins/resource/frontend/constants.d.ts +4 -0
  187. package/build/plugins/resource/frontend/constants.d.ts.map +1 -1
  188. package/build/plugins/resource/frontend/constants.js +6 -2
  189. package/build/plugins/resource/frontend/constants.js.map +1 -1
  190. package/build/plugins/resource/frontend/dotnet/plugin.js +1 -1
  191. package/build/plugins/resource/frontend/dotnet/plugin.js.map +1 -1
  192. package/build/plugins/resource/frontend/env.js +2 -2
  193. package/build/plugins/resource/frontend/env.js.map +1 -1
  194. package/build/plugins/resource/frontend/ops/deploy.d.ts +3 -5
  195. package/build/plugins/resource/frontend/ops/deploy.d.ts.map +1 -1
  196. package/build/plugins/resource/frontend/ops/deploy.js +41 -7
  197. package/build/plugins/resource/frontend/ops/deploy.js.map +1 -1
  198. package/build/plugins/resource/frontend/plugin.d.ts.map +1 -1
  199. package/build/plugins/resource/frontend/plugin.js +5 -6
  200. package/build/plugins/resource/frontend/plugin.js.map +1 -1
  201. package/build/plugins/resource/frontend/resources/errors.d.ts +1 -1
  202. package/build/plugins/resource/frontend/resources/errors.d.ts.map +1 -1
  203. package/build/plugins/resource/frontend/resources/errors.js +4 -4
  204. package/build/plugins/resource/frontend/resources/errors.js.map +1 -1
  205. package/build/plugins/resource/frontend/resources/templateInfo.js +1 -1
  206. package/build/plugins/resource/frontend/resources/templateInfo.js.map +1 -1
  207. package/build/plugins/resource/frontend/utils/progress-helper.d.ts +2 -2
  208. package/build/plugins/resource/frontend/utils/progress-helper.d.ts.map +1 -1
  209. package/build/plugins/resource/frontend/utils/progress-helper.js +4 -4
  210. package/build/plugins/resource/frontend/utils/progress-helper.js.map +1 -1
  211. package/build/plugins/resource/frontend/v3/index.d.ts.map +1 -1
  212. package/build/plugins/resource/frontend/v3/index.js +10 -13
  213. package/build/plugins/resource/frontend/v3/index.js.map +1 -1
  214. package/build/plugins/resource/sql/errors.d.ts.map +1 -1
  215. package/build/plugins/resource/sql/errors.js +29 -29
  216. package/build/plugins/resource/sql/errors.js.map +1 -1
  217. package/build/plugins/resource/sql/sqlClient.d.ts.map +1 -1
  218. package/build/plugins/resource/sql/sqlClient.js +2 -8
  219. package/build/plugins/resource/sql/sqlClient.js.map +1 -1
  220. package/build/plugins/solution/fx-solution/arm.d.ts.map +1 -1
  221. package/build/plugins/solution/fx-solution/arm.js +15 -9
  222. package/build/plugins/solution/fx-solution/arm.js.map +1 -1
  223. package/build/plugins/solution/fx-solution/constants.d.ts +17 -2
  224. package/build/plugins/solution/fx-solution/constants.d.ts.map +1 -1
  225. package/build/plugins/solution/fx-solution/constants.js +20 -1
  226. package/build/plugins/solution/fx-solution/constants.js.map +1 -1
  227. package/build/plugins/solution/fx-solution/debug/util/launchNext.d.ts.map +1 -1
  228. package/build/plugins/solution/fx-solution/debug/util/launchNext.js +0 -26
  229. package/build/plugins/solution/fx-solution/debug/util/launchNext.js.map +1 -1
  230. package/build/plugins/solution/fx-solution/question.d.ts +5 -3
  231. package/build/plugins/solution/fx-solution/question.d.ts.map +1 -1
  232. package/build/plugins/solution/fx-solution/question.js +62 -34
  233. package/build/plugins/solution/fx-solution/question.js.map +1 -1
  234. package/build/plugins/solution/fx-solution/v2/deploy.d.ts.map +1 -1
  235. package/build/plugins/solution/fx-solution/v2/deploy.js +14 -5
  236. package/build/plugins/solution/fx-solution/v2/deploy.js.map +1 -1
  237. package/build/plugins/solution/fx-solution/v2/executeUserTask.d.ts +2 -1
  238. package/build/plugins/solution/fx-solution/v2/executeUserTask.d.ts.map +1 -1
  239. package/build/plugins/solution/fx-solution/v2/executeUserTask.js +146 -95
  240. package/build/plugins/solution/fx-solution/v2/executeUserTask.js.map +1 -1
  241. package/build/plugins/solution/fx-solution/v2/getQuestions.d.ts.map +1 -1
  242. package/build/plugins/solution/fx-solution/v2/getQuestions.js +85 -57
  243. package/build/plugins/solution/fx-solution/v2/getQuestions.js.map +1 -1
  244. package/build/plugins/solution/fx-solution/v2/provision.d.ts.map +1 -1
  245. package/build/plugins/solution/fx-solution/v2/provision.js +21 -8
  246. package/build/plugins/solution/fx-solution/v2/provision.js.map +1 -1
  247. package/build/plugins/solution/fx-solution/v2/utils.d.ts.map +1 -1
  248. package/build/plugins/solution/fx-solution/v2/utils.js +9 -1
  249. package/build/plugins/solution/fx-solution/v2/utils.js.map +1 -1
  250. package/package.json +5 -4
  251. package/resource/package.nls.json +133 -64
  252. package/resource/unify-config-change-logs.md +19 -0
  253. package/templates/core/README.md +46 -0
  254. package/templates/fallback/blazor-base.csharp.default.zip +0 -0
  255. package/templates/fallback/bot.csharp.default.zip +0 -0
  256. package/templates/fallback/bot.js.command-and-response.zip +0 -0
  257. package/templates/fallback/bot.js.default.zip +0 -0
  258. package/templates/fallback/{bot-msgext.js.default.zip → bot.js.m365.zip} +0 -0
  259. package/templates/fallback/bot.js.notification-function-base.zip +0 -0
  260. package/templates/fallback/bot.js.notification-restify.zip +0 -0
  261. package/templates/fallback/bot.js.notification-trigger-http.zip +0 -0
  262. package/templates/fallback/bot.js.notification-trigger-timer.zip +0 -0
  263. package/templates/fallback/bot.ts.command-and-response.zip +0 -0
  264. package/templates/fallback/bot.ts.default.zip +0 -0
  265. package/templates/fallback/{bot-msgext.ts.default.zip → bot.ts.m365.zip} +0 -0
  266. package/templates/fallback/bot.ts.notification-function-base.zip +0 -0
  267. package/templates/fallback/bot.ts.notification-restify.zip +0 -0
  268. package/templates/fallback/bot.ts.notification-trigger-http.zip +0 -0
  269. package/templates/fallback/bot.ts.notification-trigger-timer.zip +0 -0
  270. package/templates/fallback/bot.ts.notification.zip +0 -0
  271. package/templates/fallback/function-base.js.default.zip +0 -0
  272. package/templates/fallback/function-base.ts.default.zip +0 -0
  273. package/templates/fallback/function-triggers.js.HTTPTrigger.zip +0 -0
  274. package/templates/fallback/function-triggers.ts.HTTPTrigger.zip +0 -0
  275. package/templates/fallback/tab.csharp.default.zip +0 -0
  276. package/templates/fallback/tab.js.default.zip +0 -0
  277. package/templates/fallback/tab.js.m365.zip +0 -0
  278. package/templates/fallback/tab.js.non-sso.zip +0 -0
  279. package/templates/fallback/tab.ts.default.zip +0 -0
  280. package/templates/fallback/tab.ts.m365.zip +0 -0
  281. package/templates/fallback/tab.ts.non-sso.zip +0 -0
  282. package/templates/plugins/resource/aad/auth/bot/README.md +63 -0
  283. package/templates/plugins/resource/aad/auth/bot/js/public/auth-end.html +65 -0
  284. package/templates/plugins/resource/aad/auth/bot/js/public/auth-start.html +177 -0
  285. package/templates/plugins/resource/aad/auth/bot/js/sso/showUserInfo.js +19 -0
  286. package/templates/plugins/resource/aad/auth/bot/js/sso/ssoDialog.js +173 -0
  287. package/templates/plugins/resource/aad/auth/bot/js/sso/teamsSsoBot.js +55 -0
  288. package/templates/plugins/resource/aad/auth/bot/ts/public/auth-end.html +65 -0
  289. package/templates/plugins/resource/aad/auth/bot/ts/public/auth-start.html +177 -0
  290. package/templates/plugins/resource/aad/auth/bot/ts/sso/showUserInfo.ts +24 -0
  291. package/templates/plugins/resource/aad/auth/bot/ts/sso/ssoDialog.ts +182 -0
  292. package/templates/plugins/resource/aad/auth/bot/ts/sso/teamsSsoBot.ts +69 -0
  293. package/templates/plugins/resource/aad/auth/tab/README.md +49 -0
  294. package/templates/plugins/resource/aad/auth/tab/js/public/auth-end.html +58 -0
  295. package/templates/plugins/resource/aad/auth/tab/js/public/auth-start.html +57 -0
  296. package/templates/plugins/resource/aad/auth/tab/js/sso/GetUserProfile.jsx +34 -0
  297. package/templates/plugins/resource/aad/auth/tab/ts/public/auth-end.html +58 -0
  298. package/templates/plugins/resource/aad/auth/tab/ts/public/auth-start.html +57 -0
  299. package/templates/plugins/resource/aad/auth/tab/ts/sso/GetUserProfile.tsx +34 -0
  300. package/templates/plugins/resource/aad/manifest/aad.template.json +1 -14
  301. package/templates/plugins/resource/apiconnector/package.json +6 -0
  302. package/templates/plugins/resource/apiconnector/sample/{ts/api-connector.template → comment.template} +13 -14
  303. package/templates/plugins/resource/apiconnector/sample/js/aad.template +26 -0
  304. package/templates/plugins/resource/apiconnector/sample/js/apiKey.template +19 -0
  305. package/templates/plugins/resource/apiconnector/sample/js/basic.template +14 -0
  306. package/templates/plugins/resource/apiconnector/sample/js/cert.template +15 -0
  307. package/templates/plugins/resource/apiconnector/sample/js/custom.template +39 -0
  308. package/templates/plugins/resource/apiconnector/sample/ts/aad.template +31 -0
  309. package/templates/plugins/resource/apiconnector/sample/ts/apiKey.template +16 -0
  310. package/templates/plugins/resource/apiconnector/sample/ts/basic.template +14 -0
  311. package/templates/plugins/resource/apiconnector/sample/ts/cert.template +17 -0
  312. package/templates/plugins/resource/apiconnector/sample/ts/custom.template +42 -0
  313. package/templates/plugins/resource/bot/bicep/botProvision.template.bicep +9 -0
  314. package/templates/plugins/resource/bot/bicep/funcHostedBotProvision.template.bicep +2 -0
  315. package/templates/plugins/resource/function/bicep/functionProvision.template.bicep +2 -0
  316. package/templates/plugins/resource/simpleauth/bicep/simpleAuthProvision.template.bicep +4 -0
  317. package/templates/plugins/resource/webapp/bicep/webappProvision.template.bicep +2 -0
  318. package/templates/core/README-auto-generated.md +0 -31
  319. package/templates/fallback/bot-msgext.csharp.default.zip +0 -0
  320. package/templates/fallback/msgext.js.default.zip +0 -0
  321. package/templates/fallback/msgext.ts.default.zip +0 -0
  322. package/templates/plugins/resource/apiconnector/sample/js/api-connector.template +0 -30
@@ -32,6 +32,10 @@
32
32
  "core.addResource.addResourcesNotice": "[Teams Toolkit] Resources \"%s\" have been successfully configured for your project, trigger 'Teams: Provision in the cloud' will create the resources in your Azure subscription.",
33
33
  "core.addResource.addResourcesNoticeForCli": "[Teams Toolkit] Resources \"%s\" have been successfully configured for your project, run 'teamsfx provision' will create the resources in your Azure subscription.",
34
34
  "core.NotProvisionedNotice": "'%s' is not provisioned in the cloud yet. Please provision first.",
35
+ "core.NoPluginSelected": "No plugin selected",
36
+ "core.InvalidOption": "invalid options: [%s]",
37
+ "core.Notification.ReadMore": "Read more",
38
+ "core.AppStudioJsonUndefined": "App Studio json is undefined",
35
39
  "core.generateArmTemplate.failNotice": "'%s' Failed to create ARM template for required Azure services.",
36
40
  "core.updateArmTemplate.failNotice": "'%s' Failed to update ARM template for required Azure services.",
37
41
  "core.updateArmTemplate.successNotice": "The Azure resource template is updated based on your resource and capability selection. We recommend to initialize your project workspace with git init to track all changes.",
@@ -40,9 +44,15 @@
40
44
  "core.migrationToArmAndMultiEnv.SuccessMessage": "Upgrade succeeded. Your project is upgraded to new configuration files.",
41
45
  "core.migrationToArmAndMultiEnv.ErrorMessage": "Upgrade Failed. Please check the error message in Output window to troubleshoot and fix. You can also click Learn More for the FAQ and how to upgrade manually.",
42
46
  "core.migrationToArmAndMultiEnv.PreCheckErrorMessage": "Upgrade Failed. '%s' doesn't exist or is not in json format. Please fix it and try again by running command (Teams: Upgrade project).\nYou can also click Learn More for the FAQ.",
43
- "core.consolidateLocalRemote.Message": "Teams Toolkit will upgrade your project's local config and manifest template to support the latest features. The upgrade process will not change your custom code and create the backup files in case revert is needed.\nNotice this upgrade is a must-have to continue to use current version Teams Toolkit. If you are not ready to upgrade and want to continue to use the old version, please find Teams Toolkit in Extension and install the version <= ????",
44
- "core.consolidateLocalRemote.SuccessMessage": "Upgrade succeeded. Your project is upgraded to new configuration files.",
45
- "core.consolidateLocalRemote.outputMsg": "Congratulations! You have successfully upgraded your Teams App project structure. We have added config.local.json for local debug and manifest.template.json for both Teams app running locally and remotely. And we have backed up localSettings.json, manifest.local.template.json and manifest.remote.template.json to .backup folder.",
47
+ "core.consolidateLocalRemote.Message": "Teams Toolkit will upgrade your project's local config and manifest template to support the latest features. The upgrade process will not change your custom code and create the backup files in case revert is needed. Notice this upgrade is a must-have to continue to use current version Teams Toolkit. If you are not ready to upgrade and want to continue to use the old version, please find Teams Toolkit in Extension and install the version <= 3.7.0",
48
+ "core.consolidateLocalRemote.SuccessMessage": "Congratulations! You have successfully upgraded your Teams App project structure. We have added config.local.json for local debug and manifest.template.json for both Teams app running locally and remotely. And we have backed up localSettings.json, manifest.local.template.json and manifest.remote.template.json to .backup folder.",
49
+ "core.aadManifestMigration.Canceled": "[core] Upgrade cancelled.",
50
+ "core.aadManifestMigration.VSCodeCanceledNotice": "[core] Notice upgrade to new configuration files is a must-have to continue to use current version Teams Toolkit. If you are not ready to upgrade and want to continue to use the old version Teams Toolkit, please find Teams Toolkit in Extension and install the version <= ????",
51
+ "core.aadManifestMigration.CLICanceledNotice": "[core] Notice upgrade to new configuration files is a must-have to continue to use current version Teams Toolkit CLI. If you want to upgrade, please trigger this command again.",
52
+ "core.aadManifestMigration.CLINotReadyInstallLatestVersionNotice": "[core] If you are not ready to upgrade and want to continue to use the old version Teams Toolkit CLI, please install the version <= ????",
53
+ "core.aadManifestMigration.Message": "Teams Toolkit will upgrade your project's to support the latest features. The upgrade process will not change your custom code and create the backup files in case revert is needed.\nNotice this upgrade is a must-have to continue to use current version Teams Toolkit. If you are not ready to upgrade and want to continue to use the old version, please find Teams Toolkit in Extension and install the version <= ????",
54
+ "core.aadManifestMigration.outputMsg": "Congratulations! You have successfully upgraded your Teams App project structure. We have added aad.template.json for AAD app configuration. And we have backed up projectSettings.json, permissions.json to .backup folder.",
55
+ "core.aadManifestMigration.SuccessMessage": "Upgrade succeeded. Your project is upgraded to new configuration files.",
46
56
  "core.deployArmTemplates.StartNotice": "[%s] Start deploying ARM templates.",
47
57
  "core.deployArmTemplates.CompileBicepSuccessNotice": "[%s] Successfully compile bicep files to JSON.",
48
58
  "core.deployArmTemplates.SuccessNotice": "[%s] Successfully deploy ARM templates. Resource group name: %s. Deployment name: %s",
@@ -176,17 +186,17 @@
176
186
  "plugins.bot.questionHostTypeTrigger.error.emptySelection": "You have to select at least one trigger.",
177
187
  "plugins.bot.questionHostTypeTrigger.error.hostTypeConflict": "Azure Functions and Azure App Service host types are in conflict.",
178
188
  "plugins.bot.triggers.http-functions.cliName": "http-functions",
179
- "plugins.bot.triggers.http-functions.description": "A function that will be run whenever it receives an HTTP request.",
180
- "plugins.bot.triggers.http-functions.detail": "A function hosted on Azure Functions that will be run whenever it receives an HTTP request.",
181
- "plugins.bot.triggers.http-functions.label": "HTTP Trigger (Azure Functions)",
189
+ "plugins.bot.triggers.http-functions.description": "Azure Functions",
190
+ "plugins.bot.triggers.http-functions.detail": "A running function hosted on Azure Functions can listen to HTTP requests.",
191
+ "plugins.bot.triggers.http-functions.label": "HTTP Trigger",
182
192
  "plugins.bot.triggers.http-restify.cliName": "http-restify",
183
- "plugins.bot.triggers.http-restify.description": "A restify server that will be run whenever it receives an HTTP request.",
184
- "plugins.bot.triggers.http-restify.detail": "A restify server hosted on Azure App Service that will be run whenever it receives an HTTP request.",
185
- "plugins.bot.triggers.http-restify.label": "HTTP Trigger (Restify)",
193
+ "plugins.bot.triggers.http-restify.description": "Restify Server",
194
+ "plugins.bot.triggers.http-restify.detail": "A running restify server hosted on Azure App Service can listen to HTTP requests.",
195
+ "plugins.bot.triggers.http-restify.label": "HTTP Trigger",
186
196
  "plugins.bot.triggers.timer-functions.cliName": "timer-functions",
187
- "plugins.bot.triggers.timer-functions.description": "A function that will be run on a specific schedule.",
188
- "plugins.bot.triggers.timer-functions.detail": "A function hosted on Azure Functions that will be run on a specific schedule.",
189
- "plugins.bot.triggers.timer-functions.label": "Timer Trigger (Azure Functions)",
197
+ "plugins.bot.triggers.timer-functions.description": "Azure Functions",
198
+ "plugins.bot.triggers.timer-functions.detail": "A running function hosted on Azure Functions can respond based on a specific schedule.",
199
+ "plugins.bot.triggers.timer-functions.label": "Timer Trigger",
190
200
  "plugins.function.recoverTeamsFxConfigFilesTip": "If you manually updated configuration files (under directory .%s), recover them.",
191
201
  "plugins.function.recreateProject": "If you can not recover configuration files, create a new project.",
192
202
  "plugins.function.checkNetwork": "Check your network connection.",
@@ -224,24 +234,6 @@
224
234
  "plugins.sql.getQuestionAdminPassword.validation.sqlPasswordCannotContainUserName": "Your password cannot contain part or all of the user name",
225
235
  "plugins.sql.getQuestionConfirmPassword.title": "Confirm admin password of SQL",
226
236
  "plugins.sql.getQuestionConfirmPassword.validation.sqlPasswordMustMatch": "Password and password confirmation must match",
227
- "plugins.sql.errorMessage.GetDetail": "Get the detailed error message in output.",
228
- "plugins.sql.errorMessage.LinkHelpMessage": "You can follow %s to handle it.",
229
- "plugins.sql.errorMessage.SqlInputError": "SQL admin name or password is empty",
230
- "plugins.sql.errorMessage.SqlAskInputError": "Failed to get answer for SQL questions",
231
- "plugins.sql.errorMessage.SqlEndpointError": "SQL Server %s is invalid.",
232
- "plugins.sql.errorMessage.DatabaseUserCreateError": "Failed to create user '%s' in database %s",
233
- "plugins.sql.errorMessage.SqlAddAdminError": "Failed to add AAD admin '%s'. %s",
234
- "plugins.sql.errorMessage.SqlLocalFirwallError": "Failed to add local firewall for '%s'. %s",
235
- "plugins.sql.errorMessage.SqlDeleteLocalFirwallError": "Failed to delete local firewall for '%s'. Delete '%s' manually. %s",
236
- "plugins.sql.errorMessage.SqlUserInfoError": "Failed to get login user info.",
237
- "plugins.sql.errorMessage.SqlGetConfigError": "Failed to get config value of '%s' from '%s'.",
238
- "plugins.sql.errorMessage.SqlInvalidConfigError": "The config value of '%s' is invalid for %s.",
239
- "plugins.sql.errorMessage.SqlCheckError": "Failed to check SQL Server '%s'. %s",
240
- "plugins.sql.errorMessage.SqlCheckAdminError": "Failed to check AAD admin '%s'. %s",
241
- "plugins.sql.errorMessage.IdentityCredentialUndefine": "Cannot access database to add managed identity user %s. Please add the user for database %s manually",
242
- "plugins.sql.errorMessage.ServicePrincipalWarning": "service principal admin in azure sql can't add database user <%s>. You can add the user for %s manually",
243
- "plugins.sql.errorMessage.DomainError": "Conditional Access policy requires a compliant device, and the device is not compliant. %s",
244
- "plugins.sql.errorMessage.GuestAdminError": "SQL admin does not have enough permission to add database user. %s",
245
237
  "plugins.cicd.ciOption.detail": "Help checkout code, build and run test.",
246
238
  "plugins.cicd.cdOption.detail": "Help checkout code, build, test and deploy to cloud.",
247
239
  "plugins.cicd.provisionOption.detail": "Help create/update resources in cloud and Teams app registration.",
@@ -258,26 +250,58 @@
258
250
  "error.cicd.FailedToListMultiEnv": "Failed to list multi env.",
259
251
  "error.cicd.PreconditionNotMet": "Some preconditions of inputs are not met.",
260
252
  "error.cicd.NoProjectOpened.details": "No project opened.",
261
- "plugins.apiConnector.getQuestionApiName.title": "Please input the API name",
262
- "plugins.apiConnector.getQuestionEndpoint.title": "Please input the API endpoint",
253
+ "plugins.apiConnector.getQuestionApiName.title": "Please input an alias for this API",
254
+ "plugins.apiConnector.getQuestionApiName.placeholder": "The alias will be used to generate related app setting names for your API. The names can be changed later",
255
+ "plugins.apiConnector.getQuestionEndpoint.title": "Please input the API endpoint for local debugging",
256
+ "plugins.apiConnector.getQuestionEndpoint.placeholder": "We will add the endpoint to local app settings",
263
257
  "plugins.apiConnector.getQuestionApiType.title": "Please select the authentication type to connect API",
264
- "plugins.apiConnector.getQuestionApiUserName.title": "Please input the user name:",
265
- "plugins.apiConnector.whichService.title": "Please select which component to connect existing API",
266
- "plugins.apiConnector.botOption.title": "Select the bot component to connect the existing API",
267
- "plugins.apiConnector.functionOption.title": "Select the function component to connect the existing API",
268
- "plugins.apiConnector.BasicAuthOption.detail": "Take username and password to authentication",
269
- "plugins.apiConnector.CertAuthOption.detail": "Take Certification as the way to authentication",
270
- "plugins.apiConnector.AADAuthOption.detail": "Take Azure active directory as the way to authentication",
271
- "plugins.apiConnector.APIKeyOption.detail": "Take API Key as the way to authentication",
272
- "plugins.apiConnector.ImplementMyselfOption.detail": "Define the authentication by yourself",
273
- "plugins.apiConnector.errorMessage.ApiConnectorInputError": "Api connector input empty",
258
+ "plugins.apiConnector.getQuestion.basicAuth.userName.title": "Please input the user name",
259
+ "plugins.apiConnector.getQuestion.basicAuth.userName.placeholder": "The content will be added to your project's local app setting",
260
+ "plugins.apiConnector.getQuestion.appType.title": "Which AAD app registration do you want to use?",
261
+ "plugins.apiConnector.getQuestion.apiKeyLocation.title": "Please select the API Key position in request",
262
+ "plugins.apiConnector.getQuestion.apiKeyName.title": "Please input the name of %s",
263
+ "plugins.apiConnector.getQuestion.apiKeyName.placeholder": "The content will be added to your project's local app setting",
264
+ "plugins.apiConnector.whichService.title": "Please select which component needs to invoke this API",
265
+ "plugins.apiConnector.whichService.placeholder": "We will add necessary packages and app settings for the selected project",
266
+ "plugins.apiConnector.whichAuthType.title": "Please select how you want to authenticate the API requests",
267
+ "plugins.apiConnector.whichAuthType.placeholder": "We will generate sample code based on your selection",
268
+ "plugins.apiConnector.reuseAppOption.title": "Reuse app registration in current Teams app",
269
+ "plugins.apiConnector.reuseAppOption.placeholder": "Use the AAD app registration created for current Teams app",
270
+ "plugins.apiConnector.anotherAppOption.title": "Use another app registration",
271
+ "plugins.apiConnector.anotherAppOption.placeholder": "Provide information for your AAD app registration",
272
+ "plugins.apiConnector.requestHeaderOption.title": "Request header",
273
+ "plugins.apiConnector.queryParamsOption.title": "Query parameter",
274
+ "plugins.apiConnector.appTenantId.title": "Please input AAD tenant id",
275
+ "plugins.apiConnector.appTenantId.placeholder": "AAD tenant id will be added to your project's local app setting",
276
+ "plugins.apiConnector.appId.title": "Please input application id (client id)",
277
+ "plugins.apiConnector.appId.placeholder": "AAD application id (client id) will be added to your project's local app setting",
278
+ "plugins.apiConnector.botOption.title": "Notification / Command & Response",
279
+ "plugins.apiConnector.functionOption.title": "Azure Function App",
280
+ "plugins.apiConnector.BasicAuthOption.detail": "Use username and password to authentication requests",
281
+ "plugins.apiConnector.CertAuthOption.detail": "Use certificate to authenticate requests",
282
+ "plugins.apiConnector.AADAuthOption.detail": "Use access token issued by Azure Active Directory to authenticate requests",
283
+ "plugins.apiConnector.APIKeyOption.detail": "Use API Key to authenticate requests",
284
+ "plugins.apiConnector.ImplementMyselfOption.detail": "Use customized logic to authenticate requests",
274
285
  "plugins.apiConnector.errorMessage.ApiConnectorPathNotExistError": "Path %s not exists. Select a valid folder.",
275
286
  "plugins.apiConnector.errorMessage.ApiConnectorCreateFileFail": "Failed to create %s",
276
- "plugins.apiConnector.errorMessage.NoActivePluginsExistError": "Please create active resource first.",
287
+ "plugins.apiConnector.errorMessage.NoActivePluginsExistError": "Please create an active resource first.",
277
288
  "plugins.apiConnector.errorMessage.NoBotOrFunctionExistError": "Please create bot or function resource first.",
278
289
  "plugins.apiConnector.errorMessage.InvalidProjectError": "Please select a valid TeamsFx project",
279
290
  "plugins.apiConnector.errorMessage.ApiConnectorFunctionRouteError": "Failed to route function call: %s",
280
291
  "plugins.apiConnector.questionComponentSelect.emptySelection": "You have to select at least one component.",
292
+ "plugins.apiConnector.QuestionAppName.validation.ApiNameExist": "Please provide a different API name to avoid conflicts with existing file %s",
293
+ "plugins.apiConnector.Question.validation.EmptyValue": "The value should not be empty",
294
+ "plugins.apiConnector.Question.validation.NotGuid": "The value should be guid",
295
+ "plugins.apiConnector.QuestionApiEndpoint.validation.NotHttp": "The API endpoint should be a valid http(s) url",
296
+ "plugins.apiConnector.Notification.GenerateFiles": "We have generated sample code to call your API at %s. ",
297
+ "plugins.apiConnector.Notification.NpmInstall": "If you did not install @microsoft/teamsfx npm package before, please execute 'npm install' for your project.",
298
+ "plugins.apiConnector.Notification.BasicAuth": "Please add your user password as %s to '.env.teamsfx.local' in %s before testing your code locally.",
299
+ "plugins.apiConnector.Notification.CertAuth": "Please add code to read your cert content and replace the value of %s.",
300
+ "plugins.apiConnector.Notification.ApiKeyAuth": "Please add your API Key as %s to .env.teamsfx.local in %s in before testing your code locally.",
301
+ "plugins.apiConnector.Notification.ReuseAADAuth": "Please replace %s with actual value in the generated file(s), gain consent for the scope and add the scope to 'templates/appPackage/aad.template.json' before testing your code locally.",
302
+ "plugins.apiConnector.Notification.GenAADAuth": "Please replace %s with actual value in the generated file(s) and add your client secret to %s in %s before testing your code locally.",
303
+ "plugins.apiConnector.Notification.CustomAuth": "We have generated sample code to help you create an API client with your own authentication implementation at %s in %s. Please refer the comments in sample code to add your implementation.",
304
+ "plugins.apiConnector.Notification.LinkNotification": "You can visit %s to understand how to call your API with TeamsFx SDK.",
281
305
  "error.ProjectFolderExistError": "Path %s already exists. Select a different folder.",
282
306
  "error.PathNotExistError": "Path does not exist: %s",
283
307
  "error.ProjectFolderInvalidError": "Path %s is invalid, please set valid root folder in user settings(Use absolute directory or relative directory start with \\${homeDir} ).",
@@ -290,6 +314,7 @@
290
314
  "error.InvalidEnvNameError": "Environment name can only contain letters, digits, _ and -.",
291
315
  "error.UpgradeCanceledError": "If you don't want to upgrade your project, please install another version of Teams Toolkit (version <= 2.10.0).",
292
316
  "error.ConsolidateCanceledError": "If you don't want to upgrade your project, please install another version of Teams Toolkit (version <= ????).",
317
+ "error.AadManifestMigrationCanceledError": "If you don't want to upgrade your project, please install another version of Teams Toolkit (version <= ????).",
293
318
  "error.OperationNotSupportedForExistingAppError": "Operation is not supported for existing app: %s.",
294
319
  "error.OperationNotPermittedError": "Operation is not permitted: %s",
295
320
  "error.InvalidInputError": "Failed to update context: %s",
@@ -397,6 +422,24 @@
397
422
  "error.function.FindAppError": "Failed to find the function app.",
398
423
  "error.function.UploadZipError": "Failed to upload zip package.",
399
424
  "error.function.UnknownFallbackError": "Trigger fallback caused by unknown reason.",
425
+ "error.sql.GetDetail": "Get the detailed error message in output.",
426
+ "error.sql.LinkHelpMessage": "You can follow %s to handle it.",
427
+ "error.sql.SqlInputError": "SQL admin name or password is empty",
428
+ "error.sql.SqlAskInputError": "Failed to get answer for SQL questions",
429
+ "error.sql.SqlEndpointError": "SQL Server %s is invalid.",
430
+ "error.sql.DatabaseUserCreateError": "Failed to create user '%s' in database %s",
431
+ "error.sql.SqlAddAdminError": "Failed to add AAD admin '%s'. %s",
432
+ "error.sql.SqlLocalFirwallError": "Failed to add local firewall for '%s'. %s",
433
+ "error.sql.SqlDeleteLocalFirwallError": "Failed to delete local firewall for '%s'. Delete '%s' manually. %s",
434
+ "error.sql.SqlUserInfoError": "Failed to get login user info.",
435
+ "error.sql.SqlGetConfigError": "Failed to get config value of '%s' from '%s'.",
436
+ "error.sql.SqlInvalidConfigError": "The config value of '%s' is invalid for %s.",
437
+ "error.sql.SqlCheckError": "Failed to check SQL Server '%s'. %s",
438
+ "error.sql.SqlCheckAdminError": "Failed to check AAD admin '%s'. %s",
439
+ "error.sql.IdentityCredentialUndefine": "Cannot access database to add managed identity user %s. Please add the user for database %s manually",
440
+ "error.sql.ServicePrincipalWarning": "service principal admin in azure sql can't add database user <%s>. You can add the user for %s manually",
441
+ "error.sql.DomainError": "Conditional Access policy requires a compliant device, and the device is not compliant. %s",
442
+ "error.sql.GuestAdminError": "SQL admin does not have enough permission to add database user. %s",
400
443
  "error.dotnet.FileIOError": "Failed to read/write %s.",
401
444
  "error.dotnet.UploadZipError": "Failed to upload zip package.",
402
445
  "error.dotnet.PublishCredentialError": "Failed to retrieve publish credential.",
@@ -406,7 +449,17 @@
406
449
  "error.dotnet.FetchConfigError": "Failed to find %s from configuration",
407
450
  "error.dotnet.NoProjectSettingError": "Failed to load project setting",
408
451
  "error.dotnet.UnhandledError": "Unhandled error.",
409
- "error.apiConnector.SampleCodeCreateFailError": "Failed to generate sample code file %s. Reason: %s",
452
+ "error.apiConnector.SampleCodeCreateFailError": "Failed to scaffold API connection samples. Reason: %s",
453
+ "error.apiConnector.ScaffoldApiFilesError": "Failed to scaffold connect API files %s, Reason: %s",
454
+ "error.apiConnector.ApiConnectorInputError": "Api connector input %s is invalid",
455
+ "error.apiConnector.ApiConnectorPathNotExistError": "Path %s not exists. Select a valid folder.",
456
+ "error.apiConnector.ApiConnectorCreateFileFail": "Failed to create %s",
457
+ "error.apiConnector.NoActivePluginsExistError": "Please create active resource first.",
458
+ "error.apiConnector.NoBotOrFunctionExistError": "Please create bot or function resource first.",
459
+ "error.apiConnector.InvalidProjectError": "Please select a valid TeamsFx project",
460
+ "error.apiConnector.ApiConnectorFunctionRouteError": "Failed to route function call: %s",
461
+ "error.apiConnector.SDKVersionImcompatibleError":"In %s project, @microsoft/teamsfx version %s is not compatible with the version %s we support",
462
+ "error.apiConnector.pkgFileNotExistError": "In %s project, there is no package.json exist",
410
463
  "core.QuestionAppName.validation.pattern": "Application name must start with a letter and can only contain letters and digits.",
411
464
  "core.QuestionAppName.validation.pathExist": "Path exists: %s. Select a different application name.",
412
465
  "core.ProgrammingLanguageQuestion.title": "Programming Language",
@@ -414,23 +467,41 @@
414
467
  "core.ProgrammingLanguageQuestion.placeholder.spfx": "SPFx is currently supporting TypeScript only.",
415
468
  "core.TabOption.description": "UI-based app",
416
469
  "core.TabOption.detail": "Teams-aware webpages embedded in Microsoft Teams",
470
+ "core.TabOption.detailNew": "Teams identity aware webpages embedded in Microsoft Teams",
417
471
  "core.BotOption.description": "Conversational Agent",
418
472
  "core.BotOption.detail": "Running simple and repetitive automated tasks through conversations",
473
+ "core.MessageExtensionOption.labelNew": "Search, action and link unfurling app",
474
+ "core.MessageExtensionOption.label": "Messaging Extension",
419
475
  "core.MessageExtensionOption.description": "Custom UI when users compose messages in Teams",
420
476
  "core.MessageExtensionOption.detail": "Inserting app content or acting on a message without leaving the conversation",
421
- "core.NotificationOption.description": "Notification",
422
- "core.NotificationOption.detail": "Sending a message in response to stimulus not originating from the user",
423
- "core.CommandAndResponseOption.description": "Conversational Agent",
424
- "core.CommandAndResponseOption.detail": "Running simple and repetitive automated tasks through conversations",
477
+ "core.NotificationOption.label": "Notification bot",
478
+ "core.NotificationOption.detail": "Send notification to Teams via various triggers",
479
+ "core.CommandAndResponseOption.label": "Command bot",
480
+ "core.CommandAndResponseOption.detail": "Respond to simple commands in Teams chat",
481
+ "core.ExistingTabOption.label": "Embed existing web app",
482
+ "core.ExistingTabOption.detail": "Bring your own static webpages and embed in Microsoft Teams",
483
+ "core.ExistingTabEndpointQuestion.placeholder": "Input your existing tab endpoint",
484
+ "core.ExistingTabEndpointQuestion.title": "Enter your web app's local endpoint",
485
+ "core.ExistingTabEndpointQuestion.validation": "Please enter a valid URL started with https://",
486
+ "core.TabSPFxOption.label": "Tab(SPFx)",
487
+ "core.TabSPFxOption.labelNew": "SPFx launch page",
425
488
  "core.TabSPFxOption.description": "Client-side app with Sharepoint Framework",
426
489
  "core.TabSPFxOption.detail": "Auto-hosted SPFx web part tightly integrated with Microsoft Teams",
427
- "core.Sso.description": "Single Sign On",
428
- "core.Sso.detail": "Enable Single Sign On in your Teams app",
429
- "core.TabNonSso.description": "UI-based app without SSO",
430
- "core.TabNonSso.detail": "Teams-aware webpages embedded in Microsoft Teams without Single Sign On",
490
+ "core.TabSPFxOption.detailNew": "Teams-aware webpages with SharePoint Framework embeded in Microsoft Teams",
491
+ "core.TabSso.description": "Single Sign On for Tab",
492
+ "core.TabSso.detail": "Enable Single Sign On in your Teams Tab app",
493
+ "core.BotSso.description": "Single Sign On for Bot",
494
+ "core.BotSso.detail": "Enable Single Sign On in your Teams Bot app",
495
+ "core.TabNonSso.label": "Static launch Page",
496
+ "core.TabNonSso.detail": "Static webpages embeded in Microsoft Teams",
497
+ "core.addCapabilityQuestion.title": "Choose Capabilities",
498
+ "core.addCapabilityQuestion.titleNew": "Capabilities",
431
499
  "core.addCapabilityQuestion.notificationCommandAndResponseConflict": "Notification and Command and Response capabilities are in conflict",
432
500
  "core.createCapabilityQuestion.title": "Select capabilities",
501
+ "core.createCapabilityQuestion.titleNew": "Capabilities",
433
502
  "core.createCapabilityQuestion.placeholder": "Select at least 1 capability",
503
+ "core.createCapabilityQuestion.single.title": "Capability",
504
+ "core.createCapabilityQuestion.single.placeholder": "Select an option",
434
505
  "core.capability.validation": "Invalid capability combinations: %s, option sets: %s are mutually exclusive",
435
506
  "core.capability.validation.spfx": "Add SPFx Tab is only permitted for minimal app",
436
507
  "core.createCapabilityQuestion.validation1": "Teams Toolkit offers only the Tab capability in a Teams app with Visual Studio Code and SharePoint Framework. The Bot and Messaging extension capabilities are not available",
@@ -455,12 +526,8 @@
455
526
  "core.QuestionNewResourceGroupLocation.title": "Location for the new resource group",
456
527
  "core.ScratchOptionYesVSC.label": "Create a new Teams app",
457
528
  "core.ScratchOptionYesVSC.detail": "Use the Teams Toolkit to create a new Teams application.",
458
- "core.ScratchOptionYesM365VSC.label": "Create a new Microsoft 365 app",
459
- "core.ScratchOptionYesM365VSC.detail": "Use the Teams Toolkit to create a new Microsoft 365 application.",
460
529
  "core.ScratchOptionYes.label": "Create a new Teams app",
461
530
  "core.ScratchOptionYes.detail": "Use the Teams Toolkit to create a new Teams application.",
462
- "core.ScratchOptionYesM365.label": "Create a new Microsoft 365 app",
463
- "core.ScratchOptionYesM365.detail": "Use the Teams Toolkit to create a new Microsoft 365 application.",
464
531
  "core.ScratchOptionNoVSC.label": "Start from a sample",
465
532
  "core.ScratchOptionNoVSC.detail": "Use an existing sample as a starting point for your new application.",
466
533
  "core.ScratchOptionNo.label": "Start from a sample",
@@ -469,6 +536,7 @@
469
536
  "core.getCreateNewOrFromSampleQuestion.placeholder": "Select an option",
470
537
  "core.SampleSelect.title": "Start from a sample",
471
538
  "core.SampleSelect.placeholder": "Select a sample",
539
+ "core.SampleSelect.buttons.viewSamples": "View samples",
472
540
  "core.HostTypeOptionAzure.label": "Azure",
473
541
  "core.HostTypeOptionSPFx.label": "SharePoint Framework (SPFx)",
474
542
  "core.AzureResourceSQL.label": "Azure SQL Database",
@@ -481,11 +549,8 @@
481
549
  "core.getUserEmailQuestion.title": "Add owner to Teams/AAD app for the account under the same M365 tenant (email)",
482
550
  "core.getUserEmailQuestion.validation1": "Email address cannot be null or empty",
483
551
  "core.getUserEmailQuestion.validation2": "Please change [UserName] to the real user name",
484
- "core.M365AppTypeSelectQuestion.title": "Select an app type",
485
- "core.M365AppTypeSelectQuestion.placeholder": "Select a type of application to jumpstart your project.",
486
- "core.M365LaunchPageOptionItem.description": "Web pages embedded in Teams, Outlook and Office.com",
487
- "core.M365MessagingExtensionOptionItem.description": "Custom UI when user composes messages in Teams or emails in Outlook",
488
- "core.M365MessagingExtensionOptionItem.detail": "Insert app content in conversations or emails.",
552
+ "core.M365SsoLaunchPageOptionItem.detail": "Microsoft 365 identity aware webpages embedded in Microsoft Teams, Outlook and Office.com",
553
+ "core.M365SearchAppOptionItem.detail": "Insert search result when user composes messages in Teams or emails in Outlook",
489
554
  "core.common.TeamsMobileDesktopClientName": "Teams desktop, mobile client id",
490
555
  "core.common.TeamsWebClientName": "Teams web client id",
491
556
  "core.common.OfficeDesktopClientName": "Office desktop client id",
@@ -503,6 +568,7 @@
503
568
  "error.aad.UpdateAppIdUriError": "Failed to update Application ID URI in Azure Active Directory. %s",
504
569
  "error.aad.UpdatePermissionError": "Failed to update application permission in Azure Active Directory.",
505
570
  "error.aad.AppIdUriInvalidError": "Invalid Application ID URI. Provision your application before continuing.",
571
+ "error.aad.CannotGenerateIdentifierUris": "Cannot generate identifierUris because no botId or frontend domain found, you need to specified at least one of them in config file",
506
572
  "error.aad.InvalidSelectedPlugins": "Invalid selected plugins. %s",
507
573
  "error.aad.ParsePermissionError": "Failed to parse permission request.",
508
574
  "error.aad.UnhandledError": "Unhandled Error. ",
@@ -520,6 +586,7 @@
520
586
  "error.aad.AadManifestMissingObjectId": "id property is missing or invalid in AAD manifest file, please re-provision and try again",
521
587
  "error.aad.AadManifestMissingReplyUrlsWithType": "replyUrlsWithType property is missing or invalid in AAD manifest file, please re-provision and try again",
522
588
  "error.aad.AadManifestMissingIdentifierUris": "identifierUris property is missing or invalid in AAD manifest file, please re-provision and try again",
589
+ "error.aad.AadManifestNotProvisioned": "Failed to generate AAD manifest because the resources have not been provisioned yet. You need to run provision or local debug first.",
523
590
  "error.aad.UpdateAadAppError": "Failed to update application in Azure Active Directory: %s",
524
591
  "error.aad.AadManifestNotFoundError": "Aad manifest file not found",
525
592
  "error.aad.GetDisplayNameError": "Failed to get display name.",
@@ -542,9 +609,9 @@
542
609
  "error.aad.manifest.PreAuthorizedApplicationsIsMissing": "preAuthorizedApplications is missing\n",
543
610
  "error.aad.manifest.AccessTokenAcceptedVersionIs1": "accessTokenAcceptedVersion is 1\n",
544
611
  "error.aad.manifest.OptionalClaimsIsMissing": "optionalClaims is missing\n",
545
- "error.aad.manifest.OptionalClaimsMissingIdtypClaim":"optionalClaims access token doesn't contain idtyp claim\n",
612
+ "error.aad.manifest.OptionalClaimsMissingIdtypClaim": "optionalClaims access token doesn't contain idtyp claim\n",
546
613
  "error.aad.manifest.AADManifestIssues": "AAD manifest has following issues that may potentially break the Teams App:\n",
547
- "error.aad.manifest.UnknownResourceAppId":"Unknown resourceAppId %s",
614
+ "error.aad.manifest.UnknownResourceAppId": "Unknown resourceAppId %s",
548
615
  "error.aad.manifest.UnknownResourceAccessType": "Unknown resourceAccess: %s",
549
616
  "error.aad.manifest.UnknownResourceAccessId": "Unknown resourceAccess id: %s",
550
617
  "plugins.aad.NoSelection": "No Azure AD app found. Will not update permissions. You need to run provision or local debug first.",
@@ -626,6 +693,8 @@
626
693
  "core.addSsoFiles.projectPathNotExists": "Project path does not exist",
627
694
  "core.addSsoFiles.canNotAddNonSsoTabWhenSsoEnabled": "Failed to add non SSO Tab. SSO is enabled in this project",
628
695
  "core.addSsoFiles.canNotAddTabWhenSsoNotEnabled": "Failed to add Tab. You need to run 'add SSO' first",
696
+ "core.addSsoFiles.FailedToCreateAuthFiles": "Failed to create files for add sso. Detail error: %s.",
697
+ "core.addSsoFiles.invalidLanguage": "Invalid language. Please make sure '.fx/projectSettings.json' is not modified and try again.",
629
698
  "core.getUserEmailQuestion.validation3": "Email address is not valid",
630
699
  "plugins.bot.DetailedError": "Detailed error: %s.",
631
700
  "plugins.bot.DetailedErrorReason": "Reason: %s",
@@ -752,4 +821,4 @@
752
821
  "depChecker.depsNotFound": "Cannot find @SupportedPackages.\n\nTeams Toolkit requires these dependencies.\n\nClick \"Install\" to install @InstallPackages.",
753
822
  "depChecker.linuxDepsNotFound": "Cannot find @SupportedPackages.\n\nTeams Toolkit requires these dependencies. \n\n(If you just installed @SupportedPackages, restart Visual Studio Code for the change to take effect.)",
754
823
  "depChecker.linuxDepsNotFoundHelpLinkMessage": "Cannot find @SupportedPackages.\n\nTeams Toolkit requires these dependencies."
755
- }
824
+ }
@@ -0,0 +1,19 @@
1
+ # Congratulations! You have successfully upgraded your Teams App project structure.
2
+
3
+ We have updated the configuration files so that your project is compatible with the latest Teams Toolkit features, including a consistent configuration file schema and a single Teams app manifest template across local and remote environments.
4
+
5
+ ## Know about the changes we made
6
+ After the project upgrade, the new file structure will consist:
7
+ * `localSettings.json` will be updated to `config.local.json` to ensure consistency between local and remote environment configuration settings.
8
+ * `manifest.local.template.json` and `manifest.remote.template.json` will be merged into a single manifest template file named `manifest.template.json` to make managing manifest template files easy.
9
+
10
+ Your existing `localSettings.json`, `manifest.local.template.json`, and `manifest.remote.template.json` files will be backed up in `.backup` folder.
11
+
12
+ ## Know what you need to do
13
+ Since Teams Toolkit will use `manifest.remote.template.json` as a single manifest template file after the upgrade, if you have customized the `manifest.local.template.json` you will need to place your changes in `config.local.json` and pass it to the template.
14
+
15
+ ## Know about how to restore your project
16
+ If anything went wrong after the upgrade process, you could restore your old project configuration files by:
17
+ * Copy the .backup/.fx folder to your project root path.
18
+ * Copy the .backup/templates folder to your project root path.
19
+ * Delete `config.local.json` and `manifest.template.json` if needed.
@@ -0,0 +1,46 @@
1
+ # Embed Existing Web App
2
+
3
+ Embed existing web app is to bring your own static webpages and embed in Microsoft Teams.
4
+
5
+ ## Get Started
6
+
7
+ Before run this app locally, make sure you have prepared the following prerequisites:
8
+ * An [M365 account for development](https://docs.microsoft.com/microsoftteams/platform/toolkit/accounts).
9
+ * Ensure your own static webpages meet all the [prerequisites](https://aka.ms/teamsfx-existing-tab#prerequisites).
10
+ * Launch your own static webpages with local endpoint, and update the field in local config file (`.fx/configs/config.local.json`) accordingly.
11
+
12
+ Then, you can quickly start local preview via the environment tree view in Teams Toolkit, refer [Preview your Teams app](https://aka.ms/teamsfx-existing-tab#preview-your-teams-app) for more information.
13
+
14
+ ## Develop
15
+
16
+ The following table lists all the scaffolded folder and files by Teams Toolkit:
17
+
18
+ | File name | Contents |
19
+ |- | -|
20
+ |`.fx/configs/config.local.json`| Configuration file for local environment |
21
+ |`.fx/configs/config.dev.json`| Configuration file for dev environment |
22
+ |`.fx/configs/projectSettings.json`| Global project settings, which apply to all environments |
23
+ |`templates/appPackage/manifest.template.json`|Teams app manifest template|
24
+ |`templates/appPackage/resources`|Teams app's icon referenced by manifest template|
25
+ |`.gitignore` | The git ignore file to exclude local files from TeamsFx project |
26
+
27
+ ### Edit Teams App manifest
28
+
29
+ You can find the Teams app manifest in `templates/appPackage/manifest.template.json`.
30
+
31
+ The file contains template arguments with `{...}` statements which will be replaced at build time. You may add any extra properties or permissions you require to this file. See the [schema reference](https://docs.microsoft.com/microsoftteams/platform/resources/schema/manifest-schema) for more information.
32
+
33
+ ## Deployment
34
+
35
+ Teams Toolkit can help provision new Teams app per different environments.
36
+
37
+ After provisioned, you can preview your app via the environment tree view in Teams Toolkit, refer [Preview your Teams app](https://aka.ms/teamsfx-existing-tab#preview-your-teams-app) for more information.
38
+
39
+ After finish development and to distribute your app to others, you can [Publish Teams apps using Teams Toolkit](https://docs.microsoft.com/microsoftteams/platform/toolkit/publish).
40
+
41
+ ## Reference
42
+
43
+ * [Embed Existing Web App with Teams Toolkit](https://aka.ms/teamsfx-existing-tab)
44
+ * [Teams Toolkit and Step-by-step Documentations](https://docs.microsoft.com/microsoftteams/platform/toolkit/teams-toolkit-fundamentals)
45
+ * [Teams Toolkit CLI](https://docs.microsoft.com/microsoftteams/platform/toolkit/teamsfx-cli)
46
+ * [Teams Toolkit Samples](https://github.com/OfficeDev/TeamsFx-Samples)
Binary file
Binary file
@@ -0,0 +1,63 @@
1
+ ## How to enable SSO in TeamsFx Bot projects
2
+
3
+ This doc will show you how to add Single Sign On feature to TeamsFx Bot projects. Note that this article is only for Teams Toolkit Visual Studio Code Extension version after x.x.x or TeamsFx CLI version after x.x.x.
4
+
5
+ *Note: This article is only for bot hosted on Azure App Service. Bot that hosted on Azure Function is not supported now.*
6
+
7
+ *Note: This article is only for TeamsFx projects by Javascript and Typescript. For Dotnet, please refer to ${help link}.*
8
+
9
+ ### Step 1: Enable Single Sign On with TeamsFx commands
10
+
11
+ You can follow the following steps to add SSO feature to your TeamsFx projects.
12
+ - From Visual Studio Code: open the command palette and select: `Teams: Add SSO`.
13
+ - From TeamsFx CLI: run command `teamsfx add sso` in your project directory.
14
+
15
+ What TeamsFx will do when trigger this command:
16
+
17
+ 1. Create Azure AD app template under `template\appPackage\aad.template.json`
18
+
19
+ 1. Add `webApplicationInfo` object in Teams App manifest
20
+
21
+ 1. Create `README.md` and sample code under `auth/bot/`
22
+
23
+ ### Step 2: Update your source code
24
+
25
+ There are two folders under `auth/bot`: `public` and `sso`.
26
+
27
+ 1. In `public`, there are two html files which is used for authentication. You can simply copy the folder and place it under `bot/src`. Note that you need to modify `bot/src/index` file to add routing to these pages.
28
+
29
+ 1. In `sso`, there are three files. You can simply copy the folder and place it under `bot/src`.
30
+ - `showUserInfo`: This file implement a function to get user info with SSO token. You can follow this method and create your own method that requires SSO token.
31
+ - `ssoDialog`: Create a [ComponentDialog](https://docs.microsoft.com/en-us/javascript/api/botbuilder-dialogs/componentdialog?view=botbuilder-ts-latest) that used for Single Sign On.
32
+ - `teamsSsoBot`: Create a [TeamsActivityHandler](https://docs.microsoft.com/en-us/dotnet/api/microsoft.bot.builder.teams.teamsactivityhandler?view=botbuilder-dotnet-stable) with `ssoDialog` and add `showUserInfo` as a command that can be triggered. You need to register your own command with `addCommand` in this file.
33
+
34
+ 1. After adding the following files, you need to new a `teamsSsoBot` instance in `bot/src/index` file with:
35
+
36
+ ```
37
+ const handler = new TeamsSsoBot();
38
+ server.post("/api/messages", async (req, res) => {
39
+ await adapter.processActivity(req, res, async (context) => {
40
+ await handler.run(context);
41
+ }).catch((err) => {
42
+ // Error message including "412" means it is waiting for user's consent, which is a normal process of SSO, sholdn't throw this error.
43
+ if (!err.message.includes("412")) {
44
+ throw err;
45
+ }
46
+ });
47
+ });
48
+ ```
49
+
50
+ 1. As mentioned above, you also need to add routing in `bot/src/index` file as below:
51
+
52
+ ```
53
+ server.get(
54
+ "/auth-*.html",
55
+ restify.plugins.serveStatic({
56
+ directory: path.join(__dirname, "public"),
57
+ })
58
+ );
59
+ ```
60
+
61
+ ### Step 3: Provision Azure AD app and deploy latest code
62
+
63
+ After running `add sso` command and updating source code, you need to run `Provision` + `Deploy` or `Local Debug` again to provision an Azure AD app for Single Sign On. After the above steps, Single Sign On is successfully added in your Teams App.