@microsoft/power-apps-cli 0.9.1 → 0.10.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 +81 -10
- package/dist/ArgumentProvider.d.ts +61 -0
- package/dist/ArgumentProvider.d.ts.map +1 -0
- package/dist/ArgumentProvider.js +247 -0
- package/dist/ArgumentProvider.js.map +1 -0
- package/dist/Authentication/NodeMsalAuthenticationProvider.d.ts +17 -0
- package/dist/Authentication/NodeMsalAuthenticationProvider.d.ts.map +1 -0
- package/dist/Authentication/NodeMsalAuthenticationProvider.js +91 -0
- package/dist/Authentication/NodeMsalAuthenticationProvider.js.map +1 -0
- package/dist/Authentication/PacCliAuthenticationProvider.d.ts +15 -0
- package/dist/Authentication/PacCliAuthenticationProvider.d.ts.map +1 -0
- package/dist/Authentication/PacCliAuthenticationProvider.js +51 -0
- package/dist/Authentication/PacCliAuthenticationProvider.js.map +1 -0
- package/dist/Authentication/ServicePrincipalAuthenticationProvider.d.ts +20 -0
- package/dist/Authentication/ServicePrincipalAuthenticationProvider.d.ts.map +1 -0
- package/dist/Authentication/ServicePrincipalAuthenticationProvider.js +51 -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 +2 -3357
- 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 +131 -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 +70 -0
- package/dist/CliSettings.js.map +1 -0
- package/dist/CliUtils.d.ts +21 -0
- package/dist/CliUtils.d.ts.map +1 -0
- package/dist/CliUtils.js +92 -0
- package/dist/CliUtils.js.map +1 -0
- package/dist/Constants/HelpStrings.d.ts +168 -0
- package/dist/Constants/HelpStrings.d.ts.map +1 -0
- package/dist/Constants/HelpStrings.js +216 -0
- package/dist/Constants/HelpStrings.js.map +1 -0
- package/dist/Constants/VerbRegistry.d.ts +79 -0
- package/dist/Constants/VerbRegistry.d.ts.map +1 -0
- package/dist/Constants/VerbRegistry.js +46 -0
- package/dist/Constants/VerbRegistry.js.map +1 -0
- package/dist/Constants.d.ts +10 -0
- package/dist/Constants.d.ts.map +1 -0
- package/dist/Constants.js +12 -0
- package/dist/Constants.js.map +1 -0
- package/dist/Errors/CliError.d.ts +11 -0
- package/dist/Errors/CliError.d.ts.map +1 -0
- package/dist/Errors/CliError.js +16 -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 +21 -0
- package/dist/HttpClient/CliHttpClient.d.ts.map +1 -0
- package/dist/HttpClient/CliHttpClient.js +118 -0
- package/dist/HttpClient/CliHttpClient.js.map +1 -0
- package/dist/Logger/CliLogger.d.ts +27 -0
- package/dist/Logger/CliLogger.d.ts.map +1 -0
- package/dist/Logger/CliLogger.js +222 -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 +18 -0
- package/dist/Logger/LoggerSettings.d.ts.map +1 -0
- package/dist/Logger/LoggerSettings.js +100 -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 +137 -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 +20 -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 +35 -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/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 +9 -0
- package/dist/Utils/BuildVerbDescriptionTable.d.ts.map +1 -0
- package/dist/Utils/BuildVerbDescriptionTable.js +29 -0
- package/dist/Utils/BuildVerbDescriptionTable.js.map +1 -0
- package/dist/Utils/ConsoleOutput.d.ts +39 -0
- package/dist/Utils/ConsoleOutput.d.ts.map +1 -0
- package/dist/Utils/ConsoleOutput.js +111 -0
- package/dist/Utils/ConsoleOutput.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/Verbs/AddDataSource.d.ts +19 -0
- package/dist/Verbs/AddDataSource.d.ts.map +1 -0
- package/dist/Verbs/AddDataSource.js +157 -0
- package/dist/Verbs/AddDataSource.js.map +1 -0
- package/dist/Verbs/AddDataverseApi.d.ts +13 -0
- package/dist/Verbs/AddDataverseApi.d.ts.map +1 -0
- package/dist/Verbs/AddDataverseApi.js +67 -0
- package/dist/Verbs/AddDataverseApi.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 +66 -0
- package/dist/Verbs/AddFlow.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 +108 -0
- package/dist/Verbs/DeleteDataSource.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/Init.d.ts +6 -0
- package/dist/Verbs/Init.d.ts.map +1 -0
- package/dist/Verbs/Init.js +146 -0
- package/dist/Verbs/Init.js.map +1 -0
- package/dist/Verbs/ListCodeApps.d.ts +6 -0
- package/dist/Verbs/ListCodeApps.d.ts.map +1 -0
- package/dist/Verbs/ListCodeApps.js +31 -0
- package/dist/Verbs/ListCodeApps.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 +80 -0
- package/dist/Verbs/ListConnectionReferences.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 +82 -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/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/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/Push.d.ts +6 -0
- package/dist/Verbs/Push.d.ts.map +1 -0
- package/dist/Verbs/Push.js +108 -0
- package/dist/Verbs/Push.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 +70 -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 +98 -0
- package/dist/Verbs/RemoveFlow.js.map +1 -0
- package/dist/Verbs/Run.d.ts +6 -0
- package/dist/Verbs/Run.d.ts.map +1 -0
- package/dist/Verbs/Run.js +122 -0
- package/dist/Verbs/Run.js.map +1 -0
- package/dist/Verbs/TelemetrySettings.d.ts +12 -0
- package/dist/Verbs/TelemetrySettings.d.ts.map +1 -0
- package/dist/Verbs/TelemetrySettings.js +158 -0
- package/dist/Verbs/TelemetrySettings.js.map +1 -0
- package/dist/Verbs/VerbConstants.d.ts +203 -0
- package/dist/Verbs/VerbConstants.d.ts.map +1 -0
- package/dist/Verbs/VerbConstants.js +201 -0
- package/dist/Verbs/VerbConstants.js.map +1 -0
- package/dist/Verbs/index.d.ts +22 -0
- package/dist/Verbs/index.d.ts.map +1 -0
- package/dist/Verbs/index.js +22 -0
- package/dist/Verbs/index.js.map +1 -0
- package/package.json +5 -5
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"LoggerTypes.types.d.ts","sourceRoot":"","sources":["../../src/Types/LoggerTypes.types.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,kBAAkB,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAChE,eAAe,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7D,aAAa,CAAC,YAAY,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9D,gBAAgB,CAAC,YAAY,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACpE,cAAc,CAAC,YAAY,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACjE,0BAA0B,CAAC,YAAY,EAAE,MAAM,EAAE,qBAAqB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACvF,KAAK,IAAI,IAAI,CAAC;IACd,kBAAkB,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;CACxD"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"LoggerTypes.types.js","sourceRoot":"","sources":["../../src/Types/LoggerTypes.types.ts"],"names":[],"mappings":"AAAA;;GAEG"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/*!
|
|
2
|
+
* Copyright (C) Microsoft Corporation. All rights reserved.
|
|
3
|
+
*/
|
|
4
|
+
/**
|
|
5
|
+
* Formats the verb registry into a table for help output.
|
|
6
|
+
* Uses simple text-based table formatting suitable for terminal display.
|
|
7
|
+
*/
|
|
8
|
+
export declare function buildVerbDescriptionTable(): string;
|
|
9
|
+
//# sourceMappingURL=BuildVerbDescriptionTable.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"BuildVerbDescriptionTable.d.ts","sourceRoot":"","sources":["../../src/Utils/BuildVerbDescriptionTable.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH;;;GAGG;AACH,wBAAgB,yBAAyB,IAAI,MAAM,CAwBlD"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
/*!
|
|
2
|
+
* Copyright (C) Microsoft Corporation. All rights reserved.
|
|
3
|
+
*/
|
|
4
|
+
import { VERB_HELP_REGISTRY } from '../Constants/VerbRegistry.js';
|
|
5
|
+
/**
|
|
6
|
+
* Formats the verb registry into a table for help output.
|
|
7
|
+
* Uses simple text-based table formatting suitable for terminal display.
|
|
8
|
+
*/
|
|
9
|
+
export function buildVerbDescriptionTable() {
|
|
10
|
+
const verbEntries = Object.entries(VERB_HELP_REGISTRY);
|
|
11
|
+
if (verbEntries.length === 0) {
|
|
12
|
+
return '';
|
|
13
|
+
}
|
|
14
|
+
// Calculate column width based on longest verb name
|
|
15
|
+
const maxVerbLength = Math.max(...verbEntries.map(([verb]) => verb.length));
|
|
16
|
+
const verbColumnWidth = Math.max(maxVerbLength + 2, 10);
|
|
17
|
+
const lines = [];
|
|
18
|
+
lines.push('Available Commands:');
|
|
19
|
+
lines.push('');
|
|
20
|
+
lines.push(` ${'Command'.padEnd(verbColumnWidth)} Description`);
|
|
21
|
+
lines.push(` ${'-'.repeat(verbColumnWidth)} ${'-'.repeat(60)}`);
|
|
22
|
+
// Format each verb as a table row
|
|
23
|
+
verbEntries.forEach(([verb, verbMetadata]) => {
|
|
24
|
+
const verbColumn = verb.padEnd(verbColumnWidth);
|
|
25
|
+
lines.push(` ${verbColumn} ${verbMetadata.description}`);
|
|
26
|
+
});
|
|
27
|
+
return lines.join('\n');
|
|
28
|
+
}
|
|
29
|
+
//# sourceMappingURL=BuildVerbDescriptionTable.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"BuildVerbDescriptionTable.js","sourceRoot":"","sources":["../../src/Utils/BuildVerbDescriptionTable.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAE/D;;;GAGG;AACH,MAAM,UAAU,yBAAyB;IACvC,MAAM,WAAW,GAAG,MAAM,CAAC,OAAO,CAAC,kBAAkB,CAAC,CAAC;IAEvD,IAAI,WAAW,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC7B,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,oDAAoD;IACpD,MAAM,aAAa,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;IAC5E,MAAM,eAAe,GAAG,IAAI,CAAC,GAAG,CAAC,aAAa,GAAG,CAAC,EAAE,EAAE,CAAC,CAAC;IAExD,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,KAAK,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC;IAClC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACf,KAAK,CAAC,IAAI,CAAC,KAAK,SAAS,CAAC,MAAM,CAAC,eAAe,CAAC,eAAe,CAAC,CAAC;IAClE,KAAK,CAAC,IAAI,CAAC,KAAK,GAAG,CAAC,MAAM,CAAC,eAAe,CAAC,KAAK,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;IAElE,kCAAkC;IAClC,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,EAAE,YAAY,CAAC,EAAE,EAAE;QAC3C,MAAM,UAAU,GAAG,IAAI,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC;QAChD,KAAK,CAAC,IAAI,CAAC,KAAK,UAAU,KAAK,YAAY,CAAC,WAAW,EAAE,CAAC,CAAC;IAC7D,CAAC,CAAC,CAAC;IAEH,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1B,CAAC"}
|
|
@@ -0,0 +1,39 @@
|
|
|
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
|
+
export declare function printInfo(message: string): void;
|
|
37
|
+
export declare function printWarning(message: string): void;
|
|
38
|
+
export declare function printError(message: string): void;
|
|
39
|
+
//# 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;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,111 @@
|
|
|
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
|
+
export function printInfo(message) {
|
|
103
|
+
console.log(message);
|
|
104
|
+
}
|
|
105
|
+
export function printWarning(message) {
|
|
106
|
+
console.warn(chalk.yellow(message));
|
|
107
|
+
}
|
|
108
|
+
export function printError(message) {
|
|
109
|
+
console.error(chalk.red(message));
|
|
110
|
+
}
|
|
111
|
+
//# 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,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,19 @@
|
|
|
1
|
+
/*!
|
|
2
|
+
* Copyright (C) Microsoft Corporation. All rights reserved.
|
|
3
|
+
*/
|
|
4
|
+
import type { ArgumentProvider } from '../ArgumentProvider.js';
|
|
5
|
+
/**
|
|
6
|
+
* Adds a data source based on the provided environment variables.
|
|
7
|
+
* It supports both Dataverse and connector data sources.
|
|
8
|
+
* Expects the following environment variables:
|
|
9
|
+
* - API_ID: The ID of the API (e.g., 'dataverse' or a connector ID)
|
|
10
|
+
* - CONNECTION_ID?: The ID of the connection (for connector data sources)
|
|
11
|
+
* - TABLE?: The table name for Dataverse or tabular connector data sources
|
|
12
|
+
* - ENV_URL?: The environment URL for Dataverse data sources
|
|
13
|
+
* - DATASET?: The dataset name for tabular/stored proc connector data sources
|
|
14
|
+
* - SQL_STORED_PROCEDURE?: The name of the SQL stored procedure for connector data sources
|
|
15
|
+
* @param config - Local file paths configuration
|
|
16
|
+
* @returns Promise<void>
|
|
17
|
+
*/
|
|
18
|
+
export declare function addDataSourceAsync(argumentProvider: ArgumentProvider): Promise<void>;
|
|
19
|
+
//# sourceMappingURL=AddDataSource.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AddDataSource.d.ts","sourceRoot":"","sources":["../../src/Verbs/AddDataSource.ts"],"names":[],"mappings":"AAAA;;GAEG;AAQH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAO5D;;;;;;;;;;;;GAYG;AACH,wBAAsB,kBAAkB,CAAC,gBAAgB,EAAE,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC,CAqC1F"}
|
|
@@ -0,0 +1,157 @@
|
|
|
1
|
+
/*!
|
|
2
|
+
* Copyright (C) Microsoft Corporation. All rights reserved.
|
|
3
|
+
*/
|
|
4
|
+
import { addDataSourceAsync as addDataSourceActionsAsync, getPlayerServiceConfig, } from '@microsoft/power-apps-actions';
|
|
5
|
+
import { getCliLogger, getSettings } from '../CliSettings.js';
|
|
6
|
+
import { createDefaultStringOption, promptConfirm, promptText } from '../CliUtils.js';
|
|
7
|
+
import { HelpStrings } from '../Constants/HelpStrings.js';
|
|
8
|
+
import { printInfo, printSuccess } from '../Utils/ConsoleOutput.js';
|
|
9
|
+
import { AddDataSourceArguments, SharedArguments } from './VerbConstants.js';
|
|
10
|
+
/**
|
|
11
|
+
* Adds a data source based on the provided environment variables.
|
|
12
|
+
* It supports both Dataverse and connector data sources.
|
|
13
|
+
* Expects the following environment variables:
|
|
14
|
+
* - API_ID: The ID of the API (e.g., 'dataverse' or a connector ID)
|
|
15
|
+
* - CONNECTION_ID?: The ID of the connection (for connector data sources)
|
|
16
|
+
* - TABLE?: The table name for Dataverse or tabular connector data sources
|
|
17
|
+
* - ENV_URL?: The environment URL for Dataverse data sources
|
|
18
|
+
* - DATASET?: The dataset name for tabular/stored proc connector data sources
|
|
19
|
+
* - SQL_STORED_PROCEDURE?: The name of the SQL stored procedure for connector data sources
|
|
20
|
+
* @param config - Local file paths configuration
|
|
21
|
+
* @returns Promise<void>
|
|
22
|
+
*/
|
|
23
|
+
export async function addDataSourceAsync(argumentProvider) {
|
|
24
|
+
const settings = getSettings();
|
|
25
|
+
const { fileConfig, cliFs } = settings;
|
|
26
|
+
createOptionSchema(argumentProvider);
|
|
27
|
+
await argumentProvider.runVerb();
|
|
28
|
+
const playerServiceConfig = getPlayerServiceConfig();
|
|
29
|
+
// Use the already initialized authentication provider from ArgumentProvider
|
|
30
|
+
const authenticationProvider = argumentProvider.getAuthenticationProvider();
|
|
31
|
+
const dsConfig = {
|
|
32
|
+
vfs: cliFs,
|
|
33
|
+
authProvider: authenticationProvider,
|
|
34
|
+
region: playerServiceConfig.region,
|
|
35
|
+
environmentName: playerServiceConfig.environmentName,
|
|
36
|
+
actionsParams: {
|
|
37
|
+
apiId: () => argumentProvider.getOption('apiId'),
|
|
38
|
+
connectionId: () => argumentProvider.getOption('connectionId'),
|
|
39
|
+
tableName: () => argumentProvider.getOption('resourceName'),
|
|
40
|
+
dataset: () => argumentProvider.getOption('dataset'),
|
|
41
|
+
sqlStoredProcedure: () => argumentProvider.getOption('sqlStoredProcedure'),
|
|
42
|
+
envUrl: () => argumentProvider.getOption('orgUrl'),
|
|
43
|
+
solutionId: () => argumentProvider.getOption('solutionId'),
|
|
44
|
+
connectionRef: () => argumentProvider.getOption('connectionRef'),
|
|
45
|
+
},
|
|
46
|
+
localFilePaths: {
|
|
47
|
+
powerConfigPath: fileConfig.powerConfigPath,
|
|
48
|
+
schemaPath: fileConfig.schemaPath,
|
|
49
|
+
codeGenPath: fileConfig.codeGenPath,
|
|
50
|
+
},
|
|
51
|
+
logger: getCliLogger(),
|
|
52
|
+
};
|
|
53
|
+
await addDataSourceActionsAsync(dsConfig);
|
|
54
|
+
printSuccess('Data source added successfully.');
|
|
55
|
+
printInfo("Hint: Run 'npx power-apps run' to test locally, or 'npx power-apps push' to deploy.");
|
|
56
|
+
}
|
|
57
|
+
function createOptionSchema(argumentProvider) {
|
|
58
|
+
argumentProvider.setDescription(HelpStrings.Verbs['Add-data-source'].Description);
|
|
59
|
+
argumentProvider.addExamples(HelpStrings.Verbs['Add-data-source'].Examples);
|
|
60
|
+
argumentProvider.addOptions([
|
|
61
|
+
createDefaultStringOption({
|
|
62
|
+
flags: {
|
|
63
|
+
key: SharedArguments.ApiId.name,
|
|
64
|
+
alias: SharedArguments.ApiId.alias,
|
|
65
|
+
},
|
|
66
|
+
env: SharedArguments.ApiId.envVar,
|
|
67
|
+
message: SharedArguments.ApiId.promptMessage,
|
|
68
|
+
description: HelpStrings.Verbs['Add-data-source'].Options.ApiId,
|
|
69
|
+
}),
|
|
70
|
+
createDefaultStringOption({
|
|
71
|
+
flags: {
|
|
72
|
+
key: SharedArguments.ConnectionId.name,
|
|
73
|
+
alias: SharedArguments.ConnectionId.alias,
|
|
74
|
+
},
|
|
75
|
+
env: SharedArguments.ConnectionId.envVar,
|
|
76
|
+
message: SharedArguments.ConnectionId.promptMessage,
|
|
77
|
+
description: HelpStrings.Verbs['Add-data-source'].Options.ConnectionId,
|
|
78
|
+
}),
|
|
79
|
+
{
|
|
80
|
+
flags: {
|
|
81
|
+
key: AddDataSourceArguments.ConnectionRef.name,
|
|
82
|
+
alias: AddDataSourceArguments.ConnectionRef.alias,
|
|
83
|
+
},
|
|
84
|
+
env: AddDataSourceArguments.ConnectionRef.envVar,
|
|
85
|
+
description: HelpStrings.Verbs['Add-data-source'].Options.ConnectionRef,
|
|
86
|
+
optionalInNonInteractive: true,
|
|
87
|
+
customPrompt: async () => {
|
|
88
|
+
const hasConnectionRef = await promptConfirm({
|
|
89
|
+
message: 'Are you using a connection reference instead of a connection ID?',
|
|
90
|
+
});
|
|
91
|
+
if (hasConnectionRef) {
|
|
92
|
+
return await promptText({
|
|
93
|
+
message: AddDataSourceArguments.ConnectionRef.promptMessage,
|
|
94
|
+
});
|
|
95
|
+
}
|
|
96
|
+
return '';
|
|
97
|
+
},
|
|
98
|
+
},
|
|
99
|
+
createDefaultStringOption({
|
|
100
|
+
flags: {
|
|
101
|
+
key: SharedArguments.ResourceName.name,
|
|
102
|
+
alias: SharedArguments.ResourceName.alias,
|
|
103
|
+
},
|
|
104
|
+
env: SharedArguments.ResourceName.envVar,
|
|
105
|
+
message: SharedArguments.ResourceName.promptMessage,
|
|
106
|
+
description: HelpStrings.Verbs['Add-data-source'].Options.ResourceName,
|
|
107
|
+
}),
|
|
108
|
+
createDefaultStringOption({
|
|
109
|
+
flags: {
|
|
110
|
+
key: SharedArguments.Dataset.name,
|
|
111
|
+
alias: SharedArguments.Dataset.alias,
|
|
112
|
+
},
|
|
113
|
+
env: SharedArguments.Dataset.envVar,
|
|
114
|
+
message: SharedArguments.Dataset.promptMessage,
|
|
115
|
+
description: HelpStrings.Verbs['Add-data-source'].Options.Dataset,
|
|
116
|
+
}),
|
|
117
|
+
createDefaultStringOption({
|
|
118
|
+
flags: {
|
|
119
|
+
key: SharedArguments.OrgUrl.name,
|
|
120
|
+
alias: SharedArguments.OrgUrl.alias,
|
|
121
|
+
},
|
|
122
|
+
env: SharedArguments.OrgUrl.envVar,
|
|
123
|
+
message: SharedArguments.OrgUrl.promptMessage,
|
|
124
|
+
description: HelpStrings.Verbs['Add-data-source'].Options.OrgUrl,
|
|
125
|
+
}),
|
|
126
|
+
{
|
|
127
|
+
flags: {
|
|
128
|
+
key: SharedArguments.SqlStoredProcedure.name,
|
|
129
|
+
alias: SharedArguments.SqlStoredProcedure.alias,
|
|
130
|
+
},
|
|
131
|
+
env: SharedArguments.SqlStoredProcedure.envVar,
|
|
132
|
+
description: HelpStrings.Verbs['Add-data-source'].Options.SqlStoredProcedure,
|
|
133
|
+
optionalInNonInteractive: true,
|
|
134
|
+
customPrompt: async () => {
|
|
135
|
+
const hasSqlProcedure = await promptConfirm({
|
|
136
|
+
message: 'Are you trying to add an SQL stored procedure?',
|
|
137
|
+
});
|
|
138
|
+
if (hasSqlProcedure) {
|
|
139
|
+
return await promptText({
|
|
140
|
+
message: SharedArguments.SqlStoredProcedure.promptMessage,
|
|
141
|
+
});
|
|
142
|
+
}
|
|
143
|
+
return '';
|
|
144
|
+
},
|
|
145
|
+
},
|
|
146
|
+
createDefaultStringOption({
|
|
147
|
+
flags: {
|
|
148
|
+
key: SharedArguments.SolutionId.name,
|
|
149
|
+
alias: SharedArguments.SolutionId.alias,
|
|
150
|
+
},
|
|
151
|
+
env: SharedArguments.SolutionId.envVar,
|
|
152
|
+
message: SharedArguments.SolutionId.promptMessage,
|
|
153
|
+
description: HelpStrings.Verbs['Add-data-source'].Options.SolutionId,
|
|
154
|
+
}),
|
|
155
|
+
]);
|
|
156
|
+
}
|
|
157
|
+
//# sourceMappingURL=AddDataSource.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AddDataSource.js","sourceRoot":"","sources":["../../src/Verbs/AddDataSource.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/*!
|
|
2
|
+
* Copyright (C) Microsoft Corporation. All rights reserved.
|
|
3
|
+
*/
|
|
4
|
+
import type { ArgumentProvider } from '../ArgumentProvider.js';
|
|
5
|
+
/**
|
|
6
|
+
* Adds a Dataverse API (custom action, custom function, SDK message, or first-party
|
|
7
|
+
* action/function) to the app.
|
|
8
|
+
*
|
|
9
|
+
* @param {ArgumentProvider} argumentProvider
|
|
10
|
+
* @returns {Promise<void>}
|
|
11
|
+
*/
|
|
12
|
+
export declare function addDataverseApiAsync(argumentProvider: ArgumentProvider): Promise<void>;
|
|
13
|
+
//# sourceMappingURL=AddDataverseApi.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AddDataverseApi.d.ts","sourceRoot":"","sources":["../../src/Verbs/AddDataverseApi.ts"],"names":[],"mappings":"AAAA;;GAEG;AAQH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAO5D;;;;;;GAMG;AACH,wBAAsB,oBAAoB,CAAC,gBAAgB,EAAE,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC,CA2C5F"}
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
/*!
|
|
2
|
+
* Copyright (C) Microsoft Corporation. All rights reserved.
|
|
3
|
+
*/
|
|
4
|
+
import { addDataverseApiAsync as addDataverseApiActionAsync, getPlayerServiceConfig, } from '@microsoft/power-apps-actions';
|
|
5
|
+
import { getCliLogger, getSettings } from '../CliSettings.js';
|
|
6
|
+
import { createDefaultStringOption } from '../CliUtils.js';
|
|
7
|
+
import { HelpStrings } from '../Constants/HelpStrings.js';
|
|
8
|
+
import { CliFS } from '../FS/CliFs.js';
|
|
9
|
+
import { AddDataverseApiArguments } from './VerbConstants.js';
|
|
10
|
+
/**
|
|
11
|
+
* Adds a Dataverse API (custom action, custom function, SDK message, or first-party
|
|
12
|
+
* action/function) to the app.
|
|
13
|
+
*
|
|
14
|
+
* @param {ArgumentProvider} argumentProvider
|
|
15
|
+
* @returns {Promise<void>}
|
|
16
|
+
*/
|
|
17
|
+
export async function addDataverseApiAsync(argumentProvider) {
|
|
18
|
+
const settings = getSettings();
|
|
19
|
+
const { fileConfig } = settings;
|
|
20
|
+
createOptionSchema(argumentProvider);
|
|
21
|
+
await argumentProvider.runVerb();
|
|
22
|
+
const cliFs = new CliFS({
|
|
23
|
+
cwd: process.cwd(),
|
|
24
|
+
allowCwdRead: true,
|
|
25
|
+
allowCwdWrite: true,
|
|
26
|
+
});
|
|
27
|
+
const playerServiceConfig = getPlayerServiceConfig();
|
|
28
|
+
const authenticationProvider = argumentProvider.getAuthenticationProvider();
|
|
29
|
+
const apiName = await argumentProvider.getOption(AddDataverseApiArguments.ApiName.key);
|
|
30
|
+
if (!apiName) {
|
|
31
|
+
throw new Error('Dataverse API name is required.');
|
|
32
|
+
}
|
|
33
|
+
const context = {
|
|
34
|
+
vfs: cliFs,
|
|
35
|
+
authProvider: authenticationProvider,
|
|
36
|
+
region: playerServiceConfig.region,
|
|
37
|
+
environmentName: playerServiceConfig.environmentName,
|
|
38
|
+
actionsParams: {
|
|
39
|
+
apiName,
|
|
40
|
+
},
|
|
41
|
+
localFilePaths: {
|
|
42
|
+
powerConfigPath: fileConfig.powerConfigPath,
|
|
43
|
+
schemaPath: fileConfig.schemaPath,
|
|
44
|
+
codeGenPath: fileConfig.codeGenPath,
|
|
45
|
+
},
|
|
46
|
+
logger: getCliLogger(),
|
|
47
|
+
};
|
|
48
|
+
await addDataverseApiActionAsync(context);
|
|
49
|
+
console.log(`Dataverse API '${apiName}' added successfully.`);
|
|
50
|
+
console.log("Hint: Run 'npx power-apps run' to test locally, or 'npx power-apps push' to deploy.");
|
|
51
|
+
}
|
|
52
|
+
function createOptionSchema(argumentProvider) {
|
|
53
|
+
argumentProvider.setDescription(HelpStrings.Verbs['Add-dataverse-api'].Description);
|
|
54
|
+
argumentProvider.addExamples(HelpStrings.Verbs['Add-dataverse-api'].Examples);
|
|
55
|
+
argumentProvider.addOptions([
|
|
56
|
+
createDefaultStringOption({
|
|
57
|
+
flags: {
|
|
58
|
+
key: AddDataverseApiArguments.ApiName.name,
|
|
59
|
+
alias: AddDataverseApiArguments.ApiName.alias,
|
|
60
|
+
},
|
|
61
|
+
env: AddDataverseApiArguments.ApiName.envVar,
|
|
62
|
+
message: AddDataverseApiArguments.ApiName.promptMessage,
|
|
63
|
+
description: HelpStrings.Verbs['Add-dataverse-api'].Options.ApiName,
|
|
64
|
+
}),
|
|
65
|
+
]);
|
|
66
|
+
}
|
|
67
|
+
//# sourceMappingURL=AddDataverseApi.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AddDataverseApi.js","sourceRoot":"","sources":["../../src/Verbs/AddDataverseApi.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,EACL,oBAAoB,IAAI,0BAA0B,EAClD,sBAAsB,GACvB,MAAM,+BAA+B,CAAC;AAGvC,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC3D,OAAO,EAAE,yBAAyB,EAAE,MAAM,aAAa,CAAC;AACxD,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AACvD,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AACpC,OAAO,EAAE,wBAAwB,EAAE,MAAM,iBAAiB,CAAC;AAE3D;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,oBAAoB,CAAC,gBAAkC;IAC3E,MAAM,QAAQ,GAAG,WAAW,EAAE,CAAC;IAC/B,MAAM,EAAE,UAAU,EAAE,GAAG,QAAQ,CAAC;IAChC,kBAAkB,CAAC,gBAAgB,CAAC,CAAC;IACrC,MAAM,gBAAgB,CAAC,OAAO,EAAE,CAAC;IAEjC,MAAM,KAAK,GAAG,IAAI,KAAK,CAAC;QACtB,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE;QAClB,YAAY,EAAE,IAAI;QAClB,aAAa,EAAE,IAAI;KACpB,CAAC,CAAC;IAEH,MAAM,mBAAmB,GAAG,sBAAsB,EAAE,CAAC;IACrD,MAAM,sBAAsB,GAAG,gBAAgB,CAAC,yBAAyB,EAAE,CAAC;IAE5E,MAAM,OAAO,GAAG,MAAM,gBAAgB,CAAC,SAAS,CAAS,wBAAwB,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IAE/F,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,MAAM,IAAI,KAAK,CAAC,iCAAiC,CAAC,CAAC;IACrD,CAAC;IAED,MAAM,OAAO,GAA2B;QACtC,GAAG,EAAE,KAAK;QACV,YAAY,EAAE,sBAAsB;QACpC,MAAM,EAAE,mBAAmB,CAAC,MAAM;QAClC,eAAe,EAAE,mBAAmB,CAAC,eAAe;QACpD,aAAa,EAAE;YACb,OAAO;SACR;QACD,cAAc,EAAE;YACd,eAAe,EAAE,UAAU,CAAC,eAAe;YAC3C,UAAU,EAAE,UAAU,CAAC,UAAU;YACjC,WAAW,EAAE,UAAU,CAAC,WAAW;SACpC;QACD,MAAM,EAAE,YAAY,EAAE;KACvB,CAAC;IAEF,MAAM,0BAA0B,CAAC,OAAO,CAAC,CAAC;IAE1C,OAAO,CAAC,GAAG,CAAC,kBAAkB,OAAO,uBAAuB,CAAC,CAAC;IAC9D,OAAO,CAAC,GAAG,CACT,qFAAqF,CACtF,CAAC;AACJ,CAAC;AAED,SAAS,kBAAkB,CAAC,gBAAkC;IAC5D,gBAAgB,CAAC,cAAc,CAAC,WAAW,CAAC,KAAK,CAAC,mBAAmB,CAAC,CAAC,WAAW,CAAC,CAAC;IACpF,gBAAgB,CAAC,WAAW,CAAC,WAAW,CAAC,KAAK,CAAC,mBAAmB,CAAC,CAAC,QAAQ,CAAC,CAAC;IAC9E,gBAAgB,CAAC,UAAU,CAAC;QAC1B,yBAAyB,CAAC;YACxB,KAAK,EAAE;gBACL,GAAG,EAAE,wBAAwB,CAAC,OAAO,CAAC,IAAI;gBAC1C,KAAK,EAAE,wBAAwB,CAAC,OAAO,CAAC,KAAK;aAC9C;YACD,GAAG,EAAE,wBAAwB,CAAC,OAAO,CAAC,MAAM;YAC5C,OAAO,EAAE,wBAAwB,CAAC,OAAO,CAAC,aAAa;YACvD,WAAW,EAAE,WAAW,CAAC,KAAK,CAAC,mBAAmB,CAAC,CAAC,OAAO,CAAC,OAAO;SACpE,CAAC;KACH,CAAC,CAAC;AACL,CAAC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/*!
|
|
2
|
+
* Copyright (C) Microsoft Corporation. All rights reserved.
|
|
3
|
+
*/
|
|
4
|
+
import type { ArgumentProvider } from '../ArgumentProvider.js';
|
|
5
|
+
/**
|
|
6
|
+
* Add a cloud flow to the current Power Apps code app by retrieving its metadata.
|
|
7
|
+
*
|
|
8
|
+
* @param {ArgumentProvider} argumentProvider
|
|
9
|
+
* @returns {Promise<void>}
|
|
10
|
+
*/
|
|
11
|
+
export declare function addFlowAsync(argumentProvider: ArgumentProvider): Promise<void>;
|
|
12
|
+
//# sourceMappingURL=AddFlow.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AddFlow.d.ts","sourceRoot":"","sources":["../../src/Verbs/AddFlow.ts"],"names":[],"mappings":"AAAA;;GAEG;AAQH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAO5D;;;;;GAKG;AACH,wBAAsB,YAAY,CAAC,gBAAgB,EAAE,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC,CAwCpF"}
|