@microsoft/managed-apps-cli 0.5.0 → 0.7.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 +65 -24
- package/dist/ArgumentProvider.d.ts +10 -2
- package/dist/ArgumentProvider.d.ts.map +1 -1
- package/dist/ArgumentProvider.js +11 -2
- package/dist/ArgumentProvider.js.map +1 -1
- package/dist/Authentication/ActiveAccountStore.d.ts +24 -0
- package/dist/Authentication/ActiveAccountStore.d.ts.map +1 -0
- package/dist/Authentication/ActiveAccountStore.js +54 -0
- package/dist/Authentication/ActiveAccountStore.js.map +1 -0
- package/dist/Authentication/EnvironmentVariableAuthenticationProvider.d.ts +26 -0
- package/dist/Authentication/EnvironmentVariableAuthenticationProvider.d.ts.map +1 -0
- package/dist/Authentication/EnvironmentVariableAuthenticationProvider.js +31 -0
- package/dist/Authentication/EnvironmentVariableAuthenticationProvider.js.map +1 -0
- package/dist/Authentication/NodeMsalAuthenticationProvider.d.ts +57 -3
- package/dist/Authentication/NodeMsalAuthenticationProvider.d.ts.map +1 -1
- package/dist/Authentication/NodeMsalAuthenticationProvider.js +187 -27
- package/dist/Authentication/NodeMsalAuthenticationProvider.js.map +1 -1
- package/dist/Cli.d.ts.map +1 -1
- package/dist/Cli.js +74 -23
- package/dist/Cli.js.map +1 -1
- package/dist/CliUtils.d.ts +2 -8
- package/dist/CliUtils.d.ts.map +1 -1
- package/dist/CliUtils.js.map +1 -1
- package/dist/Constants/CommandRegistry.d.ts.map +1 -1
- package/dist/Constants/CommandRegistry.js +32 -6
- package/dist/Constants/CommandRegistry.js.map +1 -1
- package/dist/Constants/HelpStrings.d.ts +39 -3
- package/dist/Constants/HelpStrings.d.ts.map +1 -1
- package/dist/Constants/HelpStrings.js +63 -10
- package/dist/Constants/HelpStrings.js.map +1 -1
- package/dist/Constants.d.ts +2 -0
- package/dist/Constants.d.ts.map +1 -1
- package/dist/Constants.js +2 -0
- package/dist/Constants.js.map +1 -1
- package/dist/Errors/GitHubErrorMap.d.ts +39 -0
- package/dist/Errors/GitHubErrorMap.d.ts.map +1 -0
- package/dist/Errors/GitHubErrorMap.js +187 -0
- package/dist/Errors/GitHubErrorMap.js.map +1 -0
- package/dist/HttpClient/CliHttpClient.d.ts +8 -3
- package/dist/HttpClient/CliHttpClient.d.ts.map +1 -1
- package/dist/HttpClient/CliHttpClient.js +33 -13
- package/dist/HttpClient/CliHttpClient.js.map +1 -1
- package/dist/Logger/ConsoleWriter.d.ts.map +1 -1
- package/dist/Logger/ConsoleWriter.js +7 -7
- package/dist/Logger/ConsoleWriter.js.map +1 -1
- package/dist/Middletier/FunctionsBundler.d.ts +17 -0
- package/dist/Middletier/FunctionsBundler.d.ts.map +1 -0
- package/dist/Middletier/FunctionsBundler.js +165 -0
- package/dist/Middletier/FunctionsBundler.js.map +1 -0
- package/dist/Middletier/PackFunctions.d.ts +52 -0
- package/dist/Middletier/PackFunctions.d.ts.map +1 -0
- package/dist/Middletier/PackFunctions.js +122 -0
- package/dist/Middletier/PackFunctions.js.map +1 -0
- package/dist/Types/Cli.types.d.ts +42 -1
- package/dist/Types/Cli.types.d.ts.map +1 -1
- package/dist/Types/Command.types.d.ts +1 -1
- package/dist/Types/Command.types.d.ts.map +1 -1
- package/dist/Utils/ConsoleOutput.d.ts +6 -0
- package/dist/Utils/ConsoleOutput.d.ts.map +1 -1
- package/dist/Utils/ConsoleOutput.js +23 -12
- package/dist/Utils/ConsoleOutput.js.map +1 -1
- package/dist/Utils/EnvVars.d.ts +1 -1
- package/dist/Utils/EnvVars.d.ts.map +1 -1
- package/dist/Utils/EnvVars.js.map +1 -1
- package/dist/Utils/EnvironmentRoutingUtils.d.ts +8 -0
- package/dist/Utils/EnvironmentRoutingUtils.d.ts.map +1 -0
- package/dist/Utils/EnvironmentRoutingUtils.js +45 -0
- package/dist/Utils/EnvironmentRoutingUtils.js.map +1 -0
- package/dist/Utils/GitHubDcfFlow.d.ts +59 -0
- package/dist/Utils/GitHubDcfFlow.d.ts.map +1 -0
- package/dist/Utils/GitHubDcfFlow.js +165 -0
- package/dist/Utils/GitHubDcfFlow.js.map +1 -0
- package/dist/Utils/GitUtils.d.ts +5 -0
- package/dist/Utils/GitUtils.d.ts.map +1 -1
- package/dist/Utils/GitUtils.js +15 -0
- package/dist/Utils/GitUtils.js.map +1 -1
- package/dist/Utils/Paging.d.ts.map +1 -1
- package/dist/Utils/Paging.js +4 -4
- package/dist/Utils/Paging.js.map +1 -1
- package/dist/Utils/RepoUrl.d.ts +13 -0
- package/dist/Utils/RepoUrl.d.ts.map +1 -0
- package/dist/Utils/RepoUrl.js +6 -0
- package/dist/Utils/RepoUrl.js.map +1 -0
- package/dist/Utils/Spinner.d.ts +9 -1
- package/dist/Utils/Spinner.d.ts.map +1 -1
- package/dist/Utils/Spinner.js +25 -5
- package/dist/Utils/Spinner.js.map +1 -1
- package/dist/Verbs/AddAction.d.ts.map +1 -1
- package/dist/Verbs/AddAction.js +12 -41
- package/dist/Verbs/AddAction.js.map +1 -1
- package/dist/Verbs/AddConnector.d.ts +24 -0
- package/dist/Verbs/AddConnector.d.ts.map +1 -0
- package/dist/Verbs/AddConnector.js +156 -0
- package/dist/Verbs/AddConnector.js.map +1 -0
- package/dist/Verbs/AddConnectorFlows.d.ts +72 -0
- package/dist/Verbs/AddConnectorFlows.d.ts.map +1 -0
- package/dist/Verbs/AddConnectorFlows.js +198 -0
- package/dist/Verbs/AddConnectorFlows.js.map +1 -0
- package/dist/Verbs/AddDataSource.js +1 -1
- package/dist/Verbs/AddDataSource.js.map +1 -1
- package/dist/Verbs/AddFlow.d.ts.map +1 -1
- package/dist/Verbs/AddFlow.js +3 -2
- package/dist/Verbs/AddFlow.js.map +1 -1
- package/dist/Verbs/AddTable.d.ts.map +1 -1
- package/dist/Verbs/AddTable.js +15 -100
- package/dist/Verbs/AddTable.js.map +1 -1
- package/dist/Verbs/AuthStatus.d.ts.map +1 -1
- package/dist/Verbs/AuthStatus.js +34 -6
- package/dist/Verbs/AuthStatus.js.map +1 -1
- package/dist/Verbs/AuthSwitch.d.ts +6 -0
- package/dist/Verbs/AuthSwitch.d.ts.map +1 -0
- package/dist/Verbs/AuthSwitch.js +67 -0
- package/dist/Verbs/AuthSwitch.js.map +1 -0
- package/dist/Verbs/ConnectorHelpers.d.ts +54 -1
- package/dist/Verbs/ConnectorHelpers.d.ts.map +1 -1
- package/dist/Verbs/ConnectorHelpers.js +217 -16
- package/dist/Verbs/ConnectorHelpers.js.map +1 -1
- package/dist/Verbs/CreateMaafApp.d.ts +26 -1
- package/dist/Verbs/CreateMaafApp.d.ts.map +1 -1
- package/dist/Verbs/CreateMaafApp.js +310 -135
- package/dist/Verbs/CreateMaafApp.js.map +1 -1
- package/dist/Verbs/DeployMaafApp.d.ts.map +1 -1
- package/dist/Verbs/DeployMaafApp.js +4 -0
- package/dist/Verbs/DeployMaafApp.js.map +1 -1
- package/dist/Verbs/Dev.js +5 -5
- package/dist/Verbs/Dev.js.map +1 -1
- package/dist/Verbs/FindDataverseApi.js +15 -15
- package/dist/Verbs/FindDataverseApi.js.map +1 -1
- package/dist/Verbs/GetSettings.d.ts +1 -1
- package/dist/Verbs/GetSettings.js +1 -1
- package/dist/Verbs/Init.d.ts.map +1 -1
- package/dist/Verbs/Init.js +129 -61
- package/dist/Verbs/Init.js.map +1 -1
- package/dist/Verbs/ListConnectors.d.ts.map +1 -1
- package/dist/Verbs/ListConnectors.js +4 -2
- package/dist/Verbs/ListConnectors.js.map +1 -1
- package/dist/Verbs/ListDatasets.d.ts.map +1 -1
- package/dist/Verbs/ListDatasets.js +5 -0
- package/dist/Verbs/ListDatasets.js.map +1 -1
- package/dist/Verbs/ListSqlStoredProcedures.d.ts.map +1 -1
- package/dist/Verbs/ListSqlStoredProcedures.js +5 -0
- package/dist/Verbs/ListSqlStoredProcedures.js.map +1 -1
- package/dist/Verbs/ListTables.d.ts.map +1 -1
- package/dist/Verbs/ListTables.js +5 -0
- package/dist/Verbs/ListTables.js.map +1 -1
- package/dist/Verbs/Login.d.ts.map +1 -1
- package/dist/Verbs/Login.js +16 -13
- package/dist/Verbs/Login.js.map +1 -1
- package/dist/Verbs/Logout.d.ts.map +1 -1
- package/dist/Verbs/Logout.js +19 -13
- package/dist/Verbs/Logout.js.map +1 -1
- package/dist/Verbs/MaafAppPermissions.d.ts +26 -6
- package/dist/Verbs/MaafAppPermissions.d.ts.map +1 -1
- package/dist/Verbs/MaafAppPermissions.js +193 -28
- package/dist/Verbs/MaafAppPermissions.js.map +1 -1
- package/dist/Verbs/Pack.d.ts +6 -6
- package/dist/Verbs/Pack.d.ts.map +1 -1
- package/dist/Verbs/Pack.js +80 -12
- package/dist/Verbs/Pack.js.map +1 -1
- package/dist/Verbs/RefreshDataSource.d.ts.map +1 -1
- package/dist/Verbs/RefreshDataSource.js +4 -3
- package/dist/Verbs/RefreshDataSource.js.map +1 -1
- package/dist/Verbs/RefreshGitAuth.d.ts +6 -0
- package/dist/Verbs/RefreshGitAuth.d.ts.map +1 -0
- package/dist/Verbs/RefreshGitAuth.js +153 -0
- package/dist/Verbs/RefreshGitAuth.js.map +1 -0
- package/dist/Verbs/RemoveFlow.d.ts.map +1 -1
- package/dist/Verbs/RemoveFlow.js +4 -3
- package/dist/Verbs/RemoveFlow.js.map +1 -1
- package/dist/Verbs/SetSetting.d.ts +1 -1
- package/dist/Verbs/SetSetting.js +1 -1
- package/dist/Verbs/VerbConstants.d.ts +72 -16
- package/dist/Verbs/VerbConstants.d.ts.map +1 -1
- package/dist/Verbs/VerbConstants.js +64 -16
- package/dist/Verbs/VerbConstants.js.map +1 -1
- package/dist/Verbs/index.d.ts +3 -0
- package/dist/Verbs/index.d.ts.map +1 -1
- package/dist/Verbs/index.js +3 -0
- package/dist/Verbs/index.js.map +1 -1
- package/package.json +8 -8
- package/dist/Authentication/OrchardAuthenticationProvider.d.ts +0 -13
- package/dist/Authentication/OrchardAuthenticationProvider.d.ts.map +0 -1
- package/dist/Authentication/OrchardAuthenticationProvider.js +0 -30
- package/dist/Authentication/OrchardAuthenticationProvider.js.map +0 -1
- package/dist/HttpClient/OrchardProxy.d.ts +0 -11
- package/dist/HttpClient/OrchardProxy.d.ts.map +0 -1
- package/dist/HttpClient/OrchardProxy.js +0 -25
- package/dist/HttpClient/OrchardProxy.js.map +0 -1
- package/dist/HttpClient/Proxy.d.ts +0 -7
- package/dist/HttpClient/Proxy.d.ts.map +0 -1
- package/dist/HttpClient/Proxy.js +0 -5
- package/dist/HttpClient/Proxy.js.map +0 -1
package/dist/Utils/Spinner.d.ts
CHANGED
|
@@ -4,12 +4,20 @@
|
|
|
4
4
|
export declare class CliSpinner {
|
|
5
5
|
private _timer;
|
|
6
6
|
private _frameIndex;
|
|
7
|
+
private _label;
|
|
8
|
+
private _render;
|
|
7
9
|
private _restoreCursor;
|
|
8
10
|
private _handleSIGINT;
|
|
9
11
|
private _handleSIGTERM;
|
|
10
12
|
private _handleUncaughtException;
|
|
11
13
|
private _handleUnhandledRejection;
|
|
12
|
-
start(): void;
|
|
14
|
+
start(label?: string): void;
|
|
15
|
+
/**
|
|
16
|
+
* Replaces the status text shown beside the spinner frame. Safe to call
|
|
17
|
+
* before `start()` (the next start uses the new label) or while spinning
|
|
18
|
+
* (the line is redrawn immediately so the change feels instant).
|
|
19
|
+
*/
|
|
20
|
+
update(text: string): void;
|
|
13
21
|
stop(): void;
|
|
14
22
|
}
|
|
15
23
|
//# sourceMappingURL=Spinner.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Spinner.d.ts","sourceRoot":"","sources":["../../src/Utils/Spinner.ts"],"names":[],"mappings":"AAAA;;GAEG;
|
|
1
|
+
{"version":3,"file":"Spinner.d.ts","sourceRoot":"","sources":["../../src/Utils/Spinner.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH,qBAAa,UAAU;IACrB,OAAO,CAAC,MAAM,CAA+C;IAC7D,OAAO,CAAC,WAAW,CAAK;IACxB,OAAO,CAAC,MAAM,CAAM;IAEpB,OAAO,CAAC,OAAO;IAQf,OAAO,CAAC,cAAc,CAGpB;IAEF,OAAO,CAAC,aAAa,CAKnB;IAEF,OAAO,CAAC,cAAc,CAIpB;IAEF,OAAO,CAAC,wBAAwB,CAK9B;IAEF,OAAO,CAAC,yBAAyB,CAI/B;IAEF,KAAK,CAAC,KAAK,SAAK,GAAG,IAAI;IAqBvB;;;;OAIG;IACH,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAK1B,IAAI,IAAI,IAAI;CAcb"}
|
package/dist/Utils/Spinner.js
CHANGED
|
@@ -1,12 +1,17 @@
|
|
|
1
1
|
/*!
|
|
2
2
|
* Copyright (C) Microsoft Corporation. All rights reserved.
|
|
3
3
|
*/
|
|
4
|
-
// SYNC: this file is duplicated in packages/power-apps-cli/src/Utils/Spinner.ts.
|
|
5
|
-
// Changes here must be mirrored there until a shared CLI utilities package exists.
|
|
6
4
|
const SPINNER_FRAMES = ['⠋', '⠙', '⠹', '⠸', '⠼', '⠴', '⠦', '⠧', '⠇', '⠏'];
|
|
7
5
|
export class CliSpinner {
|
|
8
6
|
_timer = null;
|
|
9
7
|
_frameIndex = 0;
|
|
8
|
+
_label = '';
|
|
9
|
+
_render() {
|
|
10
|
+
const suffix = this._label.length > 0 ? ` ${this._label}` : '';
|
|
11
|
+
// `\x1B[K` clears from the cursor to end of line so a shorter label
|
|
12
|
+
// never leaves behind trailing characters from a previous longer one.
|
|
13
|
+
process.stdout.write(`\r${SPINNER_FRAMES[this._frameIndex]}${suffix}\x1B[K`);
|
|
14
|
+
}
|
|
10
15
|
// Arrow functions so `this` is stable when passed to process.on/off.
|
|
11
16
|
_restoreCursor = () => {
|
|
12
17
|
process.stdout.write('\r\x1B[K'); // erase spinner line
|
|
@@ -38,9 +43,14 @@ export class CliSpinner {
|
|
|
38
43
|
this._restoreCursor();
|
|
39
44
|
throw reason;
|
|
40
45
|
};
|
|
41
|
-
start() {
|
|
42
|
-
|
|
46
|
+
start(label = '') {
|
|
47
|
+
this._label = label;
|
|
48
|
+
if (this._timer !== null) {
|
|
49
|
+
// Already spinning — just refresh the line so the new label appears
|
|
50
|
+
// immediately rather than waiting for the next tick.
|
|
51
|
+
this._render();
|
|
43
52
|
return;
|
|
53
|
+
}
|
|
44
54
|
process.stdout.write('\x1B[?25l'); // hide cursor
|
|
45
55
|
// Restore cursor if the process exits before stop() is called normally.
|
|
46
56
|
process.once('exit', this._restoreCursor);
|
|
@@ -49,10 +59,20 @@ export class CliSpinner {
|
|
|
49
59
|
process.once('uncaughtException', this._handleUncaughtException);
|
|
50
60
|
process.once('unhandledRejection', this._handleUnhandledRejection);
|
|
51
61
|
this._timer = setInterval(() => {
|
|
52
|
-
|
|
62
|
+
this._render();
|
|
53
63
|
this._frameIndex = (this._frameIndex + 1) % SPINNER_FRAMES.length;
|
|
54
64
|
}, 80);
|
|
55
65
|
}
|
|
66
|
+
/**
|
|
67
|
+
* Replaces the status text shown beside the spinner frame. Safe to call
|
|
68
|
+
* before `start()` (the next start uses the new label) or while spinning
|
|
69
|
+
* (the line is redrawn immediately so the change feels instant).
|
|
70
|
+
*/
|
|
71
|
+
update(text) {
|
|
72
|
+
this._label = text;
|
|
73
|
+
if (this._timer !== null)
|
|
74
|
+
this._render();
|
|
75
|
+
}
|
|
56
76
|
stop() {
|
|
57
77
|
if (this._timer !== null) {
|
|
58
78
|
clearInterval(this._timer);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Spinner.js","sourceRoot":"","sources":["../../src/Utils/Spinner.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,
|
|
1
|
+
{"version":3,"file":"Spinner.js","sourceRoot":"","sources":["../../src/Utils/Spinner.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AddAction.d.ts","sourceRoot":"","sources":["../../src/Verbs/AddAction.ts"],"names":[],"mappings":"AAAA;;GAEG;
|
|
1
|
+
{"version":3,"file":"AddAction.d.ts","sourceRoot":"","sources":["../../src/Verbs/AddAction.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAO5D,wBAAsB,cAAc,CAAC,gBAAgB,EAAE,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC,CAsBtF"}
|
package/dist/Verbs/AddAction.js
CHANGED
|
@@ -1,59 +1,30 @@
|
|
|
1
1
|
/*!
|
|
2
2
|
* Copyright (C) Microsoft Corporation. All rights reserved.
|
|
3
3
|
*/
|
|
4
|
-
import { addConnectorActionAsync, getPlayerServiceConfig } from '@microsoft/managed-apps-actions';
|
|
5
|
-
import { getCliLogger, getSettings } from '../CliSettings.js';
|
|
6
4
|
import { createDefaultStringOption } from '../CliUtils.js';
|
|
7
|
-
import { CLI_BINARY_NAME } from '../Constants/CliConstants.js';
|
|
8
5
|
import { HelpStrings } from '../Constants/HelpStrings.js';
|
|
9
|
-
import {
|
|
10
|
-
import {
|
|
6
|
+
import { runAddActionFlowAsync } from './AddConnectorFlows.js';
|
|
7
|
+
import { runConnectorDlpPreflightAsync } from './ConnectorHelpers.js';
|
|
11
8
|
import { AddActionArguments, SharedArguments } from './VerbConstants.js';
|
|
12
9
|
export async function addActionAsync(argumentProvider) {
|
|
13
|
-
const settings = getSettings();
|
|
14
|
-
const { fileConfig, cliFs } = settings;
|
|
15
10
|
createOptionSchema(argumentProvider);
|
|
16
11
|
await argumentProvider.runVerb();
|
|
17
|
-
const playerServiceConfig = getPlayerServiceConfig();
|
|
18
|
-
const authProvider = argumentProvider.getAuthenticationProvider();
|
|
19
|
-
const logger = getCliLogger();
|
|
20
12
|
// Commander converts kebab-case flags to camelCase attribute names — use camelCase here.
|
|
21
13
|
const apiId = await argumentProvider.getOption('apiId');
|
|
22
14
|
const connectionIdFlag = await argumentProvider.getOption('connectionId', true);
|
|
23
15
|
const skipCodegen = !!(await argumentProvider.getOption('skipCodegen', true));
|
|
24
16
|
const useV1Codegen = !!(await argumentProvider.getOption('useV1Codegen', true));
|
|
25
17
|
// ── Preflight: connector + DLP policy (throws on not-found or blocked) ────
|
|
26
|
-
const { connector } = await runConnectorDlpPreflightAsync(argumentProvider, apiId);
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
connector
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
connector,
|
|
37
|
-
});
|
|
38
|
-
}
|
|
39
|
-
// ── Step 3: Add the connector action ──────────────────────────────────────
|
|
40
|
-
const context = {
|
|
41
|
-
vfs: cliFs,
|
|
42
|
-
authProvider,
|
|
43
|
-
httpClient: argumentProvider.getHttpClient(),
|
|
44
|
-
region: playerServiceConfig.region,
|
|
45
|
-
environmentName: playerServiceConfig.environmentName,
|
|
46
|
-
actionsParams: { apiId, connectionId, skipCodegen, useV1Codegen },
|
|
47
|
-
localFilePaths: {
|
|
48
|
-
appConfigPath: fileConfig.appConfigPath,
|
|
49
|
-
schemaPath: fileConfig.schemaPath,
|
|
50
|
-
codeGenPath: fileConfig.codeGenPath,
|
|
51
|
-
},
|
|
52
|
-
logger,
|
|
53
|
-
};
|
|
54
|
-
await addConnectorActionAsync(context);
|
|
55
|
-
printSuccess(`Connector '${connector.properties.displayName ?? apiId}' added successfully.`);
|
|
56
|
-
printInfo(`Hint: Run 'npx ${CLI_BINARY_NAME} dev' to test locally, or 'npx ${CLI_BINARY_NAME} push' to deploy.`);
|
|
18
|
+
const { connector, policy } = await runConnectorDlpPreflightAsync(argumentProvider, apiId);
|
|
19
|
+
await runAddActionFlowAsync({
|
|
20
|
+
argumentProvider,
|
|
21
|
+
connector,
|
|
22
|
+
apiId,
|
|
23
|
+
connectionIdFlag,
|
|
24
|
+
skipCodegen,
|
|
25
|
+
useV1Codegen,
|
|
26
|
+
policy,
|
|
27
|
+
});
|
|
57
28
|
}
|
|
58
29
|
function createOptionSchema(argumentProvider) {
|
|
59
30
|
argumentProvider.setDescription(HelpStrings.app.add.action.description);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AddAction.js","sourceRoot":"","sources":["../../src/Verbs/AddAction.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"AddAction.js","sourceRoot":"","sources":["../../src/Verbs/AddAction.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
/*!
|
|
2
|
+
* Copyright (C) Microsoft Corporation. All rights reserved.
|
|
3
|
+
*/
|
|
4
|
+
import type { ArgumentProvider } from '../ArgumentProvider.js';
|
|
5
|
+
/**
|
|
6
|
+
* `ms app add connector` — a single entry point that adds a connector to
|
|
7
|
+
* the app and picks the right shape (table or action) based on the
|
|
8
|
+
* connector's capabilities.
|
|
9
|
+
*
|
|
10
|
+
* Decision matrix:
|
|
11
|
+
* 1. Run DLP preflight (single source of truth for DLP enforcement).
|
|
12
|
+
* 2. Determine `isTabular` from connector capabilities.
|
|
13
|
+
* 3. Resolve mode:
|
|
14
|
+
* - Non-tabular + `--as table` → UsageError
|
|
15
|
+
* - Non-tabular → mode = action
|
|
16
|
+
* - Tabular + `--as` given → mode = flag value
|
|
17
|
+
* - Tabular + interactive (no `--as`) → promptConfirm yes/no
|
|
18
|
+
* - Tabular + non-interactive + no `--as` → UsageError
|
|
19
|
+
* 4. Reject `--dataset` / `--table` if mode resolved to action (silent
|
|
20
|
+
* ignore would mask copy/paste bugs in CI).
|
|
21
|
+
* 5. Delegate to the appropriate shared flow helper.
|
|
22
|
+
*/
|
|
23
|
+
export declare function addConnectorAsync(argumentProvider: ArgumentProvider): Promise<void>;
|
|
24
|
+
//# sourceMappingURL=AddConnector.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AddConnector.d.ts","sourceRoot":"","sources":["../../src/Verbs/AddConnector.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAe5D;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAsB,iBAAiB,CAAC,gBAAgB,EAAE,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC,CAkEzF"}
|
|
@@ -0,0 +1,156 @@
|
|
|
1
|
+
/*!
|
|
2
|
+
* Copyright (C) Microsoft Corporation. All rights reserved.
|
|
3
|
+
*/
|
|
4
|
+
import { getSettings } from '../CliSettings.js';
|
|
5
|
+
import { createDefaultStringOption, promptConfirm } from '../CliUtils.js';
|
|
6
|
+
import { HelpStrings } from '../Constants/HelpStrings.js';
|
|
7
|
+
import { UsageError } from '../Errors/CliError.js';
|
|
8
|
+
import { isTabularConnector, runAddActionFlowAsync, runAddTableFlowAsync, } from './AddConnectorFlows.js';
|
|
9
|
+
import { runConnectorDlpPreflightAsync } from './ConnectorHelpers.js';
|
|
10
|
+
import { AddConnectorArguments, SharedArguments } from './VerbConstants.js';
|
|
11
|
+
/**
|
|
12
|
+
* `ms app add connector` — a single entry point that adds a connector to
|
|
13
|
+
* the app and picks the right shape (table or action) based on the
|
|
14
|
+
* connector's capabilities.
|
|
15
|
+
*
|
|
16
|
+
* Decision matrix:
|
|
17
|
+
* 1. Run DLP preflight (single source of truth for DLP enforcement).
|
|
18
|
+
* 2. Determine `isTabular` from connector capabilities.
|
|
19
|
+
* 3. Resolve mode:
|
|
20
|
+
* - Non-tabular + `--as table` → UsageError
|
|
21
|
+
* - Non-tabular → mode = action
|
|
22
|
+
* - Tabular + `--as` given → mode = flag value
|
|
23
|
+
* - Tabular + interactive (no `--as`) → promptConfirm yes/no
|
|
24
|
+
* - Tabular + non-interactive + no `--as` → UsageError
|
|
25
|
+
* 4. Reject `--dataset` / `--table` if mode resolved to action (silent
|
|
26
|
+
* ignore would mask copy/paste bugs in CI).
|
|
27
|
+
* 5. Delegate to the appropriate shared flow helper.
|
|
28
|
+
*/
|
|
29
|
+
export async function addConnectorAsync(argumentProvider) {
|
|
30
|
+
createOptionSchema(argumentProvider);
|
|
31
|
+
await argumentProvider.runVerb();
|
|
32
|
+
const apiId = await argumentProvider.getOption('apiId');
|
|
33
|
+
const connectionIdFlag = await argumentProvider.getOption('connectionId', true);
|
|
34
|
+
const datasetFlag = await argumentProvider.getOption('dataset', true);
|
|
35
|
+
const tableFlag = await argumentProvider.getOption('table', true);
|
|
36
|
+
const asFlagRaw = await argumentProvider.getOption('as', true);
|
|
37
|
+
const skipCodegen = !!(await argumentProvider.getOption('skipCodegen', true));
|
|
38
|
+
const useV1Codegen = !!(await argumentProvider.getOption('useV1Codegen', true));
|
|
39
|
+
// ── Validate `--as` value (if provided) ────────────────────────────────────
|
|
40
|
+
let asFlag;
|
|
41
|
+
if (asFlagRaw !== undefined && asFlagRaw !== '') {
|
|
42
|
+
const normalized = asFlagRaw.toLowerCase();
|
|
43
|
+
if (normalized !== 'table' && normalized !== 'action') {
|
|
44
|
+
throw new UsageError(`Invalid value for --as: '${asFlagRaw}'. Expected 'table' or 'action'.`);
|
|
45
|
+
}
|
|
46
|
+
asFlag = normalized;
|
|
47
|
+
}
|
|
48
|
+
// ── Preflight: connector + DLP policy (throws on not-found or blocked) ────
|
|
49
|
+
const { connector, policy } = await runConnectorDlpPreflightAsync(argumentProvider, apiId);
|
|
50
|
+
const connectorLabel = connector.properties.displayName ?? apiId;
|
|
51
|
+
const isTabular = isTabularConnector(connector);
|
|
52
|
+
// ── Decide mode ───────────────────────────────────────────────────────────
|
|
53
|
+
const mode = await resolveModeAsync({
|
|
54
|
+
isTabular,
|
|
55
|
+
asFlag,
|
|
56
|
+
connectorLabel,
|
|
57
|
+
});
|
|
58
|
+
// ── Reject contradictory flags when adding actions ────────────────────────
|
|
59
|
+
if (mode === 'action' && (datasetFlag || tableFlag)) {
|
|
60
|
+
throw new UsageError(`--dataset and --table cannot be used with --as action. Re-run with --as table, or omit those flags.`);
|
|
61
|
+
}
|
|
62
|
+
// ── Dispatch ──────────────────────────────────────────────────────────────
|
|
63
|
+
if (mode === 'table') {
|
|
64
|
+
await runAddTableFlowAsync({
|
|
65
|
+
argumentProvider,
|
|
66
|
+
connector,
|
|
67
|
+
apiId,
|
|
68
|
+
connectionIdFlag,
|
|
69
|
+
datasetFlag,
|
|
70
|
+
tableFlag,
|
|
71
|
+
skipCodegen,
|
|
72
|
+
useV1Codegen,
|
|
73
|
+
});
|
|
74
|
+
}
|
|
75
|
+
else {
|
|
76
|
+
await runAddActionFlowAsync({
|
|
77
|
+
argumentProvider,
|
|
78
|
+
connector,
|
|
79
|
+
apiId,
|
|
80
|
+
connectionIdFlag,
|
|
81
|
+
skipCodegen,
|
|
82
|
+
useV1Codegen,
|
|
83
|
+
policy,
|
|
84
|
+
});
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
async function resolveModeAsync(input) {
|
|
88
|
+
const { isTabular, asFlag, connectorLabel } = input;
|
|
89
|
+
const settings = getSettings();
|
|
90
|
+
if (!isTabular) {
|
|
91
|
+
if (asFlag === 'table') {
|
|
92
|
+
throw new UsageError(`Connector '${connectorLabel}' does not support tabular data sources. Re-run without --as table, or with --as action.`);
|
|
93
|
+
}
|
|
94
|
+
return 'action';
|
|
95
|
+
}
|
|
96
|
+
// Tabular from here on
|
|
97
|
+
if (asFlag) {
|
|
98
|
+
return asFlag;
|
|
99
|
+
}
|
|
100
|
+
if (!settings.interactive) {
|
|
101
|
+
throw new UsageError(`Connector '${connectorLabel}' supports both tables and actions. Specify --as table or --as action.`);
|
|
102
|
+
}
|
|
103
|
+
const addAsTable = await promptConfirm({
|
|
104
|
+
message: `Connector '${connectorLabel}' supports tables. Add a table? (No → add actions instead)`,
|
|
105
|
+
initialValue: true,
|
|
106
|
+
});
|
|
107
|
+
return addAsTable ? 'table' : 'action';
|
|
108
|
+
}
|
|
109
|
+
function createOptionSchema(argumentProvider) {
|
|
110
|
+
argumentProvider.setDescription(HelpStrings.app.add.connector.description);
|
|
111
|
+
argumentProvider.addExamples(HelpStrings.app.add.connector.examples);
|
|
112
|
+
argumentProvider.addOptions([
|
|
113
|
+
createDefaultStringOption({
|
|
114
|
+
flags: { key: SharedArguments.ApiId.name },
|
|
115
|
+
env: SharedArguments.ApiId.envVar,
|
|
116
|
+
message: SharedArguments.ApiId.promptMessage,
|
|
117
|
+
description: HelpStrings.app.add.connector.options.apiId,
|
|
118
|
+
}),
|
|
119
|
+
{
|
|
120
|
+
flags: { key: SharedArguments.ConnectionId.name, alias: SharedArguments.ConnectionId.alias },
|
|
121
|
+
env: SharedArguments.ConnectionId.envVar,
|
|
122
|
+
description: HelpStrings.app.add.connector.options.connectionId,
|
|
123
|
+
optionalInNonInteractive: true,
|
|
124
|
+
},
|
|
125
|
+
{
|
|
126
|
+
flags: { key: SharedArguments.Dataset.name, alias: SharedArguments.Dataset.alias },
|
|
127
|
+
env: SharedArguments.Dataset.envVar,
|
|
128
|
+
description: HelpStrings.app.add.connector.options.dataset,
|
|
129
|
+
optionalInNonInteractive: true,
|
|
130
|
+
},
|
|
131
|
+
{
|
|
132
|
+
flags: { key: AddConnectorArguments.Table.name, alias: AddConnectorArguments.Table.alias },
|
|
133
|
+
env: AddConnectorArguments.Table.envVar,
|
|
134
|
+
description: HelpStrings.app.add.connector.options.table,
|
|
135
|
+
optionalInNonInteractive: true,
|
|
136
|
+
},
|
|
137
|
+
{
|
|
138
|
+
flags: { key: AddConnectorArguments.As.name },
|
|
139
|
+
env: AddConnectorArguments.As.envVar,
|
|
140
|
+
description: HelpStrings.app.add.connector.options.as,
|
|
141
|
+
optionalInNonInteractive: true,
|
|
142
|
+
},
|
|
143
|
+
]);
|
|
144
|
+
argumentProvider.addSwitch({
|
|
145
|
+
flags: { key: AddConnectorArguments.SkipCodegen.name },
|
|
146
|
+
env: AddConnectorArguments.SkipCodegen.env,
|
|
147
|
+
description: HelpStrings.app.add.connector.options.skipCodegen,
|
|
148
|
+
});
|
|
149
|
+
argumentProvider.addSwitch({
|
|
150
|
+
flags: { key: AddConnectorArguments.UseV1Codegen.name },
|
|
151
|
+
env: AddConnectorArguments.UseV1Codegen.env,
|
|
152
|
+
description: 'Use V1 (legacy) code generation instead of V2.',
|
|
153
|
+
hidden: true,
|
|
154
|
+
});
|
|
155
|
+
}
|
|
156
|
+
//# sourceMappingURL=AddConnector.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AddConnector.js","sourceRoot":"","sources":["../../src/Verbs/AddConnector.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
/*!
|
|
2
|
+
* Copyright (C) Microsoft Corporation. All rights reserved.
|
|
3
|
+
*/
|
|
4
|
+
import type { Api, EffectiveConnectorDataPolicy } from '@microsoft/managed-apps-actions';
|
|
5
|
+
import type { ArgumentProvider } from '../ArgumentProvider.js';
|
|
6
|
+
/**
|
|
7
|
+
* Shared helpers for the two "add a connector data source" flows.
|
|
8
|
+
*
|
|
9
|
+
* Both `ms app add table` and `ms app add action` are thin wrappers around
|
|
10
|
+
* these helpers; `ms app add connector` calls them after deciding which mode
|
|
11
|
+
* to run.
|
|
12
|
+
*
|
|
13
|
+
* Design contract:
|
|
14
|
+
* - The caller (verb) must perform DLP preflight and pass in the resolved
|
|
15
|
+
* `connector`. These helpers never touch DLP. This keeps DLP a single
|
|
16
|
+
* enforcement point that runs exactly once per command invocation.
|
|
17
|
+
* - The caller is responsible for any capability checks specific to its
|
|
18
|
+
* intent (e.g., `ms app add table` enforces that the connector is
|
|
19
|
+
* tabular; `ms app add connector` already branched on capability).
|
|
20
|
+
* - These helpers handle: connection resolution (with interactive prompt or
|
|
21
|
+
* print-and-exit), dataset/table resolution (table flow only), invoking
|
|
22
|
+
* the underlying action, and printing the success message.
|
|
23
|
+
*/
|
|
24
|
+
export interface AddFlowBaseArgs {
|
|
25
|
+
argumentProvider: ArgumentProvider;
|
|
26
|
+
connector: Api;
|
|
27
|
+
apiId: string;
|
|
28
|
+
connectionIdFlag?: string;
|
|
29
|
+
skipCodegen: boolean;
|
|
30
|
+
useV1Codegen: boolean;
|
|
31
|
+
}
|
|
32
|
+
export interface AddActionFlowArgs extends AddFlowBaseArgs {
|
|
33
|
+
/**
|
|
34
|
+
* Effective DLP policy from the verb-level preflight. When provided, the
|
|
35
|
+
* action flow uses it to compute the per-connector action policy and
|
|
36
|
+
* filters blocked operations out of the swagger before generation.
|
|
37
|
+
*/
|
|
38
|
+
policy?: EffectiveConnectorDataPolicy;
|
|
39
|
+
}
|
|
40
|
+
export interface AddTableFlowArgs extends AddFlowBaseArgs {
|
|
41
|
+
datasetFlag?: string;
|
|
42
|
+
tableFlag?: string;
|
|
43
|
+
}
|
|
44
|
+
/**
|
|
45
|
+
* Runs the connection → dataset → table → addConnectorTableAsync flow.
|
|
46
|
+
* Caller must have already verified the connector exists, passed DLP, and
|
|
47
|
+
* supports tabular.
|
|
48
|
+
*/
|
|
49
|
+
export declare function runAddTableFlowAsync(args: AddTableFlowArgs): Promise<void>;
|
|
50
|
+
/**
|
|
51
|
+
* Runs the optional-connection → addConnectorActionAsync flow.
|
|
52
|
+
* Caller must have already verified the connector exists and passed DLP.
|
|
53
|
+
*
|
|
54
|
+
* A connection is only resolved when the connector requires one (multi-auth
|
|
55
|
+
* connectors, or connectors with `allowSharing` metadata). Pure-action
|
|
56
|
+
* connectors that don't need a connection (e.g. some utility connectors)
|
|
57
|
+
* are added without prompting for one.
|
|
58
|
+
*
|
|
59
|
+
* When `policy` is provided, the action-level DLP rules for this connector
|
|
60
|
+
* are passed down to `addConnectorActionAsync`, which filters blocked
|
|
61
|
+
* operations out of the swagger before saving the schema and running
|
|
62
|
+
* codegen. The CLI prints a single info line summarizing what was filtered.
|
|
63
|
+
* If every operation is blocked, the action throws `AllActionsBlockedError`
|
|
64
|
+
* which we translate to a `UsageError`.
|
|
65
|
+
*/
|
|
66
|
+
export declare function runAddActionFlowAsync(args: AddActionFlowArgs): Promise<void>;
|
|
67
|
+
/**
|
|
68
|
+
* Shared helper to compute whether a connector supports tabular data sources.
|
|
69
|
+
* Case-insensitive to be resilient against service-side casing drift.
|
|
70
|
+
*/
|
|
71
|
+
export declare function isTabularConnector(connector: Api): boolean;
|
|
72
|
+
//# sourceMappingURL=AddConnectorFlows.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AddConnectorFlows.d.ts","sourceRoot":"","sources":["../../src/Verbs/AddConnectorFlows.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAGV,GAAG,EACH,4BAA4B,EAG7B,MAAM,iCAAiC,CAAC;AAWzC,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAQ5D;;;;;;;;;;;;;;;;;GAiBG;AAEH,MAAM,WAAW,eAAe;IAC9B,gBAAgB,EAAE,gBAAgB,CAAC;IACnC,SAAS,EAAE,GAAG,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,WAAW,EAAE,OAAO,CAAC;IACrB,YAAY,EAAE,OAAO,CAAC;CACvB;AAED,MAAM,WAAW,iBAAkB,SAAQ,eAAe;IACxD;;;;OAIG;IACH,MAAM,CAAC,EAAE,4BAA4B,CAAC;CACvC;AAED,MAAM,WAAW,gBAAiB,SAAQ,eAAe;IACvD,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;;;GAIG;AACH,wBAAsB,oBAAoB,CAAC,IAAI,EAAE,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC,CA2HhF;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAsB,qBAAqB,CAAC,IAAI,EAAE,iBAAiB,GAAG,OAAO,CAAC,IAAI,CAAC,CA2ElF;AAED;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,SAAS,EAAE,GAAG,GAAG,OAAO,CAE1D"}
|