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 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,39 @@
1
+ /**
2
+ * Structured error handling for CLI commands.
3
+ *
4
+ * Provides CommandError class for throwing errors with metadata and exit codes.
5
+ */
6
+ /**
7
+ * Custom error class for CLI commands with structured metadata.
8
+ *
9
+ * Extends Error to include additional context like suggestions, notes,
10
+ * and specific exit codes for better user experience and automation support.
11
+ *
12
+ * @example
13
+ * ```typescript
14
+ * throw new CommandError(
15
+ * 'Session not found',
16
+ * { suggestion: 'Start a session with: bdg <url>' },
17
+ * EXIT_CODES.RESOURCE_NOT_FOUND
18
+ * );
19
+ * ```
20
+ */
21
+ export declare class CommandError extends Error {
22
+ /**
23
+ * Additional context for the error (suggestions, notes, etc.)
24
+ */
25
+ readonly metadata: Record<string, string>;
26
+ /**
27
+ * Specific exit code for this error
28
+ */
29
+ readonly exitCode: number;
30
+ /**
31
+ * Create a new CommandError
32
+ *
33
+ * @param message - Main error message
34
+ * @param metadata - Additional context (suggestions, notes, etc.)
35
+ * @param exitCode - Exit code to use when this error occurs
36
+ */
37
+ constructor(message: string, metadata?: Record<string, string>, exitCode?: number);
38
+ }
39
+ //# sourceMappingURL=errors.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../src/ui/errors.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH;;;;;;;;;;;;;;GAcG;AACH,qBAAa,YAAa,SAAQ,KAAK;IACrC;;OAEG;IACH,SAAgB,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAEjD;;OAEG;IACH,SAAgB,QAAQ,EAAE,MAAM,CAAC;IAEjC;;;;;;OAMG;gBACS,OAAO,EAAE,MAAM,EAAE,QAAQ,GAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAM,EAAE,QAAQ,GAAE,MAAU;CAWzF"}
@@ -0,0 +1,48 @@
1
+ /**
2
+ * Structured error handling for CLI commands.
3
+ *
4
+ * Provides CommandError class for throwing errors with metadata and exit codes.
5
+ */
6
+ /**
7
+ * Custom error class for CLI commands with structured metadata.
8
+ *
9
+ * Extends Error to include additional context like suggestions, notes,
10
+ * and specific exit codes for better user experience and automation support.
11
+ *
12
+ * @example
13
+ * ```typescript
14
+ * throw new CommandError(
15
+ * 'Session not found',
16
+ * { suggestion: 'Start a session with: bdg <url>' },
17
+ * EXIT_CODES.RESOURCE_NOT_FOUND
18
+ * );
19
+ * ```
20
+ */
21
+ export class CommandError extends Error {
22
+ /**
23
+ * Additional context for the error (suggestions, notes, etc.)
24
+ */
25
+ metadata;
26
+ /**
27
+ * Specific exit code for this error
28
+ */
29
+ exitCode;
30
+ /**
31
+ * Create a new CommandError
32
+ *
33
+ * @param message - Main error message
34
+ * @param metadata - Additional context (suggestions, notes, etc.)
35
+ * @param exitCode - Exit code to use when this error occurs
36
+ */
37
+ constructor(message, metadata = {}, exitCode = 1) {
38
+ super(message);
39
+ this.name = 'CommandError';
40
+ this.metadata = metadata;
41
+ this.exitCode = exitCode;
42
+ // Maintains proper stack trace for where our error was thrown
43
+ if (Error.captureStackTrace) {
44
+ Error.captureStackTrace(this, CommandError);
45
+ }
46
+ }
47
+ }
48
+ //# sourceMappingURL=errors.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"errors.js","sourceRoot":"","sources":["../../src/ui/errors.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH;;;;;;;;;;;;;;GAcG;AACH,MAAM,OAAO,YAAa,SAAQ,KAAK;IACrC;;OAEG;IACa,QAAQ,CAAyB;IAEjD;;OAEG;IACa,QAAQ,CAAS;IAEjC;;;;;;OAMG;IACH,YAAY,OAAe,EAAE,WAAmC,EAAE,EAAE,WAAmB,CAAC;QACtF,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,cAAc,CAAC;QAC3B,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACzB,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QAEzB,8DAA8D;QAC9D,IAAI,KAAK,CAAC,iBAAiB,EAAE,CAAC;YAC5B,KAAK,CAAC,iBAAiB,CAAC,IAAI,EAAE,YAAY,CAAC,CAAC;QAC9C,CAAC;IACH,CAAC;CACF"}
@@ -1 +1 @@
1
- {"version":3,"file":"cookies.d.ts","sourceRoot":"","sources":["../../../src/ui/formatters/cookies.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH;;GAEG;AACH,MAAM,WAAW,MAAM;IACrB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,OAAO,CAAC;IAClB,MAAM,EAAE,OAAO,CAAC;IAChB,QAAQ,CAAC,EAAE,QAAQ,GAAG,KAAK,GAAG,MAAM,CAAC;CACtC;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,aAAa,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,MAAM,CAkCvD"}
1
+ {"version":3,"file":"cookies.d.ts","sourceRoot":"","sources":["../../../src/ui/formatters/cookies.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH;;GAEG;AACH,MAAM,WAAW,MAAM;IACrB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,OAAO,CAAC;IAClB,MAAM,EAAE,OAAO,CAAC;IAChB,QAAQ,CAAC,EAAE,QAAQ,GAAG,KAAK,GAAG,MAAM,CAAC;CACtC;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,aAAa,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,MAAM,CAmCvD"}
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * Cookie formatter for human-readable output.
3
3
  */
4
- import { pluralize } from '../../ui/formatting.js';
4
+ import { OutputFormatter, pluralize } from '../../ui/formatting.js';
5
5
  /**
6
6
  * Format cookies for human-readable output.
7
7
  *
@@ -20,29 +20,26 @@ export function formatCookies(cookies) {
20
20
  if (cookies.length === 0) {
21
21
  return 'No cookies found';
22
22
  }
23
- const lines = [];
24
- lines.push(`${pluralize(cookies.length, 'Cookie', 'Cookies')}:\n`);
23
+ const fmt = new OutputFormatter();
24
+ fmt.text(`${pluralize(cookies.length, 'Cookie', 'Cookies')}:`).blank();
25
25
  cookies.forEach((cookie, index) => {
26
- const cookieLines = [];
27
- cookieLines.push(`[${index + 1}] ${cookie.name}`);
28
- cookieLines.push(` Value: ${cookie.value}`);
29
- cookieLines.push(` Domain: ${cookie.domain}`);
30
- cookieLines.push(` Path: ${cookie.path}`);
31
- if (cookie.expires && cookie.expires !== -1) {
32
- const expiresDate = new Date(cookie.expires * 1000);
33
- cookieLines.push(` Expires: ${expiresDate.toISOString()}`);
34
- }
35
- else {
36
- cookieLines.push(` Expires: Session`);
37
- }
38
- cookieLines.push(` HttpOnly: ${cookie.httpOnly ? 'Yes' : 'No'}`);
39
- cookieLines.push(` Secure: ${cookie.secure ? 'Yes' : 'No'}`);
40
- cookieLines.push(` SameSite: ${cookie.sameSite ?? 'None'}`);
41
- lines.push(cookieLines.join('\n'));
26
+ fmt.text(`[${index + 1}] ${cookie.name}`);
27
+ const expires = cookie.expires && cookie.expires !== -1
28
+ ? new Date(cookie.expires * 1000).toISOString()
29
+ : 'Session';
30
+ fmt.list([
31
+ `Value: ${cookie.value}`,
32
+ `Domain: ${cookie.domain}`,
33
+ `Path: ${cookie.path}`,
34
+ `Expires: ${expires}`,
35
+ `HttpOnly: ${cookie.httpOnly ? 'Yes' : 'No'}`,
36
+ `Secure: ${cookie.secure ? 'Yes' : 'No'}`,
37
+ `SameSite: ${cookie.sameSite ?? 'None'}`,
38
+ ], 2);
42
39
  if (index < cookies.length - 1) {
43
- lines.push('');
40
+ fmt.blank();
44
41
  }
45
42
  });
46
- return lines.join('\n');
43
+ return fmt.build();
47
44
  }
48
45
  //# sourceMappingURL=cookies.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"cookies.js","sourceRoot":"","sources":["../../../src/ui/formatters/cookies.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAgB/C;;;;;;;;;;;;;GAaG;AACH,MAAM,UAAU,aAAa,CAAC,OAAiB;IAC7C,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACzB,OAAO,kBAAkB,CAAC;IAC5B,CAAC;IAED,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,KAAK,CAAC,IAAI,CAAC,GAAG,SAAS,CAAC,OAAO,CAAC,MAAM,EAAE,QAAQ,EAAE,SAAS,CAAC,KAAK,CAAC,CAAC;IAEnE,OAAO,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE;QAChC,MAAM,WAAW,GAAa,EAAE,CAAC;QACjC,WAAW,CAAC,IAAI,CAAC,IAAI,KAAK,GAAG,CAAC,KAAK,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;QAClD,WAAW,CAAC,IAAI,CAAC,YAAY,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC;QAC7C,WAAW,CAAC,IAAI,CAAC,aAAa,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC;QAC/C,WAAW,CAAC,IAAI,CAAC,WAAW,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;QAE3C,IAAI,MAAM,CAAC,OAAO,IAAI,MAAM,CAAC,OAAO,KAAK,CAAC,CAAC,EAAE,CAAC;YAC5C,MAAM,WAAW,GAAG,IAAI,IAAI,CAAC,MAAM,CAAC,OAAO,GAAG,IAAI,CAAC,CAAC;YACpD,WAAW,CAAC,IAAI,CAAC,cAAc,WAAW,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC;QAC9D,CAAC;aAAM,CAAC;YACN,WAAW,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC;QACzC,CAAC;QAED,WAAW,CAAC,IAAI,CAAC,eAAe,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;QAClE,WAAW,CAAC,IAAI,CAAC,aAAa,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;QAC9D,WAAW,CAAC,IAAI,CAAC,eAAe,MAAM,CAAC,QAAQ,IAAI,MAAM,EAAE,CAAC,CAAC;QAE7D,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;QAEnC,IAAI,KAAK,GAAG,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC/B,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACjB,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1B,CAAC"}
1
+ {"version":3,"file":"cookies.js","sourceRoot":"","sources":["../../../src/ui/formatters/cookies.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,eAAe,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAgBhE;;;;;;;;;;;;;GAaG;AACH,MAAM,UAAU,aAAa,CAAC,OAAiB;IAC7C,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACzB,OAAO,kBAAkB,CAAC;IAC5B,CAAC;IAED,MAAM,GAAG,GAAG,IAAI,eAAe,EAAE,CAAC;IAClC,GAAG,CAAC,IAAI,CAAC,GAAG,SAAS,CAAC,OAAO,CAAC,MAAM,EAAE,QAAQ,EAAE,SAAS,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,CAAC;IAEvE,OAAO,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE;QAChC,GAAG,CAAC,IAAI,CAAC,IAAI,KAAK,GAAG,CAAC,KAAK,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;QAE1C,MAAM,OAAO,GACX,MAAM,CAAC,OAAO,IAAI,MAAM,CAAC,OAAO,KAAK,CAAC,CAAC;YACrC,CAAC,CAAC,IAAI,IAAI,CAAC,MAAM,CAAC,OAAO,GAAG,IAAI,CAAC,CAAC,WAAW,EAAE;YAC/C,CAAC,CAAC,SAAS,CAAC;QAEhB,GAAG,CAAC,IAAI,CACN;YACE,UAAU,MAAM,CAAC,KAAK,EAAE;YACxB,WAAW,MAAM,CAAC,MAAM,EAAE;YAC1B,SAAS,MAAM,CAAC,IAAI,EAAE;YACtB,YAAY,OAAO,EAAE;YACrB,aAAa,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE;YAC7C,WAAW,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE;YACzC,aAAa,MAAM,CAAC,QAAQ,IAAI,MAAM,EAAE;SACzC,EACD,CAAC,CACF,CAAC;QAEF,IAAI,KAAK,GAAG,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC/B,GAAG,CAAC,KAAK,EAAE,CAAC;QACd,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,OAAO,GAAG,CAAC,KAAK,EAAE,CAAC;AACrB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"details.d.ts","sourceRoot":"","sources":["../../../src/ui/formatters/details.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAE9D;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,cAAc,GAAG,MAAM,CA4CpE;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,cAAc,GAAG,MAAM,CAmBpE"}
1
+ {"version":3,"file":"details.d.ts","sourceRoot":"","sources":["../../../src/ui/formatters/details.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAG9D;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,cAAc,GAAG,MAAM,CA4CpE;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,cAAc,GAAG,MAAM,CAsBpE"}
@@ -1,63 +1,61 @@
1
+ import { OutputFormatter } from '../../ui/formatting.js';
1
2
  /**
2
3
  * Format network request details for human-readable output
3
4
  */
4
5
  export function formatNetworkDetails(request) {
5
- const lines = [];
6
- lines.push('Network Request Details');
7
- lines.push('━'.repeat(70));
8
- lines.push(`Request ID: ${request.requestId}`);
9
- lines.push(`URL: ${request.url}`);
10
- lines.push(`Method: ${request.method}`);
11
- lines.push(`Status: ${request.status ?? 'pending'}`);
12
- lines.push(`MIME Type: ${request.mimeType ?? 'N/A'}`);
13
- lines.push('');
6
+ const fmt = new OutputFormatter();
7
+ fmt.text('Network Request Details').separator('━', 70);
8
+ fmt.keyValueList([
9
+ ['Request ID', request.requestId],
10
+ ['URL', request.url],
11
+ ['Method', request.method],
12
+ ['Status', request.status?.toString() ?? 'pending'],
13
+ ['MIME Type', request.mimeType ?? 'N/A'],
14
+ ], 13);
15
+ fmt.blank();
14
16
  if (request.requestHeaders) {
15
- lines.push('Request Headers:');
16
- lines.push('━'.repeat(70));
17
+ fmt.text('Request Headers:').separator('━', 70);
17
18
  Object.entries(request.requestHeaders).forEach(([key, value]) => {
18
- lines.push(` ${key}: ${value}`);
19
+ fmt.text(` ${key}: ${value}`);
19
20
  });
20
- lines.push('');
21
+ fmt.blank();
21
22
  }
22
23
  if (request.requestBody) {
23
- lines.push('Request Body:');
24
- lines.push('━'.repeat(70));
25
- lines.push(request.requestBody);
26
- lines.push('');
24
+ fmt.text('Request Body:').separator('━', 70);
25
+ fmt.text(request.requestBody);
26
+ fmt.blank();
27
27
  }
28
28
  if (request.responseHeaders) {
29
- lines.push('Response Headers:');
30
- lines.push('━'.repeat(70));
29
+ fmt.text('Response Headers:').separator('━', 70);
31
30
  Object.entries(request.responseHeaders).forEach(([key, value]) => {
32
- lines.push(` ${key}: ${value}`);
31
+ fmt.text(` ${key}: ${value}`);
33
32
  });
34
- lines.push('');
33
+ fmt.blank();
35
34
  }
36
35
  if (request.responseBody) {
37
- lines.push('Response Body:');
38
- lines.push('━'.repeat(70));
39
- lines.push(request.responseBody);
36
+ fmt.text('Response Body:').separator('━', 70);
37
+ fmt.text(request.responseBody);
40
38
  }
41
- return lines.join('\n');
39
+ return fmt.build();
42
40
  }
43
41
  /**
44
42
  * Format console message details for human-readable output
45
43
  */
46
44
  export function formatConsoleDetails(message) {
47
- const lines = [];
48
- lines.push('Console Message Details');
49
- lines.push('━'.repeat(70));
50
- lines.push(`Type: ${message.type}`);
51
- lines.push(`Timestamp: ${new Date(message.timestamp).toISOString()}`);
52
- lines.push(`Text: ${message.text}`);
53
- lines.push('');
45
+ const fmt = new OutputFormatter();
46
+ fmt.text('Console Message Details').separator('━', 70);
47
+ fmt.keyValueList([
48
+ ['Type', message.type],
49
+ ['Timestamp', new Date(message.timestamp).toISOString()],
50
+ ['Text', message.text],
51
+ ], 12);
52
+ fmt.blank();
54
53
  if (message.args && message.args.length > 0) {
55
- lines.push('Arguments:');
56
- lines.push('━'.repeat(70));
54
+ fmt.text('Arguments:').separator('━', 70);
57
55
  message.args.forEach((arg, idx) => {
58
- lines.push(` [${idx}]: ${JSON.stringify(arg, null, 2)}`);
56
+ fmt.text(` [${idx}]: ${JSON.stringify(arg, null, 2)}`);
59
57
  });
60
58
  }
61
- return lines.join('\n');
59
+ return fmt.build();
62
60
  }
63
61
  //# sourceMappingURL=details.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"details.js","sourceRoot":"","sources":["../../../src/ui/formatters/details.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"details.js","sourceRoot":"","sources":["../../../src/ui/formatters/details.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,135 @@
1
+ import type { DomQueryData, DomHighlightData, DomGetData } from '../../ipc/commands.js';
2
+ /**
3
+ * Format DOM query results for human-readable output.
4
+ *
5
+ * Displays found elements with their index, tag, classes, and preview text.
6
+ * Shows helpful message when no elements are found.
7
+ *
8
+ * @param data - DOM query result containing selector, count, and matching nodes
9
+ * @returns Formatted output string
10
+ *
11
+ * @example
12
+ * ```typescript
13
+ * formatDomQuery({
14
+ * selector: '.error',
15
+ * count: 2,
16
+ * nodes: [
17
+ * { index: 0, nodeId: 123, tag: 'div', classes: ['error'], preview: 'Invalid input' },
18
+ * { index: 1, nodeId: 456, tag: 'span', classes: ['error'], preview: 'Required field' }
19
+ * ]
20
+ * });
21
+ * // Output:
22
+ * // Found 2 elements matching ".error":
23
+ * // [0] <div class="error"> Invalid input
24
+ * // [1] <span class="error"> Required field
25
+ * ```
26
+ */
27
+ export declare function formatDomQuery(data: DomQueryData): string;
28
+ /**
29
+ * Format DOM highlight results for human-readable output.
30
+ *
31
+ * Displays success message with count of highlighted elements.
32
+ *
33
+ * @param data - DOM highlight result containing count of highlighted elements
34
+ * @returns Formatted output string
35
+ *
36
+ * @example
37
+ * ```typescript
38
+ * formatDomHighlight({ highlighted: 3, nodeIds: [123, 456, 789] });
39
+ * // Output: ✓ Highlighted 3 elements
40
+ * ```
41
+ */
42
+ export declare function formatDomHighlight(data: DomHighlightData): string;
43
+ /**
44
+ * Format DOM get results for human-readable output.
45
+ *
46
+ * Displays full outerHTML for matched elements. For single elements, shows HTML directly.
47
+ * For multiple elements, shows numbered list with HTML for each.
48
+ *
49
+ * @param data - DOM get result containing array of nodes with outerHTML
50
+ * @returns Formatted output string
51
+ *
52
+ * @example
53
+ * ```typescript
54
+ * // Single element
55
+ * formatDomGet({
56
+ * nodes: [{ nodeId: 123, outerHTML: '<div class="error">Invalid input</div>' }]
57
+ * });
58
+ * // Output: <div class="error">Invalid input</div>
59
+ *
60
+ * // Multiple elements
61
+ * formatDomGet({
62
+ * nodes: [
63
+ * { nodeId: 123, outerHTML: '<div class="error">Error 1</div>' },
64
+ * { nodeId: 456, outerHTML: '<span class="error">Error 2</span>' }
65
+ * ]
66
+ * });
67
+ * // Output:
68
+ * // [1] <div class="error">Error 1</div>
69
+ * // [2] <span class="error">Error 2</span>
70
+ * ```
71
+ */
72
+ export declare function formatDomGet(data: DomGetData): string;
73
+ /**
74
+ * Format DOM eval results for human-readable output.
75
+ *
76
+ * Outputs the evaluated JavaScript result as formatted JSON.
77
+ *
78
+ * @param data - DOM eval result containing the evaluated value
79
+ * @returns Formatted JSON string
80
+ *
81
+ * @example
82
+ * ```typescript
83
+ * formatDomEval({ result: 'My Page Title' });
84
+ * // Output: "My Page Title"
85
+ *
86
+ * formatDomEval({ result: { url: 'https://example.com', title: 'Example' } });
87
+ * // Output:
88
+ * // {
89
+ * // "url": "https://example.com",
90
+ * // "title": "Example"
91
+ * // }
92
+ * ```
93
+ */
94
+ export declare function formatDomEval(data: {
95
+ result: unknown;
96
+ }): string;
97
+ /**
98
+ * Format screenshot capture result for human-readable display.
99
+ *
100
+ * @param data - Screenshot metadata
101
+ * @returns Formatted string with screenshot details
102
+ *
103
+ * @example
104
+ * ```typescript
105
+ * formatDomScreenshot({
106
+ * path: '/path/to/screenshot.png',
107
+ * format: 'png',
108
+ * width: 1920,
109
+ * height: 1080,
110
+ * size: 245632,
111
+ * fullPage: true
112
+ * });
113
+ * // Output:
114
+ * // Screenshot captured
115
+ * // Path: /path/to/screenshot.png
116
+ * // Format: png
117
+ * // Dimensions: 1920x1080
118
+ * // Size: 240.0 KB
119
+ * // Full page: yes
120
+ * ```
121
+ */
122
+ export declare function formatDomScreenshot(data: {
123
+ path: string;
124
+ format: 'png' | 'jpeg';
125
+ quality?: number;
126
+ width: number;
127
+ height: number;
128
+ size: number;
129
+ viewport?: {
130
+ width: number;
131
+ height: number;
132
+ };
133
+ fullPage: boolean;
134
+ }): string;
135
+ //# sourceMappingURL=dom.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dom.d.ts","sourceRoot":"","sources":["../../../src/ui/formatters/dom.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,gBAAgB,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAGpF;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,YAAY,GAAG,MAAM,CA8BzD;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,gBAAgB,GAAG,MAAM,CAWjE;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,UAAU,GAAG,MAAM,CAcrD;AAED;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE;IAAE,MAAM,EAAE,OAAO,CAAA;CAAE,GAAG,MAAM,CAE/D;AAED;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,wBAAgB,mBAAmB,CAAC,IAAI,EAAE;IACxC,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,KAAK,GAAG,MAAM,CAAC;IACvB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,CAAC,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;IAC7C,QAAQ,EAAE,OAAO,CAAC;CACnB,GAAG,MAAM,CAyBT"}
@@ -0,0 +1,193 @@
1
+ import { OutputFormatter } from '../../ui/formatting.js';
2
+ /**
3
+ * Format DOM query results for human-readable output.
4
+ *
5
+ * Displays found elements with their index, tag, classes, and preview text.
6
+ * Shows helpful message when no elements are found.
7
+ *
8
+ * @param data - DOM query result containing selector, count, and matching nodes
9
+ * @returns Formatted output string
10
+ *
11
+ * @example
12
+ * ```typescript
13
+ * formatDomQuery({
14
+ * selector: '.error',
15
+ * count: 2,
16
+ * nodes: [
17
+ * { index: 0, nodeId: 123, tag: 'div', classes: ['error'], preview: 'Invalid input' },
18
+ * { index: 1, nodeId: 456, tag: 'span', classes: ['error'], preview: 'Required field' }
19
+ * ]
20
+ * });
21
+ * // Output:
22
+ * // Found 2 elements matching ".error":
23
+ * // [0] <div class="error"> Invalid input
24
+ * // [1] <span class="error"> Required field
25
+ * ```
26
+ */
27
+ export function formatDomQuery(data) {
28
+ const { count, nodes, selector } = data;
29
+ const fmt = new OutputFormatter();
30
+ if (count === 0) {
31
+ return fmt
32
+ .text(`No elements found matching "${selector}"`)
33
+ .blank()
34
+ .section('Suggestions:', [
35
+ `Verify selector: bdg dom eval "document.querySelector('${selector}')"`,
36
+ 'List elements: bdg dom query "*"',
37
+ ])
38
+ .build();
39
+ }
40
+ const nodeLines = nodes.map((node) => {
41
+ const classInfo = node.classes?.length ? ` class="${node.classes.join(' ')}"` : '';
42
+ return `[${node.index}] <${node.tag}${classInfo}> ${node.preview}`;
43
+ });
44
+ return fmt
45
+ .text(`Found ${count} element${count === 1 ? '' : 's'} matching "${selector}":`)
46
+ .list(nodeLines)
47
+ .blank()
48
+ .section('Next steps:', [
49
+ 'Highlight: bdg dom highlight <index>',
50
+ 'Get HTML: bdg dom get <index>',
51
+ 'Inspect: bdg details dom <index>',
52
+ ])
53
+ .build();
54
+ }
55
+ /**
56
+ * Format DOM highlight results for human-readable output.
57
+ *
58
+ * Displays success message with count of highlighted elements.
59
+ *
60
+ * @param data - DOM highlight result containing count of highlighted elements
61
+ * @returns Formatted output string
62
+ *
63
+ * @example
64
+ * ```typescript
65
+ * formatDomHighlight({ highlighted: 3, nodeIds: [123, 456, 789] });
66
+ * // Output: ✓ Highlighted 3 elements
67
+ * ```
68
+ */
69
+ export function formatDomHighlight(data) {
70
+ const fmt = new OutputFormatter();
71
+ return fmt
72
+ .text(`✓ Highlighted ${data.highlighted} element${data.highlighted === 1 ? '' : 's'}`)
73
+ .blank()
74
+ .section('Next steps:', [
75
+ 'Get HTML: bdg dom get <index>',
76
+ 'Query more: bdg dom query <selector>',
77
+ ])
78
+ .build();
79
+ }
80
+ /**
81
+ * Format DOM get results for human-readable output.
82
+ *
83
+ * Displays full outerHTML for matched elements. For single elements, shows HTML directly.
84
+ * For multiple elements, shows numbered list with HTML for each.
85
+ *
86
+ * @param data - DOM get result containing array of nodes with outerHTML
87
+ * @returns Formatted output string
88
+ *
89
+ * @example
90
+ * ```typescript
91
+ * // Single element
92
+ * formatDomGet({
93
+ * nodes: [{ nodeId: 123, outerHTML: '<div class="error">Invalid input</div>' }]
94
+ * });
95
+ * // Output: <div class="error">Invalid input</div>
96
+ *
97
+ * // Multiple elements
98
+ * formatDomGet({
99
+ * nodes: [
100
+ * { nodeId: 123, outerHTML: '<div class="error">Error 1</div>' },
101
+ * { nodeId: 456, outerHTML: '<span class="error">Error 2</span>' }
102
+ * ]
103
+ * });
104
+ * // Output:
105
+ * // [1] <div class="error">Error 1</div>
106
+ * // [2] <span class="error">Error 2</span>
107
+ * ```
108
+ */
109
+ export function formatDomGet(data) {
110
+ const { nodes } = data;
111
+ if (nodes.length === 1) {
112
+ // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
113
+ return nodes[0].outerHTML ?? '';
114
+ }
115
+ const fmt = new OutputFormatter();
116
+ nodes.forEach((node, i) => {
117
+ fmt.text(`[${i + 1}] ${node.outerHTML}`);
118
+ });
119
+ return fmt.build();
120
+ }
121
+ /**
122
+ * Format DOM eval results for human-readable output.
123
+ *
124
+ * Outputs the evaluated JavaScript result as formatted JSON.
125
+ *
126
+ * @param data - DOM eval result containing the evaluated value
127
+ * @returns Formatted JSON string
128
+ *
129
+ * @example
130
+ * ```typescript
131
+ * formatDomEval({ result: 'My Page Title' });
132
+ * // Output: "My Page Title"
133
+ *
134
+ * formatDomEval({ result: { url: 'https://example.com', title: 'Example' } });
135
+ * // Output:
136
+ * // {
137
+ * // "url": "https://example.com",
138
+ * // "title": "Example"
139
+ * // }
140
+ * ```
141
+ */
142
+ export function formatDomEval(data) {
143
+ return JSON.stringify(data.result, null, 2);
144
+ }
145
+ /**
146
+ * Format screenshot capture result for human-readable display.
147
+ *
148
+ * @param data - Screenshot metadata
149
+ * @returns Formatted string with screenshot details
150
+ *
151
+ * @example
152
+ * ```typescript
153
+ * formatDomScreenshot({
154
+ * path: '/path/to/screenshot.png',
155
+ * format: 'png',
156
+ * width: 1920,
157
+ * height: 1080,
158
+ * size: 245632,
159
+ * fullPage: true
160
+ * });
161
+ * // Output:
162
+ * // Screenshot captured
163
+ * // Path: /path/to/screenshot.png
164
+ * // Format: png
165
+ * // Dimensions: 1920x1080
166
+ * // Size: 240.0 KB
167
+ * // Full page: yes
168
+ * ```
169
+ */
170
+ export function formatDomScreenshot(data) {
171
+ const fmt = new OutputFormatter();
172
+ // Format file size
173
+ const sizeKB = data.size / 1024;
174
+ const sizeStr = sizeKB < 1024 ? `${sizeKB.toFixed(1)} KB` : `${(sizeKB / 1024).toFixed(1)} MB`;
175
+ fmt
176
+ .text('Screenshot captured')
177
+ .blank()
178
+ .keyValueList([
179
+ ['Path', data.path],
180
+ ['Format', data.format.toUpperCase()],
181
+ ...(data.format === 'jpeg' && data.quality !== undefined
182
+ ? [['Quality', `${data.quality}%`]]
183
+ : []),
184
+ ['Dimensions', `${data.width}x${data.height}`],
185
+ ['Size', sizeStr],
186
+ ['Full page', data.fullPage ? 'yes' : 'no'],
187
+ ...(data.viewport
188
+ ? [['Viewport', `${data.viewport.width}x${data.viewport.height}`]]
189
+ : []),
190
+ ]);
191
+ return fmt.build();
192
+ }
193
+ //# sourceMappingURL=dom.js.map