@microsoft/teamsfx-core 2.0.6-alpha.ae74bd5cd.0 → 2.0.6-alpha.b2e46f3b2.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/common/constants.d.ts +3 -2
- package/build/common/constants.d.ts.map +1 -1
- package/build/common/constants.js +3 -2
- package/build/common/constants.js.map +1 -1
- package/build/common/deps-checker/checkerFactory.d.ts.map +1 -1
- package/build/common/deps-checker/checkerFactory.js +3 -0
- package/build/common/deps-checker/checkerFactory.js.map +1 -1
- package/build/common/deps-checker/constant/telemetry.d.ts +1 -0
- package/build/common/deps-checker/constant/telemetry.d.ts.map +1 -1
- package/build/common/deps-checker/constant/telemetry.js +1 -0
- package/build/common/deps-checker/constant/telemetry.js.map +1 -1
- package/build/common/deps-checker/coreDepsLoggerAdapter.d.ts +17 -0
- package/build/common/deps-checker/coreDepsLoggerAdapter.d.ts.map +1 -0
- package/build/common/deps-checker/coreDepsLoggerAdapter.js +47 -0
- package/build/common/deps-checker/coreDepsLoggerAdapter.js.map +1 -0
- package/build/common/deps-checker/coreDepsTelemetryAdapter.d.ts +16 -0
- package/build/common/deps-checker/coreDepsTelemetryAdapter.d.ts.map +1 -0
- package/build/common/deps-checker/coreDepsTelemetryAdapter.js +53 -0
- package/build/common/deps-checker/coreDepsTelemetryAdapter.js.map +1 -0
- package/build/common/deps-checker/depsChecker.d.ts +6 -1
- package/build/common/deps-checker/depsChecker.d.ts.map +1 -1
- package/build/common/deps-checker/depsChecker.js +6 -1
- package/build/common/deps-checker/depsChecker.js.map +1 -1
- package/build/common/deps-checker/index.d.ts +2 -0
- package/build/common/deps-checker/index.d.ts.map +1 -1
- package/build/common/deps-checker/index.js +2 -0
- package/build/common/deps-checker/index.js.map +1 -1
- package/build/common/deps-checker/internal/funcToolChecker.d.ts +1 -1
- package/build/common/deps-checker/internal/funcToolChecker.d.ts.map +1 -1
- package/build/common/deps-checker/internal/funcToolChecker.js.map +1 -1
- package/build/common/deps-checker/internal/testToolChecker.d.ts +14 -3
- package/build/common/deps-checker/internal/testToolChecker.d.ts.map +1 -1
- package/build/common/deps-checker/internal/testToolChecker.js +178 -70
- package/build/common/deps-checker/internal/testToolChecker.js.map +1 -1
- package/build/common/deps-checker/internal/vxTestAppChecker.d.ts.map +1 -1
- package/build/common/deps-checker/internal/vxTestAppChecker.js +3 -45
- package/build/common/deps-checker/internal/vxTestAppChecker.js.map +1 -1
- package/build/common/deps-checker/util/downloadHelper.d.ts +15 -0
- package/build/common/deps-checker/util/downloadHelper.d.ts.map +1 -0
- package/build/common/deps-checker/util/downloadHelper.js +59 -0
- package/build/common/deps-checker/util/downloadHelper.js.map +1 -0
- package/build/common/featureFlags.d.ts +3 -3
- package/build/common/featureFlags.d.ts.map +1 -1
- package/build/common/featureFlags.js +11 -12
- package/build/common/featureFlags.js.map +1 -1
- package/build/common/local/constants.d.ts +1 -0
- package/build/common/local/constants.d.ts.map +1 -1
- package/build/common/local/constants.js +1 -0
- package/build/common/local/constants.js.map +1 -1
- package/build/common/local/localCertificateManager.d.ts +5 -4
- package/build/common/local/localCertificateManager.d.ts.map +1 -1
- package/build/common/local/localCertificateManager.js +9 -2
- package/build/common/local/localCertificateManager.js.map +1 -1
- package/build/common/local/packageJsonHelper.d.ts +0 -1
- package/build/common/local/packageJsonHelper.d.ts.map +1 -1
- package/build/common/local/packageJsonHelper.js +1 -29
- package/build/common/local/packageJsonHelper.js.map +1 -1
- package/build/common/m365/packageService.d.ts +1 -0
- package/build/common/m365/packageService.d.ts.map +1 -1
- package/build/common/m365/packageService.js +85 -7
- package/build/common/m365/packageService.js.map +1 -1
- package/build/common/projectTypeChecker.d.ts +38 -0
- package/build/common/projectTypeChecker.d.ts.map +1 -0
- package/build/common/projectTypeChecker.js +217 -0
- package/build/common/projectTypeChecker.js.map +1 -0
- package/build/common/samples.d.ts +13 -7
- package/build/common/samples.d.ts.map +1 -1
- package/build/common/samples.js +83 -49
- package/build/common/samples.js.map +1 -1
- package/build/common/spec-parser/adaptiveCardGenerator.d.ts.map +1 -1
- package/build/common/spec-parser/adaptiveCardGenerator.js +2 -4
- package/build/common/spec-parser/adaptiveCardGenerator.js.map +1 -1
- package/build/common/spec-parser/constants.d.ts +22 -13
- package/build/common/spec-parser/constants.d.ts.map +1 -1
- package/build/common/spec-parser/constants.js +22 -14
- package/build/common/spec-parser/constants.js.map +1 -1
- package/build/common/spec-parser/index.browser.d.ts +6 -0
- package/build/common/spec-parser/index.browser.d.ts.map +1 -0
- package/build/common/spec-parser/index.browser.js +16 -0
- package/build/common/spec-parser/index.browser.js.map +1 -0
- package/build/common/spec-parser/index.d.ts +5 -0
- package/build/common/spec-parser/index.d.ts.map +1 -0
- package/build/common/spec-parser/index.js +16 -0
- package/build/common/spec-parser/index.js.map +1 -0
- package/build/common/spec-parser/interfaces.d.ts +37 -3
- package/build/common/spec-parser/interfaces.d.ts.map +1 -1
- package/build/common/spec-parser/interfaces.js +3 -3
- package/build/common/spec-parser/interfaces.js.map +1 -1
- package/build/common/spec-parser/manifestUpdater.d.ts +4 -4
- package/build/common/spec-parser/manifestUpdater.d.ts.map +1 -1
- package/build/common/spec-parser/manifestUpdater.js +49 -110
- package/build/common/spec-parser/manifestUpdater.js.map +1 -1
- package/build/common/spec-parser/specFilter.d.ts +1 -1
- package/build/common/spec-parser/specFilter.d.ts.map +1 -1
- package/build/common/spec-parser/specFilter.js +2 -2
- package/build/common/spec-parser/specFilter.js.map +1 -1
- package/build/common/spec-parser/specParser.browser.d.ts +46 -0
- package/build/common/spec-parser/specParser.browser.d.ts.map +1 -0
- package/build/common/spec-parser/specParser.browser.js +139 -0
- package/build/common/spec-parser/specParser.browser.js.map +1 -0
- package/build/common/spec-parser/specParser.d.ts +11 -11
- package/build/common/spec-parser/specParser.d.ts.map +1 -1
- package/build/common/spec-parser/specParser.js +100 -113
- package/build/common/spec-parser/specParser.js.map +1 -1
- package/build/common/spec-parser/utils.d.ts +18 -5
- package/build/common/spec-parser/utils.d.ts.map +1 -1
- package/build/common/spec-parser/utils.js +304 -41
- package/build/common/spec-parser/utils.js.map +1 -1
- package/build/common/telemetry.d.ts +23 -2
- package/build/common/telemetry.d.ts.map +1 -1
- package/build/common/telemetry.js +40 -1
- package/build/common/telemetry.js.map +1 -1
- package/build/common/templates-config.json +2 -2
- package/build/common/tools.d.ts.map +1 -1
- package/build/common/tools.js +1 -1
- package/build/common/tools.js.map +1 -1
- package/build/component/configManager/validator.d.ts.map +1 -1
- package/build/component/configManager/validator.js +2 -3
- package/build/component/configManager/validator.js.map +1 -1
- package/build/component/coordinator/index.d.ts +2 -1
- package/build/component/coordinator/index.d.ts.map +1 -1
- package/build/component/coordinator/index.js +3 -1
- package/build/component/coordinator/index.js.map +1 -1
- package/build/component/developerPortalScaffoldUtils.d.ts.map +1 -1
- package/build/component/developerPortalScaffoldUtils.js +32 -0
- package/build/component/developerPortalScaffoldUtils.js.map +1 -1
- package/build/component/driver/aad/create.js +1 -1
- package/build/component/driver/aad/create.js.map +1 -1
- package/build/component/driver/aad/error/invalidFieldInManifestError.js +1 -1
- package/build/component/driver/aad/error/invalidFieldInManifestError.js.map +1 -1
- package/build/component/driver/aad/permissions/index.d.ts +3 -0
- package/build/component/driver/aad/permissions/index.d.ts.map +1 -1
- package/build/component/driver/aad/permissions/index.js +34 -1
- package/build/component/driver/aad/permissions/index.js.map +1 -1
- package/build/component/driver/aad/permissions/permissions.json +42 -42
- package/build/component/driver/aad/update.d.ts +1 -0
- package/build/component/driver/aad/update.d.ts.map +1 -1
- package/build/component/driver/aad/update.js +19 -17
- package/build/component/driver/aad/update.js.map +1 -1
- package/build/component/driver/aad/utility/aadAppClient.d.ts.map +1 -1
- package/build/component/driver/aad/utility/aadAppClient.js +9 -9
- package/build/component/driver/aad/utility/aadAppClient.js.map +1 -1
- package/build/component/driver/aad/utility/constants.js +1 -1
- package/build/component/driver/aad/utility/constants.js.map +1 -1
- package/build/component/driver/apiKey/create.d.ts +17 -0
- package/build/component/driver/apiKey/create.d.ts.map +1 -0
- package/build/component/driver/apiKey/create.js +228 -0
- package/build/component/driver/apiKey/create.js.map +1 -0
- package/build/component/driver/apiKey/error/apiKeyClientSecretInvalid.d.ts +5 -0
- package/build/component/driver/apiKey/error/apiKeyClientSecretInvalid.d.ts.map +1 -0
- package/build/component/driver/apiKey/error/apiKeyClientSecretInvalid.js +22 -0
- package/build/component/driver/apiKey/error/apiKeyClientSecretInvalid.js.map +1 -0
- package/build/component/driver/apiKey/error/apiKeyDomainInvalid.d.ts +5 -0
- package/build/component/driver/apiKey/error/apiKeyDomainInvalid.d.ts.map +1 -0
- package/build/component/driver/apiKey/error/apiKeyDomainInvalid.js +22 -0
- package/build/component/driver/apiKey/error/apiKeyDomainInvalid.js.map +1 -0
- package/build/component/driver/apiKey/error/apiKeyFailedToGetDomain.d.ts +5 -0
- package/build/component/driver/apiKey/error/apiKeyFailedToGetDomain.d.ts.map +1 -0
- package/build/component/driver/apiKey/error/apiKeyFailedToGetDomain.js +21 -0
- package/build/component/driver/apiKey/error/apiKeyFailedToGetDomain.js.map +1 -0
- package/build/component/driver/apiKey/error/apiKeyNameTooLong.d.ts +5 -0
- package/build/component/driver/apiKey/error/apiKeyNameTooLong.d.ts.map +1 -0
- package/build/component/driver/apiKey/error/apiKeyNameTooLong.js +21 -0
- package/build/component/driver/apiKey/error/apiKeyNameTooLong.js.map +1 -0
- package/build/component/driver/apiKey/interface/createApiKeyArgs.d.ts +7 -0
- package/build/component/driver/apiKey/interface/createApiKeyArgs.d.ts.map +1 -0
- package/build/component/driver/apiKey/interface/createApiKeyArgs.js +5 -0
- package/build/component/driver/apiKey/interface/createApiKeyArgs.js.map +1 -0
- package/build/component/driver/apiKey/interface/createApiKeyOutputs.d.ts +7 -0
- package/build/component/driver/apiKey/interface/createApiKeyOutputs.d.ts.map +1 -0
- package/build/component/driver/apiKey/interface/createApiKeyOutputs.js +10 -0
- package/build/component/driver/apiKey/interface/createApiKeyOutputs.js.map +1 -0
- package/build/component/driver/apiKey/utility/constants.d.ts +10 -0
- package/build/component/driver/apiKey/utility/constants.d.ts.map +1 -0
- package/build/component/driver/apiKey/utility/constants.js +15 -0
- package/build/component/driver/apiKey/utility/constants.js.map +1 -0
- package/build/component/driver/deploy/azure/impl/AzureZipDeployImpl.d.ts +3 -2
- package/build/component/driver/deploy/azure/impl/AzureZipDeployImpl.d.ts.map +1 -1
- package/build/component/driver/deploy/azure/impl/AzureZipDeployImpl.js +5 -1
- package/build/component/driver/deploy/azure/impl/AzureZipDeployImpl.js.map +1 -1
- package/build/component/driver/deploy/azure/impl/azureDeployImpl.d.ts +5 -0
- package/build/component/driver/deploy/azure/impl/azureDeployImpl.d.ts.map +1 -1
- package/build/component/driver/deploy/azure/impl/azureDeployImpl.js +27 -6
- package/build/component/driver/deploy/azure/impl/azureDeployImpl.js.map +1 -1
- package/build/component/driver/devTool/installDriver.d.ts +2 -1
- package/build/component/driver/devTool/installDriver.d.ts.map +1 -1
- package/build/component/driver/devTool/installDriver.js +5 -2
- package/build/component/driver/devTool/installDriver.js.map +1 -1
- package/build/component/driver/index.d.ts +1 -0
- package/build/component/driver/index.d.ts.map +1 -1
- package/build/component/driver/index.js +1 -0
- package/build/component/driver/index.js.map +1 -1
- package/build/component/driver/script/scriptDriver.d.ts +12 -7
- package/build/component/driver/script/scriptDriver.d.ts.map +1 -1
- package/build/component/driver/script/scriptDriver.js +52 -23
- package/build/component/driver/script/scriptDriver.js.map +1 -1
- package/build/component/driver/teamsApp/clients/appStudioClient.d.ts +13 -0
- package/build/component/driver/teamsApp/clients/appStudioClient.d.ts.map +1 -1
- package/build/component/driver/teamsApp/clients/appStudioClient.js +38 -0
- package/build/component/driver/teamsApp/clients/appStudioClient.js.map +1 -1
- package/build/component/driver/teamsApp/constants.d.ts +2 -0
- package/build/component/driver/teamsApp/constants.d.ts.map +1 -1
- package/build/component/driver/teamsApp/constants.js +2 -0
- package/build/component/driver/teamsApp/constants.js.map +1 -1
- package/build/component/driver/teamsApp/createAppPackage.d.ts.map +1 -1
- package/build/component/driver/teamsApp/createAppPackage.js +26 -6
- package/build/component/driver/teamsApp/createAppPackage.js.map +1 -1
- package/build/component/driver/teamsApp/interfaces/ApiSecretRegistration.d.ts +44 -0
- package/build/component/driver/teamsApp/interfaces/ApiSecretRegistration.d.ts.map +1 -0
- package/build/component/driver/teamsApp/interfaces/ApiSecretRegistration.js +21 -0
- package/build/component/driver/teamsApp/interfaces/ApiSecretRegistration.js.map +1 -0
- package/build/component/driver/teamsApp/interfaces/ApiSecretRegistrationClientSecret.d.ts +15 -0
- package/build/component/driver/teamsApp/interfaces/ApiSecretRegistrationClientSecret.d.ts.map +1 -0
- package/build/component/driver/teamsApp/interfaces/ApiSecretRegistrationClientSecret.js +5 -0
- package/build/component/driver/teamsApp/interfaces/ApiSecretRegistrationClientSecret.js.map +1 -0
- package/build/component/driver/teamsApp/interfaces/appdefinitions/IValidationResult.d.ts +1 -1
- package/build/component/driver/teamsApp/interfaces/appdefinitions/IValidationResult.d.ts.map +1 -1
- package/build/component/driver/teamsApp/publishAppPackage.d.ts +1 -0
- package/build/component/driver/teamsApp/publishAppPackage.d.ts.map +1 -1
- package/build/component/driver/teamsApp/publishAppPackage.js +9 -9
- package/build/component/driver/teamsApp/publishAppPackage.js.map +1 -1
- package/build/component/driver/teamsApp/teamsappMgr.d.ts +20 -0
- package/build/component/driver/teamsApp/teamsappMgr.d.ts.map +1 -0
- package/build/component/driver/teamsApp/teamsappMgr.js +278 -0
- package/build/component/driver/teamsApp/teamsappMgr.js.map +1 -0
- package/build/component/driver/teamsApp/validate.d.ts.map +1 -1
- package/build/component/driver/teamsApp/validate.js +7 -2
- package/build/component/driver/teamsApp/validate.js.map +1 -1
- package/build/component/driver/teamsApp/validateAppPackage.d.ts.map +1 -1
- package/build/component/driver/teamsApp/validateAppPackage.js +49 -15
- package/build/component/driver/teamsApp/validateAppPackage.js.map +1 -1
- package/build/component/generator/copilotPlugin/generator.d.ts.map +1 -1
- package/build/component/generator/copilotPlugin/generator.js +47 -30
- package/build/component/generator/copilotPlugin/generator.js.map +1 -1
- package/build/component/generator/copilotPlugin/helper.d.ts +4 -2
- package/build/component/generator/copilotPlugin/helper.d.ts.map +1 -1
- package/build/component/generator/copilotPlugin/helper.js +105 -20
- package/build/component/generator/copilotPlugin/helper.js.map +1 -1
- package/build/component/generator/error.d.ts +5 -8
- package/build/component/generator/error.d.ts.map +1 -1
- package/build/component/generator/error.js +16 -16
- package/build/component/generator/error.js.map +1 -1
- package/build/component/generator/generator.d.ts +5 -1
- package/build/component/generator/generator.d.ts.map +1 -1
- package/build/component/generator/generator.js +26 -27
- package/build/component/generator/generator.js.map +1 -1
- package/build/component/generator/generatorAction.d.ts +6 -1
- package/build/component/generator/generatorAction.d.ts.map +1 -1
- package/build/component/generator/generatorAction.js +30 -12
- package/build/component/generator/generatorAction.js.map +1 -1
- package/build/component/generator/officeAddin/helperMethods.js +21 -20
- package/build/component/generator/officeAddin/helperMethods.js.map +1 -1
- package/build/component/generator/spfx/spfxGenerator.d.ts.map +1 -1
- package/build/component/generator/spfx/spfxGenerator.js +7 -0
- package/build/component/generator/spfx/spfxGenerator.js.map +1 -1
- package/build/component/generator/spfx/utils/constants.d.ts +1 -14
- package/build/component/generator/spfx/utils/constants.d.ts.map +1 -1
- package/build/component/generator/spfx/utils/constants.js +1 -14
- package/build/component/generator/spfx/utils/constants.js.map +1 -1
- package/build/component/generator/utils.d.ts +7 -5
- package/build/component/generator/utils.d.ts.map +1 -1
- package/build/component/generator/utils.js +35 -16
- package/build/component/generator/utils.js.map +1 -1
- package/build/component/middleware/questionMW.d.ts +1 -1
- package/build/component/middleware/questionMW.d.ts.map +1 -1
- package/build/component/middleware/questionMW.js +4 -1
- package/build/component/middleware/questionMW.js.map +1 -1
- package/build/component/utils/ResourceGroupHelper.d.ts +1 -0
- package/build/component/utils/ResourceGroupHelper.d.ts.map +1 -1
- package/build/component/utils/ResourceGroupHelper.js +31 -1
- package/build/component/utils/ResourceGroupHelper.js.map +1 -1
- package/build/component/utils/common.d.ts +3 -1
- package/build/component/utils/common.d.ts.map +1 -1
- package/build/component/utils/common.js +2 -2
- package/build/component/utils/common.js.map +1 -1
- package/build/component/utils/envUtil.d.ts +1 -0
- package/build/component/utils/envUtil.d.ts.map +1 -1
- package/build/component/utils/envUtil.js +6 -1
- package/build/component/utils/envUtil.js.map +1 -1
- package/build/component/utils/fileOperation.d.ts +1 -1
- package/build/component/utils/fileOperation.d.ts.map +1 -1
- package/build/component/utils/fileOperation.js +34 -48
- package/build/component/utils/fileOperation.js.map +1 -1
- package/build/component/utils/metadataGraphPermssion.d.ts +16 -0
- package/build/component/utils/metadataGraphPermssion.d.ts.map +1 -0
- package/build/component/utils/metadataGraphPermssion.js +96 -0
- package/build/component/utils/metadataGraphPermssion.js.map +1 -0
- package/build/component/utils/metadataUtil.d.ts.map +1 -1
- package/build/component/utils/metadataUtil.js +2 -0
- package/build/component/utils/metadataUtil.js.map +1 -1
- package/build/core/FxCore.d.ts +24 -1
- package/build/core/FxCore.d.ts.map +1 -1
- package/build/core/FxCore.js +189 -25
- package/build/core/FxCore.js.map +1 -1
- package/build/core/middleware/projectMigratorV3.d.ts +1 -1
- package/build/core/middleware/projectMigratorV3.d.ts.map +1 -1
- package/build/core/middleware/projectMigratorV3.js +11 -10
- package/build/core/middleware/projectMigratorV3.js.map +1 -1
- package/build/core/middleware/projectVersionChecker.js +4 -4
- package/build/core/middleware/projectVersionChecker.js.map +1 -1
- package/build/core/middleware/utils/debug/taskMigrator.js +1 -1
- package/build/error/common.d.ts +9 -0
- package/build/error/common.d.ts.map +1 -1
- package/build/error/common.js +34 -1
- package/build/error/common.js.map +1 -1
- package/build/error/deploy.d.ts +6 -0
- package/build/error/deploy.d.ts.map +1 -1
- package/build/error/deploy.js +25 -1
- package/build/error/deploy.js.map +1 -1
- package/build/error/teamsApp.d.ts +4 -1
- package/build/error/teamsApp.d.ts.map +1 -1
- package/build/error/teamsApp.js +13 -1
- package/build/error/teamsApp.js.map +1 -1
- package/build/index.d.ts +4 -0
- package/build/index.d.ts.map +1 -1
- package/build/index.js +8 -1
- package/build/index.js.map +1 -1
- package/build/question/create.d.ts +2 -1
- package/build/question/create.d.ts.map +1 -1
- package/build/question/create.js +78 -24
- package/build/question/create.js.map +1 -1
- package/build/question/generator.js +1 -3
- package/build/question/generator.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/CreateProjectInputs.d.ts +1 -1
- package/build/question/inputs/CreateProjectInputs.d.ts.map +1 -1
- package/build/question/inputs/DeployAadManifestInputs.d.ts +1 -1
- package/build/question/inputs/DeployAadManifestInputs.d.ts.map +1 -1
- package/build/question/inputs/PermissionGrantInputs.d.ts +2 -2
- package/build/question/inputs/PermissionGrantInputs.d.ts.map +1 -1
- package/build/question/inputs/PermissionListInputs.d.ts +1 -1
- package/build/question/inputs/PermissionListInputs.d.ts.map +1 -1
- package/build/question/inputs/SPFxAddWebpartInputs.d.ts +2 -0
- package/build/question/inputs/SPFxAddWebpartInputs.d.ts.map +1 -1
- package/build/question/options/CreateProjectOptions.d.ts.map +1 -1
- package/build/question/options/CreateProjectOptions.js +2 -1
- package/build/question/options/CreateProjectOptions.js.map +1 -1
- package/build/question/options/CreateSampleProjectOptions.d.ts.map +1 -1
- package/build/question/options/CreateSampleProjectOptions.js +5 -1
- package/build/question/options/CreateSampleProjectOptions.js.map +1 -1
- package/build/question/options/DeployAadManifestOptions.js +2 -2
- package/build/question/options/DeployAadManifestOptions.js.map +1 -1
- package/build/question/options/PermissionGrantOptions.js +2 -2
- package/build/question/options/PermissionGrantOptions.js.map +1 -1
- package/build/question/options/PermissionListOptions.js +2 -2
- package/build/question/options/PermissionListOptions.js.map +1 -1
- package/build/question/options/SPFxAddWebpartOptions.d.ts.map +1 -1
- package/build/question/options/SPFxAddWebpartOptions.js +9 -0
- package/build/question/options/SPFxAddWebpartOptions.js.map +1 -1
- package/build/question/other.d.ts +3 -1
- package/build/question/other.d.ts.map +1 -1
- package/build/question/other.js +83 -7
- package/build/question/other.js.map +1 -1
- package/build/question/questionNames.d.ts +2 -0
- package/build/question/questionNames.d.ts.map +1 -1
- package/build/question/questionNames.js +2 -0
- package/build/question/questionNames.js.map +1 -1
- package/build/ui/visitor.d.ts.map +1 -1
- package/build/ui/visitor.js +11 -2
- package/build/ui/visitor.js.map +1 -1
- package/package.json +16 -23
- package/resource/package.nls.json +74 -51
- package/resource/yaml-schema/v1.3/yaml.schema.json +81 -35
- package/templates/core/v3Migration/csharp.app.local.yml +6 -6
- package/templates/core/v3Migration/csharp.app.yml +6 -6
- package/templates/core/v3Migration/js.ts.app.local.yml +11 -11
- package/templates/core/v3Migration/js.ts.app.yml +12 -12
- package/templates/fallback/common.zip +0 -0
- package/templates/fallback/csharp.zip +0 -0
- package/templates/fallback/js.zip +0 -0
- package/templates/fallback/ts.zip +0 -0
- package/templates/plugins/resource/aad/auth/V3/Bot/Pages/BotAuthorizeEndPage.cshtml +55 -51
- package/templates/plugins/resource/aad/auth/V3/Enable SSO.txt +2 -2
- package/templates/plugins/resource/aad/auth/bot/README.md +13 -13
- package/templates/plugins/resource/aad/auth/bot/README.txt +7 -7
- package/templates/plugins/resource/aad/auth/bot/csharp/Pages/BotAuthorizeEndPage.cshtml +55 -51
- package/templates/plugins/resource/aad/auth/bot/js/public/auth-end.html +6 -2
- package/templates/plugins/resource/aad/auth/bot/ts/public/auth-end.html +5 -1
- package/templates/plugins/resource/aad/auth/tab/README.md +6 -6
- package/templates/plugins/resource/aad/auth/tab/README.txt +5 -5
- package/templates/plugins/resource/aad/auth/tab/js/public/auth-end.html +16 -9
- package/templates/plugins/resource/aad/auth/tab/js/public/auth-start.html +11 -7
- package/templates/plugins/resource/aad/auth/tab/js/sso/GetUserProfile.jsx +1 -1
- package/templates/plugins/resource/aad/auth/tab/ts/public/auth-end.html +16 -9
- package/templates/plugins/resource/aad/auth/tab/ts/public/auth-start.html +11 -7
- package/templates/plugins/resource/aad/auth/tab/ts/sso/GetUserProfile.tsx +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"specFilter.js","sourceRoot":"","sources":["../../../src/common/spec-parser/specFilter.ts"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,kCAAkC;AAClC,YAAY,CAAC;;;AAGb,mCAAiE;AACjE,uDAAoD;AACpD,6CAAyC;AACzC,2CAA6C;AAE7C,SAAgB,UAAU,CACxB,MAAgB,EAChB,aAAiC,EACjC,YAAgC;
|
|
1
|
+
{"version":3,"file":"specFilter.js","sourceRoot":"","sources":["../../../src/common/spec-parser/specFilter.ts"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,kCAAkC;AAClC,YAAY,CAAC;;;AAGb,mCAAiE;AACjE,uDAAoD;AACpD,6CAAyC;AACzC,2CAA6C;AAE7C,SAAgB,UAAU,CACxB,MAAgB,EAChB,aAAiC,EACjC,YAAgC,EAChC,cAAuB,EACvB,eAAwB,EACxB,uBAAgC,EAChC,WAAoB;IAEpB,IAAI;QACF,MAAM,OAAO,qBAAQ,aAAa,CAAE,CAAC;QACrC,MAAM,QAAQ,GAA0B,EAAE,CAAC;QAC3C,KAAK,MAAM,UAAU,IAAI,MAAM,EAAE;YAC/B,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,GAAG,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YAC7C,MAAM,UAAU,GAAG,MAAM,CAAC,WAAW,EAAE,CAAC;YAExC,IACE,CAAC,sBAAc,CACb,UAAU,EACV,IAAI,EACJ,YAAY,EACZ,cAAc,EACd,eAAe,EACf,uBAAuB,EACvB,WAAW,CACZ,EACD;gBACA,SAAS;aACV;YAED,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE;gBACnB,QAAQ,CAAC,IAAI,CAAC,qBAAQ,aAAa,CAAC,KAAK,CAAC,IAAI,CAAC,CAAE,CAAC;gBAClD,KAAK,MAAM,CAAC,IAAI,0BAAc,CAAC,mBAAmB,EAAE;oBAClD,OAAQ,QAAQ,CAAC,IAAI,CAAS,CAAC,CAAC,CAAC,CAAC;iBACnC;aACF;YAEA,QAAQ,CAAC,IAAI,CAAS,CAAC,UAAU,CAAC,GAAI,aAAa,CAAC,KAAK,CAAC,IAAI,CAAS,CAAC,UAAU,CAAC,CAAC;YAErF,iCAAiC;YACjC,IAAI,CAAE,QAAQ,CAAC,IAAI,CAAS,CAAC,UAAU,CAAC,CAAC,WAAW,EAAE;gBACnD,QAAQ,CAAC,IAAI,CAAS,CAAC,UAAU,CAAC,CAAC,WAAW,GAAG,GAAG,UAAU,GAAG,8BAAsB,CACtF,IAAI,CACL,EAAE,CAAC;aACL;SACF;QAED,OAAO,CAAC,KAAK,GAAG,QAAQ,CAAC;QACzB,OAAO,OAAO,CAAC;KAChB;IAAC,OAAO,GAAG,EAAE;QACZ,MAAM,IAAI,iCAAe,CAAE,GAAa,CAAC,QAAQ,EAAE,EAAE,sBAAS,CAAC,gBAAgB,CAAC,CAAC;KAClF;AACH,CAAC;AApDD,gCAoDC"}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import SwaggerParser from "@apidevtools/swagger-parser";
|
|
2
|
+
import { OpenAPIV3 } from "openapi-types";
|
|
3
|
+
import { APIInfo, GenerateResult, ParseOptions, ValidateResult, ListAPIResult } from "./interfaces";
|
|
4
|
+
/**
|
|
5
|
+
* A class that parses an OpenAPI specification file and provides methods to validate, list, and generate artifacts.
|
|
6
|
+
*/
|
|
7
|
+
export declare class SpecParser {
|
|
8
|
+
readonly pathOrSpec: string | OpenAPIV3.Document;
|
|
9
|
+
readonly parser: SwaggerParser;
|
|
10
|
+
readonly options: Required<ParseOptions>;
|
|
11
|
+
private apiMap;
|
|
12
|
+
private spec;
|
|
13
|
+
private unResolveSpec;
|
|
14
|
+
private isSwaggerFile;
|
|
15
|
+
private defaultOptions;
|
|
16
|
+
/**
|
|
17
|
+
* Creates a new instance of the SpecParser class.
|
|
18
|
+
* @param pathOrDoc The path to the OpenAPI specification file or the OpenAPI specification object.
|
|
19
|
+
* @param options The options for parsing the OpenAPI specification file.
|
|
20
|
+
*/
|
|
21
|
+
constructor(pathOrDoc: string | OpenAPIV3.Document, options?: ParseOptions);
|
|
22
|
+
/**
|
|
23
|
+
* Validates the OpenAPI specification file and returns a validation result.
|
|
24
|
+
*
|
|
25
|
+
* @returns A validation result object that contains information about any errors or warnings in the specification file.
|
|
26
|
+
*/
|
|
27
|
+
validate(): Promise<ValidateResult>;
|
|
28
|
+
listSupportedAPIInfo(): Promise<APIInfo[]>;
|
|
29
|
+
/**
|
|
30
|
+
* Lists all the OpenAPI operations in the specification file.
|
|
31
|
+
* @returns A string array that represents the HTTP method and path of each operation, such as ['GET /pets/{petId}', 'GET /user/{userId}']
|
|
32
|
+
* according to copilot plugin spec, only list get and post method without auth
|
|
33
|
+
*/
|
|
34
|
+
list(): Promise<ListAPIResult[]>;
|
|
35
|
+
/**
|
|
36
|
+
* Generates and update artifacts from the OpenAPI specification file. Generate Adaptive Cards, update Teams app manifest, and generate a new OpenAPI specification file.
|
|
37
|
+
* @param manifestPath A file path of the Teams app manifest file to update.
|
|
38
|
+
* @param filter An array of strings that represent the filters to apply when generating the artifacts. If filter is empty, it would process nothing.
|
|
39
|
+
* @param outputSpecPath File path of the new OpenAPI specification file to generate. If not specified or empty, no spec file will be generated.
|
|
40
|
+
* @param adaptiveCardFolder Folder path where the Adaptive Card files will be generated. If not specified or empty, Adaptive Card files will not be generated.
|
|
41
|
+
*/
|
|
42
|
+
generate(manifestPath: string, filter: string[], outputSpecPath: string, adaptiveCardFolder: string, signal?: AbortSignal): Promise<GenerateResult>;
|
|
43
|
+
private loadSpec;
|
|
44
|
+
private getAllSupportedAPIs;
|
|
45
|
+
}
|
|
46
|
+
//# sourceMappingURL=specParser.browser.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"specParser.browser.d.ts","sourceRoot":"","sources":["../../../src/common/spec-parser/specParser.browser.ts"],"names":[],"mappings":"AAIA,OAAO,aAAa,MAAM,6BAA6B,CAAC;AACxD,OAAO,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAC1C,OAAO,EACL,OAAO,EAEP,cAAc,EACd,YAAY,EACZ,cAAc,EAGd,aAAa,EACd,MAAM,cAAc,CAAC;AAKtB;;GAEG;AACH,qBAAa,UAAU;IACrB,SAAgB,UAAU,EAAE,MAAM,GAAG,SAAS,CAAC,QAAQ,CAAC;IACxD,SAAgB,MAAM,EAAE,aAAa,CAAC;IACtC,SAAgB,OAAO,EAAE,QAAQ,CAAC,YAAY,CAAC,CAAC;IAEhD,OAAO,CAAC,MAAM,CAA0D;IACxE,OAAO,CAAC,IAAI,CAAiC;IAC7C,OAAO,CAAC,aAAa,CAAiC;IACtD,OAAO,CAAC,aAAa,CAAsB;IAE3C,OAAO,CAAC,cAAc,CAMpB;IAEF;;;;OAIG;gBACS,SAAS,EAAE,MAAM,GAAG,SAAS,CAAC,QAAQ,EAAE,OAAO,CAAC,EAAE,YAAY;IAS1E;;;;OAIG;IACG,QAAQ,IAAI,OAAO,CAAC,cAAc,CAAC;IAqCnC,oBAAoB,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;IA0ChD;;;;OAIG;IAEG,IAAI,IAAI,OAAO,CAAC,aAAa,EAAE,CAAC;IAItC;;;;;;OAMG;IAEG,QAAQ,CACZ,YAAY,EAAE,MAAM,EACpB,MAAM,EAAE,MAAM,EAAE,EAChB,cAAc,EAAE,MAAM,EACtB,kBAAkB,EAAE,MAAM,EAC1B,MAAM,CAAC,EAAE,WAAW,GACnB,OAAO,CAAC,cAAc,CAAC;YAIZ,QAAQ;IAYtB,OAAO,CAAC,mBAAmB;CAgB5B"}
|
|
@@ -0,0 +1,139 @@
|
|
|
1
|
+
// Copyright (c) Microsoft Corporation.
|
|
2
|
+
// Licensed under the MIT license.
|
|
3
|
+
"use strict";
|
|
4
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
5
|
+
exports.SpecParser = void 0;
|
|
6
|
+
const tslib_1 = require("tslib");
|
|
7
|
+
const swagger_parser_1 = tslib_1.__importDefault(require("@apidevtools/swagger-parser"));
|
|
8
|
+
const interfaces_1 = require("./interfaces");
|
|
9
|
+
const specParserError_1 = require("./specParserError");
|
|
10
|
+
const utils_1 = require("./utils");
|
|
11
|
+
const constants_1 = require("./constants");
|
|
12
|
+
/**
|
|
13
|
+
* A class that parses an OpenAPI specification file and provides methods to validate, list, and generate artifacts.
|
|
14
|
+
*/
|
|
15
|
+
class SpecParser {
|
|
16
|
+
/**
|
|
17
|
+
* Creates a new instance of the SpecParser class.
|
|
18
|
+
* @param pathOrDoc The path to the OpenAPI specification file or the OpenAPI specification object.
|
|
19
|
+
* @param options The options for parsing the OpenAPI specification file.
|
|
20
|
+
*/
|
|
21
|
+
constructor(pathOrDoc, options) {
|
|
22
|
+
this.defaultOptions = {
|
|
23
|
+
allowMissingId: false,
|
|
24
|
+
allowSwagger: false,
|
|
25
|
+
allowAPIKeyAuth: false,
|
|
26
|
+
allowMultipleParameters: false,
|
|
27
|
+
allowOauth2: false,
|
|
28
|
+
};
|
|
29
|
+
this.pathOrSpec = pathOrDoc;
|
|
30
|
+
this.parser = new swagger_parser_1.default();
|
|
31
|
+
this.options = Object.assign(Object.assign({}, this.defaultOptions), (options !== null && options !== void 0 ? options : {}));
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* Validates the OpenAPI specification file and returns a validation result.
|
|
35
|
+
*
|
|
36
|
+
* @returns A validation result object that contains information about any errors or warnings in the specification file.
|
|
37
|
+
*/
|
|
38
|
+
async validate() {
|
|
39
|
+
try {
|
|
40
|
+
try {
|
|
41
|
+
await this.loadSpec();
|
|
42
|
+
await this.parser.validate(this.spec);
|
|
43
|
+
}
|
|
44
|
+
catch (e) {
|
|
45
|
+
return {
|
|
46
|
+
status: interfaces_1.ValidationStatus.Error,
|
|
47
|
+
warnings: [],
|
|
48
|
+
errors: [{ type: interfaces_1.ErrorType.SpecNotValid, content: e.toString() }],
|
|
49
|
+
};
|
|
50
|
+
}
|
|
51
|
+
if (!this.options.allowSwagger && this.isSwaggerFile) {
|
|
52
|
+
return {
|
|
53
|
+
status: interfaces_1.ValidationStatus.Error,
|
|
54
|
+
warnings: [],
|
|
55
|
+
errors: [
|
|
56
|
+
{ type: interfaces_1.ErrorType.SwaggerNotSupported, content: constants_1.ConstantString.SwaggerNotSupported },
|
|
57
|
+
],
|
|
58
|
+
};
|
|
59
|
+
}
|
|
60
|
+
return utils_1.validateSpec(this.spec, this.parser, !!this.isSwaggerFile, this.options.allowMissingId, this.options.allowAPIKeyAuth, this.options.allowMultipleParameters, this.options.allowOauth2);
|
|
61
|
+
}
|
|
62
|
+
catch (err) {
|
|
63
|
+
throw new specParserError_1.SpecParserError(err.toString(), interfaces_1.ErrorType.ValidateFailed);
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
async listSupportedAPIInfo() {
|
|
67
|
+
try {
|
|
68
|
+
await this.loadSpec();
|
|
69
|
+
const apiMap = this.getAllSupportedAPIs(this.spec);
|
|
70
|
+
const apiInfos = [];
|
|
71
|
+
for (const key in apiMap) {
|
|
72
|
+
const pathObjectItem = apiMap[key];
|
|
73
|
+
const [method, path] = key.split(" ");
|
|
74
|
+
const operationId = pathObjectItem.operationId;
|
|
75
|
+
// In Browser environment, this api is by default not support api without operationId
|
|
76
|
+
if (!operationId) {
|
|
77
|
+
continue;
|
|
78
|
+
}
|
|
79
|
+
const [command, warning] = utils_1.parseApiInfo(pathObjectItem, this.options.allowMultipleParameters);
|
|
80
|
+
const apiInfo = {
|
|
81
|
+
method: method,
|
|
82
|
+
path: path,
|
|
83
|
+
title: command.title,
|
|
84
|
+
id: operationId,
|
|
85
|
+
parameters: command.parameters,
|
|
86
|
+
description: command.description,
|
|
87
|
+
};
|
|
88
|
+
if (warning) {
|
|
89
|
+
apiInfo.warning = warning;
|
|
90
|
+
}
|
|
91
|
+
apiInfos.push(apiInfo);
|
|
92
|
+
}
|
|
93
|
+
return apiInfos;
|
|
94
|
+
}
|
|
95
|
+
catch (err) {
|
|
96
|
+
throw new specParserError_1.SpecParserError(err.toString(), interfaces_1.ErrorType.listSupportedAPIInfoFailed);
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
/**
|
|
100
|
+
* Lists all the OpenAPI operations in the specification file.
|
|
101
|
+
* @returns A string array that represents the HTTP method and path of each operation, such as ['GET /pets/{petId}', 'GET /user/{userId}']
|
|
102
|
+
* according to copilot plugin spec, only list get and post method without auth
|
|
103
|
+
*/
|
|
104
|
+
// eslint-disable-next-line @typescript-eslint/require-await
|
|
105
|
+
async list() {
|
|
106
|
+
throw new Error("Method not implemented.");
|
|
107
|
+
}
|
|
108
|
+
/**
|
|
109
|
+
* Generates and update artifacts from the OpenAPI specification file. Generate Adaptive Cards, update Teams app manifest, and generate a new OpenAPI specification file.
|
|
110
|
+
* @param manifestPath A file path of the Teams app manifest file to update.
|
|
111
|
+
* @param filter An array of strings that represent the filters to apply when generating the artifacts. If filter is empty, it would process nothing.
|
|
112
|
+
* @param outputSpecPath File path of the new OpenAPI specification file to generate. If not specified or empty, no spec file will be generated.
|
|
113
|
+
* @param adaptiveCardFolder Folder path where the Adaptive Card files will be generated. If not specified or empty, Adaptive Card files will not be generated.
|
|
114
|
+
*/
|
|
115
|
+
// eslint-disable-next-line @typescript-eslint/require-await
|
|
116
|
+
async generate(manifestPath, filter, outputSpecPath, adaptiveCardFolder, signal) {
|
|
117
|
+
throw new Error("Method not implemented.");
|
|
118
|
+
}
|
|
119
|
+
async loadSpec() {
|
|
120
|
+
if (!this.spec) {
|
|
121
|
+
this.unResolveSpec = (await this.parser.parse(this.pathOrSpec));
|
|
122
|
+
if (!this.unResolveSpec.openapi && this.unResolveSpec.swagger === "2.0") {
|
|
123
|
+
this.isSwaggerFile = true;
|
|
124
|
+
}
|
|
125
|
+
const clonedUnResolveSpec = JSON.parse(JSON.stringify(this.unResolveSpec));
|
|
126
|
+
this.spec = (await this.parser.dereference(clonedUnResolveSpec));
|
|
127
|
+
}
|
|
128
|
+
}
|
|
129
|
+
getAllSupportedAPIs(spec) {
|
|
130
|
+
if (this.apiMap !== undefined) {
|
|
131
|
+
return this.apiMap;
|
|
132
|
+
}
|
|
133
|
+
const result = utils_1.listSupportedAPIs(spec, this.options.allowMissingId, this.options.allowAPIKeyAuth, this.options.allowMultipleParameters, this.options.allowAPIKeyAuth);
|
|
134
|
+
this.apiMap = result;
|
|
135
|
+
return result;
|
|
136
|
+
}
|
|
137
|
+
}
|
|
138
|
+
exports.SpecParser = SpecParser;
|
|
139
|
+
//# sourceMappingURL=specParser.browser.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"specParser.browser.js","sourceRoot":"","sources":["../../../src/common/spec-parser/specParser.browser.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,37 +1,37 @@
|
|
|
1
1
|
import SwaggerParser from "@apidevtools/swagger-parser";
|
|
2
|
-
import {
|
|
2
|
+
import { OpenAPIV3 } from "openapi-types";
|
|
3
|
+
import { APIInfo, GenerateResult, ListAPIResult, ParseOptions, ValidateResult } from "./interfaces";
|
|
3
4
|
/**
|
|
4
5
|
* A class that parses an OpenAPI specification file and provides methods to validate, list, and generate artifacts.
|
|
5
6
|
*/
|
|
6
7
|
export declare class SpecParser {
|
|
7
|
-
readonly
|
|
8
|
+
readonly pathOrSpec: string | OpenAPIV3.Document;
|
|
8
9
|
readonly parser: SwaggerParser;
|
|
10
|
+
readonly options: Required<ParseOptions>;
|
|
9
11
|
private apiMap;
|
|
10
12
|
private spec;
|
|
11
13
|
private unResolveSpec;
|
|
12
14
|
private isSwaggerFile;
|
|
15
|
+
private defaultOptions;
|
|
13
16
|
/**
|
|
14
17
|
* Creates a new instance of the SpecParser class.
|
|
15
|
-
* @param
|
|
18
|
+
* @param pathOrDoc The path to the OpenAPI specification file or the OpenAPI specification object.
|
|
19
|
+
* @param options The options for parsing the OpenAPI specification file.
|
|
16
20
|
*/
|
|
17
|
-
constructor(
|
|
21
|
+
constructor(pathOrDoc: string | OpenAPIV3.Document, options?: ParseOptions);
|
|
18
22
|
/**
|
|
19
23
|
* Validates the OpenAPI specification file and returns a validation result.
|
|
20
24
|
*
|
|
21
25
|
* @returns A validation result object that contains information about any errors or warnings in the specification file.
|
|
22
26
|
*/
|
|
23
27
|
validate(): Promise<ValidateResult>;
|
|
28
|
+
listSupportedAPIInfo(): Promise<APIInfo[]>;
|
|
24
29
|
/**
|
|
25
30
|
* Lists all the OpenAPI operations in the specification file.
|
|
26
31
|
* @returns A string array that represents the HTTP method and path of each operation, such as ['GET /pets/{petId}', 'GET /user/{userId}']
|
|
27
32
|
* according to copilot plugin spec, only list get and post method without auth
|
|
28
33
|
*/
|
|
29
|
-
list(): Promise<
|
|
30
|
-
/**
|
|
31
|
-
* List all the OpenAPI operations in the specification file and return a map of operationId and operation path.
|
|
32
|
-
* @returns A map of operationId and operation path, such as [{'getPetById': 'GET /pets/{petId}'}, {'getUser': 'GET /user/{userId}'}]
|
|
33
|
-
*/
|
|
34
|
-
listOperationMap(): Promise<Map<string, string>>;
|
|
34
|
+
list(): Promise<ListAPIResult[]>;
|
|
35
35
|
/**
|
|
36
36
|
* Generates and update artifacts from the OpenAPI specification file. Generate Adaptive Cards, update Teams app manifest, and generate a new OpenAPI specification file.
|
|
37
37
|
* @param manifestPath A file path of the Teams app manifest file to update.
|
|
@@ -41,6 +41,6 @@ export declare class SpecParser {
|
|
|
41
41
|
*/
|
|
42
42
|
generate(manifestPath: string, filter: string[], outputSpecPath: string, adaptiveCardFolder: string, signal?: AbortSignal): Promise<GenerateResult>;
|
|
43
43
|
private loadSpec;
|
|
44
|
-
private
|
|
44
|
+
private getAllSupportedAPIs;
|
|
45
45
|
}
|
|
46
46
|
//# sourceMappingURL=specParser.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"specParser.d.ts","sourceRoot":"","sources":["../../../src/common/spec-parser/specParser.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"specParser.d.ts","sourceRoot":"","sources":["../../../src/common/spec-parser/specParser.ts"],"names":[],"mappings":"AAIA,OAAO,aAAa,MAAM,6BAA6B,CAAC;AACxD,OAAO,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAK1C,OAAO,EACL,OAAO,EAEP,cAAc,EACd,aAAa,EACb,YAAY,EACZ,cAAc,EAGf,MAAM,cAAc,CAAC;AAetB;;GAEG;AACH,qBAAa,UAAU;IACrB,SAAgB,UAAU,EAAE,MAAM,GAAG,SAAS,CAAC,QAAQ,CAAC;IACxD,SAAgB,MAAM,EAAE,aAAa,CAAC;IACtC,SAAgB,OAAO,EAAE,QAAQ,CAAC,YAAY,CAAC,CAAC;IAEhD,OAAO,CAAC,MAAM,CAA0D;IACxE,OAAO,CAAC,IAAI,CAAiC;IAC7C,OAAO,CAAC,aAAa,CAAiC;IACtD,OAAO,CAAC,aAAa,CAAsB;IAE3C,OAAO,CAAC,cAAc,CAMpB;IAEF;;;;OAIG;gBACS,SAAS,EAAE,MAAM,GAAG,SAAS,CAAC,QAAQ,EAAE,OAAO,CAAC,EAAE,YAAY;IAS1E;;;;OAIG;IACG,QAAQ,IAAI,OAAO,CAAC,cAAc,CAAC;IAsCnC,oBAAoB,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;IAIhD;;;;OAIG;IACG,IAAI,IAAI,OAAO,CAAC,aAAa,EAAE,CAAC;IAwDtC;;;;;;OAMG;IACG,QAAQ,CACZ,YAAY,EAAE,MAAM,EACpB,MAAM,EAAE,MAAM,EAAE,EAChB,cAAc,EAAE,MAAM,EACtB,kBAAkB,EAAE,MAAM,EAC1B,MAAM,CAAC,EAAE,WAAW,GACnB,OAAO,CAAC,cAAc,CAAC;YAuHZ,QAAQ;IAetB,OAAO,CAAC,mBAAmB;CAgB5B"}
|
|
@@ -4,19 +4,18 @@
|
|
|
4
4
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
5
5
|
exports.SpecParser = void 0;
|
|
6
6
|
const tslib_1 = require("tslib");
|
|
7
|
-
const util = tslib_1.__importStar(require("util"));
|
|
8
7
|
const swagger_parser_1 = tslib_1.__importDefault(require("@apidevtools/swagger-parser"));
|
|
9
|
-
const specParserError_1 = require("./specParserError");
|
|
10
8
|
const swagger2openapi_1 = tslib_1.__importDefault(require("swagger2openapi"));
|
|
11
|
-
const interfaces_1 = require("./interfaces");
|
|
12
|
-
const constants_1 = require("./constants");
|
|
13
9
|
const js_yaml_1 = tslib_1.__importDefault(require("js-yaml"));
|
|
14
10
|
const fs_extra_1 = tslib_1.__importDefault(require("fs-extra"));
|
|
11
|
+
const path_1 = tslib_1.__importDefault(require("path"));
|
|
12
|
+
const interfaces_1 = require("./interfaces");
|
|
13
|
+
const constants_1 = require("./constants");
|
|
14
|
+
const specParserError_1 = require("./specParserError");
|
|
15
15
|
const specFilter_1 = require("./specFilter");
|
|
16
16
|
const utils_1 = require("./utils");
|
|
17
17
|
const manifestUpdater_1 = require("./manifestUpdater");
|
|
18
18
|
const adaptiveCardGenerator_1 = require("./adaptiveCardGenerator");
|
|
19
|
-
const path_1 = tslib_1.__importDefault(require("path"));
|
|
20
19
|
const adaptiveCardWrapper_1 = require("./adaptiveCardWrapper");
|
|
21
20
|
/**
|
|
22
21
|
* A class that parses an OpenAPI specification file and provides methods to validate, list, and generate artifacts.
|
|
@@ -24,11 +23,20 @@ const adaptiveCardWrapper_1 = require("./adaptiveCardWrapper");
|
|
|
24
23
|
class SpecParser {
|
|
25
24
|
/**
|
|
26
25
|
* Creates a new instance of the SpecParser class.
|
|
27
|
-
* @param
|
|
26
|
+
* @param pathOrDoc The path to the OpenAPI specification file or the OpenAPI specification object.
|
|
27
|
+
* @param options The options for parsing the OpenAPI specification file.
|
|
28
28
|
*/
|
|
29
|
-
constructor(
|
|
30
|
-
this.
|
|
29
|
+
constructor(pathOrDoc, options) {
|
|
30
|
+
this.defaultOptions = {
|
|
31
|
+
allowMissingId: true,
|
|
32
|
+
allowSwagger: true,
|
|
33
|
+
allowAPIKeyAuth: false,
|
|
34
|
+
allowMultipleParameters: false,
|
|
35
|
+
allowOauth2: false,
|
|
36
|
+
};
|
|
37
|
+
this.pathOrSpec = pathOrDoc;
|
|
31
38
|
this.parser = new swagger_parser_1.default();
|
|
39
|
+
this.options = Object.assign(Object.assign({}, this.defaultOptions), (options !== null && options !== void 0 ? options : {}));
|
|
32
40
|
}
|
|
33
41
|
/**
|
|
34
42
|
* Validates the OpenAPI specification file and returns a validation result.
|
|
@@ -37,118 +45,86 @@ class SpecParser {
|
|
|
37
45
|
*/
|
|
38
46
|
async validate() {
|
|
39
47
|
try {
|
|
40
|
-
const errors = [];
|
|
41
|
-
const warnings = [];
|
|
42
48
|
try {
|
|
43
49
|
await this.loadSpec();
|
|
44
50
|
await this.parser.validate(this.spec);
|
|
45
51
|
}
|
|
46
52
|
catch (e) {
|
|
47
|
-
// Spec not valid
|
|
48
|
-
errors.push({ type: interfaces_1.ErrorType.SpecNotValid, content: e.toString() });
|
|
49
53
|
return {
|
|
50
54
|
status: interfaces_1.ValidationStatus.Error,
|
|
51
|
-
warnings,
|
|
52
|
-
errors,
|
|
55
|
+
warnings: [],
|
|
56
|
+
errors: [{ type: interfaces_1.ErrorType.SpecNotValid, content: e.toString() }],
|
|
53
57
|
};
|
|
54
58
|
}
|
|
55
|
-
if (this.isSwaggerFile) {
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
errors.push(...serverErrors);
|
|
64
|
-
// Remote reference not supported
|
|
65
|
-
const refPaths = this.parser.$refs.paths();
|
|
66
|
-
// refPaths [0] is the current spec file path
|
|
67
|
-
if (refPaths.length > 1) {
|
|
68
|
-
errors.push({
|
|
69
|
-
type: interfaces_1.ErrorType.RemoteRefNotSupported,
|
|
70
|
-
content: util.format(constants_1.ConstantString.RemoteRefNotSupported, refPaths.join(", ")),
|
|
71
|
-
data: refPaths,
|
|
72
|
-
});
|
|
73
|
-
}
|
|
74
|
-
// No supported API
|
|
75
|
-
const apiMap = this.getAllSupportedApi(this.spec);
|
|
76
|
-
if (Object.keys(apiMap).length === 0) {
|
|
77
|
-
errors.push({
|
|
78
|
-
type: interfaces_1.ErrorType.NoSupportedApi,
|
|
79
|
-
content: constants_1.ConstantString.NoSupportedApi,
|
|
80
|
-
});
|
|
81
|
-
}
|
|
82
|
-
// OperationId missing
|
|
83
|
-
const apisMissingOperationId = [];
|
|
84
|
-
for (const key in apiMap) {
|
|
85
|
-
const pathObjectItem = apiMap[key];
|
|
86
|
-
if (!pathObjectItem.operationId) {
|
|
87
|
-
apisMissingOperationId.push(key);
|
|
88
|
-
}
|
|
89
|
-
}
|
|
90
|
-
if (apisMissingOperationId.length > 0) {
|
|
91
|
-
warnings.push({
|
|
92
|
-
type: interfaces_1.WarningType.OperationIdMissing,
|
|
93
|
-
content: util.format(constants_1.ConstantString.MissingOperationId, apisMissingOperationId.join(", ")),
|
|
94
|
-
data: apisMissingOperationId,
|
|
95
|
-
});
|
|
96
|
-
}
|
|
97
|
-
let status = interfaces_1.ValidationStatus.Valid;
|
|
98
|
-
if (warnings.length > 0 && errors.length === 0) {
|
|
99
|
-
status = interfaces_1.ValidationStatus.Warning;
|
|
100
|
-
}
|
|
101
|
-
else if (errors.length > 0) {
|
|
102
|
-
status = interfaces_1.ValidationStatus.Error;
|
|
59
|
+
if (!this.options.allowSwagger && this.isSwaggerFile) {
|
|
60
|
+
return {
|
|
61
|
+
status: interfaces_1.ValidationStatus.Error,
|
|
62
|
+
warnings: [],
|
|
63
|
+
errors: [
|
|
64
|
+
{ type: interfaces_1.ErrorType.SwaggerNotSupported, content: constants_1.ConstantString.SwaggerNotSupported },
|
|
65
|
+
],
|
|
66
|
+
};
|
|
103
67
|
}
|
|
104
|
-
return
|
|
105
|
-
status,
|
|
106
|
-
warnings,
|
|
107
|
-
errors,
|
|
108
|
-
};
|
|
68
|
+
return utils_1.validateSpec(this.spec, this.parser, !!this.isSwaggerFile, this.options.allowMissingId, this.options.allowAPIKeyAuth, this.options.allowMultipleParameters, this.options.allowOauth2);
|
|
109
69
|
}
|
|
110
70
|
catch (err) {
|
|
111
71
|
throw new specParserError_1.SpecParserError(err.toString(), interfaces_1.ErrorType.ValidateFailed);
|
|
112
72
|
}
|
|
113
73
|
}
|
|
74
|
+
// eslint-disable-next-line @typescript-eslint/require-await
|
|
75
|
+
async listSupportedAPIInfo() {
|
|
76
|
+
throw new Error("Method not implemented.");
|
|
77
|
+
}
|
|
114
78
|
/**
|
|
115
79
|
* Lists all the OpenAPI operations in the specification file.
|
|
116
80
|
* @returns A string array that represents the HTTP method and path of each operation, such as ['GET /pets/{petId}', 'GET /user/{userId}']
|
|
117
81
|
* according to copilot plugin spec, only list get and post method without auth
|
|
118
82
|
*/
|
|
119
83
|
async list() {
|
|
84
|
+
var _a;
|
|
120
85
|
try {
|
|
121
86
|
await this.loadSpec();
|
|
122
|
-
const
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
87
|
+
const spec = this.spec;
|
|
88
|
+
const apiMap = this.getAllSupportedAPIs(spec);
|
|
89
|
+
const result = [];
|
|
90
|
+
for (const apiKey in apiMap) {
|
|
91
|
+
const apiResult = {
|
|
92
|
+
api: "",
|
|
93
|
+
server: "",
|
|
94
|
+
operationId: "",
|
|
95
|
+
};
|
|
96
|
+
const [method, path] = apiKey.split(" ");
|
|
97
|
+
const operation = apiMap[apiKey];
|
|
98
|
+
const rootServer = spec.servers && spec.servers[0];
|
|
99
|
+
const methodServer = spec.paths[path].servers && ((_a = spec.paths[path]) === null || _a === void 0 ? void 0 : _a.servers[0]);
|
|
100
|
+
const operationServer = operation.servers && operation.servers[0];
|
|
101
|
+
const serverUrl = operationServer || methodServer || rootServer;
|
|
102
|
+
if (!serverUrl) {
|
|
103
|
+
throw new specParserError_1.SpecParserError(constants_1.ConstantString.NoServerInformation, interfaces_1.ErrorType.NoServerInformation);
|
|
104
|
+
}
|
|
105
|
+
apiResult.server = utils_1.resolveServerUrl(serverUrl.url);
|
|
106
|
+
let operationId = operation.operationId;
|
|
141
107
|
if (!operationId) {
|
|
142
|
-
|
|
143
|
-
const methodName = method.toLowerCase();
|
|
144
|
-
operationId = `${methodName}${utils_1.convertPathToCamelCase(path)}`;
|
|
108
|
+
operationId = `${method.toLowerCase()}${utils_1.convertPathToCamelCase(path)}`;
|
|
145
109
|
}
|
|
146
|
-
|
|
110
|
+
apiResult.operationId = operationId;
|
|
111
|
+
const authArray = utils_1.getAuthArray(operation.security, spec);
|
|
112
|
+
for (const auths of authArray) {
|
|
113
|
+
if (auths.length === 1) {
|
|
114
|
+
apiResult.auth = auths[0].authSchema;
|
|
115
|
+
break;
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
apiResult.api = apiKey;
|
|
119
|
+
result.push(apiResult);
|
|
147
120
|
}
|
|
148
|
-
return
|
|
121
|
+
return result;
|
|
149
122
|
}
|
|
150
123
|
catch (err) {
|
|
151
|
-
|
|
124
|
+
if (err instanceof specParserError_1.SpecParserError) {
|
|
125
|
+
throw err;
|
|
126
|
+
}
|
|
127
|
+
throw new specParserError_1.SpecParserError(err.toString(), interfaces_1.ErrorType.ListFailed);
|
|
152
128
|
}
|
|
153
129
|
}
|
|
154
130
|
/**
|
|
@@ -171,7 +147,29 @@ class SpecParser {
|
|
|
171
147
|
if (signal === null || signal === void 0 ? void 0 : signal.aborted) {
|
|
172
148
|
throw new specParserError_1.SpecParserError(constants_1.ConstantString.CancelledMessage, interfaces_1.ErrorType.Cancelled);
|
|
173
149
|
}
|
|
174
|
-
const newUnResolvedSpec = specFilter_1.specFilter(filter, this.unResolveSpec, this.spec);
|
|
150
|
+
const newUnResolvedSpec = specFilter_1.specFilter(filter, this.unResolveSpec, this.spec, this.options.allowMissingId, this.options.allowAPIKeyAuth, this.options.allowMultipleParameters, this.options.allowOauth2);
|
|
151
|
+
if (signal === null || signal === void 0 ? void 0 : signal.aborted) {
|
|
152
|
+
throw new specParserError_1.SpecParserError(constants_1.ConstantString.CancelledMessage, interfaces_1.ErrorType.Cancelled);
|
|
153
|
+
}
|
|
154
|
+
const newSpec = (await this.parser.dereference(newUnResolvedSpec));
|
|
155
|
+
const AuthSet = new Set();
|
|
156
|
+
let hasMultipleAPIKeyAuth = false;
|
|
157
|
+
for (const url in newSpec.paths) {
|
|
158
|
+
for (const method in newSpec.paths[url]) {
|
|
159
|
+
const operation = newSpec.paths[url][method];
|
|
160
|
+
const authArray = utils_1.getAuthArray(operation.security, newSpec);
|
|
161
|
+
if (authArray && authArray.length > 0) {
|
|
162
|
+
AuthSet.add(authArray[0][0].authSchema);
|
|
163
|
+
if (AuthSet.size > 1) {
|
|
164
|
+
hasMultipleAPIKeyAuth = true;
|
|
165
|
+
break;
|
|
166
|
+
}
|
|
167
|
+
}
|
|
168
|
+
}
|
|
169
|
+
}
|
|
170
|
+
if (hasMultipleAPIKeyAuth) {
|
|
171
|
+
throw new specParserError_1.SpecParserError(constants_1.ConstantString.MultipleAPIKeyNotSupported, interfaces_1.ErrorType.MultipleAPIKeyNotSupported);
|
|
172
|
+
}
|
|
175
173
|
let resultStr;
|
|
176
174
|
if (outputSpecPath.endsWith(".yaml") || outputSpecPath.endsWith(".yml")) {
|
|
177
175
|
resultStr = js_yaml_1.default.dump(newUnResolvedSpec);
|
|
@@ -180,19 +178,18 @@ class SpecParser {
|
|
|
180
178
|
resultStr = JSON.stringify(newUnResolvedSpec, null, 2);
|
|
181
179
|
}
|
|
182
180
|
await fs_extra_1.default.outputFile(outputSpecPath, resultStr);
|
|
183
|
-
if (signal === null || signal === void 0 ? void 0 : signal.aborted) {
|
|
184
|
-
throw new specParserError_1.SpecParserError(constants_1.ConstantString.CancelledMessage, interfaces_1.ErrorType.Cancelled);
|
|
185
|
-
}
|
|
186
|
-
const newSpec = (await this.parser.dereference(newUnResolvedSpec));
|
|
187
181
|
for (const url in newSpec.paths) {
|
|
188
182
|
for (const method in newSpec.paths[url]) {
|
|
189
|
-
|
|
183
|
+
// paths object may contain description/summary, so we need to check if it is a operation object
|
|
184
|
+
if (method === constants_1.ConstantString.PostMethod || method === constants_1.ConstantString.GetMethod) {
|
|
190
185
|
const operation = newSpec.paths[url][method];
|
|
191
186
|
try {
|
|
192
187
|
const [card, jsonPath] = adaptiveCardGenerator_1.generateAdaptiveCard(operation);
|
|
193
188
|
const fileName = path_1.default.join(adaptiveCardFolder, `${operation.operationId}.json`);
|
|
194
189
|
const wrappedCard = adaptiveCardWrapper_1.wrapAdaptiveCard(card, jsonPath);
|
|
195
190
|
await fs_extra_1.default.outputJSON(fileName, wrappedCard, { spaces: 2 });
|
|
191
|
+
const dataFileName = path_1.default.join(adaptiveCardFolder, `${operation.operationId}.data.json`);
|
|
192
|
+
await fs_extra_1.default.outputJSON(dataFileName, {}, { spaces: 2 });
|
|
196
193
|
}
|
|
197
194
|
catch (err) {
|
|
198
195
|
result.allSuccess = false;
|
|
@@ -208,7 +205,8 @@ class SpecParser {
|
|
|
208
205
|
if (signal === null || signal === void 0 ? void 0 : signal.aborted) {
|
|
209
206
|
throw new specParserError_1.SpecParserError(constants_1.ConstantString.CancelledMessage, interfaces_1.ErrorType.Cancelled);
|
|
210
207
|
}
|
|
211
|
-
const
|
|
208
|
+
const auth = Array.from(AuthSet)[0];
|
|
209
|
+
const [updatedManifest, warnings] = await manifestUpdater_1.updateManifest(manifestPath, outputSpecPath, adaptiveCardFolder, newSpec, this.options.allowMultipleParameters, auth);
|
|
212
210
|
await fs_extra_1.default.outputJSON(manifestPath, updatedManifest, { spaces: 2 });
|
|
213
211
|
result.warnings.push(...warnings);
|
|
214
212
|
}
|
|
@@ -222,7 +220,7 @@ class SpecParser {
|
|
|
222
220
|
}
|
|
223
221
|
async loadSpec() {
|
|
224
222
|
if (!this.spec) {
|
|
225
|
-
this.unResolveSpec = (await this.parser.parse(this.
|
|
223
|
+
this.unResolveSpec = (await this.parser.parse(this.pathOrSpec));
|
|
226
224
|
// Convert swagger 2.0 to openapi 3.0
|
|
227
225
|
if (!this.unResolveSpec.openapi && this.unResolveSpec.swagger === "2.0") {
|
|
228
226
|
const specObj = await swagger2openapi_1.default.convert(this.unResolveSpec, {});
|
|
@@ -233,22 +231,11 @@ class SpecParser {
|
|
|
233
231
|
this.spec = (await this.parser.dereference(clonedUnResolveSpec));
|
|
234
232
|
}
|
|
235
233
|
}
|
|
236
|
-
|
|
234
|
+
getAllSupportedAPIs(spec) {
|
|
237
235
|
if (this.apiMap !== undefined) {
|
|
238
236
|
return this.apiMap;
|
|
239
237
|
}
|
|
240
|
-
const
|
|
241
|
-
const result = {};
|
|
242
|
-
for (const path in paths) {
|
|
243
|
-
const methods = paths[path];
|
|
244
|
-
for (const method in methods) {
|
|
245
|
-
// For developer preview, only support GET operation with only 1 parameter without auth
|
|
246
|
-
if (utils_1.isSupportedApi(method, path, spec)) {
|
|
247
|
-
const operationObject = methods[method];
|
|
248
|
-
result[`${method.toUpperCase()} ${path}`] = operationObject;
|
|
249
|
-
}
|
|
250
|
-
}
|
|
251
|
-
}
|
|
238
|
+
const result = utils_1.listSupportedAPIs(spec, this.options.allowMissingId, this.options.allowAPIKeyAuth, this.options.allowMultipleParameters, this.options.allowOauth2);
|
|
252
239
|
this.apiMap = result;
|
|
253
240
|
return result;
|
|
254
241
|
}
|