@microsoft/teamsfx-core 3.0.13 → 3.0.14-alpha.0890e15c35.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.
- package/build/client/teamsDevPortalClient.d.ts +7 -2
- package/build/client/teamsDevPortalClient.d.ts.map +1 -1
- package/build/client/teamsDevPortalClient.js +63 -59
- package/build/client/teamsDevPortalClient.js.map +1 -1
- package/build/client/teamsGraphClient.d.ts +6 -3
- package/build/client/teamsGraphClient.d.ts.map +1 -1
- package/build/client/teamsGraphClient.js +20 -3
- package/build/client/teamsGraphClient.js.map +1 -1
- package/build/common/daSpecParser.d.ts +16 -1
- package/build/common/daSpecParser.d.ts.map +1 -1
- package/build/common/daSpecParser.js +34 -21
- package/build/common/daSpecParser.js.map +1 -1
- package/build/common/featureFlags.d.ts +22 -2
- package/build/common/featureFlags.d.ts.map +1 -1
- package/build/common/featureFlags.js +31 -3
- package/build/common/featureFlags.js.map +1 -1
- package/build/common/fetchHelper.d.ts.map +1 -1
- package/build/common/fetchHelper.js +41 -3
- package/build/common/fetchHelper.js.map +1 -1
- package/build/common/kiotaClient.d.ts +3 -3
- package/build/common/kiotaClient.d.ts.map +1 -1
- package/build/common/kiotaClient.js +10 -10
- package/build/common/kiotaClient.js.map +1 -1
- package/build/common/projectSettingsHelper.d.ts +0 -2
- package/build/common/projectSettingsHelper.d.ts.map +1 -1
- package/build/common/projectSettingsHelper.js +1 -56
- package/build/common/projectSettingsHelper.js.map +1 -1
- package/build/common/telemetry.d.ts +4 -15
- package/build/common/telemetry.d.ts.map +1 -1
- package/build/common/telemetry.js +7 -20
- package/build/common/telemetry.js.map +1 -1
- package/build/common/templates-config.json +9 -2
- package/build/common/tools.d.ts +6 -1
- package/build/common/tools.d.ts.map +1 -1
- package/build/common/tools.js +13 -8
- package/build/common/tools.js.map +1 -1
- package/build/common/wrappedAxiosClient.d.ts +1 -1
- package/build/common/wrappedAxiosClient.d.ts.map +1 -1
- package/build/common/wrappedAxiosClient.js +12 -13
- package/build/common/wrappedAxiosClient.js.map +1 -1
- package/build/component/configManager/actionInjector.d.ts +16 -1
- package/build/component/configManager/actionInjector.d.ts.map +1 -1
- package/build/component/configManager/actionInjector.js +106 -1
- package/build/component/configManager/actionInjector.js.map +1 -1
- package/build/component/configManager/validator.d.ts.map +1 -1
- package/build/component/configManager/validator.js +2 -0
- package/build/component/configManager/validator.js.map +1 -1
- package/build/component/coordinator/index.d.ts +4 -0
- package/build/component/coordinator/index.d.ts.map +1 -1
- package/build/component/coordinator/index.js +10 -3
- package/build/component/coordinator/index.js.map +1 -1
- package/build/component/deps-checker/internal/funcToolChecker.d.ts +6 -0
- package/build/component/deps-checker/internal/funcToolChecker.d.ts.map +1 -1
- package/build/component/deps-checker/internal/funcToolChecker.js +15 -12
- package/build/component/deps-checker/internal/funcToolChecker.js.map +1 -1
- package/build/component/deps-checker/internal/nodeChecker.js +1 -1
- package/build/component/deps-checker/internal/nodeChecker.js.map +1 -1
- package/build/component/deps-checker/internal/testToolChecker.d.ts +12 -0
- package/build/component/deps-checker/internal/testToolChecker.d.ts.map +1 -1
- package/build/component/deps-checker/internal/testToolChecker.js +23 -14
- package/build/component/deps-checker/internal/testToolChecker.js.map +1 -1
- package/build/component/developerPortalScaffoldUtils.d.ts +11 -1
- package/build/component/developerPortalScaffoldUtils.d.ts.map +1 -1
- package/build/component/developerPortalScaffoldUtils.js +21 -12
- package/build/component/developerPortalScaffoldUtils.js.map +1 -1
- package/build/component/driver/aad/utility/aadManifestHelper.d.ts +1 -1
- package/build/component/driver/aad/utility/aadManifestHelper.d.ts.map +1 -1
- package/build/component/driver/aad/utility/aadManifestHelper.js +7 -4
- package/build/component/driver/aad/utility/aadManifestHelper.js.map +1 -1
- package/build/component/driver/add/addWebPart.d.ts +9 -0
- package/build/component/driver/add/addWebPart.d.ts.map +1 -1
- package/build/component/driver/add/addWebPart.js +13 -7
- package/build/component/driver/add/addWebPart.js.map +1 -1
- package/build/component/driver/arm/util/handleError.d.ts +5 -0
- package/build/component/driver/arm/util/handleError.d.ts.map +1 -1
- package/build/component/driver/arm/util/handleError.js +10 -5
- package/build/component/driver/arm/util/handleError.js.map +1 -1
- package/build/component/driver/copilotAgent/interfaces/PublishArgs.d.ts +14 -0
- package/build/component/driver/copilotAgent/interfaces/PublishArgs.d.ts.map +1 -0
- package/build/component/driver/copilotAgent/interfaces/PublishArgs.js +5 -0
- package/build/component/driver/copilotAgent/interfaces/PublishArgs.js.map +1 -0
- package/build/component/driver/copilotAgent/publish.d.ts +16 -0
- package/build/component/driver/copilotAgent/publish.d.ts.map +1 -0
- package/build/component/driver/copilotAgent/publish.js +175 -0
- package/build/component/driver/copilotAgent/publish.js.map +1 -0
- package/build/component/driver/dcr/create.d.ts +10 -0
- package/build/component/driver/dcr/create.d.ts.map +1 -0
- package/build/component/driver/dcr/create.js +142 -0
- package/build/component/driver/dcr/create.js.map +1 -0
- package/build/component/driver/dcr/error/dcrNameTooLong.d.ts +5 -0
- package/build/component/driver/dcr/error/dcrNameTooLong.d.ts.map +1 -0
- package/build/component/driver/dcr/error/dcrNameTooLong.js +21 -0
- package/build/component/driver/dcr/error/dcrNameTooLong.js.map +1 -0
- package/build/component/driver/dcr/error/dcrWellKnownInvalid.d.ts +5 -0
- package/build/component/driver/dcr/error/dcrWellKnownInvalid.d.ts.map +1 -0
- package/build/component/driver/dcr/error/dcrWellKnownInvalid.js +21 -0
- package/build/component/driver/dcr/error/dcrWellKnownInvalid.js.map +1 -0
- package/build/component/driver/dcr/interface/createDcrArgs.d.ts +9 -0
- package/build/component/driver/dcr/interface/createDcrArgs.d.ts.map +1 -0
- package/build/component/driver/dcr/interface/createDcrArgs.js +5 -0
- package/build/component/driver/dcr/interface/createDcrArgs.js.map +1 -0
- package/build/component/driver/dcr/interface/createDcrOutputs.d.ts +7 -0
- package/build/component/driver/dcr/interface/createDcrOutputs.d.ts.map +1 -0
- package/build/component/driver/dcr/interface/createDcrOutputs.js +10 -0
- package/build/component/driver/dcr/interface/createDcrOutputs.js.map +1 -0
- package/build/component/driver/dcr/utility/constants.d.ts +7 -0
- package/build/component/driver/dcr/utility/constants.d.ts.map +1 -0
- package/build/component/driver/dcr/utility/constants.js +12 -0
- package/build/component/driver/dcr/utility/constants.js.map +1 -0
- package/build/component/driver/deploy/azure/azureStaticWebAppGetDeploymentTokenDriver.d.ts +8 -1
- package/build/component/driver/deploy/azure/azureStaticWebAppGetDeploymentTokenDriver.d.ts.map +1 -1
- package/build/component/driver/deploy/azure/azureStaticWebAppGetDeploymentTokenDriver.js +15 -10
- package/build/component/driver/deploy/azure/azureStaticWebAppGetDeploymentTokenDriver.js.map +1 -1
- package/build/component/driver/devTool/httpClient.d.ts +4 -0
- package/build/component/driver/devTool/httpClient.d.ts.map +1 -1
- package/build/component/driver/devTool/httpClient.js +6 -3
- package/build/component/driver/devTool/httpClient.js.map +1 -1
- package/build/component/driver/index.d.ts +2 -0
- package/build/component/driver/index.d.ts.map +1 -1
- package/build/component/driver/index.js +2 -0
- package/build/component/driver/index.js.map +1 -1
- package/build/component/driver/m365/acquire.d.ts +13 -1
- package/build/component/driver/m365/acquire.d.ts.map +1 -1
- package/build/component/driver/m365/acquire.js +16 -8
- package/build/component/driver/m365/acquire.js.map +1 -1
- package/build/component/driver/oauth/update.d.ts +6 -0
- package/build/component/driver/oauth/update.d.ts.map +1 -1
- package/build/component/driver/oauth/update.js +8 -4
- package/build/component/driver/oauth/update.js.map +1 -1
- package/build/component/driver/script/scriptDriver.d.ts +6 -0
- package/build/component/driver/script/scriptDriver.d.ts.map +1 -1
- package/build/component/driver/script/scriptDriver.js +9 -4
- package/build/component/driver/script/scriptDriver.js.map +1 -1
- package/build/component/driver/share/utils.d.ts.map +1 -1
- package/build/component/driver/share/utils.js +9 -7
- package/build/component/driver/share/utils.js.map +1 -1
- package/build/component/driver/teamsApp/constants.d.ts +4 -3
- package/build/component/driver/teamsApp/constants.d.ts.map +1 -1
- package/build/component/driver/teamsApp/constants.js +4 -3
- package/build/component/driver/teamsApp/constants.js.map +1 -1
- package/build/component/driver/teamsApp/createAppPackage.d.ts +8 -0
- package/build/component/driver/teamsApp/createAppPackage.d.ts.map +1 -1
- package/build/component/driver/teamsApp/createAppPackage.js +113 -13
- package/build/component/driver/teamsApp/createAppPackage.js.map +1 -1
- package/build/component/driver/teamsApp/interfaces/DcrRegistration.d.ts +10 -0
- package/build/component/driver/teamsApp/interfaces/DcrRegistration.d.ts.map +1 -0
- package/build/component/driver/teamsApp/interfaces/DcrRegistration.js +5 -0
- package/build/component/driver/teamsApp/interfaces/DcrRegistration.js.map +1 -0
- package/build/component/driver/teamsApp/interfaces/ValidationResult.d.ts +6 -0
- package/build/component/driver/teamsApp/interfaces/ValidationResult.d.ts.map +1 -1
- package/build/component/driver/teamsApp/publishAppPackage.d.ts +4 -2
- package/build/component/driver/teamsApp/publishAppPackage.d.ts.map +1 -1
- package/build/component/driver/teamsApp/publishAppPackage.js +9 -55
- package/build/component/driver/teamsApp/publishAppPackage.js.map +1 -1
- package/build/component/driver/teamsApp/syncManifest.d.ts +16 -3
- package/build/component/driver/teamsApp/syncManifest.d.ts.map +1 -1
- package/build/component/driver/teamsApp/syncManifest.js +28 -18
- package/build/component/driver/teamsApp/syncManifest.js.map +1 -1
- package/build/component/driver/teamsApp/teamsappMgr.d.ts +4 -0
- package/build/component/driver/teamsApp/teamsappMgr.d.ts.map +1 -1
- package/build/component/driver/teamsApp/teamsappMgr.js +6 -3
- package/build/component/driver/teamsApp/teamsappMgr.js.map +1 -1
- package/build/component/driver/teamsApp/utils/CopilotGptManifestUtils.d.ts +2 -0
- package/build/component/driver/teamsApp/utils/CopilotGptManifestUtils.d.ts.map +1 -1
- package/build/component/driver/teamsApp/utils/CopilotGptManifestUtils.js +113 -1
- package/build/component/driver/teamsApp/utils/CopilotGptManifestUtils.js.map +1 -1
- package/build/component/driver/teamsApp/utils/ManifestUtils.d.ts +5 -1
- package/build/component/driver/teamsApp/utils/ManifestUtils.d.ts.map +1 -1
- package/build/component/driver/teamsApp/utils/ManifestUtils.js +14 -3
- package/build/component/driver/teamsApp/utils/ManifestUtils.js.map +1 -1
- package/build/component/driver/teamsApp/utils/McpCertVerification.d.ts +17 -0
- package/build/component/driver/teamsApp/utils/McpCertVerification.d.ts.map +1 -0
- package/build/component/driver/teamsApp/utils/McpCertVerification.js +72 -0
- package/build/component/driver/teamsApp/utils/McpCertVerification.js.map +1 -0
- package/build/component/driver/teamsApp/utils/telemetry.d.ts +1 -0
- package/build/component/driver/teamsApp/utils/telemetry.d.ts.map +1 -1
- package/build/component/driver/teamsApp/utils/telemetry.js +1 -0
- package/build/component/driver/teamsApp/utils/telemetry.js.map +1 -1
- package/build/component/driver/teamsApp/validate.d.ts.map +1 -1
- package/build/component/driver/teamsApp/validate.js +12 -2
- package/build/component/driver/teamsApp/validate.js.map +1 -1
- package/build/component/driver/teamsApp/validateTestCases.d.ts +12 -0
- package/build/component/driver/teamsApp/validateTestCases.d.ts.map +1 -1
- package/build/component/driver/teamsApp/validateTestCases.js +17 -8
- package/build/component/driver/teamsApp/validateTestCases.js.map +1 -1
- package/build/component/driver/typeSpec/compile.d.ts +9 -0
- package/build/component/driver/typeSpec/compile.d.ts.map +1 -1
- package/build/component/driver/typeSpec/compile.js +16 -10
- package/build/component/driver/typeSpec/compile.js.map +1 -1
- package/build/component/generator/declarativeAgent/generator.d.ts +8 -0
- package/build/component/generator/declarativeAgent/generator.d.ts.map +1 -1
- package/build/component/generator/declarativeAgent/generator.js +16 -10
- package/build/component/generator/declarativeAgent/generator.js.map +1 -1
- package/build/component/generator/declarativeAgent/helper.d.ts +31 -0
- package/build/component/generator/declarativeAgent/helper.d.ts.map +1 -1
- package/build/component/generator/declarativeAgent/helper.js +237 -34
- package/build/component/generator/declarativeAgent/helper.js.map +1 -1
- package/build/component/generator/defaultGenerator.d.ts.map +1 -1
- package/build/component/generator/defaultGenerator.js +14 -1
- package/build/component/generator/defaultGenerator.js.map +1 -1
- package/build/component/generator/error.d.ts +3 -0
- package/build/component/generator/error.d.ts.map +1 -1
- package/build/component/generator/error.js +7 -1
- package/build/component/generator/error.js.map +1 -1
- package/build/component/generator/generatorAction.d.ts +9 -0
- package/build/component/generator/generatorAction.d.ts.map +1 -1
- package/build/component/generator/generatorAction.js +16 -8
- package/build/component/generator/generatorAction.js.map +1 -1
- package/build/component/generator/officeAddin/generator.d.ts +12 -0
- package/build/component/generator/officeAddin/generator.d.ts.map +1 -1
- package/build/component/generator/officeAddin/generator.js +53 -3
- package/build/component/generator/officeAddin/generator.js.map +1 -1
- package/build/component/generator/officeAddin/helperMethods.d.ts +4 -0
- package/build/component/generator/officeAddin/helperMethods.d.ts.map +1 -1
- package/build/component/generator/officeAddin/helperMethods.js +6 -3
- package/build/component/generator/officeAddin/helperMethods.js.map +1 -1
- package/build/component/generator/openApiSpec/customEngineAgentGenerator.d.ts +9 -0
- package/build/component/generator/openApiSpec/customEngineAgentGenerator.d.ts.map +1 -1
- package/build/component/generator/openApiSpec/customEngineAgentGenerator.js +11 -5
- package/build/component/generator/openApiSpec/customEngineAgentGenerator.js.map +1 -1
- package/build/component/generator/openPlugin/authorParser.d.ts +8 -0
- package/build/component/generator/openPlugin/authorParser.d.ts.map +1 -0
- package/build/component/generator/openPlugin/authorParser.js +49 -0
- package/build/component/generator/openPlugin/authorParser.js.map +1 -0
- package/build/component/generator/openPlugin/deterministicId.d.ts +6 -0
- package/build/component/generator/openPlugin/deterministicId.d.ts.map +1 -0
- package/build/component/generator/openPlugin/deterministicId.js +31 -0
- package/build/component/generator/openPlugin/deterministicId.js.map +1 -0
- package/build/component/generator/openPlugin/exporter.d.ts +18 -0
- package/build/component/generator/openPlugin/exporter.d.ts.map +1 -0
- package/build/component/generator/openPlugin/exporter.js +233 -0
- package/build/component/generator/openPlugin/exporter.js.map +1 -0
- package/build/component/generator/openPlugin/iconStrategy.d.ts +8 -0
- package/build/component/generator/openPlugin/iconStrategy.d.ts.map +1 -0
- package/build/component/generator/openPlugin/iconStrategy.js +62 -0
- package/build/component/generator/openPlugin/iconStrategy.js.map +1 -0
- package/build/component/generator/openPlugin/importer.d.ts +25 -0
- package/build/component/generator/openPlugin/importer.d.ts.map +1 -0
- package/build/component/generator/openPlugin/importer.js +140 -0
- package/build/component/generator/openPlugin/importer.js.map +1 -0
- package/build/component/generator/openPlugin/mapper.d.ts +6 -0
- package/build/component/generator/openPlugin/mapper.d.ts.map +1 -0
- package/build/component/generator/openPlugin/mapper.js +141 -0
- package/build/component/generator/openPlugin/mapper.js.map +1 -0
- package/build/component/generator/openPlugin/parser.d.ts +3 -0
- package/build/component/generator/openPlugin/parser.d.ts.map +1 -0
- package/build/component/generator/openPlugin/parser.js +153 -0
- package/build/component/generator/openPlugin/parser.js.map +1 -0
- package/build/component/generator/openPlugin/placeholderPng.d.ts +6 -0
- package/build/component/generator/openPlugin/placeholderPng.d.ts.map +1 -0
- package/build/component/generator/openPlugin/placeholderPng.js +71 -0
- package/build/component/generator/openPlugin/placeholderPng.js.map +1 -0
- package/build/component/generator/openPlugin/textUtils.d.ts +12 -0
- package/build/component/generator/openPlugin/textUtils.d.ts.map +1 -0
- package/build/component/generator/openPlugin/textUtils.js +43 -0
- package/build/component/generator/openPlugin/textUtils.js.map +1 -0
- package/build/component/generator/openPlugin/types.d.ts +128 -0
- package/build/component/generator/openPlugin/types.d.ts.map +1 -0
- package/build/component/generator/openPlugin/types.js.map +1 -0
- package/build/component/generator/spfx/utils/constants.d.ts +1 -1
- package/build/component/generator/spfx/utils/constants.js +1 -1
- package/build/component/generator/templateHelper.d.ts +15 -0
- package/build/component/generator/templateHelper.d.ts.map +1 -1
- package/build/component/generator/templateHelper.js +28 -0
- package/build/component/generator/templateHelper.js.map +1 -1
- package/build/component/generator/templates/metadata/index.d.ts.map +1 -1
- package/build/component/generator/templates/metadata/index.js +12 -5
- package/build/component/generator/templates/metadata/index.js.map +1 -1
- package/build/component/generator/templates/templateNames.d.ts +4 -1
- package/build/component/generator/templates/templateNames.d.ts.map +1 -1
- package/build/component/generator/templates/templateNames.js +5 -0
- package/build/component/generator/templates/templateNames.js.map +1 -1
- package/build/component/generator/templates/templateReplaceMap.d.ts.map +1 -1
- package/build/component/generator/templates/templateReplaceMap.js +4 -1
- package/build/component/generator/templates/templateReplaceMap.js.map +1 -1
- package/build/component/generator/utils.js +8 -8
- package/build/component/generator/utils.js.map +1 -1
- package/build/component/generator/v4MetadataSource.d.ts +23 -0
- package/build/component/generator/v4MetadataSource.d.ts.map +1 -0
- package/build/component/generator/v4MetadataSource.js +42 -0
- package/build/component/generator/v4MetadataSource.js.map +1 -0
- package/build/component/generator/v4TemplateBridge.d.ts +40 -0
- package/build/component/generator/v4TemplateBridge.d.ts.map +1 -0
- package/build/component/generator/v4TemplateBridge.js +125 -0
- package/build/component/generator/v4TemplateBridge.js.map +1 -0
- package/build/component/local/localCertificateManager.d.ts +17 -1
- package/build/component/local/localCertificateManager.d.ts.map +1 -1
- package/build/component/local/localCertificateManager.js +48 -31
- package/build/component/local/localCertificateManager.js.map +1 -1
- package/build/component/m365/packageService.d.ts +10 -0
- package/build/component/m365/packageService.d.ts.map +1 -1
- package/build/component/m365/packageService.js +55 -13
- package/build/component/m365/packageService.js.map +1 -1
- package/build/component/middleware/envMW.d.ts.map +1 -1
- package/build/component/middleware/envMW.js +5 -0
- package/build/component/middleware/envMW.js.map +1 -1
- package/build/component/utils/ResourceGroupHelper.d.ts +4 -0
- package/build/component/utils/ResourceGroupHelper.d.ts.map +1 -1
- package/build/component/utils/ResourceGroupHelper.js +7 -4
- package/build/component/utils/ResourceGroupHelper.js.map +1 -1
- package/build/component/utils/charsetUtils.js +3 -3
- package/build/component/utils/charsetUtils.js.map +1 -1
- package/build/component/utils/fileOperation.d.ts +10 -0
- package/build/component/utils/fileOperation.d.ts.map +1 -1
- package/build/component/utils/fileOperation.js +27 -17
- package/build/component/utils/fileOperation.js.map +1 -1
- package/build/component/utils/mcpAuthScaffolder.d.ts +106 -0
- package/build/component/utils/mcpAuthScaffolder.d.ts.map +1 -0
- package/build/component/utils/mcpAuthScaffolder.js +153 -0
- package/build/component/utils/mcpAuthScaffolder.js.map +1 -0
- package/build/component/utils/mcpToolFetcher.d.ts +12 -1
- package/build/component/utils/mcpToolFetcher.d.ts.map +1 -1
- package/build/component/utils/mcpToolFetcher.js +23 -3
- package/build/component/utils/mcpToolFetcher.js.map +1 -1
- package/build/component/utils/metadataGraphPermssion.d.ts +4 -0
- package/build/component/utils/metadataGraphPermssion.d.ts.map +1 -1
- package/build/component/utils/metadataGraphPermssion.js +7 -4
- package/build/component/utils/metadataGraphPermssion.js.map +1 -1
- package/build/component/utils/odrProvider.d.ts +6 -0
- package/build/component/utils/odrProvider.d.ts.map +1 -1
- package/build/component/utils/odrProvider.js +9 -4
- package/build/component/utils/odrProvider.js.map +1 -1
- package/build/core/FxCore.d.ts +46 -4
- package/build/core/FxCore.d.ts.map +1 -1
- package/build/core/FxCore.declarativeAgent.d.ts +9 -0
- package/build/core/FxCore.declarativeAgent.d.ts.map +1 -1
- package/build/core/FxCore.declarativeAgent.js +286 -174
- package/build/core/FxCore.declarativeAgent.js.map +1 -1
- package/build/core/FxCore.js +443 -140
- package/build/core/FxCore.js.map +1 -1
- package/build/core/FxCore.openPlugin.d.ts +29 -0
- package/build/core/FxCore.openPlugin.d.ts.map +1 -0
- package/build/core/FxCore.openPlugin.js +135 -0
- package/build/core/FxCore.openPlugin.js.map +1 -0
- package/build/core/collaborator.d.ts +4 -0
- package/build/core/collaborator.d.ts.map +1 -1
- package/build/core/collaborator.js +6 -3
- package/build/core/collaborator.js.map +1 -1
- package/build/core/middleware/concurrentLocker.d.ts +9 -0
- package/build/core/middleware/concurrentLocker.d.ts.map +1 -1
- package/build/core/middleware/concurrentLocker.js +14 -11
- package/build/core/middleware/concurrentLocker.js.map +1 -1
- package/build/core/middleware/errorHandler.d.ts.map +1 -1
- package/build/core/middleware/errorHandler.js +9 -0
- package/build/core/middleware/errorHandler.js.map +1 -1
- package/build/core/middleware/fileLocker.d.ts +6 -0
- package/build/core/middleware/fileLocker.d.ts.map +1 -1
- package/build/core/middleware/fileLocker.js +11 -6
- package/build/core/middleware/fileLocker.js.map +1 -1
- package/build/core/middleware/utils/v3MigrationUtils.d.ts +1 -34
- package/build/core/middleware/utils/v3MigrationUtils.d.ts.map +1 -1
- package/build/core/middleware/utils/v3MigrationUtils.js +6 -245
- package/build/core/middleware/utils/v3MigrationUtils.js.map +1 -1
- package/build/error/teamsApp.d.ts +3 -0
- package/build/error/teamsApp.d.ts.map +1 -1
- package/build/error/teamsApp.js +15 -1
- package/build/error/teamsApp.js.map +1 -1
- package/build/question/constants.d.ts.map +1 -1
- package/build/question/constants.js +1 -6
- package/build/question/constants.js.map +1 -1
- package/build/question/create.d.ts +8 -1
- package/build/question/create.d.ts.map +1 -1
- package/build/question/create.js +24 -15
- package/build/question/create.js.map +1 -1
- package/build/question/index.d.ts +1 -0
- package/build/question/index.d.ts.map +1 -1
- package/build/question/index.js +3 -0
- package/build/question/index.js.map +1 -1
- package/build/question/inputs/AddPluginInputs.d.ts +1 -1
- package/build/question/inputs/AddPluginInputs.d.ts.map +1 -1
- package/build/question/inputs/AddSkillInputs.d.ts +10 -0
- package/build/question/inputs/AddSkillInputs.d.ts.map +1 -0
- package/build/question/inputs/AddSkillInputs.js +5 -0
- package/build/question/inputs/AddSkillInputs.js.map +1 -0
- package/build/question/inputs/CreateProjectInputs.d.ts +7 -1
- package/build/question/inputs/CreateProjectInputs.d.ts.map +1 -1
- package/build/question/inputs/ExportOpenPluginInputs.d.ts +10 -0
- package/build/question/inputs/ExportOpenPluginInputs.d.ts.map +1 -0
- package/build/question/inputs/ExportOpenPluginInputs.js +5 -0
- package/build/question/inputs/ExportOpenPluginInputs.js.map +1 -0
- package/build/question/inputs/ImportOpenPluginInputs.d.ts +28 -0
- package/build/question/inputs/ImportOpenPluginInputs.d.ts.map +1 -0
- package/build/question/inputs/ImportOpenPluginInputs.js +5 -0
- package/build/question/inputs/ImportOpenPluginInputs.js.map +1 -0
- package/build/question/inputs/index.d.ts +3 -0
- package/build/question/inputs/index.d.ts.map +1 -1
- package/build/question/inputs/index.js +3 -0
- package/build/question/inputs/index.js.map +1 -1
- package/build/question/options/AddPluginOptions.js +1 -1
- package/build/question/options/AddPluginOptions.js.map +1 -1
- package/build/question/options/AddSkillOptions.d.ts +4 -0
- package/build/question/options/AddSkillOptions.d.ts.map +1 -0
- package/build/question/options/AddSkillOptions.js +47 -0
- package/build/question/options/AddSkillOptions.js.map +1 -0
- package/build/question/options/CreateProjectOptions.d.ts.map +1 -1
- package/build/question/options/CreateProjectOptions.js +17 -2
- package/build/question/options/CreateProjectOptions.js.map +1 -1
- package/build/question/options/ExportOpenPluginOptions.d.ts +4 -0
- package/build/question/options/ExportOpenPluginOptions.d.ts.map +1 -0
- package/build/question/options/ExportOpenPluginOptions.js +29 -0
- package/build/question/options/ExportOpenPluginOptions.js.map +1 -0
- package/build/question/options/ImportOpenPluginOptions.d.ts +4 -0
- package/build/question/options/ImportOpenPluginOptions.d.ts.map +1 -0
- package/build/question/options/ImportOpenPluginOptions.js +54 -0
- package/build/question/options/ImportOpenPluginOptions.js.map +1 -0
- package/build/question/options/index.d.ts +3 -0
- package/build/question/options/index.d.ts.map +1 -1
- package/build/question/options/index.js +3 -0
- package/build/question/options/index.js.map +1 -1
- package/build/question/other.d.ts +1 -0
- package/build/question/other.d.ts.map +1 -1
- package/build/question/other.js +152 -35
- package/build/question/other.js.map +1 -1
- package/build/question/questionNames.d.ts +10 -1
- package/build/question/questionNames.d.ts.map +1 -1
- package/build/question/questionNames.js +9 -0
- package/build/question/questionNames.js.map +1 -1
- package/build/question/scaffold/vsc/CapabilityOptions.d.ts +1 -0
- package/build/question/scaffold/vsc/CapabilityOptions.d.ts.map +1 -1
- package/build/question/scaffold/vsc/CapabilityOptions.js +11 -0
- package/build/question/scaffold/vsc/CapabilityOptions.js.map +1 -1
- package/build/question/scaffold/vsc/ProjectTypeOptions.d.ts +2 -0
- package/build/question/scaffold/vsc/ProjectTypeOptions.d.ts.map +1 -1
- package/build/question/scaffold/vsc/ProjectTypeOptions.js +9 -0
- package/build/question/scaffold/vsc/ProjectTypeOptions.js.map +1 -1
- package/build/question/scaffold/vsc/daProjectTypeNode.d.ts.map +1 -1
- package/build/question/scaffold/vsc/daProjectTypeNode.js +1 -3
- package/build/question/scaffold/vsc/daProjectTypeNode.js.map +1 -1
- package/build/question/scaffold/vsc/rootNode.js +6 -4
- package/build/question/scaffold/vsc/rootNode.js.map +1 -1
- package/build/question/scaffold/vsc/teamsProjectTypeNode.d.ts +32 -0
- package/build/question/scaffold/vsc/teamsProjectTypeNode.d.ts.map +1 -1
- package/build/question/scaffold/vsc/teamsProjectTypeNode.js +136 -36
- package/build/question/scaffold/vsc/teamsProjectTypeNode.js.map +1 -1
- package/build/question/share.d.ts +7 -0
- package/build/question/share.d.ts.map +1 -1
- package/build/question/share.js +7 -3
- package/build/question/share.js.map +1 -1
- package/build/v4/distribution/bundledFloor.d.ts +12 -0
- package/build/v4/distribution/bundledFloor.d.ts.map +1 -0
- package/build/v4/distribution/bundledFloor.js +80 -0
- package/build/v4/distribution/bundledFloor.js.map +1 -0
- package/build/v4/distribution/templateConfig.d.ts +79 -0
- package/build/v4/distribution/templateConfig.d.ts.map +1 -0
- package/build/v4/distribution/templateConfig.js +81 -0
- package/build/v4/distribution/templateConfig.js.map +1 -0
- package/build/v4/distribution/templatePackage.d.ts +29 -0
- package/build/v4/distribution/templatePackage.d.ts.map +1 -0
- package/build/v4/distribution/templatePackage.js +82 -0
- package/build/v4/distribution/templatePackage.js.map +1 -0
- package/build/v4/distribution/templateSource.d.ts +67 -0
- package/build/v4/distribution/templateSource.d.ts.map +1 -0
- package/build/v4/distribution/templateSource.js +220 -0
- package/build/v4/distribution/templateSource.js.map +1 -0
- package/build/v4/distribution/templateSourcePort.d.ts +50 -0
- package/build/v4/distribution/templateSourcePort.d.ts.map +1 -0
- package/build/v4/distribution/templateSourcePort.js +207 -0
- package/build/v4/distribution/templateSourcePort.js.map +1 -0
- package/build/v4/index.d.ts +13 -0
- package/build/v4/index.d.ts.map +1 -0
- package/build/v4/index.js +18 -0
- package/build/v4/index.js.map +1 -0
- package/package.json +18 -79
- package/resource/package.nls.cs.json +42 -14
- package/resource/package.nls.de.json +43 -15
- package/resource/package.nls.es.json +42 -14
- package/resource/package.nls.fr.json +42 -14
- package/resource/package.nls.it.json +43 -15
- package/resource/package.nls.ja.json +42 -14
- package/resource/package.nls.json +64 -14
- package/resource/package.nls.ko.json +42 -14
- package/resource/package.nls.pl.json +43 -15
- package/resource/package.nls.pt-BR.json +42 -14
- package/resource/package.nls.ru.json +43 -15
- package/resource/package.nls.tr.json +44 -16
- package/resource/package.nls.zh-Hans.json +42 -14
- package/resource/package.nls.zh-Hant.json +54 -26
- package/resource/templates/package.nls.cs.json +2 -0
- package/resource/templates/package.nls.de.json +2 -0
- package/resource/templates/package.nls.es.json +2 -0
- package/resource/templates/package.nls.fr.json +2 -0
- package/resource/templates/package.nls.it.json +2 -0
- package/resource/templates/package.nls.ja.json +2 -0
- package/resource/templates/package.nls.json +5 -0
- package/resource/templates/package.nls.ko.json +2 -0
- package/resource/templates/package.nls.pl.json +2 -0
- package/resource/templates/package.nls.pt-BR.json +2 -0
- package/resource/templates/package.nls.ru.json +2 -0
- package/resource/templates/package.nls.tr.json +2 -0
- package/resource/templates/package.nls.zh-Hans.json +2 -0
- package/resource/templates/package.nls.zh-Hant.json +2 -0
- package/resource/yaml-schema/v1.12/yaml.schema.json +2132 -0
- package/resource/yaml-schema/v1.13/yaml.schema.json +2193 -0
- package/resource/yaml-schema/yaml.schema.json +124 -2
- package/templates/fallback/common.zip +0 -0
- package/templates/fallback/csharp.zip +0 -0
- package/templates/fallback/js.zip +0 -0
- package/templates/fallback/python.zip +0 -0
- package/templates/fallback/ts.zip +0 -0
- package/templates/metadata/allTemplates.json +16 -0
- package/templates/metadata/defaultGeneratorTemplates.json +8 -0
- package/templates/metadata.zip +0 -0
- package/templates/ui/tdpNode.json +8 -2
- package/templates/ui/wizardNode.json +34 -2
- package/templates/v4/floor.json +3 -0
- package/templates/v4/templates.zip +0 -0
- package/build/core/middleware/projectMigratorV3.d.ts +0 -39
- package/build/core/middleware/projectMigratorV3.d.ts.map +0 -1
- package/build/core/middleware/projectMigratorV3.js +0 -694
- package/build/core/middleware/projectMigratorV3.js.map +0 -1
- package/build/core/middleware/projectVersionChecker.d.ts +0 -3
- package/build/core/middleware/projectVersionChecker.d.ts.map +0 -1
- package/build/core/middleware/projectVersionChecker.js +0 -60
- package/build/core/middleware/projectVersionChecker.js.map +0 -1
- package/build/core/middleware/types.d.ts +0 -9
- package/build/core/middleware/types.d.ts.map +0 -1
- package/build/core/middleware/types.js.map +0 -1
- package/build/core/middleware/utils/MigrationUtils.d.ts +0 -13
- package/build/core/middleware/utils/MigrationUtils.d.ts.map +0 -1
- package/build/core/middleware/utils/MigrationUtils.js +0 -212
- package/build/core/middleware/utils/MigrationUtils.js.map +0 -1
- package/build/core/middleware/utils/appYmlGenerator.d.ts +0 -34
- package/build/core/middleware/utils/appYmlGenerator.d.ts.map +0 -1
- package/build/core/middleware/utils/appYmlGenerator.js +0 -158
- package/build/core/middleware/utils/appYmlGenerator.js.map +0 -1
- package/build/core/middleware/utils/debug/appLocalYmlGenerator.d.ts +0 -65
- package/build/core/middleware/utils/debug/appLocalYmlGenerator.d.ts.map +0 -1
- package/build/core/middleware/utils/debug/appLocalYmlGenerator.js +0 -61
- package/build/core/middleware/utils/debug/appLocalYmlGenerator.js.map +0 -1
- package/build/core/middleware/utils/debug/constants.d.ts +0 -20
- package/build/core/middleware/utils/debug/constants.d.ts.map +0 -1
- package/build/core/middleware/utils/debug/constants.js +0 -28
- package/build/core/middleware/utils/debug/constants.js.map +0 -1
- package/build/core/middleware/utils/debug/debugMigrationContext.d.ts +0 -14
- package/build/core/middleware/utils/debug/debugMigrationContext.d.ts.map +0 -1
- package/build/core/middleware/utils/debug/debugMigrationContext.js +0 -23
- package/build/core/middleware/utils/debug/debugMigrationContext.js.map +0 -1
- package/build/core/middleware/utils/debug/debugV3MigrationUtils.d.ts +0 -37
- package/build/core/middleware/utils/debug/debugV3MigrationUtils.d.ts.map +0 -1
- package/build/core/middleware/utils/debug/debugV3MigrationUtils.js +0 -291
- package/build/core/middleware/utils/debug/debugV3MigrationUtils.js.map +0 -1
- package/build/core/middleware/utils/debug/taskMigrator.d.ts +0 -22
- package/build/core/middleware/utils/debug/taskMigrator.d.ts.map +0 -1
- package/build/core/middleware/utils/debug/taskMigrator.js +0 -935
- package/build/core/middleware/utils/debug/taskMigrator.js.map +0 -1
- package/build/core/middleware/utils/migrationContext.d.ts +0 -32
- package/build/core/middleware/utils/migrationContext.d.ts.map +0 -1
- package/build/core/middleware/utils/migrationContext.js +0 -104
- package/build/core/middleware/utils/migrationContext.js.map +0 -1
- /package/build/{core/middleware → component/generator/openPlugin}/types.js +0 -0
package/build/core/FxCore.js
CHANGED
|
@@ -2,13 +2,14 @@
|
|
|
2
2
|
// Copyright (c) Microsoft Corporation.
|
|
3
3
|
// Licensed under the MIT license.
|
|
4
4
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
5
|
-
exports.FxCore = void 0;
|
|
5
|
+
exports.FxCore = exports.fxCoreDeps = void 0;
|
|
6
6
|
const tslib_1 = require("tslib");
|
|
7
7
|
const hooks_1 = require("@feathersjs/hooks");
|
|
8
8
|
const m365_spec_parser_1 = require("@microsoft/m365-spec-parser");
|
|
9
9
|
const teamsfx_api_1 = require("@microsoft/teamsfx-api");
|
|
10
10
|
const fs_extra_1 = tslib_1.__importDefault(require("fs-extra"));
|
|
11
11
|
const jsonschema = tslib_1.__importStar(require("jsonschema"));
|
|
12
|
+
const adm_zip_1 = tslib_1.__importDefault(require("adm-zip"));
|
|
12
13
|
const os = tslib_1.__importStar(require("os"));
|
|
13
14
|
const path = tslib_1.__importStar(require("path"));
|
|
14
15
|
require("reflect-metadata");
|
|
@@ -17,6 +18,7 @@ const url_1 = require("url");
|
|
|
17
18
|
const teamsDevPortalClient_1 = require("../client/teamsDevPortalClient");
|
|
18
19
|
const constants_1 = require("../common/constants");
|
|
19
20
|
const daSpecParser_1 = require("../common/daSpecParser");
|
|
21
|
+
const featureFlags_1 = require("../common/featureFlags");
|
|
20
22
|
const globalVars_1 = require("../common/globalVars");
|
|
21
23
|
const localizeUtils_1 = require("../common/localizeUtils");
|
|
22
24
|
const projectSettingsHelper_1 = require("../common/projectSettingsHelper");
|
|
@@ -34,7 +36,7 @@ const aadManifestHelper_1 = require("../component/driver/aad/utility/aadManifest
|
|
|
34
36
|
const buildAadManifest_1 = require("../component/driver/aad/utility/buildAadManifest");
|
|
35
37
|
require("../component/driver/index");
|
|
36
38
|
require("../component/driver/script/scriptDriver");
|
|
37
|
-
const
|
|
39
|
+
const shareUtils = tslib_1.__importStar(require("../component/driver/share/utils"));
|
|
38
40
|
const appStudio_1 = require("../component/driver/teamsApp/appStudio");
|
|
39
41
|
const errors_1 = require("../component/driver/teamsApp/errors");
|
|
40
42
|
const results_1 = require("../component/driver/teamsApp/results");
|
|
@@ -42,13 +44,15 @@ const teamsappMgr_1 = require("../component/driver/teamsApp/teamsappMgr");
|
|
|
42
44
|
const CopilotGptManifestUtils_1 = require("../component/driver/teamsApp/utils/CopilotGptManifestUtils");
|
|
43
45
|
const ManifestUtils_1 = require("../component/driver/teamsApp/utils/ManifestUtils");
|
|
44
46
|
const PluginManifestUtils_1 = require("../component/driver/teamsApp/utils/PluginManifestUtils");
|
|
45
|
-
const
|
|
46
|
-
const
|
|
47
|
+
const utils_2 = require("../component/driver/teamsApp/utils/utils");
|
|
48
|
+
const utils_3 = require("../component/driver/util/utils");
|
|
47
49
|
const oneDriveSharePointHandler_1 = require("../component/generator/declarativeAgent/oneDriveSharePointHandler");
|
|
50
|
+
const openApiSpecHelper = tslib_1.__importStar(require("../component/generator/openApiSpec/helper"));
|
|
48
51
|
const helper_1 = require("../component/generator/openApiSpec/helper");
|
|
49
52
|
const templateHelper_1 = require("../component/generator/templateHelper");
|
|
50
53
|
const templateNames_1 = require("../component/generator/templates/templateNames");
|
|
51
|
-
const
|
|
54
|
+
const utils_4 = require("../component/generator/utils");
|
|
55
|
+
const v4MetadataSource_1 = require("../component/generator/v4MetadataSource");
|
|
52
56
|
const launchHelper_1 = require("../component/m365/launchHelper");
|
|
53
57
|
const packageService_1 = require("../component/m365/packageService");
|
|
54
58
|
const envMW_1 = require("../component/middleware/envMW");
|
|
@@ -59,28 +63,52 @@ const metadataUtil_1 = require("../component/utils/metadataUtil");
|
|
|
59
63
|
const pathUtils_1 = require("../component/utils/pathUtils");
|
|
60
64
|
const settingsUtil_1 = require("../component/utils/settingsUtil");
|
|
61
65
|
const common_2 = require("../error/common");
|
|
62
|
-
const upgrade_1 = require("../error/upgrade");
|
|
63
66
|
const yml_1 = require("../error/yml");
|
|
64
67
|
const constants_3 = require("../question/constants");
|
|
65
68
|
const other_1 = require("../question/other");
|
|
66
69
|
const ProjectTypeOptions_1 = require("../question/scaffold/vsc/ProjectTypeOptions");
|
|
67
70
|
const share_1 = require("../question/share");
|
|
68
71
|
const callback_1 = require("./callback");
|
|
72
|
+
const collaboratorCore = tslib_1.__importStar(require("./collaborator"));
|
|
69
73
|
const collaborator_1 = require("./collaborator");
|
|
70
74
|
const crypto_1 = require("./crypto");
|
|
71
75
|
const environmentName_1 = require("./environmentName");
|
|
72
|
-
const
|
|
76
|
+
const FxCore_openPlugin_1 = require("./FxCore.openPlugin");
|
|
73
77
|
const generateConfigFiles_1 = require("./generateConfigFiles");
|
|
74
78
|
const concurrentLocker_1 = require("./middleware/concurrentLocker");
|
|
75
79
|
const contextInjector_1 = require("./middleware/contextInjector");
|
|
76
80
|
const errorHandler_1 = require("./middleware/errorHandler");
|
|
77
81
|
const fileLocker_1 = require("./middleware/fileLocker");
|
|
78
|
-
const projectMigratorV3_1 = require("./middleware/projectMigratorV3");
|
|
79
82
|
const retry_1 = require("./middleware/retry");
|
|
80
83
|
const v3MigrationUtils_1 = require("./middleware/utils/v3MigrationUtils");
|
|
81
84
|
const share_2 = require("./share");
|
|
82
85
|
const telemetry_2 = require("./telemetry");
|
|
83
|
-
|
|
86
|
+
exports.fxCoreDeps = {
|
|
87
|
+
parseShareAppActionYamlConfig: shareUtils.parseShareAppActionYamlConfig,
|
|
88
|
+
shareWithTenant: share_2.shareWithTenant,
|
|
89
|
+
addSharedUsers: share_2.addSharedUsers,
|
|
90
|
+
removeShareAccess: share_2.removeShareAccess,
|
|
91
|
+
grantPermission: collaboratorCore.grantPermission,
|
|
92
|
+
checkPermission: collaboratorCore.checkPermission,
|
|
93
|
+
listCollaborator: collaboratorCore.listCollaborator,
|
|
94
|
+
buildAadManifest: buildAadManifest_1.buildAadManifest,
|
|
95
|
+
listAPIInfo: daSpecParser_1.listAPIInfo,
|
|
96
|
+
listOperations: openApiSpecHelper.listOperations,
|
|
97
|
+
getManifestPath: CopilotGptManifestUtils_1.copilotGptManifestUtils.getManifestPath,
|
|
98
|
+
readCopilotGptManifestFile: CopilotGptManifestUtils_1.copilotGptManifestUtils.readCopilotGptManifestFile,
|
|
99
|
+
updateConversationStarters: CopilotGptManifestUtils_1.copilotGptManifestUtils.updateConversationStarters,
|
|
100
|
+
isValidProjectV3: projectSettingsHelper_1.isValidProjectV3,
|
|
101
|
+
getProjectVersionFromPath: v3MigrationUtils_1.getProjectVersionFromPath,
|
|
102
|
+
getTrackingIdFromPath: v3MigrationUtils_1.getTrackingIdFromPath,
|
|
103
|
+
getVersionState: v3MigrationUtils_1.getVersionState,
|
|
104
|
+
getCoreVersion: () => require("../../package.json").version,
|
|
105
|
+
useLocalTemplate: templateHelper_1.useLocalTemplate,
|
|
106
|
+
getTemplateLatestVersion: utils_4.getTemplateLatestVersion,
|
|
107
|
+
getTemplateVSLatestVersion: utils_4.getTemplateVSLatestVersion,
|
|
108
|
+
fetchZipFromUrl: utils_4.fetchZipFromUrl,
|
|
109
|
+
unzip: utils_4.unzip,
|
|
110
|
+
};
|
|
111
|
+
class FxCore extends FxCore_openPlugin_1.FxCoreOpenPluginPart {
|
|
84
112
|
constructor(tools) {
|
|
85
113
|
super();
|
|
86
114
|
(0, globalVars_1.setTools)(tools);
|
|
@@ -109,12 +137,12 @@ class FxCore extends FxCore_declarativeAgent_1.FxCoreDeclarativeAgentPart {
|
|
|
109
137
|
inputs[constants_3.QuestionNames.Scratch] = constants_3.ScratchOptions.yes().id;
|
|
110
138
|
// should never happen as we do same check on Developer Portal.
|
|
111
139
|
if (inputs.teamsAppFromTdp) {
|
|
112
|
-
if ((0,
|
|
140
|
+
if ((0, utils_2.containsUnsupportedFeature)(inputs.teamsAppFromTdp)) {
|
|
113
141
|
return (0, teamsfx_api_1.err)(new common_2.InputValidationError("manifest.json", "App contains unsupported features"));
|
|
114
142
|
}
|
|
115
143
|
else {
|
|
116
144
|
context.telemetryReporter.sendTelemetryEvent(telemetry_2.CoreTelemetryEvent.CreateFromTdpStart, {
|
|
117
|
-
[telemetry_2.CoreTelemetryProperty.TdpTeamsAppFeatures]: (0,
|
|
145
|
+
[telemetry_2.CoreTelemetryProperty.TdpTeamsAppFeatures]: (0, utils_2.getFeaturesFromAppDefinition)(inputs.teamsAppFromTdp).join(","),
|
|
118
146
|
[telemetry_2.CoreTelemetryProperty.TdpTeamsAppId]: inputs.teamsAppFromTdp.teamsAppId,
|
|
119
147
|
});
|
|
120
148
|
}
|
|
@@ -180,7 +208,7 @@ class FxCore extends FxCore_declarativeAgent_1.FxCoreDeclarativeAgentPart {
|
|
|
180
208
|
*/
|
|
181
209
|
async provisionResourcesOnce(inputs, ctx) {
|
|
182
210
|
inputs.stage = teamsfx_api_1.Stage.provision;
|
|
183
|
-
const context = (0,
|
|
211
|
+
const context = (0, utils_3.createDriverContext)(inputs);
|
|
184
212
|
try {
|
|
185
213
|
const res = await coordinator_1.coordinator.provision(context, inputs);
|
|
186
214
|
if (res.isOk()) {
|
|
@@ -446,7 +474,7 @@ class FxCore extends FxCore_declarativeAgent_1.FxCoreDeclarativeAgentPart {
|
|
|
446
474
|
*/
|
|
447
475
|
async deployArtifacts(inputs, ctx) {
|
|
448
476
|
inputs.stage = teamsfx_api_1.Stage.deploy;
|
|
449
|
-
const context = (0,
|
|
477
|
+
const context = (0, utils_3.createDriverContext)(inputs);
|
|
450
478
|
const res = await coordinator_1.coordinator.deploy(context, inputs);
|
|
451
479
|
if (res.isOk()) {
|
|
452
480
|
ctx.envVars = res.value;
|
|
@@ -482,7 +510,7 @@ class FxCore extends FxCore_declarativeAgent_1.FxCoreDeclarativeAgentPart {
|
|
|
482
510
|
manifestPath: manifestTemplatePath,
|
|
483
511
|
outputFilePath: manifestOutputPath,
|
|
484
512
|
};
|
|
485
|
-
const Context = (0,
|
|
513
|
+
const Context = (0, utils_3.createDriverContext)(inputs);
|
|
486
514
|
(0, globalVars_1.setErrorContext)({ component: "aadAppUpdate" });
|
|
487
515
|
const res = await updateAadClient.execute(inputArgs, Context);
|
|
488
516
|
if (res.result.isErr()) {
|
|
@@ -517,7 +545,7 @@ class FxCore extends FxCore_declarativeAgent_1.FxCoreDeclarativeAgentPart {
|
|
|
517
545
|
framework: inputs[constants_3.QuestionNames.SPFxFramework],
|
|
518
546
|
spfxPackage: constants_3.SPFxVersionOptionIds.installLocally,
|
|
519
547
|
};
|
|
520
|
-
const Context = (0,
|
|
548
|
+
const Context = (0, utils_3.createDriverContext)(inputs);
|
|
521
549
|
const res = await driver.run(args, Context);
|
|
522
550
|
if (res.isErr()) {
|
|
523
551
|
return (0, teamsfx_api_1.err)(res.error);
|
|
@@ -529,7 +557,7 @@ class FxCore extends FxCore_declarativeAgent_1.FxCoreDeclarativeAgentPart {
|
|
|
529
557
|
*/
|
|
530
558
|
async publishApplication(inputs, ctx) {
|
|
531
559
|
inputs.stage = teamsfx_api_1.Stage.publish;
|
|
532
|
-
const context = (0,
|
|
560
|
+
const context = (0, utils_3.createDriverContext)(inputs);
|
|
533
561
|
const res = await coordinator_1.coordinator.publish(context, inputs);
|
|
534
562
|
if (res.isOk()) {
|
|
535
563
|
ctx.envVars = res.value;
|
|
@@ -542,11 +570,17 @@ class FxCore extends FxCore_declarativeAgent_1.FxCoreDeclarativeAgentPart {
|
|
|
542
570
|
}
|
|
543
571
|
}
|
|
544
572
|
async removeSharedAccess(inputs, ctx) {
|
|
545
|
-
const
|
|
573
|
+
const removeUsersInput = inputs[constants_3.QuestionNames.RemoveUsers];
|
|
574
|
+
const emails = Array.isArray(removeUsersInput)
|
|
575
|
+
? removeUsersInput
|
|
576
|
+
: removeUsersInput
|
|
577
|
+
?.split(",")
|
|
578
|
+
.map((email) => email.trim())
|
|
579
|
+
.filter((email) => !!email) ?? [];
|
|
546
580
|
if (!emails || emails.length === 0) {
|
|
547
581
|
return (0, teamsfx_api_1.err)(new common_2.MissingRequiredInputError("emails", "FxCore"));
|
|
548
582
|
}
|
|
549
|
-
const parseRes = await
|
|
583
|
+
const parseRes = await exports.fxCoreDeps.parseShareAppActionYamlConfig(inputs.projectPath);
|
|
550
584
|
if (parseRes.isErr()) {
|
|
551
585
|
return (0, teamsfx_api_1.err)(parseRes.error);
|
|
552
586
|
}
|
|
@@ -602,12 +636,19 @@ class FxCore extends FxCore_declarativeAgent_1.FxCoreDeclarativeAgentPart {
|
|
|
602
636
|
let emails = [];
|
|
603
637
|
if (scope === share_1.ShareScopeOption.ShareAppWithSpecificUsers ||
|
|
604
638
|
operation === share_1.ShareOperationOption.RemoveShareAccessFromUsers) {
|
|
605
|
-
emails =
|
|
639
|
+
emails =
|
|
640
|
+
inputs[constants_3.QuestionNames.UserEmail]
|
|
641
|
+
?.split(",")
|
|
642
|
+
.map((e) => e.trim())
|
|
643
|
+
.filter((e) => !!e) ?? [];
|
|
644
|
+
if (emails.length === 0) {
|
|
645
|
+
return (0, teamsfx_api_1.err)(new common_2.InputValidationError("emails", "No emails"));
|
|
646
|
+
}
|
|
606
647
|
if (emails.length > constants_3.MAX_EMAIL_NUMBER) {
|
|
607
648
|
return (0, teamsfx_api_1.err)(new common_2.InputValidationError("emails", "Too many emails"));
|
|
608
649
|
}
|
|
609
650
|
}
|
|
610
|
-
const parseRes = await
|
|
651
|
+
const parseRes = await exports.fxCoreDeps.parseShareAppActionYamlConfig(inputs.projectPath);
|
|
611
652
|
if (parseRes.isErr()) {
|
|
612
653
|
return (0, teamsfx_api_1.err)(parseRes.error);
|
|
613
654
|
}
|
|
@@ -621,13 +662,13 @@ class FxCore extends FxCore_declarativeAgent_1.FxCoreDeclarativeAgentPart {
|
|
|
621
662
|
}
|
|
622
663
|
const mosToken = mosTokenRes.value;
|
|
623
664
|
if (operation === share_1.ShareOperationOption.RemoveShareAccessFromUsers) {
|
|
624
|
-
return
|
|
665
|
+
return exports.fxCoreDeps.removeShareAccess(mosToken, sharedTitleId, emails);
|
|
625
666
|
}
|
|
626
667
|
else if (scope === share_1.ShareScopeOption.ShareAppWithTenantUsers) {
|
|
627
|
-
return
|
|
668
|
+
return exports.fxCoreDeps.shareWithTenant(mosToken, sharedTitleId);
|
|
628
669
|
}
|
|
629
670
|
else if (scope === share_1.ShareScopeOption.ShareAppWithSpecificUsers) {
|
|
630
|
-
return
|
|
671
|
+
return exports.fxCoreDeps.addSharedUsers(mosToken, sharedTitleId, emails);
|
|
631
672
|
}
|
|
632
673
|
else {
|
|
633
674
|
return (0, teamsfx_api_1.err)(new common_2.InputValidationError("shareOption", "Invalid share option"));
|
|
@@ -638,7 +679,7 @@ class FxCore extends FxCore_declarativeAgent_1.FxCoreDeclarativeAgentPart {
|
|
|
638
679
|
*/
|
|
639
680
|
async executeUserTask(func, inputs) {
|
|
640
681
|
let res = (0, teamsfx_api_1.ok)(undefined);
|
|
641
|
-
const context = (0,
|
|
682
|
+
const context = (0, utils_3.createDriverContext)(inputs);
|
|
642
683
|
if (func.method === "addSso") {
|
|
643
684
|
// used in v3 only in VS
|
|
644
685
|
inputs.stage = teamsfx_api_1.Stage.addFeature;
|
|
@@ -661,8 +702,8 @@ class FxCore extends FxCore_declarativeAgent_1.FxCoreDeclarativeAgentPart {
|
|
|
661
702
|
}
|
|
662
703
|
await fs_extra_1.default.ensureDir(path.join(inputs.projectPath, "build"));
|
|
663
704
|
const manifestOutputPath = path.join(inputs.projectPath, "build", `aad.${inputs.env}.json`);
|
|
664
|
-
const Context = (0,
|
|
665
|
-
await
|
|
705
|
+
const Context = (0, utils_3.createDriverContext)(inputs);
|
|
706
|
+
await exports.fxCoreDeps.buildAadManifest(Context, manifestTemplatePath, manifestOutputPath);
|
|
666
707
|
return (0, teamsfx_api_1.ok)(undefined);
|
|
667
708
|
}
|
|
668
709
|
async convertAadToNewSchema(inputs) {
|
|
@@ -733,7 +774,7 @@ class FxCore extends FxCore_declarativeAgent_1.FxCoreDeclarativeAgentPart {
|
|
|
733
774
|
*/
|
|
734
775
|
async validateManifest(inputs) {
|
|
735
776
|
inputs.stage = teamsfx_api_1.Stage.validateApplication;
|
|
736
|
-
const context = (0,
|
|
777
|
+
const context = (0, utils_3.createDriverContext)(inputs);
|
|
737
778
|
const teamsAppManifestFilePath = inputs["manifest-path"];
|
|
738
779
|
const args = {
|
|
739
780
|
manifestPath: teamsAppManifestFilePath,
|
|
@@ -748,7 +789,7 @@ class FxCore extends FxCore_declarativeAgent_1.FxCoreDeclarativeAgentPart {
|
|
|
748
789
|
*/
|
|
749
790
|
async validateAppPackage(inputs) {
|
|
750
791
|
inputs.stage = teamsfx_api_1.Stage.validateApplication;
|
|
751
|
-
const context = (0,
|
|
792
|
+
const context = (0, utils_3.createDriverContext)(inputs);
|
|
752
793
|
const teamsAppPackageFilePath = inputs["app-package-file-path"];
|
|
753
794
|
const args = {
|
|
754
795
|
appPackagePath: teamsAppPackageFilePath,
|
|
@@ -758,7 +799,7 @@ class FxCore extends FxCore_declarativeAgent_1.FxCoreDeclarativeAgentPart {
|
|
|
758
799
|
return (await driver.execute(args, context)).result;
|
|
759
800
|
}
|
|
760
801
|
async validateWithTestCases(inputs) {
|
|
761
|
-
const context = (0,
|
|
802
|
+
const context = (0, utils_3.createDriverContext)(inputs);
|
|
762
803
|
const args = {
|
|
763
804
|
appPackagePath: inputs["app-package-file-path"],
|
|
764
805
|
showMessage: true,
|
|
@@ -771,7 +812,7 @@ class FxCore extends FxCore_declarativeAgent_1.FxCoreDeclarativeAgentPart {
|
|
|
771
812
|
* v3 only none lifecycle command
|
|
772
813
|
*/
|
|
773
814
|
async syncManifest(inputs) {
|
|
774
|
-
const context = (0,
|
|
815
|
+
const context = (0, utils_3.createDriverContext)(inputs);
|
|
775
816
|
const projectPath = inputs[constants_3.QuestionNames.ProjectPath];
|
|
776
817
|
const env = inputs[constants_3.QuestionNames.Env];
|
|
777
818
|
const teamsAppId = inputs[constants_3.QuestionNames.TeamsAppId];
|
|
@@ -788,7 +829,7 @@ class FxCore extends FxCore_declarativeAgent_1.FxCoreDeclarativeAgentPart {
|
|
|
788
829
|
*/
|
|
789
830
|
async createAppPackage(inputs) {
|
|
790
831
|
inputs.stage = teamsfx_api_1.Stage.createAppPackage;
|
|
791
|
-
const context = (0,
|
|
832
|
+
const context = (0, utils_3.createDriverContext)(inputs);
|
|
792
833
|
// For TSP projects
|
|
793
834
|
await (0, tools_1.runForTypeSpecProject)(inputs.projectPath, context);
|
|
794
835
|
const teamsAppManifestFilePath = inputs?.[constants_3.QuestionNames.TeamsAppManifestFilePath];
|
|
@@ -966,7 +1007,7 @@ class FxCore extends FxCore_declarativeAgent_1.FxCoreDeclarativeAgentPart {
|
|
|
966
1007
|
inputs.stage = teamsfx_api_1.Stage.grantPermission;
|
|
967
1008
|
const context = (0, globalVars_1.createContext)();
|
|
968
1009
|
(0, globalVars_1.setErrorContext)({ component: "collaborator" });
|
|
969
|
-
const res = await
|
|
1010
|
+
const res = await exports.fxCoreDeps.grantPermission(context, inputs, globalVars_1.TOOLS.tokenProvider);
|
|
970
1011
|
return res;
|
|
971
1012
|
}
|
|
972
1013
|
/**
|
|
@@ -975,7 +1016,7 @@ class FxCore extends FxCore_declarativeAgent_1.FxCoreDeclarativeAgentPart {
|
|
|
975
1016
|
async checkPermission(inputs) {
|
|
976
1017
|
inputs.stage = teamsfx_api_1.Stage.checkPermission;
|
|
977
1018
|
const context = (0, globalVars_1.createContext)();
|
|
978
|
-
const res = await
|
|
1019
|
+
const res = await exports.fxCoreDeps.checkPermission(context, inputs, globalVars_1.TOOLS.tokenProvider);
|
|
979
1020
|
return res;
|
|
980
1021
|
}
|
|
981
1022
|
/**
|
|
@@ -984,7 +1025,7 @@ class FxCore extends FxCore_declarativeAgent_1.FxCoreDeclarativeAgentPart {
|
|
|
984
1025
|
async listCollaborator(inputs) {
|
|
985
1026
|
inputs.stage = teamsfx_api_1.Stage.listCollaborator;
|
|
986
1027
|
const context = (0, globalVars_1.createContext)();
|
|
987
|
-
const res = await
|
|
1028
|
+
const res = await exports.fxCoreDeps.listCollaborator(context, inputs, globalVars_1.TOOLS.tokenProvider);
|
|
988
1029
|
return res;
|
|
989
1030
|
}
|
|
990
1031
|
getSelectedEnv(inputs) {
|
|
@@ -1065,45 +1106,16 @@ class FxCore extends FxCore_declarativeAgent_1.FxCoreDeclarativeAgentPart {
|
|
|
1065
1106
|
globalVars_1.TOOLS.logProvider.info(`env file created: ${targetDotEnvFile}`);
|
|
1066
1107
|
return (0, teamsfx_api_1.ok)(undefined);
|
|
1067
1108
|
}
|
|
1068
|
-
// a phantom migration method for V3
|
|
1069
|
-
async phantomMigrationV3(inputs) {
|
|
1070
|
-
// If the project is invalid or upgraded, the ProjectMigratorMWV3 will not take action.
|
|
1071
|
-
// Check invaliad/upgraded project here before call ProjectMigratorMWV3
|
|
1072
|
-
const projectPath = inputs.projectPath || "";
|
|
1073
|
-
const version = await (0, v3MigrationUtils_1.getProjectVersionFromPath)(projectPath);
|
|
1074
|
-
if (version.source === versionMetadata_1.VersionSource.teamsapp) {
|
|
1075
|
-
return (0, teamsfx_api_1.err)(new upgrade_1.NoNeedUpgradeError());
|
|
1076
|
-
}
|
|
1077
|
-
else if (version.source === versionMetadata_1.VersionSource.projectSettings) {
|
|
1078
|
-
const isValid = await (0, projectMigratorV3_1.checkActiveResourcePlugins)(projectPath);
|
|
1079
|
-
if (!isValid) {
|
|
1080
|
-
return (0, teamsfx_api_1.err)(new common_2.InvalidProjectError(projectPath));
|
|
1081
|
-
}
|
|
1082
|
-
}
|
|
1083
|
-
if (version.source === versionMetadata_1.VersionSource.unknown) {
|
|
1084
|
-
return (0, teamsfx_api_1.err)(new common_2.InvalidProjectError(projectPath));
|
|
1085
|
-
}
|
|
1086
|
-
return this.innerMigrationV3(inputs);
|
|
1087
|
-
}
|
|
1088
|
-
innerMigrationV3(inputs) {
|
|
1089
|
-
return (0, teamsfx_api_1.ok)(undefined);
|
|
1090
|
-
}
|
|
1091
1109
|
// a project version check
|
|
1092
1110
|
async projectVersionCheck(inputs) {
|
|
1093
1111
|
const projectPath = inputs.projectPath || "";
|
|
1094
|
-
if (
|
|
1095
|
-
const versionInfo = await
|
|
1112
|
+
if (exports.fxCoreDeps.isValidProjectV3(projectPath)) {
|
|
1113
|
+
const versionInfo = await exports.fxCoreDeps.getProjectVersionFromPath(projectPath);
|
|
1096
1114
|
if (!versionInfo.version) {
|
|
1097
1115
|
return (0, teamsfx_api_1.err)(new common_2.InvalidProjectError(projectPath));
|
|
1098
1116
|
}
|
|
1099
|
-
const trackingId = await
|
|
1100
|
-
const isSupport =
|
|
1101
|
-
// if the project is upgradeable, check whether the project is valid and invalid project should not show upgrade option.
|
|
1102
|
-
if (isSupport === versionMetadata_1.VersionState.upgradeable) {
|
|
1103
|
-
if (!(await (0, projectMigratorV3_1.checkActiveResourcePlugins)(projectPath))) {
|
|
1104
|
-
return (0, teamsfx_api_1.err)(new common_2.InvalidProjectError(projectPath));
|
|
1105
|
-
}
|
|
1106
|
-
}
|
|
1117
|
+
const trackingId = await exports.fxCoreDeps.getTrackingIdFromPath(projectPath);
|
|
1118
|
+
const isSupport = exports.fxCoreDeps.getVersionState(versionInfo);
|
|
1107
1119
|
return (0, teamsfx_api_1.ok)({
|
|
1108
1120
|
currentVersion: versionInfo.version,
|
|
1109
1121
|
trackingId,
|
|
@@ -1189,11 +1201,11 @@ class FxCore extends FxCore_declarativeAgent_1.FxCoreDeclarativeAgentPart {
|
|
|
1189
1201
|
}
|
|
1190
1202
|
}
|
|
1191
1203
|
async preProvisionForVS(inputs) {
|
|
1192
|
-
const context = (0,
|
|
1204
|
+
const context = (0, utils_3.createDriverContext)(inputs);
|
|
1193
1205
|
return coordinator_1.coordinator.preProvisionForVS(context, inputs);
|
|
1194
1206
|
}
|
|
1195
1207
|
async preCheckYmlAndEnvForVS(inputs) {
|
|
1196
|
-
const context = (0,
|
|
1208
|
+
const context = (0, utils_3.createDriverContext)(inputs);
|
|
1197
1209
|
const result = await coordinator_1.coordinator.preCheckYmlAndEnvForVS(context, inputs);
|
|
1198
1210
|
return result;
|
|
1199
1211
|
}
|
|
@@ -1251,11 +1263,11 @@ class FxCore extends FxCore_declarativeAgent_1.FxCoreDeclarativeAgentPart {
|
|
|
1251
1263
|
}
|
|
1252
1264
|
if (authNames.size >= 1) {
|
|
1253
1265
|
for (const authName of authNames) {
|
|
1254
|
-
await
|
|
1266
|
+
await openApiSpecHelper.injectAuthAction(inputs.projectPath, [...authNames][0], authNamesDict[authName], outputApiSpecPath, false);
|
|
1255
1267
|
}
|
|
1256
1268
|
}
|
|
1257
1269
|
let pluginPath;
|
|
1258
|
-
const generateResult = await
|
|
1270
|
+
const generateResult = await openApiSpecHelper.generateFromApiSpec(specParser, manifestPath, inputs, context, "copilotPluginAddAPI", m365_spec_parser_1.ProjectType.SME, {
|
|
1259
1271
|
destinationApiSpecFilePath: outputApiSpecPath,
|
|
1260
1272
|
responseTemplateFolder: adaptiveCardFolder,
|
|
1261
1273
|
pluginManifestFilePath: pluginPath,
|
|
@@ -1264,7 +1276,7 @@ class FxCore extends FxCore_declarativeAgent_1.FxCoreDeclarativeAgentPart {
|
|
|
1264
1276
|
return (0, teamsfx_api_1.err)(generateResult.error);
|
|
1265
1277
|
}
|
|
1266
1278
|
if (generateResult.value.warnings && generateResult.value.warnings.length > 0) {
|
|
1267
|
-
const warnSummary = await
|
|
1279
|
+
const warnSummary = await openApiSpecHelper.generateScaffoldingSummary(generateResult.value.warnings, manifestRes.value, path.relative(inputs.projectPath, outputApiSpecPath), pluginPath === undefined ? undefined : path.relative(inputs.projectPath, pluginPath), inputs.projectPath);
|
|
1268
1280
|
if (warnSummary) {
|
|
1269
1281
|
context.logProvider.info(warnSummary);
|
|
1270
1282
|
}
|
|
@@ -1306,7 +1318,7 @@ class FxCore extends FxCore_declarativeAgent_1.FxCoreDeclarativeAgentPart {
|
|
|
1306
1318
|
}
|
|
1307
1319
|
}
|
|
1308
1320
|
async copilotPluginListOperations(inputs) {
|
|
1309
|
-
const res = await
|
|
1321
|
+
const res = await exports.fxCoreDeps.listOperations((0, globalVars_1.createContext)(), inputs.apiSpecUrl, inputs, inputs.includeExistingAPIs, inputs.shouldLogWarning);
|
|
1310
1322
|
if (res.isErr()) {
|
|
1311
1323
|
const msg = res.error.map((e) => e.content).join("\n");
|
|
1312
1324
|
return (0, teamsfx_api_1.err)(new teamsfx_api_1.UserError("FxCore", "ListOpenAPISpecOperationsError", msg, msg));
|
|
@@ -1328,13 +1340,14 @@ class FxCore extends FxCore_declarativeAgent_1.FxCoreDeclarativeAgentPart {
|
|
|
1328
1340
|
async regeneratePlugin(inputs) {
|
|
1329
1341
|
const projectPath = inputs.projectPath;
|
|
1330
1342
|
const context = (0, globalVars_1.createContext)();
|
|
1331
|
-
const teamsManifestPath = inputs[constants_3.QuestionNames.ManifestPath]
|
|
1343
|
+
const teamsManifestPath = (inputs[constants_3.QuestionNames.ManifestPath] ??
|
|
1344
|
+
inputs[constants_3.QuestionNames.TeamsAppManifestFilePath]);
|
|
1332
1345
|
const appPackageFolder = path.dirname(teamsManifestPath);
|
|
1333
1346
|
const manifestRes = await ManifestUtils_1.manifestUtils._readAppManifest(teamsManifestPath);
|
|
1334
1347
|
if (manifestRes.isErr()) {
|
|
1335
1348
|
return (0, teamsfx_api_1.err)(manifestRes.error);
|
|
1336
1349
|
}
|
|
1337
|
-
const gptManifestFilePathRes = await
|
|
1350
|
+
const gptManifestFilePathRes = await exports.fxCoreDeps.getManifestPath(teamsManifestPath);
|
|
1338
1351
|
if (gptManifestFilePathRes.isErr()) {
|
|
1339
1352
|
return (0, teamsfx_api_1.err)(gptManifestFilePathRes.error);
|
|
1340
1353
|
}
|
|
@@ -1342,7 +1355,7 @@ class FxCore extends FxCore_declarativeAgent_1.FxCoreDeclarativeAgentPart {
|
|
|
1342
1355
|
// Will be used if generating from API spec
|
|
1343
1356
|
let authNameAndSchemes = [];
|
|
1344
1357
|
const specPath = inputs[constants_3.QuestionNames.ApiSpecLocation].trim();
|
|
1345
|
-
const listResult = await
|
|
1358
|
+
const listResult = await exports.fxCoreDeps.listAPIInfo(specPath);
|
|
1346
1359
|
authNameAndSchemes = this.parseAuthNameAndScheme(listResult, inputs);
|
|
1347
1360
|
if (authNameAndSchemes.length > 0) {
|
|
1348
1361
|
const doesLocalYamlPathExists = await fs_extra_1.default.pathExists(path.join(projectPath, versionMetadata_1.MetadataV3.localConfigFile));
|
|
@@ -1359,7 +1372,7 @@ class FxCore extends FxCore_declarativeAgent_1.FxCoreDeclarativeAgentPart {
|
|
|
1359
1372
|
}
|
|
1360
1373
|
const destinationPluginManifestPath = inputs[constants_3.QuestionNames.SelectPluginManifest];
|
|
1361
1374
|
const destinationApiSpecPath = inputs[constants_3.QuestionNames.SelectOpenAPISpecFromPlugin];
|
|
1362
|
-
const generateRes = await
|
|
1375
|
+
const generateRes = await openApiSpecHelper.generateFromApiSpec(undefined, teamsManifestPath, inputs, context, teamsfx_api_1.Stage.RegeneratePlugin, m365_spec_parser_1.ProjectType.Copilot, {
|
|
1363
1376
|
destinationApiSpecFilePath: destinationApiSpecPath,
|
|
1364
1377
|
pluginManifestFilePath: destinationPluginManifestPath,
|
|
1365
1378
|
}, inputs[constants_3.QuestionNames.ApiSpecLocation].trim(), true);
|
|
@@ -1368,21 +1381,21 @@ class FxCore extends FxCore_declarativeAgent_1.FxCoreDeclarativeAgentPart {
|
|
|
1368
1381
|
}
|
|
1369
1382
|
const warnings = generateRes.value.warnings;
|
|
1370
1383
|
if (warnings && warnings.length > 0) {
|
|
1371
|
-
const warnSummary = await
|
|
1384
|
+
const warnSummary = await openApiSpecHelper.generateScaffoldingSummary(warnings, manifestRes.value, path.relative(projectPath, destinationApiSpecPath), path.relative(projectPath, destinationPluginManifestPath), projectPath);
|
|
1372
1385
|
context.logProvider.info(warnSummary + "\n");
|
|
1373
1386
|
}
|
|
1374
1387
|
for (const authNameAndScheme of authNameAndSchemes) {
|
|
1375
1388
|
await this.updateAuthActionInYaml(authNameAndScheme.authName, authNameAndScheme.authScheme, projectPath, destinationApiSpecPath, destinationPluginManifestPath, false);
|
|
1376
1389
|
}
|
|
1377
1390
|
const declarativeAgentManifestPath = gptManifestFilePathRes.value;
|
|
1378
|
-
const declarativeAgentManifesRes = await
|
|
1391
|
+
const declarativeAgentManifesRes = await exports.fxCoreDeps.readCopilotGptManifestFile(declarativeAgentManifestPath);
|
|
1379
1392
|
if (declarativeAgentManifesRes.isErr()) {
|
|
1380
1393
|
return (0, teamsfx_api_1.err)(declarativeAgentManifesRes.error);
|
|
1381
1394
|
}
|
|
1382
1395
|
const declarativeAgentManifest = declarativeAgentManifesRes.value;
|
|
1383
1396
|
for (const action of declarativeAgentManifest.actions) {
|
|
1384
1397
|
const actionPath = path.normalize(path.join(appPackageFolder, action.file));
|
|
1385
|
-
await
|
|
1398
|
+
await exports.fxCoreDeps.updateConversationStarters(actionPath, declarativeAgentManifest);
|
|
1386
1399
|
}
|
|
1387
1400
|
const actionId = inputs[constants_3.QuestionNames.SelectPluginId];
|
|
1388
1401
|
if (inputs.platform === teamsfx_api_1.Platform.VSCode) {
|
|
@@ -1481,6 +1494,281 @@ class FxCore extends FxCore_declarativeAgent_1.FxCoreDeclarativeAgentPart {
|
|
|
1481
1494
|
this.showAddKnowledgeSuccessMessage(context, inputs, agentManifestPath, knowledgeSource);
|
|
1482
1495
|
return (0, teamsfx_api_1.ok)(result);
|
|
1483
1496
|
}
|
|
1497
|
+
/**
|
|
1498
|
+
* Add Skill
|
|
1499
|
+
*/
|
|
1500
|
+
async addSkill(inputs) {
|
|
1501
|
+
if (!featureFlags_1.featureFlagManager.getBooleanValue(featureFlags_1.FeatureFlags.AgentSkillsManifest)) {
|
|
1502
|
+
return (0, teamsfx_api_1.err)(new teamsfx_api_1.UserError("FxCore", "AgentSkillsDisabled", (0, localizeUtils_1.getLocalizedString)("core.addSkill.featureFlagDisabled")));
|
|
1503
|
+
}
|
|
1504
|
+
if (!inputs.projectPath) {
|
|
1505
|
+
throw new Error("projectPath is undefined"); // should never happen
|
|
1506
|
+
}
|
|
1507
|
+
const context = (0, globalVars_1.createContext)();
|
|
1508
|
+
const projectPath = inputs.projectPath;
|
|
1509
|
+
const teamsManifestPath = path.resolve(projectPath, inputs[constants_3.QuestionNames.ManifestPath]);
|
|
1510
|
+
const appPackageFolder = path.dirname(teamsManifestPath);
|
|
1511
|
+
// Validate the project is valid for adding a skill
|
|
1512
|
+
const manifestRes = await ManifestUtils_1.manifestUtils._readAppManifest(teamsManifestPath);
|
|
1513
|
+
if (manifestRes.isErr()) {
|
|
1514
|
+
return (0, teamsfx_api_1.err)(manifestRes.error);
|
|
1515
|
+
}
|
|
1516
|
+
const teamsManifest = manifestRes.value;
|
|
1517
|
+
const agent = teamsManifest.copilotExtensions
|
|
1518
|
+
? teamsManifest.copilotExtensions.declarativeCopilots?.[0]
|
|
1519
|
+
: teamsManifest.copilotAgents?.declarativeAgents?.[0];
|
|
1520
|
+
if (!agent?.file) {
|
|
1521
|
+
return (0, teamsfx_api_1.err)(results_1.AppStudioResultFactory.UserError(errors_1.AppStudioError.TeamsAppRequiredPropertyMissingError.name, errors_1.AppStudioError.TeamsAppRequiredPropertyMissingError.message("declarativeAgents", teamsManifestPath)));
|
|
1522
|
+
}
|
|
1523
|
+
const agentFilePathRes = await CopilotGptManifestUtils_1.copilotGptManifestUtils.getManifestPath(teamsManifestPath);
|
|
1524
|
+
if (agentFilePathRes.isErr()) {
|
|
1525
|
+
return (0, teamsfx_api_1.err)(agentFilePathRes.error);
|
|
1526
|
+
}
|
|
1527
|
+
const agentManifestPath = agentFilePathRes.value;
|
|
1528
|
+
// Confirm before modifying files (matches addPlugin pattern)
|
|
1529
|
+
const confirmMessage = (0, localizeUtils_1.getLocalizedString)("core.addSkill.confirm", path.relative(inputs.projectPath, appPackageFolder));
|
|
1530
|
+
const confirmRes = await context.userInteraction.showMessage("warn", confirmMessage, true, (0, localizeUtils_1.getLocalizedString)("core.addSkill.continue"));
|
|
1531
|
+
if (confirmRes.isErr()) {
|
|
1532
|
+
return (0, teamsfx_api_1.err)(confirmRes.error);
|
|
1533
|
+
}
|
|
1534
|
+
else if (confirmRes.value !== (0, localizeUtils_1.getLocalizedString)("core.addSkill.continue")) {
|
|
1535
|
+
return (0, teamsfx_api_1.err)(new common_2.UserCancelError());
|
|
1536
|
+
}
|
|
1537
|
+
const skillName = inputs[constants_3.QuestionNames.SkillName];
|
|
1538
|
+
const skillDescription = inputs[constants_3.QuestionNames.SkillDescription];
|
|
1539
|
+
const skillFrom = inputs[constants_3.QuestionNames.SkillFrom];
|
|
1540
|
+
const skillFromZipFile = inputs[constants_3.QuestionNames.SkillFromZipFile];
|
|
1541
|
+
let skillFolder;
|
|
1542
|
+
if (skillFrom || skillFromZipFile) {
|
|
1543
|
+
const isZipImport = skillFromZipFile || (skillFrom && skillFrom.toLowerCase().endsWith(".zip"));
|
|
1544
|
+
const sourcePath = skillFromZipFile || skillFrom;
|
|
1545
|
+
if (isZipImport) {
|
|
1546
|
+
// Zip import mode
|
|
1547
|
+
const importRes = await this.importSkillFromZip(sourcePath, appPackageFolder, agentManifestPath);
|
|
1548
|
+
if (importRes.isErr()) {
|
|
1549
|
+
return (0, teamsfx_api_1.err)(importRes.error);
|
|
1550
|
+
}
|
|
1551
|
+
skillFolder = importRes.value;
|
|
1552
|
+
}
|
|
1553
|
+
else {
|
|
1554
|
+
// Existing skill folder mode: validate it's within appPackage
|
|
1555
|
+
const skillAbsPath = path.resolve(appPackageFolder, sourcePath);
|
|
1556
|
+
const relativePath = path.relative(appPackageFolder, skillAbsPath);
|
|
1557
|
+
if (relativePath.startsWith("..")) {
|
|
1558
|
+
return (0, teamsfx_api_1.err)(new teamsfx_api_1.UserError("FxCore", "SkillOutsideAppPackage", "The skill directory must be within the app package folder."));
|
|
1559
|
+
}
|
|
1560
|
+
// Validate folder name format
|
|
1561
|
+
const folderName = path.basename(skillAbsPath);
|
|
1562
|
+
const namePattern = /^[a-zA-Z][a-zA-Z0-9-]*$/;
|
|
1563
|
+
if (!namePattern.test(folderName)) {
|
|
1564
|
+
return (0, teamsfx_api_1.err)(new teamsfx_api_1.UserError("FxCore", "InvalidSkillFolderName", `Skill folder name "${folderName}" is invalid. It must start with a letter and contain only letters, numbers, and hyphens.`));
|
|
1565
|
+
}
|
|
1566
|
+
// Validate SKILL.md exists
|
|
1567
|
+
const skillMdPath = path.join(skillAbsPath, "SKILL.md");
|
|
1568
|
+
if (!(await fs_extra_1.default.pathExists(skillMdPath))) {
|
|
1569
|
+
return (0, teamsfx_api_1.err)(new teamsfx_api_1.UserError("FxCore", "SkillMdNotFound", `SKILL.md not found in ${skillAbsPath}. Each skill directory must contain a SKILL.md file.`));
|
|
1570
|
+
}
|
|
1571
|
+
// Validate skill name in SKILL.md matches folder name
|
|
1572
|
+
const skillMdContent = await fs_extra_1.default.readFile(skillMdPath, "utf-8");
|
|
1573
|
+
const nameMatch = skillMdContent.match(/^---[\s\S]*?^name:\s*(.+)$/m);
|
|
1574
|
+
if (nameMatch) {
|
|
1575
|
+
const skillMdName = nameMatch[1].trim();
|
|
1576
|
+
if (skillMdName !== folderName) {
|
|
1577
|
+
return (0, teamsfx_api_1.err)(new teamsfx_api_1.UserError("FxCore", "SkillNameMismatch", `Skill name "${skillMdName}" in SKILL.md does not match folder name "${folderName}". They must be the same.`));
|
|
1578
|
+
}
|
|
1579
|
+
}
|
|
1580
|
+
skillFolder = (0, utils_2.normalizePath)(path.relative(path.dirname(agentManifestPath), skillAbsPath), true);
|
|
1581
|
+
}
|
|
1582
|
+
}
|
|
1583
|
+
else {
|
|
1584
|
+
// New skill mode: create the directory and SKILL.md
|
|
1585
|
+
const skillDir = path.join(appPackageFolder, "skills", skillName);
|
|
1586
|
+
await fs_extra_1.default.ensureDir(skillDir);
|
|
1587
|
+
const skillMdContent = [
|
|
1588
|
+
"---",
|
|
1589
|
+
`name: ${skillName}`,
|
|
1590
|
+
`description: ${skillDescription}`,
|
|
1591
|
+
"---",
|
|
1592
|
+
`# ${skillName}`,
|
|
1593
|
+
"",
|
|
1594
|
+
"<!-- Add your skill instructions here -->",
|
|
1595
|
+
"<!-- The agent will follow these instructions when this skill is activated -->",
|
|
1596
|
+
"",
|
|
1597
|
+
].join("\n");
|
|
1598
|
+
await fs_extra_1.default.writeFile(path.join(skillDir, "SKILL.md"), skillMdContent);
|
|
1599
|
+
skillFolder = (0, utils_2.normalizePath)(path.relative(path.dirname(agentManifestPath), skillDir), true);
|
|
1600
|
+
}
|
|
1601
|
+
// Add skill entry to DA manifest
|
|
1602
|
+
const addSkillRes = await CopilotGptManifestUtils_1.copilotGptManifestUtils.addSkill(agentManifestPath, skillFolder);
|
|
1603
|
+
if (addSkillRes.isErr()) {
|
|
1604
|
+
return (0, teamsfx_api_1.err)(addSkillRes.error);
|
|
1605
|
+
}
|
|
1606
|
+
// Optionally expose skill to Copilot via top-level Teams manifest agentSkills
|
|
1607
|
+
const exposeToCopilot = inputs[constants_3.QuestionNames.ExposeToCopilot];
|
|
1608
|
+
if (exposeToCopilot === true || exposeToCopilot === "yes") {
|
|
1609
|
+
// Compute folder path relative to app package folder (Teams manifest dir)
|
|
1610
|
+
const skillAbsPath = path.resolve(path.dirname(agentManifestPath), skillFolder);
|
|
1611
|
+
const teamsManifestSkillFolder = (0, utils_2.normalizePath)(path.relative(appPackageFolder, skillAbsPath), true);
|
|
1612
|
+
// Read, update, and write the Teams manifest
|
|
1613
|
+
const teamsManifestForSkill = manifestRes.value;
|
|
1614
|
+
if (!teamsManifestForSkill.agentSkills) {
|
|
1615
|
+
teamsManifestForSkill.agentSkills = [];
|
|
1616
|
+
}
|
|
1617
|
+
if (!teamsManifestForSkill.agentSkills.some((s) => s.folder === teamsManifestSkillFolder)) {
|
|
1618
|
+
teamsManifestForSkill.agentSkills.push({ folder: teamsManifestSkillFolder });
|
|
1619
|
+
}
|
|
1620
|
+
await fs_extra_1.default.writeFile(teamsManifestPath, JSON.stringify(teamsManifestForSkill, null, 4));
|
|
1621
|
+
}
|
|
1622
|
+
// Show success message
|
|
1623
|
+
if (inputs.platform === teamsfx_api_1.Platform.VSCode) {
|
|
1624
|
+
const successMessage = (0, localizeUtils_1.getLocalizedString)("core.addSkill.success.vsc");
|
|
1625
|
+
const viewAgentManifest = (0, localizeUtils_1.getLocalizedString)("core.addSkill.success.viewAgentManifest");
|
|
1626
|
+
void context.userInteraction
|
|
1627
|
+
.showMessage("info", successMessage, false, viewAgentManifest)
|
|
1628
|
+
.then((userRes) => {
|
|
1629
|
+
if (userRes.isOk() && userRes.value === viewAgentManifest) {
|
|
1630
|
+
void globalVars_1.TOOLS?.ui?.openFile?.(agentManifestPath);
|
|
1631
|
+
}
|
|
1632
|
+
});
|
|
1633
|
+
}
|
|
1634
|
+
else {
|
|
1635
|
+
const successMessage = (0, localizeUtils_1.getLocalizedString)("core.addSkill.success", agentManifestPath);
|
|
1636
|
+
void context.userInteraction.showMessage("info", successMessage, false);
|
|
1637
|
+
}
|
|
1638
|
+
return (0, teamsfx_api_1.ok)(undefined);
|
|
1639
|
+
}
|
|
1640
|
+
/**
|
|
1641
|
+
* Import a skill from a .zip file into the appPackage/skills folder.
|
|
1642
|
+
* Validates zip entries for security, extracts to a temp directory, then moves atomically.
|
|
1643
|
+
*/
|
|
1644
|
+
async importSkillFromZip(zipPath, appPackageFolder, agentManifestPath) {
|
|
1645
|
+
// Resolve zip path relative to CWD (not appPackage)
|
|
1646
|
+
const resolvedZipPath = path.resolve(zipPath);
|
|
1647
|
+
if (!(await fs_extra_1.default.pathExists(resolvedZipPath))) {
|
|
1648
|
+
return (0, teamsfx_api_1.err)(new teamsfx_api_1.UserError("FxCore", "ZipFileNotFound", `Zip file not found: ${resolvedZipPath}`));
|
|
1649
|
+
}
|
|
1650
|
+
let zip;
|
|
1651
|
+
try {
|
|
1652
|
+
zip = new adm_zip_1.default(resolvedZipPath);
|
|
1653
|
+
}
|
|
1654
|
+
catch {
|
|
1655
|
+
return (0, teamsfx_api_1.err)(new teamsfx_api_1.UserError("FxCore", "InvalidZipFile", `Failed to read zip file: ${resolvedZipPath}. Please provide a valid .zip file.`));
|
|
1656
|
+
}
|
|
1657
|
+
const entries = zip.getEntries();
|
|
1658
|
+
// Metadata directories to ignore
|
|
1659
|
+
const ignoredPrefixes = ["__MACOSX/", ".DS_Store"];
|
|
1660
|
+
// Security: validate all entries before extraction
|
|
1661
|
+
for (const entry of entries) {
|
|
1662
|
+
const entryName = entry.entryName.replace(/\\/g, "/");
|
|
1663
|
+
if (entryName.includes("..") || path.isAbsolute(entryName) || entryName.startsWith("/")) {
|
|
1664
|
+
return (0, teamsfx_api_1.err)(new teamsfx_api_1.UserError("FxCore", "ZipInvalidEntries", (0, localizeUtils_1.getLocalizedString)("core.addSkill.zipInvalidEntries")));
|
|
1665
|
+
}
|
|
1666
|
+
}
|
|
1667
|
+
// Filter out metadata entries
|
|
1668
|
+
const validEntries = entries.filter((entry) => {
|
|
1669
|
+
const entryName = entry.entryName.replace(/\\/g, "/");
|
|
1670
|
+
return !ignoredPrefixes.some((prefix) => entryName.startsWith(prefix) || entryName === prefix.replace("/", ""));
|
|
1671
|
+
});
|
|
1672
|
+
// Determine zip layout: single top-level directory or root-level files
|
|
1673
|
+
const topLevelDirs = new Set();
|
|
1674
|
+
let hasRootFiles = false;
|
|
1675
|
+
for (const entry of validEntries) {
|
|
1676
|
+
const entryName = entry.entryName.replace(/\\/g, "/");
|
|
1677
|
+
const parts = entryName.split("/").filter((p) => p.length > 0);
|
|
1678
|
+
if (parts.length === 1 && !entry.isDirectory) {
|
|
1679
|
+
hasRootFiles = true;
|
|
1680
|
+
}
|
|
1681
|
+
else if (parts.length >= 1) {
|
|
1682
|
+
topLevelDirs.add(parts[0]);
|
|
1683
|
+
}
|
|
1684
|
+
}
|
|
1685
|
+
let skillContentPrefix = "";
|
|
1686
|
+
let derivedSkillName;
|
|
1687
|
+
if (!hasRootFiles && topLevelDirs.size === 1) {
|
|
1688
|
+
// Single top-level directory layout
|
|
1689
|
+
skillContentPrefix = [...topLevelDirs][0] + "/";
|
|
1690
|
+
derivedSkillName = [...topLevelDirs][0];
|
|
1691
|
+
}
|
|
1692
|
+
else if (hasRootFiles) {
|
|
1693
|
+
// Root-level files layout: derive name from SKILL.md frontmatter
|
|
1694
|
+
const skillMdEntry = validEntries.find((e) => {
|
|
1695
|
+
const name = e.entryName.replace(/\\/g, "/");
|
|
1696
|
+
return name === "SKILL.md" || name === "./SKILL.md";
|
|
1697
|
+
});
|
|
1698
|
+
if (!skillMdEntry) {
|
|
1699
|
+
return (0, teamsfx_api_1.err)(new teamsfx_api_1.UserError("FxCore", "ZipNoSkillMd", (0, localizeUtils_1.getLocalizedString)("core.addSkill.zipNoSkillMd")));
|
|
1700
|
+
}
|
|
1701
|
+
const skillMdContent = skillMdEntry.getData().toString("utf-8");
|
|
1702
|
+
const nameMatch = skillMdContent.match(/^---[\s\S]*?^name:\s*(.+)$/m);
|
|
1703
|
+
if (!nameMatch) {
|
|
1704
|
+
return (0, teamsfx_api_1.err)(new teamsfx_api_1.UserError("FxCore", "ZipNoSkillMd", (0, localizeUtils_1.getLocalizedString)("core.addSkill.zipNoSkillMd") +
|
|
1705
|
+
" The SKILL.md file must include a 'name' field in its frontmatter."));
|
|
1706
|
+
}
|
|
1707
|
+
derivedSkillName = nameMatch[1].trim();
|
|
1708
|
+
}
|
|
1709
|
+
else {
|
|
1710
|
+
return (0, teamsfx_api_1.err)(new teamsfx_api_1.UserError("FxCore", "ZipInvalidLayout", (0, localizeUtils_1.getLocalizedString)("core.addSkill.zipInvalidLayout")));
|
|
1711
|
+
}
|
|
1712
|
+
// Validate skill name format
|
|
1713
|
+
const namePattern = /^[a-zA-Z][a-zA-Z0-9-]*$/;
|
|
1714
|
+
if (!namePattern.test(derivedSkillName)) {
|
|
1715
|
+
return (0, teamsfx_api_1.err)(new teamsfx_api_1.UserError("FxCore", "InvalidSkillFolderName", `Skill name "${derivedSkillName}" is invalid. It must start with a letter and contain only letters, numbers, and hyphens.`));
|
|
1716
|
+
}
|
|
1717
|
+
// Check target folder doesn't already exist
|
|
1718
|
+
const targetSkillDir = path.join(appPackageFolder, "skills", derivedSkillName);
|
|
1719
|
+
if (await fs_extra_1.default.pathExists(targetSkillDir)) {
|
|
1720
|
+
return (0, teamsfx_api_1.err)(new teamsfx_api_1.UserError("FxCore", "SkillFolderAlreadyExists", (0, localizeUtils_1.getLocalizedString)("core.addSkill.zipSkillFolderExists", derivedSkillName)));
|
|
1721
|
+
}
|
|
1722
|
+
// Extract to temp directory first, then move atomically
|
|
1723
|
+
const tempDir = await fs_extra_1.default.mkdtemp(path.join(os.tmpdir(), "atk-skill-import-"));
|
|
1724
|
+
const tempSkillDir = path.join(tempDir, derivedSkillName);
|
|
1725
|
+
try {
|
|
1726
|
+
await fs_extra_1.default.ensureDir(tempSkillDir);
|
|
1727
|
+
// Extract relevant entries
|
|
1728
|
+
for (const entry of validEntries) {
|
|
1729
|
+
if (entry.isDirectory)
|
|
1730
|
+
continue;
|
|
1731
|
+
const entryName = entry.entryName.replace(/\\/g, "/");
|
|
1732
|
+
let relativeName = entryName;
|
|
1733
|
+
if (skillContentPrefix && entryName.startsWith(skillContentPrefix)) {
|
|
1734
|
+
relativeName = entryName.slice(skillContentPrefix.length);
|
|
1735
|
+
}
|
|
1736
|
+
if (!relativeName)
|
|
1737
|
+
continue;
|
|
1738
|
+
const targetPath = path.join(tempSkillDir, relativeName);
|
|
1739
|
+
// Re-validate no path traversal after joining
|
|
1740
|
+
const normalizedTarget = path.resolve(targetPath);
|
|
1741
|
+
if (!normalizedTarget.startsWith(path.resolve(tempSkillDir))) {
|
|
1742
|
+
return (0, teamsfx_api_1.err)(new teamsfx_api_1.UserError("FxCore", "ZipInvalidEntries", (0, localizeUtils_1.getLocalizedString)("core.addSkill.zipInvalidEntries")));
|
|
1743
|
+
}
|
|
1744
|
+
await fs_extra_1.default.ensureDir(path.dirname(targetPath));
|
|
1745
|
+
await fs_extra_1.default.writeFile(targetPath, entry.getData());
|
|
1746
|
+
}
|
|
1747
|
+
// Validate SKILL.md exists in extracted content
|
|
1748
|
+
const extractedSkillMdPath = path.join(tempSkillDir, "SKILL.md");
|
|
1749
|
+
if (!(await fs_extra_1.default.pathExists(extractedSkillMdPath))) {
|
|
1750
|
+
return (0, teamsfx_api_1.err)(new teamsfx_api_1.UserError("FxCore", "ZipNoSkillMd", (0, localizeUtils_1.getLocalizedString)("core.addSkill.zipNoSkillMd")));
|
|
1751
|
+
}
|
|
1752
|
+
// Validate name in SKILL.md matches derived folder name
|
|
1753
|
+
const extractedSkillMd = await fs_extra_1.default.readFile(extractedSkillMdPath, "utf-8");
|
|
1754
|
+
const extractedNameMatch = extractedSkillMd.match(/^---[\s\S]*?^name:\s*(.+)$/m);
|
|
1755
|
+
if (extractedNameMatch) {
|
|
1756
|
+
const extractedName = extractedNameMatch[1].trim();
|
|
1757
|
+
if (extractedName !== derivedSkillName) {
|
|
1758
|
+
return (0, teamsfx_api_1.err)(new teamsfx_api_1.UserError("FxCore", "SkillNameMismatch", `Skill name "${extractedName}" in SKILL.md does not match folder name "${derivedSkillName}". They must be the same.`));
|
|
1759
|
+
}
|
|
1760
|
+
}
|
|
1761
|
+
// Move to final location
|
|
1762
|
+
await fs_extra_1.default.ensureDir(path.dirname(targetSkillDir));
|
|
1763
|
+
await fs_extra_1.default.move(tempSkillDir, targetSkillDir);
|
|
1764
|
+
}
|
|
1765
|
+
finally {
|
|
1766
|
+
// Clean up temp directory
|
|
1767
|
+
await fs_extra_1.default.remove(tempDir).catch(() => { });
|
|
1768
|
+
}
|
|
1769
|
+
const skillFolder = (0, utils_2.normalizePath)(path.relative(path.dirname(agentManifestPath), targetSkillDir), true);
|
|
1770
|
+
return (0, teamsfx_api_1.ok)(skillFolder);
|
|
1771
|
+
}
|
|
1484
1772
|
/**
|
|
1485
1773
|
* only for vs code extension
|
|
1486
1774
|
*/
|
|
@@ -1543,7 +1831,7 @@ class FxCore extends FxCore_declarativeAgent_1.FxCoreDeclarativeAgentPart {
|
|
|
1543
1831
|
suffix += 1;
|
|
1544
1832
|
actionId = `action_${suffix}`;
|
|
1545
1833
|
}
|
|
1546
|
-
const addActionRes = await CopilotGptManifestUtils_1.copilotGptManifestUtils.addAction(declarativeCopilotManifestPath, actionId, (0,
|
|
1834
|
+
const addActionRes = await CopilotGptManifestUtils_1.copilotGptManifestUtils.addAction(declarativeCopilotManifestPath, actionId, (0, utils_2.normalizePath)(path.relative(appPackageFolder, pluginManifestFilePath), true));
|
|
1547
1835
|
if (addActionRes.isErr()) {
|
|
1548
1836
|
return (0, teamsfx_api_1.err)(addActionRes.error);
|
|
1549
1837
|
}
|
|
@@ -1554,7 +1842,7 @@ class FxCore extends FxCore_declarativeAgent_1.FxCoreDeclarativeAgentPart {
|
|
|
1554
1842
|
// 2. Update teamsapp.local.yaml and teamsapp.yaml if need to add auth action
|
|
1555
1843
|
const specPath = inputs[constants_3.QuestionNames.ApiSpecLocation].trim();
|
|
1556
1844
|
for (const authInfo of authData) {
|
|
1557
|
-
await
|
|
1845
|
+
await openApiSpecHelper.injectAuthAction(inputs.projectPath, authInfo.authName, undefined, specPath, false, authInfo.authType === "apiKey" ? "ApiKeyPluginVault" : "OAuthPluginVault", false, authInfo.registrationId);
|
|
1558
1846
|
}
|
|
1559
1847
|
// 3. Update plugin manifest to add ac info (optional)
|
|
1560
1848
|
await (0, helper_1.generateAdaptiveCardInPluginManifestForKiota)(pluginManifestFilePath, specPath, context);
|
|
@@ -1633,7 +1921,7 @@ class FxCore extends FxCore_declarativeAgent_1.FxCoreDeclarativeAgentPart {
|
|
|
1633
1921
|
authTypeScheme = constant_1.MicrosoftEntraAuthType;
|
|
1634
1922
|
break;
|
|
1635
1923
|
}
|
|
1636
|
-
const addAuthActionRes = await
|
|
1924
|
+
const addAuthActionRes = await openApiSpecHelper.injectAuthAction(inputs.projectPath, authName, undefined, apiSpecPath, true, authTypeScheme, "enablePKCE" in authParameters ? authParameters.enablePKCE : undefined);
|
|
1637
1925
|
if (addAuthActionRes?.registrationIdEnvName) {
|
|
1638
1926
|
const pluginManifest = (await fs_extra_1.default.readJson(pluginManifestPath));
|
|
1639
1927
|
pluginManifest.runtimes?.forEach((runtime) => {
|
|
@@ -1670,13 +1958,13 @@ class FxCore extends FxCore_declarativeAgent_1.FxCoreDeclarativeAgentPart {
|
|
|
1670
1958
|
[telemetry_1.TelemetryProperty.AddAuthType]: authType,
|
|
1671
1959
|
});
|
|
1672
1960
|
}
|
|
1673
|
-
catch (
|
|
1674
|
-
const error = (0, common_2.assembleError)(
|
|
1961
|
+
catch (e) {
|
|
1962
|
+
const error = (0, common_2.assembleError)(e);
|
|
1675
1963
|
context.telemetryReporter.sendTelemetryErrorEvent(telemetry_1.TelemetryEvent.AddAuthAction, {
|
|
1676
1964
|
[telemetry_1.TelemetryProperty.ErrorCode]: error.name,
|
|
1677
1965
|
[telemetry_1.TelemetryProperty.ErrorMessage]: error.message,
|
|
1678
1966
|
});
|
|
1679
|
-
return err(error);
|
|
1967
|
+
return (0, teamsfx_api_1.err)(error);
|
|
1680
1968
|
}
|
|
1681
1969
|
return (0, teamsfx_api_1.ok)(undefined);
|
|
1682
1970
|
}
|
|
@@ -1713,7 +2001,7 @@ class FxCore extends FxCore_declarativeAgent_1.FxCoreDeclarativeAgentPart {
|
|
|
1713
2001
|
}
|
|
1714
2002
|
async installAppToChannel(inputs) {
|
|
1715
2003
|
const installAppDriver = typedi_1.Container.get("devChannel/installApp");
|
|
1716
|
-
const context = (0,
|
|
2004
|
+
const context = (0, utils_3.createDriverContext)(inputs);
|
|
1717
2005
|
(0, globalVars_1.setErrorContext)({ component: "devChannelInstallApp" });
|
|
1718
2006
|
const env = inputs.env;
|
|
1719
2007
|
const readEnvRes = await envUtil_1.envUtil.readEnv(context.projectPath, env, false, false);
|
|
@@ -1736,29 +2024,60 @@ class FxCore extends FxCore_declarativeAgent_1.FxCoreDeclarativeAgentPart {
|
|
|
1736
2024
|
* dynamic template metadata download
|
|
1737
2025
|
*/
|
|
1738
2026
|
async fetchOnlineTemplateMetadata() {
|
|
1739
|
-
if (
|
|
2027
|
+
if (exports.fxCoreDeps.useLocalTemplate()) {
|
|
1740
2028
|
return (0, teamsfx_api_1.ok)(undefined); // Skip if using local templates
|
|
1741
2029
|
}
|
|
1742
2030
|
// Downloads the latest online template metadata (metadata.zip) into user's home .fx folder.
|
|
1743
2031
|
// Caches the template version so subsequent calls avoid redundant downloads if unchanged.
|
|
1744
2032
|
try {
|
|
1745
|
-
|
|
1746
|
-
const coreVersion = require("../../package.json").version;
|
|
1747
|
-
let latestVersion = "0.0.0-rc";
|
|
1748
|
-
if (coreVersion.includes("alpha") ||
|
|
1749
|
-
coreVersion.includes("beta") ||
|
|
1750
|
-
coreVersion.includes("rc")) {
|
|
1751
|
-
// daily build, prerelease or rc
|
|
1752
|
-
latestVersion = "0.0.0-rc";
|
|
1753
|
-
}
|
|
1754
|
-
else {
|
|
1755
|
-
// stable version
|
|
1756
|
-
latestVersion = await (0, utils_5.getTemplateLatestVersion)();
|
|
1757
|
-
}
|
|
2033
|
+
const useV4Channel = featureFlags_1.featureFlagManager.getBooleanValue(featureFlags_1.FeatureFlags.V4Enabled);
|
|
1758
2034
|
const homedir = os.homedir();
|
|
1759
2035
|
const metadataDir = path.join(homedir, `.${String(teamsfx_api_1.ConfigFolderName)}`);
|
|
1760
2036
|
await fs_extra_1.default.ensureDir(metadataDir);
|
|
1761
|
-
|
|
2037
|
+
let latestVersion;
|
|
2038
|
+
if (useV4Channel) {
|
|
2039
|
+
// Transitional: in the v4 channel the metadata rides the SAME single
|
|
2040
|
+
// decision point as the template package —
|
|
2041
|
+
// `resolveTemplateSource((v4.range, v4.bundled, port))`. The `bundled`
|
|
2042
|
+
// field is CD-baked (= !goproduct), so goproduct builds (stable AND
|
|
2043
|
+
// prerelease) resolve to an online/cache source while non-goproduct or
|
|
2044
|
+
// daily builds resolve to the bundled floor. metadata.zip lives in the
|
|
2045
|
+
// same `templates-v4@<ver>` release as the resolved package, so the
|
|
2046
|
+
// resolved version names the release to pull metadata from. Remove once
|
|
2047
|
+
// selector.json drives metadata distribution.
|
|
2048
|
+
const resolved = await (0, v4MetadataSource_1.resolveV4MetadataSource)();
|
|
2049
|
+
if (resolved.isErr()) {
|
|
2050
|
+
// Malformed tag list / digest mismatch are hard errors (no silent
|
|
2051
|
+
// fallback). An unreachable channel does not reach here — it already
|
|
2052
|
+
// resolved to a bundled-fallback origin handled below.
|
|
2053
|
+
return (0, teamsfx_api_1.err)(resolved.error);
|
|
2054
|
+
}
|
|
2055
|
+
const source = resolved.value;
|
|
2056
|
+
if (source.origin === "bundled" || source.origin === "bundled-fallback") {
|
|
2057
|
+
// Bundled build or unreachable channel: read the bundled metadata
|
|
2058
|
+
// (the readers fall back via `useBundledMetadataForV4`). No download.
|
|
2059
|
+
return (0, teamsfx_api_1.ok)(undefined);
|
|
2060
|
+
}
|
|
2061
|
+
latestVersion = source.version;
|
|
2062
|
+
}
|
|
2063
|
+
else {
|
|
2064
|
+
// v3: prerelease builds use the mutable rolling `0.0.0-rc` tag; stable
|
|
2065
|
+
// builds resolve the latest published templates version.
|
|
2066
|
+
const coreVersion = exports.fxCoreDeps.getCoreVersion();
|
|
2067
|
+
if (coreVersion.includes("alpha") ||
|
|
2068
|
+
coreVersion.includes("beta") ||
|
|
2069
|
+
coreVersion.includes("rc")) {
|
|
2070
|
+
latestVersion = "0.0.0-rc";
|
|
2071
|
+
}
|
|
2072
|
+
else {
|
|
2073
|
+
latestVersion = await exports.fxCoreDeps.getTemplateLatestVersion();
|
|
2074
|
+
}
|
|
2075
|
+
}
|
|
2076
|
+
// Use a channel-specific cache file so flipping the flag triggers a fresh
|
|
2077
|
+
// download instead of a stale v3 cache hit; the v4 file's presence is also
|
|
2078
|
+
// the readers' signal (`useBundledMetadataForV4`) that downloaded v4
|
|
2079
|
+
// metadata is available.
|
|
2080
|
+
const versionFile = path.join(metadataDir, useV4Channel ? "template-version-v4.txt" : "template-version.txt");
|
|
1762
2081
|
const needDownload = async () => {
|
|
1763
2082
|
// Always re-download for mutable pre-release tags (content changes but tag stays the same)
|
|
1764
2083
|
if (latestVersion === "0.0.0-rc")
|
|
@@ -1776,11 +2095,12 @@ class FxCore extends FxCore_declarativeAgent_1.FxCoreDeclarativeAgentPart {
|
|
|
1776
2095
|
if (!(await needDownload())) {
|
|
1777
2096
|
return (0, teamsfx_api_1.ok)(undefined); // Already up-to-date
|
|
1778
2097
|
}
|
|
1779
|
-
// Construct metadata.zip download URL based on tag prefix and version
|
|
1780
|
-
const
|
|
2098
|
+
// Construct metadata.zip download URL based on tag prefix and version.
|
|
2099
|
+
const tagPrefix = useV4Channel ? templates_config_json_1.default.v4tagPrefix : templates_config_json_1.default.tagPrefix;
|
|
2100
|
+
const tag = `${tagPrefix}${latestVersion}`;
|
|
1781
2101
|
const metadataZipUrl = `${templates_config_json_1.default.templateDownloadBaseURL}/${tag}/metadata.zip`;
|
|
1782
|
-
const zip = await
|
|
1783
|
-
await
|
|
2102
|
+
const zip = await exports.fxCoreDeps.fetchZipFromUrl(metadataZipUrl);
|
|
2103
|
+
await exports.fxCoreDeps.unzip(zip, metadataDir);
|
|
1784
2104
|
await fs_extra_1.default.writeFile(versionFile, latestVersion, { encoding: "utf-8" });
|
|
1785
2105
|
// Clear locale cache so freshly downloaded NLS files are picked up
|
|
1786
2106
|
(0, localizeUtils_1.clearLocaleCache)();
|
|
@@ -1796,16 +2116,16 @@ class FxCore extends FxCore_declarativeAgent_1.FxCoreDeclarativeAgentPart {
|
|
|
1796
2116
|
* dynamic VS template metadata download
|
|
1797
2117
|
*/
|
|
1798
2118
|
async fetchOnlineTemplateMetadataForVS() {
|
|
1799
|
-
if (
|
|
2119
|
+
if (exports.fxCoreDeps.useLocalTemplate()) {
|
|
1800
2120
|
return (0, teamsfx_api_1.ok)(undefined); // Skip if using local templates
|
|
1801
2121
|
}
|
|
1802
2122
|
try {
|
|
1803
2123
|
// VS ships stable templates with a stable fx-core and test/pre-release
|
|
1804
2124
|
// templates with a beta fx-core. So beta = pre-stable test build → RC.
|
|
1805
|
-
const coreVersion =
|
|
2125
|
+
const coreVersion = exports.fxCoreDeps.getCoreVersion();
|
|
1806
2126
|
const latestVersion = coreVersion.includes("beta")
|
|
1807
2127
|
? "0.0.0-rc"
|
|
1808
|
-
: await
|
|
2128
|
+
: await exports.fxCoreDeps.getTemplateVSLatestVersion();
|
|
1809
2129
|
const homedir = os.homedir();
|
|
1810
2130
|
const metadataDir = path.join(homedir, `.${String(teamsfx_api_1.ConfigFolderName)}`, "vs-metadata");
|
|
1811
2131
|
await fs_extra_1.default.ensureDir(metadataDir);
|
|
@@ -1826,8 +2146,8 @@ class FxCore extends FxCore_declarativeAgent_1.FxCoreDeclarativeAgentPart {
|
|
|
1826
2146
|
}
|
|
1827
2147
|
const tag = `${templates_config_json_1.default.vstagPrefix}${latestVersion}`;
|
|
1828
2148
|
const metadataZipUrl = `${templates_config_json_1.default.templateDownloadBaseURL}/${tag}/metadata.zip`;
|
|
1829
|
-
const zip = await
|
|
1830
|
-
await
|
|
2149
|
+
const zip = await exports.fxCoreDeps.fetchZipFromUrl(metadataZipUrl);
|
|
2150
|
+
await exports.fxCoreDeps.unzip(zip, metadataDir);
|
|
1831
2151
|
await fs_extra_1.default.writeFile(versionFile, latestVersion, { encoding: "utf-8" });
|
|
1832
2152
|
return (0, teamsfx_api_1.ok)(undefined);
|
|
1833
2153
|
}
|
|
@@ -1845,7 +2165,7 @@ class FxCore extends FxCore_declarativeAgent_1.FxCoreDeclarativeAgentPart {
|
|
|
1845
2165
|
}
|
|
1846
2166
|
async updateAuthActionInYaml(authName, authScheme, projectPath, apSpecPath, pluginManifestPath, forceToAddNew = true) {
|
|
1847
2167
|
if (authName && authScheme) {
|
|
1848
|
-
const authInjectRes = await
|
|
2168
|
+
const authInjectRes = await openApiSpecHelper.injectAuthAction(projectPath, authName, authScheme, apSpecPath, forceToAddNew);
|
|
1849
2169
|
if (authInjectRes?.defaultRegistrationIdEnvName &&
|
|
1850
2170
|
authInjectRes?.registrationIdEnvName &&
|
|
1851
2171
|
authInjectRes.defaultRegistrationIdEnvName !== authInjectRes.registrationIdEnvName) {
|
|
@@ -2033,7 +2353,6 @@ tslib_1.__decorate([
|
|
|
2033
2353
|
(0, hooks_1.hooks)([
|
|
2034
2354
|
(0, globalVars_1.ErrorContextMW)({ component: "FxCore", stage: "provision", reset: true }),
|
|
2035
2355
|
errorHandler_1.ErrorHandlerMW,
|
|
2036
|
-
projectMigratorV3_1.ProjectMigratorMWV3,
|
|
2037
2356
|
(0, envMW_1.EnvLoaderMW)(false),
|
|
2038
2357
|
concurrentLocker_1.ConcurrentLockerMW,
|
|
2039
2358
|
contextInjector_1.ContextInjectorMW,
|
|
@@ -2047,7 +2366,6 @@ tslib_1.__decorate([
|
|
|
2047
2366
|
(0, hooks_1.hooks)([
|
|
2048
2367
|
(0, globalVars_1.ErrorContextMW)({ component: "FxCore", stage: "uninstall", reset: true }),
|
|
2049
2368
|
errorHandler_1.ErrorHandlerMW,
|
|
2050
|
-
projectMigratorV3_1.ProjectMigratorMWV3,
|
|
2051
2369
|
(0, questionMW_1.QuestionMW)("uninstall"),
|
|
2052
2370
|
]),
|
|
2053
2371
|
tslib_1.__metadata("design:type", Function),
|
|
@@ -2116,7 +2434,6 @@ tslib_1.__decorate([
|
|
|
2116
2434
|
(0, hooks_1.hooks)([
|
|
2117
2435
|
(0, globalVars_1.ErrorContextMW)({ component: "FxCore", stage: "deploy", reset: true }),
|
|
2118
2436
|
errorHandler_1.ErrorHandlerMW,
|
|
2119
|
-
projectMigratorV3_1.ProjectMigratorMWV3,
|
|
2120
2437
|
(0, envMW_1.EnvLoaderMW)(false),
|
|
2121
2438
|
concurrentLocker_1.ConcurrentLockerMW,
|
|
2122
2439
|
contextInjector_1.ContextInjectorMW,
|
|
@@ -2136,7 +2453,6 @@ tslib_1.__decorate([
|
|
|
2136
2453
|
(0, hooks_1.hooks)([
|
|
2137
2454
|
(0, globalVars_1.ErrorContextMW)({ component: "FxCore", stage: "deployAadManifest", reset: true }),
|
|
2138
2455
|
errorHandler_1.ErrorHandlerMW,
|
|
2139
|
-
projectMigratorV3_1.ProjectMigratorMWV3,
|
|
2140
2456
|
(0, questionMW_1.QuestionMW)("deployAadManifest"),
|
|
2141
2457
|
(0, envMW_1.EnvLoaderMW)(true, true),
|
|
2142
2458
|
concurrentLocker_1.ConcurrentLockerMW,
|
|
@@ -2151,7 +2467,6 @@ tslib_1.__decorate([
|
|
|
2151
2467
|
(0, globalVars_1.ErrorContextMW)({ component: "FxCore", stage: "addWebpart", reset: true }),
|
|
2152
2468
|
errorHandler_1.ErrorHandlerMW,
|
|
2153
2469
|
(0, questionMW_1.QuestionMW)("addWebpart"),
|
|
2154
|
-
projectMigratorV3_1.ProjectMigratorMWV3,
|
|
2155
2470
|
concurrentLocker_1.ConcurrentLockerMW,
|
|
2156
2471
|
]),
|
|
2157
2472
|
tslib_1.__metadata("design:type", Function),
|
|
@@ -2162,7 +2477,6 @@ tslib_1.__decorate([
|
|
|
2162
2477
|
(0, hooks_1.hooks)([
|
|
2163
2478
|
(0, globalVars_1.ErrorContextMW)({ component: "FxCore", stage: "publish", reset: true }),
|
|
2164
2479
|
errorHandler_1.ErrorHandlerMW,
|
|
2165
|
-
projectMigratorV3_1.ProjectMigratorMWV3,
|
|
2166
2480
|
(0, envMW_1.EnvLoaderMW)(false),
|
|
2167
2481
|
concurrentLocker_1.ConcurrentLockerMW,
|
|
2168
2482
|
contextInjector_1.ContextInjectorMW,
|
|
@@ -2177,7 +2491,6 @@ tslib_1.__decorate([
|
|
|
2177
2491
|
(0, globalVars_1.ErrorContextMW)({ component: "FxCore", stage: "share", reset: true }),
|
|
2178
2492
|
errorHandler_1.ErrorHandlerMW,
|
|
2179
2493
|
(0, questionMW_1.QuestionMW)("removeSharedAccess"),
|
|
2180
|
-
projectMigratorV3_1.ProjectMigratorMWV3,
|
|
2181
2494
|
(0, envMW_1.EnvLoaderMW)(false),
|
|
2182
2495
|
concurrentLocker_1.ConcurrentLockerMW,
|
|
2183
2496
|
contextInjector_1.ContextInjectorMW,
|
|
@@ -2191,7 +2504,6 @@ tslib_1.__decorate([
|
|
|
2191
2504
|
(0, globalVars_1.ErrorContextMW)({ component: "FxCore", stage: "share", reset: true }),
|
|
2192
2505
|
errorHandler_1.ErrorHandlerMW,
|
|
2193
2506
|
(0, questionMW_1.QuestionMW)("share"),
|
|
2194
|
-
projectMigratorV3_1.ProjectMigratorMWV3,
|
|
2195
2507
|
(0, envMW_1.EnvLoaderMW)(false),
|
|
2196
2508
|
concurrentLocker_1.ConcurrentLockerMW,
|
|
2197
2509
|
contextInjector_1.ContextInjectorMW,
|
|
@@ -2205,7 +2517,6 @@ tslib_1.__decorate([
|
|
|
2205
2517
|
(0, hooks_1.hooks)([
|
|
2206
2518
|
(0, globalVars_1.ErrorContextMW)({ component: "FxCore", stage: "executeUserTask", reset: true }),
|
|
2207
2519
|
errorHandler_1.ErrorHandlerMW,
|
|
2208
|
-
projectMigratorV3_1.ProjectMigratorMWV3,
|
|
2209
2520
|
(0, envMW_1.EnvLoaderMW)(false),
|
|
2210
2521
|
concurrentLocker_1.ConcurrentLockerMW,
|
|
2211
2522
|
]),
|
|
@@ -2217,7 +2528,6 @@ tslib_1.__decorate([
|
|
|
2217
2528
|
(0, hooks_1.hooks)([
|
|
2218
2529
|
(0, globalVars_1.ErrorContextMW)({ component: "FxCore", stage: "buildAadManifest", reset: true }),
|
|
2219
2530
|
errorHandler_1.ErrorHandlerMW,
|
|
2220
|
-
projectMigratorV3_1.ProjectMigratorMWV3,
|
|
2221
2531
|
(0, envMW_1.EnvLoaderMW)(false),
|
|
2222
2532
|
concurrentLocker_1.ConcurrentLockerMW,
|
|
2223
2533
|
]),
|
|
@@ -2239,7 +2549,6 @@ tslib_1.__decorate([
|
|
|
2239
2549
|
(0, hooks_1.hooks)([
|
|
2240
2550
|
(0, globalVars_1.ErrorContextMW)({ component: "FxCore", stage: "deployTeamsManifest", reset: true }),
|
|
2241
2551
|
errorHandler_1.ErrorHandlerMW,
|
|
2242
|
-
projectMigratorV3_1.ProjectMigratorMWV3,
|
|
2243
2552
|
(0, questionMW_1.QuestionMW)("selectTeamsAppManifest"),
|
|
2244
2553
|
(0, envMW_1.EnvLoaderMW)(true),
|
|
2245
2554
|
concurrentLocker_1.ConcurrentLockerMW,
|
|
@@ -2404,7 +2713,6 @@ tslib_1.__decorate([
|
|
|
2404
2713
|
(0, hooks_1.hooks)([
|
|
2405
2714
|
(0, globalVars_1.ErrorContextMW)({ component: "FxCore", stage: "grantPermission", reset: true }),
|
|
2406
2715
|
errorHandler_1.ErrorHandlerMW,
|
|
2407
|
-
projectMigratorV3_1.ProjectMigratorMWV3,
|
|
2408
2716
|
(0, questionMW_1.QuestionMW)("grantPermission"),
|
|
2409
2717
|
(0, envMW_1.EnvLoaderMW)(false, true),
|
|
2410
2718
|
concurrentLocker_1.ConcurrentLockerMW,
|
|
@@ -2418,7 +2726,6 @@ tslib_1.__decorate([
|
|
|
2418
2726
|
(0, hooks_1.hooks)([
|
|
2419
2727
|
(0, globalVars_1.ErrorContextMW)({ component: "FxCore", stage: "checkPermission", reset: true }),
|
|
2420
2728
|
errorHandler_1.ErrorHandlerMW,
|
|
2421
|
-
projectMigratorV3_1.ProjectMigratorMWV3,
|
|
2422
2729
|
(0, questionMW_1.QuestionMW)("listCollaborator"),
|
|
2423
2730
|
(0, envMW_1.EnvLoaderMW)(false, true),
|
|
2424
2731
|
concurrentLocker_1.ConcurrentLockerMW,
|
|
@@ -2432,7 +2739,6 @@ tslib_1.__decorate([
|
|
|
2432
2739
|
(0, hooks_1.hooks)([
|
|
2433
2740
|
(0, globalVars_1.ErrorContextMW)({ component: "FxCore", stage: "listCollaborator", reset: true }),
|
|
2434
2741
|
errorHandler_1.ErrorHandlerMW,
|
|
2435
|
-
projectMigratorV3_1.ProjectMigratorMWV3,
|
|
2436
2742
|
(0, questionMW_1.QuestionMW)("listCollaborator"),
|
|
2437
2743
|
(0, envMW_1.EnvLoaderMW)(false, true),
|
|
2438
2744
|
concurrentLocker_1.ConcurrentLockerMW,
|
|
@@ -2481,18 +2787,6 @@ tslib_1.__decorate([
|
|
|
2481
2787
|
tslib_1.__metadata("design:paramtypes", [Object]),
|
|
2482
2788
|
tslib_1.__metadata("design:returntype", Promise)
|
|
2483
2789
|
], FxCore.prototype, "createEnv", null);
|
|
2484
|
-
tslib_1.__decorate([
|
|
2485
|
-
(0, hooks_1.hooks)([(0, globalVars_1.ErrorContextMW)({ component: "FxCore", stage: "phantomMigrationV3", reset: true })]),
|
|
2486
|
-
tslib_1.__metadata("design:type", Function),
|
|
2487
|
-
tslib_1.__metadata("design:paramtypes", [Object]),
|
|
2488
|
-
tslib_1.__metadata("design:returntype", Promise)
|
|
2489
|
-
], FxCore.prototype, "phantomMigrationV3", null);
|
|
2490
|
-
tslib_1.__decorate([
|
|
2491
|
-
(0, hooks_1.hooks)([errorHandler_1.ErrorHandlerMW, projectMigratorV3_1.ProjectMigratorMWV3]),
|
|
2492
|
-
tslib_1.__metadata("design:type", Function),
|
|
2493
|
-
tslib_1.__metadata("design:paramtypes", [Object]),
|
|
2494
|
-
tslib_1.__metadata("design:returntype", Object)
|
|
2495
|
-
], FxCore.prototype, "innerMigrationV3", null);
|
|
2496
2790
|
tslib_1.__decorate([
|
|
2497
2791
|
(0, hooks_1.hooks)([
|
|
2498
2792
|
(0, globalVars_1.ErrorContextMW)({ component: "FxCore", stage: "projectVersionCheck", reset: true }),
|
|
@@ -2506,7 +2800,6 @@ tslib_1.__decorate([
|
|
|
2506
2800
|
(0, hooks_1.hooks)([
|
|
2507
2801
|
(0, globalVars_1.ErrorContextMW)({ component: "FxCore", stage: "preProvisionForVS" }),
|
|
2508
2802
|
errorHandler_1.ErrorHandlerMW,
|
|
2509
|
-
projectMigratorV3_1.ProjectMigratorMWV3,
|
|
2510
2803
|
(0, envMW_1.EnvLoaderMW)(false),
|
|
2511
2804
|
concurrentLocker_1.ConcurrentLockerMW,
|
|
2512
2805
|
contextInjector_1.ContextInjectorMW,
|
|
@@ -2519,7 +2812,6 @@ tslib_1.__decorate([
|
|
|
2519
2812
|
(0, hooks_1.hooks)([
|
|
2520
2813
|
(0, globalVars_1.ErrorContextMW)({ component: "FxCore", stage: "preCheckYmlAndEnvForVS" }),
|
|
2521
2814
|
errorHandler_1.ErrorHandlerMW,
|
|
2522
|
-
projectMigratorV3_1.ProjectMigratorMWV3,
|
|
2523
2815
|
(0, envMW_1.EnvLoaderMW)(false),
|
|
2524
2816
|
concurrentLocker_1.ConcurrentLockerMW,
|
|
2525
2817
|
contextInjector_1.ContextInjectorMW,
|
|
@@ -2606,6 +2898,17 @@ tslib_1.__decorate([
|
|
|
2606
2898
|
tslib_1.__metadata("design:paramtypes", [Object]),
|
|
2607
2899
|
tslib_1.__metadata("design:returntype", Promise)
|
|
2608
2900
|
], FxCore.prototype, "addKnowledge", null);
|
|
2901
|
+
tslib_1.__decorate([
|
|
2902
|
+
(0, hooks_1.hooks)([
|
|
2903
|
+
(0, globalVars_1.ErrorContextMW)({ component: "FxCore", stage: teamsfx_api_1.Stage.addSkill }),
|
|
2904
|
+
errorHandler_1.ErrorHandlerMW,
|
|
2905
|
+
(0, questionMW_1.QuestionMW)("addSkill"),
|
|
2906
|
+
concurrentLocker_1.ConcurrentLockerMW,
|
|
2907
|
+
]),
|
|
2908
|
+
tslib_1.__metadata("design:type", Function),
|
|
2909
|
+
tslib_1.__metadata("design:paramtypes", [Object]),
|
|
2910
|
+
tslib_1.__metadata("design:returntype", Promise)
|
|
2911
|
+
], FxCore.prototype, "addSkill", null);
|
|
2609
2912
|
tslib_1.__decorate([
|
|
2610
2913
|
(0, hooks_1.hooks)([
|
|
2611
2914
|
(0, globalVars_1.ErrorContextMW)({ component: "FxCore", stage: "getODSPItemDetails", reset: true }),
|