@microsoft/managed-apps-cli 0.6.1 → 0.8.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.
Files changed (207) hide show
  1. package/README.md +56 -10
  2. package/dist/ArgumentProvider.d.ts +21 -2
  3. package/dist/ArgumentProvider.d.ts.map +1 -1
  4. package/dist/ArgumentProvider.js +47 -3
  5. package/dist/ArgumentProvider.js.map +1 -1
  6. package/dist/Authentication/ActiveAccountStore.d.ts +24 -0
  7. package/dist/Authentication/ActiveAccountStore.d.ts.map +1 -0
  8. package/dist/Authentication/ActiveAccountStore.js +54 -0
  9. package/dist/Authentication/ActiveAccountStore.js.map +1 -0
  10. package/dist/Authentication/NodeMsalAuthenticationProvider.d.ts +57 -3
  11. package/dist/Authentication/NodeMsalAuthenticationProvider.d.ts.map +1 -1
  12. package/dist/Authentication/NodeMsalAuthenticationProvider.js +187 -27
  13. package/dist/Authentication/NodeMsalAuthenticationProvider.js.map +1 -1
  14. package/dist/Cli.d.ts.map +1 -1
  15. package/dist/Cli.js +8 -2
  16. package/dist/Cli.js.map +1 -1
  17. package/dist/CliSettings.d.ts.map +1 -1
  18. package/dist/CliSettings.js +1 -2
  19. package/dist/CliSettings.js.map +1 -1
  20. package/dist/CliUtils.d.ts +2 -1
  21. package/dist/CliUtils.d.ts.map +1 -1
  22. package/dist/CliUtils.js +4 -0
  23. package/dist/CliUtils.js.map +1 -1
  24. package/dist/Constants/CommandRegistry.d.ts.map +1 -1
  25. package/dist/Constants/CommandRegistry.js +44 -6
  26. package/dist/Constants/CommandRegistry.js.map +1 -1
  27. package/dist/Constants/HelpStrings.d.ts +75 -3
  28. package/dist/Constants/HelpStrings.d.ts.map +1 -1
  29. package/dist/Constants/HelpStrings.js +143 -41
  30. package/dist/Constants/HelpStrings.js.map +1 -1
  31. package/dist/Errors/GitHubErrorMap.d.ts +3 -3
  32. package/dist/Errors/GitHubErrorMap.d.ts.map +1 -1
  33. package/dist/Errors/GitHubErrorMap.js +12 -7
  34. package/dist/Errors/GitHubErrorMap.js.map +1 -1
  35. package/dist/FS/CliFs.d.ts.map +1 -1
  36. package/dist/FS/CliFs.js.map +1 -1
  37. package/dist/HttpClient/CliHttpClient.d.ts +17 -0
  38. package/dist/HttpClient/CliHttpClient.d.ts.map +1 -1
  39. package/dist/HttpClient/CliHttpClient.js +112 -1
  40. package/dist/HttpClient/CliHttpClient.js.map +1 -1
  41. package/dist/Logger/CliLogger.d.ts.map +1 -1
  42. package/dist/Logger/CliLogger.js +1 -1
  43. package/dist/Logger/CliLogger.js.map +1 -1
  44. package/dist/Logger/ConsoleWriter.d.ts.map +1 -1
  45. package/dist/Logger/ConsoleWriter.js +7 -7
  46. package/dist/Logger/ConsoleWriter.js.map +1 -1
  47. package/dist/Middletier/FunctionsBundler.d.ts +17 -0
  48. package/dist/Middletier/FunctionsBundler.d.ts.map +1 -0
  49. package/dist/Middletier/FunctionsBundler.js +165 -0
  50. package/dist/Middletier/FunctionsBundler.js.map +1 -0
  51. package/dist/Middletier/PackFunctions.d.ts +52 -0
  52. package/dist/Middletier/PackFunctions.d.ts.map +1 -0
  53. package/dist/Middletier/PackFunctions.js +122 -0
  54. package/dist/Middletier/PackFunctions.js.map +1 -0
  55. package/dist/Types/Cli.types.d.ts +42 -1
  56. package/dist/Types/Cli.types.d.ts.map +1 -1
  57. package/dist/Types/Command.types.d.ts +14 -3
  58. package/dist/Types/Command.types.d.ts.map +1 -1
  59. package/dist/Types/Command.types.js +4 -0
  60. package/dist/Types/Command.types.js.map +1 -1
  61. package/dist/Utils/BuildPolling.d.ts +18 -0
  62. package/dist/Utils/BuildPolling.d.ts.map +1 -0
  63. package/dist/Utils/BuildPolling.js +63 -0
  64. package/dist/Utils/BuildPolling.js.map +1 -0
  65. package/dist/Utils/BuildVerbDescriptionTable.d.ts +11 -1
  66. package/dist/Utils/BuildVerbDescriptionTable.d.ts.map +1 -1
  67. package/dist/Utils/BuildVerbDescriptionTable.js +73 -17
  68. package/dist/Utils/BuildVerbDescriptionTable.js.map +1 -1
  69. package/dist/Utils/ConsoleOutput.d.ts.map +1 -1
  70. package/dist/Utils/ConsoleOutput.js +15 -12
  71. package/dist/Utils/ConsoleOutput.js.map +1 -1
  72. package/dist/Utils/DcfRecovery.d.ts +84 -0
  73. package/dist/Utils/DcfRecovery.d.ts.map +1 -0
  74. package/dist/Utils/DcfRecovery.js +258 -0
  75. package/dist/Utils/DcfRecovery.js.map +1 -0
  76. package/dist/Utils/EnhanceNetworkError.d.ts.map +1 -1
  77. package/dist/Utils/EnhanceNetworkError.js +2 -0
  78. package/dist/Utils/EnhanceNetworkError.js.map +1 -1
  79. package/dist/Utils/EnvVars.d.ts +1 -1
  80. package/dist/Utils/EnvVars.d.ts.map +1 -1
  81. package/dist/Utils/EnvVars.js.map +1 -1
  82. package/dist/Utils/EnvironmentRoutingUtils.d.ts +8 -0
  83. package/dist/Utils/EnvironmentRoutingUtils.d.ts.map +1 -0
  84. package/dist/Utils/EnvironmentRoutingUtils.js +45 -0
  85. package/dist/Utils/EnvironmentRoutingUtils.js.map +1 -0
  86. package/dist/Utils/GitHubDcfFlow.d.ts +4 -5
  87. package/dist/Utils/GitHubDcfFlow.d.ts.map +1 -1
  88. package/dist/Utils/GitHubDcfFlow.js +4 -5
  89. package/dist/Utils/GitHubDcfFlow.js.map +1 -1
  90. package/dist/Utils/GitUtils.d.ts +5 -0
  91. package/dist/Utils/GitUtils.d.ts.map +1 -1
  92. package/dist/Utils/GitUtils.js +15 -0
  93. package/dist/Utils/GitUtils.js.map +1 -1
  94. package/dist/Utils/Paging.d.ts.map +1 -1
  95. package/dist/Utils/Paging.js +4 -4
  96. package/dist/Utils/Paging.js.map +1 -1
  97. package/dist/Utils/ResolveCommand.d.ts +7 -1
  98. package/dist/Utils/ResolveCommand.d.ts.map +1 -1
  99. package/dist/Utils/ResolveCommand.js +38 -20
  100. package/dist/Utils/ResolveCommand.js.map +1 -1
  101. package/dist/Utils/Spinner.d.ts +9 -1
  102. package/dist/Utils/Spinner.d.ts.map +1 -1
  103. package/dist/Utils/Spinner.js +25 -5
  104. package/dist/Utils/Spinner.js.map +1 -1
  105. package/dist/Verbs/AddAction.d.ts.map +1 -1
  106. package/dist/Verbs/AddAction.js +12 -41
  107. package/dist/Verbs/AddAction.js.map +1 -1
  108. package/dist/Verbs/AddConnector.d.ts +24 -0
  109. package/dist/Verbs/AddConnector.d.ts.map +1 -0
  110. package/dist/Verbs/AddConnector.js +156 -0
  111. package/dist/Verbs/AddConnector.js.map +1 -0
  112. package/dist/Verbs/AddConnectorFlows.d.ts +72 -0
  113. package/dist/Verbs/AddConnectorFlows.d.ts.map +1 -0
  114. package/dist/Verbs/AddConnectorFlows.js +198 -0
  115. package/dist/Verbs/AddConnectorFlows.js.map +1 -0
  116. package/dist/Verbs/AddDataSource.js +1 -1
  117. package/dist/Verbs/AddDataSource.js.map +1 -1
  118. package/dist/Verbs/AddTable.d.ts.map +1 -1
  119. package/dist/Verbs/AddTable.js +15 -100
  120. package/dist/Verbs/AddTable.js.map +1 -1
  121. package/dist/Verbs/AuthStatus.d.ts.map +1 -1
  122. package/dist/Verbs/AuthStatus.js +34 -6
  123. package/dist/Verbs/AuthStatus.js.map +1 -1
  124. package/dist/Verbs/AuthSwitch.d.ts +6 -0
  125. package/dist/Verbs/AuthSwitch.d.ts.map +1 -0
  126. package/dist/Verbs/AuthSwitch.js +67 -0
  127. package/dist/Verbs/AuthSwitch.js.map +1 -0
  128. package/dist/Verbs/BuildMaafApp.d.ts.map +1 -1
  129. package/dist/Verbs/BuildMaafApp.js +98 -22
  130. package/dist/Verbs/BuildMaafApp.js.map +1 -1
  131. package/dist/Verbs/ConnectorHelpers.d.ts +54 -1
  132. package/dist/Verbs/ConnectorHelpers.d.ts.map +1 -1
  133. package/dist/Verbs/ConnectorHelpers.js +217 -16
  134. package/dist/Verbs/ConnectorHelpers.js.map +1 -1
  135. package/dist/Verbs/CreateMaafApp.d.ts +75 -0
  136. package/dist/Verbs/CreateMaafApp.d.ts.map +1 -1
  137. package/dist/Verbs/CreateMaafApp.js +273 -75
  138. package/dist/Verbs/CreateMaafApp.js.map +1 -1
  139. package/dist/Verbs/DeployMaafApp.d.ts.map +1 -1
  140. package/dist/Verbs/DeployMaafApp.js +52 -20
  141. package/dist/Verbs/DeployMaafApp.js.map +1 -1
  142. package/dist/Verbs/Dev.js +5 -5
  143. package/dist/Verbs/Dev.js.map +1 -1
  144. package/dist/Verbs/GetMaafBuildStatus.d.ts.map +1 -1
  145. package/dist/Verbs/GetMaafBuildStatus.js +66 -17
  146. package/dist/Verbs/GetMaafBuildStatus.js.map +1 -1
  147. package/dist/Verbs/Init.d.ts.map +1 -1
  148. package/dist/Verbs/Init.js +170 -60
  149. package/dist/Verbs/Init.js.map +1 -1
  150. package/dist/Verbs/ListConnectors.d.ts.map +1 -1
  151. package/dist/Verbs/ListConnectors.js +4 -2
  152. package/dist/Verbs/ListConnectors.js.map +1 -1
  153. package/dist/Verbs/ListDatasets.d.ts.map +1 -1
  154. package/dist/Verbs/ListDatasets.js +5 -0
  155. package/dist/Verbs/ListDatasets.js.map +1 -1
  156. package/dist/Verbs/ListFlows.d.ts.map +1 -1
  157. package/dist/Verbs/ListFlows.js +1 -2
  158. package/dist/Verbs/ListFlows.js.map +1 -1
  159. package/dist/Verbs/ListSqlStoredProcedures.d.ts.map +1 -1
  160. package/dist/Verbs/ListSqlStoredProcedures.js +5 -0
  161. package/dist/Verbs/ListSqlStoredProcedures.js.map +1 -1
  162. package/dist/Verbs/ListTables.d.ts.map +1 -1
  163. package/dist/Verbs/ListTables.js +5 -0
  164. package/dist/Verbs/ListTables.js.map +1 -1
  165. package/dist/Verbs/Login.d.ts.map +1 -1
  166. package/dist/Verbs/Login.js +16 -13
  167. package/dist/Verbs/Login.js.map +1 -1
  168. package/dist/Verbs/Logout.d.ts.map +1 -1
  169. package/dist/Verbs/Logout.js +19 -13
  170. package/dist/Verbs/Logout.js.map +1 -1
  171. package/dist/Verbs/MaafAppPermissions.d.ts.map +1 -1
  172. package/dist/Verbs/MaafAppPermissions.js +4 -0
  173. package/dist/Verbs/MaafAppPermissions.js.map +1 -1
  174. package/dist/Verbs/Pack.d.ts +6 -6
  175. package/dist/Verbs/Pack.d.ts.map +1 -1
  176. package/dist/Verbs/Pack.js +80 -12
  177. package/dist/Verbs/Pack.js.map +1 -1
  178. package/dist/Verbs/PlayMaafApp.d.ts +22 -0
  179. package/dist/Verbs/PlayMaafApp.d.ts.map +1 -0
  180. package/dist/Verbs/PlayMaafApp.js +147 -0
  181. package/dist/Verbs/PlayMaafApp.js.map +1 -0
  182. package/dist/Verbs/RefreshDataSource.d.ts.map +1 -1
  183. package/dist/Verbs/RefreshDataSource.js.map +1 -1
  184. package/dist/Verbs/RefreshGitAuth.d.ts.map +1 -1
  185. package/dist/Verbs/RefreshGitAuth.js +1 -1
  186. package/dist/Verbs/RefreshGitAuth.js.map +1 -1
  187. package/dist/Verbs/ShareLinkCreate.d.ts +23 -0
  188. package/dist/Verbs/ShareLinkCreate.d.ts.map +1 -0
  189. package/dist/Verbs/ShareLinkCreate.js +73 -0
  190. package/dist/Verbs/ShareLinkCreate.js.map +1 -0
  191. package/dist/Verbs/ShareLinkList.d.ts +16 -0
  192. package/dist/Verbs/ShareLinkList.d.ts.map +1 -0
  193. package/dist/Verbs/ShareLinkList.js +84 -0
  194. package/dist/Verbs/ShareLinkList.js.map +1 -0
  195. package/dist/Verbs/ShareLinkRevoke.d.ts +22 -0
  196. package/dist/Verbs/ShareLinkRevoke.d.ts.map +1 -0
  197. package/dist/Verbs/ShareLinkRevoke.js +137 -0
  198. package/dist/Verbs/ShareLinkRevoke.js.map +1 -0
  199. package/dist/Verbs/VerbConstants.d.ts +151 -21
  200. package/dist/Verbs/VerbConstants.d.ts.map +1 -1
  201. package/dist/Verbs/VerbConstants.js +127 -21
  202. package/dist/Verbs/VerbConstants.js.map +1 -1
  203. package/dist/Verbs/index.d.ts +6 -0
  204. package/dist/Verbs/index.d.ts.map +1 -1
  205. package/dist/Verbs/index.js +6 -0
  206. package/dist/Verbs/index.js.map +1 -1
  207. package/package.json +8 -8
package/README.md CHANGED
@@ -38,6 +38,10 @@ Initialize a `ms.config.json` for an existing app.
38
38
 
39
39
  ```bash
40
40
  npx ms app init --display-name "My App" --environment-id <id>
41
+ # If the project's git remote is a GHE repo (*.ghe.com), --use-existing-git-repo
42
+ # binds the app to it. Inline DCF re-auth fires automatically if the Entra↔GitHub
43
+ # mapping is missing or expired; pass --open-browser to launch the system browser.
44
+ npx ms app init --display-name "My App" --use-existing-git-repo --open-browser
41
45
  ```
42
46
 
43
47
  ### `app list`
@@ -72,7 +76,7 @@ Initiate a cloud build for a Managed App and poll its status.
72
76
 
73
77
  ```bash
74
78
  npx ms app build --app my-app --commit abc1234
75
- npx ms app build-status --app my-app --operation-id <id>
79
+ npx ms app build-status --app my-app --commit abc1234
76
80
  ```
77
81
 
78
82
  ### `app deploy`
@@ -188,6 +192,32 @@ In `--json` mode the output is an envelope so automation can detect partial succ
188
192
 
189
193
  `warnings` is always present (empty array on full success). The `revokedCount` / `revokedPrincipalCount` / `notFound` / `skipped` keys appear on `unshare` only — `revokedCount` is the number of role assignments deleted on the wire, while `revokedPrincipalCount` is the number of distinct principals whose access was revoked (typically equal, but `revokedCount` can be higher when a principal had multiple stale assignments at the same scope).
190
194
 
195
+ ### `app share link create` / `app share link list` / `app share link revoke`
196
+
197
+ Manage tenant-wide share links for a MAAF app. A share link is a JIT-redemption URL: the first time a recipient opens it, they are granted the `Microsoft App Reader` role at the app scope. Links can be listed and revoked at any time.
198
+
199
+ ```bash
200
+ # Create a share link for the current app (URL is printed on a dedicated line for easy copy)
201
+ npx ms app share link create
202
+
203
+ # List every link issued for the app
204
+ npx ms app share link list
205
+
206
+ # Revoke a link by id (4-char hex returned at creation)
207
+ npx ms app share link revoke --link-id a3f1
208
+
209
+ # Skip the confirmation prompt
210
+ npx ms app share link revoke --link-id a3f1 --force
211
+
212
+ # JSON output
213
+ npx ms app share link create --json
214
+ npx ms app share link list --json
215
+ ```
216
+
217
+ `share link revoke` is idempotent in spirit: revoking a link that does not exist exits cleanly with a warning (`--json` returns `existed: false`), mirroring `ms app delete`.
218
+
219
+ Only the `Microsoft App Reader` role is supported today, so no `--role` flag is exposed yet — the role enum is open server-side for future expansion.
220
+
191
221
  ### `app refresh`
192
222
 
193
223
  Refresh data sources in the current app.
@@ -197,13 +227,16 @@ npx ms app refresh
197
227
  npx ms app refresh --data-source-name contact
198
228
  ```
199
229
 
200
- ### `app add action` / `app add table` / `app add procedure` / `app remove table` / `app remove procedure`
230
+ ### `app add connector` / `app add action` / `app add table` / `app add procedure` / `app remove table` / `app remove procedure`
201
231
 
202
- Bind or unbind data sources (connector actions, Dataverse tables, SQL stored procedures, etc.) to the app. `app add action` adds a non-tabular connector (e.g. Office 365); `app add table` adds a tabular connector data source. Both verbs run a DLP preflight, prompt for a connection when `--connection-id` is omitted, and offer to create one for you. Use `--skip-codegen` to skip TypeScript regeneration.
232
+ Bind or unbind data sources (connector actions, Dataverse tables, SQL stored procedures, etc.) to the app. `app add connector` is the recommended entry point — it inspects the connector's capabilities and dispatches to the right flow (table or actions), prompting you when both are valid. The targeted verb `app add table` remains available when you know exactly which shape you want. All `add` verbs run a DLP preflight, prompt for a connection when `--connection-id` is omitted, and offer to create one for you. Use `--skip-codegen` to skip TypeScript regeneration.
233
+
234
+ > **Note:** `app add action` is **temporarily disabled** pending spec rework. Use `app add connector` instead — for non-tabular connectors it dispatches to the same action flow internally. The implementation is preserved in source for easy re-enabling.
203
235
 
204
236
  ```bash
205
- npx ms app add action --api-id shared_office365
206
- npx ms app add action --api-id shared_sql --connection-id <id>
237
+ npx ms app add connector --api-id shared_office365
238
+ npx ms app add connector --api-id shared_sql --as table --connection-id <id> --dataset <db> --table <tbl>
239
+ npx ms app add connector --api-id shared_sharepointonline --as action
207
240
  npx ms app add table --api-id shared_sql --connection-id <id> --dataset <db> --table <tbl>
208
241
  npx ms app add procedure --api-id shared_sql --connection-id <id> --dataset <db>
209
242
  npx ms app remove table --api-id dataverse --data-source-name contact --force
@@ -228,29 +261,42 @@ npx ms connector list-actions --search "account"
228
261
 
229
262
  ### `auth login`
230
263
 
231
- Sign in interactively using MSAL (opens the system browser). Optionally pass `--hint` to pre-fill the username.
264
+ Sign in interactively using MSAL (opens the system browser). Always triggers interactive flow — run it again to add a second account. The signed-in account becomes the active one. Optionally pass `--account` to pre-fill the username in the browser prompt. Note: on `login`, `--account` is a hint passed to the identity provider, not validated against the local cache — use `auth switch --account` for an exact match against cached accounts.
232
265
 
233
266
  ```bash
234
267
  npx ms auth login
235
- npx ms auth login --hint alice@contoso.com
268
+ npx ms auth login --account alice@contoso.com
269
+ npx ms auth login --json
236
270
  ```
237
271
 
238
- On success prints `Signed in as <email>`.
272
+ On success prints `Signed in as <email>` (or emits `{ success: true, account: { username, homeAccountId } }` under `--json`).
239
273
 
240
274
  ### `auth status`
241
275
 
242
- Print the currently signed-in account (or a prompt to run `auth login` if not signed in).
276
+ List cached Entra ID accounts. When more than one is cached, the active account (the one used by other CLI commands) is marked with `*`. The global `--json` flag emits a machine-readable envelope (shape documented in the architecture doc).
243
277
 
244
278
  ```bash
245
279
  npx ms auth status
280
+ npx ms auth status --json
281
+ ```
282
+
283
+ ### `auth switch`
284
+
285
+ Choose which cached account other CLI commands run as. With a single account it's a no-op confirmation. With multiple accounts: in interactive mode, prompts you to pick one; in non-interactive mode (CI, piped stdin) or under `--json`, `--account` is required (JSON callers can't answer the picker).
286
+
287
+ ```bash
288
+ npx ms auth switch
289
+ npx ms auth switch --account alice@contoso.com
290
+ npx ms auth switch --account alice@contoso.com --json
246
291
  ```
247
292
 
248
293
  ### `auth logout`
249
294
 
250
- Remove the cached Entra ID account.
295
+ Clear all cached credentials. Always removes every cached account and the active-account pointer — there is no selective form. To change which cached account is currently active without logging out, use `auth switch`. Under `--json`, emits `{ success: true, cleared: boolean }`.
251
296
 
252
297
  ```bash
253
298
  npx ms auth logout
299
+ npx ms auth logout --json
254
300
  ```
255
301
 
256
302
  ### `git auth refresh`
@@ -5,7 +5,7 @@ import type { IHttpClient } from '@microsoft/managed-apps-actions';
5
5
  import { type Cloud } from '@microsoft/managed-apps-common/services';
6
6
  import type { CliLogger } from './Logger/CliLogger.js';
7
7
  import type { CliOption } from './Types/Argument.types.js';
8
- import type { IAuthenticationProvider } from './Types/Cli.types.js';
8
+ import type { IAccountManager, IAuthenticationProvider } from './Types/Cli.types.js';
9
9
  import type { ResolvedCommand } from './Types/Command.types.js';
10
10
  export interface IArgumentProvider {
11
11
  addOption(cliOption: CliOption): void;
@@ -20,6 +20,12 @@ export interface IArgumentProvider {
20
20
  handleGlobalHelpOrFlagsAndExit(): void;
21
21
  getOption<T>(key: string, ignorePrompt?: boolean): Promise<T>;
22
22
  getAuthenticationProvider(): IAuthenticationProvider;
23
+ /**
24
+ * Returns the account manager for the current auth mode. Throws `UsageError` when the
25
+ * current mode (service principal, HTTP forward) does not support account management —
26
+ * only interactive MSAL does.
27
+ */
28
+ getAccountManager(): IAccountManager;
23
29
  getHttpClient(): IHttpClient;
24
30
  getTenantIdAsync(): Promise<string | undefined>;
25
31
  getAuthResourceUrl(): string;
@@ -36,6 +42,7 @@ export declare class ArgumentProvider implements IArgumentProvider {
36
42
  private _httpClient;
37
43
  private _logger;
38
44
  private _authenticationProvider;
45
+ private _accountManager?;
39
46
  private _environmentId;
40
47
  private _cloud;
41
48
  private _region;
@@ -47,7 +54,7 @@ export declare class ArgumentProvider implements IArgumentProvider {
47
54
  private _positionalArgs;
48
55
  private _positionalArgNames;
49
56
  private _isParsed;
50
- constructor(_httpClient: IHttpClient, _logger: CliLogger, _authenticationProvider: IAuthenticationProvider);
57
+ constructor(_httpClient: IHttpClient, _logger: CliLogger, _authenticationProvider: IAuthenticationProvider, _accountManager?: IAccountManager | undefined);
51
58
  addSwitch(cliOption: CliOption): void;
52
59
  addSwitches(cliOptions: CliOption[]): void;
53
60
  /**
@@ -63,10 +70,22 @@ export declare class ArgumentProvider implements IArgumentProvider {
63
70
  addOptions(cliOptions: CliOption[]): void;
64
71
  runVerb(): Promise<void>;
65
72
  handleGlobalHelpOrFlagsAndExit(): void;
73
+ /**
74
+ * Detects `--help` requests on nested typed-verb paths the resolver can't
75
+ * leaf-match (e.g. `ms app share link --help` — `link` is a nested typed
76
+ * verb with no handler of its own) and prints the typed verb's flattened
77
+ * subcommand list. Returns true if it handled the request.
78
+ *
79
+ * Skips when the user is asking for help on a path the resolver already
80
+ * fully matched (those paths route through Commander's normal `--help`
81
+ * handling at the leaf level).
82
+ */
83
+ private _tryPrintDeepTypedHelp;
66
84
  getVerb(): string;
67
85
  getResolvedCommand(): ResolvedCommand | null;
68
86
  getOption<T>(key: string, ignorePrompt?: boolean): Promise<T>;
69
87
  getAuthenticationProvider(): IAuthenticationProvider;
88
+ getAccountManager(): IAccountManager;
70
89
  getHttpClient(): IHttpClient;
71
90
  /**
72
91
  * Returns the tenant ID for the authenticated user, acquiring a token first if needed.
@@ -1 +1 @@
1
- {"version":3,"file":"ArgumentProvider.d.ts","sourceRoot":"","sources":["../src/ArgumentProvider.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ArgumentProvider.d.ts","sourceRoot":"","sources":["../src/ArgumentProvider.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,7 @@
1
1
  /*!
2
2
  * Copyright (C) Microsoft Corporation. All rights reserved.
3
3
  */
4
- import { getAuthResource, initializePlayerServices, updateRegion } from '@microsoft/managed-apps-actions';
4
+ import { getAuthResource, initializePlayerServices, updateRegion, } from '@microsoft/managed-apps-actions';
5
5
  import { Clouds, cloudToRegion, } from '@microsoft/managed-apps-common/services';
6
6
  import { Command } from 'commander';
7
7
  import packageJson from '../package.json' with { type: 'json' };
@@ -11,7 +11,7 @@ import { CLI_BINARY_NAME } from './Constants/CliConstants.js';
11
11
  import { COMMAND_TREE } from './Constants/CommandRegistry.js';
12
12
  import { HelpStrings } from './Constants/HelpStrings.js';
13
13
  import { UsageError } from './Errors/CliError.js';
14
- import { buildNounHelpText, buildTypedSubcommandHelpText, buildVerbDescriptionTable, } from './Utils/BuildVerbDescriptionTable.js';
14
+ import { buildNounHelpText, buildPathTypedHelpText, buildTypedSubcommandHelpText, buildVerbDescriptionTable, } from './Utils/BuildVerbDescriptionTable.js';
15
15
  import { printInfo } from './Utils/ConsoleOutput.js';
16
16
  import { cliEnvVarFullName, getCliEnvVar } from './Utils/EnvVars.js';
17
17
  import { hasTypedSubcommands, isKnownNoun, resolveCommand } from './Utils/ResolveCommand.js';
@@ -20,6 +20,7 @@ export class ArgumentProvider {
20
20
  _httpClient;
21
21
  _logger;
22
22
  _authenticationProvider;
23
+ _accountManager;
23
24
  _environmentId;
24
25
  _cloud;
25
26
  _region;
@@ -31,10 +32,11 @@ export class ArgumentProvider {
31
32
  _positionalArgs = [];
32
33
  _positionalArgNames = [];
33
34
  _isParsed = false;
34
- constructor(_httpClient, _logger, _authenticationProvider) {
35
+ constructor(_httpClient, _logger, _authenticationProvider, _accountManager) {
35
36
  this._httpClient = _httpClient;
36
37
  this._logger = _logger;
37
38
  this._authenticationProvider = _authenticationProvider;
39
+ this._accountManager = _accountManager;
38
40
  // Resolve command using multi-token matching against the command registry
39
41
  this._resolvedCommand = resolveCommand(process.argv, COMMAND_TREE);
40
42
  if (this._resolvedCommand) {
@@ -180,6 +182,13 @@ export class ArgumentProvider {
180
182
  this._isParsed = true;
181
183
  return;
182
184
  }
185
+ // Deep typed-verb help: when the user has drilled past the resolver's leaf
186
+ // match (e.g. `ms app share link --help` resolves to the `share` hybrid
187
+ // parent + extra positional args), surface the deeper typed verb's
188
+ // subcommand list rather than letting Commander print the parent's help.
189
+ if (this._tryPrintDeepTypedHelp()) {
190
+ process.exit(0);
191
+ }
183
192
  // If no command resolved, check for partial matches that should show contextual help
184
193
  if (!this._resolvedCommand) {
185
194
  const secondToken = process.argv[3];
@@ -209,6 +218,34 @@ export class ArgumentProvider {
209
218
  throw new UsageError(`Unknown command '${firstToken}'. Run "${CLI_BINARY_NAME} --help" for available commands.`);
210
219
  }
211
220
  }
221
+ /**
222
+ * Detects `--help` requests on nested typed-verb paths the resolver can't
223
+ * leaf-match (e.g. `ms app share link --help` — `link` is a nested typed
224
+ * verb with no handler of its own) and prints the typed verb's flattened
225
+ * subcommand list. Returns true if it handled the request.
226
+ *
227
+ * Skips when the user is asking for help on a path the resolver already
228
+ * fully matched (those paths route through Commander's normal `--help`
229
+ * handling at the leaf level).
230
+ */
231
+ _tryPrintDeepTypedHelp() {
232
+ const argv = process.argv.slice(2);
233
+ const helpIdx = argv.findIndex((t) => t === '--help' || t === '-h');
234
+ if (helpIdx === -1)
235
+ return false;
236
+ const pathTokens = argv.slice(0, helpIdx).filter((t) => !t.startsWith('-'));
237
+ // Bail when the resolver consumed every non-flag path token already —
238
+ // those are leaf matches (or noun-only / typed-parent help, both of
239
+ // which are handled by the existing branches below).
240
+ if (this._resolvedCommand && pathTokens.length <= this._resolvedCommand.tokensConsumed) {
241
+ return false;
242
+ }
243
+ const helpText = buildPathTypedHelpText(pathTokens);
244
+ if (!helpText)
245
+ return false;
246
+ printInfo(helpText);
247
+ return true;
248
+ }
212
249
  getVerb() {
213
250
  if (!this._resolvedCommand) {
214
251
  throw new UsageError(`No command specified. Run "${CLI_BINARY_NAME} --help" for available commands.`);
@@ -253,6 +290,13 @@ export class ArgumentProvider {
253
290
  getAuthenticationProvider() {
254
291
  return this._authenticationProvider;
255
292
  }
293
+ getAccountManager() {
294
+ if (!this._accountManager) {
295
+ throw new UsageError(`Account management commands (auth login/logout/status/switch) are only available in interactive mode. ` +
296
+ `They cannot be used with service principal or HTTP forward authentication.`);
297
+ }
298
+ return this._accountManager;
299
+ }
256
300
  getHttpClient() {
257
301
  return this._httpClient;
258
302
  }
@@ -1 +1 @@
1
- {"version":3,"file":"ArgumentProvider.js","sourceRoot":"","sources":["../src/ArgumentProvider.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ArgumentProvider.js","sourceRoot":"","sources":["../src/ArgumentProvider.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,24 @@
1
+ /*!
2
+ * Copyright (C) Microsoft Corporation. All rights reserved.
3
+ */
4
+ export interface ActiveAccount {
5
+ homeAccountId: string;
6
+ username: string;
7
+ }
8
+ /**
9
+ * Persists which cached MSAL account the CLI should treat as "active" — the one
10
+ * silent token acquisition will target when 2+ accounts are cached.
11
+ *
12
+ * Storage is a tiny JSON file in the auth cache directory. The class takes the
13
+ * directory in its constructor so tests can point it at a temp directory; the
14
+ * default is `~/.ms-cli/cache/auth/`.
15
+ */
16
+ export declare class ActiveAccountStore {
17
+ private readonly _cacheDir;
18
+ private readonly _filePath;
19
+ constructor(_cacheDir?: string);
20
+ read(): ActiveAccount | undefined;
21
+ write(account: ActiveAccount): void;
22
+ clear(): void;
23
+ }
24
+ //# sourceMappingURL=ActiveAccountStore.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ActiveAccountStore.d.ts","sourceRoot":"","sources":["../../src/Authentication/ActiveAccountStore.ts"],"names":[],"mappings":"AAAA;;GAEG;AAOH,MAAM,WAAW,aAAa;IAC5B,aAAa,EAAE,MAAM,CAAC;IACtB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAID;;;;;;;GAOG;AACH,qBAAa,kBAAkB;IAGV,OAAO,CAAC,QAAQ,CAAC,SAAS;IAF7C,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAS;gBAEC,SAAS,GAAE,MAA6B;IAIrE,IAAI,IAAI,aAAa,GAAG,SAAS;IAmBjC,KAAK,CAAC,OAAO,EAAE,aAAa,GAAG,IAAI;IAQnC,KAAK,IAAI,IAAI;CAKrB"}
@@ -0,0 +1,54 @@
1
+ /*!
2
+ * Copyright (C) Microsoft Corporation. All rights reserved.
3
+ */
4
+ import * as fs from 'fs';
5
+ import * as path from 'path';
6
+ import { AUTH_CACHE_DIRECTORY } from '../Constants.js';
7
+ const ACTIVE_ACCOUNT_FILE_NAME = 'active-account.json';
8
+ /**
9
+ * Persists which cached MSAL account the CLI should treat as "active" — the one
10
+ * silent token acquisition will target when 2+ accounts are cached.
11
+ *
12
+ * Storage is a tiny JSON file in the auth cache directory. The class takes the
13
+ * directory in its constructor so tests can point it at a temp directory; the
14
+ * default is `~/.ms-cli/cache/auth/`.
15
+ */
16
+ export class ActiveAccountStore {
17
+ _cacheDir;
18
+ _filePath;
19
+ constructor(_cacheDir = AUTH_CACHE_DIRECTORY) {
20
+ this._cacheDir = _cacheDir;
21
+ this._filePath = path.join(this._cacheDir, ACTIVE_ACCOUNT_FILE_NAME);
22
+ }
23
+ read() {
24
+ if (!fs.existsSync(this._filePath))
25
+ return undefined;
26
+ try {
27
+ const raw = fs.readFileSync(this._filePath, 'utf-8');
28
+ const parsed = JSON.parse(raw);
29
+ if (typeof parsed.homeAccountId === 'string' &&
30
+ typeof parsed.username === 'string' &&
31
+ parsed.homeAccountId.length > 0) {
32
+ return { homeAccountId: parsed.homeAccountId, username: parsed.username };
33
+ }
34
+ return undefined;
35
+ }
36
+ catch {
37
+ // Corrupted file is treated as "no active account" — the next login or switch overwrites it.
38
+ return undefined;
39
+ }
40
+ }
41
+ write(account) {
42
+ fs.mkdirSync(this._cacheDir, { recursive: true });
43
+ // Atomic write: write to a tmp file then rename, so a parallel read never sees a torn file.
44
+ const tmp = `${this._filePath}.${process.pid}.tmp`;
45
+ fs.writeFileSync(tmp, JSON.stringify(account, null, 2), 'utf-8');
46
+ fs.renameSync(tmp, this._filePath);
47
+ }
48
+ clear() {
49
+ if (fs.existsSync(this._filePath)) {
50
+ fs.rmSync(this._filePath, { force: true });
51
+ }
52
+ }
53
+ }
54
+ //# sourceMappingURL=ActiveAccountStore.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ActiveAccountStore.js","sourceRoot":"","sources":["../../src/Authentication/ActiveAccountStore.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,MAAM,IAAI,CAAC;AACzB,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAE7B,OAAO,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAC;AAOpD,MAAM,wBAAwB,GAAG,qBAAqB,CAAC;AAEvD;;;;;;;GAOG;AACH,MAAM,OAAO,kBAAkB;IAGO;IAFnB,SAAS,CAAS;IAEnC,YAAoC,YAAoB,oBAAoB;QAAxC,cAAS,GAAT,SAAS,CAA+B;QAC1E,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,wBAAwB,CAAC,CAAC;IACvE,CAAC;IAEM,IAAI;QACT,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC;YAAE,OAAO,SAAS,CAAC;QACrD,IAAI,CAAC;YACH,MAAM,GAAG,GAAG,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;YACrD,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAA2B,CAAC;YACzD,IACE,OAAO,MAAM,CAAC,aAAa,KAAK,QAAQ;gBACxC,OAAO,MAAM,CAAC,QAAQ,KAAK,QAAQ;gBACnC,MAAM,CAAC,aAAa,CAAC,MAAM,GAAG,CAAC,EAC/B,CAAC;gBACD,OAAO,EAAE,aAAa,EAAE,MAAM,CAAC,aAAa,EAAE,QAAQ,EAAE,MAAM,CAAC,QAAQ,EAAE,CAAC;YAC5E,CAAC;YACD,OAAO,SAAS,CAAC;QACnB,CAAC;QAAC,MAAM,CAAC;YACP,6FAA6F;YAC7F,OAAO,SAAS,CAAC;QACnB,CAAC;IACH,CAAC;IAEM,KAAK,CAAC,OAAsB;QACjC,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAClD,4FAA4F;QAC5F,MAAM,GAAG,GAAG,GAAG,IAAI,CAAC,SAAS,IAAI,OAAO,CAAC,GAAG,MAAM,CAAC;QACnD,EAAE,CAAC,aAAa,CAAC,GAAG,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;QACjE,EAAE,CAAC,UAAU,CAAC,GAAG,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;IACrC,CAAC;IAEM,KAAK;QACV,IAAI,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC;YAClC,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;QAC7C,CAAC;IACH,CAAC;CACF"}
@@ -2,17 +2,71 @@
2
2
  * Copyright (C) Microsoft Corporation. All rights reserved.
3
3
  */
4
4
  import type { Region } from '@microsoft/managed-apps-common/services';
5
- import type { IAuthenticationProvider } from '../Types/Cli.types.js';
6
- export declare class NodeMsalAuthenticationProvider implements IAuthenticationProvider {
5
+ import type { CachedAccount, IAccountManager, IAuthenticationProvider } from '../Types/Cli.types.js';
6
+ /**
7
+ * Interactive MSAL provider. Implements both the token surface (`IAuthenticationProvider`)
8
+ * and the account-management surface (`IAccountManager`). Built on `@azure/msal-node`'s
9
+ * `PublicClientApplication` with the `msal-node-extensions` DPAPI-encrypted persistent
10
+ * cache.
11
+ */
12
+ export declare class NodeMsalAuthenticationProvider implements IAuthenticationProvider, IAccountManager {
7
13
  private _msalClient;
8
14
  private _tenantId;
9
15
  private _region;
10
- constructor();
16
+ private readonly _activeStore;
17
+ private readonly _cacheDirectory;
18
+ /**
19
+ * `cacheDirectory` defaults to the production auth cache (`~/.ms-cli/cache/auth/`).
20
+ * Tests pass a tmpdir so they can verify cache-write/clear behavior without touching
21
+ * the user's real cache.
22
+ */
23
+ constructor(cacheDirectory?: string);
11
24
  initAsync(region: Region): Promise<void>;
12
25
  getAccessTokenForResource(resource: string, loginHint?: string): Promise<string>;
13
26
  getUserTenantId(): string | undefined;
14
27
  getCachedAccountAsync(): Promise<string | undefined>;
28
+ listCachedAccountsAsync(): Promise<CachedAccount[]>;
29
+ setActiveAccountAsync(accountKey: string): Promise<CachedAccount>;
30
+ loginInteractiveAsync(resource: string, loginHint?: string): Promise<CachedAccount>;
31
+ clearCacheAsync(): Promise<boolean>;
32
+ private _getAccounts;
33
+ /**
34
+ * Case-insensitive lookup against `homeAccountId` first, then `username`. The two-field
35
+ * search lets callers pass either form without a discriminator. Username has a known
36
+ * collision shape: the same UPN can appear in multiple tenants for guest accounts; when
37
+ * the caller might hit that, prefer `homeAccountId`.
38
+ */
39
+ private _findAccount;
40
+ /**
41
+ * Pure. Resolves which cached account should be treated as active:
42
+ * 0 accounts → undefined
43
+ * 1 account → that one (regardless of pointer state)
44
+ * 2+ + valid active pointer → the matching account
45
+ * 2+ + missing or stale active pointer → undefined (caller decides how to handle)
46
+ */
47
+ private _pickActiveAccount;
48
+ /**
49
+ * Idempotent: writes the active-account pointer only when the persisted value doesn't
50
+ * already match. Called from token-acquisition success paths so that a fresh 3.x → 5.x
51
+ * upgrade (single account in cache, no pointer file yet) migrates implicitly on first
52
+ * use, without needing an explicit migration step.
53
+ */
54
+ private _ensureActivePointer;
15
55
  private _acquireTokenInternal;
56
+ /**
57
+ * Single code path for every interactive sign-in: `auth login`, the 0-accounts fresh-login
58
+ * branch, and the `InteractionRequiredAuthError` fallback all route through here. Keeps
59
+ * the "open browser → record tenant → persist active pointer" sequence in one place so
60
+ * future changes (telemetry, retry logic, etc.) don't have to be replicated three times.
61
+ * Uses the idempotent `_ensureActivePointer` so an unchanged-active scenario doesn't
62
+ * rewrite the pointer file unnecessarily.
63
+ *
64
+ * `options.prompt` forwards to MSAL's `prompt` parameter. Callers opt in to it only when
65
+ * they need to override the IdP's default behavior — `auth login` passes `'select_account'`
66
+ * so users can add a second account; the silent-fallback paths leave it unset so token
67
+ * expiry doesn't pop a picker the user didn't ask for.
68
+ */
69
+ private _signInInteractiveAndPersist;
16
70
  private _getInteractiveLoginRequest;
17
71
  }
18
72
  //# sourceMappingURL=NodeMsalAuthenticationProvider.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"NodeMsalAuthenticationProvider.d.ts","sourceRoot":"","sources":["../../src/Authentication/NodeMsalAuthenticationProvider.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,yCAAyC,CAAC;AAKtE,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,oBAAoB,CAAC;AAGlE,qBAAa,8BAA+B,YAAW,uBAAuB;IAC5E,OAAO,CAAC,WAAW,CAAsC;IACzD,OAAO,CAAC,SAAS,CAAqB;IACtC,OAAO,CAAC,OAAO,CAAqB;;IAIvB,SAAS,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IA4BxC,yBAAyB,CAAC,QAAQ,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAMtF,eAAe,IAAI,MAAM,GAAG,SAAS;IAI/B,qBAAqB,IAAI,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC;YAMnD,qBAAqB;IAwCnC,OAAO,CAAC,2BAA2B;CAgBpC"}
1
+ {"version":3,"file":"NodeMsalAuthenticationProvider.d.ts","sourceRoot":"","sources":["../../src/Authentication/NodeMsalAuthenticationProvider.ts"],"names":[],"mappings":"AAAA;;GAEG;AAWH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,yCAAyC,CAAC;AAQtE,OAAO,KAAK,EAAE,aAAa,EAAE,eAAe,EAAE,uBAAuB,EAAE,MAAM,oBAAoB,CAAC;AAIlG;;;;;GAKG;AACH,qBAAa,8BAA+B,YAAW,uBAAuB,EAAE,eAAe;IAC7F,OAAO,CAAC,WAAW,CAAsC;IACzD,OAAO,CAAC,SAAS,CAAqB;IACtC,OAAO,CAAC,OAAO,CAAqB;IACpC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAqB;IAClD,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAS;IAEzC;;;;OAIG;gBACgB,cAAc,GAAE,MAA6B;IAKnD,SAAS,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IA8BxC,yBAAyB,CAAC,QAAQ,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAMtF,eAAe,IAAI,MAAM,GAAG,SAAS;IAI/B,qBAAqB,IAAI,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC;IAOpD,uBAAuB,IAAI,OAAO,CAAC,aAAa,EAAE,CAAC;IAWnD,qBAAqB,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC;IAYjE,qBAAqB,CAAC,QAAQ,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC;IAyBnF,eAAe,IAAI,OAAO,CAAC,OAAO,CAAC;YAUlC,YAAY;IAkB1B;;;;;OAKG;IACH,OAAO,CAAC,YAAY;IAQpB;;;;;;OAMG;IACH,OAAO,CAAC,kBAAkB;IAQ1B;;;;;OAKG;IACH,OAAO,CAAC,oBAAoB;YASd,qBAAqB;IAyCnC;;;;;;;;;;;;OAYG;YACW,4BAA4B;IAkB1C,OAAO,CAAC,2BAA2B;CAgBpC"}