@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
@@ -1 +1 @@
1
- {"version":3,"file":"MaafAppPermissions.d.ts","sourceRoot":"","sources":["../../src/Verbs/MaafAppPermissions.ts"],"names":[],"mappings":"AAAA;;GAEG;AAeH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAS5D,4EAA4E;AAC5E,MAAM,MAAM,sBAAsB,GAAG,OAAO,GAAG,SAAS,CAAC;AAuBzD;;;;;;;;;;;;;;GAcG;AACH,wBAAsB,8BAA8B,CAClD,gBAAgB,EAAE,gBAAgB,EAClC,IAAI,EAAE,sBAAsB,GAC3B,OAAO,CAAC,IAAI,CAAC,CAyGf"}
1
+ {"version":3,"file":"MaafAppPermissions.d.ts","sourceRoot":"","sources":["../../src/Verbs/MaafAppPermissions.ts"],"names":[],"mappings":"AAAA;;GAEG;AAwBH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAS5D,4EAA4E;AAC5E,MAAM,MAAM,sBAAsB,GAAG,OAAO,GAAG,SAAS,CAAC;AAEzD;;;;;;;;;;GAUG;AACH,MAAM,MAAM,kBAAkB,GAAG,MAAM,GAAG,MAAM,CAAC;AAuBjD;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,wBAAsB,8BAA8B,CAClD,gBAAgB,EAAE,gBAAgB,EAClC,IAAI,EAAE,sBAAsB,GAC3B,OAAO,CAAC,IAAI,CAAC,CAsFf"}
@@ -1,7 +1,7 @@
1
1
  /*!
2
2
  * Copyright (C) Microsoft Corporation. All rights reserved.
3
3
  */
4
- import { MaafAppReaderRoleName, modifyPermissionsAsync, resolvePrincipalByEmailAsync, } from '@microsoft/managed-apps-actions';
4
+ import { GrsRepositoryContributorRoleName, infoAsync, MaafAppReaderRoleName, modifyGrsRoleAssignmentsAsync, modifyMaafRoleAssignmentsAsync, resolvePrincipalByEmailAsync, unshareGrsRepoByPrincipalsAsync, unshareMaafAppByPrincipalsAsync, } from '@microsoft/managed-apps-actions';
5
5
  import { AppConfigFileName } from '@microsoft/managed-apps-common/config';
6
6
  import { HttpClientError } from '@microsoft/managed-apps-common/services';
7
7
  import { getCliLogger, getSettings } from '../CliSettings.js';
@@ -12,19 +12,27 @@ import { UsageError } from '../Errors/CliError.js';
12
12
  import { printInfo, printJsonSuccess, printSuccess, printWarning } from '../Utils/ConsoleOutput.js';
13
13
  import { ShareMaafAppArguments, UnshareMaafAppArguments } from './VerbConstants.js';
14
14
  /**
15
- * Implements `ms app share` and `ms app unshare` — adds or removes the
16
- * `Microsoft App Reader` role for AAD principals (users or groups) at the app
17
- * scope.
15
+ * Implements `ms app share` and `ms app unshare` — adds or removes role
16
+ * assignments for AAD principals (users or groups) at either the MAAF app
17
+ * scope (play access) or the GRS repository scope (edit access), driven by
18
+ * the `--access` flag.
18
19
  *
19
20
  * Pipeline:
20
21
  * 1. Register option schema for the chosen mode and run the verb (so `--help`
21
22
  * works outside an init'd project).
22
23
  * 2. Require a loaded `ms.config.json`.
23
- * 3. Resolve `environmentId` (`--environment-id` flag wins; otherwise from config) and tenantId.
24
+ * 3. Resolve `environmentId` (`--environment-id` flag wins; otherwise from config),
25
+ * tenantId, and the requested access level (`--access play|edit`, default `play`).
24
26
  * 4. Read the comma-separated principals positional; resolve email-shaped inputs
25
27
  * to AAD object ids via Graph, pass GUID-shaped inputs through unchanged.
26
- * 5. Call `modifyPermissionsAsync` with `put` or `delete` populated based on
27
- * `mode`, then emit JSON or a human summary.
28
+ * 5. Dispatch to the matching share/unshare path:
29
+ * - `play` MAAF `modifyRoleAssignments` (`MicrosoftAppReader` at app scope).
30
+ * - `edit` → fetch the app's `repositoryId` then GRS `modifyRoleAssignments`
31
+ * (`RepositoryContributor` at repo scope).
32
+ * For unshare, paginate the matching list endpoint and pass through the
33
+ * full `RoleAssignment[]` records on `delete` (the strict wire contract
34
+ * requires `roleAssignmentId`, which only the list endpoint provides).
35
+ * 6. Emit JSON or a human summary.
28
36
  */
29
37
  export async function executeMaafAppPermissionsAsync(argumentProvider, mode) {
30
38
  configureOptionSchema(argumentProvider, mode);
@@ -41,6 +49,11 @@ export async function executeMaafAppPermissionsAsync(argumentProvider, mode) {
41
49
  throw new UsageError('Unable to determine tenant ID. Ensure you are logged in.');
42
50
  }
43
51
  const appName = await resolveAppNameAsync(argumentProvider);
52
+ const access = parseAccessLevel(await argumentProvider.getOption('access'));
53
+ const repoType = cliSettings.appConfig.repoType ?? 'native';
54
+ if (access === 'edit' && repoType === 'none') {
55
+ throw new UsageError(`App '${appName}' has no associated repository in the platform, so edit access cannot be modified.`);
56
+ }
44
57
  const inputs = parseInputs(argumentProvider.getPositionalArg(0));
45
58
  if (inputs.length === 0) {
46
59
  throw new UsageError('Provide at least one principal as a comma-separated list (AAD object IDs or email addresses).');
@@ -60,29 +73,117 @@ export async function executeMaafAppPermissionsAsync(argumentProvider, mode) {
60
73
  if (failures.length > 0) {
61
74
  printWarning(formatFailures(failures));
62
75
  }
63
- const entries = refs.map(toPermissionEntry);
64
- const result = await modifyPermissionsAsync({
65
- tenantId,
66
- environmentId,
67
- logger: getCliLogger(),
68
- actionsParams: {
69
- appName,
70
- put: mode === 'share' ? entries : [],
71
- delete: mode === 'unshare' ? entries : [],
72
- },
73
- });
76
+ const dispatch = mode === 'share' ? shareDispatchAsync : unshareDispatchAsync;
77
+ const outcome = await dispatch({ tenantId, environmentId, appName, access, refs });
74
78
  if (argumentProvider.isJsonMode()) {
75
- const _assertNoCollision = true;
76
- void _assertNoCollision;
79
+ // Envelope semantics for this verb: `success: true` means the modify call
80
+ // reached the RP and returned. When some inputs failed to resolve before
81
+ // the modify, `partialFailure` is `true` and `warnings` lists the
82
+ // unresolved entries. Consumers requiring full success must check both
83
+ // `success === true && partialFailure === false`. `warnings` is always
84
+ // present (empty array on full success) so consumers can treat its
85
+ // length uniformly. The server response is spread flat into the envelope
86
+ // (matching every other verb that emits JSON) instead of nested under a
87
+ // `result` key. For unshare we also include the action-layer bookkeeping
88
+ // (`revokedCount`, `revokedPrincipalCount`, `notFound`, `skipped`) that
89
+ // would otherwise only appear in the human summary — so automation gets
90
+ // the same fidelity as text mode.
77
91
  printJsonSuccess({
78
- ...result,
92
+ access,
79
93
  partialFailure: failures.length > 0,
94
+ ...outcome.result,
95
+ ...(mode === 'unshare' && {
96
+ revokedCount: outcome.revokedCount ?? 0,
97
+ revokedPrincipalCount: outcome.revokedPrincipalCount ?? 0,
98
+ notFound: (outcome.notFound ?? []).map(toJsonRef),
99
+ skipped: (outcome.skipped ?? []).map(toJsonRef),
100
+ }),
80
101
  warnings: failures,
81
102
  });
82
103
  }
83
104
  else {
84
- printSummary(appName, mode, refs.length, result);
105
+ printSummary({ appName, mode, access, inputCount: refs.length, outcome });
106
+ }
107
+ }
108
+ async function shareDispatchAsync(inputs) {
109
+ const { tenantId, environmentId, appName, access, refs } = inputs;
110
+ if (access === 'play') {
111
+ const entries = refs.map(toMaafPermissionEntry);
112
+ const result = await modifyMaafRoleAssignmentsAsync({
113
+ tenantId,
114
+ environmentId,
115
+ logger: getCliLogger(),
116
+ actionsParams: { appName, put: entries, delete: [] },
117
+ });
118
+ return { result };
119
+ }
120
+ const repoId = await resolveRepositoryIdAsync({ tenantId, environmentId, appName });
121
+ const entries = refs.map(toGrsPermissionEntry);
122
+ const result = await modifyGrsRoleAssignmentsAsync({
123
+ tenantId,
124
+ environmentId,
125
+ logger: getCliLogger(),
126
+ actionsParams: { repoId, put: entries, delete: [] },
127
+ });
128
+ return { result };
129
+ }
130
+ async function unshareDispatchAsync(inputs) {
131
+ const { tenantId, environmentId, appName, access, refs } = inputs;
132
+ const principalIds = refs.map((r) => r.id);
133
+ const refsByPrincipalId = new Map(refs.map((r) => [r.id, r]));
134
+ const actionResult = access === 'play'
135
+ ? await unshareMaafAppByPrincipalsAsync({
136
+ tenantId,
137
+ environmentId,
138
+ logger: getCliLogger(),
139
+ actionsParams: { appName, principalIds },
140
+ })
141
+ : await (async () => {
142
+ const repoId = await resolveRepositoryIdAsync({ tenantId, environmentId, appName });
143
+ return unshareGrsRepoByPrincipalsAsync({
144
+ tenantId,
145
+ environmentId,
146
+ logger: getCliLogger(),
147
+ actionsParams: { repoId, principalIds },
148
+ });
149
+ })();
150
+ return {
151
+ result: actionResult.result,
152
+ revokedCount: actionResult.revokedCount,
153
+ revokedPrincipalCount: actionResult.revokedPrincipalCount,
154
+ notFound: actionResult.notFoundPrincipalIds.map((id) => refsByPrincipalId.get(id) ?? { id, input: id }),
155
+ skipped: actionResult.skippedNullRoleAssignments.map((s) => refsByPrincipalId.get(s.principalObjectId) ??
156
+ { id: s.principalObjectId, input: s.principalObjectId }),
157
+ };
158
+ }
159
+ /**
160
+ * Fetches the app's `repositoryId` via the info action. Used by the `edit`
161
+ * access paths to drive the GRS repo-scope share/unshare endpoints.
162
+ */
163
+ async function resolveRepositoryIdAsync(args) {
164
+ const app = await infoAsync({
165
+ tenantId: args.tenantId,
166
+ environmentId: args.environmentId,
167
+ logger: getCliLogger(),
168
+ actionsParams: { appName: args.appName },
169
+ });
170
+ if (!app.repositoryId) {
171
+ throw new UsageError(`App '${args.appName}' has no associated repository, so edit access cannot be modified.`);
85
172
  }
173
+ return app.repositoryId;
174
+ }
175
+ /**
176
+ * Parses the `--access` flag value. Defaults to `'play'` when omitted so the
177
+ * verb keeps its pre-flag behaviour for callers that haven't migrated. Throws
178
+ * a `UsageError` on any other value — Commander.js doesn't enforce enum
179
+ * membership by default and we want a precise error message.
180
+ */
181
+ function parseAccessLevel(raw) {
182
+ const value = (raw ?? 'play').trim().toLowerCase();
183
+ if (value === 'play' || value === 'edit') {
184
+ return value;
185
+ }
186
+ throw new UsageError(`Unknown --access value '${raw}'. Use 'play' (default — app access) or 'edit' (repository access).`);
86
187
  }
87
188
  /**
88
189
  * Splits a comma-separated string into a deduplicated, trimmed list of inputs.
@@ -230,7 +331,7 @@ function looksLikeEmail(input) {
230
331
  * (when the user supplied one) keeps the wire payload self-describing for server
231
332
  * logs even though the response strips it.
232
333
  */
233
- function toPermissionEntry(ref) {
334
+ function toMaafPermissionEntry(ref) {
234
335
  return {
235
336
  name: ref.displayName ?? ref.input,
236
337
  properties: {
@@ -239,23 +340,80 @@ function toPermissionEntry(ref) {
239
340
  },
240
341
  };
241
342
  }
343
+ /**
344
+ * Builds a `GrsRepoPermission` from a resolved reference for the `edit` access
345
+ * path. Mirrors {@link toMaafPermissionEntry} — same `name` semantics, same
346
+ * principal id passthrough — but targets the `RepositoryContributor` role
347
+ * at the GRS repository scope. The GRS `GrsPrincipal` shape has no `email`
348
+ * field (PPAuthZ only consumes the object id), so the email is dropped here
349
+ * even when the user originally provided one.
350
+ */
351
+ function toGrsPermissionEntry(ref) {
352
+ return {
353
+ name: ref.displayName ?? ref.input,
354
+ properties: {
355
+ roleName: GrsRepositoryContributorRoleName,
356
+ principal: { id: ref.id },
357
+ },
358
+ };
359
+ }
360
+ /**
361
+ * Shapes a `ResolvedRef` for the JSON envelope's `notFound` / `skipped` arrays.
362
+ * Strips the internal `input` field (which echoes the user's literal entry —
363
+ * useful for stderr warnings, but redundant in structured JSON where consumers
364
+ * already have the original list) and exposes only `id` plus a friendly
365
+ * `label` (Graph displayName when available, else the input).
366
+ */
367
+ function toJsonRef(ref) {
368
+ return { id: ref.id, label: ref.displayName ?? ref.input };
369
+ }
242
370
  /**
243
371
  * For share, the granted count comes from the server echo (the spec lets the
244
372
  * server dedupe or treat 409 "already exists" as success and echo the entry).
245
- * For unshare, the count comes from the request because the spec says `delete`
246
- * is not populated on the response and may be omitted or null.
373
+ * For unshare, the count comes from the request because neither endpoint
374
+ * populates `delete` on the response.
375
+ *
376
+ * The wording varies by access mode:
377
+ * - `play` → "play the app" / "play permissions"
378
+ * - `edit` → "edit the app" / "edit permissions"
379
+ *
380
+ * When unshare matched no existing assignments for some principals, an info
381
+ * line follows the success summary naming them — these are silent no-ops
382
+ * (the principal had no assignment to revoke), not failures.
247
383
  */
248
- function printSummary(appName, mode, inputCount, result) {
384
+ function printSummary(args) {
385
+ const { appName, mode, access, inputCount, outcome } = args;
386
+ const accessVerb = access === 'play' ? 'play' : 'edit';
249
387
  if (mode === 'share') {
388
+ const result = outcome.result;
250
389
  const grantedCount = result.put?.length ?? 0;
251
390
  if (grantedCount === 0) {
252
391
  printInfo('No changes were applied.');
253
392
  return;
254
393
  }
255
- printSuccess(`Shared app '${appName}' with ${grantedCount} ${pluralize('principal', grantedCount)}. They can now play the app.`);
394
+ printSuccess(`Shared app '${appName}' with ${grantedCount} ${pluralize('principal', grantedCount)}. They can now ${accessVerb} the app.`);
395
+ return;
396
+ }
397
+ const revokedCount = outcome.revokedCount ?? 0;
398
+ const revokedPrincipalCount = outcome.revokedPrincipalCount ?? revokedCount;
399
+ if (revokedPrincipalCount === 0) {
400
+ // Every requested principal was already without an assignment — emit info
401
+ // rather than "Revoked ... for 0 principals" which reads like an error.
402
+ printInfo(`No ${accessVerb} assignments to revoke on '${appName}' — none of the ${inputCount} ${pluralize('principal', inputCount)} had existing access.`);
256
403
  return;
257
404
  }
258
- printSuccess(`Revoked play permissions for ${inputCount} ${pluralize('principal', inputCount)} on '${appName}'.`);
405
+ printSuccess(`Revoked ${accessVerb} permissions for ${revokedPrincipalCount} ${pluralize('principal', revokedPrincipalCount)} on '${appName}'.`);
406
+ if (outcome.notFound && outcome.notFound.length > 0) {
407
+ const labels = outcome.notFound.map((r) => r.displayName ?? r.input).join(', ');
408
+ printInfo(`${outcome.notFound.length} ${pluralize('principal', outcome.notFound.length)} had no existing ${accessVerb} access (no-op): ${labels}`);
409
+ }
410
+ if (outcome.skipped && outcome.skipped.length > 0) {
411
+ // Matched-by-principal but the role assignment carried a null
412
+ // `roleDefinitionName`, so the action couldn't safely classify it.
413
+ // Surface it instead of letting the unshare silently no-op.
414
+ const labels = outcome.skipped.map((r) => r.displayName ?? r.input).join(', ');
415
+ printInfo(`${outcome.skipped.length} ${pluralize('principal', outcome.skipped.length)} had a role assignment with an unknown role definition; ${accessVerb} access was not modified for: ${labels}. Investigate via the role-assignments API.`);
416
+ }
259
417
  }
260
418
  function pluralize(noun, count) {
261
419
  return count === 1 ? noun : `${noun}s`;
@@ -273,6 +431,13 @@ function configureOptionSchema(argumentProvider, mode) {
273
431
  description: help.options.app,
274
432
  optionalInNonInteractive: true,
275
433
  },
434
+ {
435
+ flags: { key: args.Access.name },
436
+ env: args.Access.envVar,
437
+ default: args.Access.defaultValue,
438
+ description: help.options.access,
439
+ optionalInNonInteractive: true,
440
+ },
276
441
  ]);
277
442
  }
278
443
  //# sourceMappingURL=MaafAppPermissions.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"MaafAppPermissions.js","sourceRoot":"","sources":["../../src/Verbs/MaafAppPermissions.ts"],"names":[],"mappings":"AAAA;;GAEG;AAOH,OAAO,EACL,qBAAqB,EACrB,sBAAsB,EACtB,4BAA4B,GAC7B,MAAM,iCAAiC,CAAC;AACzC,OAAO,EAAE,iBAAiB,EAAE,MAAM,uCAAuC,CAAC;AAC1E,OAAO,EAAE,eAAe,EAAE,MAAM,yCAAyC,CAAC;AAG1E,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC3D,OAAO,EAAE,MAAM,EAAE,mBAAmB,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AAChF,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,SAAS,EAAE,gBAAgB,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AACjG,OAAO,EAAE,qBAAqB,EAAE,uBAAuB,EAAE,MAAM,iBAAiB,CAAC;AA0BjF;;;;;;;;;;;;;;GAcG;AACH,MAAM,CAAC,KAAK,UAAU,8BAA8B,CAClD,gBAAkC,EAClC,IAA4B;IAE5B,qBAAqB,CAAC,gBAAgB,EAAE,IAAI,CAAC,CAAC;IAC9C,MAAM,gBAAgB,CAAC,OAAO,EAAE,CAAC;IAEjC,MAAM,WAAW,GAAG,WAAW,EAAE,CAAC;IAClC,IAAI,CAAC,WAAW,CAAC,SAAS,EAAE,CAAC;QAC3B,MAAM,IAAI,UAAU,CAClB,MAAM,iBAAiB,6CAA6C,eAAe,mBAAmB,CACvG,CAAC;IACJ,CAAC;IAED,+EAA+E;IAC/E,mEAAmE;IACnE,MAAM,aAAa,GAAG,MAAM,oBAAoB,CAAC,gBAAgB,CAAC,CAAC;IAEnE,MAAM,QAAQ,GAAG,MAAM,gBAAgB,CAAC,gBAAgB,EAAE,CAAC;IAC3D,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,MAAM,IAAI,UAAU,CAAC,0DAA0D,CAAC,CAAC;IACnF,CAAC;IAED,MAAM,OAAO,GAAG,MAAM,mBAAmB,CAAC,gBAAgB,CAAC,CAAC;IAE5D,MAAM,MAAM,GAAG,WAAW,CAAC,gBAAgB,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAC;IACjE,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACxB,MAAM,IAAI,UAAU,CAClB,+FAA+F,CAChG,CAAC;IACJ,CAAC;IAED,8EAA8E;IAC9E,yEAAyE;IACzE,MAAM,QAAQ,GAAwB,EAAE,CAAC;IACzC,MAAM,IAAI,GAAG,MAAM,eAAe,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;IAErD,2EAA2E;IAC3E,8EAA8E;IAC9E,SAAS;IACT,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACtB,MAAM,IAAI,UAAU,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC,CAAC;IACjD,CAAC;IAED,2EAA2E;IAC3E,mEAAmE;IACnE,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACxB,YAAY,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC,CAAC;IACzC,CAAC;IAED,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC;IAC5C,MAAM,MAAM,GAAG,MAAM,sBAAsB,CAAC;QAC1C,QAAQ;QACR,aAAa;QACb,MAAM,EAAE,YAAY,EAAE;QACtB,aAAa,EAAE;YACb,OAAO;YACP,GAAG,EAAE,IAAI,KAAK,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;YACpC,MAAM,EAAE,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;SAC1C;KACF,CAAC,CAAC;IAEH,IAAI,gBAAgB,CAAC,UAAU,EAAE,EAAE,CAAC;QAmClC,MAAM,kBAAkB,GAA6D,IAAI,CAAC;QAC1F,KAAK,kBAAkB,CAAC;QAExB,gBAAgB,CAAC;YACf,GAAG,MAAM;YACT,cAAc,EAAE,QAAQ,CAAC,MAAM,GAAG,CAAC;YACnC,QAAQ,EAAE,QAAQ;SACnB,CAAC,CAAC;IACL,CAAC;SAAM,CAAC;QACN,YAAY,CAAC,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACnD,CAAC;AACH,CAAC;AAED;;;;GAIG;AACH,SAAS,WAAW,CAAC,GAAuB;IAC1C,IAAI,CAAC,GAAG;QAAE,OAAO,EAAE,CAAC;IACpB,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAC;IAC/B,KAAK,MAAM,OAAO,IAAI,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC;QACrC,MAAM,OAAO,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC;QAC/B,IAAI,OAAO;YAAE,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;IACjC,CAAC;IACD,OAAO,CAAC,GAAG,IAAI,CAAC,CAAC;AACnB,CAAC;AAED;;;;;;;;;;;;;GAaG;AACH,KAAK,UAAU,eAAe,CAC5B,MAAgB,EAChB,QAA6B;IAE7B,MAAM,KAAK,GAAG,IAAI,GAAG,EAAuB,CAAC;IAC7C,MAAM,QAAQ,GAAG,IAAI,GAAG,EAA6C,CAAC;IAEtE,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,GAAG,CAC/B,MAAM,CAAC,GAAG,CAAC,KAAK,EAAE,KAAK,EAA+B,EAAE;QACtD,MAAM,QAAQ,GAAG,KAAK,CAAC,WAAW,EAAE,CAAC;QACrC,MAAM,GAAG,GAAG,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAChC,IAAI,GAAG;YAAE,OAAO,GAAG,CAAC;QAEpB,IAAI,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC;YAClB,MAAM,GAAG,GAAgB,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC;YAC9C,KAAK,CAAC,GAAG,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;YACzB,OAAO,GAAG,CAAC;QACb,CAAC;QAED,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,EAAE,CAAC;YAC3B,QAAQ,CAAC,IAAI,CAAC;gBACZ,KAAK;gBACL,MAAM,EAAE,sDAAsD;aAC/D,CAAC,CAAC;YACH,OAAO,IAAI,CAAC;QACd,CAAC;QAED,IAAI,CAAC;YACH,IAAI,UAAU,GAAG,QAAQ,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;YACxC,IAAI,CAAC,UAAU,EAAE,CAAC;gBAChB,UAAU,GAAG,4BAA4B,CAAC,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC;gBACjE,QAAQ,CAAC,GAAG,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;YACrC,CAAC;YACD,MAAM,QAAQ,GAAG,MAAM,UAAU,CAAC;YAClC,IAAI,CAAC,QAAQ,EAAE,CAAC;gBACd,QAAQ,CAAC,IAAI,CAAC;oBACZ,KAAK;oBACL,MAAM,EACJ,yFAAyF;iBAC5F,CAAC,CAAC;gBACH,OAAO,IAAI,CAAC;YACd,CAAC;YAED,MAAM,GAAG,GAAgB;gBACvB,EAAE,EAAE,QAAQ,CAAC,EAAE;gBACf,KAAK;gBACL,KAAK,EAAE,KAAK;gBACZ,WAAW,EAAE,QAAQ,CAAC,WAAW;aAClC,CAAC;YACF,KAAK,CAAC,GAAG,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;YACzB,OAAO,GAAG,CAAC;QACb,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,QAAQ,CAAC,IAAI,CAAC;gBACZ,KAAK;gBACL,MAAM,EAAE,wBAAwB,CAAC,KAAK,CAAC;aACxC,CAAC,CAAC;YACH,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC,CAAC,CACH,CAAC;IAEF,OAAO,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAoB,EAAE,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC;AAC7D,CAAC;AAED;;;GAGG;AACH,SAAS,cAAc,CAAC,QAA6B;IACnD,MAAM,IAAI,GAAG,QAAQ,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC;IACzD,MAAM,KAAK,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC;IACjE,OAAO,CAAC,qBAAqB,QAAQ,CAAC,MAAM,IAAI,IAAI,GAAG,EAAE,GAAG,KAAK,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAChF,CAAC;AAED;;;;;;;;;GASG;AACH,SAAS,wBAAwB,CAAC,KAAc;IAC9C,IAAI,KAAK,YAAY,eAAe,EAAE,CAAC;QACrC,MAAM,OAAO,GAAG,2BAA2B,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QACxD,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;YAC1B,OAAO,SAAS,KAAK,CAAC,MAAM,KAAK,OAAO,EAAE,CAAC;QAC7C,CAAC;QACD,OAAO,KAAK,CAAC,OAAO,CAAC;IACvB,CAAC;IACD,OAAO,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AAChE,CAAC;AAED;;;;;GAKG;AACH,SAAS,2BAA2B,CAAC,IAAwB;IAC3D,IAAI,CAAC,IAAI;QAAE,OAAO,SAAS,CAAC;IAC5B,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAA4C,CAAC;QAC3E,MAAM,OAAO,GAAG,MAAM,EAAE,KAAK,EAAE,OAAO,CAAC;QACvC,OAAO,OAAO,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC;IAC3D,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,SAAS,CAAC;IACnB,CAAC;AACH,CAAC;AAED;;;;;GAKG;AACH,SAAS,cAAc,CAAC,KAAa;IACnC,OAAO,4BAA4B,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AAClD,CAAC;AAED;;;;;;GAMG;AACH,SAAS,iBAAiB,CAAC,GAAgB;IACzC,OAAO;QACL,IAAI,EAAE,GAAG,CAAC,WAAW,IAAI,GAAG,CAAC,KAAK;QAClC,UAAU,EAAE;YACV,QAAQ,EAAE,qBAAqB;YAC/B,SAAS,EAAE,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,GAAG,CAAC,EAAE,EAAE,KAAK,EAAE,GAAG,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,GAAG,CAAC,EAAE,EAAE;SACzE;KACF,CAAC;AACJ,CAAC;AAED;;;;;GAKG;AACH,SAAS,YAAY,CACnB,OAAe,EACf,IAA4B,EAC5B,UAAkB,EAClB,MAAwC;IAExC,IAAI,IAAI,KAAK,OAAO,EAAE,CAAC;QACrB,MAAM,YAAY,GAAG,MAAM,CAAC,GAAG,EAAE,MAAM,IAAI,CAAC,CAAC;QAC7C,IAAI,YAAY,KAAK,CAAC,EAAE,CAAC;YACvB,SAAS,CAAC,0BAA0B,CAAC,CAAC;YACtC,OAAO;QACT,CAAC;QACD,YAAY,CACV,eAAe,OAAO,UAAU,YAAY,IAAI,SAAS,CAAC,WAAW,EAAE,YAAY,CAAC,8BAA8B,CACnH,CAAC;QACF,OAAO;IACT,CAAC;IACD,YAAY,CACV,gCAAgC,UAAU,IAAI,SAAS,CAAC,WAAW,EAAE,UAAU,CAAC,QAAQ,OAAO,IAAI,CACpG,CAAC;AACJ,CAAC;AAED,SAAS,SAAS,CAAC,IAAY,EAAE,KAAa;IAC5C,OAAO,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,GAAG,CAAC;AACzC,CAAC;AAED,SAAS,qBAAqB,CAC5B,gBAAkC,EAClC,IAA4B;IAE5B,MAAM,IAAI,GAAG,IAAI,KAAK,OAAO,CAAC,CAAC,CAAC,WAAW,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,WAAW,CAAC,GAAG,CAAC,OAAO,CAAC;IAChF,MAAM,IAAI,GAAG,IAAI,KAAK,OAAO,CAAC,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,uBAAuB,CAAC;IAChF,gBAAgB,CAAC,cAAc,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IAClD,gBAAgB,CAAC,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IAC5C,gBAAgB,CAAC,oBAAoB,CAAC,cAAc,CAAC,CAAC;IACtD,gBAAgB,CAAC,UAAU,CAAC;QAC1B;YACE,KAAK,EAAE,EAAE,GAAG,EAAE,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE;YACjC,GAAG,EAAE,IAAI,CAAC,OAAO,CAAC,MAAM;YACxB,WAAW,EAAE,IAAI,CAAC,OAAO,CAAC,GAAG;YAC7B,wBAAwB,EAAE,IAAI;SAC/B;KACF,CAAC,CAAC;AACL,CAAC"}
1
+ {"version":3,"file":"MaafAppPermissions.js","sourceRoot":"","sources":["../../src/Verbs/MaafAppPermissions.ts"],"names":[],"mappings":"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"}
@@ -24,14 +24,14 @@ export interface PackOptions {
24
24
  }
25
25
  /**
26
26
  * Validates the pack-related fields of `ms.config.json` (`buildPath`,
27
- * `buildCommand`) without performing any I/O. Call this before any user-facing
28
- * confirmation prompt so config errors surface up-front instead of after the
29
- * user confirms.
27
+ * `buildCommand`, `buildEntryPoint`) without performing any I/O. Call this before
28
+ * any user-facing confirmation prompt so config errors surface up-front instead
29
+ * of after the user confirms.
30
30
  *
31
- * Typed as a TypeScript assertion predicate so callers can use `appConfig.buildPath` and
32
- * `appConfig.buildCommand` as `string` (not `string | undefined`) without casts.
31
+ * Typed as a TypeScript assertion predicate so callers can use the validated
32
+ * fields as `string` (not `string | undefined`) without casts.
33
33
  */
34
- export declare function assertPackPreconditions(appConfig: AppConfig): asserts appConfig is AppConfig & Required<Pick<AppConfig, 'buildPath' | 'buildCommand'>>;
34
+ export declare function assertPackPreconditions(appConfig: AppConfig): asserts appConfig is AppConfig & Required<Pick<AppConfig, 'buildPath' | 'buildCommand' | 'buildEntryPoint'>>;
35
35
  /**
36
36
  * Runs the configured build command and copies its output into the canonical packed
37
37
  * layout `<projectRoot>/.{CLI_BINARY_NAME}/packed/apps/<appId>/client/`. Returns the
@@ -1 +1 @@
1
- {"version":3,"file":"Pack.d.ts","sourceRoot":"","sources":["../../src/Verbs/Pack.ts"],"names":[],"mappings":"AAAA;;GAEG;AAMH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,uCAAuC,CAAC;AAIvE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAS5D,MAAM,WAAW,UAAU;IACzB,6CAA6C;IAC7C,KAAK,EAAE,MAAM,CAAC;IACd,6EAA6E;IAC7E,YAAY,EAAE,MAAM,CAAC;IACrB,6HAA6H;IAC7H,gBAAgB,EAAE,MAAM,CAAC;IACzB,sFAAsF;IACtF,mBAAmB,EAAE,MAAM,CAAC;CAC7B;AAED,MAAM,WAAW,WAAW;IAC1B;;;;;OAKG;IACH,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED;;;;;;;;GAQG;AACH,wBAAgB,uBAAuB,CACrC,SAAS,EAAE,SAAS,GACnB,OAAO,CAAC,SAAS,IAAI,SAAS,GAAG,QAAQ,CAAC,IAAI,CAAC,SAAS,EAAE,WAAW,GAAG,cAAc,CAAC,CAAC,CAO1F;AAED;;;;GAIG;AACH,wBAAsB,oBAAoB,CAAC,OAAO,GAAE,WAAgB,GAAG,OAAO,CAAC,UAAU,CAAC,CAkDzF;AA4CD,wBAAsB,SAAS,CAAC,gBAAgB,EAAE,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC,CAcjF"}
1
+ {"version":3,"file":"Pack.d.ts","sourceRoot":"","sources":["../../src/Verbs/Pack.ts"],"names":[],"mappings":"AAAA;;GAEG;AAMH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,uCAAuC,CAAC;AAOvE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAsB5D,MAAM,WAAW,UAAU;IACzB,6CAA6C;IAC7C,KAAK,EAAE,MAAM,CAAC;IACd,6EAA6E;IAC7E,YAAY,EAAE,MAAM,CAAC;IACrB,6HAA6H;IAC7H,gBAAgB,EAAE,MAAM,CAAC;IACzB,sFAAsF;IACtF,mBAAmB,EAAE,MAAM,CAAC;CAC7B;AAED,MAAM,WAAW,WAAW;IAC1B;;;;;OAKG;IACH,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED;;;;;;;;GAQG;AACH,wBAAgB,uBAAuB,CACrC,SAAS,EAAE,SAAS,GACnB,OAAO,CAAC,SAAS,IAAI,SAAS,GAC/B,QAAQ,CAAC,IAAI,CAAC,SAAS,EAAE,WAAW,GAAG,cAAc,GAAG,iBAAiB,CAAC,CAAC,CAY5E;AAED;;;;GAIG;AACH,wBAAsB,oBAAoB,CAAC,OAAO,GAAE,WAAgB,GAAG,OAAO,CAAC,UAAU,CAAC,CA0GzF;AAiDD,wBAAsB,SAAS,CAAC,gBAAgB,EAAE,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC,CAcjF"}
@@ -5,22 +5,29 @@ import * as fsp from 'node:fs/promises';
5
5
  import * as path from 'node:path';
6
6
  import { GENERATED_FOLDERNAME } from '@microsoft/managed-apps-codegen';
7
7
  import { AppConfigFileName } from '@microsoft/managed-apps-common/config';
8
+ import { PACK_MANIFEST_VERSION } from '@microsoft/managed-apps-common/types';
8
9
  import JSON5 from 'json5';
10
+ import packageJson from '../../package.json' with { type: 'json' };
9
11
  import { getSettings } from '../CliSettings.js';
10
12
  import { CLI_BINARY_NAME } from '../Constants/CliConstants.js';
11
13
  import { HelpStrings } from '../Constants/HelpStrings.js';
12
14
  import { AppError, ConfigurationError } from '../Errors/CliError.js';
15
+ import { bundleFunctionsAsync } from '../Middletier/FunctionsBundler.js';
16
+ import { assertFunctionsDirectoryExists, buildFunctionRoutes, buildFunctionsArchiveAsync, discoverFunctionsAsync, FUNCTIONS_ARCHIVE_DESCRIPTOR, FUNCTIONS_ARCHIVE_NAME, } from '../Middletier/PackFunctions.js';
13
17
  import { printInfo, printJsonSuccess, printSuccess } from '../Utils/ConsoleOutput.js';
14
18
  import { runCommandAsync } from '../Utils/RunCommand.js';
15
19
  import { CliSpinner } from '../Utils/Spinner.js';
20
+ const CLIENT_DIRECTORY_NAME = 'client';
21
+ const MANIFEST_FILENAME = 'manifest.json';
22
+ const DATA_SOURCES_JSON_FILENAME = 'dataSources.json';
16
23
  /**
17
24
  * Validates the pack-related fields of `ms.config.json` (`buildPath`,
18
- * `buildCommand`) without performing any I/O. Call this before any user-facing
19
- * confirmation prompt so config errors surface up-front instead of after the
20
- * user confirms.
25
+ * `buildCommand`, `buildEntryPoint`) without performing any I/O. Call this before
26
+ * any user-facing confirmation prompt so config errors surface up-front instead
27
+ * of after the user confirms.
21
28
  *
22
- * Typed as a TypeScript assertion predicate so callers can use `appConfig.buildPath` and
23
- * `appConfig.buildCommand` as `string` (not `string | undefined`) without casts.
29
+ * Typed as a TypeScript assertion predicate so callers can use the validated
30
+ * fields as `string` (not `string | undefined`) without casts.
24
31
  */
25
32
  export function assertPackPreconditions(appConfig) {
26
33
  if (!appConfig.buildPath) {
@@ -29,6 +36,9 @@ export function assertPackPreconditions(appConfig) {
29
36
  if (!appConfig.buildCommand) {
30
37
  throw new ConfigurationError(`buildCommand is required in ${AppConfigFileName} to pack an app`);
31
38
  }
39
+ if (!appConfig.buildEntryPoint) {
40
+ throw new ConfigurationError(`buildEntryPoint is required in ${AppConfigFileName} to pack an app`);
41
+ }
32
42
  }
33
43
  /**
34
44
  * Runs the configured build command and copies its output into the canonical packed
@@ -46,25 +56,75 @@ export async function packAppArtifactAsync(options = {}) {
46
56
  throw new ConfigurationError(`appId is required in ${AppConfigFileName} to pack an app`);
47
57
  }
48
58
  assertPackPreconditions(appConfig);
49
- const { buildPath, buildCommand } = appConfig;
59
+ const { buildPath, buildCommand, buildEntryPoint } = appConfig;
50
60
  const projectRoot = path.dirname(path.resolve(fileConfig.appConfigPath));
51
61
  const packedFolder = path.join(projectRoot, `.${CLI_BINARY_NAME}`, 'packed');
52
62
  const packAppOutputDir = path.join(packedFolder, 'apps', appId);
53
- const packClientOutputDir = path.join(packAppOutputDir, 'client');
63
+ const packClientOutputDir = path.join(packAppOutputDir, CLIENT_DIRECTORY_NAME);
64
+ // Validate functions config up-front so a missing directory fails before the
65
+ // build runs.
66
+ const functionsBaseDirectory = appConfig.functions?.baseDirectory
67
+ ? path.resolve(projectRoot, appConfig.functions.baseDirectory)
68
+ : undefined;
69
+ if (functionsBaseDirectory !== undefined) {
70
+ await assertFunctionsDirectoryExists(functionsBaseDirectory);
71
+ }
54
72
  if (!quiet) {
55
73
  printInfo(`Running: ${buildCommand}`);
56
74
  }
57
75
  await runCommandAsync(buildCommand, projectRoot, { quiet });
58
76
  const resolvedBuildPath = path.resolve(projectRoot, buildPath);
59
77
  const spinner = quiet ? null : new CliSpinner();
60
- spinner?.start();
78
+ spinner?.start('Packing client output...');
61
79
  try {
62
80
  await fsp.rm(packedFolder, { recursive: true, force: true });
63
81
  await fsp.mkdir(packClientOutputDir, { recursive: true });
64
82
  await fsp.cp(resolvedBuildPath, packClientOutputDir, { recursive: true });
65
83
  await fsp.copyFile(path.resolve(fileConfig.appConfigPath), path.join(packAppOutputDir, AppConfigFileName));
66
- await extractDataSourcesAsync(projectRoot, packAppOutputDir, { quiet });
67
- await fsp.writeFile(path.join(packAppOutputDir, 'manifest.json'), JSON.stringify({ hasCustomMiddleTier: false }, null, 2));
84
+ const dataSourcesJson = await extractDataSourcesAsync(projectRoot, packAppOutputDir, {
85
+ quiet,
86
+ });
87
+ const functions = functionsBaseDirectory !== undefined
88
+ ? await discoverFunctionsAsync(functionsBaseDirectory)
89
+ : [];
90
+ const hasFunctionsArchive = functions.length > 0;
91
+ const baseDirName = functionsBaseDirectory !== undefined ? path.basename(functionsBaseDirectory) : undefined;
92
+ const routes = {
93
+ '/': { type: 'client', path: buildEntryPoint },
94
+ };
95
+ if (hasFunctionsArchive && baseDirName !== undefined) {
96
+ Object.assign(routes, buildFunctionRoutes(functions, baseDirName));
97
+ }
98
+ const manifest = {
99
+ cliVersion: packageJson.version,
100
+ manifestVersion: PACK_MANIFEST_VERSION,
101
+ clientDirectory: CLIENT_DIRECTORY_NAME,
102
+ hasCustomMiddleTier: hasFunctionsArchive,
103
+ ...(hasFunctionsArchive
104
+ ? {
105
+ functionsPackage: {
106
+ path: FUNCTIONS_ARCHIVE_NAME,
107
+ ...FUNCTIONS_ARCHIVE_DESCRIPTOR,
108
+ },
109
+ }
110
+ : {}),
111
+ routes,
112
+ };
113
+ const manifestContent = JSON.stringify(manifest, null, 2);
114
+ await fsp.writeFile(path.join(packAppOutputDir, MANIFEST_FILENAME), manifestContent);
115
+ if (hasFunctionsArchive && baseDirName !== undefined) {
116
+ spinner?.update(`Bundling ${functions.length} function${functions.length === 1 ? '' : 's'}...`);
117
+ const bundles = await bundleFunctionsAsync({ projectRoot, functions });
118
+ spinner?.update('Writing functions archive...');
119
+ const archive = await buildFunctionsArchiveAsync({
120
+ baseDirName,
121
+ functions,
122
+ bundles,
123
+ manifestContent,
124
+ dataSourcesJson,
125
+ });
126
+ await fsp.writeFile(path.join(packAppOutputDir, FUNCTIONS_ARCHIVE_NAME), archive);
127
+ }
68
128
  }
69
129
  finally {
70
130
  spinner?.stop();
@@ -73,6 +133,12 @@ export async function packAppArtifactAsync(options = {}) {
73
133
  }
74
134
  const DATA_SOURCES_TS_PATH = path.join(GENERATED_FOLDERNAME, 'dataSources.ts');
75
135
  const DATA_SOURCES_EXPORT_REGEX = /export\s+default\s+(\{[\s\S]*\});/;
136
+ /**
137
+ * Reads `generated/dataSources.ts`, extracts the embedded JSON, and writes
138
+ * `dataSources.json` next to the manifest. Returns the JSON string (so the
139
+ * functions packager can include it in the archive without a disk roundtrip),
140
+ * or `undefined` when the generator hasn't produced `dataSources.ts` yet.
141
+ */
76
142
  async function extractDataSourcesAsync(projectRoot, packAppOutputDir, options) {
77
143
  const dataSourcesTsPath = path.join(projectRoot, DATA_SOURCES_TS_PATH);
78
144
  try {
@@ -82,7 +148,7 @@ async function extractDataSourcesAsync(projectRoot, packAppOutputDir, options) {
82
148
  if (!options.quiet) {
83
149
  printInfo(`${DATA_SOURCES_TS_PATH} not found — dataSources.json will not be included in the pack.`);
84
150
  }
85
- return;
151
+ return undefined;
86
152
  }
87
153
  const fileContent = await fsp.readFile(dataSourcesTsPath, 'utf-8');
88
154
  const match = DATA_SOURCES_EXPORT_REGEX.exec(fileContent);
@@ -96,7 +162,9 @@ async function extractDataSourcesAsync(projectRoot, packAppOutputDir, options) {
96
162
  catch (err) {
97
163
  throw new AppError(`${DATA_SOURCES_TS_PATH} has an unexpected format: ${err.message}`);
98
164
  }
99
- await fsp.writeFile(path.join(packAppOutputDir, 'dataSources.json'), JSON.stringify(parsed, null, 2));
165
+ const jsonContent = JSON.stringify(parsed, null, 2);
166
+ await fsp.writeFile(path.join(packAppOutputDir, DATA_SOURCES_JSON_FILENAME), jsonContent);
167
+ return jsonContent;
100
168
  }
101
169
  export async function packAsync(argumentProvider) {
102
170
  argumentProvider.setDescription(HelpStrings.app.pack.description);
@@ -1 +1 @@
1
- {"version":3,"file":"Pack.js","sourceRoot":"","sources":["../../src/Verbs/Pack.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Pack.js","sourceRoot":"","sources":["../../src/Verbs/Pack.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,GAAG,MAAM,kBAAkB,CAAC;AACxC,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAElC,OAAO,EAAE,oBAAoB,EAAE,MAAM,iCAAiC,CAAC;AAEvE,OAAO,EAAE,iBAAiB,EAAE,MAAM,uCAAuC,CAAC;AAE1E,OAAO,EAAE,qBAAqB,EAAE,MAAM,sCAAsC,CAAC;AAC7E,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,WAAW,MAAM,oBAAoB,CAAC,OAAO,IAAI,EAAE,MAAM,EAAE,CAAC;AAEnE,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC7C,OAAO,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAC5D,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AACvD,OAAO,EAAE,QAAQ,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAClE,OAAO,EAAE,oBAAoB,EAAE,MAAM,gCAAgC,CAAC;AACtE,OAAO,EACL,8BAA8B,EAC9B,mBAAmB,EACnB,0BAA0B,EAC1B,sBAAsB,EACtB,4BAA4B,EAC5B,sBAAsB,GACvB,MAAM,6BAA6B,CAAC;AACrC,OAAO,EAAE,SAAS,EAAE,gBAAgB,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AACnF,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AACtD,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAE9C,MAAM,qBAAqB,GAAG,QAAQ,CAAC;AACvC,MAAM,iBAAiB,GAAG,eAAe,CAAC;AAC1C,MAAM,0BAA0B,GAAG,kBAAkB,CAAC;AAuBtD;;;;;;;;GAQG;AACH,MAAM,UAAU,uBAAuB,CACrC,SAAoB;IAGpB,IAAI,CAAC,SAAS,CAAC,SAAS,EAAE,CAAC;QACzB,MAAM,IAAI,kBAAkB,CAAC,4BAA4B,iBAAiB,iBAAiB,CAAC,CAAC;IAC/F,CAAC;IACD,IAAI,CAAC,SAAS,CAAC,YAAY,EAAE,CAAC;QAC5B,MAAM,IAAI,kBAAkB,CAAC,+BAA+B,iBAAiB,iBAAiB,CAAC,CAAC;IAClG,CAAC;IACD,IAAI,CAAC,SAAS,CAAC,eAAe,EAAE,CAAC;QAC/B,MAAM,IAAI,kBAAkB,CAC1B,kCAAkC,iBAAiB,iBAAiB,CACrE,CAAC;IACJ,CAAC;AACH,CAAC;AAED;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,oBAAoB,CAAC,UAAuB,EAAE;IAClE,MAAM,EAAE,KAAK,GAAG,KAAK,EAAE,GAAG,OAAO,CAAC;IAClC,MAAM,EAAE,SAAS,EAAE,UAAU,EAAE,GAAG,WAAW,EAAE,CAAC;IAEhD,IAAI,CAAC,SAAS,EAAE,CAAC;QACf,MAAM,IAAI,kBAAkB,CAAC,GAAG,iBAAiB,6BAA6B,CAAC,CAAC;IAClF,CAAC;IAED,MAAM,KAAK,GAAG,SAAS,CAAC,KAAK,CAAC;IAC9B,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,MAAM,IAAI,kBAAkB,CAAC,wBAAwB,iBAAiB,iBAAiB,CAAC,CAAC;IAC3F,CAAC;IAED,uBAAuB,CAAC,SAAS,CAAC,CAAC;IACnC,MAAM,EAAE,SAAS,EAAE,YAAY,EAAE,eAAe,EAAE,GAAG,SAAS,CAAC;IAE/D,MAAM,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC,CAAC;IACzE,MAAM,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,eAAe,EAAE,EAAE,QAAQ,CAAC,CAAC;IAC7E,MAAM,gBAAgB,GAAG,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC;IAChE,MAAM,mBAAmB,GAAG,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE,qBAAqB,CAAC,CAAC;IAE/E,6EAA6E;IAC7E,cAAc;IACd,MAAM,sBAAsB,GAAG,SAAS,CAAC,SAAS,EAAE,aAAa;QAC/D,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,SAAS,CAAC,SAAS,CAAC,aAAa,CAAC;QAC9D,CAAC,CAAC,SAAS,CAAC;IACd,IAAI,sBAAsB,KAAK,SAAS,EAAE,CAAC;QACzC,MAAM,8BAA8B,CAAC,sBAAsB,CAAC,CAAC;IAC/D,CAAC;IAED,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,SAAS,CAAC,YAAY,YAAY,EAAE,CAAC,CAAC;IACxC,CAAC;IACD,MAAM,eAAe,CAAC,YAAY,EAAE,WAAW,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC;IAE5D,MAAM,iBAAiB,GAAG,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,SAAS,CAAC,CAAC;IAC/D,MAAM,OAAO,GAAG,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,UAAU,EAAE,CAAC;IAChD,OAAO,EAAE,KAAK,CAAC,0BAA0B,CAAC,CAAC;IAC3C,IAAI,CAAC;QACH,MAAM,GAAG,CAAC,EAAE,CAAC,YAAY,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;QAC7D,MAAM,GAAG,CAAC,KAAK,CAAC,mBAAmB,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAC1D,MAAM,GAAG,CAAC,EAAE,CAAC,iBAAiB,EAAE,mBAAmB,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAE1E,MAAM,GAAG,CAAC,QAAQ,CAChB,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,aAAa,CAAC,EACtC,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE,iBAAiB,CAAC,CAC/C,CAAC;QAEF,MAAM,eAAe,GAAG,MAAM,uBAAuB,CAAC,WAAW,EAAE,gBAAgB,EAAE;YACnF,KAAK;SACN,CAAC,CAAC;QAEH,MAAM,SAAS,GACb,sBAAsB,KAAK,SAAS;YAClC,CAAC,CAAC,MAAM,sBAAsB,CAAC,sBAAsB,CAAC;YACtD,CAAC,CAAC,EAAE,CAAC;QACT,MAAM,mBAAmB,GAAG,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC;QACjD,MAAM,WAAW,GACf,sBAAsB,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,sBAAsB,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QAE3F,MAAM,MAAM,GAA0B;YACpC,GAAG,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,eAAe,EAAE;SAC/C,CAAC;QACF,IAAI,mBAAmB,IAAI,WAAW,KAAK,SAAS,EAAE,CAAC;YACrD,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,mBAAmB,CAAC,SAAS,EAAE,WAAW,CAAC,CAAC,CAAC;QACrE,CAAC;QAED,MAAM,QAAQ,GAAiB;YAC7B,UAAU,EAAE,WAAW,CAAC,OAAO;YAC/B,eAAe,EAAE,qBAAqB;YACtC,eAAe,EAAE,qBAAqB;YACtC,mBAAmB,EAAE,mBAAmB;YACxC,GAAG,CAAC,mBAAmB;gBACrB,CAAC,CAAC;oBACE,gBAAgB,EAAE;wBAChB,IAAI,EAAE,sBAAsB;wBAC5B,GAAG,4BAA4B;qBAChC;iBACF;gBACH,CAAC,CAAC,EAAE,CAAC;YACP,MAAM;SACP,CAAC;QAEF,MAAM,eAAe,GAAG,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;QAC1D,MAAM,GAAG,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE,iBAAiB,CAAC,EAAE,eAAe,CAAC,CAAC;QAErF,IAAI,mBAAmB,IAAI,WAAW,KAAK,SAAS,EAAE,CAAC;YACrD,OAAO,EAAE,MAAM,CACb,YAAY,SAAS,CAAC,MAAM,YAAY,SAAS,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,KAAK,CAC/E,CAAC;YACF,MAAM,OAAO,GAAG,MAAM,oBAAoB,CAAC,EAAE,WAAW,EAAE,SAAS,EAAE,CAAC,CAAC;YACvE,OAAO,EAAE,MAAM,CAAC,8BAA8B,CAAC,CAAC;YAChD,MAAM,OAAO,GAAG,MAAM,0BAA0B,CAAC;gBAC/C,WAAW;gBACX,SAAS;gBACT,OAAO;gBACP,eAAe;gBACf,eAAe;aAChB,CAAC,CAAC;YACH,MAAM,GAAG,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE,sBAAsB,CAAC,EAAE,OAAO,CAAC,CAAC;QACpF,CAAC;IACH,CAAC;YAAS,CAAC;QACT,OAAO,EAAE,IAAI,EAAE,CAAC;IAClB,CAAC;IAED,OAAO,EAAE,KAAK,EAAE,YAAY,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,CAAC;AACxE,CAAC;AAED,MAAM,oBAAoB,GAAG,IAAI,CAAC,IAAI,CAAC,oBAAoB,EAAE,gBAAgB,CAAC,CAAC;AAC/E,MAAM,yBAAyB,GAAG,mCAAmC,CAAC;AAEtE;;;;;GAKG;AACH,KAAK,UAAU,uBAAuB,CACpC,WAAmB,EACnB,gBAAwB,EACxB,OAA2B;IAE3B,MAAM,iBAAiB,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,oBAAoB,CAAC,CAAC;IAEvE,IAAI,CAAC;QACH,MAAM,GAAG,CAAC,MAAM,CAAC,iBAAiB,CAAC,CAAC;IACtC,CAAC;IAAC,MAAM,CAAC;QACP,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;YACnB,SAAS,CACP,GAAG,oBAAoB,iEAAiE,CACzF,CAAC;QACJ,CAAC;QACD,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,MAAM,WAAW,GAAG,MAAM,GAAG,CAAC,QAAQ,CAAC,iBAAiB,EAAE,OAAO,CAAC,CAAC;IAEnE,MAAM,KAAK,GAAG,yBAAyB,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IAC1D,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAChB,MAAM,IAAI,QAAQ,CAAC,sCAAsC,oBAAoB,EAAE,CAAC,CAAC;IACnF,CAAC;IAED,IAAI,MAAe,CAAC;IACpB,IAAI,CAAC;QACH,MAAM,GAAG,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;IACjC,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,MAAM,IAAI,QAAQ,CAChB,GAAG,oBAAoB,8BAA+B,GAAa,CAAC,OAAO,EAAE,CAC9E,CAAC;IACJ,CAAC;IACD,MAAM,WAAW,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;IACpD,MAAM,GAAG,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE,0BAA0B,CAAC,EAAE,WAAW,CAAC,CAAC;IAC1F,OAAO,WAAW,CAAC;AACrB,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,SAAS,CAAC,gBAAkC;IAChE,gBAAgB,CAAC,cAAc,CAAC,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IAClE,gBAAgB,CAAC,WAAW,CAAC,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IAE5D,MAAM,gBAAgB,CAAC,OAAO,EAAE,CAAC;IAEjC,MAAM,QAAQ,GAAG,gBAAgB,CAAC,UAAU,EAAE,CAAC;IAC/C,MAAM,MAAM,GAAG,MAAM,oBAAoB,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAC;IAE/D,IAAI,QAAQ,EAAE,CAAC;QACb,gBAAgB,CAAC,MAAM,CAAC,CAAC;IAC3B,CAAC;SAAM,CAAC;QACN,YAAY,CAAC,0BAA0B,CAAC,CAAC;IAC3C,CAAC;AACH,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"RefreshDataSource.d.ts","sourceRoot":"","sources":["../../src/Verbs/RefreshDataSource.ts"],"names":[],"mappings":"AAAA;;GAEG;AAQH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAO5D,wBAAsB,sBAAsB,CAAC,gBAAgB,EAAE,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC,CA4C9F"}
1
+ {"version":3,"file":"RefreshDataSource.d.ts","sourceRoot":"","sources":["../../src/Verbs/RefreshDataSource.ts"],"names":[],"mappings":"AAAA;;GAEG;AAQH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAQ5D,wBAAsB,sBAAsB,CAAC,gBAAgB,EAAE,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC,CA4C9F"}
@@ -6,6 +6,7 @@ import { getCliLogger, getSettings } from '../CliSettings.js';
6
6
  import { promptConfirm, promptText } from '../CliUtils.js';
7
7
  import { CLI_BINARY_NAME } from '../Constants/CliConstants.js';
8
8
  import { HelpStrings } from '../Constants/HelpStrings.js';
9
+ import { printError, printInfo, printSuccess } from '../Utils/ConsoleOutput.js';
9
10
  import { RefreshDataSourceArguments } from './VerbConstants.js';
10
11
  export async function refreshDataSourceAsync(argumentProvider) {
11
12
  const settings = getSettings();
@@ -34,13 +35,13 @@ export async function refreshDataSourceAsync(argumentProvider) {
34
35
  };
35
36
  const result = await refreshDataSourceActionsAsync(config);
36
37
  for (const dsName of result.succeeded) {
37
- console.log(`'${dsName}' refreshed successfully.`);
38
+ printSuccess(`'${dsName}' refreshed successfully.`);
38
39
  }
39
40
  for (const failure of result.failed) {
40
- console.error(`Failed to refresh '${failure.dataSourceName}': ${failure.error}`);
41
+ printError(`Failed to refresh '${failure.dataSourceName}': ${failure.error}`);
41
42
  }
42
43
  if (result.succeeded.length > 0 && result.failed.length === 0) {
43
- console.log(`Hint: Run 'npx ${CLI_BINARY_NAME} run' to test locally, or 'npx ${CLI_BINARY_NAME} push' to deploy.`);
44
+ printInfo(`Hint: Run 'npx ${CLI_BINARY_NAME} run' to test locally.`);
44
45
  }
45
46
  }
46
47
  function createOptionSchema(argumentProvider) {
@@ -1 +1 @@
1
- {"version":3,"file":"RefreshDataSource.js","sourceRoot":"","sources":["../../src/Verbs/RefreshDataSource.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"RefreshDataSource.js","sourceRoot":"","sources":["../../src/Verbs/RefreshDataSource.ts"],"names":[],"mappings":"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"}
@@ -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 refreshGitAuthAsync(argumentProvider: ArgumentProvider): Promise<void>;
6
+ //# sourceMappingURL=RefreshGitAuth.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RefreshGitAuth.d.ts","sourceRoot":"","sources":["../../src/Verbs/RefreshGitAuth.ts"],"names":[],"mappings":"AAAA;;GAEG;AAiBH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAc5D,wBAAsB,mBAAmB,CAAC,gBAAgB,EAAE,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC,CA2G3F"}