@microsoft/managed-apps-cli 0.9.2 → 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 +23 -43
- package/dist/ArgumentProvider.d.ts.map +1 -1
- package/dist/ArgumentProvider.js +3 -0
- package/dist/ArgumentProvider.js.map +1 -1
- package/dist/Authentication/NodeMsalAuthenticationProvider.js +20 -1
- package/dist/Authentication/NodeMsalAuthenticationProvider.js.map +1 -1
- package/dist/Cli.d.ts.map +1 -1
- package/dist/Cli.js +12 -2
- package/dist/Cli.js.map +1 -1
- package/dist/Constants/CommandRegistry.d.ts.map +1 -1
- package/dist/Constants/CommandRegistry.js +5 -24
- package/dist/Constants/CommandRegistry.js.map +1 -1
- package/dist/Constants/HelpStrings.d.ts +8 -7
- package/dist/Constants/HelpStrings.d.ts.map +1 -1
- package/dist/Constants/HelpStrings.js +78 -73
- package/dist/Constants/HelpStrings.js.map +1 -1
- package/dist/Constants.d.ts +1 -1
- package/dist/Constants.d.ts.map +1 -1
- package/dist/Constants.js +4 -9
- package/dist/Constants.js.map +1 -1
- package/dist/Errors/GitHubErrorMap.d.ts +43 -14
- package/dist/Errors/GitHubErrorMap.d.ts.map +1 -1
- package/dist/Errors/GitHubErrorMap.js +188 -147
- package/dist/Errors/GitHubErrorMap.js.map +1 -1
- package/dist/Logger/CliLogger.d.ts +1 -0
- package/dist/Logger/CliLogger.d.ts.map +1 -1
- package/dist/Logger/CliLogger.js +5 -3
- package/dist/Logger/CliLogger.js.map +1 -1
- package/dist/Types/Argument.types.d.ts +1 -0
- package/dist/Types/Argument.types.d.ts.map +1 -1
- package/dist/Utils/DcfRecovery.d.ts +7 -7
- package/dist/Utils/DcfRecovery.d.ts.map +1 -1
- package/dist/Utils/DcfRecovery.js +17 -37
- package/dist/Utils/DcfRecovery.js.map +1 -1
- package/dist/Utils/DownloadTemplate.d.ts +45 -0
- package/dist/Utils/DownloadTemplate.d.ts.map +1 -0
- package/dist/Utils/DownloadTemplate.js +159 -0
- package/dist/Utils/DownloadTemplate.js.map +1 -0
- package/dist/Utils/EnvVars.d.ts +1 -1
- package/dist/Utils/EnvVars.d.ts.map +1 -1
- package/dist/Utils/GitVersionChecker.d.ts +38 -0
- package/dist/Utils/GitVersionChecker.d.ts.map +1 -0
- package/dist/Utils/GitVersionChecker.js +61 -0
- package/dist/Utils/GitVersionChecker.js.map +1 -0
- package/dist/Utils/MaafAppConfig.d.ts +22 -0
- package/dist/Utils/MaafAppConfig.d.ts.map +1 -0
- package/dist/Utils/MaafAppConfig.js +32 -0
- package/dist/Utils/MaafAppConfig.js.map +1 -0
- package/dist/Utils/NodeVersionChecker.d.ts +3 -6
- package/dist/Utils/NodeVersionChecker.d.ts.map +1 -1
- package/dist/Utils/NodeVersionChecker.js +9 -26
- package/dist/Utils/NodeVersionChecker.js.map +1 -1
- package/dist/Utils/Paging.d.ts +5 -0
- package/dist/Utils/Paging.d.ts.map +1 -1
- package/dist/Utils/Paging.js +29 -0
- package/dist/Utils/Paging.js.map +1 -1
- package/dist/Utils/PinCli.d.ts +28 -0
- package/dist/Utils/PinCli.d.ts.map +1 -0
- package/dist/Utils/PinCli.js +58 -0
- package/dist/Utils/PinCli.js.map +1 -0
- package/dist/Utils/RepoOption.d.ts +35 -0
- package/dist/Utils/RepoOption.d.ts.map +1 -0
- package/dist/Utils/RepoOption.js +36 -0
- package/dist/Utils/RepoOption.js.map +1 -0
- package/dist/Utils/Spinner.d.ts.map +1 -1
- package/dist/Utils/Spinner.js +3 -0
- package/dist/Utils/Spinner.js.map +1 -1
- package/dist/Verbs/AddAction.js +6 -6
- package/dist/Verbs/AddAction.js.map +1 -1
- package/dist/Verbs/AddConnector.d.ts +5 -3
- package/dist/Verbs/AddConnector.d.ts.map +1 -1
- package/dist/Verbs/AddConnector.js +45 -11
- package/dist/Verbs/AddConnector.js.map +1 -1
- package/dist/Verbs/AddConnectorFlows.d.ts +27 -14
- package/dist/Verbs/AddConnectorFlows.d.ts.map +1 -1
- package/dist/Verbs/AddConnectorFlows.js +70 -20
- package/dist/Verbs/AddConnectorFlows.js.map +1 -1
- package/dist/Verbs/AddDataSource.d.ts +3 -4
- package/dist/Verbs/AddDataSource.d.ts.map +1 -1
- package/dist/Verbs/AddDataSource.js +9 -20
- package/dist/Verbs/AddDataSource.js.map +1 -1
- package/dist/Verbs/AddTable.js +6 -6
- package/dist/Verbs/AddTable.js.map +1 -1
- package/dist/Verbs/AuthStatus.d.ts.map +1 -1
- package/dist/Verbs/AuthStatus.js +7 -4
- package/dist/Verbs/AuthStatus.js.map +1 -1
- package/dist/Verbs/BuildMaafApp.js +1 -1
- package/dist/Verbs/BuildMaafApp.js.map +1 -1
- package/dist/Verbs/ConnectorHelpers.d.ts +3 -4
- package/dist/Verbs/ConnectorHelpers.d.ts.map +1 -1
- package/dist/Verbs/ConnectorHelpers.js +8 -9
- package/dist/Verbs/ConnectorHelpers.js.map +1 -1
- package/dist/Verbs/CreateMaafApp.d.ts +0 -29
- package/dist/Verbs/CreateMaafApp.d.ts.map +1 -1
- package/dist/Verbs/CreateMaafApp.js +100 -171
- package/dist/Verbs/CreateMaafApp.js.map +1 -1
- package/dist/Verbs/DeleteDataSource.js +6 -6
- package/dist/Verbs/DeleteDataSource.js.map +1 -1
- package/dist/Verbs/DeployMaafApp.d.ts.map +1 -1
- package/dist/Verbs/DeployMaafApp.js +4 -4
- package/dist/Verbs/DeployMaafApp.js.map +1 -1
- package/dist/Verbs/Dev.js +1 -1
- package/dist/Verbs/Dev.js.map +1 -1
- package/dist/Verbs/GetMaafBuildStatus.d.ts.map +1 -1
- package/dist/Verbs/GetMaafBuildStatus.js +52 -3
- package/dist/Verbs/GetMaafBuildStatus.js.map +1 -1
- package/dist/Verbs/GetSettings.js +1 -1
- package/dist/Verbs/GetSettings.js.map +1 -1
- package/dist/Verbs/Init.d.ts.map +1 -1
- package/dist/Verbs/Init.js +166 -58
- package/dist/Verbs/Init.js.map +1 -1
- package/dist/Verbs/ListConnectorActions.js +12 -9
- package/dist/Verbs/ListConnectorActions.js.map +1 -1
- package/dist/Verbs/ListConnectors.js +2 -2
- package/dist/Verbs/ListConnectors.js.map +1 -1
- package/dist/Verbs/ListMaafApps.js +3 -3
- package/dist/Verbs/ListMaafApps.js.map +1 -1
- package/dist/Verbs/MaafAppPermissions.js +2 -2
- package/dist/Verbs/MaafAppPermissions.js.map +1 -1
- package/dist/Verbs/RefreshDataSource.js +1 -1
- package/dist/Verbs/RefreshDataSource.js.map +1 -1
- package/dist/Verbs/RefreshGitAuth.d.ts.map +1 -1
- package/dist/Verbs/RefreshGitAuth.js +3 -15
- package/dist/Verbs/RefreshGitAuth.js.map +1 -1
- package/dist/Verbs/SetSetting.js +2 -2
- package/dist/Verbs/SetSetting.js.map +1 -1
- package/dist/Verbs/ShowMaafApp.js +2 -2
- package/dist/Verbs/ShowMaafApp.js.map +1 -1
- package/dist/Verbs/VerbConstants.d.ts +19 -22
- package/dist/Verbs/VerbConstants.d.ts.map +1 -1
- package/dist/Verbs/VerbConstants.js +19 -22
- package/dist/Verbs/VerbConstants.js.map +1 -1
- package/package.json +10 -8
|
@@ -1,38 +1,21 @@
|
|
|
1
1
|
/*!
|
|
2
2
|
* Copyright (C) Microsoft Corporation. All rights reserved.
|
|
3
3
|
*/
|
|
4
|
+
import semver from 'semver';
|
|
4
5
|
import packageJson from '../../package.json' with { type: 'json' };
|
|
5
6
|
import { printWarning } from './ConsoleOutput.js';
|
|
6
7
|
/**
|
|
7
|
-
* Best-effort guard: warn (never throw) when the running Node.js
|
|
8
|
-
*
|
|
9
|
-
*
|
|
10
|
-
* NO_COLOR/TTY handled by `styleText`.
|
|
8
|
+
* Best-effort guard: warn (never throw) when the running Node.js doesn't satisfy this package's
|
|
9
|
+
* `engines.node` range. Mirrors `scripts/check-bun-version.ts`. Emits via `printWarning` — stderr,
|
|
10
|
+
* so it can't corrupt a `--json` stdout envelope, with NO_COLOR/TTY handled by `styleText`.
|
|
11
11
|
*/
|
|
12
12
|
export function warnIfNodeVersionUnsupported() {
|
|
13
|
-
const required = packageJson.engines
|
|
14
|
-
|
|
13
|
+
const required = packageJson.engines.node;
|
|
14
|
+
// `semver` lets the engine be any valid range (e.g. `>=24.11.0`, or `^24 || >=26` to allow 24 and
|
|
15
|
+
// 26 but not 25). An invalid range counts as unsupported; the check never throws.
|
|
16
|
+
if (Boolean(semver.validRange(required)) && semver.satisfies(process.versions.node, required)) {
|
|
15
17
|
return;
|
|
16
|
-
const requiredParts = parseVersion(required);
|
|
17
|
-
if (requiredParts.length === 0)
|
|
18
|
-
return;
|
|
19
|
-
if (!isVersionLower(parseVersion(process.versions.node), requiredParts))
|
|
20
|
-
return;
|
|
21
|
-
printWarning(`Warning: Your Node.js version ${process.versions.node} doesn't match required version ${required}; please upgrade Node.js.`);
|
|
22
|
-
}
|
|
23
|
-
/** Parse the leading `major.minor.patch` out of a version or range string (`>=24.5.0` → `[24, 5, 0]`). */
|
|
24
|
-
export function parseVersion(value) {
|
|
25
|
-
const match = value.match(/(\d+)(?:\.(\d+))?(?:\.(\d+))?/);
|
|
26
|
-
return match ? [Number(match[1]), Number(match[2] ?? 0), Number(match[3] ?? 0)] : [];
|
|
27
|
-
}
|
|
28
|
-
/** True when `actual` is strictly older than `required`, compared by major, then minor, then patch. */
|
|
29
|
-
function isVersionLower(actual, required) {
|
|
30
|
-
for (let i = 0; i < 3; i++) {
|
|
31
|
-
const a = actual[i] ?? 0;
|
|
32
|
-
const r = required[i] ?? 0;
|
|
33
|
-
if (a !== r)
|
|
34
|
-
return a < r;
|
|
35
18
|
}
|
|
36
|
-
|
|
19
|
+
printWarning(`Warning: Your Node.js version ${process.versions.node} doesn't match requirement ${required}; Please install a compatible Node.js version.`);
|
|
37
20
|
}
|
|
38
21
|
//# sourceMappingURL=NodeVersionChecker.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NodeVersionChecker.js","sourceRoot":"","sources":["../../src/Utils/NodeVersionChecker.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,WAAW,MAAM,oBAAoB,CAAC,OAAO,IAAI,EAAE,MAAM,EAAE,CAAC;AACnE,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAE/C
|
|
1
|
+
{"version":3,"file":"NodeVersionChecker.js","sourceRoot":"","sources":["../../src/Utils/NodeVersionChecker.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,MAAM,MAAM,QAAQ,CAAC;AAE5B,OAAO,WAAW,MAAM,oBAAoB,CAAC,OAAO,IAAI,EAAE,MAAM,EAAE,CAAC;AACnE,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAE/C;;;;GAIG;AACH,MAAM,UAAU,4BAA4B;IAC1C,MAAM,QAAQ,GAAG,WAAW,CAAC,OAAO,CAAC,IAAI,CAAC;IAC1C,kGAAkG;IAClG,kFAAkF;IAClF,IAAI,OAAO,CAAC,MAAM,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,IAAI,MAAM,CAAC,SAAS,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC,EAAE,CAAC;QAC9F,OAAO;IACT,CAAC;IAED,YAAY,CACV,iCAAiC,OAAO,CAAC,QAAQ,CAAC,IAAI,8BAA8B,QAAQ,gDAAgD,CAC7I,CAAC;AACJ,CAAC"}
|
package/dist/Utils/Paging.d.ts
CHANGED
|
@@ -8,6 +8,11 @@ export declare const PAGE_SIZE = 20;
|
|
|
8
8
|
* Enter/Space = continue, Esc/q = exit, Ctrl+C = process exit.
|
|
9
9
|
*/
|
|
10
10
|
export declare function waitForPageKey(): Promise<'continue' | 'exit'>;
|
|
11
|
+
/**
|
|
12
|
+
* Prints a paginated text blob in TTY mode (PAGE_SIZE lines per page,
|
|
13
|
+
* Enter/Esc to navigate) or the full text in non-TTY/piped mode.
|
|
14
|
+
*/
|
|
15
|
+
export declare function printPagedText(text: string): Promise<void>;
|
|
11
16
|
/**
|
|
12
17
|
* Prints a paginated table in TTY mode (20 rows per page, Enter/Esc to navigate)
|
|
13
18
|
* or a single full table in non-TTY/piped mode.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Paging.d.ts","sourceRoot":"","sources":["../../src/Utils/Paging.ts"],"names":[],"mappings":"AAAA;;GAEG;AAMH,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"}
|
|
1
|
+
{"version":3,"file":"Paging.d.ts","sourceRoot":"","sources":["../../src/Utils/Paging.ts"],"names":[],"mappings":"AAAA;;GAEG;AAMH,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,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CA4BhE;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"}
|
package/dist/Utils/Paging.js
CHANGED
|
@@ -35,6 +35,35 @@ export async function waitForPageKey() {
|
|
|
35
35
|
process.stdin.on('keypress', handler);
|
|
36
36
|
});
|
|
37
37
|
}
|
|
38
|
+
/**
|
|
39
|
+
* Prints a paginated text blob in TTY mode (PAGE_SIZE lines per page,
|
|
40
|
+
* Enter/Esc to navigate) or the full text in non-TTY/piped mode.
|
|
41
|
+
*/
|
|
42
|
+
export async function printPagedText(text) {
|
|
43
|
+
const lines = text.split(/\r?\n/);
|
|
44
|
+
if (!process.stdout.isTTY) {
|
|
45
|
+
for (const line of lines) {
|
|
46
|
+
console.log(line);
|
|
47
|
+
}
|
|
48
|
+
return;
|
|
49
|
+
}
|
|
50
|
+
const total = lines.length;
|
|
51
|
+
const totalPages = Math.max(1, Math.ceil(total / PAGE_SIZE));
|
|
52
|
+
for (let page = 0; page < totalPages; page++) {
|
|
53
|
+
const start = page * PAGE_SIZE;
|
|
54
|
+
const pageLines = lines.slice(start, start + PAGE_SIZE);
|
|
55
|
+
const isLastPage = page === totalPages - 1;
|
|
56
|
+
for (const line of pageLines) {
|
|
57
|
+
console.log(line);
|
|
58
|
+
}
|
|
59
|
+
if (isLastPage)
|
|
60
|
+
break;
|
|
61
|
+
console.log(styleText('dim', ' Press Enter for more, Esc or q to exit'));
|
|
62
|
+
const action = await waitForPageKey();
|
|
63
|
+
if (action === 'exit')
|
|
64
|
+
break;
|
|
65
|
+
}
|
|
66
|
+
}
|
|
38
67
|
/**
|
|
39
68
|
* Prints a paginated table in TTY mode (20 rows per page, Enter/Esc to navigate)
|
|
40
69
|
* or a single full table in non-TTY/piped mode.
|
package/dist/Utils/Paging.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Paging.js","sourceRoot":"","sources":["../../src/Utils/Paging.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Paging.js","sourceRoot":"","sources":["../../src/Utils/Paging.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
/*!
|
|
2
|
+
* Copyright (C) Microsoft Corporation. All rights reserved.
|
|
3
|
+
*/
|
|
4
|
+
/**
|
|
5
|
+
* Pins the running CLI into an app's `package.json` as a `devDependency` at the
|
|
6
|
+
* exact version of the CLI executing the command (read from this package's own
|
|
7
|
+
* manifest, so it always matches the running CLI).
|
|
8
|
+
*
|
|
9
|
+
* Used by `ms app create` (right after the template is scaffolded) and `ms app
|
|
10
|
+
* init` (binding an existing project) so the app carries a project-local `ms` at
|
|
11
|
+
* the version it was set up with — which `npx ms` / `pnpm exec` / `bun x` resolve
|
|
12
|
+
* ahead of any globally-installed CLI. The app therefore keeps building and
|
|
13
|
+
* deploying against the CLI it was created with, even if the developer's global
|
|
14
|
+
* CLI later moves to an incompatible version.
|
|
15
|
+
*
|
|
16
|
+
* Best-effort and non-fatal — the server-side app already exists by the time this
|
|
17
|
+
* runs:
|
|
18
|
+
* - No `package.json` in `appDir` (e.g. `ms app create` with a custom
|
|
19
|
+
* `--template` that isn't an npm project) → nothing to pin; return quietly.
|
|
20
|
+
* - Read / parse / write failure → warn (outside `--json` mode) and continue;
|
|
21
|
+
* the user can add the pin by hand.
|
|
22
|
+
*
|
|
23
|
+
* The entry overwrites any existing CLI `devDependencies` entry, and
|
|
24
|
+
* `devDependencies` is re-sorted alphabetically to match the npm convention so a
|
|
25
|
+
* later `install --save` won't reshuffle the file.
|
|
26
|
+
*/
|
|
27
|
+
export declare function pinCliIntoAppPackageJson(appDir: string, jsonMode: boolean): void;
|
|
28
|
+
//# sourceMappingURL=PinCli.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PinCli.d.ts","sourceRoot":"","sources":["../../src/Utils/PinCli.ts"],"names":[],"mappings":"AAAA;;GAEG;AAQH;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,wBAAgB,wBAAwB,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,GAAG,IAAI,CAiChF"}
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
/*!
|
|
2
|
+
* Copyright (C) Microsoft Corporation. All rights reserved.
|
|
3
|
+
*/
|
|
4
|
+
import * as fs from 'fs';
|
|
5
|
+
import * as path from 'path';
|
|
6
|
+
import packageJson from '../../package.json' with { type: 'json' };
|
|
7
|
+
import { printWarning } from './ConsoleOutput.js';
|
|
8
|
+
/**
|
|
9
|
+
* Pins the running CLI into an app's `package.json` as a `devDependency` at the
|
|
10
|
+
* exact version of the CLI executing the command (read from this package's own
|
|
11
|
+
* manifest, so it always matches the running CLI).
|
|
12
|
+
*
|
|
13
|
+
* Used by `ms app create` (right after the template is scaffolded) and `ms app
|
|
14
|
+
* init` (binding an existing project) so the app carries a project-local `ms` at
|
|
15
|
+
* the version it was set up with — which `npx ms` / `pnpm exec` / `bun x` resolve
|
|
16
|
+
* ahead of any globally-installed CLI. The app therefore keeps building and
|
|
17
|
+
* deploying against the CLI it was created with, even if the developer's global
|
|
18
|
+
* CLI later moves to an incompatible version.
|
|
19
|
+
*
|
|
20
|
+
* Best-effort and non-fatal — the server-side app already exists by the time this
|
|
21
|
+
* runs:
|
|
22
|
+
* - No `package.json` in `appDir` (e.g. `ms app create` with a custom
|
|
23
|
+
* `--template` that isn't an npm project) → nothing to pin; return quietly.
|
|
24
|
+
* - Read / parse / write failure → warn (outside `--json` mode) and continue;
|
|
25
|
+
* the user can add the pin by hand.
|
|
26
|
+
*
|
|
27
|
+
* The entry overwrites any existing CLI `devDependencies` entry, and
|
|
28
|
+
* `devDependencies` is re-sorted alphabetically to match the npm convention so a
|
|
29
|
+
* later `install --save` won't reshuffle the file.
|
|
30
|
+
*/
|
|
31
|
+
export function pinCliIntoAppPackageJson(appDir, jsonMode) {
|
|
32
|
+
const packageJsonPath = path.join(appDir, 'package.json');
|
|
33
|
+
// existsSync gate keeps the common "not an npm project" case off the warning
|
|
34
|
+
// path below — only genuine read/parse/write failures should warn.
|
|
35
|
+
if (!fs.existsSync(packageJsonPath)) {
|
|
36
|
+
return;
|
|
37
|
+
}
|
|
38
|
+
try {
|
|
39
|
+
const manifest = JSON.parse(fs.readFileSync(packageJsonPath, 'utf8'));
|
|
40
|
+
manifest.devDependencies = Object.fromEntries(Object.entries({
|
|
41
|
+
...manifest.devDependencies,
|
|
42
|
+
[packageJson.name]: packageJson.version,
|
|
43
|
+
// Explicit 'en' locale keeps the sort order deterministic across hosts
|
|
44
|
+
// (a bare localeCompare follows the machine's default collation).
|
|
45
|
+
}).sort(([a], [b]) => a.localeCompare(b, 'en')));
|
|
46
|
+
// JSON.stringify drops the trailing newline every scaffolder emits; re-add it.
|
|
47
|
+
fs.writeFileSync(packageJsonPath, `${JSON.stringify(manifest, null, 2)}\n`);
|
|
48
|
+
}
|
|
49
|
+
catch (err) {
|
|
50
|
+
if (!jsonMode) {
|
|
51
|
+
printWarning(`Could not pin '${packageJson.name}' into ${packageJsonPath} ` +
|
|
52
|
+
`(${err instanceof Error ? err.message : String(err)}). Add ` +
|
|
53
|
+
`"${packageJson.name}": "${packageJson.version}" to devDependencies manually ` +
|
|
54
|
+
`to get a project-local CLI.`);
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
//# sourceMappingURL=PinCli.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PinCli.js","sourceRoot":"","sources":["../../src/Utils/PinCli.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,MAAM,IAAI,CAAC;AACzB,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAE7B,OAAO,WAAW,MAAM,oBAAoB,CAAC,OAAO,IAAI,EAAE,MAAM,EAAE,CAAC;AACnE,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAE/C;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,MAAM,UAAU,wBAAwB,CAAC,MAAc,EAAE,QAAiB;IACxE,MAAM,eAAe,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;IAC1D,6EAA6E;IAC7E,mEAAmE;IACnE,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,eAAe,CAAC,EAAE,CAAC;QACpC,OAAO;IACT,CAAC;IAED,IAAI,CAAC;QACH,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,YAAY,CAAC,eAAe,EAAE,MAAM,CAAC,CAGnE,CAAC;QACF,QAAQ,CAAC,eAAe,GAAG,MAAM,CAAC,WAAW,CAC3C,MAAM,CAAC,OAAO,CAAC;YACb,GAAG,QAAQ,CAAC,eAAe;YAC3B,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,WAAW,CAAC,OAAO;YACvC,uEAAuE;YACvE,kEAAkE;SACnE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAChD,CAAC;QACF,+EAA+E;QAC/E,EAAE,CAAC,aAAa,CAAC,eAAe,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC;IAC9E,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,YAAY,CACV,kBAAkB,WAAW,CAAC,IAAI,UAAU,eAAe,GAAG;gBAC5D,IAAI,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,SAAS;gBAC7D,IAAI,WAAW,CAAC,IAAI,OAAO,WAAW,CAAC,OAAO,gCAAgC;gBAC9E,6BAA6B,CAChC,CAAC;QACJ,CAAC;IACH,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
/*!
|
|
2
|
+
* Copyright (C) Microsoft Corporation. All rights reserved.
|
|
3
|
+
*/
|
|
4
|
+
import type { RepoType } from '@microsoft/managed-apps-common/config';
|
|
5
|
+
/**
|
|
6
|
+
* Result of parsing the `--repo` flag value.
|
|
7
|
+
*
|
|
8
|
+
* - `native` (default): MAAF auto-provisions a platform-managed git repo, no remote URL.
|
|
9
|
+
* - `none`: source-control-free; no platform-managed repo, no remote URL.
|
|
10
|
+
* - `github`: bound to an external GitHub Enterprise repo at `remoteUrl`.
|
|
11
|
+
*
|
|
12
|
+
* `remoteUrl` is populated only when `repoType === 'github'`. This is a flat
|
|
13
|
+
* interface (not a discriminated union), so `if (repoType === 'github')` does NOT
|
|
14
|
+
* auto-narrow `remoteUrl` to `string`; github-branch use sites assert `remoteUrl!`.
|
|
15
|
+
*/
|
|
16
|
+
export interface RepoSelection {
|
|
17
|
+
repoType: RepoType;
|
|
18
|
+
remoteUrl: string | undefined;
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* Maps the raw `--repo` flag value to a `(repoType, remoteUrl)` pair.
|
|
22
|
+
* - omitted / empty → `native` (default GRS-backed flow)
|
|
23
|
+
* - `none` (case-insensitive) → `none` (no GRS, no local setup)
|
|
24
|
+
* - any other non-empty value → `github` (external GHE binding, the trimmed value
|
|
25
|
+
* flows through as `remoteUrl` to the action and the eventual git clone)
|
|
26
|
+
*
|
|
27
|
+
* Runtime invariant: `remoteUrl` is set iff `repoType === 'github'`. Consumers
|
|
28
|
+
* branch on `repoType` and assert `remoteUrl!` at github use sites — see
|
|
29
|
+
* `RepoSelection` for why narrowing is not automatic.
|
|
30
|
+
*
|
|
31
|
+
* Lives in `Utils/` (not `Verbs/CreateMaafApp.ts`) so the lightweight `app init`
|
|
32
|
+
* verb can call it without pulling in `giget`/`child_process` from CreateMaafApp.
|
|
33
|
+
*/
|
|
34
|
+
export declare function parseRepoOption(rawRepoValue: string | undefined): RepoSelection;
|
|
35
|
+
//# sourceMappingURL=RepoOption.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"RepoOption.d.ts","sourceRoot":"","sources":["../../src/Utils/RepoOption.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,uCAAuC,CAAC;AAWtE;;;;;;;;;;GAUG;AACH,MAAM,WAAW,aAAa;IAC5B,QAAQ,EAAE,QAAQ,CAAC;IACnB,SAAS,EAAE,MAAM,GAAG,SAAS,CAAC;CAC/B;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,eAAe,CAAC,YAAY,EAAE,MAAM,GAAG,SAAS,GAAG,aAAa,CAS/E"}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
/*!
|
|
2
|
+
* Copyright (C) Microsoft Corporation. All rights reserved.
|
|
3
|
+
*/
|
|
4
|
+
/**
|
|
5
|
+
* Sentinel value for `--repo` that selects the no-source-control flow: just create the
|
|
6
|
+
* server-side app record, write `ms.config.json` with `repoType: 'none'`, and skip every
|
|
7
|
+
* local-setup step (git init/clone, template overlay, GCM config) plus the server-side
|
|
8
|
+
* GRS auto-provisioning. Comparison is case-insensitive — `none`, `None`, `NONE` all
|
|
9
|
+
* select this flow. Any other non-empty `--repo` value is treated as a remote URL.
|
|
10
|
+
*/
|
|
11
|
+
const REPO_NONE_SENTINEL = 'none';
|
|
12
|
+
/**
|
|
13
|
+
* Maps the raw `--repo` flag value to a `(repoType, remoteUrl)` pair.
|
|
14
|
+
* - omitted / empty → `native` (default GRS-backed flow)
|
|
15
|
+
* - `none` (case-insensitive) → `none` (no GRS, no local setup)
|
|
16
|
+
* - any other non-empty value → `github` (external GHE binding, the trimmed value
|
|
17
|
+
* flows through as `remoteUrl` to the action and the eventual git clone)
|
|
18
|
+
*
|
|
19
|
+
* Runtime invariant: `remoteUrl` is set iff `repoType === 'github'`. Consumers
|
|
20
|
+
* branch on `repoType` and assert `remoteUrl!` at github use sites — see
|
|
21
|
+
* `RepoSelection` for why narrowing is not automatic.
|
|
22
|
+
*
|
|
23
|
+
* Lives in `Utils/` (not `Verbs/CreateMaafApp.ts`) so the lightweight `app init`
|
|
24
|
+
* verb can call it without pulling in `giget`/`child_process` from CreateMaafApp.
|
|
25
|
+
*/
|
|
26
|
+
export function parseRepoOption(rawRepoValue) {
|
|
27
|
+
if (rawRepoValue === undefined || rawRepoValue === '') {
|
|
28
|
+
return { repoType: 'native', remoteUrl: undefined };
|
|
29
|
+
}
|
|
30
|
+
const trimmed = rawRepoValue.trim();
|
|
31
|
+
if (trimmed.toLowerCase() === REPO_NONE_SENTINEL) {
|
|
32
|
+
return { repoType: 'none', remoteUrl: undefined };
|
|
33
|
+
}
|
|
34
|
+
return { repoType: 'github', remoteUrl: trimmed };
|
|
35
|
+
}
|
|
36
|
+
//# sourceMappingURL=RepoOption.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"RepoOption.js","sourceRoot":"","sources":["../../src/Utils/RepoOption.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH;;;;;;GAMG;AACH,MAAM,kBAAkB,GAAG,MAAM,CAAC;AAkBlC;;;;;;;;;;;;;GAaG;AACH,MAAM,UAAU,eAAe,CAAC,YAAgC;IAC9D,IAAI,YAAY,KAAK,SAAS,IAAI,YAAY,KAAK,EAAE,EAAE,CAAC;QACtD,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,SAAS,EAAE,SAAS,EAAE,CAAC;IACtD,CAAC;IACD,MAAM,OAAO,GAAG,YAAY,CAAC,IAAI,EAAE,CAAC;IACpC,IAAI,OAAO,CAAC,WAAW,EAAE,KAAK,kBAAkB,EAAE,CAAC;QACjD,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,CAAC;IACpD,CAAC;IACD,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,SAAS,EAAE,OAAO,EAAE,CAAC;AACpD,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
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;
|
|
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;IAwBvB;;;;OAIG;IACH,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAK1B,IAAI,IAAI,IAAI;CAcb"}
|
package/dist/Utils/Spinner.js
CHANGED
|
@@ -58,6 +58,9 @@ export class CliSpinner {
|
|
|
58
58
|
process.once('SIGTERM', this._handleSIGTERM);
|
|
59
59
|
process.once('uncaughtException', this._handleUncaughtException);
|
|
60
60
|
process.once('unhandledRejection', this._handleUnhandledRejection);
|
|
61
|
+
// Paint the first frame immediately so a sync check that blocks the event
|
|
62
|
+
// loop still shows the current status line right away.
|
|
63
|
+
this._render();
|
|
61
64
|
this._timer = setInterval(() => {
|
|
62
65
|
this._render();
|
|
63
66
|
this._frameIndex = (this._frameIndex + 1) % SPINNER_FRAMES.length;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Spinner.js","sourceRoot":"","sources":["../../src/Utils/Spinner.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Spinner.js","sourceRoot":"","sources":["../../src/Utils/Spinner.ts"],"names":[],"mappings":"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"}
|
package/dist/Verbs/AddAction.js
CHANGED
|
@@ -10,11 +10,11 @@ export async function addActionAsync(argumentProvider) {
|
|
|
10
10
|
createOptionSchema(argumentProvider);
|
|
11
11
|
await argumentProvider.runVerb();
|
|
12
12
|
// Commander converts kebab-case flags to camelCase attribute names — use camelCase here.
|
|
13
|
-
const apiId = await argumentProvider.getOption('
|
|
13
|
+
const apiId = await argumentProvider.getOption('connector');
|
|
14
14
|
const connectionIdFlag = await argumentProvider.getOption('connectionId', true);
|
|
15
15
|
const skipCodegen = !!(await argumentProvider.getOption('skipCodegen', true));
|
|
16
16
|
const useV1Codegen = !!(await argumentProvider.getOption('useV1Codegen', true));
|
|
17
|
-
// ── Preflight: connector +
|
|
17
|
+
// ── Preflight: connector + connector policy (throws on not-found or blocked) ──
|
|
18
18
|
const { connector, policy } = await runConnectorDlpPreflightAsync(argumentProvider, apiId);
|
|
19
19
|
await runAddActionFlowAsync({
|
|
20
20
|
argumentProvider,
|
|
@@ -31,10 +31,10 @@ function createOptionSchema(argumentProvider) {
|
|
|
31
31
|
argumentProvider.addExamples(HelpStrings.app.add.action.examples);
|
|
32
32
|
argumentProvider.addOptions([
|
|
33
33
|
createDefaultStringOption({
|
|
34
|
-
flags: { key: SharedArguments.
|
|
35
|
-
env: SharedArguments.
|
|
36
|
-
message: SharedArguments.
|
|
37
|
-
description: HelpStrings.app.add.action.options.
|
|
34
|
+
flags: { key: SharedArguments.Connector.name },
|
|
35
|
+
env: SharedArguments.Connector.envVar,
|
|
36
|
+
message: SharedArguments.Connector.promptMessage,
|
|
37
|
+
description: HelpStrings.app.add.action.options.connector,
|
|
38
38
|
}),
|
|
39
39
|
{
|
|
40
40
|
flags: { key: SharedArguments.ConnectionId.name, alias: SharedArguments.ConnectionId.alias },
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AddAction.js","sourceRoot":"","sources":["../../src/Verbs/AddAction.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,EAAE,yBAAyB,EAAE,MAAM,aAAa,CAAC;AACxD,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AACvD,OAAO,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AAC5D,OAAO,EAAE,6BAA6B,EAAE,MAAM,oBAAoB,CAAC;AACnE,OAAO,EAAE,kBAAkB,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAEtE,MAAM,CAAC,KAAK,UAAU,cAAc,CAAC,gBAAkC;IACrE,kBAAkB,CAAC,gBAAgB,CAAC,CAAC;IACrC,MAAM,gBAAgB,CAAC,OAAO,EAAE,CAAC;IAEjC,yFAAyF;IACzF,MAAM,KAAK,GAAG,MAAM,gBAAgB,CAAC,SAAS,CAAS,
|
|
1
|
+
{"version":3,"file":"AddAction.js","sourceRoot":"","sources":["../../src/Verbs/AddAction.ts"],"names":[],"mappings":"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"}
|
|
@@ -8,7 +8,7 @@ import type { ArgumentProvider } from '../ArgumentProvider.js';
|
|
|
8
8
|
* connector's capabilities.
|
|
9
9
|
*
|
|
10
10
|
* Decision matrix:
|
|
11
|
-
* 1. Run
|
|
11
|
+
* 1. Run connector-policy preflight (single source of truth for policy enforcement).
|
|
12
12
|
* 2. Determine `isTabular` from connector capabilities.
|
|
13
13
|
* 3. Resolve mode:
|
|
14
14
|
* - Non-tabular + `--as table` → UsageError
|
|
@@ -16,8 +16,10 @@ import type { ArgumentProvider } from '../ArgumentProvider.js';
|
|
|
16
16
|
* - Tabular + `--as` given → mode = flag value
|
|
17
17
|
* - Tabular + interactive (no `--as`) → promptConfirm yes/no
|
|
18
18
|
* - Tabular + non-interactive + no `--as` → UsageError
|
|
19
|
-
* 4. Reject `--dataset` / `--table` if mode resolved to action
|
|
20
|
-
*
|
|
19
|
+
* 4. Reject `--dataset` / `--table` if mode resolved to action, EXCEPT
|
|
20
|
+
* for the Common Data Service for Apps connector where `--table` is
|
|
21
|
+
* re-interpreted as the Dataverse logical name (paired with
|
|
22
|
+
* `--dataverse-environment-id`).
|
|
21
23
|
* 5. Delegate to the appropriate shared flow helper.
|
|
22
24
|
*/
|
|
23
25
|
export declare function addConnectorAsync(argumentProvider: ArgumentProvider): Promise<void>;
|
|
@@ -1 +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;
|
|
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;AAkB5D;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAsB,iBAAiB,CAAC,gBAAgB,EAAE,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC,CAgGzF"}
|
|
@@ -8,13 +8,15 @@ import { UsageError } from '../Errors/CliError.js';
|
|
|
8
8
|
import { isTabularConnector, runAddActionFlowAsync, runAddTableFlowAsync, } from './AddConnectorFlows.js';
|
|
9
9
|
import { runConnectorDlpPreflightAsync } from './ConnectorHelpers.js';
|
|
10
10
|
import { AddConnectorArguments, SharedArguments } from './VerbConstants.js';
|
|
11
|
+
const COMMON_DATA_SERVICE_FOR_APPS_API_ID = 'shared_commondataserviceforapps';
|
|
12
|
+
const DATAVERSE_PAIR_ERROR = '--dataverse-environment-id and --table must be specified together for the Common Data Service for Apps connector. Provide both or neither.';
|
|
11
13
|
/**
|
|
12
14
|
* `ms app add connector` — a single entry point that adds a connector to
|
|
13
15
|
* the app and picks the right shape (table or action) based on the
|
|
14
16
|
* connector's capabilities.
|
|
15
17
|
*
|
|
16
18
|
* Decision matrix:
|
|
17
|
-
* 1. Run
|
|
19
|
+
* 1. Run connector-policy preflight (single source of truth for policy enforcement).
|
|
18
20
|
* 2. Determine `isTabular` from connector capabilities.
|
|
19
21
|
* 3. Resolve mode:
|
|
20
22
|
* - Non-tabular + `--as table` → UsageError
|
|
@@ -22,18 +24,21 @@ import { AddConnectorArguments, SharedArguments } from './VerbConstants.js';
|
|
|
22
24
|
* - Tabular + `--as` given → mode = flag value
|
|
23
25
|
* - Tabular + interactive (no `--as`) → promptConfirm yes/no
|
|
24
26
|
* - Tabular + non-interactive + no `--as` → UsageError
|
|
25
|
-
* 4. Reject `--dataset` / `--table` if mode resolved to action
|
|
26
|
-
*
|
|
27
|
+
* 4. Reject `--dataset` / `--table` if mode resolved to action, EXCEPT
|
|
28
|
+
* for the Common Data Service for Apps connector where `--table` is
|
|
29
|
+
* re-interpreted as the Dataverse logical name (paired with
|
|
30
|
+
* `--dataverse-environment-id`).
|
|
27
31
|
* 5. Delegate to the appropriate shared flow helper.
|
|
28
32
|
*/
|
|
29
33
|
export async function addConnectorAsync(argumentProvider) {
|
|
30
34
|
createOptionSchema(argumentProvider);
|
|
31
35
|
await argumentProvider.runVerb();
|
|
32
|
-
const apiId = await argumentProvider.getOption('
|
|
36
|
+
const apiId = await argumentProvider.getOption('connector');
|
|
33
37
|
const connectionIdFlag = await argumentProvider.getOption('connectionId', true);
|
|
34
38
|
const datasetFlag = await argumentProvider.getOption('dataset', true);
|
|
35
39
|
const tableFlag = await argumentProvider.getOption('table', true);
|
|
36
40
|
const asFlagRaw = await argumentProvider.getOption('as', true);
|
|
41
|
+
const dataverseEnvironmentIdFlag = await argumentProvider.getOption('dataverseEnvironmentId', true);
|
|
37
42
|
const skipCodegen = !!(await argumentProvider.getOption('skipCodegen', true));
|
|
38
43
|
const useV1Codegen = !!(await argumentProvider.getOption('useV1Codegen', true));
|
|
39
44
|
// ── Validate `--as` value (if provided) ────────────────────────────────────
|
|
@@ -45,7 +50,7 @@ export async function addConnectorAsync(argumentProvider) {
|
|
|
45
50
|
}
|
|
46
51
|
asFlag = normalized;
|
|
47
52
|
}
|
|
48
|
-
// ── Preflight: connector +
|
|
53
|
+
// ── Preflight: connector + connector policy (throws on not-found or blocked) ──
|
|
49
54
|
const { connector, policy } = await runConnectorDlpPreflightAsync(argumentProvider, apiId);
|
|
50
55
|
const connectorLabel = connector.properties.displayName ?? apiId;
|
|
51
56
|
const isTabular = isTabularConnector(connector);
|
|
@@ -55,8 +60,29 @@ export async function addConnectorAsync(argumentProvider) {
|
|
|
55
60
|
asFlag,
|
|
56
61
|
connectorLabel,
|
|
57
62
|
});
|
|
58
|
-
|
|
59
|
-
|
|
63
|
+
const isCommonDataServiceForApps = apiId.toLowerCase() === COMMON_DATA_SERVICE_FOR_APPS_API_ID ||
|
|
64
|
+
apiId.toLowerCase().endsWith(`/${COMMON_DATA_SERVICE_FOR_APPS_API_ID}`);
|
|
65
|
+
// ── CDS connector special case: reinterpret --table as Dataverse logical name ─
|
|
66
|
+
// For the Common Data Service for Apps connector, `--table` (existing flag) carries
|
|
67
|
+
// the Dataverse entity logical name and pairs with `--dataverse-environment-id`. The
|
|
68
|
+
// connector is non-tabular, so we land here only in action mode.
|
|
69
|
+
let dataverseEnvironmentId;
|
|
70
|
+
let dataverseTable;
|
|
71
|
+
if (isCommonDataServiceForApps && mode === 'action') {
|
|
72
|
+
if (datasetFlag) {
|
|
73
|
+
throw new UsageError('--dataset is not used with the Common Data Service for Apps connector. Use --table to specify a Dataverse logical name.');
|
|
74
|
+
}
|
|
75
|
+
dataverseEnvironmentId = dataverseEnvironmentIdFlag;
|
|
76
|
+
dataverseTable = tableFlag;
|
|
77
|
+
if (!getSettings().interactive && !!dataverseEnvironmentId !== !!dataverseTable) {
|
|
78
|
+
throw new UsageError(DATAVERSE_PAIR_ERROR);
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
else if (!isCommonDataServiceForApps && dataverseEnvironmentIdFlag) {
|
|
82
|
+
throw new UsageError('--dataverse-environment-id can only be used with --connector shared_commondataserviceforapps.');
|
|
83
|
+
}
|
|
84
|
+
// ── Reject contradictory flags when adding actions (CDS already handled above) ─
|
|
85
|
+
if (mode === 'action' && !isCommonDataServiceForApps && (datasetFlag || tableFlag)) {
|
|
60
86
|
throw new UsageError(`--dataset and --table cannot be used with --as action. Re-run with --as table, or omit those flags.`);
|
|
61
87
|
}
|
|
62
88
|
// ── Dispatch ──────────────────────────────────────────────────────────────
|
|
@@ -81,6 +107,8 @@ export async function addConnectorAsync(argumentProvider) {
|
|
|
81
107
|
skipCodegen,
|
|
82
108
|
useV1Codegen,
|
|
83
109
|
policy,
|
|
110
|
+
dataverseEnvironmentId,
|
|
111
|
+
dataverseTable,
|
|
84
112
|
});
|
|
85
113
|
}
|
|
86
114
|
}
|
|
@@ -111,10 +139,10 @@ function createOptionSchema(argumentProvider) {
|
|
|
111
139
|
argumentProvider.addExamples(HelpStrings.app.add.connector.examples);
|
|
112
140
|
argumentProvider.addOptions([
|
|
113
141
|
createDefaultStringOption({
|
|
114
|
-
flags: { key: SharedArguments.
|
|
115
|
-
env: SharedArguments.
|
|
116
|
-
message: SharedArguments.
|
|
117
|
-
description: HelpStrings.app.add.connector.options.
|
|
142
|
+
flags: { key: SharedArguments.Connector.name },
|
|
143
|
+
env: SharedArguments.Connector.envVar,
|
|
144
|
+
message: SharedArguments.Connector.promptMessage,
|
|
145
|
+
description: HelpStrings.app.add.connector.options.connector,
|
|
118
146
|
}),
|
|
119
147
|
{
|
|
120
148
|
flags: { key: SharedArguments.ConnectionId.name, alias: SharedArguments.ConnectionId.alias },
|
|
@@ -140,6 +168,12 @@ function createOptionSchema(argumentProvider) {
|
|
|
140
168
|
description: HelpStrings.app.add.connector.options.as,
|
|
141
169
|
optionalInNonInteractive: true,
|
|
142
170
|
},
|
|
171
|
+
{
|
|
172
|
+
flags: { key: AddConnectorArguments.DataverseEnvironmentId.name },
|
|
173
|
+
env: AddConnectorArguments.DataverseEnvironmentId.envVar,
|
|
174
|
+
description: HelpStrings.app.add.connector.options.dataverseEnvironmentId,
|
|
175
|
+
optionalInNonInteractive: true,
|
|
176
|
+
},
|
|
143
177
|
]);
|
|
144
178
|
argumentProvider.addSwitch({
|
|
145
179
|
flags: { key: AddConnectorArguments.SkipCodegen.name },
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AddConnector.js","sourceRoot":"","sources":["../../src/Verbs/AddConnector.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC7C,OAAO,EAAE,yBAAyB,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AACvE,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AACvD,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAChD,OAAO,EACL,kBAAkB,EAClB,qBAAqB,EACrB,oBAAoB,GACrB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,6BAA6B,EAAE,MAAM,oBAAoB,CAAC;AACnE,OAAO,EAAE,qBAAqB,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"AddConnector.js","sourceRoot":"","sources":["../../src/Verbs/AddConnector.ts"],"names":[],"mappings":"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"}
|