@microsoft/managed-apps-cli 0.7.0 → 0.8.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +31 -1
- package/dist/ArgumentProvider.d.ts +11 -0
- package/dist/ArgumentProvider.d.ts.map +1 -1
- package/dist/ArgumentProvider.js +36 -1
- package/dist/ArgumentProvider.js.map +1 -1
- package/dist/Cli.d.ts.map +1 -1
- package/dist/Cli.js +1 -0
- package/dist/Cli.js.map +1 -1
- package/dist/CliSettings.d.ts.map +1 -1
- package/dist/CliSettings.js +1 -2
- package/dist/CliSettings.js.map +1 -1
- package/dist/CliUtils.d.ts +9 -2
- package/dist/CliUtils.d.ts.map +1 -1
- package/dist/CliUtils.js +4 -0
- package/dist/CliUtils.js.map +1 -1
- package/dist/Constants/CommandRegistry.d.ts.map +1 -1
- package/dist/Constants/CommandRegistry.js +28 -1
- package/dist/Constants/CommandRegistry.js.map +1 -1
- package/dist/Constants/HelpStrings.d.ts +54 -4
- package/dist/Constants/HelpStrings.d.ts.map +1 -1
- package/dist/Constants/HelpStrings.js +104 -33
- package/dist/Constants/HelpStrings.js.map +1 -1
- package/dist/Errors/GitHubErrorMap.d.ts.map +1 -1
- package/dist/Errors/GitHubErrorMap.js +1 -1
- package/dist/Errors/GitHubErrorMap.js.map +1 -1
- package/dist/FS/CliFs.d.ts.map +1 -1
- package/dist/FS/CliFs.js.map +1 -1
- package/dist/HttpClient/CliHttpClient.d.ts +17 -0
- package/dist/HttpClient/CliHttpClient.d.ts.map +1 -1
- package/dist/HttpClient/CliHttpClient.js +112 -1
- package/dist/HttpClient/CliHttpClient.js.map +1 -1
- package/dist/Logger/CliLogger.d.ts.map +1 -1
- package/dist/Logger/CliLogger.js +1 -1
- package/dist/Logger/CliLogger.js.map +1 -1
- package/dist/Types/Command.types.d.ts +14 -3
- package/dist/Types/Command.types.d.ts.map +1 -1
- package/dist/Types/Command.types.js +4 -0
- package/dist/Types/Command.types.js.map +1 -1
- package/dist/Utils/BuildPolling.d.ts +18 -0
- package/dist/Utils/BuildPolling.d.ts.map +1 -0
- package/dist/Utils/BuildPolling.js +63 -0
- package/dist/Utils/BuildPolling.js.map +1 -0
- package/dist/Utils/BuildVerbDescriptionTable.d.ts +11 -1
- package/dist/Utils/BuildVerbDescriptionTable.d.ts.map +1 -1
- package/dist/Utils/BuildVerbDescriptionTable.js +73 -17
- package/dist/Utils/BuildVerbDescriptionTable.js.map +1 -1
- package/dist/Utils/DcfRecovery.d.ts +84 -0
- package/dist/Utils/DcfRecovery.d.ts.map +1 -0
- package/dist/Utils/DcfRecovery.js +258 -0
- package/dist/Utils/DcfRecovery.js.map +1 -0
- package/dist/Utils/EnhanceNetworkError.d.ts.map +1 -1
- package/dist/Utils/EnhanceNetworkError.js +2 -0
- package/dist/Utils/EnhanceNetworkError.js.map +1 -1
- package/dist/Utils/EnvVars.d.ts +1 -1
- package/dist/Utils/EnvVars.d.ts.map +1 -1
- package/dist/Utils/EnvVars.js.map +1 -1
- package/dist/Utils/ResolveCommand.d.ts +7 -1
- package/dist/Utils/ResolveCommand.d.ts.map +1 -1
- package/dist/Utils/ResolveCommand.js +38 -20
- package/dist/Utils/ResolveCommand.js.map +1 -1
- package/dist/Verbs/AddConnector.d.ts.map +1 -1
- package/dist/Verbs/AddConnector.js.map +1 -1
- package/dist/Verbs/AddConnectorFlows.d.ts.map +1 -1
- package/dist/Verbs/AddConnectorFlows.js +2 -2
- package/dist/Verbs/AddConnectorFlows.js.map +1 -1
- package/dist/Verbs/BuildMaafApp.d.ts.map +1 -1
- package/dist/Verbs/BuildMaafApp.js +98 -22
- package/dist/Verbs/BuildMaafApp.js.map +1 -1
- package/dist/Verbs/ConnectorHelpers.d.ts.map +1 -1
- package/dist/Verbs/ConnectorHelpers.js.map +1 -1
- package/dist/Verbs/CreateMaafApp.d.ts +49 -0
- package/dist/Verbs/CreateMaafApp.d.ts.map +1 -1
- package/dist/Verbs/CreateMaafApp.js +197 -215
- package/dist/Verbs/CreateMaafApp.js.map +1 -1
- package/dist/Verbs/DeployMaafApp.d.ts.map +1 -1
- package/dist/Verbs/DeployMaafApp.js +48 -20
- package/dist/Verbs/DeployMaafApp.js.map +1 -1
- package/dist/Verbs/GetMaafBuildStatus.d.ts.map +1 -1
- package/dist/Verbs/GetMaafBuildStatus.js +66 -17
- package/dist/Verbs/GetMaafBuildStatus.js.map +1 -1
- package/dist/Verbs/Init.d.ts.map +1 -1
- package/dist/Verbs/Init.js +44 -2
- package/dist/Verbs/Init.js.map +1 -1
- package/dist/Verbs/ListFlows.d.ts.map +1 -1
- package/dist/Verbs/ListFlows.js +1 -2
- package/dist/Verbs/ListFlows.js.map +1 -1
- package/dist/Verbs/PlayMaafApp.d.ts +22 -0
- package/dist/Verbs/PlayMaafApp.d.ts.map +1 -0
- package/dist/Verbs/PlayMaafApp.js +147 -0
- package/dist/Verbs/PlayMaafApp.js.map +1 -0
- package/dist/Verbs/RefreshDataSource.d.ts.map +1 -1
- package/dist/Verbs/RefreshDataSource.js.map +1 -1
- package/dist/Verbs/RefreshGitAuth.d.ts.map +1 -1
- package/dist/Verbs/RefreshGitAuth.js +1 -1
- package/dist/Verbs/RefreshGitAuth.js.map +1 -1
- package/dist/Verbs/ShareLinkCreate.d.ts +23 -0
- package/dist/Verbs/ShareLinkCreate.d.ts.map +1 -0
- package/dist/Verbs/ShareLinkCreate.js +73 -0
- package/dist/Verbs/ShareLinkCreate.js.map +1 -0
- package/dist/Verbs/ShareLinkList.d.ts +16 -0
- package/dist/Verbs/ShareLinkList.d.ts.map +1 -0
- package/dist/Verbs/ShareLinkList.js +84 -0
- package/dist/Verbs/ShareLinkList.js.map +1 -0
- package/dist/Verbs/ShareLinkRevoke.d.ts +22 -0
- package/dist/Verbs/ShareLinkRevoke.d.ts.map +1 -0
- package/dist/Verbs/ShareLinkRevoke.js +137 -0
- package/dist/Verbs/ShareLinkRevoke.js.map +1 -0
- package/dist/Verbs/VerbConstants.d.ts +104 -8
- package/dist/Verbs/VerbConstants.d.ts.map +1 -1
- package/dist/Verbs/VerbConstants.js +96 -13
- package/dist/Verbs/VerbConstants.js.map +1 -1
- package/dist/Verbs/index.d.ts +4 -0
- package/dist/Verbs/index.d.ts.map +1 -1
- package/dist/Verbs/index.js +4 -0
- package/dist/Verbs/index.js.map +1 -1
- package/package.json +4 -4
|
@@ -12,6 +12,7 @@ export class CliHttpClient {
|
|
|
12
12
|
_forwardUrl;
|
|
13
13
|
_inflight = 0;
|
|
14
14
|
_spinner = new CliSpinner();
|
|
15
|
+
_logger;
|
|
15
16
|
/**
|
|
16
17
|
* @param _authenticationProvider — provides bearer tokens for `authResource`-tagged requests.
|
|
17
18
|
* @param _forwardUrl — when set, every request is forwarded to this URL with the original
|
|
@@ -22,6 +23,9 @@ export class CliHttpClient {
|
|
|
22
23
|
this._authenticationProvider = _authenticationProvider;
|
|
23
24
|
this._forwardUrl = _forwardUrl;
|
|
24
25
|
}
|
|
26
|
+
setLogger(logger) {
|
|
27
|
+
this._logger = logger;
|
|
28
|
+
}
|
|
25
29
|
async get(url, config) {
|
|
26
30
|
return this._sendRequestAsync(url, 'GET', config);
|
|
27
31
|
}
|
|
@@ -39,6 +43,24 @@ export class CliHttpClient {
|
|
|
39
43
|
}
|
|
40
44
|
async _sendRequestAsync(url, method, config) {
|
|
41
45
|
this._startSpinner();
|
|
46
|
+
const start = performance.now();
|
|
47
|
+
// Core fields mirror the shape emitted by
|
|
48
|
+
// `packages/managed-apps-common/src/http/middleware/telemetryMiddleware.ts`
|
|
49
|
+
// so a single Kusto query over `HttpClient.Request` covers CLI + runtime.
|
|
50
|
+
// CLI-specific attribution (forwardUrl, authResource, header allowlist) is
|
|
51
|
+
// appended alongside.
|
|
52
|
+
let scenarioData = {
|
|
53
|
+
url,
|
|
54
|
+
method,
|
|
55
|
+
status: 0,
|
|
56
|
+
succeeded: false,
|
|
57
|
+
duration: 0,
|
|
58
|
+
retried: false,
|
|
59
|
+
retryCount: 0,
|
|
60
|
+
forwardUrl: this._forwardUrl || '',
|
|
61
|
+
authResource: config?.authResource || '',
|
|
62
|
+
allowErrorResponse: config?.allowErrorResponse ? 'true' : 'false',
|
|
63
|
+
};
|
|
42
64
|
try {
|
|
43
65
|
const headers = config?.headers || {};
|
|
44
66
|
if (config?.authResource) {
|
|
@@ -69,7 +91,19 @@ export class CliHttpClient {
|
|
|
69
91
|
headers,
|
|
70
92
|
body: bodyContent,
|
|
71
93
|
};
|
|
94
|
+
scenarioData = {
|
|
95
|
+
...scenarioData,
|
|
96
|
+
...CliHttpClient._selectHeadersForLogging(headers, 'request'),
|
|
97
|
+
};
|
|
72
98
|
const response = await fetch(targetUrl, requestOptions);
|
|
99
|
+
scenarioData.status = response.status;
|
|
100
|
+
scenarioData.succeeded = response.ok;
|
|
101
|
+
scenarioData.duration = performance.now() - start;
|
|
102
|
+
scenarioData.correlationRequestId =
|
|
103
|
+
response.headers.get('x-ms-correlation-request-id') ?? undefined;
|
|
104
|
+
scenarioData.serverRequestId = response.headers.get('x-ms-request-id') ?? undefined;
|
|
105
|
+
scenarioData.contentType = response.headers.get('content-type') ?? undefined;
|
|
106
|
+
scenarioData.contentLength = response.headers.get('content-length') ?? undefined;
|
|
73
107
|
if (!response.ok && !config?.allowErrorResponse) {
|
|
74
108
|
const correlationId = response.headers.get('x-ms-correlation-id');
|
|
75
109
|
const correlationSuffix = correlationId ? ` (correlation ID: ${correlationId})` : '';
|
|
@@ -77,12 +111,30 @@ export class CliHttpClient {
|
|
|
77
111
|
// In forward mode the response came from the forwarder, not the
|
|
78
112
|
// original target — surface both so it's clear which hop failed.
|
|
79
113
|
const urlSuffix = this._forwardUrl ? `${url} via ${this._forwardUrl}` : url;
|
|
114
|
+
scenarioData.code = parseServerErrorCode(errorBody);
|
|
115
|
+
scenarioData = {
|
|
116
|
+
...scenarioData,
|
|
117
|
+
...CliHttpClient._selectHeadersForLogging(response.headers, 'response'),
|
|
118
|
+
};
|
|
80
119
|
throw new HttpClientError(`HTTP error status: ${response.status} for ${method} ${urlSuffix}${correlationSuffix}: ${errorBody}`, {
|
|
81
120
|
status: response.status,
|
|
82
121
|
code: parseServerErrorCode(errorBody),
|
|
83
122
|
body: errorBody,
|
|
84
123
|
});
|
|
85
124
|
}
|
|
125
|
+
try {
|
|
126
|
+
// Falls through for both successful responses and error responses when
|
|
127
|
+
// allowErrorResponse is true. Always emit `HttpClient.Request` to keep
|
|
128
|
+
// the telemetry vocabulary aligned with telemetryMiddleware.ts.
|
|
129
|
+
scenarioData = {
|
|
130
|
+
...CliHttpClient._selectHeadersForLogging(response.headers, 'response'),
|
|
131
|
+
...scenarioData,
|
|
132
|
+
};
|
|
133
|
+
this._logger?.trackActivityEvent('HttpClient.Request', scenarioData);
|
|
134
|
+
}
|
|
135
|
+
catch {
|
|
136
|
+
// No-op. Telemetry failures should not block CLI operations
|
|
137
|
+
}
|
|
86
138
|
// When allowErrorResponse is true and we got a non-2xx, fall through to parse the body
|
|
87
139
|
// so callers can inspect the structured error envelope (e.g. { error: { code, message } }).
|
|
88
140
|
const data = await this._parseResponse(response);
|
|
@@ -94,7 +146,21 @@ export class CliHttpClient {
|
|
|
94
146
|
}
|
|
95
147
|
catch (error) {
|
|
96
148
|
const errorUrl = this._forwardUrl ? `${url} via ${this._forwardUrl}` : url;
|
|
97
|
-
|
|
149
|
+
const enhancedError = enhanceNetworkError(error, method, errorUrl);
|
|
150
|
+
scenarioData.duration = performance.now() - start;
|
|
151
|
+
scenarioData.networkErrorCode = enhancedError.name;
|
|
152
|
+
scenarioData.name = enhancedError.name;
|
|
153
|
+
try {
|
|
154
|
+
// Mirror telemetryMiddleware: emit the same `HttpClient.Request` event
|
|
155
|
+
// for failures so success/failure share a single query surface.
|
|
156
|
+
// `succeeded`/`status` already default to false/0 from the initializer
|
|
157
|
+
// and remain unchanged unless we got an HTTP response above.
|
|
158
|
+
this._logger?.trackActivityEvent('HttpClient.Request', scenarioData);
|
|
159
|
+
}
|
|
160
|
+
catch {
|
|
161
|
+
// No-op. Telemetry failures should not block CLI operations
|
|
162
|
+
}
|
|
163
|
+
throw enhancedError;
|
|
98
164
|
}
|
|
99
165
|
finally {
|
|
100
166
|
this._stopSpinner();
|
|
@@ -131,6 +197,51 @@ export class CliHttpClient {
|
|
|
131
197
|
return responseText;
|
|
132
198
|
}
|
|
133
199
|
}
|
|
200
|
+
/**
|
|
201
|
+
* Allowlist of headers that are safe to emit to telemetry. Anything not in this
|
|
202
|
+
* list is dropped to avoid leaking bearer tokens, cookies, or other secrets.
|
|
203
|
+
* Keys are matched case-insensitively.
|
|
204
|
+
*/
|
|
205
|
+
static _LOGGABLE_REQUEST_HEADERS = new Set([
|
|
206
|
+
'content-type',
|
|
207
|
+
MS_CLIENT_REQUESTID.toLowerCase(),
|
|
208
|
+
MS_TARGET_URL.toLowerCase(),
|
|
209
|
+
MS_AUTH_RESOURCE.toLowerCase(),
|
|
210
|
+
]);
|
|
211
|
+
static _LOGGABLE_RESPONSE_HEADERS = new Set([
|
|
212
|
+
'content-type',
|
|
213
|
+
'x-ms-correlation-id',
|
|
214
|
+
'x-ms-request-id',
|
|
215
|
+
'retry-after',
|
|
216
|
+
]);
|
|
217
|
+
/**
|
|
218
|
+
* Filter headers to only those that are allowlisted or start with 'x-ms-' (Microsoft-specific
|
|
219
|
+
* headers), and prefix keys with 'reqHeader.' or 'resHeader.' for disambiguation in telemetry.
|
|
220
|
+
*
|
|
221
|
+
* motivation: The CLI may be used to call arbitrary endpoints (including via the forwarding feature).
|
|
222
|
+
*/
|
|
223
|
+
static _selectHeadersForLogging(headers, kind) {
|
|
224
|
+
const allowlist = kind === 'request'
|
|
225
|
+
? CliHttpClient._LOGGABLE_REQUEST_HEADERS
|
|
226
|
+
: CliHttpClient._LOGGABLE_RESPONSE_HEADERS;
|
|
227
|
+
const result = {};
|
|
228
|
+
const prefix = kind === 'request' ? 'reqHeader.' : 'resHeader.';
|
|
229
|
+
const visit = (name, value) => {
|
|
230
|
+
const lower = name.toLowerCase();
|
|
231
|
+
if (allowlist.has(lower) || lower.startsWith('x-ms-')) {
|
|
232
|
+
result[`${prefix}${lower}`] = value;
|
|
233
|
+
}
|
|
234
|
+
};
|
|
235
|
+
if (headers instanceof Headers) {
|
|
236
|
+
headers.forEach((value, name) => visit(name, value));
|
|
237
|
+
}
|
|
238
|
+
else {
|
|
239
|
+
for (const [name, value] of Object.entries(headers)) {
|
|
240
|
+
visit(name, value);
|
|
241
|
+
}
|
|
242
|
+
}
|
|
243
|
+
return result;
|
|
244
|
+
}
|
|
134
245
|
async _transformHeaders(headers) {
|
|
135
246
|
const result = {};
|
|
136
247
|
headers.forEach((value, key) => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CliHttpClient.js","sourceRoot":"","sources":["../../src/HttpClient/CliHttpClient.ts"],"names":[],"mappings":"AAAA;;GAEG;AAOH,OAAO,EACL,UAAU,EACV,eAAe,EACf,oBAAoB,GACrB,MAAM,yCAAyC,CAAC;
|
|
1
|
+
{"version":3,"file":"CliHttpClient.js","sourceRoot":"","sources":["../../src/HttpClient/CliHttpClient.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CliLogger.d.ts","sourceRoot":"","sources":["../../src/Logger/CliLogger.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,iCAAiC,CAAC;
|
|
1
|
+
{"version":3,"file":"CliLogger.d.ts","sourceRoot":"","sources":["../../src/Logger/CliLogger.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,iCAAiC,CAAC;AAOnE,OAAO,KAAK,EAAE,OAAO,EAAE,eAAe,EAAE,MAAM,0CAA0C,CAAC;AAIzF,OAAO,KAAK,EACV,WAAW,EACX,uBAAuB,EAExB,MAAM,oBAAoB,CAAC;AA2F5B;;;GAGG;AACH,qBAAa,SAAU,YAAW,OAAO;IACvC,OAAO,CAAC,iBAAiB,CAA0B;IACnD,OAAO,CAAC,YAAY,CAAC,CAOnB;IAEF,OAAO;WAIa,MAAM,CACxB,WAAW,EAAE,WAAW,EACxB,UAAU,EAAE,WAAW,GACtB,OAAO,CAAC,SAAS,CAAC;IA6BrB;;;OAGG;IACU,mBAAmB,CAAC,sBAAsB,EAAE,uBAAuB,GAAG,OAAO,CAAC,IAAI,CAAC;IA+CzF,kBAAkB,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI;IAatD,kBAAkB,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI;IAW/D,eAAe,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI;IAW5D,aAAa,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,eAAe;IAqBrE,iBAAiB,CAAC,KAAK,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI;IAI5D,kBAAkB,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI;IAIvD,YAAY,CAAC,SAAS,EAAE;QAAE,MAAM,CAAC,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI;IAI5E,IAAW,SAAS,IAAI,MAAM,GAAG,SAAS,CAEzC;IAED,IAAW,SAAS,CAAC,MAAM,EAAE,MAAM,EAElC;IAEM,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAMtB,YAAY,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC,GAAG,OAAO;CAMjF"}
|
package/dist/Logger/CliLogger.js
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
* Copyright (C) Microsoft Corporation. All rights reserved.
|
|
3
3
|
*/
|
|
4
4
|
import { getEnvironmentByName, initializePlayerServices } from '@microsoft/managed-apps-actions';
|
|
5
|
-
import { cloudToRegion, cloudToRegionSafe } from '@microsoft/managed-apps-common/services';
|
|
5
|
+
import { cloudToRegion, cloudToRegionSafe, } from '@microsoft/managed-apps-common/services';
|
|
6
6
|
import { randomUUID } from 'crypto';
|
|
7
7
|
import packageJson from '../../package.json' with { type: 'json' };
|
|
8
8
|
import { printError } from '../Utils/ConsoleOutput.js';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CliLogger.js","sourceRoot":"","sources":["../../src/Logger/CliLogger.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,EAAE,oBAAoB,EAAE,wBAAwB,EAAE,MAAM,iCAAiC,CAAC;AACjG,OAAO,
|
|
1
|
+
{"version":3,"file":"CliLogger.js","sourceRoot":"","sources":["../../src/Logger/CliLogger.ts"],"names":[],"mappings":"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"}
|
|
@@ -12,15 +12,26 @@ export interface LeafCommandDef {
|
|
|
12
12
|
handler: CommandHandler;
|
|
13
13
|
}
|
|
14
14
|
/**
|
|
15
|
-
* A typed verb group
|
|
16
|
-
*
|
|
15
|
+
* A typed verb group whose next token selects a subcommand. Commands within
|
|
16
|
+
* a typed verb may themselves be typed verbs, allowing arbitrarily deep
|
|
17
|
+
* nesting (e.g. `app share link create` — `share` is a typed verb, `link` is
|
|
18
|
+
* a nested typed verb, `create` is the leaf).
|
|
19
|
+
*
|
|
20
|
+
* A typed verb MAY also carry its own `handler` + `@helpText` to support
|
|
21
|
+
* "hybrid" verbs that accept a positional argument when the next token does
|
|
22
|
+
* not match a known subcommand. Example: `app share <principals>` (parent
|
|
23
|
+
* handler) coexisting with `app share link create` (nested subcommand).
|
|
17
24
|
*/
|
|
18
25
|
export interface TypedVerbDef {
|
|
19
26
|
typed: true;
|
|
20
|
-
|
|
27
|
+
'@helpText'?: string;
|
|
28
|
+
handler?: CommandHandler;
|
|
29
|
+
commands: Record<string, LeafCommandDef | TypedVerbDef>;
|
|
21
30
|
}
|
|
22
31
|
/** Type guard — narrows a verb entry to TypedVerbDef. */
|
|
23
32
|
export declare function isTypedVerbDef(entry: LeafCommandDef | TypedVerbDef): entry is TypedVerbDef;
|
|
33
|
+
/** Narrows to a hybrid TypedVerbDef that also carries a parent handler. */
|
|
34
|
+
export declare function hasParentHandler(entry: TypedVerbDef): entry is TypedVerbDef & Required<Pick<TypedVerbDef, 'handler' | '@helpText'>>;
|
|
24
35
|
/** A noun group with its description and command map. */
|
|
25
36
|
export interface NounDef {
|
|
26
37
|
'@description': string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Command.types.d.ts","sourceRoot":"","sources":["../../src/Types/Command.types.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAE5D,yEAAyE;AACzE,MAAM,MAAM,cAAc,GAAG,CAAC,gBAAgB,EAAE,gBAAgB,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;AAEnF,uEAAuE;AACvE,MAAM,MAAM,WAAW,GAAG,SAAS,MAAM,EAAE,CAAC;AAI5C,iDAAiD;AACjD,MAAM,WAAW,cAAc;IAC7B,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,cAAc,CAAC;CACzB;AAED
|
|
1
|
+
{"version":3,"file":"Command.types.d.ts","sourceRoot":"","sources":["../../src/Types/Command.types.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAE5D,yEAAyE;AACzE,MAAM,MAAM,cAAc,GAAG,CAAC,gBAAgB,EAAE,gBAAgB,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;AAEnF,uEAAuE;AACvE,MAAM,MAAM,WAAW,GAAG,SAAS,MAAM,EAAE,CAAC;AAI5C,iDAAiD;AACjD,MAAM,WAAW,cAAc;IAC7B,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,cAAc,CAAC;CACzB;AAED;;;;;;;;;;GAUG;AACH,MAAM,WAAW,YAAY;IAC3B,KAAK,EAAE,IAAI,CAAC;IACZ,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,CAAC,EAAE,cAAc,CAAC;IACzB,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,cAAc,GAAG,YAAY,CAAC,CAAC;CACzD;AAED,yDAAyD;AACzD,wBAAgB,cAAc,CAAC,KAAK,EAAE,cAAc,GAAG,YAAY,GAAG,KAAK,IAAI,YAAY,CAE1F;AAED,2EAA2E;AAC3E,wBAAgB,gBAAgB,CAC9B,KAAK,EAAE,YAAY,GAClB,KAAK,IAAI,YAAY,GAAG,QAAQ,CAAC,IAAI,CAAC,YAAY,EAAE,SAAS,GAAG,WAAW,CAAC,CAAC,CAE/E;AAED,yDAAyD;AACzD,MAAM,WAAW,OAAO;IACtB,cAAc,EAAE,MAAM,CAAC;IACvB,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,cAAc,GAAG,YAAY,CAAC,CAAC;CACzD;AAED;;;;;;GAMG;AACH,MAAM,MAAM,OAAO,GAAG,MAAM,GAAG,KAAK,GAAG,WAAW,GAAG,KAAK,GAAG,WAAW,CAAC;AAEzE;;;;GAIG;AACH,MAAM,MAAM,WAAW,GAAG,MAAM,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;AAEnD,+DAA+D;AAC/D,MAAM,WAAW,eAAe;IAC9B,gFAAgF;IAChF,IAAI,EAAE,WAAW,CAAC;IAClB,qCAAqC;IACrC,OAAO,EAAE,cAAc,CAAC;IACxB,kEAAkE;IAClE,cAAc,EAAE,MAAM,CAAC;CACxB"}
|
|
@@ -5,4 +5,8 @@
|
|
|
5
5
|
export function isTypedVerbDef(entry) {
|
|
6
6
|
return entry.typed === true;
|
|
7
7
|
}
|
|
8
|
+
/** Narrows to a hybrid TypedVerbDef that also carries a parent handler. */
|
|
9
|
+
export function hasParentHandler(entry) {
|
|
10
|
+
return typeof entry.handler === 'function';
|
|
11
|
+
}
|
|
8
12
|
//# sourceMappingURL=Command.types.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Command.types.js","sourceRoot":"","sources":["../../src/Types/Command.types.ts"],"names":[],"mappings":"AAAA;;GAEG;
|
|
1
|
+
{"version":3,"file":"Command.types.js","sourceRoot":"","sources":["../../src/Types/Command.types.ts"],"names":[],"mappings":"AAAA;;GAEG;AAoCH,yDAAyD;AACzD,MAAM,UAAU,cAAc,CAAC,KAAoC;IACjE,OAAQ,KAAsB,CAAC,KAAK,KAAK,IAAI,CAAC;AAChD,CAAC;AAED,2EAA2E;AAC3E,MAAM,UAAU,gBAAgB,CAC9B,KAAmB;IAEnB,OAAO,OAAO,KAAK,CAAC,OAAO,KAAK,UAAU,CAAC;AAC7C,CAAC"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
/*!
|
|
2
|
+
* Copyright (C) Microsoft Corporation. All rights reserved.
|
|
3
|
+
*/
|
|
4
|
+
import type { MaafBuildPollResult } from '@microsoft/managed-apps-actions';
|
|
5
|
+
export interface WaitForBuildStatusArgs {
|
|
6
|
+
appName: string;
|
|
7
|
+
commitSha: string;
|
|
8
|
+
initialWaitMs: number;
|
|
9
|
+
isJsonMode: boolean;
|
|
10
|
+
spinnerLabel?: string;
|
|
11
|
+
}
|
|
12
|
+
/**
|
|
13
|
+
* Polls `buildStatusAsync` for the given app + commit until the build reaches a
|
|
14
|
+
* terminal state. Shared between `ms app build` and `ms app play --mode preview`
|
|
15
|
+
* so both verbs surface identical waiting/error UX.
|
|
16
|
+
*/
|
|
17
|
+
export declare function waitForBuildStatusAsync(args: WaitForBuildStatusArgs): Promise<MaafBuildPollResult>;
|
|
18
|
+
//# sourceMappingURL=BuildPolling.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"BuildPolling.d.ts","sourceRoot":"","sources":["../../src/Utils/BuildPolling.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,iCAAiC,CAAC;AAS3E,MAAM,WAAW,sBAAsB;IACrC,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,aAAa,EAAE,MAAM,CAAC;IACtB,UAAU,EAAE,OAAO,CAAC;IACpB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED;;;;GAIG;AACH,wBAAsB,uBAAuB,CAC3C,IAAI,EAAE,sBAAsB,GAC3B,OAAO,CAAC,mBAAmB,CAAC,CAiC9B"}
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
/*!
|
|
2
|
+
* Copyright (C) Microsoft Corporation. All rights reserved.
|
|
3
|
+
*/
|
|
4
|
+
import { buildStatusAsync } from '@microsoft/managed-apps-actions';
|
|
5
|
+
import { getCliLogger } from '../CliSettings.js';
|
|
6
|
+
import { AppError } from '../Errors/CliError.js';
|
|
7
|
+
import { CliSpinner } from './Spinner.js';
|
|
8
|
+
const MIN_POLL_INTERVAL_MS = 1000;
|
|
9
|
+
/**
|
|
10
|
+
* Polls `buildStatusAsync` for the given app + commit until the build reaches a
|
|
11
|
+
* terminal state. Shared between `ms app build` and `ms app play --mode preview`
|
|
12
|
+
* so both verbs surface identical waiting/error UX.
|
|
13
|
+
*/
|
|
14
|
+
export async function waitForBuildStatusAsync(args) {
|
|
15
|
+
const logger = getCliLogger();
|
|
16
|
+
let waitMs = Math.max(MIN_POLL_INTERVAL_MS, args.initialWaitMs);
|
|
17
|
+
const spinner = args.isJsonMode ? null : new CliSpinner();
|
|
18
|
+
spinner?.start(args.spinnerLabel ?? 'Waiting for build status...');
|
|
19
|
+
try {
|
|
20
|
+
for (;;) {
|
|
21
|
+
await sleep(waitMs);
|
|
22
|
+
const status = await buildStatusAsync({
|
|
23
|
+
logger,
|
|
24
|
+
actionsParams: { appName: args.appName, commitSha: args.commitSha },
|
|
25
|
+
});
|
|
26
|
+
switch (status.status) {
|
|
27
|
+
case 'Succeeded':
|
|
28
|
+
return status;
|
|
29
|
+
case 'Failed':
|
|
30
|
+
case 'Canceled':
|
|
31
|
+
throw new AppError(`Build ${status.status.toLowerCase()}${formatStatusDetail(status.result)}.`);
|
|
32
|
+
case 'NotStarted':
|
|
33
|
+
case 'Running':
|
|
34
|
+
waitMs = Math.max(MIN_POLL_INTERVAL_MS, status.retryAfterMs ?? waitMs);
|
|
35
|
+
break;
|
|
36
|
+
default:
|
|
37
|
+
return status;
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
finally {
|
|
42
|
+
spinner?.stop();
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
function formatStatusDetail(result) {
|
|
46
|
+
if (typeof result === 'string' && result.trim()) {
|
|
47
|
+
return `: ${result}`;
|
|
48
|
+
}
|
|
49
|
+
if (result && typeof result === 'object') {
|
|
50
|
+
const parts = [];
|
|
51
|
+
if (typeof result.code === 'string' && result.code)
|
|
52
|
+
parts.push(result.code);
|
|
53
|
+
if (typeof result.message === 'string' && result.message)
|
|
54
|
+
parts.push(result.message);
|
|
55
|
+
if (parts.length > 0)
|
|
56
|
+
return `: ${parts.join(' - ')}`;
|
|
57
|
+
}
|
|
58
|
+
return '';
|
|
59
|
+
}
|
|
60
|
+
function sleep(ms) {
|
|
61
|
+
return new Promise((resolve) => setTimeout(resolve, ms));
|
|
62
|
+
}
|
|
63
|
+
//# sourceMappingURL=BuildPolling.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"BuildPolling.js","sourceRoot":"","sources":["../../src/Utils/BuildPolling.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,EAAE,gBAAgB,EAAE,MAAM,iCAAiC,CAAC;AAEnE,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAC9C,OAAO,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAEvC,MAAM,oBAAoB,GAAG,IAAI,CAAC;AAUlC;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,uBAAuB,CAC3C,IAA4B;IAE5B,MAAM,MAAM,GAAG,YAAY,EAAE,CAAC;IAC9B,IAAI,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,oBAAoB,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;IAChE,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,UAAU,EAAE,CAAC;IAE1D,OAAO,EAAE,KAAK,CAAC,IAAI,CAAC,YAAY,IAAI,6BAA6B,CAAC,CAAC;IACnE,IAAI,CAAC;QACH,SAAS,CAAC;YACR,MAAM,KAAK,CAAC,MAAM,CAAC,CAAC;YACpB,MAAM,MAAM,GAAG,MAAM,gBAAgB,CAAC;gBACpC,MAAM;gBACN,aAAa,EAAE,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,SAAS,EAAE,IAAI,CAAC,SAAS,EAAE;aACpE,CAAC,CAAC;YAEH,QAAQ,MAAM,CAAC,MAAM,EAAE,CAAC;gBACtB,KAAK,WAAW;oBACd,OAAO,MAAM,CAAC;gBAChB,KAAK,QAAQ,CAAC;gBACd,KAAK,UAAU;oBACb,MAAM,IAAI,QAAQ,CAChB,SAAS,MAAM,CAAC,MAAM,CAAC,WAAW,EAAE,GAAG,kBAAkB,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,CAC5E,CAAC;gBACJ,KAAK,YAAY,CAAC;gBAClB,KAAK,SAAS;oBACZ,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,oBAAoB,EAAE,MAAM,CAAC,YAAY,IAAI,MAAM,CAAC,CAAC;oBACvE,MAAM;gBACR;oBACE,OAAO,MAAM,CAAC;YAClB,CAAC;QACH,CAAC;IACH,CAAC;YAAS,CAAC;QACT,OAAO,EAAE,IAAI,EAAE,CAAC;IAClB,CAAC;AACH,CAAC;AAED,SAAS,kBAAkB,CAAC,MAAqC;IAC/D,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,MAAM,CAAC,IAAI,EAAE,EAAE,CAAC;QAChD,OAAO,KAAK,MAAM,EAAE,CAAC;IACvB,CAAC;IACD,IAAI,MAAM,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE,CAAC;QACzC,MAAM,KAAK,GAAa,EAAE,CAAC;QAC3B,IAAI,OAAO,MAAM,CAAC,IAAI,KAAK,QAAQ,IAAI,MAAM,CAAC,IAAI;YAAE,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QAC5E,IAAI,OAAO,MAAM,CAAC,OAAO,KAAK,QAAQ,IAAI,MAAM,CAAC,OAAO;YAAE,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QACrF,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC;YAAE,OAAO,KAAK,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;IACxD,CAAC;IACD,OAAO,EAAE,CAAC;AACZ,CAAC;AAED,SAAS,KAAK,CAAC,EAAU;IACvB,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,CAAC;AAC3D,CAAC"}
|
|
@@ -13,7 +13,17 @@ export declare function buildVerbDescriptionTable(): string;
|
|
|
13
13
|
export declare function buildNounHelpText(noun: string): string;
|
|
14
14
|
/**
|
|
15
15
|
* Builds help text for a typed subcommand verb (e.g., `app add`).
|
|
16
|
-
* Lists the available types.
|
|
16
|
+
* Lists the available types — including nested typed verbs.
|
|
17
17
|
*/
|
|
18
18
|
export declare function buildTypedSubcommandHelpText(noun: string, verb: string): string;
|
|
19
|
+
/**
|
|
20
|
+
* Walks the command tree along `pathTokens` and, if the endpoint is a typed
|
|
21
|
+
* verb, returns its flattened subcommand help text. Returns `null` if any
|
|
22
|
+
* token fails to match or the endpoint is a leaf (in which case Commander
|
|
23
|
+
* handles `--help` on its own at the leaf level).
|
|
24
|
+
*
|
|
25
|
+
* Used to surface help for nested-typed paths the resolver cannot leaf-match,
|
|
26
|
+
* e.g. `ms app share link --help` → list `create | list | revoke`.
|
|
27
|
+
*/
|
|
28
|
+
export declare function buildPathTypedHelpText(pathTokens: readonly string[]): string | null;
|
|
19
29
|
//# sourceMappingURL=BuildVerbDescriptionTable.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BuildVerbDescriptionTable.d.ts","sourceRoot":"","sources":["../../src/Utils/BuildVerbDescriptionTable.ts"],"names":[],"mappings":"AAAA;;GAEG;AAkBH;;;GAGG;AACH,wBAAgB,yBAAyB,IAAI,MAAM,CAkBlD;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CA4CtD;
|
|
1
|
+
{"version":3,"file":"BuildVerbDescriptionTable.d.ts","sourceRoot":"","sources":["../../src/Utils/BuildVerbDescriptionTable.ts"],"names":[],"mappings":"AAAA;;GAEG;AAkBH;;;GAGG;AACH,wBAAgB,yBAAyB,IAAI,MAAM,CAkBlD;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CA4CtD;AAoBD;;;GAGG;AACH,wBAAgB,4BAA4B,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAE/E;AAED;;;;;;;;GAQG;AACH,wBAAgB,sBAAsB,CAAC,UAAU,EAAE,SAAS,MAAM,EAAE,GAAG,MAAM,GAAG,IAAI,CA6BnF"}
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
*/
|
|
4
4
|
import { CLI_BINARY_NAME } from '../Constants/CliConstants.js';
|
|
5
5
|
import { COMMAND_TREE } from '../Constants/CommandRegistry.js';
|
|
6
|
-
import { isTypedVerbDef } from '../Types/Command.types.js';
|
|
6
|
+
import { hasParentHandler, isTypedVerbDef } from '../Types/Command.types.js';
|
|
7
7
|
import { isKnownNoun } from './ResolveCommand.js';
|
|
8
8
|
/** Renders a two-column label/helpText table under a title heading. */
|
|
9
9
|
function appendTable(lines, title, entries) {
|
|
@@ -47,41 +47,97 @@ export function buildNounHelpText(noun) {
|
|
|
47
47
|
lines.push('');
|
|
48
48
|
lines.push(nounDef['@description']);
|
|
49
49
|
lines.push('');
|
|
50
|
-
|
|
51
|
-
|
|
50
|
+
// Hybrid typed verbs (those with their own handler, e.g. `app share`) show
|
|
51
|
+
// up in BOTH the direct-commands list AND the typed-subcommand list below.
|
|
52
|
+
const directEntries = [];
|
|
53
|
+
const typedEntries = [];
|
|
54
|
+
for (const [name, entry] of Object.entries(nounDef.commands)) {
|
|
55
|
+
if (isTypedVerbDef(entry)) {
|
|
56
|
+
if (hasParentHandler(entry)) {
|
|
57
|
+
directEntries.push([name, entry['@helpText']]);
|
|
58
|
+
}
|
|
59
|
+
typedEntries.push([name, entry]);
|
|
60
|
+
}
|
|
61
|
+
else {
|
|
62
|
+
directEntries.push([name, entry['@helpText']]);
|
|
63
|
+
}
|
|
64
|
+
}
|
|
52
65
|
if (directEntries.length > 0) {
|
|
53
|
-
appendTable(lines, 'Commands:', directEntries
|
|
66
|
+
appendTable(lines, 'Commands:', directEntries);
|
|
54
67
|
}
|
|
55
68
|
if (typedEntries.length > 0) {
|
|
56
69
|
lines.push('');
|
|
57
70
|
for (const [verb, typedVerbDef] of typedEntries) {
|
|
58
|
-
appendTable(lines, `${verb} <type>:`,
|
|
59
|
-
`${verb} ${type}`,
|
|
60
|
-
leafDef['@helpText'],
|
|
61
|
-
]));
|
|
71
|
+
appendTable(lines, `${verb} <type>:`, flattenTypedVerb(typedVerbDef, verb).map(([label, helpText]) => [label, helpText]));
|
|
62
72
|
}
|
|
63
73
|
}
|
|
64
74
|
lines.push('');
|
|
65
75
|
lines.push(`Run '${CLI_BINARY_NAME} ${noun} <command> --help' for command-specific flags.`);
|
|
66
76
|
return lines.join('\n');
|
|
67
77
|
}
|
|
78
|
+
/**
|
|
79
|
+
* Flattens a typed verb into a list of `<prefix> <type> [...nested]` labels
|
|
80
|
+
* paired with their leaf help text. Pass an empty `prefix` to get bare type
|
|
81
|
+
* paths (e.g. `link create`); pass a non-empty prefix to include it.
|
|
82
|
+
*/
|
|
83
|
+
function flattenTypedVerb(verbDef, prefix) {
|
|
84
|
+
const rows = [];
|
|
85
|
+
for (const [type, sub] of Object.entries(verbDef.commands)) {
|
|
86
|
+
const label = prefix ? `${prefix} ${type}` : type;
|
|
87
|
+
if (isTypedVerbDef(sub)) {
|
|
88
|
+
rows.push(...flattenTypedVerb(sub, label));
|
|
89
|
+
}
|
|
90
|
+
else {
|
|
91
|
+
rows.push([label, sub['@helpText']]);
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
return rows;
|
|
95
|
+
}
|
|
68
96
|
/**
|
|
69
97
|
* Builds help text for a typed subcommand verb (e.g., `app add`).
|
|
70
|
-
* Lists the available types.
|
|
98
|
+
* Lists the available types — including nested typed verbs.
|
|
71
99
|
*/
|
|
72
100
|
export function buildTypedSubcommandHelpText(noun, verb) {
|
|
101
|
+
return buildPathTypedHelpText([noun, verb]) ?? '';
|
|
102
|
+
}
|
|
103
|
+
/**
|
|
104
|
+
* Walks the command tree along `pathTokens` and, if the endpoint is a typed
|
|
105
|
+
* verb, returns its flattened subcommand help text. Returns `null` if any
|
|
106
|
+
* token fails to match or the endpoint is a leaf (in which case Commander
|
|
107
|
+
* handles `--help` on its own at the leaf level).
|
|
108
|
+
*
|
|
109
|
+
* Used to surface help for nested-typed paths the resolver cannot leaf-match,
|
|
110
|
+
* e.g. `ms app share link --help` → list `create | list | revoke`.
|
|
111
|
+
*/
|
|
112
|
+
export function buildPathTypedHelpText(pathTokens) {
|
|
113
|
+
if (pathTokens.length < 2)
|
|
114
|
+
return null;
|
|
115
|
+
const [noun, ...rest] = pathTokens;
|
|
73
116
|
if (!isKnownNoun(noun, COMMAND_TREE))
|
|
74
|
-
return
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
117
|
+
return null;
|
|
118
|
+
let commands = COMMAND_TREE[noun].commands;
|
|
119
|
+
let endpoint;
|
|
120
|
+
for (const token of rest) {
|
|
121
|
+
const entry = commands[token];
|
|
122
|
+
if (!entry)
|
|
123
|
+
return null;
|
|
124
|
+
endpoint = entry;
|
|
125
|
+
if (isTypedVerbDef(entry)) {
|
|
126
|
+
commands = entry.commands;
|
|
127
|
+
}
|
|
128
|
+
else {
|
|
129
|
+
return null; // Leaf — leaf-level `--help` is Commander's job, not ours.
|
|
130
|
+
}
|
|
131
|
+
}
|
|
132
|
+
if (!endpoint || !isTypedVerbDef(endpoint))
|
|
133
|
+
return null;
|
|
134
|
+
const labelPath = pathTokens.join(' ');
|
|
79
135
|
const lines = [];
|
|
80
|
-
lines.push(`Usage: ${CLI_BINARY_NAME} ${
|
|
136
|
+
lines.push(`Usage: ${CLI_BINARY_NAME} ${labelPath} <type> [flags]`);
|
|
81
137
|
lines.push('');
|
|
82
|
-
appendTable(lines, 'Types:',
|
|
138
|
+
appendTable(lines, 'Types:', flattenTypedVerb(endpoint, ''));
|
|
83
139
|
lines.push('');
|
|
84
|
-
lines.push(`Run '${CLI_BINARY_NAME} ${
|
|
140
|
+
lines.push(`Run '${CLI_BINARY_NAME} ${labelPath} <type> --help' for type-specific flags.`);
|
|
85
141
|
return lines.join('\n');
|
|
86
142
|
}
|
|
87
143
|
//# sourceMappingURL=BuildVerbDescriptionTable.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BuildVerbDescriptionTable.js","sourceRoot":"","sources":["../../src/Utils/BuildVerbDescriptionTable.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAC5D,OAAO,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAC;AAE5D,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;
|
|
1
|
+
{"version":3,"file":"BuildVerbDescriptionTable.js","sourceRoot":"","sources":["../../src/Utils/BuildVerbDescriptionTable.ts"],"names":[],"mappings":"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"}
|