@microsoft/managed-apps-cli 0.19.0 → 0.21.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/LICENSE +17 -149
- package/THIRD-PARTY-NOTICES.txt +9549 -0
- package/dist/AddConnector-4AMM746J.js +41 -0
- package/dist/AuthStatus-ZZIP3LBD.js +11 -0
- package/dist/AuthSwitch-HK7JU2FR.js +13 -0
- package/dist/Bin.js +8 -3
- package/dist/BuildMaafApp-MOTZOLJZ.js +11 -0
- package/dist/Cli-6CCXMCPX.js +54 -0
- package/dist/CreateMaafApp-TUO72CW7.js +20 -0
- package/dist/DeleteMaafApp-MZVGIAX3.js +11 -0
- package/dist/DeployMaafApp-KXATM3E3.js +14 -0
- package/dist/Dev-SHIA5S7X.js +14 -0
- package/dist/EnvironmentVariableAuthenticationProvider-5YTMRAE4.js +11 -0
- package/dist/GetMaafApp-ELB5KMHW.js +11 -0
- package/dist/GetMaafBuildStatus-3W7LI5TJ.js +11 -0
- package/dist/GetSettings-NM6H2U5F.js +11 -0
- package/dist/Init-CH5DUQWA.js +11 -0
- package/dist/ListConnectorActions-7SIFGPYR.js +11 -0
- package/dist/ListConnectors-TRKIWRVQ.js +11 -0
- package/dist/ListMaafApps-RT3PGZSJ.js +11 -0
- package/dist/Login-HG5S7LBC.js +11 -0
- package/dist/Logout-BUPHLOAH.js +11 -0
- package/dist/MockFetch-4CYTSNJ7.js +13 -0
- package/dist/NoOpAuthenticationProvider-DX3XNXF5.js +11 -0
- package/dist/NodeMsalAuthenticationProvider-HTH3V3G2.js +17 -0
- package/dist/Pack-AHKC2MYF.js +8 -0
- package/dist/PlayMaafApp-LWKJU2IN.js +12 -0
- package/dist/RefreshDataSource-ZFZJXJ5L.js +11 -0
- package/dist/RefreshGitAuth-5A3SX2HC.js +11 -0
- package/dist/RemoveDataSource-57JJLK5I.js +14 -0
- package/dist/ServicePrincipalAuthenticationProvider-SVKDZG6X.js +11 -0
- package/dist/SetSetting-RB3F7IXG.js +11 -0
- package/dist/ShareLinkCreate-7BCDPWY6.js +11 -0
- package/dist/ShareLinkList-4BI3WMNN.js +11 -0
- package/dist/ShareLinkRevoke-EEJVCRCY.js +11 -0
- package/dist/ShareList-LJDAEGI3.js +11 -0
- package/dist/ShareMaafApp-QFRXLYUD.js +11 -0
- package/dist/ShowMaafApp-3KK6NUG2.js +11 -0
- package/dist/TelemetrySettings-A474HALH.js +11 -0
- package/dist/UnshareMaafApp-423RNXCN.js +11 -0
- package/dist/acorn-CYBWGE5M.js +23 -0
- package/dist/angular-Q62TJP23.js +11 -0
- package/dist/babel-AOXBHIIS.js +22 -0
- package/dist/chunk-3BRAT6NP.js +11 -0
- package/dist/chunk-3YRE4IQ3.js +132 -0
- package/dist/chunk-5AUOEXAR.js +50 -0
- package/dist/chunk-6FFQN2SO.js +13 -0
- package/dist/chunk-6MXOK2LG.js +11 -0
- package/dist/chunk-7NXJAIJX.js +11 -0
- package/dist/chunk-DREO7EYO.js +20 -0
- package/dist/chunk-EV3TTTOT.js +8 -0
- package/dist/chunk-G33Q5FWT.js +42325 -0
- package/dist/chunk-HBLO3WDD.js +13 -0
- package/dist/chunk-MFPX2RFH.js +11 -0
- package/dist/chunk-NP2KJOYC.js +12 -0
- package/dist/chunk-OL6CTXQR.js +11 -0
- package/dist/chunk-PVAIJSAI.js +11 -0
- package/dist/chunk-QAFCXGBD.js +11 -0
- package/dist/chunk-QSB5P4RM.js +38 -0
- package/dist/chunk-RBG2H562.js +11 -0
- package/dist/chunk-S5HEU7XK.js +11 -0
- package/dist/chunk-TYRVM4PP.js +8 -0
- package/dist/chunk-U36HMOQW.js +77 -0
- package/dist/chunk-UBTSW22U.js +11 -0
- package/dist/chunk-USRRI5H4.js +11 -0
- package/dist/chunk-UT667QSU.js +8 -0
- package/dist/chunk-VFSTQAZ2.js +12 -0
- package/dist/chunk-VNEZZ3RI.js +11 -0
- package/dist/chunk-W7EWOZPO.js +104 -0
- package/dist/chunk-Y5AMO72S.js +10 -0
- package/dist/chunk-YIKNM523.js +15 -0
- package/dist/chunk-YMXXWGRV.js +11 -0
- package/dist/estree-HPTPQIMZ.js +51 -0
- package/dist/flow-B6JUMONE.js +27 -0
- package/dist/glimmer-36KZ3DJ5.js +44 -0
- package/dist/graphql-E6CIFZFV.js +35 -0
- package/dist/html-BUTTPQE6.js +32 -0
- package/dist/markdown-K2C5OZHT.js +69 -0
- package/dist/meriyah-27UE2OSX.js +12 -0
- package/dist/postcss-QUHZLBB7.js +68 -0
- package/dist/typescript-G2G6TDZF.js +28 -0
- package/dist/yaml-W5P5CGFK.js +166 -0
- package/package.json +22 -17
- package/dist/ArgumentProvider.d.ts +0 -144
- package/dist/ArgumentProvider.d.ts.map +0 -1
- package/dist/ArgumentProvider.js +0 -493
- package/dist/ArgumentProvider.js.map +0 -1
- package/dist/Authentication/ActiveAccountStore.d.ts +0 -24
- package/dist/Authentication/ActiveAccountStore.d.ts.map +0 -1
- package/dist/Authentication/ActiveAccountStore.js +0 -54
- package/dist/Authentication/ActiveAccountStore.js.map +0 -1
- package/dist/Authentication/EnvironmentVariableAuthenticationProvider.d.ts +0 -26
- package/dist/Authentication/EnvironmentVariableAuthenticationProvider.d.ts.map +0 -1
- package/dist/Authentication/EnvironmentVariableAuthenticationProvider.js +0 -31
- package/dist/Authentication/EnvironmentVariableAuthenticationProvider.js.map +0 -1
- package/dist/Authentication/NoOpAuthenticationProvider.d.ts +0 -25
- package/dist/Authentication/NoOpAuthenticationProvider.d.ts.map +0 -1
- package/dist/Authentication/NoOpAuthenticationProvider.js +0 -31
- package/dist/Authentication/NoOpAuthenticationProvider.js.map +0 -1
- package/dist/Authentication/NodeMsalAuthenticationProvider.d.ts +0 -103
- package/dist/Authentication/NodeMsalAuthenticationProvider.d.ts.map +0 -1
- package/dist/Authentication/NodeMsalAuthenticationProvider.js +0 -391
- package/dist/Authentication/NodeMsalAuthenticationProvider.js.map +0 -1
- package/dist/Authentication/ServicePrincipalAuthenticationProvider.d.ts +0 -23
- package/dist/Authentication/ServicePrincipalAuthenticationProvider.d.ts.map +0 -1
- package/dist/Authentication/ServicePrincipalAuthenticationProvider.js +0 -60
- package/dist/Authentication/ServicePrincipalAuthenticationProvider.js.map +0 -1
- package/dist/Bin.d.ts +0 -6
- package/dist/Bin.d.ts.map +0 -1
- package/dist/Bin.js.map +0 -1
- package/dist/Cli.d.ts +0 -2
- package/dist/Cli.d.ts.map +0 -1
- package/dist/Cli.js +0 -207
- package/dist/Cli.js.map +0 -1
- package/dist/CliSettings.d.ts +0 -17
- package/dist/CliSettings.d.ts.map +0 -1
- package/dist/CliSettings.js +0 -103
- package/dist/CliSettings.js.map +0 -1
- package/dist/CliUtils.d.ts +0 -100
- package/dist/CliUtils.d.ts.map +0 -1
- package/dist/CliUtils.js +0 -204
- package/dist/CliUtils.js.map +0 -1
- package/dist/Constants/CliConstants.d.ts +0 -6
- package/dist/Constants/CliConstants.d.ts.map +0 -1
- package/dist/Constants/CliConstants.js +0 -6
- package/dist/Constants/CliConstants.js.map +0 -1
- package/dist/Constants/CommandRegistry.d.ts +0 -22
- package/dist/Constants/CommandRegistry.d.ts.map +0 -1
- package/dist/Constants/CommandRegistry.js +0 -245
- package/dist/Constants/CommandRegistry.js.map +0 -1
- package/dist/Constants/HelpStrings.d.ts +0 -432
- package/dist/Constants/HelpStrings.d.ts.map +0 -1
- package/dist/Constants/HelpStrings.js +0 -623
- package/dist/Constants/HelpStrings.js.map +0 -1
- package/dist/Constants.d.ts +0 -18
- package/dist/Constants.d.ts.map +0 -1
- package/dist/Constants.js +0 -41
- package/dist/Constants.js.map +0 -1
- package/dist/Errors/CliError.d.ts +0 -5
- package/dist/Errors/CliError.d.ts.map +0 -1
- package/dist/Errors/CliError.js +0 -7
- package/dist/Errors/CliError.js.map +0 -1
- package/dist/Errors/GitHubErrorMap.d.ts +0 -68
- package/dist/Errors/GitHubErrorMap.d.ts.map +0 -1
- package/dist/Errors/GitHubErrorMap.js +0 -238
- package/dist/Errors/GitHubErrorMap.js.map +0 -1
- package/dist/FS/CliFs.d.ts +0 -41
- package/dist/FS/CliFs.d.ts.map +0 -1
- package/dist/FS/CliFs.js +0 -136
- package/dist/FS/CliFs.js.map +0 -1
- package/dist/HttpClient/CliHttpClient.d.ts +0 -43
- package/dist/HttpClient/CliHttpClient.d.ts.map +0 -1
- package/dist/HttpClient/CliHttpClient.js +0 -320
- package/dist/HttpClient/CliHttpClient.js.map +0 -1
- package/dist/HttpClient/HttpForward.d.ts +0 -9
- package/dist/HttpClient/HttpForward.d.ts.map +0 -1
- package/dist/HttpClient/HttpForward.js +0 -56
- package/dist/HttpClient/HttpForward.js.map +0 -1
- package/dist/Logger/BufferedTelemetryWriter.d.ts +0 -20
- package/dist/Logger/BufferedTelemetryWriter.d.ts.map +0 -1
- package/dist/Logger/BufferedTelemetryWriter.js +0 -163
- package/dist/Logger/BufferedTelemetryWriter.js.map +0 -1
- package/dist/Logger/CliLogger.d.ts +0 -59
- package/dist/Logger/CliLogger.d.ts.map +0 -1
- package/dist/Logger/CliLogger.js +0 -364
- package/dist/Logger/CliLogger.js.map +0 -1
- package/dist/Logger/ConsoleWriter.d.ts +0 -23
- package/dist/Logger/ConsoleWriter.d.ts.map +0 -1
- package/dist/Logger/ConsoleWriter.js +0 -66
- package/dist/Logger/ConsoleWriter.js.map +0 -1
- package/dist/Logger/Constants.d.ts +0 -6
- package/dist/Logger/Constants.d.ts.map +0 -1
- package/dist/Logger/Constants.js +0 -15
- package/dist/Logger/Constants.js.map +0 -1
- package/dist/Logger/LoggerSettings.d.ts +0 -18
- package/dist/Logger/LoggerSettings.d.ts.map +0 -1
- package/dist/Logger/LoggerSettings.js +0 -78
- package/dist/Logger/LoggerSettings.js.map +0 -1
- package/dist/Logger/OneDSWriter.d.ts +0 -26
- package/dist/Logger/OneDSWriter.d.ts.map +0 -1
- package/dist/Logger/OneDSWriter.js +0 -211
- package/dist/Logger/OneDSWriter.js.map +0 -1
- package/dist/Logger/Scrubber/ScrubCustomDimensions.d.ts +0 -5
- package/dist/Logger/Scrubber/ScrubCustomDimensions.d.ts.map +0 -1
- package/dist/Logger/Scrubber/ScrubCustomDimensions.js +0 -46
- package/dist/Logger/Scrubber/ScrubCustomDimensions.js.map +0 -1
- package/dist/Logger/Scrubber/ScrubCustomDimensionsConfig.d.ts +0 -27
- package/dist/Logger/Scrubber/ScrubCustomDimensionsConfig.d.ts.map +0 -1
- package/dist/Logger/Scrubber/ScrubCustomDimensionsConfig.js +0 -168
- package/dist/Logger/Scrubber/ScrubCustomDimensionsConfig.js.map +0 -1
- package/dist/Logger/Scrubber/ScrubUtils.d.ts +0 -8
- package/dist/Logger/Scrubber/ScrubUtils.d.ts.map +0 -1
- package/dist/Logger/Scrubber/ScrubUtils.js +0 -34
- package/dist/Logger/Scrubber/ScrubUtils.js.map +0 -1
- package/dist/Middletier/FunctionsBundler.d.ts +0 -17
- package/dist/Middletier/FunctionsBundler.d.ts.map +0 -1
- package/dist/Middletier/FunctionsBundler.js +0 -169
- package/dist/Middletier/FunctionsBundler.js.map +0 -1
- package/dist/Middletier/PackFunctions.d.ts +0 -53
- package/dist/Middletier/PackFunctions.d.ts.map +0 -1
- package/dist/Middletier/PackFunctions.js +0 -123
- package/dist/Middletier/PackFunctions.js.map +0 -1
- package/dist/Testing/MockFetch.d.ts +0 -23
- package/dist/Testing/MockFetch.d.ts.map +0 -1
- package/dist/Testing/MockFetch.js +0 -177
- package/dist/Testing/MockFetch.js.map +0 -1
- package/dist/Testing/MockRoutes.d.ts +0 -34
- package/dist/Testing/MockRoutes.d.ts.map +0 -1
- package/dist/Testing/MockRoutes.js +0 -226
- package/dist/Testing/MockRoutes.js.map +0 -1
- package/dist/Testing/fixtures/connectors/commondataserviceforapps.d.ts +0 -6
- package/dist/Testing/fixtures/connectors/commondataserviceforapps.d.ts.map +0 -1
- package/dist/Testing/fixtures/connectors/commondataserviceforapps.js +0 -25
- package/dist/Testing/fixtures/connectors/commondataserviceforapps.js.map +0 -1
- package/dist/Testing/fixtures/connectors/dataverseContactEntity.d.ts +0 -6
- package/dist/Testing/fixtures/connectors/dataverseContactEntity.d.ts.map +0 -1
- package/dist/Testing/fixtures/connectors/dataverseContactEntity.js +0 -55
- package/dist/Testing/fixtures/connectors/dataverseContactEntity.js.map +0 -1
- package/dist/Testing/fixtures/connectors/excelonlinebusiness.d.ts +0 -6
- package/dist/Testing/fixtures/connectors/excelonlinebusiness.d.ts.map +0 -1
- package/dist/Testing/fixtures/connectors/excelonlinebusiness.js +0 -1970
- package/dist/Testing/fixtures/connectors/excelonlinebusiness.js.map +0 -1
- package/dist/Testing/fixtures/connectors/kusto.d.ts +0 -6
- package/dist/Testing/fixtures/connectors/kusto.d.ts.map +0 -1
- package/dist/Testing/fixtures/connectors/kusto.js +0 -1333
- package/dist/Testing/fixtures/connectors/kusto.js.map +0 -1
- package/dist/Testing/fixtures/connectors/msnweather.d.ts +0 -6
- package/dist/Testing/fixtures/connectors/msnweather.d.ts.map +0 -1
- package/dist/Testing/fixtures/connectors/msnweather.js +0 -917
- package/dist/Testing/fixtures/connectors/msnweather.js.map +0 -1
- package/dist/Testing/fixtures/connectors/office365groups.d.ts +0 -6
- package/dist/Testing/fixtures/connectors/office365groups.d.ts.map +0 -1
- package/dist/Testing/fixtures/connectors/office365groups.js +0 -2144
- package/dist/Testing/fixtures/connectors/office365groups.js.map +0 -1
- package/dist/Testing/fixtures/connectors/office365users.d.ts +0 -6
- package/dist/Testing/fixtures/connectors/office365users.d.ts.map +0 -1
- package/dist/Testing/fixtures/connectors/office365users.js +0 -1969
- package/dist/Testing/fixtures/connectors/office365users.js.map +0 -1
- package/dist/Testing/fixtures/connectors/onedriveforbusiness.d.ts +0 -6
- package/dist/Testing/fixtures/connectors/onedriveforbusiness.d.ts.map +0 -1
- package/dist/Testing/fixtures/connectors/onedriveforbusiness.js +0 -4873
- package/dist/Testing/fixtures/connectors/onedriveforbusiness.js.map +0 -1
- package/dist/Testing/fixtures/connectors/powerappsforappmakers.d.ts +0 -6
- package/dist/Testing/fixtures/connectors/powerappsforappmakers.d.ts.map +0 -1
- package/dist/Testing/fixtures/connectors/powerappsforappmakers.js +0 -4682
- package/dist/Testing/fixtures/connectors/powerappsforappmakers.js.map +0 -1
- package/dist/Testing/fixtures/connectors/sharepointTestListMetadata.d.ts +0 -6
- package/dist/Testing/fixtures/connectors/sharepointTestListMetadata.d.ts.map +0 -1
- package/dist/Testing/fixtures/connectors/sharepointTestListMetadata.js +0 -1078
- package/dist/Testing/fixtures/connectors/sharepointTestListMetadata.js.map +0 -1
- package/dist/Testing/fixtures/connectors/sharepointonline.d.ts +0 -6
- package/dist/Testing/fixtures/connectors/sharepointonline.d.ts.map +0 -1
- package/dist/Testing/fixtures/connectors/sharepointonline.js +0 -28
- package/dist/Testing/fixtures/connectors/sharepointonline.js.map +0 -1
- package/dist/Testing/fixtures/connectors/teams.d.ts +0 -6
- package/dist/Testing/fixtures/connectors/teams.d.ts.map +0 -1
- package/dist/Testing/fixtures/connectors/teams.js +0 -9987
- package/dist/Testing/fixtures/connectors/teams.js.map +0 -1
- package/dist/Testing/fixtures/connectors/translatorv2.d.ts +0 -6
- package/dist/Testing/fixtures/connectors/translatorv2.d.ts.map +0 -1
- package/dist/Testing/fixtures/connectors/translatorv2.js +0 -307
- package/dist/Testing/fixtures/connectors/translatorv2.js.map +0 -1
- package/dist/Testing/fixtures/index.d.ts +0 -23
- package/dist/Testing/fixtures/index.d.ts.map +0 -1
- package/dist/Testing/fixtures/index.js +0 -96
- package/dist/Testing/fixtures/index.js.map +0 -1
- package/dist/Types/Argument.types.d.ts +0 -28
- package/dist/Types/Argument.types.d.ts.map +0 -1
- package/dist/Types/Argument.types.js +0 -5
- package/dist/Types/Argument.types.js.map +0 -1
- package/dist/Types/Cli.types.d.ts +0 -82
- package/dist/Types/Cli.types.d.ts.map +0 -1
- package/dist/Types/Cli.types.js +0 -5
- package/dist/Types/Cli.types.js.map +0 -1
- package/dist/Types/Command.types.d.ts +0 -69
- package/dist/Types/Command.types.d.ts.map +0 -1
- package/dist/Types/Command.types.js +0 -20
- package/dist/Types/Command.types.js.map +0 -1
- package/dist/Types/Datasource.types.d.ts +0 -30
- package/dist/Types/Datasource.types.d.ts.map +0 -1
- package/dist/Types/Datasource.types.js +0 -5
- package/dist/Types/Datasource.types.js.map +0 -1
- package/dist/Types/LoggerTypes.types.d.ts +0 -18
- package/dist/Types/LoggerTypes.types.d.ts.map +0 -1
- package/dist/Types/LoggerTypes.types.js +0 -5
- package/dist/Types/LoggerTypes.types.js.map +0 -1
- package/dist/Utils/BuildPolling.d.ts +0 -43
- package/dist/Utils/BuildPolling.d.ts.map +0 -1
- package/dist/Utils/BuildPolling.js +0 -139
- package/dist/Utils/BuildPolling.js.map +0 -1
- package/dist/Utils/BuildVerbDescriptionTable.d.ts +0 -29
- package/dist/Utils/BuildVerbDescriptionTable.d.ts.map +0 -1
- package/dist/Utils/BuildVerbDescriptionTable.js +0 -147
- package/dist/Utils/BuildVerbDescriptionTable.js.map +0 -1
- package/dist/Utils/CoerceCliVersion.d.ts +0 -27
- package/dist/Utils/CoerceCliVersion.d.ts.map +0 -1
- package/dist/Utils/CoerceCliVersion.js +0 -67
- package/dist/Utils/CoerceCliVersion.js.map +0 -1
- package/dist/Utils/ConnectorIds.d.ts +0 -12
- package/dist/Utils/ConnectorIds.d.ts.map +0 -1
- package/dist/Utils/ConnectorIds.js +0 -20
- package/dist/Utils/ConnectorIds.js.map +0 -1
- package/dist/Utils/ConsoleOutput.d.ts +0 -86
- package/dist/Utils/ConsoleOutput.d.ts.map +0 -1
- package/dist/Utils/ConsoleOutput.js +0 -162
- package/dist/Utils/ConsoleOutput.js.map +0 -1
- package/dist/Utils/DcfRecovery.d.ts +0 -84
- package/dist/Utils/DcfRecovery.d.ts.map +0 -1
- package/dist/Utils/DcfRecovery.js +0 -246
- package/dist/Utils/DcfRecovery.js.map +0 -1
- package/dist/Utils/DetectPackageManager.d.ts +0 -9
- package/dist/Utils/DetectPackageManager.d.ts.map +0 -1
- package/dist/Utils/DetectPackageManager.js +0 -24
- package/dist/Utils/DetectPackageManager.js.map +0 -1
- package/dist/Utils/DownloadTemplate.d.ts +0 -45
- package/dist/Utils/DownloadTemplate.d.ts.map +0 -1
- package/dist/Utils/DownloadTemplate.js +0 -161
- package/dist/Utils/DownloadTemplate.js.map +0 -1
- package/dist/Utils/EnhanceNetworkError.d.ts +0 -14
- package/dist/Utils/EnhanceNetworkError.d.ts.map +0 -1
- package/dist/Utils/EnhanceNetworkError.js +0 -61
- package/dist/Utils/EnhanceNetworkError.js.map +0 -1
- package/dist/Utils/EnvVars.d.ts +0 -17
- package/dist/Utils/EnvVars.d.ts.map +0 -1
- package/dist/Utils/EnvVars.js +0 -38
- package/dist/Utils/EnvVars.js.map +0 -1
- package/dist/Utils/EnvironmentRoutingUtils.d.ts +0 -81
- package/dist/Utils/EnvironmentRoutingUtils.d.ts.map +0 -1
- package/dist/Utils/EnvironmentRoutingUtils.js +0 -204
- package/dist/Utils/EnvironmentRoutingUtils.js.map +0 -1
- package/dist/Utils/FindAvailablePort.d.ts +0 -39
- package/dist/Utils/FindAvailablePort.d.ts.map +0 -1
- package/dist/Utils/FindAvailablePort.js +0 -105
- package/dist/Utils/FindAvailablePort.js.map +0 -1
- package/dist/Utils/GitCredentialConfig.d.ts +0 -12
- package/dist/Utils/GitCredentialConfig.d.ts.map +0 -1
- package/dist/Utils/GitCredentialConfig.js +0 -32
- package/dist/Utils/GitCredentialConfig.js.map +0 -1
- package/dist/Utils/GitErrorClassifier.d.ts +0 -40
- package/dist/Utils/GitErrorClassifier.d.ts.map +0 -1
- package/dist/Utils/GitErrorClassifier.js +0 -120
- package/dist/Utils/GitErrorClassifier.js.map +0 -1
- package/dist/Utils/GitHubDcfFlow.d.ts +0 -59
- package/dist/Utils/GitHubDcfFlow.d.ts.map +0 -1
- package/dist/Utils/GitHubDcfFlow.js +0 -165
- package/dist/Utils/GitHubDcfFlow.js.map +0 -1
- package/dist/Utils/GitRunner.d.ts +0 -107
- package/dist/Utils/GitRunner.d.ts.map +0 -1
- package/dist/Utils/GitRunner.js +0 -89
- package/dist/Utils/GitRunner.js.map +0 -1
- package/dist/Utils/GitUtils.d.ts +0 -43
- package/dist/Utils/GitUtils.d.ts.map +0 -1
- package/dist/Utils/GitUtils.js +0 -120
- package/dist/Utils/GitUtils.js.map +0 -1
- package/dist/Utils/GitVersionChecker.d.ts +0 -38
- package/dist/Utils/GitVersionChecker.d.ts.map +0 -1
- package/dist/Utils/GitVersionChecker.js +0 -64
- package/dist/Utils/GitVersionChecker.js.map +0 -1
- package/dist/Utils/HelpBanner.d.ts +0 -11
- package/dist/Utils/HelpBanner.d.ts.map +0 -1
- package/dist/Utils/HelpBanner.js +0 -15
- package/dist/Utils/HelpBanner.js.map +0 -1
- package/dist/Utils/MaafAppConfig.d.ts +0 -24
- package/dist/Utils/MaafAppConfig.d.ts.map +0 -1
- package/dist/Utils/MaafAppConfig.js +0 -38
- package/dist/Utils/MaafAppConfig.js.map +0 -1
- package/dist/Utils/NodeVersionChecker.d.ts +0 -10
- package/dist/Utils/NodeVersionChecker.d.ts.map +0 -1
- package/dist/Utils/NodeVersionChecker.js +0 -21
- package/dist/Utils/NodeVersionChecker.js.map +0 -1
- package/dist/Utils/Paging.d.ts +0 -29
- package/dist/Utils/Paging.d.ts.map +0 -1
- package/dist/Utils/Paging.js +0 -102
- package/dist/Utils/Paging.js.map +0 -1
- package/dist/Utils/PinCli.d.ts +0 -33
- package/dist/Utils/PinCli.d.ts.map +0 -1
- package/dist/Utils/PinCli.js +0 -77
- package/dist/Utils/PinCli.js.map +0 -1
- package/dist/Utils/ReadPackageJson.d.ts +0 -9
- package/dist/Utils/ReadPackageJson.d.ts.map +0 -1
- package/dist/Utils/ReadPackageJson.js +0 -13
- package/dist/Utils/ReadPackageJson.js.map +0 -1
- package/dist/Utils/RepoDetails.d.ts +0 -29
- package/dist/Utils/RepoDetails.d.ts.map +0 -1
- package/dist/Utils/RepoDetails.js +0 -37
- package/dist/Utils/RepoDetails.js.map +0 -1
- package/dist/Utils/RepoOption.d.ts +0 -42
- package/dist/Utils/RepoOption.d.ts.map +0 -1
- package/dist/Utils/RepoOption.js +0 -63
- package/dist/Utils/RepoOption.js.map +0 -1
- package/dist/Utils/RepoUrl.d.ts +0 -18
- package/dist/Utils/RepoUrl.d.ts.map +0 -1
- package/dist/Utils/RepoUrl.js +0 -6
- package/dist/Utils/RepoUrl.js.map +0 -1
- package/dist/Utils/ResolveCommand.d.ts +0 -62
- package/dist/Utils/ResolveCommand.d.ts.map +0 -1
- package/dist/Utils/ResolveCommand.js +0 -141
- package/dist/Utils/ResolveCommand.js.map +0 -1
- package/dist/Utils/RunCommand.d.ts +0 -33
- package/dist/Utils/RunCommand.d.ts.map +0 -1
- package/dist/Utils/RunCommand.js +0 -83
- package/dist/Utils/RunCommand.js.map +0 -1
- package/dist/Utils/ShareAccessRouting.d.ts +0 -78
- package/dist/Utils/ShareAccessRouting.d.ts.map +0 -1
- package/dist/Utils/ShareAccessRouting.js +0 -93
- package/dist/Utils/ShareAccessRouting.js.map +0 -1
- package/dist/Utils/Spinner.d.ts +0 -23
- package/dist/Utils/Spinner.d.ts.map +0 -1
- package/dist/Utils/Spinner.js +0 -94
- package/dist/Utils/Spinner.js.map +0 -1
- package/dist/Utils/zipBuildArtifact.d.ts +0 -35
- package/dist/Utils/zipBuildArtifact.d.ts.map +0 -1
- package/dist/Utils/zipBuildArtifact.js +0 -100
- package/dist/Utils/zipBuildArtifact.js.map +0 -1
- package/dist/Verbs/AddAction.d.ts +0 -6
- package/dist/Verbs/AddAction.d.ts.map +0 -1
- package/dist/Verbs/AddAction.js +0 -58
- package/dist/Verbs/AddAction.js.map +0 -1
- package/dist/Verbs/AddConnector.d.ts +0 -26
- package/dist/Verbs/AddConnector.d.ts.map +0 -1
- package/dist/Verbs/AddConnector.js +0 -222
- package/dist/Verbs/AddConnector.js.map +0 -1
- package/dist/Verbs/AddConnectorFlows.d.ts +0 -97
- package/dist/Verbs/AddConnectorFlows.d.ts.map +0 -1
- package/dist/Verbs/AddConnectorFlows.js +0 -298
- package/dist/Verbs/AddConnectorFlows.js.map +0 -1
- package/dist/Verbs/AddDataSource.d.ts +0 -18
- package/dist/Verbs/AddDataSource.d.ts.map +0 -1
- package/dist/Verbs/AddDataSource.js +0 -162
- package/dist/Verbs/AddDataSource.js.map +0 -1
- package/dist/Verbs/AddFlow.d.ts +0 -12
- package/dist/Verbs/AddFlow.d.ts.map +0 -1
- package/dist/Verbs/AddFlow.js +0 -62
- package/dist/Verbs/AddFlow.js.map +0 -1
- package/dist/Verbs/AddTable.d.ts +0 -6
- package/dist/Verbs/AddTable.d.ts.map +0 -1
- package/dist/Verbs/AddTable.js +0 -78
- package/dist/Verbs/AddTable.js.map +0 -1
- package/dist/Verbs/AuthStatus.d.ts +0 -6
- package/dist/Verbs/AuthStatus.d.ts.map +0 -1
- package/dist/Verbs/AuthStatus.js +0 -49
- package/dist/Verbs/AuthStatus.js.map +0 -1
- package/dist/Verbs/AuthSwitch.d.ts +0 -6
- package/dist/Verbs/AuthSwitch.d.ts.map +0 -1
- package/dist/Verbs/AuthSwitch.js +0 -67
- package/dist/Verbs/AuthSwitch.js.map +0 -1
- package/dist/Verbs/BuildMaafApp.d.ts +0 -6
- package/dist/Verbs/BuildMaafApp.d.ts.map +0 -1
- package/dist/Verbs/BuildMaafApp.js +0 -172
- package/dist/Verbs/BuildMaafApp.js.map +0 -1
- package/dist/Verbs/ConnectorHelpers.d.ts +0 -164
- package/dist/Verbs/ConnectorHelpers.d.ts.map +0 -1
- package/dist/Verbs/ConnectorHelpers.js +0 -563
- package/dist/Verbs/ConnectorHelpers.js.map +0 -1
- package/dist/Verbs/CreateMaafApp.d.ts +0 -107
- package/dist/Verbs/CreateMaafApp.d.ts.map +0 -1
- package/dist/Verbs/CreateMaafApp.js +0 -1081
- package/dist/Verbs/CreateMaafApp.js.map +0 -1
- package/dist/Verbs/DeleteMaafApp.d.ts +0 -27
- package/dist/Verbs/DeleteMaafApp.d.ts.map +0 -1
- package/dist/Verbs/DeleteMaafApp.js +0 -114
- package/dist/Verbs/DeleteMaafApp.js.map +0 -1
- package/dist/Verbs/DeployMaafApp.d.ts +0 -6
- package/dist/Verbs/DeployMaafApp.d.ts.map +0 -1
- package/dist/Verbs/DeployMaafApp.js +0 -495
- package/dist/Verbs/DeployMaafApp.js.map +0 -1
- package/dist/Verbs/Dev.d.ts +0 -6
- package/dist/Verbs/Dev.d.ts.map +0 -1
- package/dist/Verbs/Dev.js +0 -276
- package/dist/Verbs/Dev.js.map +0 -1
- package/dist/Verbs/FindDataverseApi.d.ts +0 -12
- package/dist/Verbs/FindDataverseApi.d.ts.map +0 -1
- package/dist/Verbs/FindDataverseApi.js +0 -87
- package/dist/Verbs/FindDataverseApi.js.map +0 -1
- package/dist/Verbs/GetMaafApp.d.ts +0 -6
- package/dist/Verbs/GetMaafApp.d.ts.map +0 -1
- package/dist/Verbs/GetMaafApp.js +0 -80
- package/dist/Verbs/GetMaafApp.js.map +0 -1
- package/dist/Verbs/GetMaafBuildStatus.d.ts +0 -6
- package/dist/Verbs/GetMaafBuildStatus.d.ts.map +0 -1
- package/dist/Verbs/GetMaafBuildStatus.js +0 -132
- package/dist/Verbs/GetMaafBuildStatus.js.map +0 -1
- package/dist/Verbs/GetSettings.d.ts +0 -12
- package/dist/Verbs/GetSettings.d.ts.map +0 -1
- package/dist/Verbs/GetSettings.js +0 -39
- package/dist/Verbs/GetSettings.js.map +0 -1
- package/dist/Verbs/Init.d.ts +0 -6
- package/dist/Verbs/Init.d.ts.map +0 -1
- package/dist/Verbs/Init.js +0 -426
- package/dist/Verbs/Init.js.map +0 -1
- package/dist/Verbs/ListConnectionReferences.d.ts +0 -6
- package/dist/Verbs/ListConnectionReferences.d.ts.map +0 -1
- package/dist/Verbs/ListConnectionReferences.js +0 -56
- package/dist/Verbs/ListConnectionReferences.js.map +0 -1
- package/dist/Verbs/ListConnectorActions.d.ts +0 -6
- package/dist/Verbs/ListConnectorActions.d.ts.map +0 -1
- package/dist/Verbs/ListConnectorActions.js +0 -87
- package/dist/Verbs/ListConnectorActions.js.map +0 -1
- package/dist/Verbs/ListConnectors.d.ts +0 -6
- package/dist/Verbs/ListConnectors.d.ts.map +0 -1
- package/dist/Verbs/ListConnectors.js +0 -91
- package/dist/Verbs/ListConnectors.js.map +0 -1
- package/dist/Verbs/ListDatasets.d.ts +0 -6
- package/dist/Verbs/ListDatasets.d.ts.map +0 -1
- package/dist/Verbs/ListDatasets.js +0 -73
- package/dist/Verbs/ListDatasets.js.map +0 -1
- package/dist/Verbs/ListEnvironmentVariables.d.ts +0 -14
- package/dist/Verbs/ListEnvironmentVariables.d.ts.map +0 -1
- package/dist/Verbs/ListEnvironmentVariables.js +0 -52
- package/dist/Verbs/ListEnvironmentVariables.js.map +0 -1
- package/dist/Verbs/ListFlows.d.ts +0 -13
- package/dist/Verbs/ListFlows.d.ts.map +0 -1
- package/dist/Verbs/ListFlows.js +0 -73
- package/dist/Verbs/ListFlows.js.map +0 -1
- package/dist/Verbs/ListMaafApps.d.ts +0 -84
- package/dist/Verbs/ListMaafApps.d.ts.map +0 -1
- package/dist/Verbs/ListMaafApps.js +0 -221
- package/dist/Verbs/ListMaafApps.js.map +0 -1
- package/dist/Verbs/ListSqlStoredProcedures.d.ts +0 -6
- package/dist/Verbs/ListSqlStoredProcedures.d.ts.map +0 -1
- package/dist/Verbs/ListSqlStoredProcedures.js +0 -75
- package/dist/Verbs/ListSqlStoredProcedures.js.map +0 -1
- package/dist/Verbs/ListTables.d.ts +0 -6
- package/dist/Verbs/ListTables.d.ts.map +0 -1
- package/dist/Verbs/ListTables.js +0 -85
- package/dist/Verbs/ListTables.js.map +0 -1
- package/dist/Verbs/Login.d.ts +0 -6
- package/dist/Verbs/Login.d.ts.map +0 -1
- package/dist/Verbs/Login.js +0 -39
- package/dist/Verbs/Login.js.map +0 -1
- package/dist/Verbs/Logout.d.ts +0 -6
- package/dist/Verbs/Logout.d.ts.map +0 -1
- package/dist/Verbs/Logout.js +0 -34
- package/dist/Verbs/Logout.js.map +0 -1
- package/dist/Verbs/MaafAppPermissions.d.ts +0 -40
- package/dist/Verbs/MaafAppPermissions.d.ts.map +0 -1
- package/dist/Verbs/MaafAppPermissions.js +0 -651
- package/dist/Verbs/MaafAppPermissions.js.map +0 -1
- package/dist/Verbs/Pack.d.ts +0 -71
- package/dist/Verbs/Pack.d.ts.map +0 -1
- package/dist/Verbs/Pack.js +0 -370
- package/dist/Verbs/Pack.js.map +0 -1
- package/dist/Verbs/PlayMaafApp.d.ts +0 -22
- package/dist/Verbs/PlayMaafApp.d.ts.map +0 -1
- package/dist/Verbs/PlayMaafApp.js +0 -147
- package/dist/Verbs/PlayMaafApp.js.map +0 -1
- package/dist/Verbs/RefreshDataSource.d.ts +0 -21
- package/dist/Verbs/RefreshDataSource.d.ts.map +0 -1
- package/dist/Verbs/RefreshDataSource.js +0 -87
- package/dist/Verbs/RefreshDataSource.js.map +0 -1
- package/dist/Verbs/RefreshGitAuth.d.ts +0 -6
- package/dist/Verbs/RefreshGitAuth.d.ts.map +0 -1
- package/dist/Verbs/RefreshGitAuth.js +0 -155
- package/dist/Verbs/RefreshGitAuth.js.map +0 -1
- package/dist/Verbs/RemoveDataSource.d.ts +0 -6
- package/dist/Verbs/RemoveDataSource.d.ts.map +0 -1
- package/dist/Verbs/RemoveDataSource.js +0 -172
- package/dist/Verbs/RemoveDataSource.js.map +0 -1
- package/dist/Verbs/RemoveFlow.d.ts +0 -12
- package/dist/Verbs/RemoveFlow.d.ts.map +0 -1
- package/dist/Verbs/RemoveFlow.js +0 -94
- package/dist/Verbs/RemoveFlow.js.map +0 -1
- package/dist/Verbs/SetSetting.d.ts +0 -12
- package/dist/Verbs/SetSetting.d.ts.map +0 -1
- package/dist/Verbs/SetSetting.js +0 -131
- package/dist/Verbs/SetSetting.js.map +0 -1
- package/dist/Verbs/ShareLinkCreate.d.ts +0 -23
- package/dist/Verbs/ShareLinkCreate.d.ts.map +0 -1
- package/dist/Verbs/ShareLinkCreate.js +0 -73
- package/dist/Verbs/ShareLinkCreate.js.map +0 -1
- package/dist/Verbs/ShareLinkList.d.ts +0 -16
- package/dist/Verbs/ShareLinkList.d.ts.map +0 -1
- package/dist/Verbs/ShareLinkList.js +0 -84
- package/dist/Verbs/ShareLinkList.js.map +0 -1
- package/dist/Verbs/ShareLinkRevoke.d.ts +0 -22
- package/dist/Verbs/ShareLinkRevoke.d.ts.map +0 -1
- package/dist/Verbs/ShareLinkRevoke.js +0 -137
- package/dist/Verbs/ShareLinkRevoke.js.map +0 -1
- package/dist/Verbs/ShareList.d.ts +0 -10
- package/dist/Verbs/ShareList.d.ts.map +0 -1
- package/dist/Verbs/ShareList.js +0 -254
- package/dist/Verbs/ShareList.js.map +0 -1
- package/dist/Verbs/ShareMaafApp.d.ts +0 -12
- package/dist/Verbs/ShareMaafApp.d.ts.map +0 -1
- package/dist/Verbs/ShareMaafApp.js +0 -14
- package/dist/Verbs/ShareMaafApp.js.map +0 -1
- package/dist/Verbs/ShowMaafApp.d.ts +0 -100
- package/dist/Verbs/ShowMaafApp.d.ts.map +0 -1
- package/dist/Verbs/ShowMaafApp.js +0 -224
- package/dist/Verbs/ShowMaafApp.js.map +0 -1
- package/dist/Verbs/TelemetrySettings.d.ts +0 -8
- package/dist/Verbs/TelemetrySettings.d.ts.map +0 -1
- package/dist/Verbs/TelemetrySettings.js +0 -104
- package/dist/Verbs/TelemetrySettings.js.map +0 -1
- package/dist/Verbs/UnshareMaafApp.d.ts +0 -12
- package/dist/Verbs/UnshareMaafApp.d.ts.map +0 -1
- package/dist/Verbs/UnshareMaafApp.js +0 -14
- package/dist/Verbs/UnshareMaafApp.js.map +0 -1
- package/dist/Verbs/VerbConstants.d.ts +0 -628
- package/dist/Verbs/VerbConstants.d.ts.map +0 -1
- package/dist/Verbs/VerbConstants.js +0 -557
- package/dist/Verbs/VerbConstants.js.map +0 -1
- package/dist/Verbs/index.d.ts +0 -47
- package/dist/Verbs/index.d.ts.map +0 -1
- package/dist/Verbs/index.js +0 -47
- package/dist/Verbs/index.js.map +0 -1
|
@@ -1,246 +0,0 @@
|
|
|
1
|
-
/*!
|
|
2
|
-
* Copyright (C) Microsoft Corporation. All rights reserved.
|
|
3
|
-
*/
|
|
4
|
-
/**
|
|
5
|
-
* Shared inline Device Code Flow (DCF) recovery for the github catch-and-retry
|
|
6
|
-
* branch of `ms app create`, `ms app init`, `ms app build`, and `ms app deploy`.
|
|
7
|
-
* On a missing/expired/stale
|
|
8
|
-
* Entra↔GitHub identity mapping, the verb's outer catch calls this helper to
|
|
9
|
-
* prompt the user through the same device-code flow `ms git auth refresh` runs
|
|
10
|
-
* and then retries the failed action exactly once. SIGINT plumbing, telemetry,
|
|
11
|
-
* display selection, and error mapping all live here so the caller can stay
|
|
12
|
-
* focused on its own happy-path flow.
|
|
13
|
-
*/
|
|
14
|
-
import { authenticateForRepoAsync } from '@microsoft/managed-apps-actions';
|
|
15
|
-
import { getCliLogger } from '../CliSettings.js';
|
|
16
|
-
import { AuthenticationError } from '../Errors/CliError.js';
|
|
17
|
-
import { formatServerError, mapGitHubServerErrorToCliError, matchGitHubAuthError, } from '../Errors/GitHubErrorMap.js';
|
|
18
|
-
import { printInfo } from './ConsoleOutput.js';
|
|
19
|
-
import { ConsoleGitHubDcfDisplay, JsonGitHubDcfDisplay } from './GitHubDcfFlow.js';
|
|
20
|
-
import { computeRepoHash, parseRemoteUrl } from './RepoUrl.js';
|
|
21
|
-
/**
|
|
22
|
-
* Inline DCF recovery branch for the github catch-and-retry. SIGINT handling
|
|
23
|
-
* is scoped to this helper so Ctrl+C during the device-code polling loop
|
|
24
|
-
* doesn't leak a listener back to the verb's outer body. Structured server
|
|
25
|
-
* errors thrown by `authenticateForRepoAsync` are normalized through
|
|
26
|
-
* {@link formatServerError} before being rethrown so the verb's outer catch
|
|
27
|
-
* (and the single-retry contract) sees CLI-typed errors.
|
|
28
|
-
*
|
|
29
|
-
* Telemetry event prefix is derived from the verb (e.g. `'app create'` →
|
|
30
|
-
* `'Maaf.Create.GitHubDcfRecovery'`) — keeps the call site a one-liner that
|
|
31
|
-
* can't drift out of sync with the verb field.
|
|
32
|
-
*/
|
|
33
|
-
export async function runDcfRecoveryAsync(options) {
|
|
34
|
-
const { remoteUrl, tenantId, jsonMode, openBrowser, verb } = options;
|
|
35
|
-
// Best-effort generic URL split: used only for PII-safe telemetry shaping
|
|
36
|
-
// (host + repoHash) and to normalize the URL we forward to the actions
|
|
37
|
-
// layer. The CLI no longer performs scheme/host/shape validation — the
|
|
38
|
-
// server is the sole authoritative validator. On parse failure we still
|
|
39
|
-
// emit telemetry (with empty host/repoHash, preserving the property keys
|
|
40
|
-
// for downstream Kusto consumers) and forward the user-supplied URL
|
|
41
|
-
// untouched to the actions layer.
|
|
42
|
-
const { host, owner, repo } = parseRemoteUrl(remoteUrl);
|
|
43
|
-
const repoHash = owner && repo ? computeRepoHash(owner, repo) : '';
|
|
44
|
-
const normalizedRemoteUrl = host && owner && repo ? `https://${host}/${owner}/${repo}` : remoteUrl;
|
|
45
|
-
const logger = getCliLogger();
|
|
46
|
-
const eventPrefix = telemetryEventPrefixForVerb(verb);
|
|
47
|
-
// Telemetry: PII-safe — host is the parsed string, repoHash is a truncated
|
|
48
|
-
// SHA256. Emit Start at the top so a recovery that never reaches the retry
|
|
49
|
-
// (e.g. user denied auth) is still observable.
|
|
50
|
-
logger.trackActivityEvent(eventPrefix, {
|
|
51
|
-
repoHost: host,
|
|
52
|
-
repoHash,
|
|
53
|
-
});
|
|
54
|
-
if (!jsonMode) {
|
|
55
|
-
printInfo('GitHub authentication is required for this action.');
|
|
56
|
-
}
|
|
57
|
-
const display = composeRecoveryDisplay({ isJson: jsonMode, openBrowser });
|
|
58
|
-
// SIGINT plumbing: a Ctrl+C during the (potentially 15-minute) polling
|
|
59
|
-
// loop drops us out cleanly rather than leaving a dangling promise.
|
|
60
|
-
const controller = new AbortController();
|
|
61
|
-
const onSigint = () => {
|
|
62
|
-
controller.abort();
|
|
63
|
-
};
|
|
64
|
-
process.once('SIGINT', onSigint);
|
|
65
|
-
try {
|
|
66
|
-
await authenticateForRepoAsync({
|
|
67
|
-
remoteUrl: normalizedRemoteUrl,
|
|
68
|
-
tenantId,
|
|
69
|
-
logger,
|
|
70
|
-
display,
|
|
71
|
-
// Browser launch is gated by the `display` object above: `composeRecoveryDisplay`
|
|
72
|
-
// returns a display whose `openVerificationUri` is undefined by default (no
|
|
73
|
-
// --open-browser flag). `skipBrowser` is the legacy lower-level kill-switch;
|
|
74
|
-
// hardcode to false so the display contract is the single source of truth.
|
|
75
|
-
skipBrowser: false,
|
|
76
|
-
signal: controller.signal,
|
|
77
|
-
});
|
|
78
|
-
}
|
|
79
|
-
catch (error) {
|
|
80
|
-
// Pair the Start event with a Failed event on every error path so a
|
|
81
|
-
// recovery that throws (DCF declined, server error, abort) still shows
|
|
82
|
-
// up as a closed pair in the activity stream rather than an orphaned Start.
|
|
83
|
-
logger.trackActivityEvent(`${eventPrefix}.Failed`, {
|
|
84
|
-
repoHost: host,
|
|
85
|
-
repoHash,
|
|
86
|
-
});
|
|
87
|
-
const mapped = formatServerError(error);
|
|
88
|
-
throw mapped ?? error;
|
|
89
|
-
}
|
|
90
|
-
finally {
|
|
91
|
-
process.removeListener('SIGINT', onSigint);
|
|
92
|
-
}
|
|
93
|
-
logger.trackActivityEvent(`${eventPrefix}.Complete`, {
|
|
94
|
-
repoHost: host,
|
|
95
|
-
repoHash,
|
|
96
|
-
});
|
|
97
|
-
if (!jsonMode) {
|
|
98
|
-
// Printed here (before the helper returns) rather than at the retry
|
|
99
|
-
// call site so it's adjacent to the DCF-completed telemetry event. If
|
|
100
|
-
// the subsequent verb retry hard-fails, the user sees this followed by the failure message.
|
|
101
|
-
// Still accurate: we DID resume; the resumed call is what failed.
|
|
102
|
-
printInfo(resumeMessageForVerb(verb));
|
|
103
|
-
}
|
|
104
|
-
}
|
|
105
|
-
/** Verb-specific "resuming X..." message shown after a successful DCF recovery. */
|
|
106
|
-
function resumeMessageForVerb(verb) {
|
|
107
|
-
switch (verb) {
|
|
108
|
-
case 'app create':
|
|
109
|
-
return 'Resuming create...';
|
|
110
|
-
case 'app init':
|
|
111
|
-
return 'Resuming init...';
|
|
112
|
-
case 'app build':
|
|
113
|
-
return 'Resuming build...';
|
|
114
|
-
case 'app deploy':
|
|
115
|
-
return 'Resuming deploy...';
|
|
116
|
-
}
|
|
117
|
-
}
|
|
118
|
-
/**
|
|
119
|
-
* Build the right {@link GitHubDcfDisplay} for the recovery path:
|
|
120
|
-
* - JSON mode → NDJSON events, never opens a browser.
|
|
121
|
-
* - Default (no `--open-browser`) → console output, browser launch suppressed.
|
|
122
|
-
* - `--open-browser` → console output + best-effort browser launch (TTY-gated).
|
|
123
|
-
*/
|
|
124
|
-
function composeRecoveryDisplay(opts) {
|
|
125
|
-
if (opts.isJson) {
|
|
126
|
-
return new JsonGitHubDcfDisplay();
|
|
127
|
-
}
|
|
128
|
-
if (opts.openBrowser) {
|
|
129
|
-
return ConsoleGitHubDcfDisplay;
|
|
130
|
-
}
|
|
131
|
-
return {
|
|
132
|
-
...ConsoleGitHubDcfDisplay,
|
|
133
|
-
openVerificationUri: undefined,
|
|
134
|
-
};
|
|
135
|
-
}
|
|
136
|
-
/**
|
|
137
|
-
* Map a verb name to its telemetry event prefix. Keeps the create and build
|
|
138
|
-
* events under their respective `Maaf.Create.*` / `Maaf.Build.*` namespaces
|
|
139
|
-
* so dashboards that filter by namespace continue to work.
|
|
140
|
-
*/
|
|
141
|
-
function telemetryEventPrefixForVerb(verb) {
|
|
142
|
-
switch (verb) {
|
|
143
|
-
case 'app create':
|
|
144
|
-
return 'Maaf.Create.GitHubDcfRecovery';
|
|
145
|
-
case 'app init':
|
|
146
|
-
return 'Maaf.Init.GitHubDcfRecovery';
|
|
147
|
-
case 'app build':
|
|
148
|
-
return 'Maaf.Build.GitHubDcfRecovery';
|
|
149
|
-
case 'app deploy':
|
|
150
|
-
return 'Maaf.Deploy.GitHubDcfRecovery';
|
|
151
|
-
}
|
|
152
|
-
}
|
|
153
|
-
/**
|
|
154
|
-
* Higher-order wrapper that bolts the GitHub catch-and-retry DCF recovery
|
|
155
|
-
* branch onto a single async attempt. Encapsulates the
|
|
156
|
-
*
|
|
157
|
-
* try { attempt } catch { match → DCF → retry attempt → map-on-failure }
|
|
158
|
-
*
|
|
159
|
-
* pattern that `ms app create`, `ms app init`, `ms app build`, and `ms app deploy`
|
|
160
|
-
* all need, so the verbs stay focused on their own happy-path flow.
|
|
161
|
-
*
|
|
162
|
-
* Contract:
|
|
163
|
-
* - The attempt runs at most twice; DCF runs at most once. No looping.
|
|
164
|
-
* - The attempt callback receives `{ isRetry: false }` on the first call
|
|
165
|
-
* and `{ isRetry: true }` on the post-DCF retry so callers can
|
|
166
|
-
* conditionally alter their request (e.g. drop `forceReauth` on retry
|
|
167
|
-
* so the just-refreshed mapping isn't bypassed again).
|
|
168
|
-
* - `repoType !== 'github'` is a no-op around the attempt — the original
|
|
169
|
-
* error escapes untouched so native/none verbs behave identically to the
|
|
170
|
-
* un-wrapped call.
|
|
171
|
-
* - First-attempt errors that {@link matchGitHubAuthError} doesn't recognize
|
|
172
|
-
* are normalized via {@link formatServerError} (which handles
|
|
173
|
-
* `GrsServerError`, `HttpClientError`, and structured `Error` envelopes)
|
|
174
|
-
* before being rethrown; everything else escapes as-is.
|
|
175
|
-
* - A matching first-attempt error with no `externalRepoUrl` throws a
|
|
176
|
-
* verb-agnostic {@link AuthenticationError} before DCF is invoked — DCF
|
|
177
|
-
* itself requires a URL to derive host/owner/repo.
|
|
178
|
-
* - Second-attempt (post-DCF) errors follow the same map-and-rethrow
|
|
179
|
-
* contract; a still-matching error after DCF surfaces through the
|
|
180
|
-
* friendly mapper rather than looping the device flow.
|
|
181
|
-
*
|
|
182
|
-
* `runDcfRecovery` is an optional dependency seam — defaults to the real
|
|
183
|
-
* {@link runDcfRecoveryAsync}; tests inject a stub so they don't have to
|
|
184
|
-
* spin up the device-code polling loop.
|
|
185
|
-
*/
|
|
186
|
-
export async function withGitHubDcfRecoveryAsync(attempt, options, runDcfRecovery = runDcfRecoveryAsync) {
|
|
187
|
-
const { repoType, externalRepoUrl, tenantId, jsonMode, openBrowser, verb } = options;
|
|
188
|
-
try {
|
|
189
|
-
// Happy path: attempt succeeds on the first try, no DCF, no retry.
|
|
190
|
-
return await attempt({ isRetry: false });
|
|
191
|
-
}
|
|
192
|
-
catch (err) {
|
|
193
|
-
if (repoType !== 'github')
|
|
194
|
-
throw err;
|
|
195
|
-
const matched = matchGitHubAuthError(err);
|
|
196
|
-
if (!matched) {
|
|
197
|
-
// Non-matching first-attempt error: normalize known structured server
|
|
198
|
-
// errors to friendly CLI errors, otherwise rethrow untouched.
|
|
199
|
-
const mapped = formatServerError(err);
|
|
200
|
-
if (mapped)
|
|
201
|
-
throw mapped;
|
|
202
|
-
throw err;
|
|
203
|
-
}
|
|
204
|
-
// Legacy guard: apps created before `externalRepoUrl` was persisted to
|
|
205
|
-
// ms.config.json hit this branch with no URL to authenticate against.
|
|
206
|
-
// Fail fast with an actionable message rather than crashing inside DCF
|
|
207
|
-
// recovery (which would also bypass the Start telemetry).
|
|
208
|
-
if (!externalRepoUrl) {
|
|
209
|
-
throw new AuthenticationError('GitHub authentication is required, but the app config does not record the external ' +
|
|
210
|
-
'repository URL needed to recover the identity mapping. This app may have been created ' +
|
|
211
|
-
'before the URL was persisted to `ms.config.json`. Either add ' +
|
|
212
|
-
'`externalRepoUrl: "<your repo url>"` to `ms.config.json`, or recreate the app with ' +
|
|
213
|
-
`\`ms app create --repo <your repo url>\`, then run \`ms ${verb}\` again.`);
|
|
214
|
-
}
|
|
215
|
-
await runDcfRecovery({
|
|
216
|
-
remoteUrl: externalRepoUrl,
|
|
217
|
-
tenantId,
|
|
218
|
-
jsonMode,
|
|
219
|
-
openBrowser,
|
|
220
|
-
verb,
|
|
221
|
-
});
|
|
222
|
-
try {
|
|
223
|
-
return await attempt({ isRetry: true });
|
|
224
|
-
}
|
|
225
|
-
catch (retryErr) {
|
|
226
|
-
const remapped = matchGitHubAuthError(retryErr);
|
|
227
|
-
if (remapped) {
|
|
228
|
-
// Single-retry contract: a still-matching error after DCF surfaces
|
|
229
|
-
// through the friendly verb-agnostic mapper so the user sees the
|
|
230
|
-
// same wording as on a first-attempt mapping failure. We deliberately
|
|
231
|
-
// do NOT loop DCF — repeated failures suggest the user can't complete
|
|
232
|
-
// the device-code flow and another loop would just hang. Fall through
|
|
233
|
-
// to `retryErr` if the mapper somehow returns null (defensive — the
|
|
234
|
-
// mapper recognizes every code matchGitHubAuthError matches on).
|
|
235
|
-
const mapped = mapGitHubServerErrorToCliError(remapped.payload);
|
|
236
|
-
throw mapped ?? retryErr;
|
|
237
|
-
}
|
|
238
|
-
// Non-matching retry error: same map-or-rethrow shape as the first attempt.
|
|
239
|
-
const mapped = formatServerError(retryErr);
|
|
240
|
-
if (mapped)
|
|
241
|
-
throw mapped;
|
|
242
|
-
throw retryErr;
|
|
243
|
-
}
|
|
244
|
-
}
|
|
245
|
-
}
|
|
246
|
-
//# sourceMappingURL=DcfRecovery.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"DcfRecovery.js","sourceRoot":"","sources":["../../src/Utils/DcfRecovery.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
/*!
|
|
2
|
-
* Copyright (C) Microsoft Corporation. All rights reserved.
|
|
3
|
-
*/
|
|
4
|
-
import type { PackageJson } from './ReadPackageJson.js';
|
|
5
|
-
declare const SUPPORTED_PACKAGE_MANAGERS: readonly ["bun", "pnpm", "yarn", "npm"];
|
|
6
|
-
type PackageManager = (typeof SUPPORTED_PACKAGE_MANAGERS)[number];
|
|
7
|
-
export declare function detectPackageManager(projectRoot: string, pkg?: PackageJson): PackageManager;
|
|
8
|
-
export {};
|
|
9
|
-
//# sourceMappingURL=DetectPackageManager.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"DetectPackageManager.d.ts","sourceRoot":"","sources":["../../src/Utils/DetectPackageManager.ts"],"names":[],"mappings":"AAAA;;GAEG;AAKH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAErD,QAAA,MAAM,0BAA0B,yCAA0C,CAAC;AAC3E,KAAK,cAAc,GAAG,CAAC,OAAO,0BAA0B,CAAC,CAAC,MAAM,CAAC,CAAC;AAElE,wBAAgB,oBAAoB,CAAC,WAAW,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE,WAAW,GAAG,cAAc,CAmB3F"}
|
|
@@ -1,24 +0,0 @@
|
|
|
1
|
-
/*!
|
|
2
|
-
* Copyright (C) Microsoft Corporation. All rights reserved.
|
|
3
|
-
*/
|
|
4
|
-
import * as fs from 'fs';
|
|
5
|
-
import * as path from 'path';
|
|
6
|
-
const SUPPORTED_PACKAGE_MANAGERS = ['bun', 'pnpm', 'yarn', 'npm'];
|
|
7
|
-
export function detectPackageManager(projectRoot, pkg) {
|
|
8
|
-
const declared = pkg?.packageManager?.split('@')[0];
|
|
9
|
-
if (declared && SUPPORTED_PACKAGE_MANAGERS.includes(declared)) {
|
|
10
|
-
return declared;
|
|
11
|
-
}
|
|
12
|
-
if (fs.existsSync(path.join(projectRoot, 'bun.lockb')) ||
|
|
13
|
-
fs.existsSync(path.join(projectRoot, 'bun.lock'))) {
|
|
14
|
-
return 'bun';
|
|
15
|
-
}
|
|
16
|
-
if (fs.existsSync(path.join(projectRoot, 'pnpm-lock.yaml'))) {
|
|
17
|
-
return 'pnpm';
|
|
18
|
-
}
|
|
19
|
-
if (fs.existsSync(path.join(projectRoot, 'yarn.lock'))) {
|
|
20
|
-
return 'yarn';
|
|
21
|
-
}
|
|
22
|
-
return 'npm';
|
|
23
|
-
}
|
|
24
|
-
//# sourceMappingURL=DetectPackageManager.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"DetectPackageManager.js","sourceRoot":"","sources":["../../src/Utils/DetectPackageManager.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,MAAM,IAAI,CAAC;AACzB,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAI7B,MAAM,0BAA0B,GAAG,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,CAAU,CAAC;AAG3E,MAAM,UAAU,oBAAoB,CAAC,WAAmB,EAAE,GAAiB;IACzE,MAAM,QAAQ,GAAG,GAAG,EAAE,cAAc,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAmB,CAAC;IACtE,IAAI,QAAQ,IAAI,0BAA0B,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC9D,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED,IACE,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,WAAW,CAAC,CAAC;QAClD,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,UAAU,CAAC,CAAC,EACjD,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IACD,IAAI,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,gBAAgB,CAAC,CAAC,EAAE,CAAC;QAC5D,OAAO,MAAM,CAAC;IAChB,CAAC;IACD,IAAI,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,WAAW,CAAC,CAAC,EAAE,CAAC;QACvD,OAAO,MAAM,CAAC;IAChB,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC"}
|
|
@@ -1,45 +0,0 @@
|
|
|
1
|
-
/*!
|
|
2
|
-
* Copyright (C) Microsoft Corporation. All rights reserved.
|
|
3
|
-
*/
|
|
4
|
-
export interface ParsedGithubTemplate {
|
|
5
|
-
owner: string;
|
|
6
|
-
repo: string;
|
|
7
|
-
/** Empty string when the whole repo is the template (no subdir). */
|
|
8
|
-
subdir: string;
|
|
9
|
-
/**
|
|
10
|
-
* Optional branch or tag specified via the `#ref` suffix. Commit SHAs are
|
|
11
|
-
* NOT supported — the downloader passes this value to `git clone --branch`,
|
|
12
|
-
* which only resolves named refs, not raw commit hashes.
|
|
13
|
-
*/
|
|
14
|
-
ref: string | undefined;
|
|
15
|
-
}
|
|
16
|
-
/**
|
|
17
|
-
* Parses a template source. Accepted shapes:
|
|
18
|
-
*
|
|
19
|
-
* github:<owner>/<repo>[/<subdir>...][#<ref>]
|
|
20
|
-
* gh:<owner>/<repo>[/<subdir>...][#<ref>] (shorthand)
|
|
21
|
-
* <owner>/<repo>[/<subdir>...][#<ref>] (prefix optional)
|
|
22
|
-
* https://github.com/<owner>/<repo>[.git][#<ref>]
|
|
23
|
-
* https://github.com/<owner>/<repo>/tree/<ref>[/<subdir>]
|
|
24
|
-
*
|
|
25
|
-
* Throws `UsageError` for any other shape — non-github providers (`gitlab:`,
|
|
26
|
-
* `bitbucket:`, …), arbitrary tarball URLs, and github file URLs (`/blob/...`).
|
|
27
|
-
* The CLI is intentionally github-only here: github is the only provider in
|
|
28
|
-
* real use, and authentication against private github repos already flows
|
|
29
|
-
* through the user's normal git credential setup.
|
|
30
|
-
*/
|
|
31
|
-
export declare function parseGithubTemplate(source: string): ParsedGithubTemplate;
|
|
32
|
-
/**
|
|
33
|
-
* Downloads a github-hosted template into `dir`. Uses a shallow + partial +
|
|
34
|
-
* sparse clone so only the requested subdirectory is fetched, then copies the
|
|
35
|
-
* working tree into place via `fs.cpSync` and discards the temporary clone.
|
|
36
|
-
*
|
|
37
|
-
* Requires `git` on PATH; callers should run `ensureGitInstalled` in preflight
|
|
38
|
-
* so a missing-git failure surfaces before any server call. Authentication for
|
|
39
|
-
* private repos flows through the user's existing git credential setup
|
|
40
|
-
* (gh, GCM, SSH key, PAT) — the CLI does not inject tokens at this layer.
|
|
41
|
-
*/
|
|
42
|
-
export declare function downloadTemplate(source: string, options: {
|
|
43
|
-
dir: string;
|
|
44
|
-
}): void;
|
|
45
|
-
//# sourceMappingURL=DownloadTemplate.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"DownloadTemplate.d.ts","sourceRoot":"","sources":["../../src/Utils/DownloadTemplate.ts"],"names":[],"mappings":"AAAA;;GAEG;AASH,MAAM,WAAW,oBAAoB;IACnC,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,oEAAoE;IACpE,MAAM,EAAE,MAAM,CAAC;IACf;;;;OAIG;IACH,GAAG,EAAE,MAAM,GAAG,SAAS,CAAC;CACzB;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,MAAM,GAAG,oBAAoB,CA2FxE;AAED;;;;;;;;;GASG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE;IAAE,GAAG,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CAoD/E"}
|
|
@@ -1,161 +0,0 @@
|
|
|
1
|
-
/*!
|
|
2
|
-
* Copyright (C) Microsoft Corporation. All rights reserved.
|
|
3
|
-
*/
|
|
4
|
-
import * as fs from 'fs';
|
|
5
|
-
import * as os from 'os';
|
|
6
|
-
import * as path from 'path';
|
|
7
|
-
import { UsageError } from '../Errors/CliError.js';
|
|
8
|
-
import { runGit } from './GitRunner.js';
|
|
9
|
-
/**
|
|
10
|
-
* Parses a template source. Accepted shapes:
|
|
11
|
-
*
|
|
12
|
-
* github:<owner>/<repo>[/<subdir>...][#<ref>]
|
|
13
|
-
* gh:<owner>/<repo>[/<subdir>...][#<ref>] (shorthand)
|
|
14
|
-
* <owner>/<repo>[/<subdir>...][#<ref>] (prefix optional)
|
|
15
|
-
* https://github.com/<owner>/<repo>[.git][#<ref>]
|
|
16
|
-
* https://github.com/<owner>/<repo>/tree/<ref>[/<subdir>]
|
|
17
|
-
*
|
|
18
|
-
* Throws `UsageError` for any other shape — non-github providers (`gitlab:`,
|
|
19
|
-
* `bitbucket:`, …), arbitrary tarball URLs, and github file URLs (`/blob/...`).
|
|
20
|
-
* The CLI is intentionally github-only here: github is the only provider in
|
|
21
|
-
* real use, and authentication against private github repos already flows
|
|
22
|
-
* through the user's normal git credential setup.
|
|
23
|
-
*/
|
|
24
|
-
export function parseGithubTemplate(source) {
|
|
25
|
-
if (!source) {
|
|
26
|
-
throw new UsageError('Template source is empty. Use --template to specify one.');
|
|
27
|
-
}
|
|
28
|
-
// 1. Raw github.com URL — common when the user pastes from a browser
|
|
29
|
-
// address bar. We use the WHATWG URL parser rather than regex so query
|
|
30
|
-
// params (`?tab=readme`), mixed-case hosts, trailing slashes, embedded
|
|
31
|
-
// userinfo, and percent-encoded segments all get normalised away
|
|
32
|
-
// automatically. The path is then matched against the two shapes we
|
|
33
|
-
// support: bare-repo (`/<owner>/<repo>[.git]`) and the web-UI subdir
|
|
34
|
-
// form (`/<owner>/<repo>/tree/<branch>[/<subdir>...]`). `/blob/...`
|
|
35
|
-
// (file URLs) and any other path shape are rejected with a clear error
|
|
36
|
-
// so the failure isn't a confusing mid-flow clone failure.
|
|
37
|
-
if (/^https?:\/\//i.test(source)) {
|
|
38
|
-
let url;
|
|
39
|
-
try {
|
|
40
|
-
url = new URL(source);
|
|
41
|
-
}
|
|
42
|
-
catch {
|
|
43
|
-
throw new UsageError(`Template source '${source}' is not a valid URL.`);
|
|
44
|
-
}
|
|
45
|
-
if (url.hostname.toLowerCase() !== 'github.com') {
|
|
46
|
-
throw new UsageError(`Template source '${source}' uses host '${url.hostname}'; only github.com URLs are supported.`);
|
|
47
|
-
}
|
|
48
|
-
const segments = url.pathname.split('/').filter(Boolean);
|
|
49
|
-
if (segments.length < 2) {
|
|
50
|
-
throw new UsageError(`Template source '${source}' is missing the owner/repo path. ` +
|
|
51
|
-
`Use 'https://github.com/<owner>/<repo>'.`);
|
|
52
|
-
}
|
|
53
|
-
const [owner, rawRepo, ...rest] = segments;
|
|
54
|
-
const repo = rawRepo.endsWith('.git') ? rawRepo.slice(0, -'.git'.length) : rawRepo;
|
|
55
|
-
const hashRef = url.hash ? url.hash.slice(1) : undefined;
|
|
56
|
-
if (rest.length === 0) {
|
|
57
|
-
return { owner, repo, subdir: '', ref: hashRef };
|
|
58
|
-
}
|
|
59
|
-
// Web-UI subdir form: /<owner>/<repo>/tree/<branch>[/<subdir>...]. We can't
|
|
60
|
-
// disambiguate `branch` from `subdir` when the branch name contains a `/`
|
|
61
|
-
// (we'd need to look up refs on the server). The downloadTemplate
|
|
62
|
-
// subdir-not-found error tells the user to switch to the `#<ref>` shorthand.
|
|
63
|
-
if (rest[0].toLowerCase() === 'tree' && rest.length >= 2) {
|
|
64
|
-
return {
|
|
65
|
-
owner,
|
|
66
|
-
repo,
|
|
67
|
-
subdir: rest.slice(2).join('/'),
|
|
68
|
-
ref: hashRef ?? rest[1],
|
|
69
|
-
};
|
|
70
|
-
}
|
|
71
|
-
if (rest[0].toLowerCase() === 'blob') {
|
|
72
|
-
throw new UsageError(`Template source '${source}' points at a file ('/blob/...'). ` +
|
|
73
|
-
`Templates must be a directory — use the '/tree/<branch>/<subdir>' URL form instead.`);
|
|
74
|
-
}
|
|
75
|
-
throw new UsageError(`Template source '${source}' has an unrecognised path. Use ` +
|
|
76
|
-
`'https://github.com/<owner>/<repo>' or ` +
|
|
77
|
-
`'https://github.com/<owner>/<repo>/tree/<branch>/<subdir>'.`);
|
|
78
|
-
}
|
|
79
|
-
// 2. Reject any prefix other than `github:` or `gh:` up front so the failure
|
|
80
|
-
// mode is a clear preflight error rather than a confusing clone failure.
|
|
81
|
-
const prefixMatch = /^([a-z][a-z0-9+.-]*):/i.exec(source);
|
|
82
|
-
if (prefixMatch) {
|
|
83
|
-
const prefix = prefixMatch[1].toLowerCase();
|
|
84
|
-
if (prefix !== 'github' && prefix !== 'gh') {
|
|
85
|
-
throw new UsageError(`Template source '${source}' uses unsupported provider prefix '${prefixMatch[1]}:'. ` +
|
|
86
|
-
`Only 'github:' (or 'gh:' shorthand) templates are supported.`);
|
|
87
|
-
}
|
|
88
|
-
}
|
|
89
|
-
// 3. Shorthand: 'github:owner/repo[/subdir][#ref]', 'gh:owner/repo[...]', or
|
|
90
|
-
// bare 'owner/repo[...]'.
|
|
91
|
-
const stripped = source.replace(/^(?:github|gh):/i, '');
|
|
92
|
-
const [pathPart, ref] = stripped.split('#', 2);
|
|
93
|
-
const parts = pathPart.split('/').filter(Boolean);
|
|
94
|
-
if (parts.length < 2) {
|
|
95
|
-
throw new UsageError(`Template source '${source}' is missing the owner/repo path. ` +
|
|
96
|
-
`Expected 'github:<owner>/<repo>[/<subdir>]'.`);
|
|
97
|
-
}
|
|
98
|
-
const [owner, repo, ...subdirParts] = parts;
|
|
99
|
-
return { owner, repo, subdir: subdirParts.join('/'), ref: ref || undefined };
|
|
100
|
-
}
|
|
101
|
-
/**
|
|
102
|
-
* Downloads a github-hosted template into `dir`. Uses a shallow + partial +
|
|
103
|
-
* sparse clone so only the requested subdirectory is fetched, then copies the
|
|
104
|
-
* working tree into place via `fs.cpSync` and discards the temporary clone.
|
|
105
|
-
*
|
|
106
|
-
* Requires `git` on PATH; callers should run `ensureGitInstalled` in preflight
|
|
107
|
-
* so a missing-git failure surfaces before any server call. Authentication for
|
|
108
|
-
* private repos flows through the user's existing git credential setup
|
|
109
|
-
* (gh, GCM, SSH key, PAT) — the CLI does not inject tokens at this layer.
|
|
110
|
-
*/
|
|
111
|
-
export function downloadTemplate(source, options) {
|
|
112
|
-
const parsed = parseGithubTemplate(source);
|
|
113
|
-
const repoUrl = `https://github.com/${parsed.owner}/${parsed.repo}.git`;
|
|
114
|
-
const tmp = fs.mkdtempSync(path.join(os.tmpdir(), 'ms-template-'));
|
|
115
|
-
try {
|
|
116
|
-
// `--filter=blob:none` defers blob download until checkout; combined with
|
|
117
|
-
// `--sparse` it means we only ever fetch blobs inside the requested
|
|
118
|
-
// subdir. For no-subdir templates we still want `--depth=1` for a shallow
|
|
119
|
-
// clone but skip `--sparse` so the whole tree checks out.
|
|
120
|
-
const cloneArgs = ['clone', '--depth=1', '--filter=blob:none'];
|
|
121
|
-
if (parsed.subdir)
|
|
122
|
-
cloneArgs.push('--sparse');
|
|
123
|
-
if (parsed.ref)
|
|
124
|
-
cloneArgs.push('--branch', parsed.ref);
|
|
125
|
-
cloneArgs.push(repoUrl, tmp);
|
|
126
|
-
// network op: stderr is captured + re-emitted by runGit. We deliberately do
|
|
127
|
-
// NOT opt into runGit's GRS error classifier here — template auth flows
|
|
128
|
-
// through the user's normal github credentials, not the GRS OAuth mapping,
|
|
129
|
-
// so a "run ms git auth refresh" hint would be misleading.
|
|
130
|
-
runGit(cloneArgs, { network: true });
|
|
131
|
-
if (parsed.subdir) {
|
|
132
|
-
runGit(['-C', tmp, 'sparse-checkout', 'set', parsed.subdir]);
|
|
133
|
-
}
|
|
134
|
-
const checkoutSource = parsed.subdir ? path.join(tmp, parsed.subdir) : tmp;
|
|
135
|
-
if (!fs.existsSync(checkoutSource)) {
|
|
136
|
-
// Common cause when this fires from the `/tree/<branch>/<subdir>` URL form:
|
|
137
|
-
// the branch name contains a `/` (e.g. `feat/foo`), and the parser took the
|
|
138
|
-
// first segment after `/tree/` as the ref — so `subdir` ended up shifted
|
|
139
|
-
// and the requested path doesn't exist. The shorthand `#<ref>` form is
|
|
140
|
-
// unambiguous and the recommended workaround.
|
|
141
|
-
throw new UsageError(`Template subdirectory '${parsed.subdir}' was not found in ` +
|
|
142
|
-
`https://github.com/${parsed.owner}/${parsed.repo}` +
|
|
143
|
-
`${parsed.ref ? ` at ref '${parsed.ref}'` : ''}. ` +
|
|
144
|
-
`If the branch name contains '/', use the ` +
|
|
145
|
-
`'github:<owner>/<repo>/<subdir>#<branch>' form to disambiguate.`);
|
|
146
|
-
}
|
|
147
|
-
fs.mkdirSync(options.dir, { recursive: true });
|
|
148
|
-
fs.cpSync(checkoutSource, options.dir, {
|
|
149
|
-
recursive: true,
|
|
150
|
-
force: true,
|
|
151
|
-
// Skip `.git` when copying. With `--sparse` + subdir the .git lives at
|
|
152
|
-
// `tmp/.git` (outside the copy source), so this matters mainly for the
|
|
153
|
-
// no-subdir path where the copy source IS the clone root.
|
|
154
|
-
filter: (src) => path.basename(src) !== '.git',
|
|
155
|
-
});
|
|
156
|
-
}
|
|
157
|
-
finally {
|
|
158
|
-
fs.rmSync(tmp, { recursive: true, force: true });
|
|
159
|
-
}
|
|
160
|
-
}
|
|
161
|
-
//# sourceMappingURL=DownloadTemplate.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"DownloadTemplate.js","sourceRoot":"","sources":["../../src/Utils/DownloadTemplate.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
/*!
|
|
2
|
-
* Copyright (C) Microsoft Corporation. All rights reserved.
|
|
3
|
-
*/
|
|
4
|
-
/**
|
|
5
|
-
* Enhances network/fetch error messages with more detailed information
|
|
6
|
-
* about the underlying cause when available.
|
|
7
|
-
*
|
|
8
|
-
* @param error - The original error from fetch
|
|
9
|
-
* @param method - HTTP method (GET, POST, etc.)
|
|
10
|
-
* @param url - The URL that was being accessed
|
|
11
|
-
* @returns Enhanced error with more detailed message
|
|
12
|
-
*/
|
|
13
|
-
export declare function enhanceNetworkError(error: unknown, method: string, url: string): Error;
|
|
14
|
-
//# sourceMappingURL=EnhanceNetworkError.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"EnhanceNetworkError.d.ts","sourceRoot":"","sources":["../../src/Utils/EnhanceNetworkError.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH;;;;;;;;GAQG;AACH,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,KAAK,CAgDtF"}
|
|
@@ -1,61 +0,0 @@
|
|
|
1
|
-
/*!
|
|
2
|
-
* Copyright (C) Microsoft Corporation. All rights reserved.
|
|
3
|
-
*/
|
|
4
|
-
/* eslint-disable @typescript-eslint/no-explicit-any */
|
|
5
|
-
/**
|
|
6
|
-
* Enhances network/fetch error messages with more detailed information
|
|
7
|
-
* about the underlying cause when available.
|
|
8
|
-
*
|
|
9
|
-
* @param error - The original error from fetch
|
|
10
|
-
* @param method - HTTP method (GET, POST, etc.)
|
|
11
|
-
* @param url - The URL that was being accessed
|
|
12
|
-
* @returns Enhanced error with more detailed message
|
|
13
|
-
*/
|
|
14
|
-
export function enhanceNetworkError(error, method, url) {
|
|
15
|
-
if (!(error instanceof TypeError) || !error.message.includes('fetch failed')) {
|
|
16
|
-
// Not a fetch failure, return original error
|
|
17
|
-
return error instanceof Error ? error : new Error(String(error));
|
|
18
|
-
}
|
|
19
|
-
let detailedMessage = `Network request failed for ${method} ${url}.`;
|
|
20
|
-
// Try to extract more specific error details from the cause chain
|
|
21
|
-
const cause = error.cause;
|
|
22
|
-
if (cause) {
|
|
23
|
-
const errorCode = cause.code || cause.errno;
|
|
24
|
-
cause.code = errorCode; // Ensure code is on the cause for easier access
|
|
25
|
-
if (errorCode === 'ENOTFOUND') {
|
|
26
|
-
detailedMessage += ` DNS lookup failed - unable to resolve hostname.`;
|
|
27
|
-
}
|
|
28
|
-
else if (errorCode === 'ECONNREFUSED') {
|
|
29
|
-
detailedMessage += ` Connection refused - server is not accepting connections.`;
|
|
30
|
-
}
|
|
31
|
-
else if (errorCode === 'ETIMEDOUT') {
|
|
32
|
-
detailedMessage += ` Connection timed out - server did not respond in time.`;
|
|
33
|
-
}
|
|
34
|
-
else if (errorCode === 'ECONNRESET') {
|
|
35
|
-
detailedMessage += ` Connection reset - server closed the connection unexpectedly.`;
|
|
36
|
-
}
|
|
37
|
-
else if (errorCode === 'UNABLE_TO_VERIFY_LEAF_SIGNATURE' ||
|
|
38
|
-
errorCode === 'CERT_HAS_EXPIRED' ||
|
|
39
|
-
String(errorCode).startsWith('CERT_')) {
|
|
40
|
-
detailedMessage += ` Certificate validation failed (${errorCode}).`;
|
|
41
|
-
}
|
|
42
|
-
else if (errorCode) {
|
|
43
|
-
detailedMessage += ` System error: ${errorCode}.`;
|
|
44
|
-
}
|
|
45
|
-
if (cause.message && cause.message !== error.message) {
|
|
46
|
-
detailedMessage += ` Details: ${cause.message}`;
|
|
47
|
-
}
|
|
48
|
-
}
|
|
49
|
-
// Add general suggestions if we don't have a specific error code
|
|
50
|
-
if (!cause || !cause.code) {
|
|
51
|
-
detailedMessage +=
|
|
52
|
-
` Possible causes: network connectivity issues, DNS resolution failure, ` +
|
|
53
|
-
`VPN/proxy configuration, firewall/certificate issues, or server not reachable.`;
|
|
54
|
-
}
|
|
55
|
-
const enhancedError = new Error(detailedMessage);
|
|
56
|
-
enhancedError.name = cause?.code;
|
|
57
|
-
enhancedError.cause = error;
|
|
58
|
-
return enhancedError;
|
|
59
|
-
}
|
|
60
|
-
/* eslint-enable @typescript-eslint/no-explicit-any */
|
|
61
|
-
//# sourceMappingURL=EnhanceNetworkError.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"EnhanceNetworkError.js","sourceRoot":"","sources":["../../src/Utils/EnhanceNetworkError.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,uDAAuD;AACvD;;;;;;;;GAQG;AACH,MAAM,UAAU,mBAAmB,CAAC,KAAc,EAAE,MAAc,EAAE,GAAW;IAC7E,IAAI,CAAC,CAAC,KAAK,YAAY,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAC,EAAE,CAAC;QAC7E,6CAA6C;QAC7C,OAAO,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;IACnE,CAAC;IAED,IAAI,eAAe,GAAG,8BAA8B,MAAM,IAAI,GAAG,GAAG,CAAC;IAErE,kEAAkE;IAClE,MAAM,KAAK,GAAI,KAAa,CAAC,KAAK,CAAC;IACnC,IAAI,KAAK,EAAE,CAAC;QACV,MAAM,SAAS,GAAG,KAAK,CAAC,IAAI,IAAI,KAAK,CAAC,KAAK,CAAC;QAC5C,KAAK,CAAC,IAAI,GAAG,SAAS,CAAC,CAAC,gDAAgD;QAExE,IAAI,SAAS,KAAK,WAAW,EAAE,CAAC;YAC9B,eAAe,IAAI,kDAAkD,CAAC;QACxE,CAAC;aAAM,IAAI,SAAS,KAAK,cAAc,EAAE,CAAC;YACxC,eAAe,IAAI,4DAA4D,CAAC;QAClF,CAAC;aAAM,IAAI,SAAS,KAAK,WAAW,EAAE,CAAC;YACrC,eAAe,IAAI,yDAAyD,CAAC;QAC/E,CAAC;aAAM,IAAI,SAAS,KAAK,YAAY,EAAE,CAAC;YACtC,eAAe,IAAI,gEAAgE,CAAC;QACtF,CAAC;aAAM,IACL,SAAS,KAAK,iCAAiC;YAC/C,SAAS,KAAK,kBAAkB;YAChC,MAAM,CAAC,SAAS,CAAC,CAAC,UAAU,CAAC,OAAO,CAAC,EACrC,CAAC;YACD,eAAe,IAAI,mCAAmC,SAAS,IAAI,CAAC;QACtE,CAAC;aAAM,IAAI,SAAS,EAAE,CAAC;YACrB,eAAe,IAAI,kBAAkB,SAAS,GAAG,CAAC;QACpD,CAAC;QAED,IAAI,KAAK,CAAC,OAAO,IAAI,KAAK,CAAC,OAAO,KAAK,KAAK,CAAC,OAAO,EAAE,CAAC;YACrD,eAAe,IAAI,aAAa,KAAK,CAAC,OAAO,EAAE,CAAC;QAClD,CAAC;IACH,CAAC;IAED,iEAAiE;IACjE,IAAI,CAAC,KAAK,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;QAC1B,eAAe;YACb,yEAAyE;gBACzE,gFAAgF,CAAC;IACrF,CAAC;IAED,MAAM,aAAa,GAAG,IAAI,KAAK,CAAC,eAAe,CAAC,CAAC;IACjD,aAAa,CAAC,IAAI,GAAG,KAAK,EAAE,IAAI,CAAC;IAChC,aAAqB,CAAC,KAAK,GAAG,KAAK,CAAC;IACrC,OAAO,aAAa,CAAC;AACvB,CAAC;AACD,sDAAsD"}
|
package/dist/Utils/EnvVars.d.ts
DELETED
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
/*!
|
|
2
|
-
* Copyright (C) Microsoft Corporation. All rights reserved.
|
|
3
|
-
*/
|
|
4
|
-
export type CliEnvVarName = 'USE_SP_AUTH' | 'USE_NOOP_AUTH' | 'SP_CLIENT_ID' | 'SP_CLIENT_SECRET' | 'SP_TENANT_ID' | 'MOCK_BACKEND' | 'MOCK_BACKEND_VERBOSE' | 'MOCK_BACKEND_LOG' | 'E2E_LIVE_BACKEND' | 'USE_HTTP_FORWARD' | 'HTTP_FORWARD_URL' | 'HTTP_FORWARD_AUTH_TOKEN' | 'HTTP_FORWARD_TENANT_ID' | 'HTTP_FORWARD_HEADERS' | 'ENABLE_CONNECTOR_USER_CONSENT' | 'REMOTE_TELEMETRY' | 'CONSOLE_TELEMETRY' | 'ORIGIN' | 'EMBEDDING_HOST_CORRELATION_ID' | 'USE_MMA_APP_ID' | 'CONFIG_DIR' | 'WORKING_DIRECTORY' | 'MAAF_DEBUG_ENVIRONMENT_ID' | 'MAAF_GRS_ENDPOINT_OVERRIDE' | 'ENVIRONMENT_ID' | 'APP_DISPLAY_NAME' | 'APP_DESCRIPTION' | 'APP_ID' | 'APP_TEMPLATE' | 'APP_REPOSITORY_ID' | 'APP_REPO' | 'APP_ICON_PATH' | 'LOCAL_APP_URL' | 'BUILD_PATH' | 'BUILD_COMMAND' | 'BUILD_ENTRY_POINT' | 'CONFIG_ONLY' | 'PORT' | 'CLOUD_INSTANCE' | 'CONNECTOR' | 'CONNECTION_ID' | 'CONNECTION_REF' | 'CONNECTOR_ID' | 'CONNECTOR_SEARCH' | 'CONNECTOR_ACTION_SEARCH' | 'DATASET' | 'TABLE' | 'TABLE_NAME' | 'DATA_SOURCE_NAME' | 'SEARCH_TERM' | 'DATAVERSE_API_SEARCH_TERM' | 'DATAVERSE_ENVIRONMENT_ID' | 'SQL_STORED_PROCEDURE' | 'ENV_URL' | 'SOLUTION_ID' | 'ADD_CONNECTOR_AS' | 'FLOW_ID' | 'FLOW_SEARCH' | 'FLOW_DATA_SOURCE_NAME' | 'REMOVE_FLOW_ID' | 'MAAF_APP_NAME' | 'MAAF_APP_ACCESS' | 'MAAF_COMMIT_SHA' | 'MAAF_PLAY_MODE' | 'MAAF_ENVIRONMENT_ID' | 'MAAF_SHARE_LINK_ID' | 'MAAF_DEPLOY_ARTIFACT' | 'MAAF_GITHUB_REPO' | 'LIST_ENVIRONMENT_ID' | 'LIST_PERMISSION' | 'SKIP_CODEGEN' | 'USE_V1_CODEGEN' | 'OFFLINE' | 'USE_SSO' | 'APP_SHOW_HEADER';
|
|
5
|
-
export declare function cliEnvVarFullName(name: CliEnvVarName): string;
|
|
6
|
-
export declare function getCliEnvVar(name: CliEnvVarName): string | undefined;
|
|
7
|
-
export declare function getCliEnvVarBool(name: CliEnvVarName): boolean;
|
|
8
|
-
/** Read a system or external env var that has no MS_CLI_ prefix (e.g. CI, NO_COLOR, LOCALAPPDATA). */
|
|
9
|
-
export declare function getSystemEnvVar(name: string): string | undefined;
|
|
10
|
-
export declare function setCliEnvVar(name: CliEnvVarName, value: string): void;
|
|
11
|
-
export declare function deleteCliEnvVar(name: CliEnvVarName): void;
|
|
12
|
-
/** Set a system env var that has no MS_CLI_ prefix (e.g. NO_COLOR). */
|
|
13
|
-
export declare function setSystemEnvVar(name: string, value: string): void;
|
|
14
|
-
export declare function deleteSystemEnvVar(name: string): void;
|
|
15
|
-
export declare function snapshotEnv(): typeof process.env;
|
|
16
|
-
export declare function restoreEnv(snapshot: typeof process.env): void;
|
|
17
|
-
//# sourceMappingURL=EnvVars.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"EnvVars.d.ts","sourceRoot":"","sources":["../../src/Utils/EnvVars.ts"],"names":[],"mappings":"AAAA;;GAEG;AAQH,MAAM,MAAM,aAAa,GAErB,aAAa,GACb,eAAe,GACf,cAAc,GACd,kBAAkB,GAClB,cAAc,GAEd,cAAc,GACd,sBAAsB,GACtB,kBAAkB,GAClB,kBAAkB,GAElB,kBAAkB,GAClB,kBAAkB,GAClB,yBAAyB,GACzB,wBAAwB,GACxB,sBAAsB,GAEtB,+BAA+B,GAE/B,kBAAkB,GAClB,mBAAmB,GACnB,QAAQ,GACR,+BAA+B,GAE/B,gBAAgB,GAChB,YAAY,GACZ,mBAAmB,GACnB,2BAA2B,GAC3B,4BAA4B,GAE5B,gBAAgB,GAChB,kBAAkB,GAClB,iBAAiB,GACjB,QAAQ,GACR,cAAc,GACd,mBAAmB,GACnB,UAAU,GACV,eAAe,GACf,eAAe,GACf,YAAY,GACZ,eAAe,GACf,mBAAmB,GACnB,aAAa,GACb,MAAM,GACN,gBAAgB,GAEhB,WAAW,GACX,eAAe,GACf,gBAAgB,GAChB,cAAc,GACd,kBAAkB,GAClB,yBAAyB,GACzB,SAAS,GACT,OAAO,GACP,YAAY,GACZ,kBAAkB,GAClB,aAAa,GACb,2BAA2B,GAC3B,0BAA0B,GAC1B,sBAAsB,GACtB,SAAS,GACT,aAAa,GACb,kBAAkB,GAElB,SAAS,GACT,aAAa,GACb,uBAAuB,GACvB,gBAAgB,GAEhB,eAAe,GACf,iBAAiB,GACjB,iBAAiB,GACjB,gBAAgB,GAChB,qBAAqB,GACrB,oBAAoB,GACpB,sBAAsB,GAEtB,kBAAkB,GAElB,qBAAqB,GACrB,iBAAiB,GAEjB,cAAc,GACd,gBAAgB,GAChB,SAAS,GAET,SAAS,GAET,iBAAiB,CAAC;AAEtB,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,aAAa,GAAG,MAAM,CAE7D;AAED,wBAAgB,YAAY,CAAC,IAAI,EAAE,aAAa,GAAG,MAAM,GAAG,SAAS,CAEpE;AAED,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,aAAa,GAAG,OAAO,CAE7D;AAED,sGAAsG;AACtG,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAEhE;AAED,wBAAgB,YAAY,CAAC,IAAI,EAAE,aAAa,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI,CAErE;AAED,wBAAgB,eAAe,CAAC,IAAI,EAAE,aAAa,GAAG,IAAI,CAEzD;AAED,uEAAuE;AACvE,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI,CAEjE;AAED,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAErD;AAED,wBAAgB,WAAW,IAAI,OAAO,OAAO,CAAC,GAAG,CAEhD;AAED,wBAAgB,UAAU,CAAC,QAAQ,EAAE,OAAO,OAAO,CAAC,GAAG,GAAG,IAAI,CAE7D"}
|