browser-debugger-cli 0.6.4 → 0.6.5
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/dist/commands/__tests__/machineReadableHelp.contract.test.d.ts +12 -0
- package/dist/commands/__tests__/machineReadableHelp.contract.test.d.ts.map +1 -0
- package/dist/commands/__tests__/machineReadableHelp.contract.test.js +102 -0
- package/dist/commands/__tests__/machineReadableHelp.contract.test.js.map +1 -0
- package/dist/commands/cdp.js +8 -4
- package/dist/commands/cdp.js.map +1 -1
- package/dist/commands/console.d.ts.map +1 -1
- package/dist/commands/console.js +22 -2
- package/dist/commands/console.js.map +1 -1
- package/dist/commands/dom/a11y.d.ts.map +1 -1
- package/dist/commands/dom/a11y.js +51 -15
- package/dist/commands/dom/a11y.js.map +1 -1
- package/dist/commands/dom/evalHelpers.d.ts +1 -1
- package/dist/commands/dom/evalHelpers.d.ts.map +1 -1
- package/dist/commands/dom/evalHelpers.js +3 -2
- 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 +30 -2
- package/dist/commands/dom/formFillHelpers.js.map +1 -1
- package/dist/commands/dom/index.d.ts.map +1 -1
- package/dist/commands/dom/index.js +85 -13
- package/dist/commands/dom/index.js.map +1 -1
- package/dist/commands/dom/reactEventHelpers.d.ts +1 -1
- package/dist/commands/dom/reactEventHelpers.d.ts.map +1 -1
- package/dist/commands/dom/reactEventHelpers.js +3 -3
- package/dist/commands/machineReadableHelp.d.ts +48 -0
- package/dist/commands/machineReadableHelp.d.ts.map +1 -1
- package/dist/commands/machineReadableHelp.js +80 -0
- package/dist/commands/machineReadableHelp.js.map +1 -1
- package/dist/commands/network.d.ts.map +1 -1
- package/dist/commands/network.js +28 -2
- package/dist/commands/network.js.map +1 -1
- package/dist/commands/peek.js +2 -2
- package/dist/commands/peek.js.map +1 -1
- package/dist/commands/shared/CommandRunner.d.ts +2 -0
- package/dist/commands/shared/CommandRunner.d.ts.map +1 -1
- package/dist/commands/shared/CommandRunner.js +3 -0
- package/dist/commands/shared/CommandRunner.js.map +1 -1
- package/dist/commands/shared/validation.d.ts +2 -0
- package/dist/commands/shared/validation.d.ts.map +1 -1
- package/dist/commands/shared/validation.js +5 -2
- package/dist/commands/shared/validation.js.map +1 -1
- package/dist/commands/stop.d.ts.map +1 -1
- package/dist/commands/stop.js +2 -1
- package/dist/commands/stop.js.map +1 -1
- package/dist/commands/tail.d.ts.map +1 -1
- package/dist/commands/tail.js +6 -0
- package/dist/commands/tail.js.map +1 -1
- package/dist/connection/cdp.js +9 -9
- package/dist/constants.d.ts.map +1 -1
- package/dist/constants.js +3 -1
- package/dist/constants.js.map +1 -1
- package/dist/daemon/patternDefinitions.d.ts +47 -0
- package/dist/daemon/patternDefinitions.d.ts.map +1 -0
- package/dist/daemon/patternDefinitions.js +71 -0
- package/dist/daemon/patternDefinitions.js.map +1 -0
- package/dist/daemon/patternDetector.d.ts +60 -0
- package/dist/daemon/patternDetector.d.ts.map +1 -0
- package/dist/daemon/patternDetector.js +74 -0
- package/dist/daemon/patternDetector.js.map +1 -0
- package/dist/daemon/worker/__tests__/PatternDetector.unit.test.d.ts +11 -0
- package/dist/daemon/worker/__tests__/PatternDetector.unit.test.d.ts.map +1 -0
- package/dist/daemon/worker/__tests__/PatternDetector.unit.test.js +136 -0
- package/dist/daemon/worker/__tests__/PatternDetector.unit.test.js.map +1 -0
- package/dist/daemon/worker/commandRegistry.d.ts.map +1 -1
- package/dist/daemon/worker/commandRegistry.js +13 -2
- package/dist/daemon/worker/commandRegistry.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/session/cleanup.d.ts.map +1 -1
- package/dist/session/cleanup.js +2 -0
- package/dist/session/cleanup.js.map +1 -1
- package/dist/session/queryCache.d.ts +35 -0
- package/dist/session/queryCache.d.ts.map +1 -0
- package/dist/session/queryCache.js +83 -0
- package/dist/session/queryCache.js.map +1 -0
- package/dist/telemetry/a11y.d.ts +8 -5
- package/dist/telemetry/a11y.d.ts.map +1 -1
- package/dist/telemetry/a11y.js +34 -19
- package/dist/telemetry/a11y.js.map +1 -1
- package/dist/ui/errors/CommandError.d.ts +5 -1
- package/dist/ui/errors/CommandError.d.ts.map +1 -1
- package/dist/ui/errors/CommandError.js.map +1 -1
- package/dist/ui/formatters/__tests__/preview.unit.test.d.ts +13 -0
- package/dist/ui/formatters/__tests__/preview.unit.test.d.ts.map +1 -0
- package/dist/ui/formatters/__tests__/preview.unit.test.js +180 -0
- package/dist/ui/formatters/__tests__/preview.unit.test.js.map +1 -0
- package/dist/ui/formatters/dom.d.ts.map +1 -1
- package/dist/ui/formatters/dom.js +5 -2
- package/dist/ui/formatters/dom.js.map +1 -1
- package/dist/ui/formatters/helpFormatters.d.ts +41 -0
- package/dist/ui/formatters/helpFormatters.d.ts.map +1 -0
- package/dist/ui/formatters/helpFormatters.js +80 -0
- package/dist/ui/formatters/helpFormatters.js.map +1 -0
- package/dist/ui/formatters/preview.d.ts.map +1 -1
- package/dist/ui/formatters/preview.js +67 -19
- package/dist/ui/formatters/preview.js.map +1 -1
- package/dist/ui/formatters/sessionFormatters.d.ts +58 -0
- package/dist/ui/formatters/sessionFormatters.d.ts.map +1 -0
- package/dist/ui/formatters/sessionFormatters.js +116 -0
- package/dist/ui/formatters/sessionFormatters.js.map +1 -0
- package/dist/ui/messages/commands.d.ts +9 -0
- package/dist/ui/messages/commands.d.ts.map +1 -1
- package/dist/ui/messages/commands.js +11 -1
- package/dist/ui/messages/commands.js.map +1 -1
- package/dist/ui/messages/errors.d.ts +53 -0
- package/dist/ui/messages/errors.d.ts.map +1 -1
- package/dist/ui/messages/errors.js +59 -0
- package/dist/ui/messages/errors.js.map +1 -1
- package/dist/ui/messages/hints.d.ts +33 -0
- package/dist/ui/messages/hints.d.ts.map +1 -0
- package/dist/ui/messages/hints.js +37 -0
- package/dist/ui/messages/hints.js.map +1 -0
- package/dist/ui/messages/session.d.ts +11 -1
- package/dist/ui/messages/session.d.ts.map +1 -1
- package/dist/ui/messages/session.js +14 -21
- package/dist/ui/messages/session.js.map +1 -1
- package/dist/utils/decisionTrees.d.ts +54 -0
- package/dist/utils/decisionTrees.d.ts.map +1 -0
- package/dist/utils/decisionTrees.js +171 -0
- package/dist/utils/decisionTrees.js.map +1 -0
- package/dist/utils/taskMappings.d.ts +47 -0
- package/dist/utils/taskMappings.d.ts.map +1 -0
- package/dist/utils/taskMappings.js +118 -0
- package/dist/utils/taskMappings.js.map +1 -0
- package/package.json +3 -3
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
import { registerA11yCommands } from '../../commands/dom/a11y.js';
|
|
2
2
|
import { queryDOMElements, getDOMElements, capturePageScreenshot } from '../../commands/dom/helpers.js';
|
|
3
3
|
import { runCommand } from '../../commands/shared/CommandRunner.js';
|
|
4
|
-
import {
|
|
4
|
+
import { resolveA11yNode } from '../../telemetry/a11y.js';
|
|
5
5
|
import { CommandError } from '../../ui/errors/index.js';
|
|
6
6
|
import { formatDomQuery, formatDomGet, formatDomEval, formatDomScreenshot, } from '../../ui/formatters/dom.js';
|
|
7
7
|
import { semantic } from '../../ui/formatters/semantic.js';
|
|
8
|
+
import { elementNotFoundError } from '../../ui/messages/errors.js';
|
|
8
9
|
import { EXIT_CODES } from '../../utils/exitCodes.js';
|
|
9
10
|
import { filterDefined } from '../../utils/objects.js';
|
|
10
11
|
import { parsePositiveIntOption } from '../../utils/validation.js';
|
|
@@ -13,6 +14,7 @@ import { parsePositiveIntOption } from '../../utils/validation.js';
|
|
|
13
14
|
*
|
|
14
15
|
* Queries the DOM using a CSS selector and displays matching elements.
|
|
15
16
|
* Uses CDP relay through worker's persistent connection.
|
|
17
|
+
* Results are cached for index-based access via "bdg dom get <index>".
|
|
16
18
|
*
|
|
17
19
|
* @param selector - CSS selector to query (e.g., ".error", "#app", "button")
|
|
18
20
|
* @param options - Command options
|
|
@@ -20,19 +22,85 @@ import { parsePositiveIntOption } from '../../utils/validation.js';
|
|
|
20
22
|
async function handleDomQuery(selector, options) {
|
|
21
23
|
await runCommand(async () => {
|
|
22
24
|
const result = await queryDOMElements(selector);
|
|
25
|
+
const { setSessionQueryCache } = await import('../../session/queryCache.js');
|
|
26
|
+
setSessionQueryCache(result);
|
|
23
27
|
return { success: true, data: result };
|
|
24
28
|
}, options, formatDomQuery);
|
|
25
29
|
}
|
|
30
|
+
/**
|
|
31
|
+
* Retrieve cached node by index with validation.
|
|
32
|
+
*
|
|
33
|
+
* @param index - Zero-based index from query results
|
|
34
|
+
* @returns Node from cache
|
|
35
|
+
* @throws CommandError if cache missing, index out of range, or node not found
|
|
36
|
+
*/
|
|
37
|
+
async function getCachedNodeByIndex(index) {
|
|
38
|
+
const { getSessionQueryCache } = await import('../../session/queryCache.js');
|
|
39
|
+
const cachedQuery = getSessionQueryCache();
|
|
40
|
+
if (!cachedQuery) {
|
|
41
|
+
throw new CommandError('No cached query results found', {
|
|
42
|
+
suggestion: 'Run "bdg dom query <selector>" first to generate indexed results',
|
|
43
|
+
}, EXIT_CODES.INVALID_ARGUMENTS);
|
|
44
|
+
}
|
|
45
|
+
if (index < 0 || index >= cachedQuery.nodes.length) {
|
|
46
|
+
throw new CommandError(`Index ${index} out of range (found ${cachedQuery.nodes.length} elements)`, {
|
|
47
|
+
suggestion: `Use an index between 0 and ${cachedQuery.nodes.length - 1}`,
|
|
48
|
+
}, EXIT_CODES.INVALID_ARGUMENTS);
|
|
49
|
+
}
|
|
50
|
+
const targetNode = cachedQuery.nodes[index];
|
|
51
|
+
if (!targetNode) {
|
|
52
|
+
throw new CommandError(`Element at index ${index} not found`, {}, EXIT_CODES.RESOURCE_NOT_FOUND);
|
|
53
|
+
}
|
|
54
|
+
return targetNode;
|
|
55
|
+
}
|
|
26
56
|
/**
|
|
27
57
|
* Handle bdg dom get command
|
|
28
58
|
*
|
|
29
59
|
* Retrieves semantic accessibility structure by default (70% token reduction).
|
|
30
60
|
* Use --raw flag for full HTML output.
|
|
61
|
+
* Supports index-based access from query results (e.g., "bdg dom get 0").
|
|
31
62
|
*
|
|
32
|
-
* @param
|
|
63
|
+
* @param selectorOrIndex - CSS selector (e.g., ".error") or numeric index from query results
|
|
33
64
|
* @param options - Command options including --all, --nth, nodeId, and raw
|
|
34
65
|
*/
|
|
35
|
-
async function handleDomGet(
|
|
66
|
+
async function handleDomGet(selectorOrIndex, options) {
|
|
67
|
+
const isNumericIndex = /^\d+$/.test(selectorOrIndex);
|
|
68
|
+
if (isNumericIndex) {
|
|
69
|
+
await handleIndexGet(parseInt(selectorOrIndex, 10), options);
|
|
70
|
+
}
|
|
71
|
+
else {
|
|
72
|
+
await handleSelectorGet(selectorOrIndex, options);
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
/**
|
|
76
|
+
* Handle get command with numeric index
|
|
77
|
+
*/
|
|
78
|
+
async function handleIndexGet(index, options) {
|
|
79
|
+
if (options.raw) {
|
|
80
|
+
await runCommand(async () => {
|
|
81
|
+
const targetNode = await getCachedNodeByIndex(index);
|
|
82
|
+
const getOptions = filterDefined({
|
|
83
|
+
nodeId: targetNode.nodeId,
|
|
84
|
+
});
|
|
85
|
+
const result = await getDOMElements(getOptions);
|
|
86
|
+
return { success: true, data: result };
|
|
87
|
+
}, options, formatDomGet);
|
|
88
|
+
}
|
|
89
|
+
else {
|
|
90
|
+
await runCommand(async () => {
|
|
91
|
+
const targetNode = await getCachedNodeByIndex(index);
|
|
92
|
+
const node = await resolveA11yNode('', targetNode.nodeId);
|
|
93
|
+
if (!node) {
|
|
94
|
+
throw new CommandError(elementNotFoundError(`index ${index}`), {}, EXIT_CODES.RESOURCE_NOT_FOUND);
|
|
95
|
+
}
|
|
96
|
+
return { success: true, data: node };
|
|
97
|
+
}, options, formatSemanticNode);
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
/**
|
|
101
|
+
* Handle get command with CSS selector
|
|
102
|
+
*/
|
|
103
|
+
async function handleSelectorGet(selector, options) {
|
|
36
104
|
if (options.raw) {
|
|
37
105
|
await runCommand(async () => {
|
|
38
106
|
const getOptions = filterDefined({
|
|
@@ -47,21 +115,25 @@ async function handleDomGet(selector, options) {
|
|
|
47
115
|
}
|
|
48
116
|
else {
|
|
49
117
|
await runCommand(async () => {
|
|
50
|
-
const node = await
|
|
118
|
+
const node = await resolveA11yNode(selector);
|
|
51
119
|
if (!node) {
|
|
52
|
-
throw new CommandError(
|
|
120
|
+
throw new CommandError(elementNotFoundError(selector), {}, EXIT_CODES.RESOURCE_NOT_FOUND);
|
|
53
121
|
}
|
|
54
122
|
return { success: true, data: node };
|
|
55
|
-
}, options,
|
|
56
|
-
const fakeTree = {
|
|
57
|
-
root: node,
|
|
58
|
-
nodes: new Map([[node.nodeId, node]]),
|
|
59
|
-
count: 1,
|
|
60
|
-
};
|
|
61
|
-
return semantic(fakeTree);
|
|
62
|
-
});
|
|
123
|
+
}, options, formatSemanticNode);
|
|
63
124
|
}
|
|
64
125
|
}
|
|
126
|
+
/**
|
|
127
|
+
* Formatter for single semantic node
|
|
128
|
+
*/
|
|
129
|
+
function formatSemanticNode(node) {
|
|
130
|
+
const fakeTree = {
|
|
131
|
+
root: node,
|
|
132
|
+
nodes: new Map([[node.nodeId, node]]),
|
|
133
|
+
count: 1,
|
|
134
|
+
};
|
|
135
|
+
return semantic(fakeTree);
|
|
136
|
+
}
|
|
65
137
|
/**
|
|
66
138
|
* Handle bdg dom screenshot <path> command
|
|
67
139
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/commands/dom/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,EAAE,gBAAgB,EAAE,cAAc,EAAE,qBAAqB,EAAE,MAAM,2BAA2B,CAAC;AAGpG,OAAO,EAAE,UAAU,EAAE,MAAM,oCAAoC,CAAC;AAChE,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/commands/dom/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -31,7 +31,7 @@ export declare const CLICK_ELEMENT_SCRIPT = "\n(function(selector) {\n let el =
|
|
|
31
31
|
* @remarks
|
|
32
32
|
* Used when --index is specified to select from multiple matches.
|
|
33
33
|
*/
|
|
34
|
-
export declare const GET_ELEMENT_BY_INDEX_SCRIPT = "\n(function(selector, index) {\n const elements = document.querySelectorAll(selector);\n \n if (elements.length === 0) {\n return {\n success: false,\n error: 'No elements found',\n selector: selector,\n matchCount: 0\n };\n }\n \n if (index < 1 || index > elements.length) {\n return {\n success: false,\n error: 'Index out of range',\n selector: selector,\n matchCount: elements.length,\n requestedIndex: index,\n suggestion: `Use --index between 1 and ${elements.length}`\n };\n }\n \n const el = elements[index - 1]; // Convert to 0-based\n \n function buildUniquePath(element
|
|
34
|
+
export declare const GET_ELEMENT_BY_INDEX_SCRIPT = "\n(function(selector, index) {\n const elements = document.querySelectorAll(selector);\n \n if (elements.length === 0) {\n return {\n success: false,\n error: 'No elements found',\n selector: selector,\n matchCount: 0\n };\n }\n \n if (index < 1 || index > elements.length) {\n return {\n success: false,\n error: 'Index out of range',\n selector: selector,\n matchCount: elements.length,\n requestedIndex: index,\n suggestion: `Use --index between 1 and ${elements.length}`\n };\n }\n \n const el = elements[index - 1]; // Convert to 0-based\n \n function buildUniquePath(element) {\n if (element.id) {\n return `#${CSS.escape(element.id)}`;\n }\n \n const path = [];\n let current = element;\n \n while (current && current !== document.documentElement) {\n let selector = current.tagName.toLowerCase();\n \n if (current.parentElement) {\n const siblings = Array.from(current.parentElement.children);\n const sameTagSiblings = siblings.filter(\n (sibling) => sibling.tagName === current!.tagName\n );\n \n if (sameTagSiblings.length > 1) {\n const index = sameTagSiblings.indexOf(current) + 1;\n selector += `:nth-of-type(${index})`;\n }\n }\n \n path.unshift(selector);\n current = current.parentElement;\n }\n \n return 'html > ' + path.join(' > ');\n }\n \n const uniqueSelector = buildUniquePath(el);\n \n return {\n success: true,\n selector: selector,\n matchCount: elements.length,\n selectedIndex: index,\n uniqueSelector: uniqueSelector\n };\n})\n";
|
|
35
35
|
/**
|
|
36
36
|
* Options for filling an element.
|
|
37
37
|
*/
|
|
@@ -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,+4EAwF7B,CAAC;AAEF;;;;;;GAMG;AACH,eAAO,MAAM,oBAAoB,u/CAyDhC,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,2BAA2B,
|
|
1
|
+
{"version":3,"file":"reactEventHelpers.d.ts","sourceRoot":"","sources":["../../../src/commands/dom/reactEventHelpers.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH;;;;;;;;;;GAUG;AACH,eAAO,MAAM,iBAAiB,+4EAwF7B,CAAC;AAEF;;;;;;GAMG;AACH,eAAO,MAAM,oBAAoB,u/CAyDhC,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,2BAA2B,+pDAkEvC,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;CACrB;AAED;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB"}
|
|
@@ -202,13 +202,13 @@ export const GET_ELEMENT_BY_INDEX_SCRIPT = `
|
|
|
202
202
|
|
|
203
203
|
const el = elements[index - 1]; // Convert to 0-based
|
|
204
204
|
|
|
205
|
-
function buildUniquePath(element
|
|
205
|
+
function buildUniquePath(element) {
|
|
206
206
|
if (element.id) {
|
|
207
207
|
return \`#\${CSS.escape(element.id)}\`;
|
|
208
208
|
}
|
|
209
209
|
|
|
210
|
-
const path
|
|
211
|
-
let current
|
|
210
|
+
const path = [];
|
|
211
|
+
let current = element;
|
|
212
212
|
|
|
213
213
|
while (current && current !== document.documentElement) {
|
|
214
214
|
let selector = current.tagName.toLowerCase();
|
|
@@ -2,6 +2,8 @@
|
|
|
2
2
|
* Machine-readable help generation using Commander.js introspection API.
|
|
3
3
|
*/
|
|
4
4
|
import type { Command } from 'commander';
|
|
5
|
+
import { type DecisionTree } from '../utils/decisionTrees.js';
|
|
6
|
+
import { type TaskMapping } from '../utils/taskMappings.js';
|
|
5
7
|
/**
|
|
6
8
|
* Option metadata for machine-readable help.
|
|
7
9
|
*/
|
|
@@ -57,6 +59,36 @@ export interface CommandMetadata {
|
|
|
57
59
|
/** Subcommands */
|
|
58
60
|
subcommands: CommandMetadata[];
|
|
59
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
|
+
/** Number of high-level commands */
|
|
87
|
+
commands: number;
|
|
88
|
+
/** Domain coverage areas */
|
|
89
|
+
coverage: string[];
|
|
90
|
+
};
|
|
91
|
+
}
|
|
60
92
|
/**
|
|
61
93
|
* Root machine-readable help structure.
|
|
62
94
|
*/
|
|
@@ -78,10 +110,26 @@ export interface MachineReadableHelp {
|
|
|
78
110
|
/** Exit code description */
|
|
79
111
|
description: string;
|
|
80
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;
|
|
81
121
|
}
|
|
82
122
|
/**
|
|
83
123
|
* Generates machine-readable help from a Commander program.
|
|
84
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
|
+
*
|
|
85
133
|
* @param program - Commander program instance
|
|
86
134
|
* @returns Machine-readable help structure
|
|
87
135
|
*
|
|
@@ -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;
|
|
1
|
+
{"version":3,"file":"machineReadableHelp.d.ts","sourceRoot":"","sources":["../../src/commands/machineReadableHelp.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,7 +1,13 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Machine-readable help generation using Commander.js introspection API.
|
|
3
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';
|
|
4
8
|
import { filterDefined } from '../utils/objects.js';
|
|
9
|
+
import { isProcessAlive } from '../utils/process.js';
|
|
10
|
+
import { getAllTaskMappings } from '../utils/taskMappings.js';
|
|
5
11
|
/**
|
|
6
12
|
* Converts a Commander Option to OptionMetadata.
|
|
7
13
|
*
|
|
@@ -52,9 +58,79 @@ function convertCommand(command) {
|
|
|
52
58
|
subcommands: command.commands.map(convertCommand),
|
|
53
59
|
};
|
|
54
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
|
+
* Generates capabilities summary.
|
|
102
|
+
*
|
|
103
|
+
* Dynamically calculates CDP and high-level command capabilities
|
|
104
|
+
* from protocol schema and task mappings.
|
|
105
|
+
*
|
|
106
|
+
* @returns Capabilities object
|
|
107
|
+
*/
|
|
108
|
+
function generateCapabilities() {
|
|
109
|
+
const domainSummaries = getAllDomainSummaries();
|
|
110
|
+
const taskMappings = getAllTaskMappings();
|
|
111
|
+
const totalMethods = domainSummaries.reduce((sum, domain) => sum + domain.commandCount, 0);
|
|
112
|
+
return {
|
|
113
|
+
cdp: {
|
|
114
|
+
domains: domainSummaries.length,
|
|
115
|
+
methods: totalMethods.toString(),
|
|
116
|
+
},
|
|
117
|
+
highLevel: {
|
|
118
|
+
commands: Object.keys(taskMappings).length,
|
|
119
|
+
coverage: ['dom', 'network', 'console', 'session', 'monitoring'],
|
|
120
|
+
},
|
|
121
|
+
};
|
|
122
|
+
}
|
|
55
123
|
/**
|
|
56
124
|
* Generates machine-readable help from a Commander program.
|
|
57
125
|
*
|
|
126
|
+
* Includes comprehensive metadata for agent discovery:
|
|
127
|
+
* - Command structure and options
|
|
128
|
+
* - Exit codes with semantic meanings
|
|
129
|
+
* - Task-to-command mappings with CDP alternatives
|
|
130
|
+
* - Runtime state and command availability
|
|
131
|
+
* - Intent-based decision trees
|
|
132
|
+
* - Capabilities summary
|
|
133
|
+
*
|
|
58
134
|
* @param program - Commander program instance
|
|
59
135
|
* @returns Machine-readable help structure
|
|
60
136
|
*
|
|
@@ -132,6 +208,10 @@ export function generateMachineReadableHelp(program) {
|
|
|
132
208
|
description: 'Inter-process communication error',
|
|
133
209
|
},
|
|
134
210
|
],
|
|
211
|
+
taskMappings: getAllTaskMappings(),
|
|
212
|
+
runtimeState: generateRuntimeState(),
|
|
213
|
+
decisionTrees: getAllDecisionTrees(),
|
|
214
|
+
capabilities: generateCapabilities(),
|
|
135
215
|
};
|
|
136
216
|
}
|
|
137
217
|
//# sourceMappingURL=machineReadableHelp.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"machineReadableHelp.js","sourceRoot":"","sources":["../../src/commands/machineReadableHelp.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"machineReadableHelp.js","sourceRoot":"","sources":["../../src/commands/machineReadableHelp.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"network.d.ts","sourceRoot":"","sources":["../../src/commands/network.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"network.d.ts","sourceRoot":"","sources":["../../src/commands/network.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAyJzC;;;;GAIG;AACH,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAuI9D"}
|
package/dist/commands/network.js
CHANGED
|
@@ -8,6 +8,7 @@ import { getSessionFilePath } from '../session/paths.js';
|
|
|
8
8
|
import { buildHAR } from '../telemetry/har/builder.js';
|
|
9
9
|
import { isDaemonConnectionError } from '../ui/errors/utils.js';
|
|
10
10
|
import { formatCookies, formatNetworkHeaders } from '../ui/formatters/index.js';
|
|
11
|
+
import { sessionNotActiveError } from '../ui/messages/errors.js';
|
|
11
12
|
import { AtomicFileWriter } from '../utils/atomicFile.js';
|
|
12
13
|
import { EXIT_CODES } from '../utils/exitCodes.js';
|
|
13
14
|
import { VERSION } from '../utils/version.js';
|
|
@@ -56,7 +57,7 @@ async function fetchFromLiveSession() {
|
|
|
56
57
|
function fetchFromOfflineSession() {
|
|
57
58
|
const sessionPath = getSessionFilePath('OUTPUT');
|
|
58
59
|
if (!fs.existsSync(sessionPath)) {
|
|
59
|
-
throw new Error('
|
|
60
|
+
throw new Error(sessionNotActiveError('export network data'), {
|
|
60
61
|
cause: { code: EXIT_CODES.RESOURCE_NOT_FOUND },
|
|
61
62
|
});
|
|
62
63
|
}
|
|
@@ -163,9 +164,10 @@ export function registerNetworkCommands(program) {
|
|
|
163
164
|
});
|
|
164
165
|
networkCmd
|
|
165
166
|
.command('headers [id]')
|
|
166
|
-
.description('Show HTTP headers (defaults to main
|
|
167
|
+
.description('Show HTTP headers (defaults to current main document)')
|
|
167
168
|
.option('--header <name>', 'Filter to specific header name')
|
|
168
169
|
.addOption(jsonOption)
|
|
170
|
+
.addHelpText('after', '\nNote: Without [id], shows headers for the current main document.\n If the page has navigated, this will be the latest navigation, not the original URL.')
|
|
169
171
|
.action(async (id, options) => {
|
|
170
172
|
await runCommand(async (opts) => {
|
|
171
173
|
const response = await getNetworkHeaders({
|
|
@@ -186,5 +188,29 @@ export function registerNetworkCommands(program) {
|
|
|
186
188
|
};
|
|
187
189
|
}, options, formatNetworkHeaders);
|
|
188
190
|
});
|
|
191
|
+
networkCmd
|
|
192
|
+
.command('document')
|
|
193
|
+
.description('Show main HTML document request details (alias for headers without ID)')
|
|
194
|
+
.option('--header <name>', 'Filter to specific header name')
|
|
195
|
+
.addOption(jsonOption)
|
|
196
|
+
.action(async (options) => {
|
|
197
|
+
await runCommand(async (opts) => {
|
|
198
|
+
const response = await getNetworkHeaders({
|
|
199
|
+
...(opts.header && { headerName: opts.header }),
|
|
200
|
+
});
|
|
201
|
+
validateIPCResponse(response);
|
|
202
|
+
if (!response.data) {
|
|
203
|
+
return {
|
|
204
|
+
success: false,
|
|
205
|
+
error: 'No data returned from worker',
|
|
206
|
+
exitCode: EXIT_CODES.RESOURCE_NOT_FOUND,
|
|
207
|
+
};
|
|
208
|
+
}
|
|
209
|
+
return {
|
|
210
|
+
success: true,
|
|
211
|
+
data: response.data,
|
|
212
|
+
};
|
|
213
|
+
}, options, formatNetworkHeaders);
|
|
214
|
+
});
|
|
189
215
|
}
|
|
190
216
|
//# sourceMappingURL=network.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"network.js","sourceRoot":"","sources":["../../src/commands/network.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,IAAI,CAAC;AACzB,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAK7B,OAAO,EAAE,UAAU,EAAE,MAAM,oCAAoC,CAAC;AAChE,OAAO,EAAE,UAAU,EAAE,MAAM,oCAAoC,CAAC;AAChE,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AACzE,OAAO,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AACrD,OAAO,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AACxD,OAAO,EAAE,QAAQ,EAAE,MAAM,4BAA4B,CAAC;AAEtD,OAAO,EAAE,uBAAuB,EAAE,MAAM,sBAAsB,CAAC;AAE/D,OAAO,EAAE,aAAa,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AAC/E,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAClD,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AA0B7C;;;;;;;;;GASG;AACH,SAAS,mBAAmB;IAC1B,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC;IACvB,MAAM,IAAI,GAAG,GAAG,CAAC,WAAW,EAAE,CAAC;IAC/B,MAAM,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;IAC1D,MAAM,GAAG,GAAG,MAAM,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;IACnD,MAAM,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;IACtD,MAAM,OAAO,GAAG,MAAM,CAAC,GAAG,CAAC,UAAU,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;IAC1D,MAAM,OAAO,GAAG,MAAM,CAAC,GAAG,CAAC,UAAU,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;IAE1D,MAAM,QAAQ,GAAG,WAAW,IAAI,IAAI,KAAK,IAAI,GAAG,IAAI,KAAK,GAAG,OAAO,GAAG,OAAO,MAAM,CAAC;IACpF,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,kBAAkB,CAAC,QAAQ,CAAC,CAAC,CAAC;IAC9D,OAAO,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;AACzC,CAAC;AAED;;;;;GAKG;AACH,KAAK,UAAU,oBAAoB;IACjC,MAAM,QAAQ,GAAG,MAAM,UAAU,EAAE,CAAC;IACpC,mBAAmB,CAAC,QAAQ,CAAC,CAAC;IAE9B,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,QAAQ,EAAE,CAAC;QAC7B,MAAM,IAAI,KAAK,CAAC,6BAA6B,CAAC,CAAC;IACjD,CAAC;IAED,OAAO,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC;AAChC,CAAC;AAED;;;;;GAKG;AACH,SAAS,uBAAuB;IAC9B,MAAM,WAAW,GAAG,kBAAkB,CAAC,QAAQ,CAAC,CAAC;IAEjD,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,WAAW,CAAC,EAAE,CAAC;QAChC,MAAM,IAAI,KAAK,CAAC,
|
|
1
|
+
{"version":3,"file":"network.js","sourceRoot":"","sources":["../../src/commands/network.ts"],"names":[],"mappings":"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"}
|
package/dist/commands/peek.js
CHANGED
|
@@ -22,10 +22,10 @@ export function registerPeekCommand(program) {
|
|
|
22
22
|
.option('-c, --console', 'Show only console messages', false)
|
|
23
23
|
.option('-d, --dom', 'Show DOM/A11y tree data', false)
|
|
24
24
|
.option('-f, --follow', 'Watch for updates (like tail -f)', false)
|
|
25
|
-
.option('--last <count>', 'Show last N items (
|
|
25
|
+
.option('--last <count>', 'Show last N items (0 = all, default: 10)', '10')
|
|
26
26
|
.option('--type <types>', 'Filter network requests by resource type (comma-separated: Document,XHR,Fetch,etc.)')
|
|
27
27
|
.action(async (options) => {
|
|
28
|
-
const lastRule = positiveIntRule({ min: 1, max: 1000, default: 10 });
|
|
28
|
+
const lastRule = positiveIntRule({ min: 1, max: 1000, default: 10, allowZeroForAll: true });
|
|
29
29
|
const lastN = lastRule.validate(options.last);
|
|
30
30
|
const typeRule = resourceTypeRule();
|
|
31
31
|
const resourceTypes = typeRule.validate(options.type);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"peek.js","sourceRoot":"","sources":["../../src/commands/peek.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,UAAU,EAAE,MAAM,oCAAoC,CAAC;AAChE,OAAO,EAAE,2BAA2B,EAAE,MAAM,yCAAyC,CAAC;AACtF,OAAO,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,iCAAiC,CAAC;AACpF,OAAO,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAC1C,OAAO,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AACrD,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAE9D,OAAO,EAAE,aAAa,EAAuB,MAAM,4BAA4B,CAAC;AAChF,OAAO,EAAE,uBAAuB,EAAE,8BAA8B,EAAE,MAAM,0BAA0B,CAAC;AACnG,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAalD;;;;GAIG;AACH,MAAM,UAAU,mBAAmB,CAAC,OAAgB;IAClD,OAAO;SACJ,OAAO,CAAC,MAAM,CAAC;SACf,WAAW,CAAC,qDAAqD,CAAC;SAClE,SAAS,CAAC,UAAU,CAAC;SACrB,MAAM,CAAC,eAAe,EAAE,kDAAkD,EAAE,KAAK,CAAC;SAClF,MAAM,CAAC,eAAe,EAAE,4BAA4B,EAAE,KAAK,CAAC;SAC5D,MAAM,CAAC,eAAe,EAAE,4BAA4B,EAAE,KAAK,CAAC;SAC5D,MAAM,CAAC,WAAW,EAAE,yBAAyB,EAAE,KAAK,CAAC;SACrD,MAAM,CAAC,cAAc,EAAE,kCAAkC,EAAE,KAAK,CAAC;SACjE,MAAM,CAAC,gBAAgB,EAAE,
|
|
1
|
+
{"version":3,"file":"peek.js","sourceRoot":"","sources":["../../src/commands/peek.ts"],"names":[],"mappings":"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"}
|
|
@@ -21,6 +21,8 @@ export interface CommandResult<T = unknown> {
|
|
|
21
21
|
exitCode?: number;
|
|
22
22
|
/** Optional error context (suggestions, examples, etc.) */
|
|
23
23
|
errorContext?: Record<string, unknown>;
|
|
24
|
+
/** Optional hint message to display on stderr (for successful commands with guidance) */
|
|
25
|
+
hint?: string;
|
|
24
26
|
}
|
|
25
27
|
/**
|
|
26
28
|
* Handler function type.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CommandRunner.d.ts","sourceRoot":"","sources":["../../../src/commands/shared/CommandRunner.ts"],"names":[],"mappings":"AAMA;;;GAGG;AACH,MAAM,WAAW,kBAAkB;IACjC,sDAAsD;IACtD,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB;AAED;;;GAGG;AACH,MAAM,WAAW,aAAa,CAAC,CAAC,GAAG,OAAO;IACxC,oCAAoC;IACpC,OAAO,EAAE,OAAO,CAAC;IACjB,+CAA+C;IAC/C,IAAI,CAAC,EAAE,CAAC,CAAC;IACT,0CAA0C;IAC1C,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,qFAAqF;IACrF,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,2DAA2D;IAC3D,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"CommandRunner.d.ts","sourceRoot":"","sources":["../../../src/commands/shared/CommandRunner.ts"],"names":[],"mappings":"AAMA;;;GAGG;AACH,MAAM,WAAW,kBAAkB;IACjC,sDAAsD;IACtD,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB;AAED;;;GAGG;AACH,MAAM,WAAW,aAAa,CAAC,CAAC,GAAG,OAAO;IACxC,oCAAoC;IACpC,OAAO,EAAE,OAAO,CAAC;IACjB,+CAA+C;IAC/C,IAAI,CAAC,EAAE,CAAC,CAAC;IACT,0CAA0C;IAC1C,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,qFAAqF;IACrF,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,2DAA2D;IAC3D,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACvC,yFAAyF;IACzF,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED;;;GAGG;AACH,MAAM,MAAM,cAAc,CAAC,QAAQ,SAAS,kBAAkB,EAAE,OAAO,GAAG,OAAO,IAAI,CACnF,OAAO,EAAE,QAAQ,KACd,OAAO,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,CAAC;AAErC;;;;;GAKG;AACH,MAAM,MAAM,gBAAgB,CAAC,OAAO,GAAG,OAAO,IAAI,CAAC,IAAI,EAAE,OAAO,KAAK,MAAM,CAAC;AAE5E;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,wBAAsB,UAAU,CAAC,QAAQ,SAAS,kBAAkB,EAAE,OAAO,GAAG,OAAO,EACrF,OAAO,EAAE,cAAc,CAAC,QAAQ,EAAE,OAAO,CAAC,EAC1C,OAAO,EAAE,QAAQ,EACjB,SAAS,CAAC,EAAE,gBAAgB,CAAC,OAAO,CAAC,GACpC,OAAO,CAAC,IAAI,CAAC,CAqFf"}
|
|
@@ -52,6 +52,9 @@ export async function runCommand(handler, options, formatter) {
|
|
|
52
52
|
}
|
|
53
53
|
process.exit(result.exitCode ?? EXIT_CODES.UNHANDLED_EXCEPTION);
|
|
54
54
|
}
|
|
55
|
+
if (result.hint) {
|
|
56
|
+
console.error(result.hint);
|
|
57
|
+
}
|
|
55
58
|
if (options.json) {
|
|
56
59
|
console.log(JSON.stringify(result.data, null, 2));
|
|
57
60
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CommandRunner.js","sourceRoot":"","sources":["../../../src/commands/shared/CommandRunner.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AACtD,OAAO,EAAE,YAAY,EAAE,uBAAuB,EAAE,MAAM,sBAAsB,CAAC;AAC7E,OAAO,EAAE,qBAAqB,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAC5F,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"CommandRunner.js","sourceRoot":"","sources":["../../../src/commands/shared/CommandRunner.ts"],"names":[],"mappings":"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"}
|
|
@@ -26,6 +26,8 @@ export interface IntegerRuleOptions {
|
|
|
26
26
|
default?: number;
|
|
27
27
|
/** Whether the field is required */
|
|
28
28
|
required?: boolean;
|
|
29
|
+
/** Allow 0 to represent "all items" or unlimited */
|
|
30
|
+
allowZeroForAll?: boolean;
|
|
29
31
|
}
|
|
30
32
|
/**
|
|
31
33
|
* Create a positive integer validation rule
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"validation.d.ts","sourceRoot":"","sources":["../../../src/commands/shared/validation.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,2BAA2B,CAAC;AAK1D;;GAEG;AACH,MAAM,WAAW,cAAc,CAAC,CAAC;IAC/B,uCAAuC;IACvC,QAAQ,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,CAAC,CAAC;IAChC,oCAAoC;IACpC,YAAY,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,MAAM,CAAC;CAC3C;AAED;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,4BAA4B;IAC5B,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,4BAA4B;IAC5B,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,oCAAoC;IACpC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,oCAAoC;IACpC,QAAQ,CAAC,EAAE,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"validation.d.ts","sourceRoot":"","sources":["../../../src/commands/shared/validation.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,2BAA2B,CAAC;AAK1D;;GAEG;AACH,MAAM,WAAW,cAAc,CAAC,CAAC;IAC/B,uCAAuC;IACvC,QAAQ,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,CAAC,CAAC;IAChC,oCAAoC;IACpC,YAAY,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,MAAM,CAAC;CAC3C;AAED;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,4BAA4B;IAC5B,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,4BAA4B;IAC5B,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,oCAAoC;IACpC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,oCAAoC;IACpC,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,oDAAoD;IACpD,eAAe,CAAC,EAAE,OAAO,CAAC;CAC3B;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,eAAe,CAAC,OAAO,GAAE,kBAAuB,GAAG,cAAc,CAAC,MAAM,CAAC,CAoDxF;AA6ED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,gBAAgB,IAAI,cAAc,CAAC,QAAQ,CAAC,OAAO,CAAC,YAAY,EAAE,CAAC,CA8BlF"}
|