@microsoft/teamsfx-core 2.0.6 → 2.0.7-alpha.5bcec827f.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 (289) hide show
  1. package/build/common/constants.d.ts +1 -0
  2. package/build/common/constants.d.ts.map +1 -1
  3. package/build/common/constants.js +1 -0
  4. package/build/common/constants.js.map +1 -1
  5. package/build/common/deps-checker/checkerFactory.d.ts.map +1 -1
  6. package/build/common/deps-checker/checkerFactory.js +3 -0
  7. package/build/common/deps-checker/checkerFactory.js.map +1 -1
  8. package/build/common/deps-checker/constant/telemetry.d.ts +1 -0
  9. package/build/common/deps-checker/constant/telemetry.d.ts.map +1 -1
  10. package/build/common/deps-checker/constant/telemetry.js +1 -0
  11. package/build/common/deps-checker/constant/telemetry.js.map +1 -1
  12. package/build/common/deps-checker/coreDepsLoggerAdapter.d.ts +17 -0
  13. package/build/common/deps-checker/coreDepsLoggerAdapter.d.ts.map +1 -0
  14. package/build/common/deps-checker/coreDepsLoggerAdapter.js +47 -0
  15. package/build/common/deps-checker/coreDepsLoggerAdapter.js.map +1 -0
  16. package/build/common/deps-checker/coreDepsTelemetryAdapter.d.ts +16 -0
  17. package/build/common/deps-checker/coreDepsTelemetryAdapter.d.ts.map +1 -0
  18. package/build/common/deps-checker/coreDepsTelemetryAdapter.js +53 -0
  19. package/build/common/deps-checker/coreDepsTelemetryAdapter.js.map +1 -0
  20. package/build/common/deps-checker/depsChecker.d.ts +6 -1
  21. package/build/common/deps-checker/depsChecker.d.ts.map +1 -1
  22. package/build/common/deps-checker/depsChecker.js +6 -1
  23. package/build/common/deps-checker/depsChecker.js.map +1 -1
  24. package/build/common/deps-checker/index.d.ts +2 -0
  25. package/build/common/deps-checker/index.d.ts.map +1 -1
  26. package/build/common/deps-checker/index.js +2 -0
  27. package/build/common/deps-checker/index.js.map +1 -1
  28. package/build/common/deps-checker/internal/testToolChecker.d.ts +14 -3
  29. package/build/common/deps-checker/internal/testToolChecker.d.ts.map +1 -1
  30. package/build/common/deps-checker/internal/testToolChecker.js +178 -75
  31. package/build/common/deps-checker/internal/testToolChecker.js.map +1 -1
  32. package/build/common/deps-checker/internal/vxTestAppChecker.d.ts.map +1 -1
  33. package/build/common/deps-checker/internal/vxTestAppChecker.js +3 -45
  34. package/build/common/deps-checker/internal/vxTestAppChecker.js.map +1 -1
  35. package/build/common/deps-checker/util/downloadHelper.d.ts +15 -0
  36. package/build/common/deps-checker/util/downloadHelper.d.ts.map +1 -0
  37. package/build/common/deps-checker/util/downloadHelper.js +59 -0
  38. package/build/common/deps-checker/util/downloadHelper.js.map +1 -0
  39. package/build/common/featureFlags.d.ts +1 -2
  40. package/build/common/featureFlags.d.ts.map +1 -1
  41. package/build/common/featureFlags.js +5 -9
  42. package/build/common/featureFlags.js.map +1 -1
  43. package/build/common/local/packageJsonHelper.d.ts +0 -1
  44. package/build/common/local/packageJsonHelper.d.ts.map +1 -1
  45. package/build/common/local/packageJsonHelper.js +1 -29
  46. package/build/common/local/packageJsonHelper.js.map +1 -1
  47. package/build/common/m365/packageService.d.ts +2 -2
  48. package/build/common/m365/packageService.d.ts.map +1 -1
  49. package/build/common/m365/packageService.js +43 -19
  50. package/build/common/m365/packageService.js.map +1 -1
  51. package/build/common/projectTypeChecker.d.ts +38 -0
  52. package/build/common/projectTypeChecker.d.ts.map +1 -0
  53. package/build/common/projectTypeChecker.js +217 -0
  54. package/build/common/projectTypeChecker.js.map +1 -0
  55. package/build/common/samples.d.ts +6 -4
  56. package/build/common/samples.d.ts.map +1 -1
  57. package/build/common/samples.js +64 -29
  58. package/build/common/samples.js.map +1 -1
  59. package/build/common/spec-parser/interfaces.d.ts +14 -1
  60. package/build/common/spec-parser/interfaces.d.ts.map +1 -1
  61. package/build/common/spec-parser/manifestUpdater.d.ts +2 -2
  62. package/build/common/spec-parser/manifestUpdater.d.ts.map +1 -1
  63. package/build/common/spec-parser/manifestUpdater.js +33 -19
  64. package/build/common/spec-parser/manifestUpdater.js.map +1 -1
  65. package/build/common/spec-parser/specFilter.d.ts +1 -1
  66. package/build/common/spec-parser/specFilter.d.ts.map +1 -1
  67. package/build/common/spec-parser/specFilter.js +2 -2
  68. package/build/common/spec-parser/specFilter.js.map +1 -1
  69. package/build/common/spec-parser/specParser.browser.d.ts.map +1 -1
  70. package/build/common/spec-parser/specParser.browser.js +5 -3
  71. package/build/common/spec-parser/specParser.browser.js.map +1 -1
  72. package/build/common/spec-parser/specParser.d.ts.map +1 -1
  73. package/build/common/spec-parser/specParser.js +36 -37
  74. package/build/common/spec-parser/specParser.js.map +1 -1
  75. package/build/common/spec-parser/utils.d.ts +12 -8
  76. package/build/common/spec-parser/utils.d.ts.map +1 -1
  77. package/build/common/spec-parser/utils.js +97 -34
  78. package/build/common/spec-parser/utils.js.map +1 -1
  79. package/build/common/telemetry.d.ts +17 -1
  80. package/build/common/telemetry.d.ts.map +1 -1
  81. package/build/common/telemetry.js +35 -1
  82. package/build/common/telemetry.js.map +1 -1
  83. package/build/common/templates-config.json +1 -1
  84. package/build/common/tools.d.ts +1 -1
  85. package/build/common/tools.d.ts.map +1 -1
  86. package/build/common/tools.js +2 -2
  87. package/build/common/tools.js.map +1 -1
  88. package/build/component/configManager/lifecycle.d.ts.map +1 -1
  89. package/build/component/configManager/lifecycle.js +1 -1
  90. package/build/component/configManager/lifecycle.js.map +1 -1
  91. package/build/component/constant/commonConstant.d.ts +1 -0
  92. package/build/component/constant/commonConstant.d.ts.map +1 -1
  93. package/build/component/constant/commonConstant.js +2 -0
  94. package/build/component/constant/commonConstant.js.map +1 -1
  95. package/build/component/coordinator/index.d.ts +2 -1
  96. package/build/component/coordinator/index.d.ts.map +1 -1
  97. package/build/component/coordinator/index.js +12 -2
  98. package/build/component/coordinator/index.js.map +1 -1
  99. package/build/component/driver/aad/error/aadManifestError.d.ts +9 -0
  100. package/build/component/driver/aad/error/aadManifestError.d.ts.map +1 -1
  101. package/build/component/driver/aad/error/aadManifestError.js +37 -1
  102. package/build/component/driver/aad/error/aadManifestError.js.map +1 -1
  103. package/build/component/driver/aad/utility/aadAppClient.d.ts.map +1 -1
  104. package/build/component/driver/aad/utility/aadAppClient.js +9 -6
  105. package/build/component/driver/aad/utility/aadAppClient.js.map +1 -1
  106. package/build/component/driver/aad/utility/aadManifestHelper.d.ts.map +1 -1
  107. package/build/component/driver/aad/utility/aadManifestHelper.js +6 -0
  108. package/build/component/driver/aad/utility/aadManifestHelper.js.map +1 -1
  109. package/build/component/driver/aad/utility/constants.d.ts +1 -0
  110. package/build/component/driver/aad/utility/constants.d.ts.map +1 -1
  111. package/build/component/driver/aad/utility/constants.js +1 -0
  112. package/build/component/driver/aad/utility/constants.js.map +1 -1
  113. package/build/component/driver/apiKey/create.d.ts.map +1 -1
  114. package/build/component/driver/apiKey/create.js +7 -3
  115. package/build/component/driver/apiKey/create.js.map +1 -1
  116. package/build/component/driver/deploy/azure/azureFunctionDeployDriver.d.ts.map +1 -1
  117. package/build/component/driver/deploy/azure/azureFunctionDeployDriver.js.map +1 -1
  118. package/build/component/driver/deploy/azure/azureStaticWebAppGetDeploymentTokenDriver.d.ts +12 -0
  119. package/build/component/driver/deploy/azure/azureStaticWebAppGetDeploymentTokenDriver.d.ts.map +1 -0
  120. package/build/component/driver/deploy/azure/azureStaticWebAppGetDeploymentTokenDriver.js +71 -0
  121. package/build/component/driver/deploy/azure/azureStaticWebAppGetDeploymentTokenDriver.js.map +1 -0
  122. package/build/component/driver/deploy/azure/impl/AzureZipDeployImpl.d.ts +3 -2
  123. package/build/component/driver/deploy/azure/impl/AzureZipDeployImpl.d.ts.map +1 -1
  124. package/build/component/driver/deploy/azure/impl/AzureZipDeployImpl.js +5 -1
  125. package/build/component/driver/deploy/azure/impl/AzureZipDeployImpl.js.map +1 -1
  126. package/build/component/driver/deploy/azure/impl/azureDeployImpl.d.ts +5 -0
  127. package/build/component/driver/deploy/azure/impl/azureDeployImpl.d.ts.map +1 -1
  128. package/build/component/driver/deploy/azure/impl/azureDeployImpl.js +21 -0
  129. package/build/component/driver/deploy/azure/impl/azureDeployImpl.js.map +1 -1
  130. package/build/component/driver/devTool/installDriver.d.ts +2 -1
  131. package/build/component/driver/devTool/installDriver.d.ts.map +1 -1
  132. package/build/component/driver/devTool/installDriver.js +5 -2
  133. package/build/component/driver/devTool/installDriver.js.map +1 -1
  134. package/build/component/driver/index.d.ts +1 -0
  135. package/build/component/driver/index.d.ts.map +1 -1
  136. package/build/component/driver/index.js +1 -0
  137. package/build/component/driver/index.js.map +1 -1
  138. package/build/component/driver/interface/provisionArgs.d.ts +3 -0
  139. package/build/component/driver/interface/provisionArgs.d.ts.map +1 -1
  140. package/build/component/driver/interface/stepDriver.d.ts +2 -1
  141. package/build/component/driver/interface/stepDriver.d.ts.map +1 -1
  142. package/build/component/driver/middleware/addSWADeployTelemetry.d.ts +7 -0
  143. package/build/component/driver/middleware/addSWADeployTelemetry.d.ts.map +1 -0
  144. package/build/component/driver/middleware/addSWADeployTelemetry.js +52 -0
  145. package/build/component/driver/middleware/addSWADeployTelemetry.js.map +1 -0
  146. package/build/component/driver/middleware/addStartAndEndTelemetry.d.ts +3 -0
  147. package/build/component/driver/middleware/addStartAndEndTelemetry.d.ts.map +1 -1
  148. package/build/component/driver/middleware/addStartAndEndTelemetry.js +2 -1
  149. package/build/component/driver/middleware/addStartAndEndTelemetry.js.map +1 -1
  150. package/build/component/driver/script/npxBuildDriver.d.ts.map +1 -1
  151. package/build/component/driver/script/npxBuildDriver.js +5 -1
  152. package/build/component/driver/script/npxBuildDriver.js.map +1 -1
  153. package/build/component/driver/script/scriptDriver.d.ts +12 -8
  154. package/build/component/driver/script/scriptDriver.d.ts.map +1 -1
  155. package/build/component/driver/script/scriptDriver.js +54 -36
  156. package/build/component/driver/script/scriptDriver.js.map +1 -1
  157. package/build/component/driver/teamsApp/clients/appStudioClient.d.ts.map +1 -1
  158. package/build/component/driver/teamsApp/clients/appStudioClient.js +52 -33
  159. package/build/component/driver/teamsApp/clients/appStudioClient.js.map +1 -1
  160. package/build/component/driver/teamsApp/utils/telemetry.d.ts +7 -0
  161. package/build/component/driver/teamsApp/utils/telemetry.d.ts.map +1 -1
  162. package/build/component/driver/teamsApp/utils/telemetry.js +3 -2
  163. package/build/component/driver/teamsApp/utils/telemetry.js.map +1 -1
  164. package/build/component/driver/teamsApp/validateAppPackage.d.ts.map +1 -1
  165. package/build/component/driver/teamsApp/validateAppPackage.js +14 -8
  166. package/build/component/driver/teamsApp/validateAppPackage.js.map +1 -1
  167. package/build/component/generator/copilotPlugin/generator.d.ts.map +1 -1
  168. package/build/component/generator/copilotPlugin/generator.js +5 -4
  169. package/build/component/generator/copilotPlugin/generator.js.map +1 -1
  170. package/build/component/generator/copilotPlugin/helper.d.ts.map +1 -1
  171. package/build/component/generator/copilotPlugin/helper.js +6 -2
  172. package/build/component/generator/copilotPlugin/helper.js.map +1 -1
  173. package/build/component/generator/error.d.ts +5 -8
  174. package/build/component/generator/error.d.ts.map +1 -1
  175. package/build/component/generator/error.js +16 -16
  176. package/build/component/generator/error.js.map +1 -1
  177. package/build/component/generator/generator.d.ts +1 -1
  178. package/build/component/generator/generator.d.ts.map +1 -1
  179. package/build/component/generator/generator.js +16 -25
  180. package/build/component/generator/generator.js.map +1 -1
  181. package/build/component/generator/generatorAction.d.ts +4 -1
  182. package/build/component/generator/generatorAction.d.ts.map +1 -1
  183. package/build/component/generator/generatorAction.js +24 -6
  184. package/build/component/generator/generatorAction.js.map +1 -1
  185. package/build/component/generator/officeAddin/helperMethods.js +21 -20
  186. package/build/component/generator/officeAddin/helperMethods.js.map +1 -1
  187. package/build/component/generator/spfx/depsChecker/dependencyChecker.d.ts +1 -1
  188. package/build/component/generator/spfx/depsChecker/dependencyChecker.d.ts.map +1 -1
  189. package/build/component/generator/spfx/depsChecker/generatorChecker.d.ts +4 -3
  190. package/build/component/generator/spfx/depsChecker/generatorChecker.d.ts.map +1 -1
  191. package/build/component/generator/spfx/depsChecker/generatorChecker.js +30 -20
  192. package/build/component/generator/spfx/depsChecker/generatorChecker.js.map +1 -1
  193. package/build/component/generator/spfx/depsChecker/yoChecker.d.ts +3 -2
  194. package/build/component/generator/spfx/depsChecker/yoChecker.d.ts.map +1 -1
  195. package/build/component/generator/spfx/depsChecker/yoChecker.js +27 -18
  196. package/build/component/generator/spfx/depsChecker/yoChecker.js.map +1 -1
  197. package/build/component/generator/spfx/error.d.ts +2 -0
  198. package/build/component/generator/spfx/error.d.ts.map +1 -1
  199. package/build/component/generator/spfx/error.js +16 -1
  200. package/build/component/generator/spfx/error.js.map +1 -1
  201. package/build/component/generator/spfx/spfxGenerator.d.ts +3 -0
  202. package/build/component/generator/spfx/spfxGenerator.d.ts.map +1 -1
  203. package/build/component/generator/spfx/spfxGenerator.js +149 -20
  204. package/build/component/generator/spfx/spfxGenerator.js.map +1 -1
  205. package/build/component/generator/spfx/utils/constants.d.ts +3 -0
  206. package/build/component/generator/spfx/utils/constants.d.ts.map +1 -1
  207. package/build/component/generator/spfx/utils/constants.js +3 -0
  208. package/build/component/generator/spfx/utils/constants.js.map +1 -1
  209. package/build/component/generator/spfx/utils/telemetryEvents.d.ts +7 -8
  210. package/build/component/generator/spfx/utils/telemetryEvents.d.ts.map +1 -1
  211. package/build/component/generator/spfx/utils/telemetryEvents.js +5 -6
  212. package/build/component/generator/spfx/utils/telemetryEvents.js.map +1 -1
  213. package/build/component/generator/spfx/utils/utils.js +1 -1
  214. package/build/component/generator/utils.d.ts +5 -2
  215. package/build/component/generator/utils.d.ts.map +1 -1
  216. package/build/component/generator/utils.js +32 -12
  217. package/build/component/generator/utils.js.map +1 -1
  218. package/build/component/utils/common.d.ts +4 -1
  219. package/build/component/utils/common.d.ts.map +1 -1
  220. package/build/component/utils/common.js +21 -17
  221. package/build/component/utils/common.js.map +1 -1
  222. package/build/component/utils/envUtil.d.ts +1 -0
  223. package/build/component/utils/envUtil.d.ts.map +1 -1
  224. package/build/component/utils/envUtil.js +14 -2
  225. package/build/component/utils/envUtil.js.map +1 -1
  226. package/build/component/utils/fileOperation.d.ts +1 -1
  227. package/build/component/utils/fileOperation.d.ts.map +1 -1
  228. package/build/component/utils/fileOperation.js +34 -48
  229. package/build/component/utils/fileOperation.js.map +1 -1
  230. package/build/core/FxCore.d.ts +5 -0
  231. package/build/core/FxCore.d.ts.map +1 -1
  232. package/build/core/FxCore.js +48 -24
  233. package/build/core/FxCore.js.map +1 -1
  234. package/build/core/middleware/projectMigratorV3.d.ts +1 -1
  235. package/build/core/middleware/projectMigratorV3.d.ts.map +1 -1
  236. package/build/core/middleware/projectMigratorV3.js +10 -9
  237. package/build/core/middleware/projectMigratorV3.js.map +1 -1
  238. package/build/core/middleware/projectVersionChecker.js +4 -4
  239. package/build/core/middleware/projectVersionChecker.js.map +1 -1
  240. package/build/error/deploy.d.ts +6 -0
  241. package/build/error/deploy.d.ts.map +1 -1
  242. package/build/error/deploy.js +25 -1
  243. package/build/error/deploy.js.map +1 -1
  244. package/build/index.d.ts +1 -0
  245. package/build/index.d.ts.map +1 -1
  246. package/build/index.js +1 -0
  247. package/build/index.js.map +1 -1
  248. package/build/question/create.d.ts.map +1 -1
  249. package/build/question/create.js +14 -5
  250. package/build/question/create.js.map +1 -1
  251. package/build/question/generator.js +1 -3
  252. package/build/question/generator.js.map +1 -1
  253. package/build/question/options/CreateProjectOptions.js +1 -1
  254. package/build/question/options/CreateProjectOptions.js.map +1 -1
  255. package/build/question/options/CreateSampleProjectOptions.d.ts.map +1 -1
  256. package/build/question/options/CreateSampleProjectOptions.js +5 -1
  257. package/build/question/options/CreateSampleProjectOptions.js.map +1 -1
  258. package/build/question/options/DeployAadManifestOptions.js +1 -1
  259. package/build/question/options/DeployAadManifestOptions.js.map +1 -1
  260. package/build/question/options/PermissionGrantOptions.js +1 -1
  261. package/build/question/options/PermissionGrantOptions.js.map +1 -1
  262. package/build/question/options/PermissionListOptions.js +1 -1
  263. package/build/question/options/PermissionListOptions.js.map +1 -1
  264. package/build/question/other.d.ts +2 -1
  265. package/build/question/other.d.ts.map +1 -1
  266. package/build/question/other.js +22 -8
  267. package/build/question/other.js.map +1 -1
  268. package/build/question/questionNames.d.ts +1 -0
  269. package/build/question/questionNames.d.ts.map +1 -1
  270. package/build/question/questionNames.js +1 -0
  271. package/build/question/questionNames.js.map +1 -1
  272. package/build/ui/visitor.d.ts.map +1 -1
  273. package/build/ui/visitor.js +11 -2
  274. package/build/ui/visitor.js.map +1 -1
  275. package/package.json +14 -22
  276. package/resource/package.nls.json +27 -7
  277. package/resource/yaml-schema/v1.3/yaml.schema.json +42 -5
  278. package/templates/fallback/common.zip +0 -0
  279. package/templates/fallback/csharp.zip +0 -0
  280. package/templates/fallback/js.zip +0 -0
  281. package/templates/fallback/ts.zip +0 -0
  282. package/templates/plugins/resource/aad/auth/V3/Bot/Pages/BotAuthorizeEndPage.cshtml +55 -51
  283. package/templates/plugins/resource/aad/auth/bot/csharp/Pages/BotAuthorizeEndPage.cshtml +55 -51
  284. package/templates/plugins/resource/aad/auth/bot/js/public/auth-end.html +6 -2
  285. package/templates/plugins/resource/aad/auth/bot/ts/public/auth-end.html +5 -1
  286. package/templates/plugins/resource/aad/auth/tab/js/public/auth-end.html +16 -9
  287. package/templates/plugins/resource/aad/auth/tab/js/public/auth-start.html +11 -7
  288. package/templates/plugins/resource/aad/auth/tab/ts/public/auth-end.html +16 -9
  289. package/templates/plugins/resource/aad/auth/tab/ts/public/auth-start.html +11 -7
@@ -0,0 +1,217 @@
1
+ "use strict";
2
+ // Copyright (c) Microsoft Corporation.
3
+ // Licensed under the MIT license.
4
+ Object.defineProperty(exports, "__esModule", { value: true });
5
+ exports.projectTypeChecker = exports.getCapabilities = exports.TeamsfxVersionState = exports.SPFxKey = exports.TeamsJsModule = exports.TeamsfxConfigType = void 0;
6
+ const tslib_1 = require("tslib");
7
+ const fs_extra_1 = tslib_1.__importDefault(require("fs-extra"));
8
+ const path_1 = tslib_1.__importDefault(require("path"));
9
+ const semver_1 = tslib_1.__importDefault(require("semver"));
10
+ const yaml_1 = require("yaml");
11
+ const versionMetadata_1 = require("./versionMetadata");
12
+ var TeamsfxConfigType;
13
+ (function (TeamsfxConfigType) {
14
+ TeamsfxConfigType["projectSettingsJson"] = "projectSettings.json";
15
+ TeamsfxConfigType["teamsappYml"] = "teamsapp.yml";
16
+ })(TeamsfxConfigType = exports.TeamsfxConfigType || (exports.TeamsfxConfigType = {}));
17
+ exports.TeamsJsModule = "@microsoft/teams-js";
18
+ exports.SPFxKey = "@microsoft/generator-sharepoint";
19
+ var TeamsfxVersionState;
20
+ (function (TeamsfxVersionState) {
21
+ TeamsfxVersionState["Compatible"] = "compatible";
22
+ TeamsfxVersionState["Upgradable"] = "upgradable";
23
+ TeamsfxVersionState["Unsupported"] = "unsupported";
24
+ TeamsfxVersionState["Invalid"] = "invalid";
25
+ })(TeamsfxVersionState = exports.TeamsfxVersionState || (exports.TeamsfxVersionState = {}));
26
+ class ProjectTypeChecker {
27
+ async scanFolder(currentPath, ignoreFolderName, data, fileCallback, maxDepth, currentDepth = 0) {
28
+ const fileName = path_1.default.parse(currentPath).base;
29
+ if (ignoreFolderName.includes(fileName)) {
30
+ return true;
31
+ }
32
+ const res = await fileCallback(currentPath, data);
33
+ if (!res) {
34
+ return false;
35
+ }
36
+ const stat = await fs_extra_1.default.stat(currentPath);
37
+ if (stat.isDirectory()) {
38
+ if (currentDepth < maxDepth) {
39
+ const subFiles = await fs_extra_1.default.readdir(currentPath);
40
+ for (const subFile of subFiles) {
41
+ const subFilePath = path_1.default.join(currentPath, subFile);
42
+ const res = await this.scanFolder(subFilePath, ignoreFolderName, data, fileCallback, maxDepth, currentDepth + 1);
43
+ if (!res) {
44
+ return false;
45
+ }
46
+ }
47
+ }
48
+ }
49
+ return true;
50
+ }
51
+ async findManifestCallback(filePath, data) {
52
+ const fileName = path_1.default.parse(filePath).base;
53
+ if (fileName.toLowerCase().includes("manifest") && fileName.toLowerCase().endsWith(".json")) {
54
+ try {
55
+ const manifestContent = await fs_extra_1.default.readFile(filePath, "utf-8");
56
+ const manifestObject = JSON.parse(manifestContent);
57
+ const schemaLink = manifestObject["$schema"];
58
+ const targetSchema = "https://developer.microsoft.com/en-us/json-schemas/teams";
59
+ if (schemaLink && schemaLink.startsWith(targetSchema)) {
60
+ data.hasTeamsManifest = true;
61
+ data.manifestCapabilities = getCapabilities(manifestObject);
62
+ data.manifestAppId = manifestObject.id;
63
+ data.manifestVersion = manifestObject.manifestVersion;
64
+ return false;
65
+ }
66
+ }
67
+ catch (error) { }
68
+ }
69
+ return true;
70
+ }
71
+ async findProjectLanguateCallback(filePath, data) {
72
+ var _a;
73
+ const parsed = path_1.default.parse(filePath);
74
+ const fileName = parsed.base;
75
+ if (fileName === "tsconfig.json") {
76
+ data.lauguages.push("ts");
77
+ return false;
78
+ }
79
+ else if (fileName === "package.json") {
80
+ try {
81
+ const content = await fs_extra_1.default.readFile(filePath, "utf-8");
82
+ const json = JSON.parse(content);
83
+ if ((_a = json === null || json === void 0 ? void 0 : json.dependencies) === null || _a === void 0 ? void 0 : _a[exports.TeamsJsModule]) {
84
+ data.dependsOnTeamsJs = true;
85
+ }
86
+ const tsconfigExist = await fs_extra_1.default.pathExists(path_1.default.join(parsed.dir, "tsconfig.json"));
87
+ if (!tsconfigExist)
88
+ data.lauguages.push("js");
89
+ else
90
+ data.lauguages.push("ts");
91
+ return false;
92
+ }
93
+ catch (error) { }
94
+ }
95
+ else if (fileName.toLowerCase().endsWith(".csproj")) {
96
+ data.lauguages.push("csharp");
97
+ return false;
98
+ }
99
+ else if (fileName === "pom.xml" || fileName === "build.gradle") {
100
+ data.lauguages.push("java");
101
+ return false;
102
+ }
103
+ else if (fileName.toLowerCase() === "makefile") {
104
+ data.lauguages.push("c");
105
+ return false;
106
+ }
107
+ else if (fileName === "requirements.txt" || fileName === "pyproject.toml") {
108
+ data.lauguages.push("python");
109
+ return false;
110
+ }
111
+ return true;
112
+ }
113
+ async findTeamsFxCallback(filePath, data) {
114
+ const parsed = path_1.default.parse(filePath);
115
+ const fileName = parsed.base;
116
+ if (fileName === ".fx") {
117
+ const settingFile = path_1.default.join(filePath, "configs", "projectSettings.json");
118
+ const exists = await fs_extra_1.default.pathExists(settingFile);
119
+ if (exists) {
120
+ data.isTeamsFx = true;
121
+ data.teamsfxConfigType = TeamsfxConfigType.projectSettingsJson;
122
+ const json = await fs_extra_1.default.readJson(settingFile);
123
+ data.teamsfxConfigVersion = json.version;
124
+ data.teamsfxProjectId = json.projectId;
125
+ const solutionSettings = json.solutionSettings;
126
+ if (!solutionSettings ||
127
+ !(solutionSettings === null || solutionSettings === void 0 ? void 0 : solutionSettings.activeResourcePlugins) ||
128
+ !data.teamsfxConfigVersion) {
129
+ data.teamsfxVersionState = TeamsfxVersionState.Invalid;
130
+ }
131
+ else if (data.teamsfxConfigVersion) {
132
+ if (semver_1.default.gte(data.teamsfxConfigVersion, versionMetadata_1.MetadataV2.projectVersion) &&
133
+ semver_1.default.lte(data.teamsfxConfigVersion, versionMetadata_1.MetadataV2.projectMaxVersion)) {
134
+ data.teamsfxVersionState = TeamsfxVersionState.Upgradable;
135
+ }
136
+ else {
137
+ data.teamsfxVersionState = TeamsfxVersionState.Unsupported;
138
+ }
139
+ }
140
+ return false;
141
+ }
142
+ }
143
+ else if (fileName === versionMetadata_1.MetadataV3.configFile || fileName === versionMetadata_1.MetadataV3.localConfigFile) {
144
+ data.isTeamsFx = true;
145
+ data.teamsfxConfigType = TeamsfxConfigType.teamsappYml;
146
+ if (fileName === versionMetadata_1.MetadataV3.configFile) {
147
+ const yamlFileContent = await fs_extra_1.default.readFile(filePath, "utf8");
148
+ const appYaml = yaml_1.parseDocument(yamlFileContent);
149
+ data.teamsfxConfigVersion = appYaml.get("version");
150
+ data.teamsfxProjectId = appYaml.get("projectId");
151
+ if (!semver_1.default.valid(data.teamsfxConfigVersion) ||
152
+ semver_1.default.lt(data.teamsfxConfigVersion, versionMetadata_1.MetadataV3.unSupprotVersion)) {
153
+ data.teamsfxVersionState = TeamsfxVersionState.Compatible;
154
+ }
155
+ else {
156
+ data.teamsfxVersionState = TeamsfxVersionState.Unsupported;
157
+ }
158
+ }
159
+ else {
160
+ return true;
161
+ }
162
+ return false;
163
+ }
164
+ return true;
165
+ }
166
+ async findSPFxCallback(filePath, data) {
167
+ const parsed = path_1.default.parse(filePath);
168
+ const fileName = parsed.base;
169
+ if (fileName === ".yo-rc.json") {
170
+ const content = await fs_extra_1.default.readJson(filePath);
171
+ if (content[exports.SPFxKey]) {
172
+ data.isSPFx = true;
173
+ return false;
174
+ }
175
+ }
176
+ return true;
177
+ }
178
+ async checkProjectType(projectPath) {
179
+ const result = {
180
+ isTeamsFx: false,
181
+ hasTeamsManifest: false,
182
+ dependsOnTeamsJs: false,
183
+ lauguages: [],
184
+ };
185
+ try {
186
+ await this.scanFolder(projectPath, ["node_modules", "bin", "build", "dist", ".vscode"], result, this.findManifestCallback, 2, 0);
187
+ await this.scanFolder(projectPath, ["node_modules", "bin", "build", "dist", ".vscode"], result, this.findProjectLanguateCallback, 2, 0);
188
+ //only scan direct sub folder
189
+ await this.scanFolder(projectPath, ["node_modules", "bin", "build", "dist", ".vscode"], result, this.findTeamsFxCallback, 1, 0);
190
+ await this.scanFolder(projectPath, ["node_modules", "bin", "build", "dist", ".vscode"], result, this.findSPFxCallback, 2, 0);
191
+ }
192
+ catch (e) { }
193
+ return result;
194
+ }
195
+ }
196
+ function getCapabilities(manifest) {
197
+ const capabilities = [];
198
+ if (manifest.staticTabs && manifest.staticTabs.length > 0) {
199
+ capabilities.push("staticTab");
200
+ }
201
+ if (manifest.configurableTabs && manifest.configurableTabs.length > 0) {
202
+ capabilities.push("configurableTab");
203
+ }
204
+ if (manifest.bots && manifest.bots.length > 0) {
205
+ capabilities.push("bot");
206
+ }
207
+ if (manifest.composeExtensions && manifest.composeExtensions.length > 0) {
208
+ capabilities.push("composeExtension");
209
+ }
210
+ if (manifest.extensions && manifest.extensions.length > 0) {
211
+ capabilities.push("extension");
212
+ }
213
+ return capabilities;
214
+ }
215
+ exports.getCapabilities = getCapabilities;
216
+ exports.projectTypeChecker = new ProjectTypeChecker();
217
+ //# sourceMappingURL=projectTypeChecker.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"projectTypeChecker.js","sourceRoot":"","sources":["../../src/common/projectTypeChecker.ts"],"names":[],"mappings":"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"}
@@ -29,10 +29,12 @@ interface SampleCollection {
29
29
  };
30
30
  }
31
31
  declare class SampleProvider {
32
- private samplesConfig;
33
- private branchOrTag;
34
- fetchSampleConfig(): Promise<void>;
35
- get SampleCollection(): SampleCollection;
32
+ private sampleCollection;
33
+ get SampleCollection(): Promise<SampleCollection>;
34
+ refreshSampleConfig(): Promise<SampleCollection>;
35
+ private fetchOnlineSampleConfig;
36
+ private parseOnlineSampleConfig;
37
+ getSampleReadmeHtml(sample: SampleConfig): Promise<string>;
36
38
  private fetchRawFileContent;
37
39
  }
38
40
  export declare const sampleProvider: SampleProvider;
@@ -1 +1 @@
1
- {"version":3,"file":"samples.d.ts","sourceRoot":"","sources":["../../src/common/samples.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,aAAa,EAA0B,MAAM,8BAA8B,CAAC;AAUrF,eAAO,MAAM,eAAe,WAAW,CAAC;AAExC,eAAO,MAAM,+BAA+B,OAAO,CAAC;AAEpD,MAAM,WAAW,YAAY;IAC3B,EAAE,EAAE,MAAM,CAAC;IACX,WAAW,EAAE,IAAI,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,gBAAgB,EAAE,MAAM,CAAC;IACzB,eAAe,EAAE,MAAM,CAAC;IAExB,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,aAAa,EAAE,MAAM,CAAC;IACtB,SAAS,EAAE,OAAO,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;IACrB,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAC/B,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAE3B,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAC/B,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,eAAe,EAAE,aAAa,CAAC;CAChC;AAED,UAAU,gBAAgB;IACxB,OAAO,EAAE,YAAY,EAAE,CAAC;IACxB,aAAa,EAAE;QACb,YAAY,EAAE,MAAM,EAAE,CAAC;QACvB,SAAS,EAAE,MAAM,EAAE,CAAC;QACpB,YAAY,EAAE,MAAM,EAAE,CAAC;KACxB,CAAC;CACH;AAOD,cAAM,cAAc;IAClB,OAAO,CAAC,aAAa,CAA+B;IACpD,OAAO,CAAC,WAAW,CAAmB;IAGzB,iBAAiB;IA4B9B,IAAW,gBAAgB,IAAI,gBAAgB,CAiD9C;YAEa,mBAAmB;CAkBlC;AAED,eAAO,MAAM,cAAc,gBAAuB,CAAC"}
1
+ {"version":3,"file":"samples.d.ts","sourceRoot":"","sources":["../../src/common/samples.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,aAAa,EAA0B,MAAM,8BAA8B,CAAC;AAUrF,eAAO,MAAM,eAAe,WAAW,CAAC;AAExC,eAAO,MAAM,+BAA+B,OAAO,CAAC;AAEpD,MAAM,WAAW,YAAY;IAC3B,EAAE,EAAE,MAAM,CAAC;IACX,WAAW,EAAE,IAAI,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,gBAAgB,EAAE,MAAM,CAAC;IACzB,eAAe,EAAE,MAAM,CAAC;IAExB,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,aAAa,EAAE,MAAM,CAAC;IACtB,SAAS,EAAE,OAAO,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;IACrB,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAC/B,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAE3B,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAC/B,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,eAAe,EAAE,aAAa,CAAC;CAChC;AAED,UAAU,gBAAgB;IACxB,OAAO,EAAE,YAAY,EAAE,CAAC;IACxB,aAAa,EAAE;QACb,YAAY,EAAE,MAAM,EAAE,CAAC;QACvB,SAAS,EAAE,MAAM,EAAE,CAAC;QACpB,YAAY,EAAE,MAAM,EAAE,CAAC;KACxB,CAAC;CACH;AAOD,cAAM,cAAc;IAClB,OAAO,CAAC,gBAAgB,CAA+B;IAEvD,IAAW,gBAAgB,IAAI,OAAO,CAAC,gBAAgB,CAAC,CAKvD;IAEY,mBAAmB,IAAI,OAAO,CAAC,gBAAgB,CAAC;YAM/C,uBAAuB;IAsCrC,OAAO,CAAC,uBAAuB;IAmDlB,mBAAmB,CAAC,MAAM,EAAE,YAAY,GAAG,OAAO,CAAC,MAAM,CAAC;YA2BzD,mBAAmB;CAkBlC;AAED,eAAO,MAAM,cAAc,gBAAuB,CAAC"}
@@ -18,48 +18,60 @@ exports.SampleConfigTag = "v2.4.0";
18
18
  // prerelease tag is always using a branch.
19
19
  exports.SampleConfigBranchForPrerelease = "v3";
20
20
  class SampleProvider {
21
- constructor() {
22
- this.branchOrTag = exports.SampleConfigTag;
21
+ get SampleCollection() {
22
+ if (!this.sampleCollection) {
23
+ return this.refreshSampleConfig();
24
+ }
25
+ return Promise.resolve(this.sampleCollection);
23
26
  }
24
- async fetchSampleConfig() {
27
+ async refreshSampleConfig() {
28
+ const { samplesConfig, ref } = await this.fetchOnlineSampleConfig();
29
+ this.sampleCollection = this.parseOnlineSampleConfig(samplesConfig, ref);
30
+ return this.sampleCollection;
31
+ }
32
+ async fetchOnlineSampleConfig() {
25
33
  const version = packageJson.version;
34
+ const configBranchInEnv = process.env[constants_1.FeatureFlagName.SampleConfigBranch];
35
+ let samplesConfig;
36
+ let ref = exports.SampleConfigTag;
37
+ // Set default value for branchOrTag
26
38
  if (version.includes("alpha")) {
27
39
  // daily build version always use 'dev' branch
28
- this.branchOrTag = "dev";
40
+ ref = "dev";
29
41
  }
30
42
  else if (version.includes("beta")) {
31
43
  // prerelease build version always use branch head for prerelease.
32
- this.branchOrTag = exports.SampleConfigBranchForPrerelease;
44
+ ref = exports.SampleConfigBranchForPrerelease;
33
45
  }
34
46
  else if (version.includes("rc")) {
35
47
  // if there is a breaking change, the tag is not used by any stable version.
36
- this.branchOrTag = exports.SampleConfigTag;
48
+ ref = exports.SampleConfigTag;
37
49
  }
38
50
  else {
39
51
  // stable version uses the head of branch defined by feature flag when available
40
- this.branchOrTag = exports.SampleConfigTag;
41
- const branch = process.env[constants_1.FeatureFlagName.SampleConfigBranch];
42
- if (branch) {
43
- try {
44
- const data = await this.fetchRawFileContent(branch);
45
- this.branchOrTag = branch;
46
- this.samplesConfig = data;
47
- }
48
- catch (e) { }
52
+ ref = exports.SampleConfigTag;
53
+ }
54
+ // Set branchOrTag value if branch in env is valid
55
+ if (configBranchInEnv) {
56
+ try {
57
+ const data = await this.fetchRawFileContent(configBranchInEnv);
58
+ ref = configBranchInEnv;
59
+ samplesConfig = data;
49
60
  }
61
+ catch (e) { }
50
62
  }
51
- if (this.samplesConfig === undefined) {
52
- this.samplesConfig = (await this.fetchRawFileContent(this.branchOrTag));
63
+ if (samplesConfig === undefined) {
64
+ samplesConfig = (await this.fetchRawFileContent(ref));
53
65
  }
66
+ return { samplesConfig, ref };
54
67
  }
55
- get SampleCollection() {
56
- var _a, _b, _c, _d;
57
- const samples = ((_a = this.samplesConfig) === null || _a === void 0 ? void 0 : _a.samples.map((sample) => {
68
+ parseOnlineSampleConfig(samplesConfig, ref) {
69
+ const samples = (samplesConfig === null || samplesConfig === void 0 ? void 0 : samplesConfig.samples.map((sample) => {
58
70
  const isExternal = sample["downloadUrlInfo"] ? true : false;
59
71
  let gifUrl = sample["gifPath"] !== undefined
60
- ? `https://raw.githubusercontent.com/${SampleConfigOwner}/${SampleConfigRepo}/${this.branchOrTag}/${sample["id"]}/${sample["gifPath"]}`
72
+ ? `https://raw.githubusercontent.com/${SampleConfigOwner}/${SampleConfigRepo}/${ref}/${sample["id"]}/${sample["gifPath"]}`
61
73
  : undefined;
62
- let thumbnailUrl = `https://raw.githubusercontent.com/${SampleConfigOwner}/${SampleConfigRepo}/${this.branchOrTag}/${sample["id"]}/${sample["thumbnailPath"]}`;
74
+ let thumbnailUrl = `https://raw.githubusercontent.com/${SampleConfigOwner}/${SampleConfigRepo}/${ref}/${sample["id"]}/${sample["thumbnailPath"]}`;
63
75
  if (isExternal) {
64
76
  const info = sample["downloadUrlInfo"];
65
77
  gifUrl =
@@ -73,19 +85,42 @@ class SampleProvider {
73
85
  : {
74
86
  owner: SampleConfigOwner,
75
87
  repository: SampleConfigRepo,
76
- ref: this.branchOrTag,
88
+ ref: ref,
77
89
  dir: sample["id"],
78
90
  }, gifUrl: gifUrl, thumbnailUrl: thumbnailUrl });
79
91
  })) || [];
80
92
  return {
81
93
  samples,
82
94
  filterOptions: {
83
- capabilities: ((_b = this.samplesConfig) === null || _b === void 0 ? void 0 : _b.filterOptions["capabilities"]) || [],
84
- languages: ((_c = this.samplesConfig) === null || _c === void 0 ? void 0 : _c.filterOptions["languages"]) || [],
85
- technologies: ((_d = this.samplesConfig) === null || _d === void 0 ? void 0 : _d.filterOptions["technologies"]) || [],
95
+ capabilities: (samplesConfig === null || samplesConfig === void 0 ? void 0 : samplesConfig.filterOptions["capabilities"]) || [],
96
+ languages: (samplesConfig === null || samplesConfig === void 0 ? void 0 : samplesConfig.filterOptions["languages"]) || [],
97
+ technologies: (samplesConfig === null || samplesConfig === void 0 ? void 0 : samplesConfig.filterOptions["technologies"]) || [],
86
98
  },
87
99
  };
88
100
  }
101
+ async getSampleReadmeHtml(sample) {
102
+ const urlInfo = sample.downloadUrlInfo;
103
+ const url = `https://api.github.com/repos/${urlInfo.owner}/${urlInfo.repository}/readme/${urlInfo.dir}/?ref=${urlInfo.ref}`;
104
+ try {
105
+ const readmeResponse = await utils_1.sendRequestWithTimeout(async () => {
106
+ return await axios_1.default.get(url, {
107
+ headers: {
108
+ Accept: "application/vnd.github.html",
109
+ "X-GitHub-Api-Version": "2022-11-28",
110
+ },
111
+ });
112
+ }, 1000, 3);
113
+ if (readmeResponse && readmeResponse.data) {
114
+ return readmeResponse.data;
115
+ }
116
+ else {
117
+ return "";
118
+ }
119
+ }
120
+ catch (e) {
121
+ throw new common_1.AccessGithubError(url, "SampleProvider", e);
122
+ }
123
+ }
89
124
  async fetchRawFileContent(branchOrTag) {
90
125
  const url = `https://raw.githubusercontent.com/${SampleConfigOwner}/${SampleConfigRepo}/${branchOrTag}/${SampleConfigFile}`;
91
126
  try {
@@ -104,8 +139,8 @@ class SampleProvider {
104
139
  tslib_1.__decorate([
105
140
  hooks_1.hooks([globalVars_1.ErrorContextMW({ component: "SampleProvider" })]),
106
141
  tslib_1.__metadata("design:type", Function),
107
- tslib_1.__metadata("design:paramtypes", []),
108
- tslib_1.__metadata("design:returntype", Promise)
109
- ], SampleProvider.prototype, "fetchSampleConfig", null);
142
+ tslib_1.__metadata("design:paramtypes", [Object, String]),
143
+ tslib_1.__metadata("design:returntype", Object)
144
+ ], SampleProvider.prototype, "parseOnlineSampleConfig", null);
110
145
  exports.sampleProvider = new SampleProvider();
111
146
  //# sourceMappingURL=samples.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"samples.js","sourceRoot":"","sources":["../../src/common/samples.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"samples.js","sourceRoot":"","sources":["../../src/common/samples.ts"],"names":[],"mappings":"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"}
@@ -134,10 +134,17 @@ export interface WrappedAdaptiveCard {
134
134
  responseCardTemplate: AdaptiveCard;
135
135
  previewCardTemplate: PreviewCardTemplate;
136
136
  }
137
+ export interface ChoicesItem {
138
+ title: string;
139
+ value: string;
140
+ }
137
141
  export interface Parameter {
138
142
  name: string;
139
143
  title: string;
140
144
  description: string;
145
+ inputType?: "text" | "textarea" | "number" | "date" | "time" | "toggle" | "choiceset";
146
+ value?: string;
147
+ choices?: ChoicesItem[];
141
148
  }
142
149
  export interface CheckParamResult {
143
150
  requiredNum: number;
@@ -148,6 +155,8 @@ export interface ParseOptions {
148
155
  allowMissingId?: boolean;
149
156
  allowSwagger?: boolean;
150
157
  allowAPIKeyAuth?: boolean;
158
+ allowMultipleParameters?: boolean;
159
+ allowOauth2?: boolean;
151
160
  }
152
161
  export interface APIInfo {
153
162
  method: string;
@@ -162,6 +171,10 @@ export interface ListAPIResult {
162
171
  api: string;
163
172
  server: string;
164
173
  operationId: string;
165
- auth?: OpenAPIV3.ApiKeySecurityScheme;
174
+ auth?: OpenAPIV3.SecuritySchemeObject;
175
+ }
176
+ export interface AuthSchema {
177
+ authSchema: OpenAPIV3.SecuritySchemeObject;
178
+ name: string;
166
179
  }
167
180
  //# sourceMappingURL=interfaces.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"interfaces.d.ts","sourceRoot":"","sources":["../../../src/common/spec-parser/interfaces.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"interfaces.d.ts","sourceRoot":"","sources":["../../../src/common/spec-parser/interfaces.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,7 @@
1
1
  import { OpenAPIV3 } from "openapi-types";
2
2
  import { WarningResult } from "./interfaces";
3
3
  import { IMessagingExtensionCommand, TeamsAppManifest } from "@microsoft/teamsfx-api";
4
- export declare function updateManifest(manifestPath: string, outputSpecPath: string, adaptiveCardFolder: string, spec: OpenAPIV3.Document, apiKeyAuthName?: string): Promise<[TeamsAppManifest, WarningResult[]]>;
5
- export declare function generateCommands(spec: OpenAPIV3.Document, adaptiveCardFolder: string, manifestPath: string): Promise<[IMessagingExtensionCommand[], WarningResult[]]>;
4
+ export declare function updateManifest(manifestPath: string, outputSpecPath: string, adaptiveCardFolder: string, spec: OpenAPIV3.Document, allowMultipleParameters: boolean, auth?: OpenAPIV3.SecuritySchemeObject): Promise<[TeamsAppManifest, WarningResult[]]>;
5
+ export declare function generateCommands(spec: OpenAPIV3.Document, adaptiveCardFolder: string, manifestPath: string, allowMultipleParameters: boolean): Promise<[IMessagingExtensionCommand[], WarningResult[]]>;
6
6
  export declare function getRelativePath(from: string, to: string): string;
7
7
  //# sourceMappingURL=manifestUpdater.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"manifestUpdater.d.ts","sourceRoot":"","sources":["../../../src/common/spec-parser/manifestUpdater.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAG1C,OAAO,EAAa,aAAa,EAAE,MAAM,cAAc,CAAC;AAIxD,OAAO,EAEL,0BAA0B,EAC1B,gBAAgB,EACjB,MAAM,wBAAwB,CAAC;AAEhC,wBAAsB,cAAc,CAClC,YAAY,EAAE,MAAM,EACpB,cAAc,EAAE,MAAM,EACtB,kBAAkB,EAAE,MAAM,EAC1B,IAAI,EAAE,SAAS,CAAC,QAAQ,EACxB,cAAc,CAAC,EAAE,MAAM,GACtB,OAAO,CAAC,CAAC,gBAAgB,EAAE,aAAa,EAAE,CAAC,CAAC,CAyC9C;AAED,wBAAsB,gBAAgB,CACpC,IAAI,EAAE,SAAS,CAAC,QAAQ,EACxB,kBAAkB,EAAE,MAAM,EAC1B,YAAY,EAAE,MAAM,GACnB,OAAO,CAAC,CAAC,0BAA0B,EAAE,EAAE,aAAa,EAAE,CAAC,CAAC,CAmC1D;AAED,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,MAAM,CAGhE"}
1
+ {"version":3,"file":"manifestUpdater.d.ts","sourceRoot":"","sources":["../../../src/common/spec-parser/manifestUpdater.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAG1C,OAAO,EAAa,aAAa,EAAE,MAAM,cAAc,CAAC;AASxD,OAAO,EAEL,0BAA0B,EAC1B,gBAAgB,EACjB,MAAM,wBAAwB,CAAC;AAEhC,wBAAsB,cAAc,CAClC,YAAY,EAAE,MAAM,EACpB,cAAc,EAAE,MAAM,EACtB,kBAAkB,EAAE,MAAM,EAC1B,IAAI,EAAE,SAAS,CAAC,QAAQ,EACxB,uBAAuB,EAAE,OAAO,EAChC,IAAI,CAAC,EAAE,SAAS,CAAC,oBAAoB,GACpC,OAAO,CAAC,CAAC,gBAAgB,EAAE,aAAa,EAAE,CAAC,CAAC,CA2D9C;AAED,wBAAsB,gBAAgB,CACpC,IAAI,EAAE,SAAS,CAAC,QAAQ,EACxB,kBAAkB,EAAE,MAAM,EAC1B,YAAY,EAAE,MAAM,EACpB,uBAAuB,EAAE,OAAO,GAC/B,OAAO,CAAC,CAAC,0BAA0B,EAAE,EAAE,aAAa,EAAE,CAAC,CAAC,CAmC1D;AAED,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,MAAM,CAGhE"}
@@ -10,32 +10,46 @@ const interfaces_1 = require("./interfaces");
10
10
  const utils_1 = require("./utils");
11
11
  const specParserError_1 = require("./specParserError");
12
12
  const constants_1 = require("./constants");
13
- async function updateManifest(manifestPath, outputSpecPath, adaptiveCardFolder, spec, apiKeyAuthName) {
13
+ async function updateManifest(manifestPath, outputSpecPath, adaptiveCardFolder, spec, allowMultipleParameters, auth) {
14
14
  var _a, _b;
15
15
  try {
16
16
  const originalManifest = await fs_extra_1.default.readJSON(manifestPath);
17
- const [commands, warnings] = await generateCommands(spec, adaptiveCardFolder, manifestPath);
18
- const ComposeExtension = {
17
+ const updatedPart = {};
18
+ const [commands, warnings] = await generateCommands(spec, adaptiveCardFolder, manifestPath, allowMultipleParameters);
19
+ const composeExtension = {
19
20
  composeExtensionType: "apiBased",
20
21
  apiSpecificationFile: getRelativePath(manifestPath, outputSpecPath),
21
22
  commands: commands,
22
23
  };
23
- if (apiKeyAuthName) {
24
- const safeApiSecretRegistrationId = utils_1.getSafeRegistrationIdEnvName(`${apiKeyAuthName}_${constants_1.ConstantString.RegistrationIdPostfix}`);
25
- ComposeExtension.authorization = {
26
- authType: "apiSecretServiceAuth",
27
- apiSecretServiceAuthConfiguration: {
28
- apiSecretRegistrationId: `\${{${safeApiSecretRegistrationId}}}`,
29
- },
30
- };
24
+ if (auth) {
25
+ if (utils_1.isAPIKeyAuth(auth)) {
26
+ auth = auth;
27
+ const safeApiSecretRegistrationId = utils_1.getSafeRegistrationIdEnvName(`${auth.name}_${constants_1.ConstantString.RegistrationIdPostfix}`);
28
+ composeExtension.authorization = {
29
+ authType: "apiSecretServiceAuth",
30
+ apiSecretServiceAuthConfiguration: {
31
+ apiSecretRegistrationId: `\${{${safeApiSecretRegistrationId}}}`,
32
+ },
33
+ };
34
+ }
35
+ else if (utils_1.isBearerTokenAuth(auth)) {
36
+ composeExtension.authorization = {
37
+ authType: "microsoftEntra",
38
+ microsoftEntraConfiguration: {
39
+ supportsSingleSignOn: true,
40
+ },
41
+ };
42
+ updatedPart.webApplicationInfo = {
43
+ id: "${{AAD_APP_CLIENT_ID}}",
44
+ resource: "api://${{DOMAIN}}/${{AAD_APP_CLIENT_ID}}",
45
+ };
46
+ }
31
47
  }
32
- const updatedPart = {
33
- description: {
34
- short: spec.info.title.slice(0, constants_1.ConstantString.ShortDescriptionMaxLens),
35
- full: (_b = ((_a = spec.info.description) !== null && _a !== void 0 ? _a : originalManifest.description.full)) === null || _b === void 0 ? void 0 : _b.slice(0, constants_1.ConstantString.FullDescriptionMaxLens),
36
- },
37
- composeExtensions: [ComposeExtension],
48
+ updatedPart.description = {
49
+ short: spec.info.title.slice(0, constants_1.ConstantString.ShortDescriptionMaxLens),
50
+ full: (_b = ((_a = spec.info.description) !== null && _a !== void 0 ? _a : originalManifest.description.full)) === null || _b === void 0 ? void 0 : _b.slice(0, constants_1.ConstantString.FullDescriptionMaxLens),
38
51
  };
52
+ updatedPart.composeExtensions = [composeExtension];
39
53
  const updatedManifest = Object.assign(Object.assign({}, originalManifest), updatedPart);
40
54
  return [updatedManifest, warnings];
41
55
  }
@@ -44,7 +58,7 @@ async function updateManifest(manifestPath, outputSpecPath, adaptiveCardFolder,
44
58
  }
45
59
  }
46
60
  exports.updateManifest = updateManifest;
47
- async function generateCommands(spec, adaptiveCardFolder, manifestPath) {
61
+ async function generateCommands(spec, adaptiveCardFolder, manifestPath, allowMultipleParameters) {
48
62
  const paths = spec.paths;
49
63
  const commands = [];
50
64
  const warnings = [];
@@ -58,7 +72,7 @@ async function generateCommands(spec, adaptiveCardFolder, manifestPath) {
58
72
  if (method === constants_1.ConstantString.PostMethod || method === constants_1.ConstantString.GetMethod) {
59
73
  const operationItem = operations[method];
60
74
  if (operationItem) {
61
- const [command, warning] = utils_1.parseApiInfo(operationItem);
75
+ const [command, warning] = utils_1.parseApiInfo(operationItem, allowMultipleParameters);
62
76
  const adaptiveCardPath = path_1.default.join(adaptiveCardFolder, command.id + ".json");
63
77
  command.apiResponseRenderingTemplateFile = (await fs_extra_1.default.pathExists(adaptiveCardPath))
64
78
  ? getRelativePath(manifestPath, adaptiveCardPath)
@@ -1 +1 @@
1
- {"version":3,"file":"manifestUpdater.js","sourceRoot":"","sources":["../../../src/common/spec-parser/manifestUpdater.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"manifestUpdater.js","sourceRoot":"","sources":["../../../src/common/spec-parser/manifestUpdater.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,3 @@
1
1
  import { OpenAPIV3 } from "openapi-types";
2
- export declare function specFilter(filter: string[], unResolveSpec: OpenAPIV3.Document, resolvedSpec: OpenAPIV3.Document, allowMissingId: boolean, allowAPIKeyAuth: boolean): OpenAPIV3.Document;
2
+ export declare function specFilter(filter: string[], unResolveSpec: OpenAPIV3.Document, resolvedSpec: OpenAPIV3.Document, allowMissingId: boolean, allowAPIKeyAuth: boolean, allowMultipleParameters: boolean, allowOauth2: boolean): OpenAPIV3.Document;
3
3
  //# sourceMappingURL=specFilter.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"specFilter.d.ts","sourceRoot":"","sources":["../../../src/common/spec-parser/specFilter.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAM1C,wBAAgB,UAAU,CACxB,MAAM,EAAE,MAAM,EAAE,EAChB,aAAa,EAAE,SAAS,CAAC,QAAQ,EACjC,YAAY,EAAE,SAAS,CAAC,QAAQ,EAChC,cAAc,EAAE,OAAO,EACvB,eAAe,EAAE,OAAO,GACvB,SAAS,CAAC,QAAQ,CAkCpB"}
1
+ {"version":3,"file":"specFilter.d.ts","sourceRoot":"","sources":["../../../src/common/spec-parser/specFilter.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAM1C,wBAAgB,UAAU,CACxB,MAAM,EAAE,MAAM,EAAE,EAChB,aAAa,EAAE,SAAS,CAAC,QAAQ,EACjC,YAAY,EAAE,SAAS,CAAC,QAAQ,EAChC,cAAc,EAAE,OAAO,EACvB,eAAe,EAAE,OAAO,EACxB,uBAAuB,EAAE,OAAO,EAChC,WAAW,EAAE,OAAO,GACnB,SAAS,CAAC,QAAQ,CA4CpB"}