browser-debugger-cli 0.6.6 → 0.6.8
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 +48 -269
- package/dist/commands/__tests__/console.contract.test.d.ts +9 -0
- package/dist/commands/__tests__/console.contract.test.d.ts.map +1 -0
- package/dist/commands/__tests__/console.contract.test.js +118 -0
- package/dist/commands/__tests__/console.contract.test.js.map +1 -0
- package/dist/commands/__tests__/helpJson.contract.test.d.ts +12 -0
- package/dist/commands/__tests__/helpJson.contract.test.d.ts.map +1 -0
- package/dist/commands/__tests__/helpJson.contract.test.js +121 -0
- package/dist/commands/__tests__/helpJson.contract.test.js.map +1 -0
- package/dist/commands/__tests__/machineReadableHelp.contract.test.js +26 -7
- package/dist/commands/__tests__/machineReadableHelp.contract.test.js.map +1 -1
- package/dist/commands/cdp.d.ts.map +1 -1
- package/dist/commands/cdp.js.map +1 -1
- package/dist/commands/cleanup.d.ts.map +1 -1
- package/dist/commands/cleanup.js +17 -91
- package/dist/commands/cleanup.js.map +1 -1
- package/dist/commands/console.d.ts +17 -0
- package/dist/commands/console.d.ts.map +1 -1
- package/dist/commands/console.js +158 -56
- package/dist/commands/console.js.map +1 -1
- package/dist/commands/details.d.ts.map +1 -1
- package/dist/commands/details.js +3 -1
- package/dist/commands/details.js.map +1 -1
- package/dist/commands/dom/DomElementResolver.d.ts +138 -0
- package/dist/commands/dom/DomElementResolver.d.ts.map +1 -0
- package/dist/commands/dom/DomElementResolver.js +173 -0
- package/dist/commands/dom/DomElementResolver.js.map +1 -0
- package/dist/commands/dom/a11y.d.ts.map +1 -1
- package/dist/commands/dom/a11y.js +4 -28
- package/dist/commands/dom/a11y.js.map +1 -1
- package/dist/commands/dom/evalHelpers.d.ts.map +1 -1
- package/dist/commands/dom/evalHelpers.js +1 -1
- package/dist/commands/dom/evalHelpers.js.map +1 -1
- package/dist/commands/dom/formFillHelpers.d.ts.map +1 -1
- package/dist/commands/dom/formFillHelpers.js +11 -11
- package/dist/commands/dom/formFillHelpers.js.map +1 -1
- package/dist/commands/dom/formInteraction.d.ts.map +1 -1
- package/dist/commands/dom/formInteraction.js +5 -5
- package/dist/commands/dom/formInteraction.js.map +1 -1
- package/dist/commands/dom/helpers.d.ts +0 -50
- package/dist/commands/dom/helpers.d.ts.map +1 -1
- package/dist/commands/dom/helpers.js +2 -56
- package/dist/commands/dom/helpers.js.map +1 -1
- package/dist/commands/dom/index.d.ts.map +1 -1
- package/dist/commands/dom/index.js +50 -44
- package/dist/commands/dom/index.js.map +1 -1
- package/dist/commands/dom/keyMapping.d.ts +0 -6
- package/dist/commands/dom/keyMapping.d.ts.map +1 -1
- package/dist/commands/dom/keyMapping.js +0 -8
- package/dist/commands/dom/keyMapping.js.map +1 -1
- package/dist/commands/dom/reactEventHelpers.d.ts +12 -18
- package/dist/commands/dom/reactEventHelpers.d.ts.map +1 -1
- package/dist/commands/dom/reactEventHelpers.js +21 -70
- package/dist/commands/dom/reactEventHelpers.js.map +1 -1
- package/dist/commands/helpJson.d.ts +165 -0
- package/dist/commands/helpJson.d.ts.map +1 -0
- package/dist/commands/helpJson.js +252 -0
- package/dist/commands/helpJson.js.map +1 -0
- package/dist/commands/machineReadableHelp.d.ts +21 -2
- package/dist/commands/machineReadableHelp.d.ts.map +1 -1
- package/dist/commands/machineReadableHelp.js +95 -60
- package/dist/commands/machineReadableHelp.js.map +1 -1
- package/dist/commands/network.d.ts.map +1 -1
- package/dist/commands/network.js.map +1 -1
- package/dist/commands/peek.d.ts.map +1 -1
- package/dist/commands/peek.js +5 -7
- package/dist/commands/peek.js.map +1 -1
- package/dist/commands/shared/CommandRunner.d.ts +4 -10
- package/dist/commands/shared/CommandRunner.d.ts.map +1 -1
- package/dist/commands/shared/CommandRunner.js +2 -2
- package/dist/commands/shared/CommandRunner.js.map +1 -1
- package/dist/commands/shared/commonOptions.d.ts +0 -15
- package/dist/commands/shared/commonOptions.d.ts.map +1 -1
- package/dist/commands/shared/commonOptions.js +0 -32
- package/dist/commands/shared/commonOptions.js.map +1 -1
- package/dist/commands/shared/optionTypes.d.ts +247 -0
- package/dist/commands/shared/optionTypes.d.ts.map +1 -0
- package/dist/commands/shared/optionTypes.js +20 -0
- package/dist/commands/shared/optionTypes.js.map +1 -0
- package/dist/commands/shared/startHelpers.d.ts.map +1 -1
- package/dist/commands/shared/startHelpers.js +3 -3
- package/dist/commands/shared/startHelpers.js.map +1 -1
- package/dist/commands/start.d.ts.map +1 -1
- package/dist/commands/start.js +8 -6
- package/dist/commands/start.js.map +1 -1
- package/dist/commands/status.d.ts.map +1 -1
- package/dist/commands/status.js.map +1 -1
- package/dist/commands/stop.d.ts.map +1 -1
- package/dist/commands/stop.js +17 -43
- package/dist/commands/stop.js.map +1 -1
- package/dist/commands/tail.d.ts.map +1 -1
- package/dist/commands/tail.js +49 -59
- package/dist/commands/tail.js.map +1 -1
- package/dist/connection/types.d.ts +2 -1
- package/dist/connection/types.d.ts.map +1 -1
- package/dist/constants.d.ts +14 -0
- package/dist/constants.d.ts.map +1 -1
- package/dist/constants.js +39 -0
- package/dist/constants.js.map +1 -1
- package/dist/daemon/handlers/responseHandler.d.ts.map +1 -1
- package/dist/daemon/handlers/responseHandler.js +1 -0
- package/dist/daemon/handlers/responseHandler.js.map +1 -1
- package/dist/daemon/ipcServer.js +8 -8
- package/dist/daemon/ipcServer.js.map +1 -1
- package/dist/daemon/lifecycle/signalHandlers.d.ts.map +1 -1
- package/dist/daemon/lifecycle/signalHandlers.js +19 -3
- package/dist/daemon/lifecycle/signalHandlers.js.map +1 -1
- package/dist/daemon/lifecycle/workerCleanup.d.ts.map +1 -1
- package/dist/daemon/lifecycle/workerCleanup.js +5 -2
- package/dist/daemon/lifecycle/workerCleanup.js.map +1 -1
- package/dist/daemon/patternDefinitions.d.ts +0 -13
- package/dist/daemon/patternDefinitions.d.ts.map +1 -1
- package/dist/daemon/patternDefinitions.js +0 -17
- package/dist/daemon/patternDefinitions.js.map +1 -1
- package/dist/daemon/worker/commandRegistry.d.ts.map +1 -1
- package/dist/daemon/worker/commandRegistry.js +3 -0
- package/dist/daemon/worker/commandRegistry.js.map +1 -1
- package/dist/index.js +34 -2
- package/dist/index.js.map +1 -1
- package/dist/ipc/protocol/commands.d.ts +2 -0
- package/dist/ipc/protocol/commands.d.ts.map +1 -1
- package/dist/ipc/protocol/commands.js.map +1 -1
- package/dist/ipc/session/queries.d.ts +2 -0
- package/dist/ipc/session/queries.d.ts.map +1 -1
- package/dist/ipc/utils/responseValidator.d.ts +7 -1
- package/dist/ipc/utils/responseValidator.d.ts.map +1 -1
- package/dist/ipc/utils/responseValidator.js +6 -1
- package/dist/ipc/utils/responseValidator.js.map +1 -1
- package/dist/session/QueryCacheManager.d.ts +140 -0
- package/dist/session/QueryCacheManager.d.ts.map +1 -0
- package/dist/session/QueryCacheManager.js +233 -0
- package/dist/session/QueryCacheManager.js.map +1 -0
- package/dist/session/cleanup.d.ts +63 -1
- package/dist/session/cleanup.d.ts.map +1 -1
- package/dist/session/cleanup.js +191 -65
- package/dist/session/cleanup.js.map +1 -1
- package/dist/session/queryCache.d.ts +25 -14
- package/dist/session/queryCache.d.ts.map +1 -1
- package/dist/session/queryCache.js +31 -60
- package/dist/session/queryCache.js.map +1 -1
- package/dist/telemetry/__tests__/roleInference.unit.test.d.ts +9 -0
- package/dist/telemetry/__tests__/roleInference.unit.test.d.ts.map +1 -0
- package/dist/telemetry/__tests__/roleInference.unit.test.js +138 -0
- package/dist/telemetry/__tests__/roleInference.unit.test.js.map +1 -0
- package/dist/telemetry/console.d.ts.map +1 -1
- package/dist/telemetry/console.js +29 -17
- package/dist/telemetry/console.js.map +1 -1
- package/dist/telemetry/dom.d.ts +1 -0
- package/dist/telemetry/dom.d.ts.map +1 -1
- package/dist/telemetry/dom.js +9 -4
- package/dist/telemetry/dom.js.map +1 -1
- package/dist/telemetry/filters.d.ts +3 -0
- package/dist/telemetry/filters.d.ts.map +1 -1
- package/dist/telemetry/filters.js +25 -3
- package/dist/telemetry/filters.js.map +1 -1
- package/dist/telemetry/network.d.ts.map +1 -1
- package/dist/telemetry/network.js +35 -6
- package/dist/telemetry/network.js.map +1 -1
- package/dist/telemetry/remoteObject.d.ts +58 -0
- package/dist/telemetry/remoteObject.d.ts.map +1 -0
- package/dist/telemetry/remoteObject.js +134 -0
- package/dist/telemetry/remoteObject.js.map +1 -0
- package/dist/telemetry/roleInference.d.ts +50 -0
- package/dist/telemetry/roleInference.d.ts.map +1 -0
- package/dist/telemetry/roleInference.js +163 -0
- package/dist/telemetry/roleInference.js.map +1 -0
- package/dist/telemetry/utils.d.ts +0 -57
- package/dist/telemetry/utils.d.ts.map +1 -1
- package/dist/telemetry/utils.js +0 -71
- package/dist/telemetry/utils.js.map +1 -1
- package/dist/types/dom.d.ts +2 -0
- package/dist/types/dom.d.ts.map +1 -1
- package/dist/types.d.ts +23 -0
- package/dist/types.d.ts.map +1 -1
- package/dist/ui/formatters/a11y.d.ts +0 -9
- package/dist/ui/formatters/a11y.d.ts.map +1 -1
- package/dist/ui/formatters/a11y.js +0 -45
- package/dist/ui/formatters/a11y.js.map +1 -1
- package/dist/ui/formatters/console.d.ts +131 -0
- package/dist/ui/formatters/console.d.ts.map +1 -0
- package/dist/ui/formatters/console.js +400 -0
- package/dist/ui/formatters/console.js.map +1 -0
- package/dist/ui/formatters/preview.d.ts.map +1 -1
- package/dist/ui/formatters/preview.js +2 -39
- package/dist/ui/formatters/preview.js.map +1 -1
- package/dist/ui/logging/index.d.ts +1 -1
- package/dist/ui/logging/index.d.ts.map +1 -1
- package/dist/ui/logging/index.js +1 -1
- package/dist/ui/logging/index.js.map +1 -1
- package/dist/ui/logging/logger.d.ts +21 -0
- package/dist/ui/logging/logger.d.ts.map +1 -1
- package/dist/ui/logging/logger.js +24 -6
- package/dist/ui/logging/logger.js.map +1 -1
- package/dist/ui/messages/commands.d.ts +0 -14
- package/dist/ui/messages/commands.d.ts.map +1 -1
- package/dist/ui/messages/commands.js +0 -18
- package/dist/ui/messages/commands.js.map +1 -1
- package/dist/ui/messages/consoleMessages.d.ts +12 -27
- package/dist/ui/messages/consoleMessages.d.ts.map +1 -1
- package/dist/ui/messages/consoleMessages.js +16 -31
- package/dist/ui/messages/consoleMessages.js.map +1 -1
- package/dist/ui/messages/errors.d.ts +0 -16
- package/dist/ui/messages/errors.d.ts.map +1 -1
- package/dist/ui/messages/errors.js +0 -18
- package/dist/ui/messages/errors.js.map +1 -1
- package/dist/ui/messages/hints.d.ts +0 -10
- package/dist/ui/messages/hints.d.ts.map +1 -1
- package/dist/ui/messages/hints.js +0 -12
- package/dist/ui/messages/hints.js.map +1 -1
- package/dist/utils/decisionTrees.d.ts +0 -17
- package/dist/utils/decisionTrees.d.ts.map +1 -1
- package/dist/utils/decisionTrees.js +17 -23
- package/dist/utils/decisionTrees.js.map +1 -1
- package/dist/utils/errorMapping.d.ts +60 -0
- package/dist/utils/errorMapping.d.ts.map +1 -0
- package/dist/utils/errorMapping.js +97 -0
- package/dist/utils/errorMapping.js.map +1 -0
- package/dist/utils/file.d.ts +27 -0
- package/dist/utils/file.d.ts.map +1 -0
- package/dist/utils/file.js +37 -0
- package/dist/utils/file.js.map +1 -0
- package/dist/utils/levenshtein.d.ts +0 -17
- package/dist/utils/levenshtein.d.ts.map +1 -1
- package/dist/utils/levenshtein.js +0 -31
- package/dist/utils/levenshtein.js.map +1 -1
- package/dist/utils/strings.d.ts +14 -0
- package/dist/utils/strings.d.ts.map +1 -0
- package/dist/utils/strings.js +23 -0
- package/dist/utils/strings.js.map +1 -0
- package/dist/utils/taskMappings.d.ts +0 -17
- package/dist/utils/taskMappings.d.ts.map +1 -1
- package/dist/utils/taskMappings.js +18 -24
- package/dist/utils/taskMappings.js.map +1 -1
- package/dist/utils/typeGuards.d.ts +62 -0
- package/dist/utils/typeGuards.d.ts.map +1 -0
- package/dist/utils/typeGuards.js +94 -0
- package/dist/utils/typeGuards.js.map +1 -0
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"reactEventHelpers.d.ts","sourceRoot":"","sources":["../../../src/commands/dom/reactEventHelpers.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH;;;;;;;;;;GAUG;AACH,eAAO,MAAM,iBAAiB,o8FA4G7B,CAAC;AAEF;;;;;;;GAOG;AACH,eAAO,MAAM,oBAAoB,isEA8EhC,CAAC;AAEF
|
|
1
|
+
{"version":3,"file":"reactEventHelpers.d.ts","sourceRoot":"","sources":["../../../src/commands/dom/reactEventHelpers.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH;;;;;;;;;;GAUG;AACH,eAAO,MAAM,iBAAiB,o8FA4G7B,CAAC;AAEF;;;;;;;GAOG;AACH,eAAO,MAAM,oBAAoB,isEA8EhC,CAAC;AAEF;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,gEAAgE;IAChE,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,mEAAmE;IACnE,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED;;;;;GAKG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,UAAU,CAIhE;AAED;;;;;GAKG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,WAAW,CAIlE"}
|
|
@@ -213,76 +213,27 @@ export const CLICK_ELEMENT_SCRIPT = `
|
|
|
213
213
|
})
|
|
214
214
|
`;
|
|
215
215
|
/**
|
|
216
|
-
*
|
|
216
|
+
* Type guard for FillResult.
|
|
217
217
|
*
|
|
218
|
-
* @
|
|
219
|
-
*
|
|
218
|
+
* @param value - Value to check
|
|
219
|
+
* @returns True if value is a valid FillResult
|
|
220
220
|
*/
|
|
221
|
-
export
|
|
222
|
-
(
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
matchCount: elements.length,
|
|
240
|
-
requestedIndex: index,
|
|
241
|
-
suggestion: \`Use --index between 1 and \${elements.length}\`
|
|
242
|
-
};
|
|
243
|
-
}
|
|
244
|
-
|
|
245
|
-
const el = elements[index - 1]; // Convert to 0-based
|
|
246
|
-
|
|
247
|
-
function buildUniquePath(element) {
|
|
248
|
-
if (element.id) {
|
|
249
|
-
return \`#\${CSS.escape(element.id)}\`;
|
|
250
|
-
}
|
|
251
|
-
|
|
252
|
-
const path = [];
|
|
253
|
-
let current = element;
|
|
254
|
-
|
|
255
|
-
while (current && current !== document.documentElement) {
|
|
256
|
-
let selector = current.tagName.toLowerCase();
|
|
257
|
-
|
|
258
|
-
if (current.parentElement) {
|
|
259
|
-
const siblings = Array.from(current.parentElement.children);
|
|
260
|
-
const sameTagSiblings = siblings.filter(
|
|
261
|
-
(sibling) => sibling.tagName === current!.tagName
|
|
262
|
-
);
|
|
263
|
-
|
|
264
|
-
if (sameTagSiblings.length > 1) {
|
|
265
|
-
const index = sameTagSiblings.indexOf(current) + 1;
|
|
266
|
-
selector += \`:nth-of-type(\${index})\`;
|
|
267
|
-
}
|
|
268
|
-
}
|
|
269
|
-
|
|
270
|
-
path.unshift(selector);
|
|
271
|
-
current = current.parentElement;
|
|
272
|
-
}
|
|
273
|
-
|
|
274
|
-
return 'html > ' + path.join(' > ');
|
|
275
|
-
}
|
|
276
|
-
|
|
277
|
-
const uniqueSelector = buildUniquePath(el);
|
|
278
|
-
|
|
279
|
-
return {
|
|
280
|
-
success: true,
|
|
281
|
-
selector: selector,
|
|
282
|
-
matchCount: elements.length,
|
|
283
|
-
selectedIndex: index,
|
|
284
|
-
uniqueSelector: uniqueSelector
|
|
285
|
-
};
|
|
286
|
-
})
|
|
287
|
-
`;
|
|
221
|
+
export function isFillResult(value) {
|
|
222
|
+
if (typeof value !== 'object' || value === null)
|
|
223
|
+
return false;
|
|
224
|
+
const obj = value;
|
|
225
|
+
return typeof obj['success'] === 'boolean';
|
|
226
|
+
}
|
|
227
|
+
/**
|
|
228
|
+
* Type guard for ClickResult.
|
|
229
|
+
*
|
|
230
|
+
* @param value - Value to check
|
|
231
|
+
* @returns True if value is a valid ClickResult
|
|
232
|
+
*/
|
|
233
|
+
export function isClickResult(value) {
|
|
234
|
+
if (typeof value !== 'object' || value === null)
|
|
235
|
+
return false;
|
|
236
|
+
const obj = value;
|
|
237
|
+
return typeof obj['success'] === 'boolean';
|
|
238
|
+
}
|
|
288
239
|
//# sourceMappingURL=reactEventHelpers.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"reactEventHelpers.js","sourceRoot":"","sources":["../../../src/commands/dom/reactEventHelpers.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH;;;;;;;;;;GAUG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA4GhC,CAAC;AAEF;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA8EnC,CAAC;
|
|
1
|
+
{"version":3,"file":"reactEventHelpers.js","sourceRoot":"","sources":["../../../src/commands/dom/reactEventHelpers.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH;;;;;;;;;;GAUG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA4GhC,CAAC;AAEF;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA8EnC,CAAC;AAyCF;;;;;GAKG;AACH,MAAM,UAAU,YAAY,CAAC,KAAc;IACzC,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI;QAAE,OAAO,KAAK,CAAC;IAC9D,MAAM,GAAG,GAAG,KAAgC,CAAC;IAC7C,OAAO,OAAO,GAAG,CAAC,SAAS,CAAC,KAAK,SAAS,CAAC;AAC7C,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,aAAa,CAAC,KAAc;IAC1C,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI;QAAE,OAAO,KAAK,CAAC;IAC9D,MAAM,GAAG,GAAG,KAAgC,CAAC;IAC7C,OAAO,OAAO,GAAG,CAAC,SAAS,CAAC,KAAK,SAAS,CAAC;AAC7C,CAAC"}
|
|
@@ -0,0 +1,165 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Machine-readable help generation using Commander.js introspection API.
|
|
3
|
+
*/
|
|
4
|
+
import type { Command } from 'commander';
|
|
5
|
+
import { type DecisionTree } from '../utils/decisionTrees.js';
|
|
6
|
+
import { type TaskMapping } from '../utils/taskMappings.js';
|
|
7
|
+
/**
|
|
8
|
+
* Option metadata for machine-readable help.
|
|
9
|
+
*/
|
|
10
|
+
export interface OptionMetadata {
|
|
11
|
+
/** Option flags (e.g., "-j, --json") */
|
|
12
|
+
flags: string;
|
|
13
|
+
/** Option description */
|
|
14
|
+
description: string;
|
|
15
|
+
/** Whether option is required */
|
|
16
|
+
required: boolean;
|
|
17
|
+
/** Whether option has an optional value */
|
|
18
|
+
optional: boolean;
|
|
19
|
+
/** Default value if any */
|
|
20
|
+
defaultValue?: unknown;
|
|
21
|
+
/** Description of default value */
|
|
22
|
+
defaultValueDescription?: string;
|
|
23
|
+
/** Allowed choices if restricted */
|
|
24
|
+
choices?: readonly string[];
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* Argument metadata for machine-readable help.
|
|
28
|
+
*/
|
|
29
|
+
export interface ArgumentMetadata {
|
|
30
|
+
/** Argument name */
|
|
31
|
+
name: string;
|
|
32
|
+
/** Argument description */
|
|
33
|
+
description: string;
|
|
34
|
+
/** Whether argument is required */
|
|
35
|
+
required: boolean;
|
|
36
|
+
/** Whether argument accepts multiple values */
|
|
37
|
+
variadic: boolean;
|
|
38
|
+
/** Default value if any */
|
|
39
|
+
defaultValue?: unknown;
|
|
40
|
+
/** Allowed choices if restricted */
|
|
41
|
+
choices?: readonly string[];
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* Command metadata for machine-readable help.
|
|
45
|
+
*/
|
|
46
|
+
export interface CommandMetadata {
|
|
47
|
+
/** Command name */
|
|
48
|
+
name: string;
|
|
49
|
+
/** Command aliases */
|
|
50
|
+
aliases: readonly string[];
|
|
51
|
+
/** Command description */
|
|
52
|
+
description: string;
|
|
53
|
+
/** Command usage string */
|
|
54
|
+
usage: string;
|
|
55
|
+
/** Command arguments */
|
|
56
|
+
arguments: ArgumentMetadata[];
|
|
57
|
+
/** Command options */
|
|
58
|
+
options: OptionMetadata[];
|
|
59
|
+
/** Subcommands */
|
|
60
|
+
subcommands: CommandMetadata[];
|
|
61
|
+
}
|
|
62
|
+
/**
|
|
63
|
+
* Runtime state information for dynamic command availability.
|
|
64
|
+
*/
|
|
65
|
+
export interface RuntimeState {
|
|
66
|
+
/** Whether a session is currently active */
|
|
67
|
+
sessionActive: boolean;
|
|
68
|
+
/** Whether the daemon is running */
|
|
69
|
+
daemonRunning: boolean;
|
|
70
|
+
/** Commands available in current state */
|
|
71
|
+
availableCommands: string[];
|
|
72
|
+
}
|
|
73
|
+
/**
|
|
74
|
+
* Tool capabilities summary for agent discovery.
|
|
75
|
+
*/
|
|
76
|
+
export interface Capabilities {
|
|
77
|
+
/** CDP protocol capabilities */
|
|
78
|
+
cdp: {
|
|
79
|
+
/** Number of CDP domains */
|
|
80
|
+
domains: number;
|
|
81
|
+
/** Number of CDP methods (approximate) */
|
|
82
|
+
methods: string;
|
|
83
|
+
};
|
|
84
|
+
/** High-level command capabilities */
|
|
85
|
+
highLevel: {
|
|
86
|
+
/** List of high-level commands available */
|
|
87
|
+
commands: string[];
|
|
88
|
+
/** Domain coverage areas */
|
|
89
|
+
coverage: string[];
|
|
90
|
+
};
|
|
91
|
+
}
|
|
92
|
+
/**
|
|
93
|
+
* Root machine-readable help structure.
|
|
94
|
+
*/
|
|
95
|
+
export interface MachineReadableHelp {
|
|
96
|
+
/** CLI name */
|
|
97
|
+
name: string;
|
|
98
|
+
/** CLI version */
|
|
99
|
+
version: string;
|
|
100
|
+
/** CLI description */
|
|
101
|
+
description: string;
|
|
102
|
+
/** Root command metadata */
|
|
103
|
+
command: CommandMetadata;
|
|
104
|
+
/** Exit code documentation */
|
|
105
|
+
exitCodes: {
|
|
106
|
+
/** Exit code value */
|
|
107
|
+
code: number;
|
|
108
|
+
/** Exit code name */
|
|
109
|
+
name: string;
|
|
110
|
+
/** Exit code description */
|
|
111
|
+
description: string;
|
|
112
|
+
}[];
|
|
113
|
+
/** Task-to-command mappings with CDP alternatives */
|
|
114
|
+
taskMappings: Record<string, TaskMapping>;
|
|
115
|
+
/** Current runtime state */
|
|
116
|
+
runtimeState: RuntimeState;
|
|
117
|
+
/** Intent-based decision trees */
|
|
118
|
+
decisionTrees: Record<string, DecisionTree>;
|
|
119
|
+
/** Tool capabilities summary */
|
|
120
|
+
capabilities: Capabilities;
|
|
121
|
+
}
|
|
122
|
+
/**
|
|
123
|
+
* Generates machine-readable help from a Commander program.
|
|
124
|
+
*
|
|
125
|
+
* Includes comprehensive metadata for agent discovery:
|
|
126
|
+
* - Command structure and options
|
|
127
|
+
* - Exit codes with semantic meanings
|
|
128
|
+
* - Task-to-command mappings with CDP alternatives
|
|
129
|
+
* - Runtime state and command availability
|
|
130
|
+
* - Intent-based decision trees
|
|
131
|
+
* - Capabilities summary
|
|
132
|
+
*
|
|
133
|
+
* @param program - Commander program instance
|
|
134
|
+
* @returns Machine-readable help structure
|
|
135
|
+
*
|
|
136
|
+
* @example
|
|
137
|
+
* ```typescript
|
|
138
|
+
* import { program } from 'commander';
|
|
139
|
+
* import { generateMachineReadableHelp } from './help/machineReadableHelp.js';
|
|
140
|
+
*
|
|
141
|
+
* const help = generateMachineReadableHelp(program);
|
|
142
|
+
* console.log(JSON.stringify(help, null, 2));
|
|
143
|
+
* ```
|
|
144
|
+
*/
|
|
145
|
+
export declare function generateMachineReadableHelp(program: Command): MachineReadableHelp;
|
|
146
|
+
/**
|
|
147
|
+
* Generates machine-readable help for a specific subcommand.
|
|
148
|
+
*
|
|
149
|
+
* Returns the same structure as generateMachineReadableHelp but with
|
|
150
|
+
* the command field focused on the requested subcommand. If the subcommand
|
|
151
|
+
* is not found, falls back to full root help.
|
|
152
|
+
*
|
|
153
|
+
* @param program - Root Commander program instance
|
|
154
|
+
* @param commandPath - Array of command names (e.g., ['dom', 'query'])
|
|
155
|
+
* @returns Machine-readable help structure for the subcommand
|
|
156
|
+
*
|
|
157
|
+
* @example
|
|
158
|
+
* ```typescript
|
|
159
|
+
* // Get help for 'bdg dom query'
|
|
160
|
+
* const help = generateSubcommandHelp(program, ['dom', 'query']);
|
|
161
|
+
* console.log(help.command.name); // 'query'
|
|
162
|
+
* ```
|
|
163
|
+
*/
|
|
164
|
+
export declare function generateSubcommandHelp(program: Command, commandPath: string[]): MachineReadableHelp;
|
|
165
|
+
//# sourceMappingURL=helpJson.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"helpJson.d.ts","sourceRoot":"","sources":["../../src/commands/helpJson.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,252 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Machine-readable help generation using Commander.js introspection API.
|
|
3
|
+
*/
|
|
4
|
+
import { getAllDomainSummaries } from '../cdp/schema.js';
|
|
5
|
+
import { isDaemonRunning } from '../daemon/launcher.js';
|
|
6
|
+
import { readPid } from '../session/pid.js';
|
|
7
|
+
import { getAllDecisionTrees } from '../utils/decisionTrees.js';
|
|
8
|
+
import { filterDefined } from '../utils/objects.js';
|
|
9
|
+
import { isProcessAlive } from '../utils/process.js';
|
|
10
|
+
import { getAllTaskMappings } from '../utils/taskMappings.js';
|
|
11
|
+
/**
|
|
12
|
+
* Converts a Commander Option to OptionMetadata.
|
|
13
|
+
*
|
|
14
|
+
* @param option - Commander option instance
|
|
15
|
+
* @returns Option metadata
|
|
16
|
+
*/
|
|
17
|
+
function convertOption(option) {
|
|
18
|
+
return filterDefined({
|
|
19
|
+
flags: option.flags,
|
|
20
|
+
description: option.description,
|
|
21
|
+
required: option.required,
|
|
22
|
+
optional: option.optional,
|
|
23
|
+
defaultValue: option.defaultValue,
|
|
24
|
+
defaultValueDescription: option.defaultValueDescription,
|
|
25
|
+
choices: option.argChoices,
|
|
26
|
+
});
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* Converts a Commander Argument to ArgumentMetadata.
|
|
30
|
+
*
|
|
31
|
+
* @param argument - Commander argument instance
|
|
32
|
+
* @returns Argument metadata
|
|
33
|
+
*/
|
|
34
|
+
function convertArgument(argument) {
|
|
35
|
+
return filterDefined({
|
|
36
|
+
name: argument.name(),
|
|
37
|
+
description: argument.description,
|
|
38
|
+
required: argument.required,
|
|
39
|
+
variadic: argument.variadic,
|
|
40
|
+
defaultValue: argument.defaultValue,
|
|
41
|
+
choices: argument.argChoices,
|
|
42
|
+
});
|
|
43
|
+
}
|
|
44
|
+
/**
|
|
45
|
+
* Recursively converts a Commander Command to CommandMetadata.
|
|
46
|
+
*
|
|
47
|
+
* @param command - Commander command instance
|
|
48
|
+
* @returns Command metadata
|
|
49
|
+
*/
|
|
50
|
+
function convertCommand(command) {
|
|
51
|
+
return {
|
|
52
|
+
name: command.name(),
|
|
53
|
+
aliases: command.aliases(),
|
|
54
|
+
description: command.description(),
|
|
55
|
+
usage: command.usage(),
|
|
56
|
+
arguments: command.registeredArguments.map(convertArgument),
|
|
57
|
+
options: command.options.map(convertOption),
|
|
58
|
+
subcommands: command.commands.map(convertCommand),
|
|
59
|
+
};
|
|
60
|
+
}
|
|
61
|
+
/**
|
|
62
|
+
* Checks if a session is currently active.
|
|
63
|
+
*
|
|
64
|
+
* @returns True if session is active, false otherwise
|
|
65
|
+
*/
|
|
66
|
+
function isSessionActive() {
|
|
67
|
+
const sessionPid = readPid();
|
|
68
|
+
if (sessionPid === null) {
|
|
69
|
+
return false;
|
|
70
|
+
}
|
|
71
|
+
return isProcessAlive(sessionPid);
|
|
72
|
+
}
|
|
73
|
+
/**
|
|
74
|
+
* Generates runtime state information.
|
|
75
|
+
*
|
|
76
|
+
* Checks current daemon and session status to provide state-aware
|
|
77
|
+
* command availability information.
|
|
78
|
+
*
|
|
79
|
+
* @returns Runtime state object
|
|
80
|
+
*/
|
|
81
|
+
function generateRuntimeState() {
|
|
82
|
+
const daemonRunning = isDaemonRunning();
|
|
83
|
+
const sessionActive = isSessionActive();
|
|
84
|
+
const availableCommands = [];
|
|
85
|
+
if (!daemonRunning && !sessionActive) {
|
|
86
|
+
availableCommands.push('bdg <url>', 'cleanup', '--help', '--version');
|
|
87
|
+
}
|
|
88
|
+
else if (daemonRunning && sessionActive) {
|
|
89
|
+
availableCommands.push('peek', 'tail', 'details', 'dom', 'network', 'console', 'cdp', 'status', 'stop');
|
|
90
|
+
}
|
|
91
|
+
else if (daemonRunning && !sessionActive) {
|
|
92
|
+
availableCommands.push('bdg <url>', 'cleanup', 'status');
|
|
93
|
+
}
|
|
94
|
+
return {
|
|
95
|
+
sessionActive,
|
|
96
|
+
daemonRunning,
|
|
97
|
+
availableCommands,
|
|
98
|
+
};
|
|
99
|
+
}
|
|
100
|
+
/**
|
|
101
|
+
* Extracts unique command strings from task mappings.
|
|
102
|
+
*
|
|
103
|
+
* Flattens all command arrays from task mappings and deduplicates them.
|
|
104
|
+
*
|
|
105
|
+
* @param taskMappings - Task mapping registry
|
|
106
|
+
* @returns Sorted array of unique command strings
|
|
107
|
+
*/
|
|
108
|
+
function extractCommandList(taskMappings) {
|
|
109
|
+
const allCommands = Object.values(taskMappings).flatMap((mapping) => mapping.commands);
|
|
110
|
+
const uniqueCommands = [...new Set(allCommands)];
|
|
111
|
+
return uniqueCommands.sort();
|
|
112
|
+
}
|
|
113
|
+
/**
|
|
114
|
+
* Exit code documentation for machine-readable help.
|
|
115
|
+
*/
|
|
116
|
+
const EXIT_CODE_DOCS = [
|
|
117
|
+
{ code: 0, name: 'SUCCESS', description: 'Operation completed successfully' },
|
|
118
|
+
{ code: 1, name: 'GENERIC_FAILURE', description: 'Generic failure' },
|
|
119
|
+
{ code: 80, name: 'INVALID_URL', description: 'Invalid URL format provided' },
|
|
120
|
+
{ code: 81, name: 'INVALID_ARGUMENTS', description: 'Invalid command arguments' },
|
|
121
|
+
{ code: 82, name: 'PERMISSION_DENIED', description: 'Insufficient permissions' },
|
|
122
|
+
{ code: 83, name: 'RESOURCE_NOT_FOUND', description: 'Required resource not found' },
|
|
123
|
+
{ code: 84, name: 'RESOURCE_BUSY', description: 'Resource is currently in use' },
|
|
124
|
+
{
|
|
125
|
+
code: 85,
|
|
126
|
+
name: 'OPERATION_NOT_PERMITTED',
|
|
127
|
+
description: 'Operation not permitted in current state',
|
|
128
|
+
},
|
|
129
|
+
{ code: 86, name: 'DAEMON_ALREADY_RUNNING', description: 'Daemon is already running' },
|
|
130
|
+
{ code: 100, name: 'CHROME_LAUNCH_FAILURE', description: 'Failed to launch Chrome browser' },
|
|
131
|
+
{
|
|
132
|
+
code: 101,
|
|
133
|
+
name: 'CDP_CONNECTION_FAILURE',
|
|
134
|
+
description: 'Failed to connect to Chrome DevTools Protocol',
|
|
135
|
+
},
|
|
136
|
+
{ code: 102, name: 'CDP_TIMEOUT', description: 'CDP operation timed out' },
|
|
137
|
+
{ code: 110, name: 'IPC_ERROR', description: 'Inter-process communication error' },
|
|
138
|
+
];
|
|
139
|
+
/**
|
|
140
|
+
* Generates capabilities summary.
|
|
141
|
+
*
|
|
142
|
+
* Dynamically calculates CDP and high-level command capabilities
|
|
143
|
+
* from protocol schema and task mappings.
|
|
144
|
+
*
|
|
145
|
+
* @returns Capabilities object
|
|
146
|
+
*/
|
|
147
|
+
function generateCapabilities() {
|
|
148
|
+
const domainSummaries = getAllDomainSummaries();
|
|
149
|
+
const taskMappings = getAllTaskMappings();
|
|
150
|
+
const totalMethods = domainSummaries.reduce((sum, domain) => sum + domain.commandCount, 0);
|
|
151
|
+
const commandList = extractCommandList(taskMappings);
|
|
152
|
+
return {
|
|
153
|
+
cdp: {
|
|
154
|
+
domains: domainSummaries.length,
|
|
155
|
+
methods: totalMethods.toString(),
|
|
156
|
+
},
|
|
157
|
+
highLevel: {
|
|
158
|
+
commands: commandList,
|
|
159
|
+
coverage: ['dom', 'network', 'console', 'session', 'monitoring'],
|
|
160
|
+
},
|
|
161
|
+
};
|
|
162
|
+
}
|
|
163
|
+
/**
|
|
164
|
+
* Generates machine-readable help from a Commander program.
|
|
165
|
+
*
|
|
166
|
+
* Includes comprehensive metadata for agent discovery:
|
|
167
|
+
* - Command structure and options
|
|
168
|
+
* - Exit codes with semantic meanings
|
|
169
|
+
* - Task-to-command mappings with CDP alternatives
|
|
170
|
+
* - Runtime state and command availability
|
|
171
|
+
* - Intent-based decision trees
|
|
172
|
+
* - Capabilities summary
|
|
173
|
+
*
|
|
174
|
+
* @param program - Commander program instance
|
|
175
|
+
* @returns Machine-readable help structure
|
|
176
|
+
*
|
|
177
|
+
* @example
|
|
178
|
+
* ```typescript
|
|
179
|
+
* import { program } from 'commander';
|
|
180
|
+
* import { generateMachineReadableHelp } from './help/machineReadableHelp.js';
|
|
181
|
+
*
|
|
182
|
+
* const help = generateMachineReadableHelp(program);
|
|
183
|
+
* console.log(JSON.stringify(help, null, 2));
|
|
184
|
+
* ```
|
|
185
|
+
*/
|
|
186
|
+
export function generateMachineReadableHelp(program) {
|
|
187
|
+
return {
|
|
188
|
+
name: program.name(),
|
|
189
|
+
version: program.version() ?? 'unknown',
|
|
190
|
+
description: program.description(),
|
|
191
|
+
command: convertCommand(program),
|
|
192
|
+
exitCodes: [...EXIT_CODE_DOCS],
|
|
193
|
+
taskMappings: getAllTaskMappings(),
|
|
194
|
+
runtimeState: generateRuntimeState(),
|
|
195
|
+
decisionTrees: getAllDecisionTrees(),
|
|
196
|
+
capabilities: generateCapabilities(),
|
|
197
|
+
};
|
|
198
|
+
}
|
|
199
|
+
/**
|
|
200
|
+
* Finds a subcommand by traversing the command path.
|
|
201
|
+
*
|
|
202
|
+
* @param program - Root Commander program instance
|
|
203
|
+
* @param commandPath - Array of command names to traverse (e.g., ['dom', 'query'])
|
|
204
|
+
* @returns The target Command if found, null otherwise
|
|
205
|
+
*/
|
|
206
|
+
function findSubcommand(program, commandPath) {
|
|
207
|
+
let current = program;
|
|
208
|
+
for (const name of commandPath) {
|
|
209
|
+
const found = current.commands.find((cmd) => cmd.name() === name || cmd.aliases().includes(name));
|
|
210
|
+
if (!found) {
|
|
211
|
+
return null;
|
|
212
|
+
}
|
|
213
|
+
current = found;
|
|
214
|
+
}
|
|
215
|
+
return current;
|
|
216
|
+
}
|
|
217
|
+
/**
|
|
218
|
+
* Generates machine-readable help for a specific subcommand.
|
|
219
|
+
*
|
|
220
|
+
* Returns the same structure as generateMachineReadableHelp but with
|
|
221
|
+
* the command field focused on the requested subcommand. If the subcommand
|
|
222
|
+
* is not found, falls back to full root help.
|
|
223
|
+
*
|
|
224
|
+
* @param program - Root Commander program instance
|
|
225
|
+
* @param commandPath - Array of command names (e.g., ['dom', 'query'])
|
|
226
|
+
* @returns Machine-readable help structure for the subcommand
|
|
227
|
+
*
|
|
228
|
+
* @example
|
|
229
|
+
* ```typescript
|
|
230
|
+
* // Get help for 'bdg dom query'
|
|
231
|
+
* const help = generateSubcommandHelp(program, ['dom', 'query']);
|
|
232
|
+
* console.log(help.command.name); // 'query'
|
|
233
|
+
* ```
|
|
234
|
+
*/
|
|
235
|
+
export function generateSubcommandHelp(program, commandPath) {
|
|
236
|
+
const targetCommand = findSubcommand(program, commandPath);
|
|
237
|
+
if (!targetCommand) {
|
|
238
|
+
return generateMachineReadableHelp(program);
|
|
239
|
+
}
|
|
240
|
+
return {
|
|
241
|
+
name: program.name(),
|
|
242
|
+
version: program.version() ?? 'unknown',
|
|
243
|
+
description: program.description(),
|
|
244
|
+
command: convertCommand(targetCommand),
|
|
245
|
+
exitCodes: [...EXIT_CODE_DOCS],
|
|
246
|
+
taskMappings: getAllTaskMappings(),
|
|
247
|
+
runtimeState: generateRuntimeState(),
|
|
248
|
+
decisionTrees: getAllDecisionTrees(),
|
|
249
|
+
capabilities: generateCapabilities(),
|
|
250
|
+
};
|
|
251
|
+
}
|
|
252
|
+
//# sourceMappingURL=helpJson.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"helpJson.js","sourceRoot":"","sources":["../../src/commands/helpJson.ts"],"names":[],"mappings":"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"}
|
|
@@ -83,8 +83,8 @@ export interface Capabilities {
|
|
|
83
83
|
};
|
|
84
84
|
/** High-level command capabilities */
|
|
85
85
|
highLevel: {
|
|
86
|
-
/**
|
|
87
|
-
commands:
|
|
86
|
+
/** List of high-level commands available */
|
|
87
|
+
commands: string[];
|
|
88
88
|
/** Domain coverage areas */
|
|
89
89
|
coverage: string[];
|
|
90
90
|
};
|
|
@@ -143,4 +143,23 @@ export interface MachineReadableHelp {
|
|
|
143
143
|
* ```
|
|
144
144
|
*/
|
|
145
145
|
export declare function generateMachineReadableHelp(program: Command): MachineReadableHelp;
|
|
146
|
+
/**
|
|
147
|
+
* Generates machine-readable help for a specific subcommand.
|
|
148
|
+
*
|
|
149
|
+
* Returns the same structure as generateMachineReadableHelp but with
|
|
150
|
+
* the command field focused on the requested subcommand. If the subcommand
|
|
151
|
+
* is not found, falls back to full root help.
|
|
152
|
+
*
|
|
153
|
+
* @param program - Root Commander program instance
|
|
154
|
+
* @param commandPath - Array of command names (e.g., ['dom', 'query'])
|
|
155
|
+
* @returns Machine-readable help structure for the subcommand
|
|
156
|
+
*
|
|
157
|
+
* @example
|
|
158
|
+
* ```typescript
|
|
159
|
+
* // Get help for 'bdg dom query'
|
|
160
|
+
* const help = generateSubcommandHelp(program, ['dom', 'query']);
|
|
161
|
+
* console.log(help.command.name); // 'query'
|
|
162
|
+
* ```
|
|
163
|
+
*/
|
|
164
|
+
export declare function generateSubcommandHelp(program: Command, commandPath: string[]): MachineReadableHelp;
|
|
146
165
|
//# sourceMappingURL=machineReadableHelp.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"machineReadableHelp.d.ts","sourceRoot":"","sources":["../../src/commands/machineReadableHelp.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAoB,MAAM,WAAW,CAAC;AAK3D,OAAO,EAAuB,KAAK,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAGlF,OAAO,EAAsB,KAAK,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAE/E;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,wCAAwC;IACxC,KAAK,EAAE,MAAM,CAAC;IACd,yBAAyB;IACzB,WAAW,EAAE,MAAM,CAAC;IACpB,iCAAiC;IACjC,QAAQ,EAAE,OAAO,CAAC;IAClB,2CAA2C;IAC3C,QAAQ,EAAE,OAAO,CAAC;IAClB,2BAA2B;IAC3B,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,mCAAmC;IACnC,uBAAuB,CAAC,EAAE,MAAM,CAAC;IACjC,oCAAoC;IACpC,OAAO,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;CAC7B;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,oBAAoB;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,2BAA2B;IAC3B,WAAW,EAAE,MAAM,CAAC;IACpB,mCAAmC;IACnC,QAAQ,EAAE,OAAO,CAAC;IAClB,+CAA+C;IAC/C,QAAQ,EAAE,OAAO,CAAC;IAClB,2BAA2B;IAC3B,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,oCAAoC;IACpC,OAAO,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;CAC7B;AAED;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,mBAAmB;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,sBAAsB;IACtB,OAAO,EAAE,SAAS,MAAM,EAAE,CAAC;IAC3B,0BAA0B;IAC1B,WAAW,EAAE,MAAM,CAAC;IACpB,2BAA2B;IAC3B,KAAK,EAAE,MAAM,CAAC;IACd,wBAAwB;IACxB,SAAS,EAAE,gBAAgB,EAAE,CAAC;IAC9B,sBAAsB;IACtB,OAAO,EAAE,cAAc,EAAE,CAAC;IAC1B,kBAAkB;IAClB,WAAW,EAAE,eAAe,EAAE,CAAC;CAChC;AAED;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,4CAA4C;IAC5C,aAAa,EAAE,OAAO,CAAC;IACvB,oCAAoC;IACpC,aAAa,EAAE,OAAO,CAAC;IACvB,0CAA0C;IAC1C,iBAAiB,EAAE,MAAM,EAAE,CAAC;CAC7B;AAED;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,gCAAgC;IAChC,GAAG,EAAE;QACH,4BAA4B;QAC5B,OAAO,EAAE,MAAM,CAAC;QAChB,0CAA0C;QAC1C,OAAO,EAAE,MAAM,CAAC;KACjB,CAAC;IACF,sCAAsC;IACtC,SAAS,EAAE;QACT,
|
|
1
|
+
{"version":3,"file":"machineReadableHelp.d.ts","sourceRoot":"","sources":["../../src/commands/machineReadableHelp.ts"],"names":[],"mappings":"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"}
|