@microsoft/apps-cli 0.0.1 → 0.4.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/README.md +281 -1
- package/dist/ArgumentProvider.d.ts +102 -0
- package/dist/ArgumentProvider.d.ts.map +1 -0
- package/dist/ArgumentProvider.js +376 -0
- package/dist/ArgumentProvider.js.map +1 -0
- package/dist/Authentication/NodeMsalAuthenticationProvider.d.ts +18 -0
- package/dist/Authentication/NodeMsalAuthenticationProvider.d.ts.map +1 -0
- package/dist/Authentication/NodeMsalAuthenticationProvider.js +99 -0
- package/dist/Authentication/NodeMsalAuthenticationProvider.js.map +1 -0
- package/dist/Authentication/OrchardAuthenticationProvider.d.ts +13 -0
- package/dist/Authentication/OrchardAuthenticationProvider.d.ts.map +1 -0
- package/dist/Authentication/OrchardAuthenticationProvider.js +30 -0
- package/dist/Authentication/OrchardAuthenticationProvider.js.map +1 -0
- package/dist/Authentication/ServicePrincipalAuthenticationProvider.d.ts +23 -0
- package/dist/Authentication/ServicePrincipalAuthenticationProvider.d.ts.map +1 -0
- package/dist/Authentication/ServicePrincipalAuthenticationProvider.js +60 -0
- package/dist/Authentication/ServicePrincipalAuthenticationProvider.js.map +1 -0
- package/dist/Bin.d.ts +6 -0
- package/dist/Bin.d.ts.map +1 -0
- package/dist/Bin.js +7 -0
- package/dist/Bin.js.map +1 -0
- package/dist/Cli.d.ts +2 -0
- package/dist/Cli.d.ts.map +1 -0
- package/dist/Cli.js +95 -0
- package/dist/Cli.js.map +1 -0
- package/dist/CliSettings.d.ts +14 -0
- package/dist/CliSettings.d.ts.map +1 -0
- package/dist/CliSettings.js +76 -0
- package/dist/CliSettings.js.map +1 -0
- package/dist/CliUtils.d.ts +92 -0
- package/dist/CliUtils.d.ts.map +1 -0
- package/dist/CliUtils.js +218 -0
- package/dist/CliUtils.js.map +1 -0
- package/dist/Constants/CliConstants.d.ts +6 -0
- package/dist/Constants/CliConstants.d.ts.map +1 -0
- package/dist/Constants/CliConstants.js +6 -0
- package/dist/Constants/CliConstants.js.map +1 -0
- package/dist/Constants/CommandRegistry.d.ts +23 -0
- package/dist/Constants/CommandRegistry.d.ts.map +1 -0
- package/dist/Constants/CommandRegistry.js +197 -0
- package/dist/Constants/CommandRegistry.js.map +1 -0
- package/dist/Constants/HelpStrings.d.ts +329 -0
- package/dist/Constants/HelpStrings.d.ts.map +1 -0
- package/dist/Constants/HelpStrings.js +451 -0
- package/dist/Constants/HelpStrings.js.map +1 -0
- package/dist/Constants.d.ts +10 -0
- package/dist/Constants.d.ts.map +1 -0
- package/dist/Constants.js +18 -0
- package/dist/Constants.js.map +1 -0
- package/dist/Errors/CliError.d.ts +5 -0
- package/dist/Errors/CliError.d.ts.map +1 -0
- package/dist/Errors/CliError.js +7 -0
- package/dist/Errors/CliError.js.map +1 -0
- package/dist/FS/CliFs.d.ts +41 -0
- package/dist/FS/CliFs.d.ts.map +1 -0
- package/dist/FS/CliFs.js +136 -0
- package/dist/FS/CliFs.js.map +1 -0
- package/dist/HttpClient/CliHttpClient.d.ts +24 -0
- package/dist/HttpClient/CliHttpClient.d.ts.map +1 -0
- package/dist/HttpClient/CliHttpClient.js +122 -0
- package/dist/HttpClient/CliHttpClient.js.map +1 -0
- package/dist/HttpClient/OrchardProxy.d.ts +11 -0
- package/dist/HttpClient/OrchardProxy.d.ts.map +1 -0
- package/dist/HttpClient/OrchardProxy.js +25 -0
- package/dist/HttpClient/OrchardProxy.js.map +1 -0
- package/dist/HttpClient/Proxy.d.ts +7 -0
- package/dist/HttpClient/Proxy.d.ts.map +1 -0
- package/dist/HttpClient/Proxy.js +5 -0
- package/dist/HttpClient/Proxy.js.map +1 -0
- package/dist/Logger/CliLogger.d.ts +35 -0
- package/dist/Logger/CliLogger.d.ts.map +1 -0
- package/dist/Logger/CliLogger.js +237 -0
- package/dist/Logger/CliLogger.js.map +1 -0
- package/dist/Logger/ConsoleWriter.d.ts +15 -0
- package/dist/Logger/ConsoleWriter.d.ts.map +1 -0
- package/dist/Logger/ConsoleWriter.js +45 -0
- package/dist/Logger/ConsoleWriter.js.map +1 -0
- package/dist/Logger/Constants.d.ts +6 -0
- package/dist/Logger/Constants.d.ts.map +1 -0
- package/dist/Logger/Constants.js +15 -0
- package/dist/Logger/Constants.js.map +1 -0
- package/dist/Logger/LoggerSettings.d.ts +19 -0
- package/dist/Logger/LoggerSettings.d.ts.map +1 -0
- package/dist/Logger/LoggerSettings.js +114 -0
- package/dist/Logger/LoggerSettings.js.map +1 -0
- package/dist/Logger/OneDSWriter.d.ts +22 -0
- package/dist/Logger/OneDSWriter.d.ts.map +1 -0
- package/dist/Logger/OneDSWriter.js +129 -0
- package/dist/Logger/OneDSWriter.js.map +1 -0
- package/dist/Logger/Scrubber/ScrubCustomDimensions.d.ts +5 -0
- package/dist/Logger/Scrubber/ScrubCustomDimensions.d.ts.map +1 -0
- package/dist/Logger/Scrubber/ScrubCustomDimensions.js +46 -0
- package/dist/Logger/Scrubber/ScrubCustomDimensions.js.map +1 -0
- package/dist/Logger/Scrubber/ScrubCustomDimensionsConfig.d.ts +27 -0
- package/dist/Logger/Scrubber/ScrubCustomDimensionsConfig.d.ts.map +1 -0
- package/dist/Logger/Scrubber/ScrubCustomDimensionsConfig.js +168 -0
- package/dist/Logger/Scrubber/ScrubCustomDimensionsConfig.js.map +1 -0
- package/dist/Logger/Scrubber/ScrubUtils.d.ts +8 -0
- package/dist/Logger/Scrubber/ScrubUtils.d.ts.map +1 -0
- package/dist/Logger/Scrubber/ScrubUtils.js +34 -0
- package/dist/Logger/Scrubber/ScrubUtils.js.map +1 -0
- package/dist/Types/Argument.types.d.ts +27 -0
- package/dist/Types/Argument.types.d.ts.map +1 -0
- package/dist/Types/Argument.types.js +5 -0
- package/dist/Types/Argument.types.js.map +1 -0
- package/dist/Types/Cli.types.d.ts +32 -0
- package/dist/Types/Cli.types.d.ts.map +1 -0
- package/dist/Types/Cli.types.js +5 -0
- package/dist/Types/Cli.types.js.map +1 -0
- package/dist/Types/Command.types.d.ts +52 -0
- package/dist/Types/Command.types.d.ts.map +1 -0
- package/dist/Types/Command.types.js +8 -0
- package/dist/Types/Command.types.js.map +1 -0
- package/dist/Types/Datasource.types.d.ts +43 -0
- package/dist/Types/Datasource.types.d.ts.map +1 -0
- package/dist/Types/Datasource.types.js +5 -0
- package/dist/Types/Datasource.types.js.map +1 -0
- package/dist/Types/LoggerTypes.types.d.ts +17 -0
- package/dist/Types/LoggerTypes.types.d.ts.map +1 -0
- package/dist/Types/LoggerTypes.types.js +5 -0
- package/dist/Types/LoggerTypes.types.js.map +1 -0
- package/dist/Utils/BuildVerbDescriptionTable.d.ts +19 -0
- package/dist/Utils/BuildVerbDescriptionTable.d.ts.map +1 -0
- package/dist/Utils/BuildVerbDescriptionTable.js +87 -0
- package/dist/Utils/BuildVerbDescriptionTable.js.map +1 -0
- package/dist/Utils/ConsoleOutput.d.ts +80 -0
- package/dist/Utils/ConsoleOutput.d.ts.map +1 -0
- package/dist/Utils/ConsoleOutput.js +151 -0
- package/dist/Utils/ConsoleOutput.js.map +1 -0
- package/dist/Utils/DetectPackageManager.d.ts +9 -0
- package/dist/Utils/DetectPackageManager.d.ts.map +1 -0
- package/dist/Utils/DetectPackageManager.js +24 -0
- package/dist/Utils/DetectPackageManager.js.map +1 -0
- package/dist/Utils/EnhanceNetworkError.d.ts +14 -0
- package/dist/Utils/EnhanceNetworkError.d.ts.map +1 -0
- package/dist/Utils/EnhanceNetworkError.js +59 -0
- package/dist/Utils/EnhanceNetworkError.js.map +1 -0
- package/dist/Utils/EnvVars.d.ts +17 -0
- package/dist/Utils/EnvVars.d.ts.map +1 -0
- package/dist/Utils/EnvVars.js +38 -0
- package/dist/Utils/EnvVars.js.map +1 -0
- package/dist/Utils/GitCredentialConfig.d.ts +12 -0
- package/dist/Utils/GitCredentialConfig.d.ts.map +1 -0
- package/dist/Utils/GitCredentialConfig.js +32 -0
- package/dist/Utils/GitCredentialConfig.js.map +1 -0
- package/dist/Utils/GitUtils.d.ts +22 -0
- package/dist/Utils/GitUtils.d.ts.map +1 -0
- package/dist/Utils/GitUtils.js +35 -0
- package/dist/Utils/GitUtils.js.map +1 -0
- package/dist/Utils/Paging.d.ts +23 -0
- package/dist/Utils/Paging.d.ts.map +1 -0
- package/dist/Utils/Paging.js +67 -0
- package/dist/Utils/Paging.js.map +1 -0
- package/dist/Utils/ReadPackageJson.d.ts +9 -0
- package/dist/Utils/ReadPackageJson.d.ts.map +1 -0
- package/dist/Utils/ReadPackageJson.js +13 -0
- package/dist/Utils/ReadPackageJson.js.map +1 -0
- package/dist/Utils/ResolveCommand.d.ts +26 -0
- package/dist/Utils/ResolveCommand.d.ts.map +1 -0
- package/dist/Utils/ResolveCommand.js +62 -0
- package/dist/Utils/ResolveCommand.js.map +1 -0
- package/dist/Utils/RunCommand.d.ts +13 -0
- package/dist/Utils/RunCommand.d.ts.map +1 -0
- package/dist/Utils/RunCommand.js +35 -0
- package/dist/Utils/RunCommand.js.map +1 -0
- package/dist/Utils/Spinner.d.ts +15 -0
- package/dist/Utils/Spinner.d.ts.map +1 -0
- package/dist/Utils/Spinner.js +71 -0
- package/dist/Utils/Spinner.js.map +1 -0
- package/dist/Utils/zipBuildArtifact.d.ts +35 -0
- package/dist/Utils/zipBuildArtifact.d.ts.map +1 -0
- package/dist/Utils/zipBuildArtifact.js +100 -0
- package/dist/Utils/zipBuildArtifact.js.map +1 -0
- package/dist/Verbs/AddAction.d.ts +6 -0
- package/dist/Verbs/AddAction.d.ts.map +1 -0
- package/dist/Verbs/AddAction.js +87 -0
- package/dist/Verbs/AddAction.js.map +1 -0
- package/dist/Verbs/AddDataSource.d.ts +19 -0
- package/dist/Verbs/AddDataSource.d.ts.map +1 -0
- package/dist/Verbs/AddDataSource.js +174 -0
- package/dist/Verbs/AddDataSource.js.map +1 -0
- package/dist/Verbs/AddFlow.d.ts +12 -0
- package/dist/Verbs/AddFlow.d.ts.map +1 -0
- package/dist/Verbs/AddFlow.js +67 -0
- package/dist/Verbs/AddFlow.js.map +1 -0
- package/dist/Verbs/AddTable.d.ts +6 -0
- package/dist/Verbs/AddTable.d.ts.map +1 -0
- package/dist/Verbs/AddTable.js +163 -0
- package/dist/Verbs/AddTable.js.map +1 -0
- package/dist/Verbs/AuthStatus.d.ts +6 -0
- package/dist/Verbs/AuthStatus.d.ts.map +1 -0
- package/dist/Verbs/AuthStatus.js +18 -0
- package/dist/Verbs/AuthStatus.js.map +1 -0
- package/dist/Verbs/BuildMaafApp.d.ts +6 -0
- package/dist/Verbs/BuildMaafApp.d.ts.map +1 -0
- package/dist/Verbs/BuildMaafApp.js +97 -0
- package/dist/Verbs/BuildMaafApp.js.map +1 -0
- package/dist/Verbs/ConnectorHelpers.d.ts +37 -0
- package/dist/Verbs/ConnectorHelpers.d.ts.map +1 -0
- package/dist/Verbs/ConnectorHelpers.js +116 -0
- package/dist/Verbs/ConnectorHelpers.js.map +1 -0
- package/dist/Verbs/CreateMaafApp.d.ts +25 -0
- package/dist/Verbs/CreateMaafApp.d.ts.map +1 -0
- package/dist/Verbs/CreateMaafApp.js +565 -0
- package/dist/Verbs/CreateMaafApp.js.map +1 -0
- package/dist/Verbs/DeleteDataSource.d.ts +6 -0
- package/dist/Verbs/DeleteDataSource.d.ts.map +1 -0
- package/dist/Verbs/DeleteDataSource.js +106 -0
- package/dist/Verbs/DeleteDataSource.js.map +1 -0
- package/dist/Verbs/DeleteMaafApp.d.ts +23 -0
- package/dist/Verbs/DeleteMaafApp.d.ts.map +1 -0
- package/dist/Verbs/DeleteMaafApp.js +99 -0
- package/dist/Verbs/DeleteMaafApp.js.map +1 -0
- package/dist/Verbs/DeployMaafApp.d.ts +6 -0
- package/dist/Verbs/DeployMaafApp.d.ts.map +1 -0
- package/dist/Verbs/DeployMaafApp.js +96 -0
- package/dist/Verbs/DeployMaafApp.js.map +1 -0
- package/dist/Verbs/Dev.d.ts +6 -0
- package/dist/Verbs/Dev.d.ts.map +1 -0
- package/dist/Verbs/Dev.js +214 -0
- package/dist/Verbs/Dev.js.map +1 -0
- package/dist/Verbs/FindDataverseApi.d.ts +12 -0
- package/dist/Verbs/FindDataverseApi.d.ts.map +1 -0
- package/dist/Verbs/FindDataverseApi.js +101 -0
- package/dist/Verbs/FindDataverseApi.js.map +1 -0
- package/dist/Verbs/GetMaafApp.d.ts +6 -0
- package/dist/Verbs/GetMaafApp.d.ts.map +1 -0
- package/dist/Verbs/GetMaafApp.js +60 -0
- package/dist/Verbs/GetMaafApp.js.map +1 -0
- package/dist/Verbs/GetMaafBuildStatus.d.ts +6 -0
- package/dist/Verbs/GetMaafBuildStatus.d.ts.map +1 -0
- package/dist/Verbs/GetMaafBuildStatus.js +68 -0
- package/dist/Verbs/GetMaafBuildStatus.js.map +1 -0
- package/dist/Verbs/GetSettings.d.ts +12 -0
- package/dist/Verbs/GetSettings.d.ts.map +1 -0
- package/dist/Verbs/GetSettings.js +48 -0
- package/dist/Verbs/GetSettings.js.map +1 -0
- package/dist/Verbs/Init.d.ts +6 -0
- package/dist/Verbs/Init.d.ts.map +1 -0
- package/dist/Verbs/Init.js +172 -0
- package/dist/Verbs/Init.js.map +1 -0
- package/dist/Verbs/ListConnectionReferences.d.ts +6 -0
- package/dist/Verbs/ListConnectionReferences.d.ts.map +1 -0
- package/dist/Verbs/ListConnectionReferences.js +70 -0
- package/dist/Verbs/ListConnectionReferences.js.map +1 -0
- package/dist/Verbs/ListConnectorActions.d.ts +6 -0
- package/dist/Verbs/ListConnectorActions.d.ts.map +1 -0
- package/dist/Verbs/ListConnectorActions.js +79 -0
- package/dist/Verbs/ListConnectorActions.js.map +1 -0
- package/dist/Verbs/ListConnectors.d.ts +6 -0
- package/dist/Verbs/ListConnectors.d.ts.map +1 -0
- package/dist/Verbs/ListConnectors.js +66 -0
- package/dist/Verbs/ListConnectors.js.map +1 -0
- package/dist/Verbs/ListDatasets.d.ts +6 -0
- package/dist/Verbs/ListDatasets.d.ts.map +1 -0
- package/dist/Verbs/ListDatasets.js +83 -0
- package/dist/Verbs/ListDatasets.js.map +1 -0
- package/dist/Verbs/ListEnvironmentVariables.d.ts +14 -0
- package/dist/Verbs/ListEnvironmentVariables.d.ts.map +1 -0
- package/dist/Verbs/ListEnvironmentVariables.js +66 -0
- package/dist/Verbs/ListEnvironmentVariables.js.map +1 -0
- package/dist/Verbs/ListFlows.d.ts +13 -0
- package/dist/Verbs/ListFlows.d.ts.map +1 -0
- package/dist/Verbs/ListFlows.js +88 -0
- package/dist/Verbs/ListFlows.js.map +1 -0
- package/dist/Verbs/ListMaafApps.d.ts +71 -0
- package/dist/Verbs/ListMaafApps.d.ts.map +1 -0
- package/dist/Verbs/ListMaafApps.js +168 -0
- package/dist/Verbs/ListMaafApps.js.map +1 -0
- package/dist/Verbs/ListSqlStoredProcedures.d.ts +6 -0
- package/dist/Verbs/ListSqlStoredProcedures.d.ts.map +1 -0
- package/dist/Verbs/ListSqlStoredProcedures.js +84 -0
- package/dist/Verbs/ListSqlStoredProcedures.js.map +1 -0
- package/dist/Verbs/ListTables.d.ts +6 -0
- package/dist/Verbs/ListTables.d.ts.map +1 -0
- package/dist/Verbs/ListTables.js +95 -0
- package/dist/Verbs/ListTables.js.map +1 -0
- package/dist/Verbs/Login.d.ts +6 -0
- package/dist/Verbs/Login.d.ts.map +1 -0
- package/dist/Verbs/Login.js +28 -0
- package/dist/Verbs/Login.js.map +1 -0
- package/dist/Verbs/Logout.d.ts +6 -0
- package/dist/Verbs/Logout.d.ts.map +1 -0
- package/dist/Verbs/Logout.js +28 -0
- package/dist/Verbs/Logout.js.map +1 -0
- package/dist/Verbs/MaafAppPermissions.d.ts +23 -0
- package/dist/Verbs/MaafAppPermissions.d.ts.map +1 -0
- package/dist/Verbs/MaafAppPermissions.js +278 -0
- package/dist/Verbs/MaafAppPermissions.js.map +1 -0
- package/dist/Verbs/Pack.d.ts +38 -0
- package/dist/Verbs/Pack.d.ts.map +1 -0
- package/dist/Verbs/Pack.js +106 -0
- package/dist/Verbs/Pack.js.map +1 -0
- package/dist/Verbs/PushMaafApp.d.ts +6 -0
- package/dist/Verbs/PushMaafApp.d.ts.map +1 -0
- package/dist/Verbs/PushMaafApp.js +145 -0
- package/dist/Verbs/PushMaafApp.js.map +1 -0
- package/dist/Verbs/RefreshDataSource.d.ts +6 -0
- package/dist/Verbs/RefreshDataSource.d.ts.map +1 -0
- package/dist/Verbs/RefreshDataSource.js +72 -0
- package/dist/Verbs/RefreshDataSource.js.map +1 -0
- package/dist/Verbs/RemoveFlow.d.ts +12 -0
- package/dist/Verbs/RemoveFlow.d.ts.map +1 -0
- package/dist/Verbs/RemoveFlow.js +99 -0
- package/dist/Verbs/RemoveFlow.js.map +1 -0
- package/dist/Verbs/SetSetting.d.ts +12 -0
- package/dist/Verbs/SetSetting.d.ts.map +1 -0
- package/dist/Verbs/SetSetting.js +142 -0
- package/dist/Verbs/SetSetting.js.map +1 -0
- package/dist/Verbs/ShareMaafApp.d.ts +12 -0
- package/dist/Verbs/ShareMaafApp.d.ts.map +1 -0
- package/dist/Verbs/ShareMaafApp.js +14 -0
- package/dist/Verbs/ShareMaafApp.js.map +1 -0
- package/dist/Verbs/ShowMaafApp.d.ts +94 -0
- package/dist/Verbs/ShowMaafApp.d.ts.map +1 -0
- package/dist/Verbs/ShowMaafApp.js +216 -0
- package/dist/Verbs/ShowMaafApp.js.map +1 -0
- package/dist/Verbs/TelemetrySettings.d.ts +8 -0
- package/dist/Verbs/TelemetrySettings.d.ts.map +1 -0
- package/dist/Verbs/TelemetrySettings.js +104 -0
- package/dist/Verbs/TelemetrySettings.js.map +1 -0
- package/dist/Verbs/UnshareMaafApp.d.ts +12 -0
- package/dist/Verbs/UnshareMaafApp.d.ts.map +1 -0
- package/dist/Verbs/UnshareMaafApp.js +14 -0
- package/dist/Verbs/UnshareMaafApp.js.map +1 -0
- package/dist/Verbs/VerbConstants.d.ts +433 -0
- package/dist/Verbs/VerbConstants.d.ts.map +1 -0
- package/dist/Verbs/VerbConstants.js +403 -0
- package/dist/Verbs/VerbConstants.js.map +1 -0
- package/dist/Verbs/index.d.ts +40 -0
- package/dist/Verbs/index.d.ts.map +1 -0
- package/dist/Verbs/index.js +40 -0
- package/dist/Verbs/index.js.map +1 -0
- package/package.json +43 -3
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
/*!
|
|
2
|
+
* Copyright (C) Microsoft Corporation. All rights reserved.
|
|
3
|
+
*/
|
|
4
|
+
export interface ColumnDef {
|
|
5
|
+
header: string;
|
|
6
|
+
maxWidth?: number;
|
|
7
|
+
}
|
|
8
|
+
/**
|
|
9
|
+
* Renders a titled table with optional metadata, column headers, and data rows.
|
|
10
|
+
* Separator lines are suppressed in non-TTY mode (piped output, LLM agents).
|
|
11
|
+
*/
|
|
12
|
+
export declare function printTable(options: {
|
|
13
|
+
title: string;
|
|
14
|
+
metadata?: string[];
|
|
15
|
+
columns: ColumnDef[];
|
|
16
|
+
rows: string[][];
|
|
17
|
+
emptyMessage?: string;
|
|
18
|
+
totalLabel?: string;
|
|
19
|
+
width?: number;
|
|
20
|
+
}): void;
|
|
21
|
+
/**
|
|
22
|
+
* Renders a titled key-value list where each item is displayed as a set of labeled fields.
|
|
23
|
+
* Multiple items are separated by a divider line. Separator lines are suppressed in non-TTY mode.
|
|
24
|
+
*/
|
|
25
|
+
export declare function printKeyValueList<T>(options: {
|
|
26
|
+
title: string;
|
|
27
|
+
items: T[];
|
|
28
|
+
fields: {
|
|
29
|
+
label: string;
|
|
30
|
+
value: (item: T) => string;
|
|
31
|
+
}[];
|
|
32
|
+
emptyMessage?: string;
|
|
33
|
+
width?: number;
|
|
34
|
+
}): void;
|
|
35
|
+
export declare function printSuccess(message: string): void;
|
|
36
|
+
type EnvelopeReservedKeys = {
|
|
37
|
+
success?: never;
|
|
38
|
+
exitCode?: never;
|
|
39
|
+
errorMessage?: never;
|
|
40
|
+
};
|
|
41
|
+
type NotArray<T> = T extends readonly unknown[] ? never : T;
|
|
42
|
+
/**
|
|
43
|
+
* Emits a success JSON envelope `{ success: true, ...data }` to **stdout**.
|
|
44
|
+
*
|
|
45
|
+
* Writes to stdout (not stderr) — automation pipes stdout through `jq` or
|
|
46
|
+
* similar parsers, so this deliberately diverges from `printError`. Keep the
|
|
47
|
+
* stream choice when modifying.
|
|
48
|
+
*
|
|
49
|
+
* Arrays are rejected at compile time via `NotArray<T>`: spreading an array
|
|
50
|
+
* would surface its numeric indices as envelope keys
|
|
51
|
+
* (`{ success: true, "0": "a", "1": "b" }`). Use `printJsonSuccessList` for
|
|
52
|
+
* verbs whose payload is naturally an array.
|
|
53
|
+
*/
|
|
54
|
+
export declare function printJsonSuccess<T extends object>(data?: NotArray<T> & EnvelopeReservedKeys): void;
|
|
55
|
+
/**
|
|
56
|
+
* Emits a success JSON envelope wrapping a list payload to **stdout**:
|
|
57
|
+
* `{ success: true, items: [...] }`.
|
|
58
|
+
*
|
|
59
|
+
* Use this for any verb whose natural payload is a list (`app list`,
|
|
60
|
+
* `connector list`, etc.). Keeping the array under a stable `items` key means
|
|
61
|
+
* automation can rely on `.items` for every list verb.
|
|
62
|
+
*/
|
|
63
|
+
export declare function printJsonSuccessList<T>(items: T[]): void;
|
|
64
|
+
/**
|
|
65
|
+
* Emits a failure JSON envelope `{ success: false, exitCode, errorMessage }`
|
|
66
|
+
* to **stdout**.
|
|
67
|
+
*
|
|
68
|
+
* Writes to stdout (not stderr) so automation parsing the JSON pipe still sees
|
|
69
|
+
* the envelope. This deliberately diverges from `printError`; do not "fix" it
|
|
70
|
+
* for consistency.
|
|
71
|
+
*
|
|
72
|
+
* `exitCode` is the process exit code (AppError.exitCode, or 1 for unknown
|
|
73
|
+
* errors). Named to reflect that — it is NOT a stable categorical error code.
|
|
74
|
+
*/
|
|
75
|
+
export declare function printJsonError(errorMessage: string, exitCode?: number): void;
|
|
76
|
+
export declare function printInfo(message: string): void;
|
|
77
|
+
export declare function printWarning(message: string): void;
|
|
78
|
+
export declare function printError(message: string): void;
|
|
79
|
+
export {};
|
|
80
|
+
//# sourceMappingURL=ConsoleOutput.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ConsoleOutput.d.ts","sourceRoot":"","sources":["../../src/Utils/ConsoleOutput.ts"],"names":[],"mappings":"AAAA;;GAEG;AAWH,MAAM,WAAW,SAAS;IACxB,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED;;;GAGG;AACH,wBAAgB,UAAU,CAAC,OAAO,EAAE;IAClC,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IACpB,OAAO,EAAE,SAAS,EAAE,CAAC;IACrB,IAAI,EAAE,MAAM,EAAE,EAAE,CAAC;IACjB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,GAAG,IAAI,CA8DP;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,CAAC,EAAE,OAAO,EAAE;IAC5C,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,CAAC,EAAE,CAAC;IACX,MAAM,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,MAAM,CAAA;KAAE,EAAE,CAAC;IACxD,YAAY,CAAC,EAAE,MAAM,CAAC;IAEtB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,GAAG,IAAI,CAyBP;AAED,wBAAgB,YAAY,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAElD;AAMD,KAAK,oBAAoB,GAAG;IAAE,OAAO,CAAC,EAAE,KAAK,CAAC;IAAC,QAAQ,CAAC,EAAE,KAAK,CAAC;IAAC,YAAY,CAAC,EAAE,KAAK,CAAA;CAAE,CAAC;AAMxF,KAAK,QAAQ,CAAC,CAAC,IAAI,CAAC,SAAS,SAAS,OAAO,EAAE,GAAG,KAAK,GAAG,CAAC,CAAC;AAE5D;;;;;;;;;;;GAWG;AACH,wBAAgB,gBAAgB,CAAC,CAAC,SAAS,MAAM,EAC/C,IAAI,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAC,GAAG,oBAAoB,GACxC,IAAI,CAEN;AAED;;;;;;;GAOG;AACH,wBAAgB,oBAAoB,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,GAAG,IAAI,CAExD;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,cAAc,CAAC,YAAY,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAE5E;AAED,wBAAgB,SAAS,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAE/C;AAED,wBAAgB,YAAY,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAElD;AAED,wBAAgB,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAEhD"}
|
|
@@ -0,0 +1,151 @@
|
|
|
1
|
+
/*!
|
|
2
|
+
* Copyright (C) Microsoft Corporation. All rights reserved.
|
|
3
|
+
*/
|
|
4
|
+
import chalk from 'chalk';
|
|
5
|
+
// Suppress decorative separator lines when output is piped or redirected (non-interactive).
|
|
6
|
+
// This applies to both shell pipelines and LLM agents that invoke CLI commands programmatically —
|
|
7
|
+
// in both cases stdout is not a TTY, and box-drawing characters would pollute the parseable output.
|
|
8
|
+
function isTTY() {
|
|
9
|
+
return process.stdout.isTTY ?? false;
|
|
10
|
+
}
|
|
11
|
+
/**
|
|
12
|
+
* Renders a titled table with optional metadata, column headers, and data rows.
|
|
13
|
+
* Separator lines are suppressed in non-TTY mode (piped output, LLM agents).
|
|
14
|
+
*/
|
|
15
|
+
export function printTable(options) {
|
|
16
|
+
const { title, metadata, columns, rows, emptyMessage, totalLabel, width = 80 } = options;
|
|
17
|
+
const line = isTTY() ? chalk.dim('-'.repeat(width)) : null;
|
|
18
|
+
console.log('');
|
|
19
|
+
console.log(chalk.cyan.bold(` ${title}`));
|
|
20
|
+
if (metadata) {
|
|
21
|
+
if (line)
|
|
22
|
+
console.log(line);
|
|
23
|
+
for (const meta of metadata) {
|
|
24
|
+
console.log(chalk.white(` ${meta}`));
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
if (rows.length === 0) {
|
|
28
|
+
if (emptyMessage) {
|
|
29
|
+
if (line)
|
|
30
|
+
console.log(line);
|
|
31
|
+
console.log(` ${emptyMessage}`);
|
|
32
|
+
}
|
|
33
|
+
return;
|
|
34
|
+
}
|
|
35
|
+
// Column width = max(header.length, longest effective cell length)
|
|
36
|
+
// Effective cell length respects maxWidth (truncated value is always maxWidth chars)
|
|
37
|
+
const colWidths = columns.map((col, i) => {
|
|
38
|
+
const maxCellLen = rows.reduce((max, row) => {
|
|
39
|
+
const cell = row[i] ?? '';
|
|
40
|
+
const len = col.maxWidth !== undefined && cell.length > col.maxWidth ? col.maxWidth : cell.length;
|
|
41
|
+
return Math.max(max, len);
|
|
42
|
+
}, 0);
|
|
43
|
+
return Math.max(col.header.length, maxCellLen);
|
|
44
|
+
});
|
|
45
|
+
if (line)
|
|
46
|
+
console.log(line);
|
|
47
|
+
const headerParts = columns.map((col, i) => i === columns.length - 1 ? col.header : col.header.padEnd(colWidths[i]));
|
|
48
|
+
console.log(chalk.cyan(` ${headerParts.join(' ')}`));
|
|
49
|
+
if (line)
|
|
50
|
+
console.log(line);
|
|
51
|
+
for (const row of rows) {
|
|
52
|
+
const rowParts = columns.map((col, i) => {
|
|
53
|
+
let cell = row[i] ?? '';
|
|
54
|
+
if (col.maxWidth !== undefined && cell.length > col.maxWidth) {
|
|
55
|
+
if (col.maxWidth <= 3) {
|
|
56
|
+
cell = cell.slice(0, col.maxWidth);
|
|
57
|
+
}
|
|
58
|
+
else {
|
|
59
|
+
cell = cell.slice(0, col.maxWidth - 3) + '...';
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
return i === columns.length - 1 ? cell : cell.padEnd(colWidths[i]);
|
|
63
|
+
});
|
|
64
|
+
console.log(` ${rowParts.join(' ')}`);
|
|
65
|
+
}
|
|
66
|
+
if (line)
|
|
67
|
+
console.log(line);
|
|
68
|
+
if (totalLabel !== undefined) {
|
|
69
|
+
console.log(chalk.dim(` Total: ${rows.length} ${totalLabel}`));
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
/**
|
|
73
|
+
* Renders a titled key-value list where each item is displayed as a set of labeled fields.
|
|
74
|
+
* Multiple items are separated by a divider line. Separator lines are suppressed in non-TTY mode.
|
|
75
|
+
*/
|
|
76
|
+
export function printKeyValueList(options) {
|
|
77
|
+
const { title, items, fields, emptyMessage, width = 80 } = options;
|
|
78
|
+
const line = isTTY() ? chalk.dim('-'.repeat(width)) : null;
|
|
79
|
+
console.log('');
|
|
80
|
+
console.log(chalk.cyan.bold(` ${title}`));
|
|
81
|
+
if (line)
|
|
82
|
+
console.log(line);
|
|
83
|
+
if (items.length === 0) {
|
|
84
|
+
if (emptyMessage) {
|
|
85
|
+
console.log(` ${emptyMessage}`);
|
|
86
|
+
}
|
|
87
|
+
return;
|
|
88
|
+
}
|
|
89
|
+
for (let i = 0; i < items.length; i++) {
|
|
90
|
+
for (const field of fields) {
|
|
91
|
+
console.log(` ${chalk.white(field.label)}: ${field.value(items[i])}`);
|
|
92
|
+
}
|
|
93
|
+
// Separator between items only — no trailing separator after the last item (intentional).
|
|
94
|
+
if (i < items.length - 1 && line) {
|
|
95
|
+
console.log(line);
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
export function printSuccess(message) {
|
|
100
|
+
console.log(chalk.green(message));
|
|
101
|
+
}
|
|
102
|
+
/**
|
|
103
|
+
* Emits a success JSON envelope `{ success: true, ...data }` to **stdout**.
|
|
104
|
+
*
|
|
105
|
+
* Writes to stdout (not stderr) — automation pipes stdout through `jq` or
|
|
106
|
+
* similar parsers, so this deliberately diverges from `printError`. Keep the
|
|
107
|
+
* stream choice when modifying.
|
|
108
|
+
*
|
|
109
|
+
* Arrays are rejected at compile time via `NotArray<T>`: spreading an array
|
|
110
|
+
* would surface its numeric indices as envelope keys
|
|
111
|
+
* (`{ success: true, "0": "a", "1": "b" }`). Use `printJsonSuccessList` for
|
|
112
|
+
* verbs whose payload is naturally an array.
|
|
113
|
+
*/
|
|
114
|
+
export function printJsonSuccess(data) {
|
|
115
|
+
console.log(JSON.stringify({ success: true, ...data }, null, 2));
|
|
116
|
+
}
|
|
117
|
+
/**
|
|
118
|
+
* Emits a success JSON envelope wrapping a list payload to **stdout**:
|
|
119
|
+
* `{ success: true, items: [...] }`.
|
|
120
|
+
*
|
|
121
|
+
* Use this for any verb whose natural payload is a list (`app list`,
|
|
122
|
+
* `connector list`, etc.). Keeping the array under a stable `items` key means
|
|
123
|
+
* automation can rely on `.items` for every list verb.
|
|
124
|
+
*/
|
|
125
|
+
export function printJsonSuccessList(items) {
|
|
126
|
+
console.log(JSON.stringify({ success: true, items }, null, 2));
|
|
127
|
+
}
|
|
128
|
+
/**
|
|
129
|
+
* Emits a failure JSON envelope `{ success: false, exitCode, errorMessage }`
|
|
130
|
+
* to **stdout**.
|
|
131
|
+
*
|
|
132
|
+
* Writes to stdout (not stderr) so automation parsing the JSON pipe still sees
|
|
133
|
+
* the envelope. This deliberately diverges from `printError`; do not "fix" it
|
|
134
|
+
* for consistency.
|
|
135
|
+
*
|
|
136
|
+
* `exitCode` is the process exit code (AppError.exitCode, or 1 for unknown
|
|
137
|
+
* errors). Named to reflect that — it is NOT a stable categorical error code.
|
|
138
|
+
*/
|
|
139
|
+
export function printJsonError(errorMessage, exitCode) {
|
|
140
|
+
console.log(JSON.stringify({ success: false, exitCode, errorMessage }, null, 2));
|
|
141
|
+
}
|
|
142
|
+
export function printInfo(message) {
|
|
143
|
+
console.log(message);
|
|
144
|
+
}
|
|
145
|
+
export function printWarning(message) {
|
|
146
|
+
console.warn(chalk.yellow(message));
|
|
147
|
+
}
|
|
148
|
+
export function printError(message) {
|
|
149
|
+
console.error(chalk.red(message));
|
|
150
|
+
}
|
|
151
|
+
//# sourceMappingURL=ConsoleOutput.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ConsoleOutput.js","sourceRoot":"","sources":["../../src/Utils/ConsoleOutput.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,9 @@
|
|
|
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
|
|
@@ -0,0 +1 @@
|
|
|
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"}
|
|
@@ -0,0 +1,24 @@
|
|
|
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
|
|
@@ -0,0 +1 @@
|
|
|
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"}
|
|
@@ -0,0 +1,14 @@
|
|
|
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
|
|
@@ -0,0 +1 @@
|
|
|
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,CA8CtF"}
|
|
@@ -0,0 +1,59 @@
|
|
|
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
|
+
if (errorCode === 'ENOTFOUND') {
|
|
25
|
+
detailedMessage += ` DNS lookup failed - unable to resolve hostname.`;
|
|
26
|
+
}
|
|
27
|
+
else if (errorCode === 'ECONNREFUSED') {
|
|
28
|
+
detailedMessage += ` Connection refused - server is not accepting connections.`;
|
|
29
|
+
}
|
|
30
|
+
else if (errorCode === 'ETIMEDOUT') {
|
|
31
|
+
detailedMessage += ` Connection timed out - server did not respond in time.`;
|
|
32
|
+
}
|
|
33
|
+
else if (errorCode === 'ECONNRESET') {
|
|
34
|
+
detailedMessage += ` Connection reset - server closed the connection unexpectedly.`;
|
|
35
|
+
}
|
|
36
|
+
else if (errorCode === 'UNABLE_TO_VERIFY_LEAF_SIGNATURE' ||
|
|
37
|
+
errorCode === 'CERT_HAS_EXPIRED' ||
|
|
38
|
+
String(errorCode).startsWith('CERT_')) {
|
|
39
|
+
detailedMessage += ` Certificate validation failed (${errorCode}).`;
|
|
40
|
+
}
|
|
41
|
+
else if (errorCode) {
|
|
42
|
+
detailedMessage += ` System error: ${errorCode}.`;
|
|
43
|
+
}
|
|
44
|
+
if (cause.message && cause.message !== error.message) {
|
|
45
|
+
detailedMessage += ` Details: ${cause.message}`;
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
// Add general suggestions if we don't have a specific error code
|
|
49
|
+
if (!cause || !cause.code) {
|
|
50
|
+
detailedMessage +=
|
|
51
|
+
` Possible causes: network connectivity issues, DNS resolution failure, ` +
|
|
52
|
+
`VPN/proxy configuration, firewall/certificate issues, or server not reachable.`;
|
|
53
|
+
}
|
|
54
|
+
const enhancedError = new Error(detailedMessage);
|
|
55
|
+
enhancedError.cause = error;
|
|
56
|
+
return enhancedError;
|
|
57
|
+
}
|
|
58
|
+
/* eslint-enable @typescript-eslint/no-explicit-any */
|
|
59
|
+
//# sourceMappingURL=EnhanceNetworkError.js.map
|
|
@@ -0,0 +1 @@
|
|
|
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;QAE5C,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;IAChD,aAAqB,CAAC,KAAK,GAAG,KAAK,CAAC;IACrC,OAAO,aAAa,CAAC;AACvB,CAAC;AACD,sDAAsD"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/*!
|
|
2
|
+
* Copyright (C) Microsoft Corporation. All rights reserved.
|
|
3
|
+
*/
|
|
4
|
+
export type CliEnvVarName = 'USE_SP_AUTH' | 'SP_CLIENT_ID' | 'SP_CLIENT_SECRET' | 'SP_TENANT_ID' | 'CONFIG_AUTH_PPAPI' | 'CONFIG_AUTH_APIHUB' | 'CONFIG_AUTH_TENANTID' | 'CONFIG_PROXY' | 'CONFIG_PROXY_PPAPI_URL' | 'CONFIG_PROXY_APIHUB_URL' | 'REMOTE_TELEMETRY' | 'CONSOLE_TELEMETRY' | 'CONFIG_DIR' | 'WORKING_DIRECTORY' | 'MAAF_DEBUG_ENVIRONMENT_ID' | 'ENVIRONMENT_ID' | 'APP_DISPLAY_NAME' | 'APP_DESCRIPTION' | 'APP_ID' | 'APP_TEMPLATE' | 'APP_REPOSITORY_ID' | 'APP_REPO' | 'APP_URL' | 'LOCAL_APP_URL' | 'BUILD_PATH' | 'BUILD_COMMAND' | 'FILE_ENTRY_POINT' | 'LOGO_PATH' | 'CONFIG_ONLY' | 'PORT' | 'CLOUD_INSTANCE' | 'API_ID' | 'CONNECTION_ID' | 'CONNECTION_REF' | 'CONNECTOR_ID' | 'CONNECTOR_SEARCH' | 'CONNECTOR_ACTION_SEARCH' | 'DATASET' | 'TABLE' | 'TABLE_NAME' | 'DATA_SOURCE_NAME' | 'SEARCH_TERM' | 'DATAVERSE_API_SEARCH_TERM' | 'SQL_STORED_PROCEDURE' | 'ENV_URL' | 'SOLUTION_ID' | 'FLOW_ID' | 'FLOW_SEARCH' | 'FLOW_DATA_SOURCE_NAME' | 'REMOVE_FLOW_ID' | 'MAAF_APP_NAME' | 'MAAF_COMMIT_SHA' | 'MAAF_OPERATION_ID' | 'MAAF_ENVIRONMENT_ID' | 'LIST_ENVIRONMENT_ID' | 'LIST_PERMISSION' | 'SKIP_CODEGEN' | 'USE_V1_CODEGEN' | 'APP_SHOW_HEADER' | 'APP_ENABLE_CATALYST';
|
|
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
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"EnvVars.d.ts","sourceRoot":"","sources":["../../src/Utils/EnvVars.ts"],"names":[],"mappings":"AAAA;;GAEG;AAQH,MAAM,MAAM,aAAa,GAErB,aAAa,GACb,cAAc,GACd,kBAAkB,GAClB,cAAc,GAEd,mBAAmB,GACnB,oBAAoB,GACpB,sBAAsB,GAEtB,cAAc,GACd,wBAAwB,GACxB,yBAAyB,GAEzB,kBAAkB,GAClB,mBAAmB,GAEnB,YAAY,GACZ,mBAAmB,GACnB,2BAA2B,GAE3B,gBAAgB,GAChB,kBAAkB,GAClB,iBAAiB,GACjB,QAAQ,GACR,cAAc,GACd,mBAAmB,GACnB,UAAU,GACV,SAAS,GACT,eAAe,GACf,YAAY,GACZ,eAAe,GACf,kBAAkB,GAClB,WAAW,GACX,aAAa,GACb,MAAM,GACN,gBAAgB,GAEhB,QAAQ,GACR,eAAe,GACf,gBAAgB,GAChB,cAAc,GACd,kBAAkB,GAClB,yBAAyB,GACzB,SAAS,GACT,OAAO,GACP,YAAY,GACZ,kBAAkB,GAClB,aAAa,GACb,2BAA2B,GAC3B,sBAAsB,GACtB,SAAS,GACT,aAAa,GAEb,SAAS,GACT,aAAa,GACb,uBAAuB,GACvB,gBAAgB,GAEhB,eAAe,GACf,iBAAiB,GACjB,mBAAmB,GACnB,qBAAqB,GAErB,qBAAqB,GACrB,iBAAiB,GAEjB,cAAc,GACd,gBAAgB,GAEhB,iBAAiB,GACjB,qBAAqB,CAAC;AAE1B,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"}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
/*!
|
|
2
|
+
* Copyright (C) Microsoft Corporation. All rights reserved.
|
|
3
|
+
*/
|
|
4
|
+
import { CLI_BINARY_NAME } from '../Constants/CliConstants.js';
|
|
5
|
+
const PREFIX = `${CLI_BINARY_NAME.toUpperCase()}_CLI_`;
|
|
6
|
+
export function cliEnvVarFullName(name) {
|
|
7
|
+
return `${PREFIX}${name}`;
|
|
8
|
+
}
|
|
9
|
+
export function getCliEnvVar(name) {
|
|
10
|
+
return process.env[cliEnvVarFullName(name)];
|
|
11
|
+
}
|
|
12
|
+
export function getCliEnvVarBool(name) {
|
|
13
|
+
return getCliEnvVar(name) === 'true';
|
|
14
|
+
}
|
|
15
|
+
/** Read a system or external env var that has no MS_CLI_ prefix (e.g. CI, NO_COLOR, LOCALAPPDATA). */
|
|
16
|
+
export function getSystemEnvVar(name) {
|
|
17
|
+
return process.env[name];
|
|
18
|
+
}
|
|
19
|
+
export function setCliEnvVar(name, value) {
|
|
20
|
+
process.env[cliEnvVarFullName(name)] = value;
|
|
21
|
+
}
|
|
22
|
+
export function deleteCliEnvVar(name) {
|
|
23
|
+
delete process.env[cliEnvVarFullName(name)];
|
|
24
|
+
}
|
|
25
|
+
/** Set a system env var that has no MS_CLI_ prefix (e.g. NO_COLOR). */
|
|
26
|
+
export function setSystemEnvVar(name, value) {
|
|
27
|
+
process.env[name] = value;
|
|
28
|
+
}
|
|
29
|
+
export function deleteSystemEnvVar(name) {
|
|
30
|
+
delete process.env[name];
|
|
31
|
+
}
|
|
32
|
+
export function snapshotEnv() {
|
|
33
|
+
return { ...process.env };
|
|
34
|
+
}
|
|
35
|
+
export function restoreEnv(snapshot) {
|
|
36
|
+
process.env = { ...snapshot };
|
|
37
|
+
}
|
|
38
|
+
//# sourceMappingURL=EnvVars.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"EnvVars.js","sourceRoot":"","sources":["../../src/Utils/EnvVars.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAE5D,MAAM,MAAM,GAAG,GAAG,eAAe,CAAC,WAAW,EAAE,OAAO,CAAC;AA8EvD,MAAM,UAAU,iBAAiB,CAAC,IAAmB;IACnD,OAAO,GAAG,MAAM,GAAG,IAAI,EAAE,CAAC;AAC5B,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,IAAmB;IAC9C,OAAO,OAAO,CAAC,GAAG,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC,CAAC;AAC9C,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,IAAmB;IAClD,OAAO,YAAY,CAAC,IAAI,CAAC,KAAK,MAAM,CAAC;AACvC,CAAC;AAED,sGAAsG;AACtG,MAAM,UAAU,eAAe,CAAC,IAAY;IAC1C,OAAO,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;AAC3B,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,IAAmB,EAAE,KAAa;IAC7D,OAAO,CAAC,GAAG,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC,GAAG,KAAK,CAAC;AAC/C,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,IAAmB;IACjD,OAAO,OAAO,CAAC,GAAG,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC,CAAC;AAC9C,CAAC;AAED,uEAAuE;AACvE,MAAM,UAAU,eAAe,CAAC,IAAY,EAAE,KAAa;IACzD,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC;AAC5B,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,IAAY;IAC7C,OAAO,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;AAC3B,CAAC;AAED,MAAM,UAAU,WAAW;IACzB,OAAO,EAAE,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;AAC5B,CAAC;AAED,MAAM,UAAU,UAAU,CAAC,QAA4B;IACrD,OAAO,CAAC,GAAG,GAAG,EAAE,GAAG,QAAQ,EAAE,CAAC;AAChC,CAAC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/*!
|
|
2
|
+
* Copyright (C) Microsoft Corporation. All rights reserved.
|
|
3
|
+
*/
|
|
4
|
+
interface BuildGcmConfigOptions {
|
|
5
|
+
gitUrl: string;
|
|
6
|
+
loginAuthority: string;
|
|
7
|
+
authResource: string;
|
|
8
|
+
platform?: NodeJS.Platform;
|
|
9
|
+
}
|
|
10
|
+
export declare function buildGcmConfig({ gitUrl, loginAuthority, authResource, platform, }: BuildGcmConfigOptions): Array<[string, string]>;
|
|
11
|
+
export {};
|
|
12
|
+
//# sourceMappingURL=GitCredentialConfig.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"GitCredentialConfig.d.ts","sourceRoot":"","sources":["../../src/Utils/GitCredentialConfig.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH,UAAU,qBAAqB;IAC7B,MAAM,EAAE,MAAM,CAAC;IACf,cAAc,EAAE,MAAM,CAAC;IACvB,YAAY,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,MAAM,CAAC,QAAQ,CAAC;CAC5B;AAED,wBAAgB,cAAc,CAAC,EAC7B,MAAM,EACN,cAAc,EACd,YAAY,EACZ,QAA2B,GAC5B,EAAE,qBAAqB,GAAG,KAAK,CAAC,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAmCjD"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
/*!
|
|
2
|
+
* Copyright (C) Microsoft Corporation. All rights reserved.
|
|
3
|
+
*/
|
|
4
|
+
import { CLI_CLIENT_ID } from '../Constants.js';
|
|
5
|
+
export function buildGcmConfig({ gitUrl, loginAuthority, authResource, platform = process.platform, }) {
|
|
6
|
+
let remoteUrl;
|
|
7
|
+
try {
|
|
8
|
+
remoteUrl = new URL(gitUrl);
|
|
9
|
+
}
|
|
10
|
+
catch (err) {
|
|
11
|
+
throw new Error(`Git credential helper setup requires a valid HTTPS remote URL: ${err instanceof Error ? err.message : String(err)}`);
|
|
12
|
+
}
|
|
13
|
+
if (remoteUrl.protocol !== 'https:') {
|
|
14
|
+
throw new Error(`Git credential helper setup requires an HTTPS remote URL, got '${remoteUrl.protocol}'.`);
|
|
15
|
+
}
|
|
16
|
+
const gitHost = remoteUrl.host;
|
|
17
|
+
const base = `${loginAuthority}/oauth2/v2.0`;
|
|
18
|
+
const prefix = `credential.https://${gitHost}`;
|
|
19
|
+
const gcmConfig = [
|
|
20
|
+
[`${prefix}.oauthAuthorizeEndpoint`, `${base}/authorize?prompt=select_account`],
|
|
21
|
+
[`${prefix}.oauthTokenEndpoint`, `${base}/token`],
|
|
22
|
+
[`${prefix}.oauthDeviceEndpoint`, `${base}/devicecode`],
|
|
23
|
+
[`${prefix}.oauthClientId`, CLI_CLIENT_ID],
|
|
24
|
+
[`${prefix}.oauthScopes`, `${authResource}/.default offline_access`],
|
|
25
|
+
[`${prefix}.oauthRedirectUri`, 'http://localhost'],
|
|
26
|
+
];
|
|
27
|
+
if (platform === 'win32') {
|
|
28
|
+
gcmConfig.push([`${prefix}.credentialStore`, 'dpapi']);
|
|
29
|
+
}
|
|
30
|
+
return gcmConfig;
|
|
31
|
+
}
|
|
32
|
+
//# sourceMappingURL=GitCredentialConfig.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"GitCredentialConfig.js","sourceRoot":"","sources":["../../src/Utils/GitCredentialConfig.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAS7C,MAAM,UAAU,cAAc,CAAC,EAC7B,MAAM,EACN,cAAc,EACd,YAAY,EACZ,QAAQ,GAAG,OAAO,CAAC,QAAQ,GACL;IACtB,IAAI,SAAc,CAAC;IACnB,IAAI,CAAC;QACH,SAAS,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,CAAC;IAC9B,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,MAAM,IAAI,KAAK,CACb,kEACE,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CACjD,EAAE,CACH,CAAC;IACJ,CAAC;IAED,IAAI,SAAS,CAAC,QAAQ,KAAK,QAAQ,EAAE,CAAC;QACpC,MAAM,IAAI,KAAK,CACb,kEAAkE,SAAS,CAAC,QAAQ,IAAI,CACzF,CAAC;IACJ,CAAC;IAED,MAAM,OAAO,GAAG,SAAS,CAAC,IAAI,CAAC;IAC/B,MAAM,IAAI,GAAG,GAAG,cAAc,cAAc,CAAC;IAC7C,MAAM,MAAM,GAAG,sBAAsB,OAAO,EAAE,CAAC;IAC/C,MAAM,SAAS,GAA4B;QACzC,CAAC,GAAG,MAAM,yBAAyB,EAAE,GAAG,IAAI,kCAAkC,CAAC;QAC/E,CAAC,GAAG,MAAM,qBAAqB,EAAE,GAAG,IAAI,QAAQ,CAAC;QACjD,CAAC,GAAG,MAAM,sBAAsB,EAAE,GAAG,IAAI,aAAa,CAAC;QACvD,CAAC,GAAG,MAAM,gBAAgB,EAAE,aAAa,CAAC;QAC1C,CAAC,GAAG,MAAM,cAAc,EAAE,GAAG,YAAY,0BAA0B,CAAC;QACpE,CAAC,GAAG,MAAM,mBAAmB,EAAE,kBAAkB,CAAC;KACnD,CAAC;IAEF,IAAI,QAAQ,KAAK,OAAO,EAAE,CAAC;QACzB,SAAS,CAAC,IAAI,CAAC,CAAC,GAAG,MAAM,kBAAkB,EAAE,OAAO,CAAC,CAAC,CAAC;IACzD,CAAC;IAED,OAAO,SAAS,CAAC;AACnB,CAAC"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
/*!
|
|
2
|
+
* Copyright (C) Microsoft Corporation. All rights reserved.
|
|
3
|
+
*/
|
|
4
|
+
export interface GitDefaults {
|
|
5
|
+
branch: string;
|
|
6
|
+
commitSha: string;
|
|
7
|
+
detached: boolean;
|
|
8
|
+
}
|
|
9
|
+
/**
|
|
10
|
+
* Reads the current branch and commit SHA from the working directory's git repo.
|
|
11
|
+
* Returns null when git is unavailable or the directory is not a git repo.
|
|
12
|
+
* `detached` is true when HEAD is not on a branch; in that case `branch` is the
|
|
13
|
+
* literal string 'HEAD' and callers should not treat it as a branch name.
|
|
14
|
+
*/
|
|
15
|
+
export declare function resolveGitDefaults(): GitDefaults | null;
|
|
16
|
+
/**
|
|
17
|
+
* Returns true when the working tree has uncommitted changes (staged, unstaged, or untracked).
|
|
18
|
+
* Returns null when git is unavailable or the directory is not a git repo, so callers can skip
|
|
19
|
+
* the check rather than treat it as a clean tree.
|
|
20
|
+
*/
|
|
21
|
+
export declare function hasUncommittedChanges(): boolean | null;
|
|
22
|
+
//# sourceMappingURL=GitUtils.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"GitUtils.d.ts","sourceRoot":"","sources":["../../src/Utils/GitUtils.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH,MAAM,WAAW,WAAW;IAC1B,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,OAAO,CAAC;CACnB;AAED;;;;;GAKG;AACH,wBAAgB,kBAAkB,IAAI,WAAW,GAAG,IAAI,CAQvD;AAED;;;;GAIG;AACH,wBAAgB,qBAAqB,IAAI,OAAO,GAAG,IAAI,CAOtD"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
/*!
|
|
2
|
+
* Copyright (C) Microsoft Corporation. All rights reserved.
|
|
3
|
+
*/
|
|
4
|
+
import { execSync } from 'child_process';
|
|
5
|
+
/**
|
|
6
|
+
* Reads the current branch and commit SHA from the working directory's git repo.
|
|
7
|
+
* Returns null when git is unavailable or the directory is not a git repo.
|
|
8
|
+
* `detached` is true when HEAD is not on a branch; in that case `branch` is the
|
|
9
|
+
* literal string 'HEAD' and callers should not treat it as a branch name.
|
|
10
|
+
*/
|
|
11
|
+
export function resolveGitDefaults() {
|
|
12
|
+
try {
|
|
13
|
+
const commitSha = execSync('git rev-parse HEAD', { stdio: 'pipe' }).toString().trim();
|
|
14
|
+
const branch = execSync('git rev-parse --abbrev-ref HEAD', { stdio: 'pipe' }).toString().trim();
|
|
15
|
+
return { branch, commitSha, detached: branch === 'HEAD' };
|
|
16
|
+
}
|
|
17
|
+
catch {
|
|
18
|
+
return null;
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* Returns true when the working tree has uncommitted changes (staged, unstaged, or untracked).
|
|
23
|
+
* Returns null when git is unavailable or the directory is not a git repo, so callers can skip
|
|
24
|
+
* the check rather than treat it as a clean tree.
|
|
25
|
+
*/
|
|
26
|
+
export function hasUncommittedChanges() {
|
|
27
|
+
try {
|
|
28
|
+
const status = execSync('git status --porcelain', { stdio: 'pipe' }).toString().trim();
|
|
29
|
+
return status.length > 0;
|
|
30
|
+
}
|
|
31
|
+
catch {
|
|
32
|
+
return null;
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
//# sourceMappingURL=GitUtils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"GitUtils.js","sourceRoot":"","sources":["../../src/Utils/GitUtils.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAQzC;;;;;GAKG;AACH,MAAM,UAAU,kBAAkB;IAChC,IAAI,CAAC;QACH,MAAM,SAAS,GAAG,QAAQ,CAAC,oBAAoB,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,IAAI,EAAE,CAAC;QACtF,MAAM,MAAM,GAAG,QAAQ,CAAC,iCAAiC,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,IAAI,EAAE,CAAC;QAChG,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,KAAK,MAAM,EAAE,CAAC;IAC5D,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,qBAAqB;IACnC,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,QAAQ,CAAC,wBAAwB,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,IAAI,EAAE,CAAC;QACvF,OAAO,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC;IAC3B,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
/*!
|
|
2
|
+
* Copyright (C) Microsoft Corporation. All rights reserved.
|
|
3
|
+
*/
|
|
4
|
+
import type { ColumnDef } from './ConsoleOutput.js';
|
|
5
|
+
export declare const PAGE_SIZE = 20;
|
|
6
|
+
/**
|
|
7
|
+
* Waits for a keypress in raw TTY mode.
|
|
8
|
+
* Enter/Space = continue, Esc/q = exit, Ctrl+C = process exit.
|
|
9
|
+
*/
|
|
10
|
+
export declare function waitForPageKey(): Promise<'continue' | 'exit'>;
|
|
11
|
+
/**
|
|
12
|
+
* Prints a paginated table in TTY mode (20 rows per page, Enter/Esc to navigate)
|
|
13
|
+
* or a single full table in non-TTY/piped mode.
|
|
14
|
+
*/
|
|
15
|
+
export declare function printPagedTable(options: {
|
|
16
|
+
title: string;
|
|
17
|
+
metadata?: string[];
|
|
18
|
+
columns: ColumnDef[];
|
|
19
|
+
rows: string[][];
|
|
20
|
+
emptyMessage?: string;
|
|
21
|
+
totalLabel: string;
|
|
22
|
+
}): Promise<void>;
|
|
23
|
+
//# sourceMappingURL=Paging.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Paging.d.ts","sourceRoot":"","sources":["../../src/Utils/Paging.ts"],"names":[],"mappings":"AAAA;;GAEG;AAKH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAGjD,eAAO,MAAM,SAAS,KAAK,CAAC;AAE5B;;;GAGG;AACH,wBAAsB,cAAc,IAAI,OAAO,CAAC,UAAU,GAAG,MAAM,CAAC,CA2BnE;AAED;;;GAGG;AACH,wBAAsB,eAAe,CAAC,OAAO,EAAE;IAC7C,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IACpB,OAAO,EAAE,SAAS,EAAE,CAAC;IACrB,IAAI,EAAE,MAAM,EAAE,EAAE,CAAC;IACjB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,UAAU,EAAE,MAAM,CAAC;CACpB,GAAG,OAAO,CAAC,IAAI,CAAC,CA4BhB"}
|