@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.
Files changed (192) hide show
  1. package/README.md +65 -24
  2. package/dist/ArgumentProvider.d.ts +10 -2
  3. package/dist/ArgumentProvider.d.ts.map +1 -1
  4. package/dist/ArgumentProvider.js +11 -2
  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/EnvironmentVariableAuthenticationProvider.d.ts +26 -0
  11. package/dist/Authentication/EnvironmentVariableAuthenticationProvider.d.ts.map +1 -0
  12. package/dist/Authentication/EnvironmentVariableAuthenticationProvider.js +31 -0
  13. package/dist/Authentication/EnvironmentVariableAuthenticationProvider.js.map +1 -0
  14. package/dist/Authentication/NodeMsalAuthenticationProvider.d.ts +57 -3
  15. package/dist/Authentication/NodeMsalAuthenticationProvider.d.ts.map +1 -1
  16. package/dist/Authentication/NodeMsalAuthenticationProvider.js +187 -27
  17. package/dist/Authentication/NodeMsalAuthenticationProvider.js.map +1 -1
  18. package/dist/Cli.d.ts.map +1 -1
  19. package/dist/Cli.js +74 -23
  20. package/dist/Cli.js.map +1 -1
  21. package/dist/CliUtils.d.ts +2 -8
  22. package/dist/CliUtils.d.ts.map +1 -1
  23. package/dist/CliUtils.js.map +1 -1
  24. package/dist/Constants/CommandRegistry.d.ts.map +1 -1
  25. package/dist/Constants/CommandRegistry.js +32 -6
  26. package/dist/Constants/CommandRegistry.js.map +1 -1
  27. package/dist/Constants/HelpStrings.d.ts +39 -3
  28. package/dist/Constants/HelpStrings.d.ts.map +1 -1
  29. package/dist/Constants/HelpStrings.js +63 -10
  30. package/dist/Constants/HelpStrings.js.map +1 -1
  31. package/dist/Constants.d.ts +2 -0
  32. package/dist/Constants.d.ts.map +1 -1
  33. package/dist/Constants.js +2 -0
  34. package/dist/Constants.js.map +1 -1
  35. package/dist/Errors/GitHubErrorMap.d.ts +39 -0
  36. package/dist/Errors/GitHubErrorMap.d.ts.map +1 -0
  37. package/dist/Errors/GitHubErrorMap.js +187 -0
  38. package/dist/Errors/GitHubErrorMap.js.map +1 -0
  39. package/dist/HttpClient/CliHttpClient.d.ts +8 -3
  40. package/dist/HttpClient/CliHttpClient.d.ts.map +1 -1
  41. package/dist/HttpClient/CliHttpClient.js +33 -13
  42. package/dist/HttpClient/CliHttpClient.js.map +1 -1
  43. package/dist/Logger/ConsoleWriter.d.ts.map +1 -1
  44. package/dist/Logger/ConsoleWriter.js +7 -7
  45. package/dist/Logger/ConsoleWriter.js.map +1 -1
  46. package/dist/Middletier/FunctionsBundler.d.ts +17 -0
  47. package/dist/Middletier/FunctionsBundler.d.ts.map +1 -0
  48. package/dist/Middletier/FunctionsBundler.js +165 -0
  49. package/dist/Middletier/FunctionsBundler.js.map +1 -0
  50. package/dist/Middletier/PackFunctions.d.ts +52 -0
  51. package/dist/Middletier/PackFunctions.d.ts.map +1 -0
  52. package/dist/Middletier/PackFunctions.js +122 -0
  53. package/dist/Middletier/PackFunctions.js.map +1 -0
  54. package/dist/Types/Cli.types.d.ts +42 -1
  55. package/dist/Types/Cli.types.d.ts.map +1 -1
  56. package/dist/Types/Command.types.d.ts +1 -1
  57. package/dist/Types/Command.types.d.ts.map +1 -1
  58. package/dist/Utils/ConsoleOutput.d.ts +6 -0
  59. package/dist/Utils/ConsoleOutput.d.ts.map +1 -1
  60. package/dist/Utils/ConsoleOutput.js +23 -12
  61. package/dist/Utils/ConsoleOutput.js.map +1 -1
  62. package/dist/Utils/EnvVars.d.ts +1 -1
  63. package/dist/Utils/EnvVars.d.ts.map +1 -1
  64. package/dist/Utils/EnvVars.js.map +1 -1
  65. package/dist/Utils/EnvironmentRoutingUtils.d.ts +8 -0
  66. package/dist/Utils/EnvironmentRoutingUtils.d.ts.map +1 -0
  67. package/dist/Utils/EnvironmentRoutingUtils.js +45 -0
  68. package/dist/Utils/EnvironmentRoutingUtils.js.map +1 -0
  69. package/dist/Utils/GitHubDcfFlow.d.ts +59 -0
  70. package/dist/Utils/GitHubDcfFlow.d.ts.map +1 -0
  71. package/dist/Utils/GitHubDcfFlow.js +165 -0
  72. package/dist/Utils/GitHubDcfFlow.js.map +1 -0
  73. package/dist/Utils/GitUtils.d.ts +5 -0
  74. package/dist/Utils/GitUtils.d.ts.map +1 -1
  75. package/dist/Utils/GitUtils.js +15 -0
  76. package/dist/Utils/GitUtils.js.map +1 -1
  77. package/dist/Utils/Paging.d.ts.map +1 -1
  78. package/dist/Utils/Paging.js +4 -4
  79. package/dist/Utils/Paging.js.map +1 -1
  80. package/dist/Utils/RepoUrl.d.ts +13 -0
  81. package/dist/Utils/RepoUrl.d.ts.map +1 -0
  82. package/dist/Utils/RepoUrl.js +6 -0
  83. package/dist/Utils/RepoUrl.js.map +1 -0
  84. package/dist/Utils/Spinner.d.ts +9 -1
  85. package/dist/Utils/Spinner.d.ts.map +1 -1
  86. package/dist/Utils/Spinner.js +25 -5
  87. package/dist/Utils/Spinner.js.map +1 -1
  88. package/dist/Verbs/AddAction.d.ts.map +1 -1
  89. package/dist/Verbs/AddAction.js +12 -41
  90. package/dist/Verbs/AddAction.js.map +1 -1
  91. package/dist/Verbs/AddConnector.d.ts +24 -0
  92. package/dist/Verbs/AddConnector.d.ts.map +1 -0
  93. package/dist/Verbs/AddConnector.js +156 -0
  94. package/dist/Verbs/AddConnector.js.map +1 -0
  95. package/dist/Verbs/AddConnectorFlows.d.ts +72 -0
  96. package/dist/Verbs/AddConnectorFlows.d.ts.map +1 -0
  97. package/dist/Verbs/AddConnectorFlows.js +198 -0
  98. package/dist/Verbs/AddConnectorFlows.js.map +1 -0
  99. package/dist/Verbs/AddDataSource.js +1 -1
  100. package/dist/Verbs/AddDataSource.js.map +1 -1
  101. package/dist/Verbs/AddFlow.d.ts.map +1 -1
  102. package/dist/Verbs/AddFlow.js +3 -2
  103. package/dist/Verbs/AddFlow.js.map +1 -1
  104. package/dist/Verbs/AddTable.d.ts.map +1 -1
  105. package/dist/Verbs/AddTable.js +15 -100
  106. package/dist/Verbs/AddTable.js.map +1 -1
  107. package/dist/Verbs/AuthStatus.d.ts.map +1 -1
  108. package/dist/Verbs/AuthStatus.js +34 -6
  109. package/dist/Verbs/AuthStatus.js.map +1 -1
  110. package/dist/Verbs/AuthSwitch.d.ts +6 -0
  111. package/dist/Verbs/AuthSwitch.d.ts.map +1 -0
  112. package/dist/Verbs/AuthSwitch.js +67 -0
  113. package/dist/Verbs/AuthSwitch.js.map +1 -0
  114. package/dist/Verbs/ConnectorHelpers.d.ts +54 -1
  115. package/dist/Verbs/ConnectorHelpers.d.ts.map +1 -1
  116. package/dist/Verbs/ConnectorHelpers.js +217 -16
  117. package/dist/Verbs/ConnectorHelpers.js.map +1 -1
  118. package/dist/Verbs/CreateMaafApp.d.ts +26 -1
  119. package/dist/Verbs/CreateMaafApp.d.ts.map +1 -1
  120. package/dist/Verbs/CreateMaafApp.js +310 -135
  121. package/dist/Verbs/CreateMaafApp.js.map +1 -1
  122. package/dist/Verbs/DeployMaafApp.d.ts.map +1 -1
  123. package/dist/Verbs/DeployMaafApp.js +4 -0
  124. package/dist/Verbs/DeployMaafApp.js.map +1 -1
  125. package/dist/Verbs/Dev.js +5 -5
  126. package/dist/Verbs/Dev.js.map +1 -1
  127. package/dist/Verbs/FindDataverseApi.js +15 -15
  128. package/dist/Verbs/FindDataverseApi.js.map +1 -1
  129. package/dist/Verbs/GetSettings.d.ts +1 -1
  130. package/dist/Verbs/GetSettings.js +1 -1
  131. package/dist/Verbs/Init.d.ts.map +1 -1
  132. package/dist/Verbs/Init.js +129 -61
  133. package/dist/Verbs/Init.js.map +1 -1
  134. package/dist/Verbs/ListConnectors.d.ts.map +1 -1
  135. package/dist/Verbs/ListConnectors.js +4 -2
  136. package/dist/Verbs/ListConnectors.js.map +1 -1
  137. package/dist/Verbs/ListDatasets.d.ts.map +1 -1
  138. package/dist/Verbs/ListDatasets.js +5 -0
  139. package/dist/Verbs/ListDatasets.js.map +1 -1
  140. package/dist/Verbs/ListSqlStoredProcedures.d.ts.map +1 -1
  141. package/dist/Verbs/ListSqlStoredProcedures.js +5 -0
  142. package/dist/Verbs/ListSqlStoredProcedures.js.map +1 -1
  143. package/dist/Verbs/ListTables.d.ts.map +1 -1
  144. package/dist/Verbs/ListTables.js +5 -0
  145. package/dist/Verbs/ListTables.js.map +1 -1
  146. package/dist/Verbs/Login.d.ts.map +1 -1
  147. package/dist/Verbs/Login.js +16 -13
  148. package/dist/Verbs/Login.js.map +1 -1
  149. package/dist/Verbs/Logout.d.ts.map +1 -1
  150. package/dist/Verbs/Logout.js +19 -13
  151. package/dist/Verbs/Logout.js.map +1 -1
  152. package/dist/Verbs/MaafAppPermissions.d.ts +26 -6
  153. package/dist/Verbs/MaafAppPermissions.d.ts.map +1 -1
  154. package/dist/Verbs/MaafAppPermissions.js +193 -28
  155. package/dist/Verbs/MaafAppPermissions.js.map +1 -1
  156. package/dist/Verbs/Pack.d.ts +6 -6
  157. package/dist/Verbs/Pack.d.ts.map +1 -1
  158. package/dist/Verbs/Pack.js +80 -12
  159. package/dist/Verbs/Pack.js.map +1 -1
  160. package/dist/Verbs/RefreshDataSource.d.ts.map +1 -1
  161. package/dist/Verbs/RefreshDataSource.js +4 -3
  162. package/dist/Verbs/RefreshDataSource.js.map +1 -1
  163. package/dist/Verbs/RefreshGitAuth.d.ts +6 -0
  164. package/dist/Verbs/RefreshGitAuth.d.ts.map +1 -0
  165. package/dist/Verbs/RefreshGitAuth.js +153 -0
  166. package/dist/Verbs/RefreshGitAuth.js.map +1 -0
  167. package/dist/Verbs/RemoveFlow.d.ts.map +1 -1
  168. package/dist/Verbs/RemoveFlow.js +4 -3
  169. package/dist/Verbs/RemoveFlow.js.map +1 -1
  170. package/dist/Verbs/SetSetting.d.ts +1 -1
  171. package/dist/Verbs/SetSetting.js +1 -1
  172. package/dist/Verbs/VerbConstants.d.ts +72 -16
  173. package/dist/Verbs/VerbConstants.d.ts.map +1 -1
  174. package/dist/Verbs/VerbConstants.js +64 -16
  175. package/dist/Verbs/VerbConstants.js.map +1 -1
  176. package/dist/Verbs/index.d.ts +3 -0
  177. package/dist/Verbs/index.d.ts.map +1 -1
  178. package/dist/Verbs/index.js +3 -0
  179. package/dist/Verbs/index.js.map +1 -1
  180. package/package.json +8 -8
  181. package/dist/Authentication/OrchardAuthenticationProvider.d.ts +0 -13
  182. package/dist/Authentication/OrchardAuthenticationProvider.d.ts.map +0 -1
  183. package/dist/Authentication/OrchardAuthenticationProvider.js +0 -30
  184. package/dist/Authentication/OrchardAuthenticationProvider.js.map +0 -1
  185. package/dist/HttpClient/OrchardProxy.d.ts +0 -11
  186. package/dist/HttpClient/OrchardProxy.d.ts.map +0 -1
  187. package/dist/HttpClient/OrchardProxy.js +0 -25
  188. package/dist/HttpClient/OrchardProxy.js.map +0 -1
  189. package/dist/HttpClient/Proxy.d.ts +0 -7
  190. package/dist/HttpClient/Proxy.d.ts.map +0 -1
  191. package/dist/HttpClient/Proxy.js +0 -5
  192. package/dist/HttpClient/Proxy.js.map +0 -1
@@ -0,0 +1,198 @@
1
+ /*!
2
+ * Copyright (C) Microsoft Corporation. All rights reserved.
3
+ */
4
+ import { addConnectorActionAsync, addConnectorTableAsync, AllActionsBlockedError, getConnectorActionPolicy, getPlayerServiceConfig, listDatasetsAsync, listTablesAsync, } from '@microsoft/managed-apps-actions';
5
+ import { getCliLogger, getSettings } from '../CliSettings.js';
6
+ import { promptSelectOrInput } from '../CliUtils.js';
7
+ import { CLI_BINARY_NAME } from '../Constants/CliConstants.js';
8
+ import { UsageError } from '../Errors/CliError.js';
9
+ import { printInfo, printSuccess, printTable } from '../Utils/ConsoleOutput.js';
10
+ import { requestCliUserConsentAsync, resolveConnectionInteractivelyAsync } from './ConnectorHelpers.js';
11
+ /**
12
+ * Runs the connection → dataset → table → addConnectorTableAsync flow.
13
+ * Caller must have already verified the connector exists, passed DLP, and
14
+ * supports tabular.
15
+ */
16
+ export async function runAddTableFlowAsync(args) {
17
+ const { argumentProvider, connector, apiId, connectionIdFlag, datasetFlag, tableFlag, skipCodegen, useV1Codegen, } = args;
18
+ const settings = getSettings();
19
+ const { fileConfig, cliFs } = settings;
20
+ const playerServiceConfig = getPlayerServiceConfig();
21
+ const authProvider = argumentProvider.getAuthenticationProvider();
22
+ const logger = getCliLogger();
23
+ const localFilePaths = {
24
+ appConfigPath: fileConfig.appConfigPath,
25
+ schemaPath: fileConfig.schemaPath,
26
+ codeGenPath: fileConfig.codeGenPath,
27
+ };
28
+ const baseContext = {
29
+ vfs: cliFs,
30
+ authProvider,
31
+ httpClient: argumentProvider.getHttpClient(),
32
+ region: playerServiceConfig.region,
33
+ environmentName: playerServiceConfig.environmentName,
34
+ localFilePaths,
35
+ logger,
36
+ };
37
+ // ── Step 1: Connection resolution ─────────────────────────────────────────
38
+ let connectionId = connectionIdFlag;
39
+ if (!connectionId) {
40
+ connectionId = await resolveConnectionInteractivelyAsync({
41
+ argumentProvider,
42
+ apiId,
43
+ connector,
44
+ });
45
+ }
46
+ // ── Step 1b: Request user consent on the resolved connection ─────────────
47
+ await requestCliUserConsentAsync({ apiId, connectionId });
48
+ // ── Step 2: Dataset resolution ────────────────────────────────────────────
49
+ let dataset = datasetFlag;
50
+ if (!dataset) {
51
+ const datasetsCtx = {
52
+ ...baseContext,
53
+ actionsParams: { apiId, connectionId },
54
+ };
55
+ const { value: datasets } = await listDatasetsAsync(datasetsCtx);
56
+ if (!settings.interactive) {
57
+ printTable({
58
+ title: `Available datasets for ${connector.properties.displayName ?? apiId}`,
59
+ columns: [{ header: 'Display Name', maxWidth: 40 }, { header: 'Dataset Name' }],
60
+ rows: datasets.map((d) => [d.DisplayName || d.Name, d.Name]),
61
+ emptyMessage: 'No datasets found for this connection.',
62
+ totalLabel: 'dataset(s) found',
63
+ });
64
+ throw new UsageError(`Re-run with --dataset <name> or -d <name>.`);
65
+ }
66
+ dataset = await promptSelectOrInput({
67
+ message: 'Select a dataset:',
68
+ options: datasets.map((d) => ({
69
+ value: d.Name,
70
+ label: d.DisplayName || d.Name,
71
+ hint: d.Name,
72
+ })),
73
+ manualPromptMessage: 'Enter dataset name:',
74
+ });
75
+ }
76
+ // ── Step 3: Table resolution ──────────────────────────────────────────────
77
+ let tableName = tableFlag;
78
+ if (!tableName) {
79
+ const tablesCtx = {
80
+ ...baseContext,
81
+ actionsParams: { apiId, connectionId, dataset },
82
+ };
83
+ const { value: tables } = await listTablesAsync(tablesCtx);
84
+ if (!settings.interactive) {
85
+ printTable({
86
+ title: `Available tables in dataset '${dataset}'`,
87
+ columns: [{ header: 'Display Name', maxWidth: 40 }, { header: 'Table Name' }],
88
+ rows: tables.map((t) => [t.DisplayName || t.Name, t.Name]),
89
+ emptyMessage: 'No tables found in this dataset.',
90
+ totalLabel: 'table(s) found',
91
+ });
92
+ throw new UsageError(`Re-run with --table <name> or -t <name>.`);
93
+ }
94
+ tableName = await promptSelectOrInput({
95
+ message: 'Select a table:',
96
+ options: tables.map((t) => ({
97
+ value: t.Name,
98
+ label: t.DisplayName || t.Name,
99
+ hint: t.Name,
100
+ })),
101
+ manualPromptMessage: 'Enter table name:',
102
+ });
103
+ }
104
+ // ── Step 4: Add the table ─────────────────────────────────────────────────
105
+ const context = {
106
+ ...baseContext,
107
+ actionsParams: { apiId, connectionId, dataset, tableName, skipCodegen, useV1Codegen },
108
+ };
109
+ await addConnectorTableAsync(context);
110
+ printSuccess(`Table '${tableName}' from connector '${connector.properties.displayName ?? apiId}' added successfully.`);
111
+ printInfo(`Hint: Run 'npx ${CLI_BINARY_NAME} dev' to test locally, or 'npx ${CLI_BINARY_NAME} push' to deploy.`);
112
+ }
113
+ /**
114
+ * Runs the optional-connection → addConnectorActionAsync flow.
115
+ * Caller must have already verified the connector exists and passed DLP.
116
+ *
117
+ * A connection is only resolved when the connector requires one (multi-auth
118
+ * connectors, or connectors with `allowSharing` metadata). Pure-action
119
+ * connectors that don't need a connection (e.g. some utility connectors)
120
+ * are added without prompting for one.
121
+ *
122
+ * When `policy` is provided, the action-level DLP rules for this connector
123
+ * are passed down to `addConnectorActionAsync`, which filters blocked
124
+ * operations out of the swagger before saving the schema and running
125
+ * codegen. The CLI prints a single info line summarizing what was filtered.
126
+ * If every operation is blocked, the action throws `AllActionsBlockedError`
127
+ * which we translate to a `UsageError`.
128
+ */
129
+ export async function runAddActionFlowAsync(args) {
130
+ const { argumentProvider, connector, apiId, connectionIdFlag, skipCodegen, useV1Codegen, policy } = args;
131
+ const settings = getSettings();
132
+ const { fileConfig, cliFs } = settings;
133
+ const playerServiceConfig = getPlayerServiceConfig();
134
+ const authProvider = argumentProvider.getAuthenticationProvider();
135
+ const logger = getCliLogger();
136
+ // ── Step 1: Does this connector require a connection? ─────────────────────
137
+ const needsConnection = (connector.properties.connectionParameterSets?.values?.length ?? 0) > 0 ||
138
+ connector.properties.metadata?.allowSharing === true;
139
+ // ── Step 2: Connection resolution ─────────────────────────────────────────
140
+ let connectionId = connectionIdFlag;
141
+ if (needsConnection && !connectionId) {
142
+ connectionId = await resolveConnectionInteractivelyAsync({
143
+ argumentProvider,
144
+ apiId,
145
+ connector,
146
+ });
147
+ }
148
+ // ── Step 2b: Request user consent on the resolved connection ──────────────
149
+ if (needsConnection && connectionId) {
150
+ await requestCliUserConsentAsync({ apiId, connectionId });
151
+ }
152
+ // ── Step 3: Compute action-level DLP policy (no-op when policy absent) ────
153
+ const actionPolicy = policy
154
+ ? getConnectorActionPolicy(policy, connector.name ?? apiId)
155
+ : undefined;
156
+ // ── Step 4: Add the connector action ──────────────────────────────────────
157
+ const context = {
158
+ vfs: cliFs,
159
+ authProvider,
160
+ httpClient: argumentProvider.getHttpClient(),
161
+ region: playerServiceConfig.region,
162
+ environmentName: playerServiceConfig.environmentName,
163
+ actionsParams: { apiId, connectionId, skipCodegen, useV1Codegen, actionPolicy },
164
+ localFilePaths: {
165
+ appConfigPath: fileConfig.appConfigPath,
166
+ schemaPath: fileConfig.schemaPath,
167
+ codeGenPath: fileConfig.codeGenPath,
168
+ },
169
+ logger,
170
+ };
171
+ let filterResult;
172
+ try {
173
+ filterResult = await addConnectorActionAsync(context);
174
+ }
175
+ catch (err) {
176
+ if (err instanceof AllActionsBlockedError) {
177
+ // Translate the actions-layer error into a CLI-level usage error so the
178
+ // user sees it as a clean DLP-blocked message rather than a stack.
179
+ throw new UsageError(err.message);
180
+ }
181
+ throw err;
182
+ }
183
+ // Surface the filter result to the user (count only — blocked names go to
184
+ // telemetry via AddConnectorAction.DlpFiltered).
185
+ if (filterResult.filteredCount > 0) {
186
+ printInfo(`Skipped ${filterResult.filteredCount} of ${filterResult.totalCount} actions due to DLP policy.`);
187
+ }
188
+ printSuccess(`Connector '${connector.properties.displayName ?? apiId}' added successfully.`);
189
+ printInfo(`Hint: Run 'npx ${CLI_BINARY_NAME} dev' to test locally, or 'npx ${CLI_BINARY_NAME} push' to deploy.`);
190
+ }
191
+ /**
192
+ * Shared helper to compute whether a connector supports tabular data sources.
193
+ * Case-insensitive to be resilient against service-side casing drift.
194
+ */
195
+ export function isTabularConnector(connector) {
196
+ return connector.properties.capabilities?.some((c) => c.toLowerCase() === 'tabular') ?? false;
197
+ }
198
+ //# sourceMappingURL=AddConnectorFlows.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AddConnectorFlows.js","sourceRoot":"","sources":["../../src/Verbs/AddConnectorFlows.ts"],"names":[],"mappings":"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"}
@@ -58,7 +58,7 @@ export async function addDataSourceAsync(argumentProvider) {
58
58
  };
59
59
  await addDataSourceActionsAsync(dsConfig);
60
60
  printSuccess('Data source added successfully.');
61
- printInfo(`Hint: Run 'npx ${CLI_BINARY_NAME} run' to test locally, or 'npx ${CLI_BINARY_NAME} push' to deploy.`);
61
+ printInfo(`Hint: Run 'npx ${CLI_BINARY_NAME} dev' to test locally, or 'npx ${CLI_BINARY_NAME} deploy' to deploy.`);
62
62
  }
63
63
  function createOptionSchema(argumentProvider) {
64
64
  argumentProvider.setDescription(HelpStrings.app.add.description);
@@ -1 +1 @@
1
- {"version":3,"file":"AddDataSource.js","sourceRoot":"","sources":["../../src/Verbs/AddDataSource.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"AddDataSource.js","sourceRoot":"","sources":["../../src/Verbs/AddDataSource.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"AddFlow.d.ts","sourceRoot":"","sources":["../../src/Verbs/AddFlow.ts"],"names":[],"mappings":"AAAA;;GAEG;AAQH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAO5D;;;;;GAKG;AACH,wBAAsB,YAAY,CAAC,gBAAgB,EAAE,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC,CAyCpF"}
1
+ {"version":3,"file":"AddFlow.d.ts","sourceRoot":"","sources":["../../src/Verbs/AddFlow.ts"],"names":[],"mappings":"AAAA;;GAEG;AAQH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAQ5D;;;;;GAKG;AACH,wBAAsB,YAAY,CAAC,gBAAgB,EAAE,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC,CAyCpF"}
@@ -6,6 +6,7 @@ import { getCliLogger, getSettings } from '../CliSettings.js';
6
6
  import { createDefaultStringOption } from '../CliUtils.js';
7
7
  import { HelpStrings } from '../Constants/HelpStrings.js';
8
8
  import { CliFS } from '../FS/CliFs.js';
9
+ import { printError, printSuccess } from '../Utils/ConsoleOutput.js';
9
10
  import { AddFlowArguments } from './VerbConstants.js';
10
11
  /**
11
12
  * Add a cloud flow to the current app by retrieving its metadata.
@@ -44,10 +45,10 @@ export async function addFlowAsync(argumentProvider) {
44
45
  };
45
46
  const result = await addFlowActionAsync(context);
46
47
  if (result.success) {
47
- console.log('\nFlow added successfully.');
48
+ printSuccess('\nFlow added successfully.');
48
49
  }
49
50
  else {
50
- console.error(`\nFailed to add flow: ${result.error}`);
51
+ printError(`\nFailed to add flow: ${result.error}`);
51
52
  }
52
53
  }
53
54
  function createOptionSchema(argumentProvider) {
@@ -1 +1 @@
1
- {"version":3,"file":"AddFlow.js","sourceRoot":"","sources":["../../src/Verbs/AddFlow.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,EACL,YAAY,IAAI,kBAAkB,EAClC,sBAAsB,GACvB,MAAM,iCAAiC,CAAC;AAGzC,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC3D,OAAO,EAAE,yBAAyB,EAAE,MAAM,aAAa,CAAC;AACxD,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AACvD,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AACpC,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAEnD;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,YAAY,CAAC,gBAAkC;IACnE,MAAM,QAAQ,GAAG,WAAW,EAAE,CAAC;IAC/B,MAAM,EAAE,UAAU,EAAE,GAAG,QAAQ,CAAC;IAChC,kBAAkB,CAAC,gBAAgB,CAAC,CAAC;IACrC,MAAM,gBAAgB,CAAC,OAAO,EAAE,CAAC;IAEjC,MAAM,KAAK,GAAG,IAAI,KAAK,CAAC;QACtB,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE;QAClB,YAAY,EAAE,IAAI;QAClB,aAAa,EAAE,IAAI;KACpB,CAAC,CAAC;IAEH,MAAM,mBAAmB,GAAG,sBAAsB,EAAE,CAAC;IACrD,MAAM,sBAAsB,GAAG,gBAAgB,CAAC,yBAAyB,EAAE,CAAC;IAE5E,MAAM,MAAM,GAAG,MAAM,gBAAgB,CAAC,SAAS,CAAS,QAAQ,CAAC,CAAC;IAElE,MAAM,OAAO,GAAmB;QAC9B,GAAG,EAAE,KAAK;QACV,YAAY,EAAE,sBAAsB;QACpC,UAAU,EAAE,gBAAgB,CAAC,aAAa,EAAE;QAC5C,MAAM,EAAE,mBAAmB,CAAC,MAAM;QAClC,eAAe,EAAE,mBAAmB,CAAC,eAAe;QACpD,aAAa,EAAE;YACb,MAAM;SACP;QACD,cAAc,EAAE;YACd,aAAa,EAAE,UAAU,CAAC,aAAa;YACvC,UAAU,EAAE,UAAU,CAAC,UAAU;YACjC,WAAW,EAAE,UAAU,CAAC,WAAW;SACpC;QACD,MAAM,EAAE,YAAY,EAAE;KACvB,CAAC;IAEF,MAAM,MAAM,GAAG,MAAM,kBAAkB,CAAC,OAAO,CAAC,CAAC;IAEjD,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;QACnB,OAAO,CAAC,GAAG,CAAC,4BAA4B,CAAC,CAAC;IAC5C,CAAC;SAAM,CAAC;QACN,OAAO,CAAC,KAAK,CAAC,yBAAyB,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC;IACzD,CAAC;AACH,CAAC;AAED,SAAS,kBAAkB,CAAC,gBAAkC;IAC5D,gBAAgB,CAAC,cAAc,CAAC,WAAW,CAAC,UAAU,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,WAAW,CAAC,CAAC;IACtF,gBAAgB,CAAC,UAAU,CAAC;QAC1B,yBAAyB,CAAC;YACxB,KAAK,EAAE;gBACL,GAAG,EAAE,gBAAgB,CAAC,MAAM,CAAC,IAAI;gBACjC,KAAK,EAAE,gBAAgB,CAAC,MAAM,CAAC,KAAK;aACrC;YACD,GAAG,EAAE,gBAAgB,CAAC,MAAM,CAAC,MAAM;YACnC,OAAO,EAAE,gBAAgB,CAAC,MAAM,CAAC,aAAa;YAC9C,WAAW,EAAE,WAAW,CAAC,UAAU,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,OAAO,CAAC,MAAM;SACrE,CAAC;KACH,CAAC,CAAC;AACL,CAAC"}
1
+ {"version":3,"file":"AddFlow.js","sourceRoot":"","sources":["../../src/Verbs/AddFlow.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,EACL,YAAY,IAAI,kBAAkB,EAClC,sBAAsB,GACvB,MAAM,iCAAiC,CAAC;AAGzC,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC3D,OAAO,EAAE,yBAAyB,EAAE,MAAM,aAAa,CAAC;AACxD,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AACvD,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AACpC,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAClE,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAEnD;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,YAAY,CAAC,gBAAkC;IACnE,MAAM,QAAQ,GAAG,WAAW,EAAE,CAAC;IAC/B,MAAM,EAAE,UAAU,EAAE,GAAG,QAAQ,CAAC;IAChC,kBAAkB,CAAC,gBAAgB,CAAC,CAAC;IACrC,MAAM,gBAAgB,CAAC,OAAO,EAAE,CAAC;IAEjC,MAAM,KAAK,GAAG,IAAI,KAAK,CAAC;QACtB,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE;QAClB,YAAY,EAAE,IAAI;QAClB,aAAa,EAAE,IAAI;KACpB,CAAC,CAAC;IAEH,MAAM,mBAAmB,GAAG,sBAAsB,EAAE,CAAC;IACrD,MAAM,sBAAsB,GAAG,gBAAgB,CAAC,yBAAyB,EAAE,CAAC;IAE5E,MAAM,MAAM,GAAG,MAAM,gBAAgB,CAAC,SAAS,CAAS,QAAQ,CAAC,CAAC;IAElE,MAAM,OAAO,GAAmB;QAC9B,GAAG,EAAE,KAAK;QACV,YAAY,EAAE,sBAAsB;QACpC,UAAU,EAAE,gBAAgB,CAAC,aAAa,EAAE;QAC5C,MAAM,EAAE,mBAAmB,CAAC,MAAM;QAClC,eAAe,EAAE,mBAAmB,CAAC,eAAe;QACpD,aAAa,EAAE;YACb,MAAM;SACP;QACD,cAAc,EAAE;YACd,aAAa,EAAE,UAAU,CAAC,aAAa;YACvC,UAAU,EAAE,UAAU,CAAC,UAAU;YACjC,WAAW,EAAE,UAAU,CAAC,WAAW;SACpC;QACD,MAAM,EAAE,YAAY,EAAE;KACvB,CAAC;IAEF,MAAM,MAAM,GAAG,MAAM,kBAAkB,CAAC,OAAO,CAAC,CAAC;IAEjD,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;QACnB,YAAY,CAAC,4BAA4B,CAAC,CAAC;IAC7C,CAAC;SAAM,CAAC;QACN,UAAU,CAAC,yBAAyB,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC;IACtD,CAAC;AACH,CAAC;AAED,SAAS,kBAAkB,CAAC,gBAAkC;IAC5D,gBAAgB,CAAC,cAAc,CAAC,WAAW,CAAC,UAAU,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,WAAW,CAAC,CAAC;IACtF,gBAAgB,CAAC,UAAU,CAAC;QAC1B,yBAAyB,CAAC;YACxB,KAAK,EAAE;gBACL,GAAG,EAAE,gBAAgB,CAAC,MAAM,CAAC,IAAI;gBACjC,KAAK,EAAE,gBAAgB,CAAC,MAAM,CAAC,KAAK;aACrC;YACD,GAAG,EAAE,gBAAgB,CAAC,MAAM,CAAC,MAAM;YACnC,OAAO,EAAE,gBAAgB,CAAC,MAAM,CAAC,aAAa;YAC9C,WAAW,EAAE,WAAW,CAAC,UAAU,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,OAAO,CAAC,MAAM;SACrE,CAAC;KACH,CAAC,CAAC;AACL,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"AddTable.d.ts","sourceRoot":"","sources":["../../src/Verbs/AddTable.ts"],"names":[],"mappings":"AAAA;;GAEG;AAcH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAa5D,wBAAsB,aAAa,CAAC,gBAAgB,EAAE,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC,CAqIrF"}
1
+ {"version":3,"file":"AddTable.d.ts","sourceRoot":"","sources":["../../src/Verbs/AddTable.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAS5D,wBAAsB,aAAa,CAAC,gBAAgB,EAAE,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC,CA+BrF"}
@@ -1,23 +1,16 @@
1
1
  /*!
2
2
  * Copyright (C) Microsoft Corporation. All rights reserved.
3
3
  */
4
- import { addConnectorTableAsync, getPlayerServiceConfig, listDatasetsAsync, listTablesAsync, } from '@microsoft/managed-apps-actions';
5
- import { getCliLogger, getSettings } from '../CliSettings.js';
6
- import { createDefaultStringOption, promptSelectOrInput } from '../CliUtils.js';
4
+ import { createDefaultStringOption } from '../CliUtils.js';
7
5
  import { CLI_BINARY_NAME } from '../Constants/CliConstants.js';
8
6
  import { HelpStrings } from '../Constants/HelpStrings.js';
9
7
  import { UsageError } from '../Errors/CliError.js';
10
- import { printInfo, printSuccess, printTable } from '../Utils/ConsoleOutput.js';
11
- import { resolveConnectionInteractivelyAsync, runConnectorDlpPreflightAsync, } from './ConnectorHelpers.js';
8
+ import { isTabularConnector, runAddTableFlowAsync } from './AddConnectorFlows.js';
9
+ import { runConnectorDlpPreflightAsync } from './ConnectorHelpers.js';
12
10
  import { AddTableArguments, SharedArguments } from './VerbConstants.js';
13
11
  export async function addTableAsync(argumentProvider) {
14
- const settings = getSettings();
15
- const { fileConfig, cliFs } = settings;
16
12
  createOptionSchema(argumentProvider);
17
13
  await argumentProvider.runVerb();
18
- const playerServiceConfig = getPlayerServiceConfig();
19
- const authProvider = argumentProvider.getAuthenticationProvider();
20
- const logger = getCliLogger();
21
14
  const apiId = await argumentProvider.getOption('apiId');
22
15
  const connectionIdFlag = await argumentProvider.getOption('connectionId', true);
23
16
  const datasetFlag = await argumentProvider.getOption('dataset', true);
@@ -27,97 +20,19 @@ export async function addTableAsync(argumentProvider) {
27
20
  // ── Preflight: connector + DLP policy (throws on not-found or blocked) ────
28
21
  const { connector } = await runConnectorDlpPreflightAsync(argumentProvider, apiId);
29
22
  // ── Tabular capability check ──────────────────────────────────────────────
30
- const isTabular = connector.properties.capabilities?.includes('tabular') ?? false;
31
- if (!isTabular) {
32
- throw new UsageError(`Connector '${connector.properties.displayName ?? apiId}' does not support tabular data sources. Use '${CLI_BINARY_NAME} app add action' instead.`);
23
+ if (!isTabularConnector(connector)) {
24
+ throw new UsageError(`Connector '${connector.properties.displayName ?? apiId}' does not support tabular data sources. Use '${CLI_BINARY_NAME} app add connector --as action' instead.`);
33
25
  }
34
- const localFilePaths = {
35
- appConfigPath: fileConfig.appConfigPath,
36
- schemaPath: fileConfig.schemaPath,
37
- codeGenPath: fileConfig.codeGenPath,
38
- };
39
- const baseContext = {
40
- vfs: cliFs,
41
- authProvider,
42
- httpClient: argumentProvider.getHttpClient(),
43
- region: playerServiceConfig.region,
44
- environmentName: playerServiceConfig.environmentName,
45
- localFilePaths,
46
- logger,
47
- };
48
- // ── Step 1: Connection resolution ─────────────────────────────────────────
49
- let connectionId = connectionIdFlag;
50
- if (!connectionId) {
51
- connectionId = await resolveConnectionInteractivelyAsync({
52
- argumentProvider,
53
- apiId,
54
- connector,
55
- });
56
- }
57
- // ── Step 2: Dataset resolution ────────────────────────────────────────────
58
- let dataset = datasetFlag;
59
- if (!dataset) {
60
- const datasetsCtx = {
61
- ...baseContext,
62
- actionsParams: { apiId, connectionId },
63
- };
64
- const { value: datasets } = await listDatasetsAsync(datasetsCtx);
65
- if (!settings.interactive) {
66
- printTable({
67
- title: `Available datasets for ${connector.properties.displayName ?? apiId}`,
68
- columns: [{ header: 'Display Name', maxWidth: 40 }, { header: 'Dataset Name' }],
69
- rows: datasets.map((d) => [d.DisplayName || d.Name, d.Name]),
70
- emptyMessage: 'No datasets found for this connection.',
71
- totalLabel: 'dataset(s) found',
72
- });
73
- throw new UsageError(`Re-run with --dataset <name> or -d <name>.`);
74
- }
75
- dataset = await promptSelectOrInput({
76
- message: 'Select a dataset:',
77
- options: datasets.map((d) => ({
78
- value: d.Name,
79
- label: d.DisplayName || d.Name,
80
- hint: d.Name,
81
- })),
82
- manualPromptMessage: 'Enter dataset name:',
83
- });
84
- }
85
- // ── Step 3: Table resolution ──────────────────────────────────────────────
86
- let tableName = tableFlag;
87
- if (!tableName) {
88
- const tablesCtx = {
89
- ...baseContext,
90
- actionsParams: { apiId, connectionId, dataset },
91
- };
92
- const { value: tables } = await listTablesAsync(tablesCtx);
93
- if (!settings.interactive) {
94
- printTable({
95
- title: `Available tables in dataset '${dataset}'`,
96
- columns: [{ header: 'Display Name', maxWidth: 40 }, { header: 'Table Name' }],
97
- rows: tables.map((t) => [t.DisplayName || t.Name, t.Name]),
98
- emptyMessage: 'No tables found in this dataset.',
99
- totalLabel: 'table(s) found',
100
- });
101
- throw new UsageError(`Re-run with --table <name> or -t <name>.`);
102
- }
103
- tableName = await promptSelectOrInput({
104
- message: 'Select a table:',
105
- options: tables.map((t) => ({
106
- value: t.Name,
107
- label: t.DisplayName || t.Name,
108
- hint: t.Name,
109
- })),
110
- manualPromptMessage: 'Enter table name:',
111
- });
112
- }
113
- // ── Step 4: Add the table ─────────────────────────────────────────────────
114
- const context = {
115
- ...baseContext,
116
- actionsParams: { apiId, connectionId, dataset, tableName, skipCodegen, useV1Codegen },
117
- };
118
- await addConnectorTableAsync(context);
119
- printSuccess(`Table '${tableName}' from connector '${connector.properties.displayName ?? apiId}' added successfully.`);
120
- printInfo(`Hint: Run 'npx ${CLI_BINARY_NAME} dev' to test locally, or 'npx ${CLI_BINARY_NAME} push' to deploy.`);
26
+ await runAddTableFlowAsync({
27
+ argumentProvider,
28
+ connector,
29
+ apiId,
30
+ connectionIdFlag,
31
+ datasetFlag,
32
+ tableFlag,
33
+ skipCodegen,
34
+ useV1Codegen,
35
+ });
121
36
  }
122
37
  function createOptionSchema(argumentProvider) {
123
38
  argumentProvider.setDescription(HelpStrings.app.add.table.description);
@@ -1 +1 @@
1
- {"version":3,"file":"AddTable.js","sourceRoot":"","sources":["../../src/Verbs/AddTable.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"AddTable.js","sourceRoot":"","sources":["../../src/Verbs/AddTable.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,EAAE,yBAAyB,EAAE,MAAM,aAAa,CAAC;AACxD,OAAO,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAC5D,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AACvD,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAChD,OAAO,EAAE,kBAAkB,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAC/E,OAAO,EAAE,6BAA6B,EAAE,MAAM,oBAAoB,CAAC;AACnE,OAAO,EAAE,iBAAiB,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAErE,MAAM,CAAC,KAAK,UAAU,aAAa,CAAC,gBAAkC;IACpE,kBAAkB,CAAC,gBAAgB,CAAC,CAAC;IACrC,MAAM,gBAAgB,CAAC,OAAO,EAAE,CAAC;IAEjC,MAAM,KAAK,GAAG,MAAM,gBAAgB,CAAC,SAAS,CAAS,OAAO,CAAC,CAAC;IAChE,MAAM,gBAAgB,GAAG,MAAM,gBAAgB,CAAC,SAAS,CAAS,cAAc,EAAE,IAAI,CAAC,CAAC;IACxF,MAAM,WAAW,GAAG,MAAM,gBAAgB,CAAC,SAAS,CAAS,SAAS,EAAE,IAAI,CAAC,CAAC;IAC9E,MAAM,SAAS,GAAG,MAAM,gBAAgB,CAAC,SAAS,CAAS,OAAO,EAAE,IAAI,CAAC,CAAC;IAC1E,MAAM,WAAW,GAAG,CAAC,CAAC,CAAC,MAAM,gBAAgB,CAAC,SAAS,CAAU,aAAa,EAAE,IAAI,CAAC,CAAC,CAAC;IACvF,MAAM,YAAY,GAAG,CAAC,CAAC,CAAC,MAAM,gBAAgB,CAAC,SAAS,CAAU,cAAc,EAAE,IAAI,CAAC,CAAC,CAAC;IAEzF,6EAA6E;IAC7E,MAAM,EAAE,SAAS,EAAE,GAAG,MAAM,6BAA6B,CAAC,gBAAgB,EAAE,KAAK,CAAC,CAAC;IAEnF,6EAA6E;IAC7E,IAAI,CAAC,kBAAkB,CAAC,SAAS,CAAC,EAAE,CAAC;QACnC,MAAM,IAAI,UAAU,CAClB,cAAc,SAAS,CAAC,UAAU,CAAC,WAAW,IAAI,KAAK,iDAAiD,eAAe,0CAA0C,CAClK,CAAC;IACJ,CAAC;IAED,MAAM,oBAAoB,CAAC;QACzB,gBAAgB;QAChB,SAAS;QACT,KAAK;QACL,gBAAgB;QAChB,WAAW;QACX,SAAS;QACT,WAAW;QACX,YAAY;KACb,CAAC,CAAC;AACL,CAAC;AAED,SAAS,kBAAkB,CAAC,gBAAkC;IAC5D,gBAAgB,CAAC,cAAc,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;IACvE,gBAAgB,CAAC,WAAW,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;IACjE,gBAAgB,CAAC,UAAU,CAAC;QAC1B,yBAAyB,CAAC;YACxB,KAAK,EAAE,EAAE,GAAG,EAAE,eAAe,CAAC,KAAK,CAAC,IAAI,EAAE;YAC1C,GAAG,EAAE,eAAe,CAAC,KAAK,CAAC,MAAM;YACjC,OAAO,EAAE,eAAe,CAAC,KAAK,CAAC,aAAa;YAC5C,WAAW,EAAE,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK;SACrD,CAAC;QACF;YACE,KAAK,EAAE,EAAE,GAAG,EAAE,eAAe,CAAC,YAAY,CAAC,IAAI,EAAE,KAAK,EAAE,eAAe,CAAC,YAAY,CAAC,KAAK,EAAE;YAC5F,GAAG,EAAE,eAAe,CAAC,YAAY,CAAC,MAAM;YACxC,WAAW,EAAE,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,YAAY;YAC3D,wBAAwB,EAAE,IAAI;SAC/B;QACD;YACE,KAAK,EAAE,EAAE,GAAG,EAAE,eAAe,CAAC,OAAO,CAAC,IAAI,EAAE,KAAK,EAAE,eAAe,CAAC,OAAO,CAAC,KAAK,EAAE;YAClF,GAAG,EAAE,eAAe,CAAC,OAAO,CAAC,MAAM;YACnC,WAAW,EAAE,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO;YACtD,wBAAwB,EAAE,IAAI;SAC/B;QACD;YACE,KAAK,EAAE,EAAE,GAAG,EAAE,iBAAiB,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,EAAE,iBAAiB,CAAC,KAAK,CAAC,KAAK,EAAE;YAClF,GAAG,EAAE,iBAAiB,CAAC,KAAK,CAAC,MAAM;YACnC,WAAW,EAAE,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK;YACpD,wBAAwB,EAAE,IAAI;SAC/B;KACF,CAAC,CAAC;IACH,gBAAgB,CAAC,SAAS,CAAC;QACzB,KAAK,EAAE,EAAE,GAAG,EAAE,iBAAiB,CAAC,WAAW,CAAC,IAAI,EAAE;QAClD,GAAG,EAAE,iBAAiB,CAAC,WAAW,CAAC,GAAG;QACtC,WAAW,EAAE,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,WAAW;KAC3D,CAAC,CAAC;IACH,gBAAgB,CAAC,SAAS,CAAC;QACzB,KAAK,EAAE,EAAE,GAAG,EAAE,iBAAiB,CAAC,YAAY,CAAC,IAAI,EAAE;QACnD,GAAG,EAAE,iBAAiB,CAAC,YAAY,CAAC,GAAG;QACvC,WAAW,EAAE,gDAAgD;QAC7D,MAAM,EAAE,IAAI;KACb,CAAC,CAAC;AACL,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"AuthStatus.d.ts","sourceRoot":"","sources":["../../src/Verbs/AuthStatus.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAI5D,wBAAsB,eAAe,CAAC,gBAAgB,EAAE,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC,CAYvF"}
1
+ {"version":3,"file":"AuthStatus.d.ts","sourceRoot":"","sources":["../../src/Verbs/AuthStatus.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAK5D,wBAAsB,eAAe,CAAC,gBAAgB,EAAE,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC,CA8CvF"}
@@ -1,18 +1,46 @@
1
1
  /*!
2
2
  * Copyright (C) Microsoft Corporation. All rights reserved.
3
3
  */
4
+ import { CLI_BINARY_NAME } from '../Constants/CliConstants.js';
4
5
  import { HelpStrings } from '../Constants/HelpStrings.js';
5
- import { printInfo, printWarning } from '../Utils/ConsoleOutput.js';
6
+ import { printInfo, printJsonSuccess, printTable, printWarning } from '../Utils/ConsoleOutput.js';
6
7
  export async function authStatusAsync(argumentProvider) {
7
8
  argumentProvider.setDescription(HelpStrings.auth.status.description);
8
9
  argumentProvider.addExamples(HelpStrings.auth.status.examples);
9
10
  await argumentProvider.runVerb();
10
- const email = await argumentProvider.getAuthenticationProvider().getCachedAccountAsync();
11
- if (email) {
12
- printInfo(`Signed in as ${email}`);
11
+ const accounts = await argumentProvider.getAccountManager().listCachedAccountsAsync();
12
+ const jsonMode = argumentProvider.isJsonMode();
13
+ if (jsonMode) {
14
+ const active = accounts.find((a) => a.isActive);
15
+ printJsonSuccess({
16
+ signedIn: accounts.length > 0,
17
+ activeAccount: active
18
+ ? { username: active.username, homeAccountId: active.homeAccountId }
19
+ : null,
20
+ accounts: accounts.map((a) => ({
21
+ username: a.username,
22
+ homeAccountId: a.homeAccountId,
23
+ isActive: a.isActive,
24
+ })),
25
+ });
26
+ return;
13
27
  }
14
- else {
15
- printWarning('Not signed in. Run `ms auth login` to authenticate.');
28
+ if (accounts.length === 0) {
29
+ printWarning(`Not signed in. Run \`${CLI_BINARY_NAME} auth login\` to authenticate.`);
30
+ return;
31
+ }
32
+ if (accounts.length === 1) {
33
+ printInfo(`Signed in as ${accounts[0].username}`);
34
+ return;
35
+ }
36
+ const hasActive = accounts.some((a) => a.isActive);
37
+ printTable({
38
+ title: 'Cached accounts',
39
+ columns: [{ header: 'Active' }, { header: 'Username' }],
40
+ rows: accounts.map((a) => [a.isActive ? '*' : '', a.username]),
41
+ });
42
+ if (!hasActive) {
43
+ printWarning(`No active account selected. Run \`${CLI_BINARY_NAME} auth switch\` to choose one.`);
16
44
  }
17
45
  }
18
46
  //# sourceMappingURL=AuthStatus.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"AuthStatus.js","sourceRoot":"","sources":["../../src/Verbs/AuthStatus.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AACvD,OAAO,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAEjE,MAAM,CAAC,KAAK,UAAU,eAAe,CAAC,gBAAkC;IACtE,gBAAgB,CAAC,cAAc,CAAC,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;IACrE,gBAAgB,CAAC,WAAW,CAAC,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;IAE/D,MAAM,gBAAgB,CAAC,OAAO,EAAE,CAAC;IAEjC,MAAM,KAAK,GAAG,MAAM,gBAAgB,CAAC,yBAAyB,EAAE,CAAC,qBAAqB,EAAE,CAAC;IACzF,IAAI,KAAK,EAAE,CAAC;QACV,SAAS,CAAC,gBAAgB,KAAK,EAAE,CAAC,CAAC;IACrC,CAAC;SAAM,CAAC;QACN,YAAY,CAAC,qDAAqD,CAAC,CAAC;IACtE,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"AuthStatus.js","sourceRoot":"","sources":["../../src/Verbs/AuthStatus.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAC5D,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AACvD,OAAO,EAAE,SAAS,EAAE,gBAAgB,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAE/F,MAAM,CAAC,KAAK,UAAU,eAAe,CAAC,gBAAkC;IACtE,gBAAgB,CAAC,cAAc,CAAC,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;IACrE,gBAAgB,CAAC,WAAW,CAAC,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;IAE/D,MAAM,gBAAgB,CAAC,OAAO,EAAE,CAAC;IAEjC,MAAM,QAAQ,GAAG,MAAM,gBAAgB,CAAC,iBAAiB,EAAE,CAAC,uBAAuB,EAAE,CAAC;IACtF,MAAM,QAAQ,GAAG,gBAAgB,CAAC,UAAU,EAAE,CAAC;IAE/C,IAAI,QAAQ,EAAE,CAAC;QACb,MAAM,MAAM,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;QAChD,gBAAgB,CAAC;YACf,QAAQ,EAAE,QAAQ,CAAC,MAAM,GAAG,CAAC;YAC7B,aAAa,EAAE,MAAM;gBACnB,CAAC,CAAC,EAAE,QAAQ,EAAE,MAAM,CAAC,QAAQ,EAAE,aAAa,EAAE,MAAM,CAAC,aAAa,EAAE;gBACpE,CAAC,CAAC,IAAI;YACR,QAAQ,EAAE,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;gBAC7B,QAAQ,EAAE,CAAC,CAAC,QAAQ;gBACpB,aAAa,EAAE,CAAC,CAAC,aAAa;gBAC9B,QAAQ,EAAE,CAAC,CAAC,QAAQ;aACrB,CAAC,CAAC;SACJ,CAAC,CAAC;QACH,OAAO;IACT,CAAC;IAED,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC1B,YAAY,CAAC,wBAAwB,eAAe,gCAAgC,CAAC,CAAC;QACtF,OAAO;IACT,CAAC;IAED,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC1B,SAAS,CAAC,gBAAgB,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;QAClD,OAAO;IACT,CAAC;IAED,MAAM,SAAS,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;IACnD,UAAU,CAAC;QACT,KAAK,EAAE,iBAAiB;QACxB,OAAO,EAAE,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,UAAU,EAAE,CAAC;QACvD,IAAI,EAAE,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC;KAC/D,CAAC,CAAC;IACH,IAAI,CAAC,SAAS,EAAE,CAAC;QACf,YAAY,CACV,qCAAqC,eAAe,+BAA+B,CACpF,CAAC;IACJ,CAAC;AACH,CAAC"}
@@ -0,0 +1,6 @@
1
+ /*!
2
+ * Copyright (C) Microsoft Corporation. All rights reserved.
3
+ */
4
+ import type { ArgumentProvider } from '../ArgumentProvider.js';
5
+ export declare function authSwitchAsync(argumentProvider: ArgumentProvider): Promise<void>;
6
+ //# sourceMappingURL=AuthSwitch.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AuthSwitch.d.ts","sourceRoot":"","sources":["../../src/Verbs/AuthSwitch.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAS5D,wBAAsB,eAAe,CAAC,gBAAgB,EAAE,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC,CAyDvF"}
@@ -0,0 +1,67 @@
1
+ /*!
2
+ * Copyright (C) Microsoft Corporation. All rights reserved.
3
+ */
4
+ import { getSettings } from '../CliSettings.js';
5
+ import { promptSelect } from '../CliUtils.js';
6
+ import { CLI_BINARY_NAME } from '../Constants/CliConstants.js';
7
+ import { HelpStrings } from '../Constants/HelpStrings.js';
8
+ import { UsageError } from '../Errors/CliError.js';
9
+ import { printJsonSuccess, printSuccess, printWarning } from '../Utils/ConsoleOutput.js';
10
+ import { AccountArguments } from './VerbConstants.js';
11
+ export async function authSwitchAsync(argumentProvider) {
12
+ argumentProvider.setDescription(HelpStrings.auth.switch.description);
13
+ argumentProvider.addExamples(HelpStrings.auth.switch.examples);
14
+ argumentProvider.addOption({
15
+ flags: { key: AccountArguments.Account.name },
16
+ description: HelpStrings.auth.switch.options.account,
17
+ optionalInNonInteractive: true,
18
+ });
19
+ await argumentProvider.runVerb();
20
+ const accountManager = argumentProvider.getAccountManager();
21
+ const requested = await argumentProvider.getOption(AccountArguments.Account.name, true);
22
+ const jsonMode = argumentProvider.isJsonMode();
23
+ const accounts = await accountManager.listCachedAccountsAsync();
24
+ if (accounts.length === 0) {
25
+ if (jsonMode) {
26
+ printJsonSuccess({ activeAccount: null });
27
+ return;
28
+ }
29
+ printWarning(`No cached accounts. Run \`${CLI_BINARY_NAME} auth login\` first.`);
30
+ return;
31
+ }
32
+ let target = requested;
33
+ if (!target) {
34
+ if (accounts.length === 1) {
35
+ // No-op confirmation: the only account is also the active one.
36
+ const onlyAccount = await accountManager.setActiveAccountAsync(accounts[0].homeAccountId);
37
+ _emitSuccess(onlyAccount.username, onlyAccount.homeAccountId, jsonMode);
38
+ return;
39
+ }
40
+ // JSON-mode callers can't sensibly answer an interactive picker, so we treat
41
+ // `--json` as implying non-interactive for the disambiguation prompt — same
42
+ // way we treat `--non-interactive` itself.
43
+ if (jsonMode || !getSettings().interactive) {
44
+ throw new UsageError(`Multiple accounts are cached. Pass --account <email> to choose one.\n` +
45
+ accounts.map((a) => ` - ${a.username}`).join('\n'));
46
+ }
47
+ target = await promptSelect({
48
+ message: 'Choose the active account:',
49
+ options: accounts.map((a) => ({
50
+ value: a.homeAccountId,
51
+ label: a.username,
52
+ hint: a.isActive ? 'currently active' : undefined,
53
+ })),
54
+ });
55
+ }
56
+ const resolved = await accountManager.setActiveAccountAsync(target);
57
+ _emitSuccess(resolved.username, resolved.homeAccountId, jsonMode);
58
+ }
59
+ function _emitSuccess(username, homeAccountId, jsonMode) {
60
+ if (jsonMode) {
61
+ printJsonSuccess({ activeAccount: { username, homeAccountId } });
62
+ }
63
+ else {
64
+ printSuccess(`Active account is ${username}.`);
65
+ }
66
+ }
67
+ //# sourceMappingURL=AuthSwitch.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AuthSwitch.js","sourceRoot":"","sources":["../../src/Verbs/AuthSwitch.ts"],"names":[],"mappings":"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"}