browser-debugger-cli 0.2.0 → 0.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (128) hide show
  1. package/dist/__tests__/fixtures/schema-v0.2.1.golden.json +47 -0
  2. package/dist/__tests__/schema.contract.test.d.ts +19 -0
  3. package/dist/__tests__/schema.contract.test.d.ts.map +1 -0
  4. package/dist/__tests__/schema.contract.test.js +236 -0
  5. package/dist/__tests__/schema.contract.test.js.map +1 -0
  6. package/dist/commands/__tests__/cdp.contract.test.d.ts.map +1 -1
  7. package/dist/commands/__tests__/cdp.contract.test.js +0 -1
  8. package/dist/commands/__tests__/cdp.contract.test.js.map +1 -1
  9. package/dist/commands/__tests__/domEval.contract.test.d.ts +17 -0
  10. package/dist/commands/__tests__/domEval.contract.test.d.ts.map +1 -0
  11. package/dist/commands/__tests__/domEval.contract.test.js +231 -0
  12. package/dist/commands/__tests__/domEval.contract.test.js.map +1 -0
  13. package/dist/commands/cleanup.d.ts.map +1 -1
  14. package/dist/commands/cleanup.js +46 -5
  15. package/dist/commands/cleanup.js.map +1 -1
  16. package/dist/commands/console.d.ts.map +1 -1
  17. package/dist/commands/console.js +8 -8
  18. package/dist/commands/console.js.map +1 -1
  19. package/dist/commands/details.js +2 -2
  20. package/dist/commands/details.js.map +1 -1
  21. package/dist/commands/dom.d.ts.map +1 -1
  22. package/dist/commands/dom.js +101 -109
  23. package/dist/commands/dom.js.map +1 -1
  24. package/dist/commands/domEvalHelpers.d.ts +6 -10
  25. package/dist/commands/domEvalHelpers.d.ts.map +1 -1
  26. package/dist/commands/domEvalHelpers.js +12 -16
  27. package/dist/commands/domEvalHelpers.js.map +1 -1
  28. package/dist/commands/network.d.ts.map +1 -1
  29. package/dist/commands/network.js +2 -4
  30. package/dist/commands/network.js.map +1 -1
  31. package/dist/commands/peek.d.ts.map +1 -1
  32. package/dist/commands/peek.js +3 -2
  33. package/dist/commands/peek.js.map +1 -1
  34. package/dist/commands/shared/CommandRunner.d.ts +4 -2
  35. package/dist/commands/shared/CommandRunner.d.ts.map +1 -1
  36. package/dist/commands/shared/CommandRunner.js +17 -1
  37. package/dist/commands/shared/CommandRunner.js.map +1 -1
  38. package/dist/commands/shared/commonOptions.d.ts.map +1 -1
  39. package/dist/commands/shared/commonOptions.js +2 -1
  40. package/dist/commands/shared/commonOptions.js.map +1 -1
  41. package/dist/commands/shared/sessionController.d.ts.map +1 -1
  42. package/dist/commands/shared/sessionController.js +7 -8
  43. package/dist/commands/shared/sessionController.js.map +1 -1
  44. package/dist/commands/status.d.ts.map +1 -1
  45. package/dist/commands/status.js +4 -3
  46. package/dist/commands/status.js.map +1 -1
  47. package/dist/commands/stop.d.ts.map +1 -1
  48. package/dist/commands/stop.js +5 -3
  49. package/dist/commands/stop.js.map +1 -1
  50. package/dist/connection/__tests__/cdp.contract.test.d.ts.map +1 -1
  51. package/dist/connection/__tests__/cdp.contract.test.js +0 -1
  52. package/dist/connection/__tests__/cdp.contract.test.js.map +1 -1
  53. package/dist/connection/launcher.d.ts.map +1 -1
  54. package/dist/connection/launcher.js +32 -22
  55. package/dist/connection/launcher.js.map +1 -1
  56. package/dist/daemon/startSession.d.ts.map +1 -1
  57. package/dist/daemon/startSession.js +6 -4
  58. package/dist/daemon/startSession.js.map +1 -1
  59. package/dist/daemon/worker.js +116 -45
  60. package/dist/daemon/worker.js.map +1 -1
  61. package/dist/ipc/client.d.ts +13 -0
  62. package/dist/ipc/client.d.ts.map +1 -1
  63. package/dist/ipc/client.js +16 -0
  64. package/dist/ipc/client.js.map +1 -1
  65. package/dist/ipc/commands.d.ts +19 -0
  66. package/dist/ipc/commands.d.ts.map +1 -1
  67. package/dist/ipc/commands.js +4 -0
  68. package/dist/ipc/commands.js.map +1 -1
  69. package/dist/types.d.ts +24 -0
  70. package/dist/types.d.ts.map +1 -1
  71. package/dist/ui/errors.d.ts +39 -0
  72. package/dist/ui/errors.d.ts.map +1 -0
  73. package/dist/ui/errors.js +48 -0
  74. package/dist/ui/errors.js.map +1 -0
  75. package/dist/ui/formatters/cookies.d.ts.map +1 -1
  76. package/dist/ui/formatters/cookies.js +18 -21
  77. package/dist/ui/formatters/cookies.js.map +1 -1
  78. package/dist/ui/formatters/details.d.ts.map +1 -1
  79. package/dist/ui/formatters/details.js +34 -36
  80. package/dist/ui/formatters/details.js.map +1 -1
  81. package/dist/ui/formatters/dom.d.ts +135 -0
  82. package/dist/ui/formatters/dom.d.ts.map +1 -0
  83. package/dist/ui/formatters/dom.js +193 -0
  84. package/dist/ui/formatters/dom.js.map +1 -0
  85. package/dist/ui/formatters/index.d.ts +1 -0
  86. package/dist/ui/formatters/index.d.ts.map +1 -1
  87. package/dist/ui/formatters/index.js +1 -0
  88. package/dist/ui/formatters/index.js.map +1 -1
  89. package/dist/ui/formatters/preview.js +43 -38
  90. package/dist/ui/formatters/preview.js.map +1 -1
  91. package/dist/ui/formatters/status.d.ts.map +1 -1
  92. package/dist/ui/formatters/status.js +44 -44
  93. package/dist/ui/formatters/status.js.map +1 -1
  94. package/dist/ui/formatting.d.ts +104 -1
  95. package/dist/ui/formatting.d.ts.map +1 -1
  96. package/dist/ui/formatting.js +138 -2
  97. package/dist/ui/formatting.js.map +1 -1
  98. package/dist/ui/messages/chrome.d.ts +70 -0
  99. package/dist/ui/messages/chrome.d.ts.map +1 -1
  100. package/dist/ui/messages/chrome.js +91 -0
  101. package/dist/ui/messages/chrome.js.map +1 -1
  102. package/dist/ui/messages/debug.d.ts +4 -2
  103. package/dist/ui/messages/debug.d.ts.map +1 -1
  104. package/dist/ui/messages/debug.js +31 -29
  105. package/dist/ui/messages/debug.js.map +1 -1
  106. package/dist/ui/messages/errors.d.ts +11 -0
  107. package/dist/ui/messages/errors.d.ts.map +1 -1
  108. package/dist/ui/messages/errors.js +13 -0
  109. package/dist/ui/messages/errors.js.map +1 -1
  110. package/dist/ui/messages/preview.d.ts +24 -0
  111. package/dist/ui/messages/preview.d.ts.map +1 -1
  112. package/dist/ui/messages/preview.js +31 -0
  113. package/dist/ui/messages/preview.js.map +1 -1
  114. package/dist/ui/messages/validation.d.ts +14 -0
  115. package/dist/ui/messages/validation.d.ts.map +1 -1
  116. package/dist/ui/messages/validation.js +16 -0
  117. package/dist/ui/messages/validation.js.map +1 -1
  118. package/dist/utils/filters.js +1 -1
  119. package/dist/utils/filters.js.map +1 -1
  120. package/dist/utils/pageReadiness.d.ts +9 -14
  121. package/dist/utils/pageReadiness.d.ts.map +1 -1
  122. package/dist/utils/pageReadiness.js +16 -16
  123. package/dist/utils/pageReadiness.js.map +1 -1
  124. package/dist/utils/url.d.ts +58 -6
  125. package/dist/utils/url.d.ts.map +1 -1
  126. package/dist/utils/url.js +127 -20
  127. package/dist/utils/url.js.map +1 -1
  128. package/package.json +2 -5
@@ -1,7 +1,7 @@
1
- import { OutputBuilder } from '../commands/shared/OutputBuilder.js';
2
- import { queryDOM, highlightDOM, getDOM } from '../ipc/client.js';
3
- import { EXIT_CODES } from '../utils/exitCodes.js';
4
- import { handleCommandError } from './domErrorHandler.js';
1
+ import { runCommand } from '../commands/shared/CommandRunner.js';
2
+ import { queryDOM, highlightDOM, getDOM, captureScreenshot } from '../ipc/client.js';
3
+ import { formatDomQuery, formatDomHighlight, formatDomGet, formatDomEval, formatDomScreenshot, } from '../ui/formatters/dom.js';
4
+ import { filterDefined } from '../utils/objects.js';
5
5
  import { buildSelectorOptions } from './domOptionsBuilder.js';
6
6
  /**
7
7
  * Handle bdg dom query <selector> command
@@ -11,49 +11,27 @@ import { buildSelectorOptions } from './domOptionsBuilder.js';
11
11
  *
12
12
  * @param selector - CSS selector to query (e.g., ".error", "#app", "button")
13
13
  * @param options - Command options
14
- * @throws Error When IPC request fails or returns error response
15
- * @throws Error When response data is missing
16
14
  */
17
15
  async function handleDomQuery(selector, options) {
18
- try {
19
- // Send query request via IPC to daemon/worker
16
+ await runCommand(async () => {
20
17
  const response = await queryDOM(selector);
21
18
  if (response.status === 'error') {
22
- throw new Error(response.error ?? 'Unknown error');
19
+ return {
20
+ success: false,
21
+ error: response.error ?? 'Unknown error',
22
+ };
23
23
  }
24
24
  if (!response.data) {
25
- throw new Error('No data in response');
25
+ return {
26
+ success: false,
27
+ error: 'No data in response',
28
+ };
26
29
  }
27
- const { count, nodes } = response.data;
28
- if (count === 0) {
29
- if (options.json) {
30
- console.log(JSON.stringify({
31
- selector,
32
- count: 0,
33
- nodes: [],
34
- }, null, 2));
35
- }
36
- else {
37
- console.log(`No elements found matching "${selector}"`);
38
- }
39
- process.exit(EXIT_CODES.SUCCESS);
40
- }
41
- // Output results
42
- if (options.json) {
43
- console.log(JSON.stringify(response.data, null, 2));
44
- }
45
- else {
46
- console.log(`Found ${count} element${count === 1 ? '' : 's'} matching "${selector}":`);
47
- for (const node of nodes) {
48
- const classInfo = node.classes && node.classes.length > 0 ? ` class="${node.classes.join(' ')}"` : '';
49
- console.log(` [${node.index}] <${node.tag}${classInfo}> ${node.preview}`);
50
- }
51
- }
52
- process.exit(EXIT_CODES.SUCCESS);
53
- }
54
- catch (error) {
55
- handleCommandError(error, options.json ?? false);
56
- }
30
+ return {
31
+ success: true,
32
+ data: response.data,
33
+ };
34
+ }, options, formatDomQuery);
57
35
  }
58
36
  /**
59
37
  * Handle bdg dom highlight command
@@ -63,12 +41,9 @@ async function handleDomQuery(selector, options) {
63
41
  *
64
42
  * @param selectorOrIndex - CSS selector (e.g., ".error") or index from cached query (e.g., "2")
65
43
  * @param options - Command options including color, opacity, targeting flags, and nodeId
66
- * @throws Error When cached index not found (user must run 'bdg dom query' first)
67
- * @throws Error When IPC request fails or returns error response
68
- * @throws Error When response data is missing
69
44
  */
70
45
  async function handleDomHighlight(selectorOrIndex, options) {
71
- try {
46
+ await runCommand(async () => {
72
47
  // Build base IPC request options (color, opacity, targeting)
73
48
  const ipcOptions = {
74
49
  ...(options.color !== undefined && { color: options.color }),
@@ -79,26 +54,24 @@ async function handleDomHighlight(selectorOrIndex, options) {
79
54
  // Add selector/index/nodeId using shared helper
80
55
  const selectorOptions = buildSelectorOptions(selectorOrIndex, options.nodeId);
81
56
  Object.assign(ipcOptions, selectorOptions);
82
- // Send highlight request via IPC to daemon/worker
83
57
  const response = await highlightDOM(ipcOptions);
84
58
  if (response.status === 'error') {
85
- throw new Error(response.error ?? 'Unknown error');
59
+ return {
60
+ success: false,
61
+ error: response.error ?? 'Unknown error',
62
+ };
86
63
  }
87
64
  if (!response.data) {
88
- throw new Error('No data in response');
89
- }
90
- // Output result
91
- if (options.json) {
92
- console.log(JSON.stringify(response.data, null, 2));
93
- }
94
- else {
95
- console.log(`✓ Highlighted ${response.data.highlighted} element${response.data.highlighted === 1 ? '' : 's'}`);
65
+ return {
66
+ success: false,
67
+ error: 'No data in response',
68
+ };
96
69
  }
97
- process.exit(EXIT_CODES.SUCCESS);
98
- }
99
- catch (error) {
100
- handleCommandError(error, options.json ?? false);
101
- }
70
+ return {
71
+ success: true,
72
+ data: response.data,
73
+ };
74
+ }, options, formatDomHighlight);
102
75
  }
103
76
  /**
104
77
  * Handle bdg dom get command
@@ -108,12 +81,9 @@ async function handleDomHighlight(selectorOrIndex, options) {
108
81
  *
109
82
  * @param selectorOrIndex - CSS selector (e.g., ".error") or index from cached query (e.g., "2")
110
83
  * @param options - Command options including --all, --nth, and nodeId
111
- * @throws Error When cached index not found (user must run 'bdg dom query' first)
112
- * @throws Error When IPC request fails or returns error response
113
- * @throws Error When response data is missing
114
84
  */
115
85
  async function handleDomGet(selectorOrIndex, options) {
116
- try {
86
+ await runCommand(async () => {
117
87
  // Build base IPC request options (targeting flags)
118
88
  const ipcOptions = {
119
89
  ...(options.all !== undefined && { all: options.all }),
@@ -122,63 +92,82 @@ async function handleDomGet(selectorOrIndex, options) {
122
92
  // Add selector/index/nodeId using shared helper
123
93
  const selectorOptions = buildSelectorOptions(selectorOrIndex, options.nodeId);
124
94
  Object.assign(ipcOptions, selectorOptions);
125
- // Send get request via IPC to daemon/worker
126
95
  const response = await getDOM(ipcOptions);
127
96
  if (response.status === 'error') {
128
- throw new Error(response.error ?? 'Unknown error');
97
+ return {
98
+ success: false,
99
+ error: response.error ?? 'Unknown error',
100
+ };
129
101
  }
130
102
  if (!response.data) {
131
- throw new Error('No data in response');
103
+ return {
104
+ success: false,
105
+ error: 'No data in response',
106
+ };
132
107
  }
133
- const { nodes } = response.data;
134
- // Output results
135
- if (options.json) {
136
- console.log(JSON.stringify(nodes.length === 1 ? nodes[0] : nodes, null, 2));
108
+ return {
109
+ success: true,
110
+ data: response.data,
111
+ };
112
+ }, options, formatDomGet);
113
+ }
114
+ /**
115
+ * Handle bdg dom screenshot <path> command
116
+ *
117
+ * Captures a screenshot of the current page and saves it to disk.
118
+ * Supports PNG and JPEG formats with customizable quality and viewport options.
119
+ *
120
+ * @param path - Output file path (absolute or relative)
121
+ * @param options - Screenshot options (format, quality, fullPage)
122
+ */
123
+ async function handleDomScreenshot(path, options) {
124
+ await runCommand(async () => {
125
+ const screenshotOptions = filterDefined({
126
+ format: options.format,
127
+ quality: options.quality,
128
+ fullPage: options.fullPage,
129
+ });
130
+ const response = await captureScreenshot(path, screenshotOptions);
131
+ if (response.status === 'error') {
132
+ return {
133
+ success: false,
134
+ error: response.error ?? 'Unknown error',
135
+ };
137
136
  }
138
- else {
139
- if (nodes.length === 1) {
140
- // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
141
- console.log(nodes[0].outerHTML);
142
- }
143
- else {
144
- for (const [i, node] of nodes.entries()) {
145
- console.log(`[${i + 1}] ${node.outerHTML}`);
146
- }
147
- }
137
+ if (!response.data) {
138
+ return {
139
+ success: false,
140
+ error: 'No data in response',
141
+ };
148
142
  }
149
- process.exit(EXIT_CODES.SUCCESS);
150
- }
151
- catch (error) {
152
- handleCommandError(error, options.json ?? false);
153
- }
143
+ return {
144
+ success: true,
145
+ data: response.data,
146
+ };
147
+ }, options, formatDomScreenshot);
154
148
  }
155
149
  /**
156
150
  * Handle bdg dom eval <script> command
157
151
  *
158
152
  * Evaluates arbitrary JavaScript in the browser context and returns the result.
159
153
  * Requires an active session. Uses CDP Runtime.evaluate with async support.
154
+ * Note: This command uses direct CDP connection (not IPC) so it follows a different pattern.
160
155
  *
161
156
  * @param script - JavaScript expression to evaluate (e.g., "document.title", "window.location.href")
162
157
  * @param options - Command options including port and json formatting
163
- * @throws Error When no active session is running
164
- * @throws Error When session metadata is invalid
165
- * @throws Error When target no longer exists (tab closed)
166
- * @throws Error When CDP connection fails
167
- * @throws Error When script execution throws exception
168
158
  */
169
159
  async function handleDomEval(script, options) {
170
- try {
160
+ await runCommand(async () => {
171
161
  // Lazy load CDP connection (only needed for eval command)
172
162
  const { CDPConnection } = await import('../connection/cdp.js');
173
163
  const { validateActiveSession, getValidatedSessionMetadata, verifyTargetExists, executeScript, } = await import('./domEvalHelpers.js');
174
164
  // Validate session is running
175
- const jsonOutput = options.json ?? false;
176
- validateActiveSession(jsonOutput);
165
+ validateActiveSession();
177
166
  // Get and validate session metadata
178
- const metadata = getValidatedSessionMetadata(jsonOutput);
167
+ const metadata = getValidatedSessionMetadata();
179
168
  // Verify target still exists
180
169
  const port = parseInt(options.port ?? '9222', 10);
181
- await verifyTargetExists(metadata, port, jsonOutput);
170
+ await verifyTargetExists(metadata, port);
182
171
  // Create temporary CDP connection and execute script
183
172
  const cdp = new CDPConnection();
184
173
  // getValidatedSessionMetadata ensures webSocketDebuggerUrl is defined
@@ -186,20 +175,11 @@ async function handleDomEval(script, options) {
186
175
  await cdp.connect(metadata.webSocketDebuggerUrl);
187
176
  const result = await executeScript(cdp, script);
188
177
  cdp.close();
189
- // Output result (wrapped if --json, raw otherwise)
190
- if (options.json) {
191
- console.log(JSON.stringify(OutputBuilder.buildJsonSuccess({
192
- result: result.result?.value,
193
- }), null, 2));
194
- }
195
- else {
196
- console.log(JSON.stringify(result.result?.value, null, 2));
197
- }
198
- process.exit(EXIT_CODES.SUCCESS);
199
- }
200
- catch (error) {
201
- handleCommandError(error, options.json ?? false);
202
- }
178
+ return {
179
+ success: true,
180
+ data: { result: result.result?.value },
181
+ };
182
+ }, options, formatDomEval);
203
183
  }
204
184
  /**
205
185
  * Register DOM telemetry commands
@@ -253,5 +233,17 @@ export function registerDomCommands(program) {
253
233
  .action(async (selectorOrIndex, options) => {
254
234
  await handleDomGet(selectorOrIndex, options);
255
235
  });
236
+ // bdg dom screenshot <path>
237
+ dom
238
+ .command('screenshot')
239
+ .description('Capture page screenshot')
240
+ .argument('<path>', 'Output file path (e.g., "./screenshot.png")')
241
+ .option('--format <format>', 'Image format: png or jpeg (default: png)')
242
+ .option('--quality <number>', 'JPEG quality 0-100 (default: 90)', parseInt)
243
+ .option('--no-full-page', 'Capture viewport only (default: full page)')
244
+ .option('-j, --json', 'Output as JSON')
245
+ .action(async (path, options) => {
246
+ await handleDomScreenshot(path, options);
247
+ });
256
248
  }
257
249
  //# sourceMappingURL=dom.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"dom.js","sourceRoot":"","sources":["../../src/commands/dom.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"dom.js","sourceRoot":"","sources":["../../src/commands/dom.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,UAAU,EAAE,MAAM,oCAAoC,CAAC;AAChE,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AACpF,OAAO,EACL,cAAc,EACd,kBAAkB,EAClB,YAAY,EACZ,aAAa,EACb,mBAAmB,GACpB,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAEnD,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAoC9D;;;;;;;;GAQG;AACH,KAAK,UAAU,cAAc,CAAC,QAAgB,EAAE,OAAwB;IACtE,MAAM,UAAU,CACd,KAAK,IAAI,EAAE;QACT,MAAM,QAAQ,GAAG,MAAM,QAAQ,CAAC,QAAQ,CAAC,CAAC;QAE1C,IAAI,QAAQ,CAAC,MAAM,KAAK,OAAO,EAAE,CAAC;YAChC,OAAO;gBACL,OAAO,EAAE,KAAK;gBACd,KAAK,EAAE,QAAQ,CAAC,KAAK,IAAI,eAAe;aACzC,CAAC;QACJ,CAAC;QAED,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;YACnB,OAAO;gBACL,OAAO,EAAE,KAAK;gBACd,KAAK,EAAE,qBAAqB;aAC7B,CAAC;QACJ,CAAC;QAED,OAAO;YACL,OAAO,EAAE,IAAI;YACb,IAAI,EAAE,QAAQ,CAAC,IAAI;SACpB,CAAC;IACJ,CAAC,EACD,OAAO,EACP,cAAc,CACf,CAAC;AACJ,CAAC;AAED;;;;;;;;GAQG;AACH,KAAK,UAAU,kBAAkB,CAC/B,eAAuB,EACvB,OAA4B;IAE5B,MAAM,UAAU,CACd,KAAK,IAAI,EAAE;QACT,6DAA6D;QAC7D,MAAM,UAAU,GAAuC;YACrD,GAAG,CAAC,OAAO,CAAC,KAAK,KAAK,SAAS,IAAI,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,CAAC;YAC5D,GAAG,CAAC,OAAO,CAAC,OAAO,KAAK,SAAS,IAAI,EAAE,OAAO,EAAE,OAAO,CAAC,OAAO,EAAE,CAAC;YAClE,GAAG,CAAC,OAAO,CAAC,KAAK,KAAK,SAAS,IAAI,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,CAAC;YAC5D,GAAG,CAAC,OAAO,CAAC,GAAG,KAAK,SAAS,IAAI,EAAE,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE,CAAC;SACvD,CAAC;QAEF,gDAAgD;QAChD,MAAM,eAAe,GAAG,oBAAoB,CAC1C,eAAe,EACf,OAAO,CAAC,MAAM,CACf,CAAC;QACF,MAAM,CAAC,MAAM,CAAC,UAAU,EAAE,eAAe,CAAC,CAAC;QAE3C,MAAM,QAAQ,GAAG,MAAM,YAAY,CAAC,UAAU,CAAC,CAAC;QAEhD,IAAI,QAAQ,CAAC,MAAM,KAAK,OAAO,EAAE,CAAC;YAChC,OAAO;gBACL,OAAO,EAAE,KAAK;gBACd,KAAK,EAAE,QAAQ,CAAC,KAAK,IAAI,eAAe;aACzC,CAAC;QACJ,CAAC;QAED,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;YACnB,OAAO;gBACL,OAAO,EAAE,KAAK;gBACd,KAAK,EAAE,qBAAqB;aAC7B,CAAC;QACJ,CAAC;QAED,OAAO;YACL,OAAO,EAAE,IAAI;YACb,IAAI,EAAE,QAAQ,CAAC,IAAI;SACpB,CAAC;IACJ,CAAC,EACD,OAAO,EACP,kBAAkB,CACnB,CAAC;AACJ,CAAC;AAED;;;;;;;;GAQG;AACH,KAAK,UAAU,YAAY,CAAC,eAAuB,EAAE,OAAsB;IACzE,MAAM,UAAU,CACd,KAAK,IAAI,EAAE;QACT,mDAAmD;QACnD,MAAM,UAAU,GAAiC;YAC/C,GAAG,CAAC,OAAO,CAAC,GAAG,KAAK,SAAS,IAAI,EAAE,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE,CAAC;YACtD,GAAG,CAAC,OAAO,CAAC,GAAG,KAAK,SAAS,IAAI,EAAE,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE,CAAC;SACvD,CAAC;QAEF,gDAAgD;QAChD,MAAM,eAAe,GAAG,oBAAoB,CAC1C,eAAe,EACf,OAAO,CAAC,MAAM,CACf,CAAC;QACF,MAAM,CAAC,MAAM,CAAC,UAAU,EAAE,eAAe,CAAC,CAAC;QAE3C,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,UAAU,CAAC,CAAC;QAE1C,IAAI,QAAQ,CAAC,MAAM,KAAK,OAAO,EAAE,CAAC;YAChC,OAAO;gBACL,OAAO,EAAE,KAAK;gBACd,KAAK,EAAE,QAAQ,CAAC,KAAK,IAAI,eAAe;aACzC,CAAC;QACJ,CAAC;QAED,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;YACnB,OAAO;gBACL,OAAO,EAAE,KAAK;gBACd,KAAK,EAAE,qBAAqB;aAC7B,CAAC;QACJ,CAAC;QAED,OAAO;YACL,OAAO,EAAE,IAAI;YACb,IAAI,EAAE,QAAQ,CAAC,IAAI;SACpB,CAAC;IACJ,CAAC,EACD,OAAO,EACP,YAAY,CACb,CAAC;AACJ,CAAC;AAED;;;;;;;;GAQG;AACH,KAAK,UAAU,mBAAmB,CAAC,IAAY,EAAE,OAA6B;IAC5E,MAAM,UAAU,CACd,KAAK,IAAI,EAAE;QACT,MAAM,iBAAiB,GAAG,aAAa,CAAC;YACtC,MAAM,EAAE,OAAO,CAAC,MAAM;YACtB,OAAO,EAAE,OAAO,CAAC,OAAO;YACxB,QAAQ,EAAE,OAAO,CAAC,QAAQ;SAC3B,CAAsE,CAAC;QAExE,MAAM,QAAQ,GAAG,MAAM,iBAAiB,CAAC,IAAI,EAAE,iBAAiB,CAAC,CAAC;QAElE,IAAI,QAAQ,CAAC,MAAM,KAAK,OAAO,EAAE,CAAC;YAChC,OAAO;gBACL,OAAO,EAAE,KAAK;gBACd,KAAK,EAAE,QAAQ,CAAC,KAAK,IAAI,eAAe;aACzC,CAAC;QACJ,CAAC;QAED,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;YACnB,OAAO;gBACL,OAAO,EAAE,KAAK;gBACd,KAAK,EAAE,qBAAqB;aAC7B,CAAC;QACJ,CAAC;QAED,OAAO;YACL,OAAO,EAAE,IAAI;YACb,IAAI,EAAE,QAAQ,CAAC,IAAI;SACpB,CAAC;IACJ,CAAC,EACD,OAAO,EACP,mBAAmB,CACpB,CAAC;AACJ,CAAC;AASD;;;;;;;;;GASG;AACH,KAAK,UAAU,aAAa,CAAC,MAAc,EAAE,OAAuB;IAClE,MAAM,UAAU,CACd,KAAK,IAAI,EAAE;QACT,0DAA0D;QAC1D,MAAM,EAAE,aAAa,EAAE,GAAG,MAAM,MAAM,CAAC,qBAAqB,CAAC,CAAC;QAC9D,MAAM,EACJ,qBAAqB,EACrB,2BAA2B,EAC3B,kBAAkB,EAClB,aAAa,GACd,GAAG,MAAM,MAAM,CAAC,qBAAqB,CAAC,CAAC;QAExC,8BAA8B;QAC9B,qBAAqB,EAAE,CAAC;QAExB,oCAAoC;QACpC,MAAM,QAAQ,GAAG,2BAA2B,EAAE,CAAC;QAE/C,6BAA6B;QAC7B,MAAM,IAAI,GAAG,QAAQ,CAAC,OAAO,CAAC,IAAI,IAAI,MAAM,EAAE,EAAE,CAAC,CAAC;QAClD,MAAM,kBAAkB,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;QAEzC,qDAAqD;QACrD,MAAM,GAAG,GAAG,IAAI,aAAa,EAAE,CAAC;QAChC,sEAAsE;QACtE,oEAAoE;QACpE,MAAM,GAAG,CAAC,OAAO,CAAC,QAAQ,CAAC,oBAAqB,CAAC,CAAC;QAElD,MAAM,MAAM,GAAG,MAAM,aAAa,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;QAChD,GAAG,CAAC,KAAK,EAAE,CAAC;QAEZ,OAAO;YACL,OAAO,EAAE,IAAI;YACb,IAAI,EAAE,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,KAAK,EAAE;SACvC,CAAC;IACJ,CAAC,EACD,OAAO,EACP,aAAa,CACd,CAAC;AACJ,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,mBAAmB,CAAC,OAAgB;IAClD,MAAM,GAAG,GAAG,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,WAAW,CAAC,iCAAiC,CAAC,CAAC;IAElF,2BAA2B;IAC3B,GAAG;SACA,OAAO,CAAC,OAAO,CAAC;SAChB,WAAW,CAAC,+BAA+B,CAAC;SAC5C,QAAQ,CAAC,YAAY,EAAE,iDAAiD,CAAC;SACzE,MAAM,CAAC,YAAY,EAAE,gBAAgB,CAAC;SACtC,MAAM,CAAC,KAAK,EAAE,QAAgB,EAAE,OAAwB,EAAE,EAAE;QAC3D,MAAM,cAAc,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;IAC1C,CAAC,CAAC,CAAC;IAEL,wBAAwB;IACxB,GAAG;SACA,OAAO,CAAC,MAAM,CAAC;SACf,WAAW,CAAC,oDAAoD,CAAC;SACjE,QAAQ,CAAC,UAAU,EAAE,wEAAwE,CAAC;SAC9F,MAAM,CAAC,qBAAqB,EAAE,uCAAuC,CAAC;SACtE,MAAM,CAAC,YAAY,EAAE,uCAAuC,CAAC;SAC7D,MAAM,CAAC,KAAK,EAAE,MAAc,EAAE,OAAuB,EAAE,EAAE;QACxD,MAAM,aAAa,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACvC,CAAC,CAAC,CAAC;IAEL,qCAAqC;IACrC,GAAG;SACA,OAAO,CAAC,WAAW,CAAC;SACpB,WAAW,CAAC,+BAA+B,CAAC;SAC5C,QAAQ,CAAC,kBAAkB,EAAE,uCAAuC,CAAC;SACrE,MAAM,CAAC,SAAS,EAAE,yBAAyB,CAAC;SAC5C,MAAM,CAAC,WAAW,EAAE,kBAAkB,EAAE,QAAQ,CAAC;SACjD,MAAM,CAAC,gBAAgB,EAAE,gCAAgC,EAAE,QAAQ,CAAC;SACpE,MAAM,CAAC,iBAAiB,EAAE,4DAA4D,CAAC;SACvF,MAAM,CAAC,mBAAmB,EAAE,+BAA+B,EAAE,UAAU,CAAC;SACxE,MAAM,CAAC,YAAY,EAAE,gBAAgB,CAAC;SACtC,MAAM,CAAC,KAAK,EAAE,eAAuB,EAAE,OAA4B,EAAE,EAAE;QACtE,MAAM,kBAAkB,CAAC,eAAe,EAAE,OAAO,CAAC,CAAC;IACrD,CAAC,CAAC,CAAC;IAEL,+BAA+B;IAC/B,GAAG;SACA,OAAO,CAAC,KAAK,CAAC;SACd,WAAW,CAAC,2CAA2C,CAAC;SACxD,QAAQ,CAAC,kBAAkB,EAAE,uCAAuC,CAAC;SACrE,MAAM,CAAC,OAAO,EAAE,oBAAoB,CAAC;SACrC,MAAM,CAAC,WAAW,EAAE,kBAAkB,EAAE,QAAQ,CAAC;SACjD,MAAM,CAAC,gBAAgB,EAAE,gCAAgC,EAAE,QAAQ,CAAC;SACpE,MAAM,CAAC,YAAY,EAAE,gBAAgB,CAAC;SACtC,MAAM,CAAC,KAAK,EAAE,eAAuB,EAAE,OAAsB,EAAE,EAAE;QAChE,MAAM,YAAY,CAAC,eAAe,EAAE,OAAO,CAAC,CAAC;IAC/C,CAAC,CAAC,CAAC;IAEL,4BAA4B;IAC5B,GAAG;SACA,OAAO,CAAC,YAAY,CAAC;SACrB,WAAW,CAAC,yBAAyB,CAAC;SACtC,QAAQ,CAAC,QAAQ,EAAE,6CAA6C,CAAC;SACjE,MAAM,CAAC,mBAAmB,EAAE,0CAA0C,CAAC;SACvE,MAAM,CAAC,oBAAoB,EAAE,kCAAkC,EAAE,QAAQ,CAAC;SAC1E,MAAM,CAAC,gBAAgB,EAAE,4CAA4C,CAAC;SACtE,MAAM,CAAC,YAAY,EAAE,gBAAgB,CAAC;SACtC,MAAM,CAAC,KAAK,EAAE,IAAY,EAAE,OAA6B,EAAE,EAAE;QAC5D,MAAM,mBAAmB,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IAC3C,CAAC,CAAC,CAAC;AACP,CAAC"}
@@ -16,29 +16,25 @@ interface RuntimeEvaluateResult {
16
16
  /**
17
17
  * Validate that an active session is running
18
18
  *
19
- * @param json - Whether to output JSON format
20
19
  * @returns PID of running session
21
- * @throws never Exits process if no active session found
20
+ * @throws Error When no active session is found
22
21
  */
23
- export declare function validateActiveSession(json: boolean): number;
22
+ export declare function validateActiveSession(): number;
24
23
  /**
25
24
  * Get session metadata with validation
26
25
  *
27
- * @param json - Whether to output JSON format
28
26
  * @returns Session metadata including targetId and webSocketDebuggerUrl
29
- * @throws never Exits process if metadata is invalid or missing required fields
27
+ * @throws Error When metadata is invalid or missing required fields
30
28
  */
31
- export declare function getValidatedSessionMetadata(json: boolean): SessionMetadata;
29
+ export declare function getValidatedSessionMetadata(): SessionMetadata;
32
30
  /**
33
31
  * Verify that the CDP target still exists
34
32
  *
35
33
  * @param metadata - Session metadata containing targetId
36
34
  * @param port - CDP port number
37
- * @param json - Whether to output JSON format
38
- * @throws Error When CDP response is invalid
39
- * @throws never Exits process if target not found
35
+ * @throws Error When CDP response is invalid or target not found
40
36
  */
41
- export declare function verifyTargetExists(metadata: SessionMetadata, port: number, json: boolean): Promise<void>;
37
+ export declare function verifyTargetExists(metadata: SessionMetadata, port: number): Promise<void>;
42
38
  /**
43
39
  * Execute JavaScript in browser context via CDP
44
40
  *
@@ -1 +1 @@
1
- {"version":3,"file":"domEvalHelpers.d.ts","sourceRoot":"","sources":["../../src/commands/domEvalHelpers.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACzD,OAAO,EAAuB,KAAK,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAclF;;GAEG;AACH,UAAU,qBAAqB;IAC7B,gBAAgB,CAAC,EAAE;QACjB,SAAS,CAAC,EAAE;YACV,WAAW,CAAC,EAAE,MAAM,CAAC;SACtB,CAAC;KACH,CAAC;IACF,MAAM,CAAC,EAAE;QACP,KAAK,CAAC,EAAE,OAAO,CAAC;KACjB,CAAC;CACH;AAED;;;;;;GAMG;AACH,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,OAAO,GAAG,MAAM,CAW3D;AAED;;;;;;GAMG;AACH,wBAAgB,2BAA2B,CAAC,IAAI,EAAE,OAAO,GAAG,eAAe,CAc1E;AAED;;;;;;;;GAQG;AACH,wBAAsB,kBAAkB,CACtC,QAAQ,EAAE,eAAe,EACzB,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,OAAO,GACZ,OAAO,CAAC,IAAI,CAAC,CAkBf;AAED;;;;;;;GAOG;AACH,wBAAsB,aAAa,CACjC,GAAG,EAAE,aAAa,EAClB,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,qBAAqB,CAAC,CAehC"}
1
+ {"version":3,"file":"domEvalHelpers.d.ts","sourceRoot":"","sources":["../../src/commands/domEvalHelpers.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACzD,OAAO,EAAuB,KAAK,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAclF;;GAEG;AACH,UAAU,qBAAqB;IAC7B,gBAAgB,CAAC,EAAE;QACjB,SAAS,CAAC,EAAE;YACV,WAAW,CAAC,EAAE,MAAM,CAAC;SACtB,CAAC;KACH,CAAC;IACF,MAAM,CAAC,EAAE;QACP,KAAK,CAAC,EAAE,OAAO,CAAC;KACjB,CAAC;CACH;AAED;;;;;GAKG;AACH,wBAAgB,qBAAqB,IAAI,MAAM,CAU9C;AAED;;;;;GAKG;AACH,wBAAgB,2BAA2B,IAAI,eAAe,CAY7D;AAED;;;;;;GAMG;AACH,wBAAsB,kBAAkB,CAAC,QAAQ,EAAE,eAAe,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAiB/F;AAED;;;;;;;GAOG;AACH,wBAAsB,aAAa,CACjC,GAAG,EAAE,aAAa,EAClB,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,qBAAqB,CAAC,CAehC"}
@@ -1,35 +1,33 @@
1
1
  import { readSessionMetadata } from '../session/metadata.js';
2
2
  import { readPid } from '../session/pid.js';
3
3
  import { isProcessAlive } from '../session/process.js';
4
+ import { CommandError } from '../ui/errors.js';
5
+ import { invalidCDPResponseError } from '../ui/messages/errors.js';
4
6
  import { EXIT_CODES } from '../utils/exitCodes.js';
5
- import { handleCommandErrorWithContext } from './domErrorHandler.js';
6
7
  /**
7
8
  * Validate that an active session is running
8
9
  *
9
- * @param json - Whether to output JSON format
10
10
  * @returns PID of running session
11
- * @throws never Exits process if no active session found
11
+ * @throws Error When no active session is found
12
12
  */
13
- export function validateActiveSession(json) {
13
+ export function validateActiveSession() {
14
14
  const pid = readPid();
15
15
  if (!pid || !isProcessAlive(pid)) {
16
- handleCommandErrorWithContext('No active session running', json, { suggestion: 'Start a session with: bdg <url>' }, EXIT_CODES.RESOURCE_NOT_FOUND);
16
+ throw new CommandError('No active session running', { suggestion: 'Start a session with: bdg <url>' }, EXIT_CODES.RESOURCE_NOT_FOUND);
17
17
  }
18
18
  return pid;
19
19
  }
20
20
  /**
21
21
  * Get session metadata with validation
22
22
  *
23
- * @param json - Whether to output JSON format
24
23
  * @returns Session metadata including targetId and webSocketDebuggerUrl
25
- * @throws never Exits process if metadata is invalid or missing required fields
24
+ * @throws Error When metadata is invalid or missing required fields
26
25
  */
27
- export function getValidatedSessionMetadata(json) {
26
+ export function getValidatedSessionMetadata() {
28
27
  const metadata = readSessionMetadata();
29
28
  if (!metadata?.targetId || !metadata.webSocketDebuggerUrl) {
30
- handleCommandErrorWithContext('No target information in session metadata', json, { note: 'Session may have been started with an older version' }, EXIT_CODES.SESSION_FILE_ERROR);
29
+ throw new CommandError('No target information in session metadata', { note: 'Session may have been started with an older version' }, EXIT_CODES.SESSION_FILE_ERROR);
31
30
  }
32
- // TypeScript doesn't know handleCommandErrorWithContext never returns
33
31
  return metadata;
34
32
  }
35
33
  /**
@@ -37,19 +35,17 @@ export function getValidatedSessionMetadata(json) {
37
35
  *
38
36
  * @param metadata - Session metadata containing targetId
39
37
  * @param port - CDP port number
40
- * @param json - Whether to output JSON format
41
- * @throws Error When CDP response is invalid
42
- * @throws never Exits process if target not found
38
+ * @throws Error When CDP response is invalid or target not found
43
39
  */
44
- export async function verifyTargetExists(metadata, port, json) {
40
+ export async function verifyTargetExists(metadata, port) {
45
41
  const response = await fetch(`http://127.0.0.1:${port}/json/list`);
46
42
  const targetsData = await response.json();
47
43
  if (!Array.isArray(targetsData)) {
48
- throw new Error('Invalid response from CDP');
44
+ throw new Error(invalidCDPResponseError());
49
45
  }
50
46
  const target = targetsData.find((t) => t.id === metadata.targetId);
51
47
  if (!target) {
52
- handleCommandErrorWithContext('Session target not found (tab may have been closed)', json, { suggestion: 'Start a new session with: bdg <url>' }, EXIT_CODES.RESOURCE_NOT_FOUND);
48
+ throw new CommandError('Session target not found (tab may have been closed)', { suggestion: 'Start a new session with: bdg <url>' }, EXIT_CODES.RESOURCE_NOT_FOUND);
53
49
  }
54
50
  }
55
51
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"domEvalHelpers.js","sourceRoot":"","sources":["../../src/commands/domEvalHelpers.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,mBAAmB,EAAwB,MAAM,uBAAuB,CAAC;AAClF,OAAO,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAC3C,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAElD,OAAO,EAAE,6BAA6B,EAAE,MAAM,sBAAsB,CAAC;AAuBrE;;;;;;GAMG;AACH,MAAM,UAAU,qBAAqB,CAAC,IAAa;IACjD,MAAM,GAAG,GAAG,OAAO,EAAE,CAAC;IACtB,IAAI,CAAC,GAAG,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,EAAE,CAAC;QACjC,6BAA6B,CAC3B,2BAA2B,EAC3B,IAAI,EACJ,EAAE,UAAU,EAAE,iCAAiC,EAAE,EACjD,UAAU,CAAC,kBAAkB,CAC9B,CAAC;IACJ,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,2BAA2B,CAAC,IAAa;IACvD,MAAM,QAAQ,GAAG,mBAAmB,EAAE,CAAC;IAEvC,IAAI,CAAC,QAAQ,EAAE,QAAQ,IAAI,CAAC,QAAQ,CAAC,oBAAoB,EAAE,CAAC;QAC1D,6BAA6B,CAC3B,2CAA2C,EAC3C,IAAI,EACJ,EAAE,IAAI,EAAE,qDAAqD,EAAE,EAC/D,UAAU,CAAC,kBAAkB,CAC9B,CAAC;IACJ,CAAC;IAED,sEAAsE;IACtE,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,CAAC,KAAK,UAAU,kBAAkB,CACtC,QAAyB,EACzB,IAAY,EACZ,IAAa;IAEb,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,oBAAoB,IAAI,YAAY,CAAC,CAAC;IACnE,MAAM,WAAW,GAAY,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;IAEnD,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE,CAAC;QAChC,MAAM,IAAI,KAAK,CAAC,2BAA2B,CAAC,CAAC;IAC/C,CAAC;IAED,MAAM,MAAM,GAAI,WAA2B,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,QAAQ,CAAC,QAAQ,CAAC,CAAC;IAEpF,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,6BAA6B,CAC3B,qDAAqD,EACrD,IAAI,EACJ,EAAE,UAAU,EAAE,qCAAqC,EAAE,EACrD,UAAU,CAAC,kBAAkB,CAC9B,CAAC;IACJ,CAAC;AACH,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,CAAC,KAAK,UAAU,aAAa,CACjC,GAAkB,EAClB,MAAc;IAEd,MAAM,MAAM,GAAG,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,kBAAkB,EAAE;QACjD,UAAU,EAAE,MAAM;QAClB,aAAa,EAAE,IAAI;QACnB,YAAY,EAAE,IAAI;KACnB,CAAC,CAA0B,CAAC;IAE7B,iCAAiC;IACjC,IAAI,MAAM,CAAC,gBAAgB,EAAE,CAAC;QAC5B,MAAM,QAAQ,GACZ,MAAM,CAAC,gBAAgB,CAAC,SAAS,EAAE,WAAW,IAAI,gCAAgC,CAAC;QACrF,MAAM,IAAI,KAAK,CAAC,QAAQ,CAAC,CAAC;IAC5B,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC"}
1
+ {"version":3,"file":"domEvalHelpers.js","sourceRoot":"","sources":["../../src/commands/domEvalHelpers.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,mBAAmB,EAAwB,MAAM,uBAAuB,CAAC;AAClF,OAAO,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAC3C,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,uBAAuB,EAAE,MAAM,yBAAyB,CAAC;AAClE,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAuBlD;;;;;GAKG;AACH,MAAM,UAAU,qBAAqB;IACnC,MAAM,GAAG,GAAG,OAAO,EAAE,CAAC;IACtB,IAAI,CAAC,GAAG,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,EAAE,CAAC;QACjC,MAAM,IAAI,YAAY,CACpB,2BAA2B,EAC3B,EAAE,UAAU,EAAE,iCAAiC,EAAE,EACjD,UAAU,CAAC,kBAAkB,CAC9B,CAAC;IACJ,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,2BAA2B;IACzC,MAAM,QAAQ,GAAG,mBAAmB,EAAE,CAAC;IAEvC,IAAI,CAAC,QAAQ,EAAE,QAAQ,IAAI,CAAC,QAAQ,CAAC,oBAAoB,EAAE,CAAC;QAC1D,MAAM,IAAI,YAAY,CACpB,2CAA2C,EAC3C,EAAE,IAAI,EAAE,qDAAqD,EAAE,EAC/D,UAAU,CAAC,kBAAkB,CAC9B,CAAC;IACJ,CAAC;IAED,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,kBAAkB,CAAC,QAAyB,EAAE,IAAY;IAC9E,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,oBAAoB,IAAI,YAAY,CAAC,CAAC;IACnE,MAAM,WAAW,GAAY,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;IAEnD,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE,CAAC;QAChC,MAAM,IAAI,KAAK,CAAC,uBAAuB,EAAE,CAAC,CAAC;IAC7C,CAAC;IAED,MAAM,MAAM,GAAI,WAA2B,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,QAAQ,CAAC,QAAQ,CAAC,CAAC;IAEpF,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,MAAM,IAAI,YAAY,CACpB,qDAAqD,EACrD,EAAE,UAAU,EAAE,qCAAqC,EAAE,EACrD,UAAU,CAAC,kBAAkB,CAC9B,CAAC;IACJ,CAAC;AACH,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,CAAC,KAAK,UAAU,aAAa,CACjC,GAAkB,EAClB,MAAc;IAEd,MAAM,MAAM,GAAG,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,kBAAkB,EAAE;QACjD,UAAU,EAAE,MAAM;QAClB,aAAa,EAAE,IAAI;QACnB,YAAY,EAAE,IAAI;KACnB,CAAC,CAA0B,CAAC;IAE7B,iCAAiC;IACjC,IAAI,MAAM,CAAC,gBAAgB,EAAE,CAAC;QAC5B,MAAM,QAAQ,GACZ,MAAM,CAAC,gBAAgB,CAAC,SAAS,EAAE,WAAW,IAAI,gCAAgC,CAAC;QACrF,MAAM,IAAI,KAAK,CAAC,QAAQ,CAAC,CAAC;IAC5B,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"network.d.ts","sourceRoot":"","sources":["../../src/commands/network.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAkBzC;;;;GAIG;AACH,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAuC9D"}
1
+ {"version":3,"file":"network.d.ts","sourceRoot":"","sources":["../../src/commands/network.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAkBzC;;;;GAIG;AACH,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAqC9D"}
@@ -34,10 +34,8 @@ export function registerNetworkCommands(program) {
34
34
  data: cookies,
35
35
  };
36
36
  }, options,
37
- // Human-readable formatter (returns formatted string)
38
- (cookies) => {
39
- console.log(formatCookies(cookies));
40
- });
37
+ // Human-readable formatter
38
+ formatCookies);
41
39
  });
42
40
  }
43
41
  //# sourceMappingURL=network.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"network.js","sourceRoot":"","sources":["../../src/commands/network.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,UAAU,EAAE,MAAM,oCAAoC,CAAC;AAChE,OAAO,EAAE,UAAU,EAAE,MAAM,oCAAoC,CAAC;AAChE,OAAO,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAC1C,OAAO,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AAEjE,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAUzD;;;;GAIG;AACH,MAAM,UAAU,uBAAuB,CAAC,OAAgB;IACtD,MAAM,UAAU,GAAG,OAAO,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,WAAW,CAAC,qCAAqC,CAAC,CAAC;IAEjG,yBAAyB;IACzB,UAAU;SACP,OAAO,CAAC,YAAY,CAAC;SACrB,WAAW,CAAC,oCAAoC,CAAC;SACjD,MAAM,CAAC,aAAa,EAAE,uBAAuB,CAAC;SAC9C,SAAS,CAAC,UAAU,CAAC;SACrB,MAAM,CAAC,KAAK,EAAE,OAA0B,EAAE,EAAE;QAC3C,MAAM,UAAU,CACd,KAAK,EAAE,IAAI,EAAE,EAAE;YACb,8BAA8B;YAC9B,MAAM,MAAM,GAA4B,EAAE,CAAC;YAC3C,IAAI,IAAI,CAAC,GAAG,EAAE,CAAC;gBACb,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YAC9B,CAAC;YAED,8BAA8B;YAC9B,MAAM,QAAQ,GAAG,MAAM,OAAO,CAAC,oBAAoB,EAAE,MAAM,CAAC,CAAC;YAE7D,0CAA0C;YAC1C,mBAAmB,CAAC,QAAQ,CAAC,CAAC;YAE9B,oCAAoC;YACpC,MAAM,OAAO,GAAI,QAAQ,CAAC,IAAI,EAAE,MAAiC,EAAE,OAAO,IAAI,EAAE,CAAC;YAEjF,OAAO;gBACL,OAAO,EAAE,IAAI;gBACb,IAAI,EAAE,OAAO;aACd,CAAC;QACJ,CAAC,EACD,OAAO;QACP,sDAAsD;QACtD,CAAC,OAAiB,EAAE,EAAE;YACpB,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,CAAC;QACtC,CAAC,CACF,CAAC;IACJ,CAAC,CAAC,CAAC;AACP,CAAC"}
1
+ {"version":3,"file":"network.js","sourceRoot":"","sources":["../../src/commands/network.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,UAAU,EAAE,MAAM,oCAAoC,CAAC;AAChE,OAAO,EAAE,UAAU,EAAE,MAAM,oCAAoC,CAAC;AAChE,OAAO,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAC1C,OAAO,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AAEjE,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAUzD;;;;GAIG;AACH,MAAM,UAAU,uBAAuB,CAAC,OAAgB;IACtD,MAAM,UAAU,GAAG,OAAO,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,WAAW,CAAC,qCAAqC,CAAC,CAAC;IAEjG,yBAAyB;IACzB,UAAU;SACP,OAAO,CAAC,YAAY,CAAC;SACrB,WAAW,CAAC,oCAAoC,CAAC;SACjD,MAAM,CAAC,aAAa,EAAE,uBAAuB,CAAC;SAC9C,SAAS,CAAC,UAAU,CAAC;SACrB,MAAM,CAAC,KAAK,EAAE,OAA0B,EAAE,EAAE;QAC3C,MAAM,UAAU,CACd,KAAK,EAAE,IAAI,EAAE,EAAE;YACb,8BAA8B;YAC9B,MAAM,MAAM,GAA4B,EAAE,CAAC;YAC3C,IAAI,IAAI,CAAC,GAAG,EAAE,CAAC;gBACb,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YAC9B,CAAC;YAED,8BAA8B;YAC9B,MAAM,QAAQ,GAAG,MAAM,OAAO,CAAC,oBAAoB,EAAE,MAAM,CAAC,CAAC;YAE7D,0CAA0C;YAC1C,mBAAmB,CAAC,QAAQ,CAAC,CAAC;YAE9B,oCAAoC;YACpC,MAAM,OAAO,GAAI,QAAQ,CAAC,IAAI,EAAE,MAAiC,EAAE,OAAO,IAAI,EAAE,CAAC;YAEjF,OAAO;gBACL,OAAO,EAAE,IAAI;gBACb,IAAI,EAAE,OAAO;aACd,CAAC;QACJ,CAAC,EACD,OAAO;QACP,2BAA2B;QAC3B,aAAa,CACd,CAAC;IACJ,CAAC,CAAC,CAAC;AACP,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"peek.d.ts","sourceRoot":"","sources":["../../src/commands/peek.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AA+BzC;;;;GAIG;AACH,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAoG1D"}
1
+ {"version":3,"file":"peek.d.ts","sourceRoot":"","sources":["../../src/commands/peek.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAgCzC;;;;GAIG;AACH,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAoG1D"}
@@ -5,6 +5,7 @@ import { validateIPCResponse } from '../ipc/responseValidator.js';
5
5
  import { formatPreview } from '../ui/formatters/preview.js';
6
6
  import { invalidLastArgumentError } from '../ui/messages/commands.js';
7
7
  import { daemonNotRunningError, noPreviewDataError } from '../ui/messages/errors.js';
8
+ import { followingPreviewMessage, stoppedFollowingPreviewMessage } from '../ui/messages/preview.js';
8
9
  import { EXIT_CODES } from '../utils/exitCodes.js';
9
10
  /**
10
11
  * Handle errors in a consistent way for both follow and one-time modes.
@@ -93,7 +94,7 @@ export function registerPeekCommand(program) {
93
94
  };
94
95
  if (options.follow) {
95
96
  // Follow mode: update every second
96
- console.error('Following live preview (Ctrl+C to stop)...\n');
97
+ console.error(followingPreviewMessage());
97
98
  await showPreview();
98
99
  const followInterval = setInterval(() => {
99
100
  void showPreview();
@@ -101,7 +102,7 @@ export function registerPeekCommand(program) {
101
102
  // Handle Ctrl+C gracefully
102
103
  process.on('SIGINT', () => {
103
104
  clearInterval(followInterval);
104
- console.error('\nStopped following preview');
105
+ console.error(stoppedFollowingPreviewMessage());
105
106
  process.exit(EXIT_CODES.SUCCESS);
106
107
  });
107
108
  }
@@ -1 +1 @@
1
- {"version":3,"file":"peek.js","sourceRoot":"","sources":["../../src/commands/peek.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"peek.js","sourceRoot":"","sources":["../../src/commands/peek.ts"],"names":[],"mappings":"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"}
@@ -27,9 +27,11 @@ export interface CommandResult<T = unknown> {
27
27
  export type CommandHandler<TOptions extends BaseCommandOptions, TResult = unknown> = (options: TOptions) => Promise<CommandResult<TResult>>;
28
28
  /**
29
29
  * Formatter function type for human-readable output.
30
- * Receives the command result data and outputs to console.
30
+ * Receives the command result data and returns a formatted string.
31
+ *
32
+ * @returns Formatted string to be output to console
31
33
  */
32
- export type CommandFormatter<TResult = unknown> = (data: TResult) => void;
34
+ export type CommandFormatter<TResult = unknown> = (data: TResult) => string;
33
35
  /**
34
36
  * Run a command with consistent error handling, output formatting, and exit codes.
35
37
  * Eliminates boilerplate try-catch and JSON output logic from command handlers.
@@ -1 +1 @@
1
- {"version":3,"file":"CommandRunner.d.ts","sourceRoot":"","sources":["../../../src/commands/shared/CommandRunner.ts"],"names":[],"mappings":"AAKA;;;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;CACnB;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;;;GAGG;AACH,MAAM,MAAM,gBAAgB,CAAC,OAAO,GAAG,OAAO,IAAI,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC;AAE1E;;;;;;;;;;;;;;;;;;;;;;;;;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,CAwDf"}
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;CACnB;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,CAyEf"}
@@ -1,4 +1,5 @@
1
1
  import { OutputBuilder } from '../../commands/shared/OutputBuilder.js';
2
+ import { CommandError } from '../../ui/errors.js';
2
3
  import { daemonNotRunningError, unknownError, genericError } from '../../ui/messages/errors.js';
3
4
  import { getErrorMessage } from '../../utils/errors.js';
4
5
  import { EXIT_CODES } from '../../utils/exitCodes.js';
@@ -46,7 +47,8 @@ export async function runCommand(handler, options, formatter) {
46
47
  console.log(JSON.stringify(result.data, null, 2));
47
48
  }
48
49
  else if (formatter) {
49
- formatter(result.data);
50
+ const formattedOutput = formatter(result.data);
51
+ console.log(formattedOutput);
50
52
  }
51
53
  else {
52
54
  // Fallback: JSON output if no formatter provided
@@ -55,6 +57,20 @@ export async function runCommand(handler, options, formatter) {
55
57
  process.exit(EXIT_CODES.SUCCESS);
56
58
  }
57
59
  catch (error) {
60
+ // Handle CommandError with metadata and custom exit code
61
+ if (error instanceof CommandError) {
62
+ if (options.json) {
63
+ console.log(JSON.stringify(OutputBuilder.buildJsonError(error.message, error.metadata), null, 2));
64
+ }
65
+ else {
66
+ console.error(genericError(error.message));
67
+ // Output metadata as additional help text
68
+ for (const value of Object.values(error.metadata)) {
69
+ console.error(value);
70
+ }
71
+ }
72
+ process.exit(error.exitCode);
73
+ }
58
74
  const errorMessage = getErrorMessage(error);
59
75
  // Detect daemon connection errors
60
76
  if (errorMessage.includes('ENOENT') || errorMessage.includes('ECONNREFUSED')) {
@@ -1 +1 @@
1
- {"version":3,"file":"CommandRunner.js","sourceRoot":"","sources":["../../../src/commands/shared/CommandRunner.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"CommandRunner.js","sourceRoot":"","sources":["../../../src/commands/shared/CommandRunner.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"commonOptions.d.ts","sourceRoot":"","sources":["../../../src/commands/shared/commonOptions.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AAEnC;;;;;;;;;;;;;;;GAeG;AACH,eAAO,MAAM,UAAU,QAA6C,CAAC;AAErE;;;;;;;;;;;;;GAaG;AACH,eAAO,MAAM,UAAU,QAQnB,CAAC;AAEL;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,YAAY,CAAC,UAAU,EAAE,MAAM,EAAE,GAAG,MAAM,CAIzD"}
1
+ {"version":3,"file":"commonOptions.d.ts","sourceRoot":"","sources":["../../../src/commands/shared/commonOptions.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AAInC;;;;;;;;;;;;;;;GAeG;AACH,eAAO,MAAM,UAAU,QAA6C,CAAC;AAErE;;;;;;;;;;;;;GAaG;AACH,eAAO,MAAM,UAAU,QAQnB,CAAC;AAEL;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,YAAY,CAAC,UAAU,EAAE,MAAM,EAAE,GAAG,MAAM,CAIzD"}