@microsoft/teamsfx-core 3.0.4-beta.2025071503.0 → 3.0.4-rc.1

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 (162) hide show
  1. package/build/client/teamsDevPortalClient.js +1 -1
  2. package/build/client/teamsDevPortalClient.js.map +1 -1
  3. package/build/common/daSpecParser.js +1 -1
  4. package/build/common/daSpecParser.js.map +1 -1
  5. package/build/common/kiotaClient.d.ts.map +1 -1
  6. package/build/common/kiotaClient.js +5 -17
  7. package/build/common/kiotaClient.js.map +1 -1
  8. package/build/common/projectTypeChecker.d.ts +0 -1
  9. package/build/common/projectTypeChecker.d.ts.map +1 -1
  10. package/build/common/projectTypeChecker.js +1 -14
  11. package/build/common/projectTypeChecker.js.map +1 -1
  12. package/build/common/templates-config.json +7 -9
  13. package/build/common/tools.d.ts +0 -4
  14. package/build/common/tools.d.ts.map +1 -1
  15. package/build/common/tools.js +1 -58
  16. package/build/common/tools.js.map +1 -1
  17. package/build/common/wrappedAxiosClient.d.ts.map +1 -1
  18. package/build/common/wrappedAxiosClient.js +1 -0
  19. package/build/common/wrappedAxiosClient.js.map +1 -1
  20. package/build/component/configManager/lifecycle.d.ts.map +1 -1
  21. package/build/component/configManager/lifecycle.js +2 -8
  22. package/build/component/configManager/lifecycle.js.map +1 -1
  23. package/build/component/configManager/validator.d.ts.map +1 -1
  24. package/build/component/configManager/validator.js +0 -1
  25. package/build/component/configManager/validator.js.map +1 -1
  26. package/build/component/constants.d.ts +6 -0
  27. package/build/component/constants.d.ts.map +1 -1
  28. package/build/component/constants.js +7 -1
  29. package/build/component/constants.js.map +1 -1
  30. package/build/component/coordinator/index.d.ts.map +1 -1
  31. package/build/component/coordinator/index.js +29 -12
  32. package/build/component/coordinator/index.js.map +1 -1
  33. package/build/component/deps-checker/constant/message.d.ts +11 -44
  34. package/build/component/deps-checker/constant/message.d.ts.map +1 -1
  35. package/build/component/deps-checker/constant/message.js +13 -48
  36. package/build/component/deps-checker/constant/message.js.map +1 -1
  37. package/build/component/deps-checker/internal/dotnetChecker.d.ts.map +1 -1
  38. package/build/component/deps-checker/internal/dotnetChecker.js +1 -4
  39. package/build/component/deps-checker/internal/dotnetChecker.js.map +1 -1
  40. package/build/component/deps-checker/internal/funcToolChecker.d.ts.map +1 -1
  41. package/build/component/deps-checker/internal/funcToolChecker.js +2 -5
  42. package/build/component/deps-checker/internal/funcToolChecker.js.map +1 -1
  43. package/build/component/deps-checker/internal/testToolChecker.d.ts.map +1 -1
  44. package/build/component/deps-checker/internal/testToolChecker.js +11 -17
  45. package/build/component/deps-checker/internal/testToolChecker.js.map +1 -1
  46. package/build/component/deps-checker/util/fileHelper.d.ts +2 -2
  47. package/build/component/deps-checker/util/fileHelper.d.ts.map +1 -1
  48. package/build/component/deps-checker/util/fileHelper.js +9 -3
  49. package/build/component/deps-checker/util/fileHelper.js.map +1 -1
  50. package/build/component/driver/aad/create.d.ts.map +1 -1
  51. package/build/component/driver/aad/create.js +3 -5
  52. package/build/component/driver/aad/create.js.map +1 -1
  53. package/build/component/driver/deploy/azure/azureStaticWebAppGetDeploymentTokenDriver.d.ts.map +1 -1
  54. package/build/component/driver/deploy/azure/azureStaticWebAppGetDeploymentTokenDriver.js +12 -10
  55. package/build/component/driver/deploy/azure/azureStaticWebAppGetDeploymentTokenDriver.js.map +1 -1
  56. package/build/component/driver/file/createOrUpdateEnvironmentFile.d.ts +1 -0
  57. package/build/component/driver/file/createOrUpdateEnvironmentFile.d.ts.map +1 -1
  58. package/build/component/driver/file/createOrUpdateEnvironmentFile.js +90 -165
  59. package/build/component/driver/file/createOrUpdateEnvironmentFile.js.map +1 -1
  60. package/build/component/driver/teamsApp/teamsappMgr.d.ts.map +1 -1
  61. package/build/component/driver/teamsApp/teamsappMgr.js +0 -3
  62. package/build/component/driver/teamsApp/teamsappMgr.js.map +1 -1
  63. package/build/component/generator/defaultGenerator.d.ts.map +1 -1
  64. package/build/component/generator/defaultGenerator.js +5 -6
  65. package/build/component/generator/defaultGenerator.js.map +1 -1
  66. package/build/component/generator/generator.js +2 -2
  67. package/build/component/generator/generator.js.map +1 -1
  68. package/build/component/generator/generatorAction.d.ts +1 -2
  69. package/build/component/generator/generatorAction.d.ts.map +1 -1
  70. package/build/component/generator/generatorAction.js +1 -1
  71. package/build/component/generator/generatorAction.js.map +1 -1
  72. package/build/component/generator/officeAddin/generator.js.map +1 -1
  73. package/build/component/generator/officeAddin/metaOSHelper.d.ts.map +1 -1
  74. package/build/component/generator/officeAddin/metaOSHelper.js +5 -44
  75. package/build/component/generator/officeAddin/metaOSHelper.js.map +1 -1
  76. package/build/component/generator/templates/metadata/tab.js +4 -4
  77. package/build/component/generator/templates/metadata/tab.js.map +1 -1
  78. package/build/component/generator/templates/metadata/vs.d.ts.map +1 -1
  79. package/build/component/generator/templates/metadata/vs.js +12 -0
  80. package/build/component/generator/templates/metadata/vs.js.map +1 -1
  81. package/build/component/generator/templates/templateNames.d.ts +3 -1
  82. package/build/component/generator/templates/templateNames.d.ts.map +1 -1
  83. package/build/component/generator/templates/templateNames.js +3 -1
  84. package/build/component/generator/templates/templateNames.js.map +1 -1
  85. package/build/component/generator/templates/templateReplaceMap.js +2 -2
  86. package/build/component/generator/templates/templateReplaceMap.js.map +1 -1
  87. package/build/component/generator/utils.d.ts +3 -3
  88. package/build/component/generator/utils.d.ts.map +1 -1
  89. package/build/component/generator/utils.js +6 -23
  90. package/build/component/generator/utils.js.map +1 -1
  91. package/build/component/resource/botService/errors.d.ts +1 -1
  92. package/build/component/resource/botService/errors.d.ts.map +1 -1
  93. package/build/component/resource/botService/errors.js +2 -2
  94. package/build/component/resource/botService/errors.js.map +1 -1
  95. package/build/component/resource/botService/messages.d.ts +1 -1
  96. package/build/component/resource/botService/messages.d.ts.map +1 -1
  97. package/build/component/resource/botService/messages.js +1 -6
  98. package/build/component/resource/botService/messages.js.map +1 -1
  99. package/build/core/FxCore.d.ts.map +1 -1
  100. package/build/core/FxCore.js +1 -4
  101. package/build/core/FxCore.js.map +1 -1
  102. package/build/error/depCheck.d.ts +1 -4
  103. package/build/error/depCheck.d.ts.map +1 -1
  104. package/build/error/depCheck.js +2 -2
  105. package/build/error/depCheck.js.map +1 -1
  106. package/build/question/generator.js +0 -2
  107. package/build/question/generator.js.map +1 -1
  108. package/build/question/inputs/index.d.ts +0 -1
  109. package/build/question/inputs/index.d.ts.map +1 -1
  110. package/build/question/inputs/index.js +0 -1
  111. package/build/question/inputs/index.js.map +1 -1
  112. package/build/question/options/CreateProjectOptions.js +1 -1
  113. package/build/question/options/CreateProjectOptions.js.map +1 -1
  114. package/build/question/options/SPFxAddWebpartOptions.js +1 -1
  115. package/build/question/options/SPFxAddWebpartOptions.js.map +1 -1
  116. package/build/question/options/index.d.ts +0 -1
  117. package/build/question/options/index.d.ts.map +1 -1
  118. package/build/question/options/index.js +0 -1
  119. package/build/question/options/index.js.map +1 -1
  120. package/build/question/other.js +1 -1
  121. package/build/question/other.js.map +1 -1
  122. package/build/question/scaffold/vs/createRootNode.d.ts +1 -0
  123. package/build/question/scaffold/vs/createRootNode.d.ts.map +1 -1
  124. package/build/question/scaffold/vs/createRootNode.js +11 -0
  125. package/build/question/scaffold/vs/createRootNode.js.map +1 -1
  126. package/build/question/scaffold/vsc/CapabilityOptions.d.ts +1 -0
  127. package/build/question/scaffold/vsc/CapabilityOptions.d.ts.map +1 -1
  128. package/build/question/scaffold/vsc/CapabilityOptions.js +9 -1
  129. package/build/question/scaffold/vsc/CapabilityOptions.js.map +1 -1
  130. package/build/tsconfig.tsbuildinfo +1 -1
  131. package/package.json +5 -5
  132. package/resource/package.nls.cs.json +57 -68
  133. package/resource/package.nls.de.json +57 -68
  134. package/resource/package.nls.es.json +57 -68
  135. package/resource/package.nls.fr.json +57 -68
  136. package/resource/package.nls.it.json +57 -68
  137. package/resource/package.nls.ja.json +57 -68
  138. package/resource/package.nls.json +9 -2
  139. package/resource/package.nls.ko.json +57 -68
  140. package/resource/package.nls.pl.json +57 -68
  141. package/resource/package.nls.pt-BR.json +57 -68
  142. package/resource/package.nls.ru.json +57 -68
  143. package/resource/package.nls.tr.json +57 -68
  144. package/resource/package.nls.zh-Hans.json +57 -68
  145. package/resource/package.nls.zh-Hant.json +57 -68
  146. package/resource/yaml-schema/yaml.schema.json +2 -2
  147. package/templates/fallback/common.zip +0 -0
  148. package/templates/fallback/csharp.zip +0 -0
  149. package/templates/fallback/js.zip +0 -0
  150. package/templates/fallback/python.zip +0 -0
  151. package/templates/fallback/ts.zip +0 -0
  152. package/templates/plugins/resource/aad/auth/bot/js/public/auth-end.html +49 -60
  153. package/templates/plugins/resource/aad/auth/bot/ts/public/auth-end.html +49 -60
  154. package/build/question/inputs/RegeneratePluginInputs.d.ts +0 -16
  155. package/build/question/inputs/RegeneratePluginInputs.d.ts.map +0 -1
  156. package/build/question/inputs/RegeneratePluginInputs.js +0 -5
  157. package/build/question/inputs/RegeneratePluginInputs.js.map +0 -1
  158. package/build/question/options/RegeneratePluginOptions.d.ts +0 -10
  159. package/build/question/options/RegeneratePluginOptions.d.ts.map +0 -1
  160. package/build/question/options/RegeneratePluginOptions.js +0 -28
  161. package/build/question/options/RegeneratePluginOptions.js.map +0 -1
  162. package/resource/yaml-schema/v1.9/yaml.schema.json +0 -2107
@@ -3,7 +3,7 @@
3
3
  "core.addApi.confirm.teamsYaml": "Microsoft 365 代理程式工具組將根據您提供的新 OpenAPI 文件,修改 \"%s\" 資料夾中的檔案與 \"%s\"。為了避免遺失未預期的變更,請在繼續之前備份您的檔案或使用 Git 進行變更追蹤。",
4
4
  "core.addApi.confirm.localTeamsYaml": "Microsoft 365 代理程式工作組將根據您提供的新 OpenAPI 文件,修改您 \"%s\" 資料夾中的檔案,以及 \"%s\" 和 \"%s\"。為了避免遺失未預期的變更,請在繼續之前備份您的檔案或使用 Git 進行變更追蹤。",
5
5
  "core.addApi.continue": "新增",
6
- "core.regenerateApi.continue": "重新產生",
6
+ "core.regenerateApi.continue": "Regenerate",
7
7
  "core.addKnowledge.confirm": "Microsoft 365 代理程式工具組將根據您提供的功能來源,修改您 \"%s\" 資料夾中的檔案。為了避免遺失未預期的變更,請在繼續之前備份您的檔案或使用 Git 進行變更追蹤。",
8
8
  "core.addKnowledge.continue": "新增",
9
9
  "core.setSensitivityLabel.confirm": "Teams 工具組會根據您提供的敏感度標籤來修改檔案 \"%s\"。為了避免遺失未預期的變更,請在繼續之前備份您的檔案或使用 Git 進行變更追蹤。",
@@ -135,8 +135,8 @@
135
135
  "plugins.frontend.checkStoragePermissionsTip": "檢查您是否有 Azure 儲存體帳戶的權限。",
136
136
  "plugins.frontend.checkSystemTimeTip": "系統時間不正確可能導致認證過期。請確定您的系統時間正確。",
137
137
  "suggestions.retryTheCurrentStep": "請重試目前的步驟。",
138
- "plugins.appstudio.buildSucceedNotice": "App package successfully built at [local address](%s).",
139
- "plugins.appstudio.buildSucceedNotice.fallback": "App package successfully built at %s.",
138
+ "plugins.appstudio.buildSucceedNotice": "Teams 套件已成功在 [本機位址](%s) 建置。",
139
+ "plugins.appstudio.buildSucceedNotice.fallback": "Teams 套件已成功在 %s 建置。",
140
140
  "plugins.appstudio.createPackage.progressBar.message": "正在建置應用程式套件...",
141
141
  "plugins.appstudio.createPackage.aiPlugin.invalidFilePropertyWarning": "函數 %s 之 %s 中的static_template具有無效的文件屬性。將會刪除並忽略它。",
142
142
  "plugins.appstudio.createPackage.aiPlugin.overrideWarning": "函式 %s 之 %s 中的 static_template 同時具有檔案和其他屬性。檔案內容將會取代所有屬性。",
@@ -195,7 +195,7 @@
195
195
  "error.appstudio.apiFailed.name.common": "API 失敗",
196
196
  "error.appstudio.authServiceApiFailed": "無法對開發人員入口網站進行 API 呼叫: %s、%s、要求路徑: %s",
197
197
  "error.appstudio.publishFailed": "無法發佈識別碼為 %s 的應用程式。",
198
- "error.appstudio.buildError": "Unable to build app Package!",
198
+ "error.appstudio.buildError": "無法建置Teams套件!",
199
199
  "error.appstudio.checkPermissionFailed": "無法檢查許可權。原因: %s",
200
200
  "error.appstudio.grantPermissionFailed": "無法授與許可權。原因: %s",
201
201
  "error.appstudio.listCollaboratorFailed": "無法列出共同作業者。原因: %s",
@@ -292,7 +292,7 @@
292
292
  "core.copilotPlugin.scaffold.summary.warning.operationId": "%s 風險降低: 不需要,已自動產生 operationId 並新增至 \"%s\" 檔案。",
293
293
  "core.copilotPlugin.scaffold.summary.warning.operationIdContainsSpecialCharacters": "OpenAPI 描述檔中 '%s' 的作業識別碼包含特殊字元,已重新命名為 '%s'。",
294
294
  "core.copilotPlugin.scaffold.summary.warning.swaggerVersion": "OpenAPI 描述文件採用 Swagger 版本 2.0。緩和措施: 不需要。內容已轉換為 OpenAPI 3.0,並儲存於 \"%s\"。",
295
- "core.copilotPlugin.scaffold.summary.warning.spec31ConvertTo30": "OpenAPI 描述文件版本為 3.1,已轉換為 OpenAPI 3.0,並儲存於 \"%s\"",
295
+ "core.copilotPlugin.scaffold.summary.warning.spec31ConvertTo30": "The OpenAPI description document version is 3.1 and has been converted to OpenAPI 3.0 and saved in \"%s\".",
296
296
  "core.copilotPlugin.scaffold.summary.warning.teamsManifest.lengthExceeding": "\"%s\" 不能超過 %s 個字元。",
297
297
  "core.copilotPlugin.scaffold.summary.warning.teamsManifest.missingFullDescription": "遺漏完整描述。",
298
298
  "core.copilotPlugin.scaffold.summary.warning.teamsManifest.mitigation": "風險降低: 更新 \"%s\" 中的 \"%s\" 欄位。",
@@ -309,12 +309,12 @@
309
309
  "core.createProjectQuestion.option.description.worksInOutlook": "在 Teams 和 Outlook 中運作",
310
310
  "core.createProjectQuestion.option.description.worksInOutlookM365": "可在 Teams、Outlook 和 Microsoft 365 應用程式中運作",
311
311
  "core.createProjectQuestion.projectType.bot.detail": "建立即時且吸引人的聊天體驗,讓工作順暢地自動化",
312
- "core.createProjectQuestion.projectType.agentForTeams.label": "Teams 的代理程式",
313
- "core.createProjectQuestion.projectType.agentForTeams.detail": "使用 Teams AI 程式庫建置適用於 Microsoft Teams 的代理程式",
314
- "core.createProjectQuestion.projectType.agentForTeams.title": "使用 Teams AI 程式庫之適用於 Teams 的代理程式",
315
- "core.createProjectQuestion.projectType.teamsApp.label": "Teams 應用程式",
316
- "core.createProjectQuestion.projectType.teamsApp.detail": " Microsoft Teams 建立您自己的網頁、聊天機器人或訊息擴充",
317
- "core.createProjectQuestion.projectType.teamsApp.title": " Microsoft Teams 中使用的應用程式功能",
312
+ "core.createProjectQuestion.projectType.agentForTeams.label": "Agent for Teams",
313
+ "core.createProjectQuestion.projectType.agentForTeams.detail": "Build an agent for Microsoft Teams easily using Teams AI Library",
314
+ "core.createProjectQuestion.projectType.agentForTeams.title": "Agent for Teams Using Teams AI Library",
315
+ "core.createProjectQuestion.projectType.teamsApp.label": "Teams App",
316
+ "core.createProjectQuestion.projectType.teamsApp.detail": "Create your own web page, chat bot or message extension for Microsoft Teams",
317
+ "core.createProjectQuestion.projectType.teamsApp.title": "App Features Used in Microsoft Teams",
318
318
  "core.createProjectQuestion.projectType.bot.label": "Bot",
319
319
  "core.createProjectQuestion.projectType.bot.title": "使用 Bot 的應用程式功能",
320
320
  "core.createProjectQuestion.projectType.messageExtension.copilotEnabled.detail": "在 Teams 和 Outlook 的文字輸入框中搜尋並採取動作",
@@ -328,20 +328,20 @@
328
328
  "core.createProjectQuestion.projectType.tab.title": "使用 Tab 的應用程式功能",
329
329
  "core.createProjectQuestion.projectType.copilotExtension.title": "使用代理程式的應用程式功能",
330
330
  "core.createProjectQuestion.projectType.copilotExtension.placeholder": "選取選項",
331
- "core.createProjectQuestion.projectType.customCopilot.detail": "建立智慧型代理程式,由您管理協調流程並提供自己的 LLM",
331
+ "core.createProjectQuestion.projectType.customCopilot.detail": "Build intelligent agent where you manage orchestration and provide your own LLM",
332
332
  "core.createProjectQuestion.projectType.customCopilot.label": "自訂引擎代理程式",
333
- "core.createProjectQuestion.projectType.customCopilot.title": "使用 Microsoft 365 Agents SDK 的應用程式功能",
333
+ "core.createProjectQuestion.projectType.customCopilot.title": "App Features Using Microsoft 365 Agents SDK",
334
334
  "core.createProjectQuestion.projectType.customCopilot.placeholder": "選取選項",
335
335
  "core.createProjectQuestion.projectType.copilotHelp.label": "不知道如何開始嗎?使用 GitHub Copilot 聊天",
336
336
  "core.createProjectQuestion.projectType.copilotHelp.detail": "與 GitHub Copilot 聊天,獲取逐步指示以開發您的應用程式或 Microsoft 365 Copilot Agent。",
337
337
  "core.createProjectQuestion.projectType.copilotGroup.title": "使用 GitHub Copilot",
338
- "core.createProjectQuestion.projectType.createGroup.aiAgent": "適用於 Microsoft 365 Copilot 的代理程式",
338
+ "core.createProjectQuestion.projectType.createGroup.aiAgent": "Agents for Microsoft 365 Copilot",
339
339
  "core.createProjectQuestion.projectType.createGroup.m365Apps": "適用於Microsoft 365的應用程式",
340
340
  "core.createProjectQuestion.projectType.declarativeAgent.label": "宣告式代理程式",
341
341
  "core.createProjectQuestion.projectType.declarativeAgent.detail": "宣告指示、動作和知識以符合您的需求,以建立您自己的代理程式。",
342
342
  "core.createProjectQuestion.title": "新增專案",
343
343
  "core.createProjectQuestion.capability.botMessageExtension.label": "從 Bot 開始",
344
- "core.createProjectQuestion.capability.botMessageExtension.detail": "Create a message extension using Agents SDK",
344
+ "core.createProjectQuestion.capability.botMessageExtension.detail": "使用Bot Framework建立訊息擴展名",
345
345
  "core.createProjectQuestion.capability.copilotPluginNewApiOption.label": "從新的 API 開始",
346
346
  "core.createProjectQuestion.capability.copilotPluginNewApiOption.detail": "使用來自 Azure Functions 的新 API 建立動作",
347
347
  "core.createProjectQuestion.capability.messageExtensionNewApiOption.detail": "使用來自 Azure Functions 的新 API 建立訊息延伸模組",
@@ -353,16 +353,16 @@
353
353
  "core.createProjectQuestion.capability.searchOpenAPISpecQueryQuestion.placeholder": "輸入文字以搜尋 OpenAPI 描述文件",
354
354
  "core.createProjectQuestion.capability.selectOpenAPISpecQuestion.label": "選取 OpenAPI 描述文件",
355
355
  "core.createProjectQuestion.capability.messageExtensionApiSpecOption.detail": "從現有的 API 建立訊息延伸模組",
356
- "core.createProjectQuestion.capability.basicCustomEngineAgentOption.label": "基本自訂引擎代理程式",
357
- "core.createProjectQuestion.capability.basicCustomEngineAgentOption.detail": "使用 Microsoft 365 Agents SDK 建立的智慧型代理程式,可連線至您的 LLM",
358
- "core.createProjectQuestion.capability.weatherAgentOption.label": "天氣代理程式",
359
- "core.createProjectQuestion.capability.weatherAgentOption.detail": " Microsoft 365 Agents SDK LangChain 所建置的天氣預測代理程式",
360
- "core.createProjectQuestion.capability.customCopilotBasicOption.label": "Teams 的基本代理程式",
361
- "core.createProjectQuestion.capability.customCopilotBasicOption.detail": "建置於 Teams 上、採用 Teams AI 程式庫並連線至 LLM 的聊天代理程式",
356
+ "core.createProjectQuestion.capability.basicCustomEngineAgentOption.label": "Basic Custom Engine Agent",
357
+ "core.createProjectQuestion.capability.basicCustomEngineAgentOption.detail": "Intelligent agent that is built with Microsoft 365 Agents SDK and connects to your LLM",
358
+ "core.createProjectQuestion.capability.weatherAgentOption.label": "Weather Agent",
359
+ "core.createProjectQuestion.capability.weatherAgentOption.detail": "A weather forecast agent that is built with Microsoft 365 Agents SDK and LangChain",
360
+ "core.createProjectQuestion.capability.customCopilotBasicOption.label": "Basic Agent for Teams",
361
+ "core.createProjectQuestion.capability.customCopilotBasicOption.detail": "Agent that chats with users in Teams built with Teams AI Library and connects to LLMs",
362
362
  "core.createProjectQuestion.capability.customCopilotRagOption.label": "與您的資料聊天",
363
- "core.createProjectQuestion.capability.customCopilotRagOption.detail": "使用您的內容和知識來準確回答特定領域問題的代理程式",
364
- "core.createProjectQuestion.capability.customCopilotAssistantOption.label": "具有 API 的代理程式",
365
- "core.createProjectQuestion.capability.customCopilotAssistantOption.detail": "可根據 LLM 推理做出決策和執行行動之適用於 Teams 的代理程式",
363
+ "core.createProjectQuestion.capability.customCopilotRagOption.detail": "Agent that uses your content and knowledge to accurately answer domain-specific questions",
364
+ "core.createProjectQuestion.capability.customCopilotAssistantOption.label": "Agent with API",
365
+ "core.createProjectQuestion.capability.customCopilotAssistantOption.detail": "Agent for Teams that can make decisions and perform actions based on LLM reasoning",
366
366
  "core.createProjectQuestion.capability.customCopilotRagCustomizeOption.label": "自訂",
367
367
  "core.createProjectQuestion.capability.customCopilotRagCustomizeOption.detail": "決定如何載入您的資料",
368
368
  "core.createProjectQuestion.capability.customCopilotRagAzureAISearchOption.label": "Azure AI 搜尋服務",
@@ -386,12 +386,10 @@
386
386
  "core.createProjectQuestion.capability.knowledgeWebSearch.detail": "搜尋網站以取得接地資訊。",
387
387
  "core.createProjectQuestion.capability.knowledgeOneDriveSharePoint.label": "OneDrive 與 SharePoint",
388
388
  "core.createProjectQuestion.capability.knowledgeOneDriveSharePoint.detail": "搜尋使用者的 SharePoint 和 OneDrive 以取得接地資訊。",
389
- "core.createProjectQuestion.capability.knowledgeGraphConnector.label": "Copilot connector",
390
- "core.createProjectQuestion.capability.knowledgeGraphConnector.detail": "搜尋選取的 Microsoft Copilot 連接器以取得基礎設置資訊。",
389
+ "core.createProjectQuestion.capability.knowledgeGraphConnector.label": "Copilot Connector",
390
+ "core.createProjectQuestion.capability.knowledgeGraphConnector.detail": "Search selected Microsoft Copilot connectors for grounding information.",
391
391
  "core.createProjectQuestion.capability.knowledgeEmbeddedKnowledge.label": "內嵌知識",
392
392
  "core.createProjectQuestion.capability.knowledgeEmbeddedKnowledge.detail": "將檔案直接內嵌為接地資訊。",
393
- "core.createProjectQuestion.capability.DAMetaOS.label": "Start with an Office Add-in Action",
394
- "core.createProjectQuestion.capability.DAMetaOS.detail": "Create a Declarative Agent with Office add-in action",
395
393
  "core.createProjectQuestion.oneDriveSharePointItem.title": "OneDrive 或 SharePoint 內容",
396
394
  "core.createProjectQuestion.oneDriveSharePointItem.placeholder": "輸入 OneDrive 或 SharePoint 的 URL",
397
395
  "core.createProjectQuestion.log.fail.validateOneDriveSharePointItem": "無法驗證 OneDrive/SharePoint URL: %s",
@@ -444,17 +442,8 @@
444
442
  "core.createProjectQuestion.noPlugin.detail": "僅建立宣告式代理程式",
445
443
  "core.createProjectQuestion.addPlugin.label": "新增動作",
446
444
  "core.createProjectQuestion.addPlugin.detail": "使用動作建立宣告式代理程式",
447
- "core.createProjectQuestion.DAMetaOS.label": "Create Declarative Agent with Office Add-in Action",
448
- "core.createProjectQuestion.DAMetaOS.detail": "Create a Declarative Agent with Office add-in action",
449
- "core.createProjectQuestion.DAMetaOS.capability.title": "Declarative Agent in MetaOS Capabilities",
450
- "core.createProjectQuestion.DAMetaOS.capability.newProject.label": "New Declarative Agent with Office Add-in Actions",
451
- "core.createProjectQuestion.DAMetaOS.capability.newProject.detail": "Build a new Declarative Agent with Office add-in actions",
452
- "core.createProjectQuestion.DAMetaOS.capability.upgradeProject.label": "Extend an existing Office Add-in",
453
- "core.createProjectQuestion.DAMetaOS.capability.upgradeProject.detail": "Extend an add-in project to the declarative agent with add-in actions",
454
- "core.createProjectQuestion.DAMetaOS.capability.upgradeProject.projectFolder.title": "The Existing Add-in Project Folder",
455
- "core.createProjectQuestion.DAMetaOS.capability.upgradeProject.projectFolder.placeholder": "The existing MetaOS Add-in project root folder",
456
- "core.createProjectQuestion.createGraphConnector.label": "Copilot connector",
457
- "core.createProjectQuestion.createGraphConnector.detail": "內嵌您的組織資料,使其可在 Microsoft 365 Copilot 中搜尋",
445
+ "core.createProjectQuestion.createGraphConnector.label": "Copilot Connector",
446
+ "core.createProjectQuestion.createGraphConnector.detail": "Embed your organization data to make it searchable in Microsoft 365 Copilot",
458
447
  "core.createProjectQuestion.addExistingPlugin.pluginManifest.title": "匯入指令清單檔案",
459
448
  "core.createProjectQuestion.addExistingPlugin.apiSpec.title": "匯入 OpenAPI 描述檔",
460
449
  "core.createProjectQuestion.addExistingPlugin.pluginManifest.placeholder": "選取您的動作資訊清單檔案",
@@ -464,13 +453,13 @@
464
453
  "core.createProjectQuestion.addPlugin.pluginManifestMultipleApiSpec": "找到多個 OpenAPI 描述檔: \"%s\"。",
465
454
  "core.createProjectQuestion.addKnowledge.title": "新增功能",
466
455
  "core.createProjectQuestion.addKnowledge.placeholder": "選取功能來源作為宣告式代理程式的基礎資訊",
467
- "core.regenerateQuestion.declarativeAgentPathNotFound": "在資訊清單檔中找不到宣告式代理程式路徑: %s",
468
- "core.regenerateQuestion.actionNotFound": "在宣告式代理程式資訊清單檔中找不到動作: %s",
469
- "core.regenerateQuestion.specNotFound": "在動作資訊清單檔中找不到 OpenAPI 描述文件: %s",
470
- "core.regenerateQuestion.originalSpecNotFound": "找不到原始 OpenAPI 描述文件。您可以手動將原始 OpenAPI 描述複製到這裡 %s",
471
- "core.regenerateQuestion.selectPluginManifestTitle": "選取外掛程式資訊清單檔。",
472
- "core.regenerateQuestion.selectOpenAPISpecFromPluginTitle": "選取 OpenAPI 描述文件檔案。",
473
- "core.regenerateQuestion.selectApiOperationForRegenerateTitle": "選取 Copilot 可以互動的作業。",
456
+ "core.regenerateQuestion.declarativeAgentPathNotFound": "Unable to find declarative agent path in manifest file: %s.",
457
+ "core.regenerateQuestion.actionNotFound": "Unable to find actions in declarative agent manifest file: %s.",
458
+ "core.regenerateQuestion.specNotFound": "Unable to find OpenAPI description document in action manifest file: %s.",
459
+ "core.regenerateQuestion.originalSpecNotFound": "Unable to find original OpenAPI description document. You can manually copy original OpenAPI description here %s.",
460
+ "core.regenerateQuestion.selectPluginManifestTitle": "Select plugin manifest file.",
461
+ "core.regenerateQuestion.selectOpenAPISpecFromPluginTitle": "Select OpenAPI description document file.",
462
+ "core.regenerateQuestion.selectApiOperationForRegenerateTitle": "Select operation(s) Copilot can interact with.",
474
463
  "core.aiAssistantBotOption.label": "AI 代理程式 Bot",
475
464
  "core.aiAssistantBotOption.detail": "使用 Teams AI 連結庫和 OpenAI 助理 API 在 Teams 中的自定義 AI 代理程式 Bot",
476
465
  "core.aiBotOption.label": "AI 聊天機器人",
@@ -506,9 +495,9 @@
506
495
  "core.addPlugin.success.vsc": "動作 \"%s\" 成功新增至專案。",
507
496
  "core.addPlugin.success": "API 外掛程式 \"%s\" 成功新增至專案。檢視 \"%s\" 中的外掛程式指令清單。",
508
497
  "core.addPlugin.success.viewPluginManifest": "檢視動作指令清單",
509
- "core.regeneratePlugin.success": "已成功更新動作 \"%s\"。檢視 \"%s\" 中的外掛程式資訊清單。",
510
- "core.regeneratePlugin.success.vsc": "已成功更新動作 \"%s\"",
511
- "core.regeneratePlugin.success.viewPluginManifest": "檢視動作資訊清單",
498
+ "core.regeneratePlugin.success": "Action \"%s\" updated successfully. View plugin manifest in \"%s\".",
499
+ "core.regeneratePlugin.success.vsc": "Action \"%s\" updated successfully.",
500
+ "core.regeneratePlugin.success.viewPluginManifest": "View action manifest",
512
501
  "core.addKnowledge.success.vsc": "已成功將功能來源新增至專案。",
513
502
  "core.addKnowledge.success": "已成功將功能來源新增至專案。在 \"%s\" 中檢視代理程式資訊清單。",
514
503
  "core.addKnowledge.success.viewAgentManifest": "檢視代理程式資訊清單",
@@ -546,27 +535,27 @@
546
535
  "core.selectValidateMethodQuestion.validate.appPackageOptionDescription": "在將應用程式發佈到 Teams 市集之前,請驗證應用程式",
547
536
  "core.selectValidateMethodQuestion.validate.testCasesOption": "在發行前驗證所有整合測試案例",
548
537
  "core.selectValidateMethodQuestion.validate.testCasesOptionDescription": "全面性測試以確保整備程度",
549
- "core.GCSelectQuestion.title": "Copilot connector Content",
550
- "core.GCSelectOptions.listOption.title": "Select existing Copilot connectors",
551
- "core.GCSelectOptions.listOption.description": "List all existing Copilot connectors",
552
- "core.GCSelectOptions.inputOption.title": "Enter a Copilot connector Connection ID",
553
- "core.GCSelectOptions.inputOption.description": "Enter a Copilot connector Connection ID manually",
554
- "core.GCListQuestion.title": "Select one or more Copilot connectors as capability source",
555
- "core.GCListQuestion.placeholder": "List all existing Copilot connectors",
538
+ "core.GCSelectQuestion.title": "Copilot Connector Content",
539
+ "core.GCSelectOptions.listOption.title": "Select existing Copilot Connectors",
540
+ "core.GCSelectOptions.listOption.description": "List all existing Copilot Connectors",
541
+ "core.GCSelectOptions.inputOption.title": "Enter a Copilot Connector Connection ID",
542
+ "core.GCSelectOptions.inputOption.description": "Enter a Copilot Connector Connection ID manually",
543
+ "core.GCListQuestion.title": "Select one or more Copilot Connectors as capability source",
544
+ "core.GCListQuestion.placeholder": "List all existing Copilot Connectors",
556
545
  "core.GCInputQuestion.title": "連線識別碼",
557
546
  "core.GCListQuestion.invalidMessage": "已選取 %s 個 API。您必須至少選取一個 API。",
558
547
  "core.GCNameQuestion.title": "新增連接器名稱",
559
- "core.GCNameQuestion.placeholder": "Create a name for Copilot connector",
548
+ "core.GCNameQuestion.placeholder": "Create a name for Copilot Connector",
560
549
  "core.GCConnectionIdQuestion.title": "新增連線識別碼",
561
- "core.GCConnectionIdQuestion.placeholder": "Add a connection ID for Copilot connector",
550
+ "core.GCConnectionIdQuestion.placeholder": "Add a connection ID for Copilot Connector",
562
551
  "core.GCConnectionIdQuestion.validation.pattern": "連接器識別碼只能包含英數字元。",
563
552
  "core.GCConnectionIdQuestion.validation.specialBeginner": "連線識別碼的開頭不應為 %s。",
564
553
  "core.GCConnectionIdQuestion.validation.minlength": "連線識別碼少於 3 個字元。",
565
554
  "core.GCConnectionIdQuestion.validation.maxlength": "連線識別碼超過 32 個字元。",
566
- "core.GCList.insufficientPermission": "To list Copilot connectors, you need org's Microsoft 365 tenant admin permissions.",
555
+ "core.GCList.insufficientPermission": "To list Copilot Connectors, you need org's Microsoft 365 tenant admin permissions.",
567
556
  "core.confirmManifestQuestion.placeholder": "確認您已選取正確的指令清單檔案",
568
- "core.createProjectQuestion.addGC.label": "Add a Copilot connector",
569
- "core.createProjectQuestion.addGC.detail": "Create a declarative agent with a Copilot connector",
557
+ "core.createProjectQuestion.addGC.label": "Add a Copilot Connector",
558
+ "core.createProjectQuestion.addGC.detail": "Create a declarative agent with a Copilot Connector",
570
559
  "core.aadAppQuestion.label": "Microsoft Entra 應用程式",
571
560
  "core.aadAppQuestion.description": "單一登入的 Microsoft Entra 應用程式",
572
561
  "core.convertAadToNewSchema.continue": "繼續",
@@ -627,7 +616,7 @@
627
616
  "core.common.SendingApiRequest": "正在傳送 API 要求: %s。要求本文: %s",
628
617
  "core.common.ReceiveApiResponse": "已收到 API 回應: %s。",
629
618
  "core.common.shareToUser.success": "已成功與使用者共用應用程式: %s。",
630
- "core.common.removeShareAccess.success": "已從使用者移除共用應用程式存取: %s",
619
+ "core.common.removeShareAccess.success": "Shared app access removed from the users: %s.",
631
620
  "core.envFunc.unsupportedFile.errorLog": "\"%s\" 是無效的檔案。支援的格式: %s。",
632
621
  "core.envFunc.unsupportedFile.errorMessage": "無效的檔案。%s",
633
622
  "core.envFunc.unsupportedFunction.errorLog": "\"%s\" 是無效的函數。支援的函數: \"%s\"。",
@@ -927,7 +916,7 @@
927
916
  "driver.devChannel.install.description": "將應用程式安裝到沙箱頻道。",
928
917
  "driver.devChannel.install.progress.message": "正在安裝應用程式...",
929
918
  "driver.devChannel.install.summary.exists": "小組 '%s' 中已安裝應用程式 '%s'。它現在將更新為最新版本。",
930
- "error.installApp.outsideSandbox": "無法在沙箱外的團隊中安裝應用程式。請更新 TEAM_ID CHANNEL_ID",
919
+ "error.installApp.outsideSandbox": "Unable to install app outside sandboxed Team. Please update TEAM_ID and CHANNEL_ID.",
931
920
  "error.yaml.InvalidYamlSchemaError": "無法剖析 yaml 檔案: %s。請開啟 yaml 檔案以取得詳細錯誤。",
932
921
  "error.yaml.InvalidYamlSchemaErrorWithReason": "無法剖析 yaml 檔案: %。原因: %s 請檢閱 yaml 檔案或升級至最新的 Microsoft 365 代理程式工具組。",
933
922
  "error.yaml.VersionNotSupported": "不支援版本 %s。支援的版本: %s。",
@@ -1079,8 +1068,8 @@
1079
1068
  "core.addKnowledgeQuestion.searchType.title": "選取搜尋類型",
1080
1069
  "core.addKnowledgeQuestion.searchType.web": "搜尋網頁上的所有內容",
1081
1070
  "core.addKnowledgeQuestion.searchType.oneDriveSharepoint": "搜尋組織內的所有內容",
1082
- "core.createProjectQuestion.apiPlugin.typeSpec.label": "從適用於 Microsoft 365 Copilot 的 TypeSpec 開始",
1083
- "core.createProjectQuestion.apiPlugin.typeSpec.detail": "使用適用於 Microsoft 365 Copilot TypeSpec 建立含或不含動作的宣告式代理程式",
1071
+ "core.createProjectQuestion.apiPlugin.typeSpec.label": "Start with TypeSpec for Microsoft 365 Copilot",
1072
+ "core.createProjectQuestion.apiPlugin.typeSpec.detail": "Create a declarative agent with or without an action using TypeSpec for Microsoft 365 Copilot",
1084
1073
  "core.addKnowledgeQuestion.searchType.url": "依 URL 搜尋",
1085
1074
  "driver.typeSpec.compile.start": "正在執行動作 %s",
1086
1075
  "driver.typespec.error.noSpecError": "找不到 OpenApi 規格。請確定您的 TypeSpec 檔案有效,然後再試一次。",
@@ -1105,8 +1094,8 @@
1105
1094
  "action.devTool.nodeInstaller.SuccessExtract": "已成功將 NodeJS 套件擷取到路徑: %s,時間: %s 毫秒",
1106
1095
  "action.devTool.nodeInstaller.Summary.installInPath": "NodeJS 安裝於: %s。",
1107
1096
  "action.devTool.nodeInstaller.Summary.installInSystem": "NodeJS 已安裝在系統環境中。",
1108
- "driver.typeSpec.compile.reprovision": "檔案 %s 已更新。請重新執行佈建程序,以納入這些變更",
1097
+ "driver.typeSpec.compile.reprovision": "File %s is updated. Rerun the provision process to account for these changes",
1109
1098
  "error.kiota.KiotaGeneratePluginError": "無法使用 Kiota 產生外掛程式資訊清單檔案。錯誤: %s",
1110
- "error.daSpecParser.InvalidSpecError": "OpenAPI 規格檔案無效: %s",
1111
- "error.kiotaClient.EmptyResult": "剖析 OpenAPI 描述檔案時取得空白結果。"
1099
+ "error.daSpecParser.InvalidSpecError": "OpenAPI specification file is not valid: %s",
1100
+ "error.kiotaClient.EmptyResult": "Get empty result when parser OpenAPI description file."
1112
1101
  }
@@ -14,7 +14,7 @@
14
14
  "version": {
15
15
  "type": "string",
16
16
  "description": "The version of the yaml file schema",
17
- "const": "v1.9"
17
+ "const": "v1.8"
18
18
  },
19
19
  "additionalMetadata": {
20
20
  "type": "object",
@@ -1706,7 +1706,7 @@
1706
1706
  "type": "object",
1707
1707
  "additionalProperties": false,
1708
1708
  "description": "Get deployment key from Azure Static Web App.",
1709
- "required": ["uses", "with"],
1709
+ "required": ["uses", "with", "writeToEnvironmentFile"],
1710
1710
  "properties": {
1711
1711
  "uses": {
1712
1712
  "type": "string",
Binary file
Binary file
Binary file
Binary file
Binary file
@@ -2,79 +2,68 @@
2
2
  <!--This file is used during the Teams Bot authentication flow to assist with retrieval of the access token.-->
3
3
  <!--If you're not familiar with this, do not alter or remove this file from your project.-->
4
4
  <html>
5
+ <head>
6
+ <title>Login End Page</title>
7
+ <meta charset="utf-8" />
8
+ </head>
5
9
 
6
- <head>
7
- <title>Login End Page</title>
8
- <meta charset="utf-8" />
9
- </head>
10
+ <body>
11
+ <script
12
+ src="https://res.cdn.office.net/teams-js/2.31.1/js/MicrosoftTeams.min.js"
13
+ integrity="sha384-ihAqYgEJz9hzEU+HaYodG1aTzjebC/wKXQi1nWKZG7OLAUyOL9ZrzD/SfZu79Jeu"
14
+ crossorigin="anonymous"
15
+ ></script>
16
+ <div id="divError"></div>
17
+ <script type="text/javascript">
18
+ microsoftTeams.app.initialize().then(() => {
19
+ let hashParams = getHashParameters();
10
20
 
11
- <body>
12
- <script src="https://res.cdn.office.net/teams-js/2.31.1/js/MicrosoftTeams.min.js"
13
- integrity="sha384-ihAqYgEJz9hzEU+HaYodG1aTzjebC/wKXQi1nWKZG7OLAUyOL9ZrzD/SfZu79Jeu"
14
- crossorigin="anonymous"></script>
15
- <div id="divError"></div>
16
- <script type="text/javascript">
17
- microsoftTeams.app.initialize().then(() => {
18
- let hashParams = getHashParameters();
19
-
20
- if (hashParams.get("error")) {
21
- // Authentication failed
22
- handleAuthError(hashParams.get("error"), hashParams);
23
- } else if (hashParams.get("code")) {
24
- // Get the stored state parameter and compare with incoming state
25
- let expectedState = localStorage.getItem("state");
26
- if (expectedState !== hashParams.get("state")) {
27
- // State does not match, report error
28
- handleAuthError("StateDoesNotMatch", hashParams);
21
+ if (hashParams.get("error")) {
22
+ // Authentication failed
23
+ handleAuthError(hashParams.get("error"), hashParams);
24
+ } else if (hashParams.get("code")) {
25
+ // Get the stored state parameter and compare with incoming state
26
+ let expectedState = localStorage.getItem("state");
27
+ if (expectedState !== hashParams.get("state")) {
28
+ // State does not match, report error
29
+ handleAuthError("StateDoesNotMatch", hashParams);
30
+ } else {
31
+ microsoftTeams.authentication.notifySuccess();
32
+ }
29
33
  } else {
30
- microsoftTeams.authentication.notifySuccess();
34
+ // Unexpected condition: hash does not contain error or access_token parameter
35
+ handleAuthError("UnexpectedFailure", hashParams);
31
36
  }
32
- } else {
33
- // Unexpected condition: hash does not contain error or access_token parameter
34
- handleAuthError("UnexpectedFailure", hashParams);
35
- }
36
- });
37
+ });
37
38
 
38
- // Parse hash parameters into key-value pairs
39
- function getHashParameters() {
40
- // Using ES6 Map instead of plain object to prevent prototype pollution
41
- let hashParams = new Map();
42
-
43
- if (location.hash && location.hash.length > 1) {
39
+ // Parse hash parameters into key-value pairs
40
+ function getHashParameters() {
41
+ let hashParams = new Map();
44
42
  location.hash
45
43
  .substr(1)
46
44
  .split("&")
47
45
  .forEach(function (item) {
48
- if (!item) return;
49
46
  let s = item.split("="),
50
47
  k = s[0],
51
48
  v = s[1] && decodeURIComponent(s[1]);
52
-
53
- if (k) {
54
- // Store parameters in the Map
55
- hashParams.set(k, v);
56
- }
49
+ hashParams.set(k, v);
57
50
  });
51
+ return hashParams;
58
52
  }
59
-
60
- // Convert Map back to a plain object for compatibility with the rest of the code
61
- return Object.fromEntries(hashParams);
62
- }
63
53
 
64
- // Show error information
65
- function handleAuthError(errorType, errorMessage) {
66
- const err = JSON.stringify({
67
- error: encodeURIComponent(errorType),
68
- message: encodeURIComponent(JSON.stringify(errorMessage)),
69
- });
70
- let para = document.createElement("p");
71
- let node = document.createTextNode(err);
72
- para.appendChild(node);
73
-
74
- let element = document.getElementById("divError");
75
- element.appendChild(para);
76
- }
77
- </script>
78
- </body>
54
+ // Show error information
55
+ function handleAuthError(errorType, errorMessage) {
56
+ const err = JSON.stringify({
57
+ error: encodeURIComponent(errorType),
58
+ message: encodeURIComponent(JSON.stringify(errorMessage)),
59
+ });
60
+ let para = document.createElement("p");
61
+ let node = document.createTextNode(err);
62
+ para.appendChild(node);
79
63
 
80
- </html>
64
+ let element = document.getElementById("divError");
65
+ element.appendChild(para);
66
+ }
67
+ </script>
68
+ </body>
69
+ </html>
@@ -2,78 +2,67 @@
2
2
  <!--This file is used during the Teams Bot authentication flow to assist with retrieval of the access token.-->
3
3
  <!--If you're not familiar with this, do not alter or remove this file from your project.-->
4
4
  <html>
5
+ <head>
6
+ <title>Login End Page</title>
7
+ <meta charset="utf-8" />
8
+ </head>
5
9
 
6
- <head>
7
- <title>Login End Page</title>
8
- <meta charset="utf-8" />
9
- </head>
10
+ <body>
11
+ <script
12
+ src="https://res.cdn.office.net/teams-js/2.31.1/js/MicrosoftTeams.min.js"
13
+ integrity="sha384-ihAqYgEJz9hzEU+HaYodG1aTzjebC/wKXQi1nWKZG7OLAUyOL9ZrzD/SfZu79Jeu"
14
+ crossorigin="anonymous"
15
+ ></script>
16
+ <div id="divError"></div>
17
+ <script type="text/javascript">
18
+ microsoftTeams.app.initialize().then(() => {
19
+ let hashParams = getHashParameters();
10
20
 
11
- <body>
12
- <script src="https://res.cdn.office.net/teams-js/2.31.1/js/MicrosoftTeams.min.js"
13
- integrity="sha384-ihAqYgEJz9hzEU+HaYodG1aTzjebC/wKXQi1nWKZG7OLAUyOL9ZrzD/SfZu79Jeu"
14
- crossorigin="anonymous"></script>
15
- <div id="divError"></div>
16
- <script type="text/javascript">
17
- microsoftTeams.app.initialize().then(() => {
18
- let hashParams = getHashParameters();
19
-
20
- if (hashParams.get("error")) {
21
- // Authentication failed
22
- handleAuthError(hashParams.get("error"), hashParams);
23
- } else if (hashParams.get("code")) {
24
- // Get the stored state parameter and compare with incoming state
25
- let expectedState = localStorage.getItem("state");
26
- if (expectedState !== hashParams.get("state")) {
27
- // State does not match, report error
28
- handleAuthError("StateDoesNotMatch", hashParams);
21
+ if (hashParams.get("error")) {
22
+ // Authentication failed
23
+ handleAuthError(hashParams.get("error"), hashParams);
24
+ } else if (hashParams.get("code")) {
25
+ // Get the stored state parameter and compare with incoming state
26
+ let expectedState = localStorage.getItem("state");
27
+ if (expectedState !== hashParams.get("state")) {
28
+ // State does not match, report error
29
+ handleAuthError("StateDoesNotMatch", hashParams);
30
+ } else {
31
+ microsoftTeams.authentication.notifySuccess();
32
+ }
29
33
  } else {
30
- microsoftTeams.authentication.notifySuccess();
34
+ // Unexpected condition: hash does not contain error or access_token parameter
35
+ handleAuthError("UnexpectedFailure", hashParams);
31
36
  }
32
- } else {
33
- // Unexpected condition: hash does not contain error or access_token parameter
34
- handleAuthError("UnexpectedFailure", hashParams);
35
- }
36
- });
37
- // Parse hash parameters into key-value pairs
38
- function getHashParameters() {
39
- // Using ES6 Map instead of plain object to prevent prototype pollution
40
- let hashParams = new Map();
41
-
42
- if (location.hash && location.hash.length > 1) {
37
+ });
38
+ // Parse hash parameters into key-value pairs
39
+ function getHashParameters() {
40
+ let hashParams = new Map();
43
41
  location.hash
44
42
  .substr(1)
45
43
  .split("&")
46
44
  .forEach(function (item) {
47
- if (!item) return;
48
45
  let s = item.split("="),
49
46
  k = s[0],
50
47
  v = s[1] && decodeURIComponent(s[1]);
51
-
52
- if (k) {
53
- // Store parameters in the Map
54
- hashParams.set(k, v);
55
- }
48
+ hashParams.set(k, v);
56
49
  });
50
+ return hashParams;
57
51
  }
58
-
59
- // Convert Map back to a plain object for compatibility with the rest of the code
60
- return Object.fromEntries(hashParams);
61
- }
62
52
 
63
- // Show error information
64
- function handleAuthError(errorType, errorMessage) {
65
- const err = JSON.stringify({
66
- error: encodeURIComponent(errorType),
67
- message: encodeURIComponent(JSON.stringify(errorMessage)),
68
- });
69
- let para = document.createElement("p");
70
- let node = document.createTextNode(err);
71
- para.appendChild(node);
72
-
73
- let element = document.getElementById("divError");
74
- element.appendChild(para);
75
- }
76
- </script>
77
- </body>
53
+ // Show error information
54
+ function handleAuthError(errorType, errorMessage) {
55
+ const err = JSON.stringify({
56
+ error: encodeURIComponent(errorType),
57
+ message: encodeURIComponent(JSON.stringify(errorMessage)),
58
+ });
59
+ let para = document.createElement("p");
60
+ let node = document.createTextNode(err);
61
+ para.appendChild(node);
78
62
 
79
- </html>
63
+ let element = document.getElementById("divError");
64
+ element.appendChild(para);
65
+ }
66
+ </script>
67
+ </body>
68
+ </html>
@@ -1,16 +0,0 @@
1
- /****************************************************************************************
2
- * NOTICE: AUTO-GENERATED *
3
- ****************************************************************************************
4
- * This file is automatically generated by script "./src/question/generator.ts". *
5
- * Please don't manually change its contents, as any modifications will be overwritten! *
6
- ***************************************************************************************/
7
- import { Inputs } from "@microsoft/teamsfx-api";
8
- export interface RegeneratePluginInputs extends Inputs {
9
- /** @description Select plugin manifest file. */
10
- "select-plugin-manifest"?: string;
11
- /** @description Select OpenAPI description document file. */
12
- "select-openapi-spec-from-plugin"?: string;
13
- /** @description Select operation(s) Copilot can interact with. */
14
- "api-operation"?: string[];
15
- }
16
- //# sourceMappingURL=RegeneratePluginInputs.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"RegeneratePluginInputs.d.ts","sourceRoot":"","sources":["../../../src/question/inputs/RegeneratePluginInputs.ts"],"names":[],"mappings":"AAGA;;;;;yFAKyF;AAEzF,OAAO,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAC;AAEhD,MAAM,WAAW,sBAAuB,SAAQ,MAAM;IACpD,gDAAgD;IAChD,wBAAwB,CAAC,EAAE,MAAM,CAAC;IAClC,6DAA6D;IAC7D,iCAAiC,CAAC,EAAE,MAAM,CAAC;IAC3C,kEAAkE;IAClE,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC;CAC5B"}
@@ -1,5 +0,0 @@
1
- "use strict";
2
- // Copyright (c) Microsoft Corporation.
3
- // Licensed under the MIT license.
4
- Object.defineProperty(exports, "__esModule", { value: true });
5
- //# sourceMappingURL=RegeneratePluginInputs.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"RegeneratePluginInputs.js","sourceRoot":"","sources":["../../../src/question/inputs/RegeneratePluginInputs.ts"],"names":[],"mappings":";AAAA,uCAAuC;AACvC,kCAAkC"}
@@ -1,10 +0,0 @@
1
- /****************************************************************************************
2
- * NOTICE: AUTO-GENERATED *
3
- ****************************************************************************************
4
- * This file is automatically generated by script "./src/question/generator.ts". *
5
- * Please don't manually change its contents, as any modifications will be overwritten! *
6
- ***************************************************************************************/
7
- import { CLICommandOption, CLICommandArgument } from "@microsoft/teamsfx-api";
8
- export declare const RegeneratePluginOptions: CLICommandOption[];
9
- export declare const RegeneratePluginArguments: CLICommandArgument[];
10
- //# sourceMappingURL=RegeneratePluginOptions.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"RegeneratePluginOptions.d.ts","sourceRoot":"","sources":["../../../src/question/options/RegeneratePluginOptions.ts"],"names":[],"mappings":"AAGA;;;;;yFAKyF;AAEzF,OAAO,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAE9E,eAAO,MAAM,uBAAuB,EAAE,gBAAgB,EAoBrD,CAAC;AACF,eAAO,MAAM,yBAAyB,EAAE,kBAAkB,EAAO,CAAC"}