browser-debugger-cli 0.6.10 → 0.7.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (260) hide show
  1. package/README.md +10 -0
  2. package/dist/commands/cdp.d.ts.map +1 -1
  3. package/dist/commands/cdp.js +72 -16
  4. package/dist/commands/cdp.js.map +1 -1
  5. package/dist/commands/cleanup.js +1 -1
  6. package/dist/commands/cleanup.js.map +1 -1
  7. package/dist/commands/console.d.ts +4 -28
  8. package/dist/commands/console.d.ts.map +1 -1
  9. package/dist/commands/console.js +81 -187
  10. package/dist/commands/console.js.map +1 -1
  11. package/dist/commands/details.d.ts.map +1 -1
  12. package/dist/commands/details.js +8 -0
  13. package/dist/commands/details.js.map +1 -1
  14. package/dist/commands/dom/DomElementResolver.d.ts +2 -2
  15. package/dist/commands/dom/DomElementResolver.d.ts.map +1 -1
  16. package/dist/commands/dom/DomElementResolver.js +34 -13
  17. package/dist/commands/dom/DomElementResolver.js.map +1 -1
  18. package/dist/commands/dom/__tests__/screenshotResize.unit.test.d.ts +2 -0
  19. package/dist/commands/dom/__tests__/screenshotResize.unit.test.d.ts.map +1 -0
  20. package/dist/commands/dom/__tests__/screenshotResize.unit.test.js +184 -0
  21. package/dist/commands/dom/__tests__/screenshotResize.unit.test.js.map +1 -0
  22. package/dist/commands/dom/a11y.d.ts.map +1 -1
  23. package/dist/commands/dom/a11y.js +14 -10
  24. package/dist/commands/dom/a11y.js.map +1 -1
  25. package/dist/commands/dom/evalHelpers.d.ts.map +1 -1
  26. package/dist/commands/dom/evalHelpers.js +10 -7
  27. package/dist/commands/dom/evalHelpers.js.map +1 -1
  28. package/dist/commands/dom/form.d.ts +14 -0
  29. package/dist/commands/dom/form.d.ts.map +1 -0
  30. package/dist/commands/dom/form.js +439 -0
  31. package/dist/commands/dom/form.js.map +1 -0
  32. package/dist/commands/dom/formDiscovery.d.ts +26 -0
  33. package/dist/commands/dom/formDiscovery.d.ts.map +1 -0
  34. package/dist/commands/dom/formDiscovery.js +476 -0
  35. package/dist/commands/dom/formDiscovery.js.map +1 -0
  36. package/dist/commands/dom/formFillHelpers.d.ts +2 -1
  37. package/dist/commands/dom/formFillHelpers.d.ts.map +1 -1
  38. package/dist/commands/dom/formFillHelpers.js +54 -24
  39. package/dist/commands/dom/formFillHelpers.js.map +1 -1
  40. package/dist/commands/dom/formInteraction.d.ts.map +1 -1
  41. package/dist/commands/dom/formInteraction.js +26 -10
  42. package/dist/commands/dom/formInteraction.js.map +1 -1
  43. package/dist/commands/dom/formSubmitHelpers.d.ts +2 -1
  44. package/dist/commands/dom/formSubmitHelpers.d.ts.map +1 -1
  45. package/dist/commands/dom/formSubmitHelpers.js.map +1 -1
  46. package/dist/commands/dom/formTypes.d.ts +75 -0
  47. package/dist/commands/dom/formTypes.d.ts.map +1 -0
  48. package/dist/commands/dom/formTypes.js +7 -0
  49. package/dist/commands/dom/formTypes.js.map +1 -0
  50. package/dist/commands/dom/helpers.d.ts +11 -4
  51. package/dist/commands/dom/helpers.d.ts.map +1 -1
  52. package/dist/commands/dom/helpers.js +324 -40
  53. package/dist/commands/dom/helpers.js.map +1 -1
  54. package/dist/commands/dom/index.d.ts.map +1 -1
  55. package/dist/commands/dom/index.js +17 -5
  56. package/dist/commands/dom/index.js.map +1 -1
  57. package/dist/commands/dom/reactEventHelpers.d.ts +4 -4
  58. package/dist/commands/dom/reactEventHelpers.d.ts.map +1 -1
  59. package/dist/commands/dom/reactEventHelpers.js +11 -11
  60. package/dist/commands/dom/screenshotResize.d.ts +81 -0
  61. package/dist/commands/dom/screenshotResize.d.ts.map +1 -0
  62. package/dist/commands/dom/screenshotResize.js +103 -0
  63. package/dist/commands/dom/screenshotResize.js.map +1 -0
  64. package/dist/commands/helpJson.d.ts +20 -0
  65. package/dist/commands/helpJson.d.ts.map +1 -1
  66. package/dist/commands/helpJson.js +21 -29
  67. package/dist/commands/helpJson.js.map +1 -1
  68. package/dist/commands/network/har.d.ts.map +1 -1
  69. package/dist/commands/network/har.js +3 -2
  70. package/dist/commands/network/har.js.map +1 -1
  71. package/dist/commands/network/list.d.ts +0 -8
  72. package/dist/commands/network/list.d.ts.map +1 -1
  73. package/dist/commands/network/list.js +131 -201
  74. package/dist/commands/network/list.js.map +1 -1
  75. package/dist/commands/network/shared.d.ts.map +1 -1
  76. package/dist/commands/network/shared.js +6 -0
  77. package/dist/commands/network/shared.js.map +1 -1
  78. package/dist/commands/optionBehaviors.d.ts +26 -0
  79. package/dist/commands/optionBehaviors.d.ts.map +1 -0
  80. package/dist/commands/optionBehaviors.js +195 -0
  81. package/dist/commands/optionBehaviors.js.map +1 -0
  82. package/dist/commands/peek.d.ts +2 -4
  83. package/dist/commands/peek.d.ts.map +1 -1
  84. package/dist/commands/peek.js +108 -92
  85. package/dist/commands/peek.js.map +1 -1
  86. package/dist/commands/shared/CommandRunner.js +1 -1
  87. package/dist/commands/shared/CommandRunner.js.map +1 -1
  88. package/dist/commands/shared/dataFetcher.d.ts +58 -0
  89. package/dist/commands/shared/dataFetcher.d.ts.map +1 -0
  90. package/dist/commands/shared/dataFetcher.js +98 -0
  91. package/dist/commands/shared/dataFetcher.js.map +1 -0
  92. package/dist/commands/shared/optionTypes.d.ts +8 -4
  93. package/dist/commands/shared/optionTypes.d.ts.map +1 -1
  94. package/dist/commands/shared/startHelpers.d.ts.map +1 -1
  95. package/dist/commands/shared/startHelpers.js +6 -5
  96. package/dist/commands/shared/startHelpers.js.map +1 -1
  97. package/dist/commands/shared/validation.d.ts +0 -45
  98. package/dist/commands/shared/validation.d.ts.map +1 -1
  99. package/dist/commands/shared/validation.js +65 -107
  100. package/dist/commands/shared/validation.js.map +1 -1
  101. package/dist/commands/status.d.ts.map +1 -1
  102. package/dist/commands/status.js +13 -4
  103. package/dist/commands/status.js.map +1 -1
  104. package/dist/commands/stop.d.ts.map +1 -1
  105. package/dist/commands/stop.js +15 -4
  106. package/dist/commands/stop.js.map +1 -1
  107. package/dist/commands/tail.d.ts +2 -7
  108. package/dist/commands/tail.d.ts.map +1 -1
  109. package/dist/commands/tail.js +61 -64
  110. package/dist/commands/tail.js.map +1 -1
  111. package/dist/connection/cdp.d.ts.map +1 -1
  112. package/dist/connection/cdp.js +5 -3
  113. package/dist/connection/cdp.js.map +1 -1
  114. package/dist/connection/diagnostics.js +1 -1
  115. package/dist/connection/diagnostics.js.map +1 -1
  116. package/dist/connection/errors.d.ts +0 -7
  117. package/dist/connection/errors.d.ts.map +1 -1
  118. package/dist/connection/errors.js +0 -7
  119. package/dist/connection/errors.js.map +1 -1
  120. package/dist/connection/launcher/binaryResolver.d.ts.map +1 -1
  121. package/dist/connection/launcher/binaryResolver.js +2 -1
  122. package/dist/connection/launcher/binaryResolver.js.map +1 -1
  123. package/dist/connection/launcher/preferencesLoader.d.ts.map +1 -1
  124. package/dist/connection/launcher/preferencesLoader.js +2 -1
  125. package/dist/connection/launcher/preferencesLoader.js.map +1 -1
  126. package/dist/connection/launcher.d.ts.map +1 -1
  127. package/dist/connection/launcher.js +2 -1
  128. package/dist/connection/launcher.js.map +1 -1
  129. package/dist/connection/pageReadiness.d.ts.map +1 -1
  130. package/dist/connection/pageReadiness.js +2 -9
  131. package/dist/connection/pageReadiness.js.map +1 -1
  132. package/dist/daemon/handlers/BaseHandler.d.ts.map +1 -1
  133. package/dist/daemon/handlers/BaseHandler.js +1 -1
  134. package/dist/daemon/handlers/BaseHandler.js.map +1 -1
  135. package/dist/daemon/handlers/QueryHandlers.d.ts.map +1 -1
  136. package/dist/daemon/handlers/QueryHandlers.js +1 -1
  137. package/dist/daemon/handlers/QueryHandlers.js.map +1 -1
  138. package/dist/daemon/handlers/SessionHandlers.d.ts.map +1 -1
  139. package/dist/daemon/handlers/SessionHandlers.js +1 -1
  140. package/dist/daemon/handlers/SessionHandlers.js.map +1 -1
  141. package/dist/daemon/ipcServer.js +1 -1
  142. package/dist/daemon/ipcServer.js.map +1 -1
  143. package/dist/daemon/launcher.d.ts.map +1 -1
  144. package/dist/daemon/launcher.js +3 -2
  145. package/dist/daemon/launcher.js.map +1 -1
  146. package/dist/daemon/lifecycle/signalHandlers.d.ts.map +1 -1
  147. package/dist/daemon/lifecycle/signalHandlers.js +1 -1
  148. package/dist/daemon/lifecycle/signalHandlers.js.map +1 -1
  149. package/dist/daemon/lifecycle/workerCleanup.d.ts.map +1 -1
  150. package/dist/daemon/lifecycle/workerCleanup.js +4 -3
  151. package/dist/daemon/lifecycle/workerCleanup.js.map +1 -1
  152. package/dist/daemon/lifecycle/workerConfig.d.ts.map +1 -1
  153. package/dist/daemon/lifecycle/workerConfig.js +1 -1
  154. package/dist/daemon/lifecycle/workerConfig.js.map +1 -1
  155. package/dist/daemon/lifecycle/workerIpc.d.ts.map +1 -1
  156. package/dist/daemon/lifecycle/workerIpc.js +1 -1
  157. package/dist/daemon/lifecycle/workerIpc.js.map +1 -1
  158. package/dist/daemon/server/JsonlParser.d.ts.map +1 -1
  159. package/dist/daemon/server/JsonlParser.js +1 -1
  160. package/dist/daemon/server/JsonlParser.js.map +1 -1
  161. package/dist/daemon/startSession.d.ts.map +1 -1
  162. package/dist/daemon/startSession.js +1 -1
  163. package/dist/daemon/startSession.js.map +1 -1
  164. package/dist/daemon/worker/plugins.js +3 -3
  165. package/dist/daemon/worker/plugins.js.map +1 -1
  166. package/dist/index.js +23 -7
  167. package/dist/index.js.map +1 -1
  168. package/dist/ipc/protocol/messages.d.ts +2 -2
  169. package/dist/ipc/protocol/messages.d.ts.map +1 -1
  170. package/dist/ipc/utils/errors.js +1 -1
  171. package/dist/ipc/utils/errors.js.map +1 -1
  172. package/dist/session/QueryCacheManager.d.ts.map +1 -1
  173. package/dist/session/QueryCacheManager.js +1 -1
  174. package/dist/session/QueryCacheManager.js.map +1 -1
  175. package/dist/session/chrome.js +1 -1
  176. package/dist/session/chrome.js.map +1 -1
  177. package/dist/session/cleanup.js +5 -5
  178. package/dist/session/cleanup.js.map +1 -1
  179. package/dist/session/lock.js +1 -1
  180. package/dist/session/lock.js.map +1 -1
  181. package/dist/session/metadata.d.ts.map +1 -1
  182. package/dist/session/metadata.js +1 -1
  183. package/dist/session/metadata.js.map +1 -1
  184. package/dist/session/pid.js +1 -1
  185. package/dist/session/pid.js.map +1 -1
  186. package/dist/telemetry/dom.d.ts.map +1 -1
  187. package/dist/telemetry/dom.js +1 -1
  188. package/dist/telemetry/dom.js.map +1 -1
  189. package/dist/telemetry/filterPresets.d.ts.map +1 -1
  190. package/dist/telemetry/filterPresets.js +5 -2
  191. package/dist/telemetry/filterPresets.js.map +1 -1
  192. package/dist/telemetry/network.d.ts.map +1 -1
  193. package/dist/telemetry/network.js +1 -1
  194. package/dist/telemetry/network.js.map +1 -1
  195. package/dist/types.d.ts +217 -1
  196. package/dist/types.d.ts.map +1 -1
  197. package/dist/types.js +33 -1
  198. package/dist/types.js.map +1 -1
  199. package/dist/ui/OutputBuilder.d.ts +2 -44
  200. package/dist/ui/OutputBuilder.d.ts.map +1 -1
  201. package/dist/ui/OutputBuilder.js +71 -103
  202. package/dist/ui/OutputBuilder.js.map +1 -1
  203. package/dist/ui/errors/CommandError.d.ts +0 -2
  204. package/dist/ui/errors/CommandError.d.ts.map +1 -1
  205. package/dist/ui/errors/CommandError.js.map +1 -1
  206. package/dist/ui/formatters/dom.d.ts +8 -19
  207. package/dist/ui/formatters/dom.d.ts.map +1 -1
  208. package/dist/ui/formatters/dom.js +12 -68
  209. package/dist/ui/formatters/dom.js.map +1 -1
  210. package/dist/ui/formatters/form.d.ts +15 -0
  211. package/dist/ui/formatters/form.d.ts.map +1 -0
  212. package/dist/ui/formatters/form.js +314 -0
  213. package/dist/ui/formatters/form.js.map +1 -0
  214. package/dist/ui/logging/logger.d.ts +1 -1
  215. package/dist/ui/logging/logger.d.ts.map +1 -1
  216. package/dist/ui/logging/logger.js +1 -1
  217. package/dist/ui/logging/logger.js.map +1 -1
  218. package/dist/ui/messages/dom.d.ts +14 -0
  219. package/dist/ui/messages/dom.d.ts.map +1 -0
  220. package/dist/ui/messages/dom.js +28 -0
  221. package/dist/ui/messages/dom.js.map +1 -0
  222. package/dist/ui/messages/errors.d.ts +122 -10
  223. package/dist/ui/messages/errors.d.ts.map +1 -1
  224. package/dist/ui/messages/errors.js +280 -11
  225. package/dist/ui/messages/errors.js.map +1 -1
  226. package/dist/utils/__tests__/shellDetection.unit.test.d.ts +12 -0
  227. package/dist/utils/__tests__/shellDetection.unit.test.d.ts.map +1 -0
  228. package/dist/utils/__tests__/shellDetection.unit.test.js +220 -0
  229. package/dist/utils/__tests__/shellDetection.unit.test.js.map +1 -0
  230. package/dist/utils/async.d.ts +10 -0
  231. package/dist/utils/async.d.ts.map +1 -0
  232. package/dist/utils/async.js +12 -0
  233. package/dist/utils/async.js.map +1 -0
  234. package/dist/utils/atomicFile.js +1 -1
  235. package/dist/utils/atomicFile.js.map +1 -1
  236. package/dist/utils/decisionTrees.d.ts.map +1 -1
  237. package/dist/utils/decisionTrees.js +5 -0
  238. package/dist/utils/decisionTrees.js.map +1 -1
  239. package/dist/utils/errorMapping.d.ts.map +1 -1
  240. package/dist/utils/errorMapping.js +4 -1
  241. package/dist/utils/errorMapping.js.map +1 -1
  242. package/dist/utils/exitCodes.d.ts +18 -17
  243. package/dist/utils/exitCodes.d.ts.map +1 -1
  244. package/dist/utils/exitCodes.js +97 -17
  245. package/dist/utils/exitCodes.js.map +1 -1
  246. package/dist/utils/shellDetection.d.ts +34 -0
  247. package/dist/utils/shellDetection.d.ts.map +1 -0
  248. package/dist/utils/shellDetection.js +94 -0
  249. package/dist/utils/shellDetection.js.map +1 -0
  250. package/dist/utils/suggestions.d.ts +19 -0
  251. package/dist/utils/suggestions.d.ts.map +1 -0
  252. package/dist/utils/suggestions.js +34 -0
  253. package/dist/utils/suggestions.js.map +1 -0
  254. package/dist/utils/taskMappings.d.ts.map +1 -1
  255. package/dist/utils/taskMappings.js +40 -0
  256. package/dist/utils/taskMappings.js.map +1 -1
  257. package/dist/utils/url.d.ts.map +1 -1
  258. package/dist/utils/url.js +14 -0
  259. package/dist/utils/url.js.map +1 -1
  260. package/package.json +5 -5
@@ -0,0 +1,98 @@
1
+ /**
2
+ * Shared data fetching utilities for commands that query daemon state.
3
+ */
4
+ import { getPeek } from '../../ipc/client.js';
5
+ import { validateIPCResponse } from '../../ipc/index.js';
6
+ import { createLogger } from '../../ui/logging/index.js';
7
+ import { getExitCodeForConnectionError } from '../../utils/errorMapping.js';
8
+ import { getErrorMessage } from '../../utils/errors.js';
9
+ import { EXIT_CODES } from '../../utils/exitCodes.js';
10
+ const log = createLogger('fetcher');
11
+ /**
12
+ * Fetch raw preview output from daemon.
13
+ */
14
+ export async function fetchPreviewOutput(lastN) {
15
+ log.debug(`Fetching preview output${lastN !== undefined ? ` (lastN: ${lastN})` : ''}`);
16
+ const response = await getPeek(lastN !== undefined ? { lastN } : undefined);
17
+ try {
18
+ validateIPCResponse(response);
19
+ }
20
+ catch (validationError) {
21
+ const errorMsg = getErrorMessage(validationError);
22
+ const exitCode = getExitCodeForConnectionError(errorMsg);
23
+ log.debug(`IPC validation failed: ${errorMsg}`);
24
+ return { success: false, error: errorMsg, exitCode };
25
+ }
26
+ const output = response.data?.preview;
27
+ if (!output) {
28
+ log.debug('No preview data in response');
29
+ return {
30
+ success: false,
31
+ error: 'No preview data in response',
32
+ exitCode: EXIT_CODES.SESSION_FILE_ERROR,
33
+ };
34
+ }
35
+ log.debug('Preview output fetched successfully');
36
+ return { success: true, data: output };
37
+ }
38
+ /**
39
+ * Fetch preview data with parsed network and console arrays.
40
+ */
41
+ export async function fetchPreviewData(lastN) {
42
+ const result = await fetchPreviewOutput(lastN);
43
+ if (!result.success)
44
+ return result;
45
+ return {
46
+ success: true,
47
+ data: {
48
+ output: result.data,
49
+ network: result.data.data.network ?? [],
50
+ console: result.data.data.console ?? [],
51
+ },
52
+ };
53
+ }
54
+ /**
55
+ * Fetch network requests from daemon.
56
+ */
57
+ export async function fetchNetworkRequests() {
58
+ const result = await fetchPreviewData();
59
+ if (!result.success)
60
+ return result;
61
+ return { success: true, data: result.data.network };
62
+ }
63
+ /**
64
+ * Fetch console messages from daemon.
65
+ */
66
+ export async function fetchConsoleMessages() {
67
+ const result = await fetchPreviewData(0);
68
+ if (!result.success)
69
+ return result;
70
+ return { success: true, data: result.data.console };
71
+ }
72
+ /**
73
+ * Create error result for daemon not running.
74
+ */
75
+ export function createDaemonNotRunningError() {
76
+ return {
77
+ success: false,
78
+ error: 'Daemon not running',
79
+ exitCode: EXIT_CODES.RESOURCE_NOT_FOUND,
80
+ };
81
+ }
82
+ /**
83
+ * Create command result with suggestion.
84
+ *
85
+ * @param error - Error message
86
+ * @param exitCode - Exit code for the error
87
+ * @param suggestion - Suggestion text for the user
88
+ * @returns Error result object
89
+ */
90
+ export function createErrorResult(error, exitCode, suggestion = 'Start a session with: bdg <url>') {
91
+ return {
92
+ success: false,
93
+ error,
94
+ exitCode,
95
+ errorContext: { suggestion },
96
+ };
97
+ }
98
+ //# sourceMappingURL=dataFetcher.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dataFetcher.js","sourceRoot":"","sources":["../../../src/commands/shared/dataFetcher.ts"],"names":[],"mappings":"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"}
@@ -36,7 +36,7 @@ export interface VerboseOptions {
36
36
  * Used by DOM interaction commands (fill, click, submit, pressKey).
37
37
  */
38
38
  export interface IndexOptions {
39
- /** 1-based index for selecting nth element matching selector */
39
+ /** 0-based index for selecting nth element matching selector */
40
40
  index?: number;
41
41
  }
42
42
  /**
@@ -70,7 +70,7 @@ export interface RawOptions {
70
70
  export interface SelectionOptions {
71
71
  /** Select all matching elements */
72
72
  all?: boolean;
73
- /** Select nth element (1-based) */
73
+ /** Select nth element (0-based) */
74
74
  nth?: number;
75
75
  /** Use specific nodeId directly */
76
76
  nodeId?: number;
@@ -95,6 +95,10 @@ export interface ScreenshotOptions {
95
95
  interval?: string;
96
96
  /** Max frames for follow mode (string from CLI) */
97
97
  limit?: string;
98
+ /** Auto-resize enabled (--no-resize sets to false via Commander.js convention) */
99
+ resize?: boolean;
100
+ /** Scroll element into view before capture */
101
+ scroll?: string;
98
102
  }
99
103
  /**
100
104
  * Options for key press commands.
@@ -235,8 +239,8 @@ import type { ConsoleLevel } from '../../types.js';
235
239
  * By default shows only current navigation; use --history for all.
236
240
  */
237
241
  export interface ConsoleCommandOptions extends BaseOptions {
238
- /** Show last N messages (0 = all, default: 100) */
239
- last: number;
242
+ /** Show last N messages (string from CLI, 0 = all, default: 100) */
243
+ last?: string;
240
244
  /** List all messages chronologically (default: smart summary) */
241
245
  list?: boolean;
242
246
  /** Stream console messages in real-time */
@@ -1 +1 @@
1
- {"version":3,"file":"optionTypes.d.ts","sourceRoot":"","sources":["../../../src/commands/shared/optionTypes.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"optionTypes.d.ts","sourceRoot":"","sources":["../../../src/commands/shared/optionTypes.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"startHelpers.d.ts","sourceRoot":"","sources":["../../../src/commands/shared/startHelpers.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,kCAAkC,CAAC;AAK5E,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAahD;;;;;;;;;;;;GAYG;AACH,wBAAsB,qBAAqB,CACzC,GAAG,EAAE,MAAM,EACX,OAAO,EAAE,mBAAmB,EAC5B,SAAS,EAAE,aAAa,EAAE,GACzB,OAAO,CAAC,IAAI,CAAC,CAsDf"}
1
+ {"version":3,"file":"startHelpers.d.ts","sourceRoot":"","sources":["../../../src/commands/shared/startHelpers.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,kCAAkC,CAAC;AAI5E,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAehD;;;;;;;;;;;;GAYG;AACH,wBAAsB,qBAAqB,CACzC,GAAG,EAAE,MAAM,EACX,OAAO,EAAE,mBAAmB,EAC5B,SAAS,EAAE,aAAa,EAAE,GACzB,OAAO,CAAC,IAAI,CAAC,CAsDf"}
@@ -5,12 +5,13 @@
5
5
  * Handles IPC communication with daemon to start browser sessions.
6
6
  */
7
7
  import { landingPage } from '../../commands/shared/landingPage.js';
8
- import { getErrorMessage } from '../../connection/errors.js';
9
8
  import { startSession as sendStartSessionRequest } from '../../ipc/client.js';
10
9
  import { IPCErrorCode } from '../../ipc/index.js';
11
10
  import { isConnectionError } from '../../ipc/utils/errors.js';
12
11
  import { createLogger } from '../../ui/logging/index.js';
13
12
  import { sessionAlreadyRunningError, daemonNotRunningError, invalidResponseError, genericError, } from '../../ui/messages/errors.js';
13
+ import { getExitCodeForIPCError } from '../../utils/errorMapping.js';
14
+ import { getErrorMessage } from '../../utils/errors.js';
14
15
  import { EXIT_CODES } from '../../utils/exitCodes.js';
15
16
  import { filterDefined } from '../../utils/objects.js';
16
17
  const log = createLogger('bdg');
@@ -49,12 +50,12 @@ export async function startSessionViaDaemon(url, options, telemetry) {
49
50
  else {
50
51
  console.error(genericError(`Daemon error: ${response.message ?? 'Unknown error'}`));
51
52
  }
52
- process.exit(EXIT_CODES.UNHANDLED_EXCEPTION);
53
+ process.exit(getExitCodeForIPCError(response.errorCode));
53
54
  }
54
55
  const { data } = response;
55
56
  if (!data) {
56
57
  console.error(invalidResponseError('missing data'));
57
- process.exit(EXIT_CODES.UNHANDLED_EXCEPTION);
58
+ process.exit(EXIT_CODES.SOFTWARE_ERROR);
58
59
  }
59
60
  if (options.quiet) {
60
61
  console.error(`Session started: ${data.targetUrl}`);
@@ -70,10 +71,10 @@ export async function startSessionViaDaemon(url, options, telemetry) {
70
71
  catch (error) {
71
72
  if (isConnectionError(error)) {
72
73
  console.error(daemonNotRunningError({ suggestStatus: true, suggestRetry: true }));
73
- process.exit(EXIT_CODES.UNHANDLED_EXCEPTION);
74
+ process.exit(EXIT_CODES.RESOURCE_NOT_FOUND);
74
75
  }
75
76
  console.error(genericError(getErrorMessage(error)));
76
- process.exit(EXIT_CODES.UNHANDLED_EXCEPTION);
77
+ process.exit(EXIT_CODES.SOFTWARE_ERROR);
77
78
  }
78
79
  }
79
80
  //# sourceMappingURL=startHelpers.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"startHelpers.js","sourceRoot":"","sources":["../../../src/commands/shared/startHelpers.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"startHelpers.js","sourceRoot":"","sources":["../../../src/commands/shared/startHelpers.ts"],"names":[],"mappings":"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"}
@@ -1,63 +1,18 @@
1
1
  /**
2
2
  * Validation layer for command options.
3
- *
4
- * Provides centralized validation with type safety and consistent error messages.
5
- * Eliminates scattered validation logic across commands.
6
3
  */
7
4
  import type { Protocol } from '../../connection/typed-cdp.js';
8
- /**
9
- * Base validation rule interface
10
- */
11
5
  export interface ValidationRule<T> {
12
- /** Validate and transform the value */
13
6
  validate: (value: unknown) => T;
14
- /** Optional custom error message */
15
7
  errorMessage?: (value: unknown) => string;
16
8
  }
17
- /**
18
- * Validation options for integer rules
19
- */
20
9
  export interface IntegerRuleOptions {
21
- /** Minimum allowed value */
22
10
  min?: number;
23
- /** Maximum allowed value */
24
11
  max?: number;
25
- /** Default value if not provided */
26
12
  default?: number;
27
- /** Whether the field is required */
28
13
  required?: boolean;
29
- /** Allow 0 to represent "all items" or unlimited */
30
14
  allowZeroForAll?: boolean;
31
15
  }
32
- /**
33
- * Create a positive integer validation rule
34
- *
35
- * @param options - Validation constraints
36
- * @returns Validation rule that parses and validates integers
37
- *
38
- * @example
39
- * ```typescript
40
- * const rules = {
41
- * last: positiveIntRule({ min: 1, max: 1000, default: 10 }),
42
- * timeout: positiveIntRule({ min: 1, max: 3600, required: false }),
43
- * };
44
- * ```
45
- */
46
16
  export declare function positiveIntRule(options?: IntegerRuleOptions): ValidationRule<number>;
47
- /**
48
- * Create a resource type validation rule for comma-separated type filters.
49
- * Performs case-insensitive matching and normalization.
50
- *
51
- * @returns Validation rule that parses and validates resource types
52
- *
53
- * @example
54
- * ```typescript
55
- * const rules = {
56
- * type: resourceTypeRule(),
57
- * };
58
- * const validated = validateOptions(options, rules);
59
- * // Input: "document,xhr" → Output: ["Document", "XHR"]
60
- * ```
61
- */
62
17
  export declare function resourceTypeRule(): ValidationRule<Protocol.Network.ResourceType[]>;
63
18
  //# sourceMappingURL=validation.d.ts.map
@@ -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;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"}
1
+ {"version":3,"file":"validation.d.ts","sourceRoot":"","sources":["../../../src/commands/shared/validation.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,2BAA2B,CAAC;AAM1D,MAAM,WAAW,cAAc,CAAC,CAAC;IAC/B,QAAQ,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,CAAC,CAAC;IAChC,YAAY,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,MAAM,CAAC;CAC3C;AAED,MAAM,WAAW,kBAAkB;IACjC,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,eAAe,CAAC,EAAE,OAAO,CAAC;CAC3B;AAqFD,wBAAgB,eAAe,CAAC,OAAO,GAAE,kBAAuB,GAAG,cAAc,CAAC,MAAM,CAAC,CAIxF;AAwCD,wBAAgB,gBAAgB,IAAI,cAAc,CAAC,QAAQ,CAAC,OAAO,CAAC,YAAY,EAAE,CAAC,CAyBlF"}
@@ -1,72 +1,10 @@
1
1
  /**
2
2
  * Validation layer for command options.
3
- *
4
- * Provides centralized validation with type safety and consistent error messages.
5
- * Eliminates scattered validation logic across commands.
6
3
  */
7
4
  import { CommandError } from '../../ui/errors/index.js';
8
5
  import { invalidIntegerError } from '../../ui/messages/validation.js';
9
6
  import { EXIT_CODES } from '../../utils/exitCodes.js';
10
- /**
11
- * Create a positive integer validation rule
12
- *
13
- * @param options - Validation constraints
14
- * @returns Validation rule that parses and validates integers
15
- *
16
- * @example
17
- * ```typescript
18
- * const rules = {
19
- * last: positiveIntRule({ min: 1, max: 1000, default: 10 }),
20
- * timeout: positiveIntRule({ min: 1, max: 3600, required: false }),
21
- * };
22
- * ```
23
- */
24
- export function positiveIntRule(options = {}) {
25
- const { min, max, default: defaultValue, required = true, allowZeroForAll = false } = options;
26
- return {
27
- validate: (value) => {
28
- if (value === undefined || value === null) {
29
- if (defaultValue !== undefined) {
30
- return defaultValue;
31
- }
32
- if (!required) {
33
- return 0;
34
- }
35
- throw new CommandError('Value is required', {}, EXIT_CODES.INVALID_ARGUMENTS);
36
- }
37
- if (typeof value !== 'string' && typeof value !== 'number') {
38
- throw new CommandError(`Value must be a number, got ${typeof value}`, {}, EXIT_CODES.INVALID_ARGUMENTS);
39
- }
40
- const strValue = String(value).trim();
41
- const parsed = parseInt(strValue, 10);
42
- const errorOptions = {};
43
- if (min !== undefined)
44
- errorOptions.min = min;
45
- if (max !== undefined)
46
- errorOptions.max = max;
47
- if (isNaN(parsed)) {
48
- const message = invalidIntegerError('value', strValue, errorOptions);
49
- throw new CommandError(message, {}, EXIT_CODES.INVALID_ARGUMENTS);
50
- }
51
- if (parsed === 0 && allowZeroForAll) {
52
- return 0;
53
- }
54
- if (min !== undefined && parsed < min) {
55
- const message = invalidIntegerError('value', strValue, errorOptions);
56
- throw new CommandError(message, {}, EXIT_CODES.INVALID_ARGUMENTS);
57
- }
58
- if (max !== undefined && parsed > max) {
59
- const message = invalidIntegerError('value', strValue, errorOptions);
60
- throw new CommandError(message, {}, EXIT_CODES.INVALID_ARGUMENTS);
61
- }
62
- return parsed;
63
- },
64
- };
65
- }
66
- /**
67
- * Valid CDP ResourceType values for filtering.
68
- * Matches Protocol.Network.ResourceType enum.
69
- */
7
+ import { findSimilar } from '../../utils/suggestions.js';
70
8
  const VALID_RESOURCE_TYPES = [
71
9
  'Document',
72
10
  'Stylesheet',
@@ -88,34 +26,68 @@ const VALID_RESOURCE_TYPES = [
88
26
  'FedCM',
89
27
  'Other',
90
28
  ];
91
- /**
92
- * Parse comma-separated string into trimmed, non-empty tokens.
93
- *
94
- * @param value - Comma-separated string
95
- * @returns Array of trimmed, non-empty tokens
96
- */
29
+ function buildRangeSuggestion(min, max) {
30
+ if (min !== undefined && max !== undefined)
31
+ return `Use a value between ${min} and ${max}`;
32
+ if (min !== undefined)
33
+ return `Use a value >= ${min}`;
34
+ if (max !== undefined)
35
+ return `Use a value <= ${max}`;
36
+ return 'Provide a valid integer';
37
+ }
38
+ function throwValidationError(message, suggestion) {
39
+ throw new CommandError(message, { suggestion }, EXIT_CODES.INVALID_ARGUMENTS);
40
+ }
41
+ function buildErrorOptions(min, max) {
42
+ const opts = {};
43
+ if (min !== undefined)
44
+ opts.min = min;
45
+ if (max !== undefined)
46
+ opts.max = max;
47
+ return opts;
48
+ }
49
+ function parseInteger(value, options) {
50
+ const { min, max, default: defaultValue, required = true, allowZeroForAll = false } = options;
51
+ if (value === undefined || value === null) {
52
+ if (defaultValue !== undefined)
53
+ return defaultValue;
54
+ if (!required)
55
+ return 0;
56
+ throwValidationError('Value is required', 'Provide a numeric value for this option');
57
+ }
58
+ if (typeof value !== 'string' && typeof value !== 'number') {
59
+ throwValidationError(`Value must be a number, got ${typeof value}`, 'Provide a numeric value');
60
+ }
61
+ const parsed = parseInt(String(value).trim(), 10);
62
+ const rangeSuggestion = buildRangeSuggestion(min, max);
63
+ const errorOptions = buildErrorOptions(min, max);
64
+ if (isNaN(parsed)) {
65
+ throwValidationError(invalidIntegerError('value', String(value), errorOptions), rangeSuggestion);
66
+ }
67
+ if (parsed === 0 && allowZeroForAll)
68
+ return 0;
69
+ if (min !== undefined && parsed < min) {
70
+ throwValidationError(invalidIntegerError('value', String(value), errorOptions), rangeSuggestion);
71
+ }
72
+ if (max !== undefined && parsed > max) {
73
+ throwValidationError(invalidIntegerError('value', String(value), errorOptions), rangeSuggestion);
74
+ }
75
+ return parsed;
76
+ }
77
+ export function positiveIntRule(options = {}) {
78
+ return {
79
+ validate: (value) => parseInteger(value, options),
80
+ };
81
+ }
97
82
  function parseCommaSeparated(value) {
98
83
  return value
99
84
  .split(',')
100
85
  .map((t) => t.trim())
101
86
  .filter((t) => t.length > 0);
102
87
  }
103
- /**
104
- * Normalize resource type string to CDP format (case-insensitive lookup).
105
- *
106
- * @param type - User input (e.g., "document", "xhr")
107
- * @returns Normalized CDP type or undefined if invalid
108
- */
109
88
  function normalizeResourceType(type) {
110
- const found = VALID_RESOURCE_TYPES.find((valid) => valid.toLowerCase() === type.toLowerCase());
111
- return found;
89
+ return VALID_RESOURCE_TYPES.find((valid) => valid.toLowerCase() === type.toLowerCase());
112
90
  }
113
- /**
114
- * Validate and normalize array of resource type strings.
115
- *
116
- * @param types - Array of type strings to validate
117
- * @returns Object with normalized types and invalid entries
118
- */
119
91
  function validateResourceTypes(types) {
120
92
  const normalized = [];
121
93
  const invalid = [];
@@ -130,39 +102,25 @@ function validateResourceTypes(types) {
130
102
  }
131
103
  return { normalized, invalid };
132
104
  }
133
- /**
134
- * Create a resource type validation rule for comma-separated type filters.
135
- * Performs case-insensitive matching and normalization.
136
- *
137
- * @returns Validation rule that parses and validates resource types
138
- *
139
- * @example
140
- * ```typescript
141
- * const rules = {
142
- * type: resourceTypeRule(),
143
- * };
144
- * const validated = validateOptions(options, rules);
145
- * // Input: "document,xhr" → Output: ["Document", "XHR"]
146
- * ```
147
- */
105
+ function buildTypoSuggestion(invalid) {
106
+ const similar = invalid.flatMap((inv) => findSimilar(inv, VALID_RESOURCE_TYPES));
107
+ const uniqueSimilar = [...new Set(similar)];
108
+ return uniqueSimilar.length > 0
109
+ ? `Did you mean: ${uniqueSimilar.join(', ')}?`
110
+ : `Valid types: ${VALID_RESOURCE_TYPES.join(', ')}`;
111
+ }
148
112
  export function resourceTypeRule() {
149
113
  return {
150
114
  validate: (value) => {
151
- // Handle empty input
152
- if (value === undefined || value === null || value === '') {
115
+ if (value === undefined || value === null || value === '')
153
116
  return [];
154
- }
155
- // Type guard
156
117
  if (typeof value !== 'string') {
157
- throw new CommandError('Resource type must be a string', {}, EXIT_CODES.INVALID_ARGUMENTS);
118
+ throwValidationError('Resource type must be a string', `Valid types: ${VALID_RESOURCE_TYPES.join(', ')}`);
158
119
  }
159
- // Parse and validate
160
120
  const types = parseCommaSeparated(value);
161
121
  const { normalized, invalid } = validateResourceTypes(types);
162
- // Report errors if any invalid types
163
122
  if (invalid.length > 0) {
164
- const validList = VALID_RESOURCE_TYPES.join(', ');
165
- throw new CommandError(`Invalid resource type(s): ${invalid.join(', ')}`, { suggestion: `Valid types: ${validList}` }, EXIT_CODES.INVALID_ARGUMENTS);
123
+ throwValidationError(`Invalid resource type(s): ${invalid.join(', ')}`, buildTypoSuggestion(invalid));
166
124
  }
167
125
  return normalized;
168
126
  },
@@ -1 +1 @@
1
- {"version":3,"file":"validation.js","sourceRoot":"","sources":["../../../src/commands/shared/validation.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"validation.js","sourceRoot":"","sources":["../../../src/commands/shared/validation.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"status.d.ts","sourceRoot":"","sources":["../../src/commands/status.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAoBzC;;;;;GAKG;AACH,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CA6G5D"}
1
+ {"version":3,"file":"status.d.ts","sourceRoot":"","sources":["../../src/commands/status.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAoBzC;;;;;GAKG;AACH,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAsH5D"}
@@ -1,10 +1,10 @@
1
1
  import { runCommand } from '../commands/shared/CommandRunner.js';
2
- import { getErrorMessage } from '../connection/errors.js';
3
2
  import { getStatus } from '../ipc/client.js';
4
3
  import { cleanupStaleDaemonPid } from '../session/cleanup.js';
5
4
  import { isDaemonConnectionError } from '../ui/errors/index.js';
6
5
  import { formatSessionStatus, formatStatusAsJson, formatNoSessionMessage, } from '../ui/formatters/status.js';
7
6
  import { invalidResponseError, daemonNotRunningError } from '../ui/messages/errors.js';
7
+ import { getErrorMessage } from '../utils/errors.js';
8
8
  import { EXIT_CODES } from '../utils/exitCodes.js';
9
9
  /**
10
10
  * Register status command
@@ -30,7 +30,10 @@ export function registerStatusCommand(program) {
30
30
  return {
31
31
  success: false,
32
32
  error: `Daemon error: ${response.error ?? 'Unknown error'}`,
33
- exitCode: EXIT_CODES.UNHANDLED_EXCEPTION,
33
+ exitCode: EXIT_CODES.SOFTWARE_ERROR,
34
+ errorContext: {
35
+ suggestion: 'Try: bdg cleanup --force && bdg <url>',
36
+ },
34
37
  };
35
38
  }
36
39
  const data = response.data;
@@ -38,7 +41,10 @@ export function registerStatusCommand(program) {
38
41
  return {
39
42
  success: false,
40
43
  error: invalidResponseError('missing data'),
41
- exitCode: EXIT_CODES.UNHANDLED_EXCEPTION,
44
+ exitCode: EXIT_CODES.SOFTWARE_ERROR,
45
+ errorContext: {
46
+ suggestion: 'This is unexpected. Try: bdg cleanup --force && bdg <url>',
47
+ },
42
48
  };
43
49
  }
44
50
  latestActivity = data.activity;
@@ -88,7 +94,10 @@ export function registerStatusCommand(program) {
88
94
  return {
89
95
  success: false,
90
96
  error: `Error checking status: ${errorMessage}`,
91
- exitCode: EXIT_CODES.UNHANDLED_EXCEPTION,
97
+ exitCode: EXIT_CODES.SOFTWARE_ERROR,
98
+ errorContext: {
99
+ suggestion: 'Try: bdg cleanup --force to reset session state',
100
+ },
92
101
  };
93
102
  }
94
103
  }, options, (data) => {
@@ -1 +1 @@
1
- {"version":3,"file":"status.js","sourceRoot":"","sources":["../../src/commands/status.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"status.js","sourceRoot":"","sources":["../../src/commands/status.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"stop.d.ts","sourceRoot":"","sources":["../../src/commands/stop.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAyCzC;;;;GAIG;AACH,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAgF1D"}
1
+ {"version":3,"file":"stop.d.ts","sourceRoot":"","sources":["../../src/commands/stop.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AA4CzC;;;;GAIG;AACH,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAyF1D"}