browser-debugger-cli 0.6.7 → 0.6.9

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 (180) hide show
  1. package/dist/__tests__/telemetry/filterDsl.unit.test.d.ts +12 -0
  2. package/dist/__tests__/telemetry/filterDsl.unit.test.d.ts.map +1 -0
  3. package/dist/__tests__/telemetry/filterDsl.unit.test.js +374 -0
  4. package/dist/__tests__/telemetry/filterDsl.unit.test.js.map +1 -0
  5. package/dist/__tests__/telemetry/filterPresets.unit.test.d.ts +10 -0
  6. package/dist/__tests__/telemetry/filterPresets.unit.test.d.ts.map +1 -0
  7. package/dist/__tests__/telemetry/filterPresets.unit.test.js +89 -0
  8. package/dist/__tests__/telemetry/filterPresets.unit.test.js.map +1 -0
  9. package/dist/commands/__tests__/console.contract.test.d.ts +9 -0
  10. package/dist/commands/__tests__/console.contract.test.d.ts.map +1 -0
  11. package/dist/commands/__tests__/console.contract.test.js +118 -0
  12. package/dist/commands/__tests__/console.contract.test.js.map +1 -0
  13. package/dist/commands/cleanup.js +1 -1
  14. package/dist/commands/cleanup.js.map +1 -1
  15. package/dist/commands/console.d.ts +26 -0
  16. package/dist/commands/console.d.ts.map +1 -1
  17. package/dist/commands/console.js +195 -57
  18. package/dist/commands/console.js.map +1 -1
  19. package/dist/commands/details.js +1 -1
  20. package/dist/commands/details.js.map +1 -1
  21. package/dist/commands/dom/DomElementResolver.js +2 -2
  22. package/dist/commands/dom/DomElementResolver.js.map +1 -1
  23. package/dist/commands/dom/a11y.d.ts.map +1 -1
  24. package/dist/commands/dom/a11y.js +30 -18
  25. package/dist/commands/dom/a11y.js.map +1 -1
  26. package/dist/commands/dom/formFillHelpers.d.ts.map +1 -1
  27. package/dist/commands/dom/formFillHelpers.js +64 -2
  28. package/dist/commands/dom/formFillHelpers.js.map +1 -1
  29. package/dist/commands/dom/formInteraction.js +4 -4
  30. package/dist/commands/dom/formInteraction.js.map +1 -1
  31. package/dist/commands/dom/helpers.d.ts +1 -1
  32. package/dist/commands/dom/helpers.d.ts.map +1 -1
  33. package/dist/commands/dom/helpers.js +3 -3
  34. package/dist/commands/dom/helpers.js.map +1 -1
  35. package/dist/commands/dom/index.d.ts.map +1 -1
  36. package/dist/commands/dom/index.js +4 -1
  37. package/dist/commands/dom/index.js.map +1 -1
  38. package/dist/commands/network/har.d.ts +14 -0
  39. package/dist/commands/network/har.d.ts.map +1 -0
  40. package/dist/commands/network/har.js +97 -0
  41. package/dist/commands/network/har.js.map +1 -0
  42. package/dist/commands/network/index.d.ts +18 -0
  43. package/dist/commands/network/index.d.ts.map +1 -0
  44. package/dist/commands/network/index.js +27 -0
  45. package/dist/commands/network/index.js.map +1 -0
  46. package/dist/commands/network/list.d.ts +14 -0
  47. package/dist/commands/network/list.d.ts.map +1 -0
  48. package/dist/commands/network/list.js +273 -0
  49. package/dist/commands/network/list.js.map +1 -0
  50. package/dist/commands/network/shared.d.ts +56 -0
  51. package/dist/commands/network/shared.d.ts.map +1 -0
  52. package/dist/commands/network/shared.js +174 -0
  53. package/dist/commands/network/shared.js.map +1 -0
  54. package/dist/commands/network.js +4 -4
  55. package/dist/commands/network.js.map +1 -1
  56. package/dist/commands/peek.d.ts.map +1 -1
  57. package/dist/commands/peek.js +7 -2
  58. package/dist/commands/peek.js.map +1 -1
  59. package/dist/commands/shared/CommandRunner.d.ts +19 -0
  60. package/dist/commands/shared/CommandRunner.d.ts.map +1 -1
  61. package/dist/commands/shared/CommandRunner.js +30 -0
  62. package/dist/commands/shared/CommandRunner.js.map +1 -1
  63. package/dist/commands/shared/commonOptions.d.ts +8 -24
  64. package/dist/commands/shared/commonOptions.d.ts.map +1 -1
  65. package/dist/commands/shared/commonOptions.js +9 -25
  66. package/dist/commands/shared/commonOptions.js.map +1 -1
  67. package/dist/commands/shared/optionTypes.d.ts +42 -4
  68. package/dist/commands/shared/optionTypes.d.ts.map +1 -1
  69. package/dist/commands/shared/startHelpers.d.ts +2 -10
  70. package/dist/commands/shared/startHelpers.d.ts.map +1 -1
  71. package/dist/commands/shared/startHelpers.js +9 -4
  72. package/dist/commands/shared/startHelpers.js.map +1 -1
  73. package/dist/commands/start.d.ts.map +1 -1
  74. package/dist/commands/start.js +3 -1
  75. package/dist/commands/start.js.map +1 -1
  76. package/dist/commands/stop.js +1 -1
  77. package/dist/commands/stop.js.map +1 -1
  78. package/dist/commands/tail.js +1 -1
  79. package/dist/commands/tail.js.map +1 -1
  80. package/dist/commands.js +1 -1
  81. package/dist/commands.js.map +1 -1
  82. package/dist/constants.d.ts +15 -0
  83. package/dist/constants.d.ts.map +1 -1
  84. package/dist/constants.js +18 -0
  85. package/dist/constants.js.map +1 -1
  86. package/dist/daemon/__tests__/commandRegistry.contract.test.js +6 -2
  87. package/dist/daemon/__tests__/commandRegistry.contract.test.js.map +1 -1
  88. package/dist/daemon/handlers/CommandHandlers.d.ts +5 -0
  89. package/dist/daemon/handlers/CommandHandlers.d.ts.map +1 -1
  90. package/dist/daemon/handlers/CommandHandlers.js +6 -1
  91. package/dist/daemon/handlers/CommandHandlers.js.map +1 -1
  92. package/dist/daemon/handlers/QueryHandlers.d.ts.map +1 -1
  93. package/dist/daemon/handlers/QueryHandlers.js +3 -1
  94. package/dist/daemon/handlers/QueryHandlers.js.map +1 -1
  95. package/dist/daemon/worker/commandRegistry.d.ts.map +1 -1
  96. package/dist/daemon/worker/commandRegistry.js +150 -53
  97. package/dist/daemon/worker/commandRegistry.js.map +1 -1
  98. package/dist/ipc/client.d.ts +10 -1
  99. package/dist/ipc/client.d.ts.map +1 -1
  100. package/dist/ipc/client.js +12 -2
  101. package/dist/ipc/client.js.map +1 -1
  102. package/dist/ipc/session/queries.d.ts +2 -0
  103. package/dist/ipc/session/queries.d.ts.map +1 -1
  104. package/dist/session/QueryCacheManager.d.ts +1 -1
  105. package/dist/session/QueryCacheManager.d.ts.map +1 -1
  106. package/dist/telemetry/__tests__/remoteObject.unit.test.d.ts +2 -0
  107. package/dist/telemetry/__tests__/remoteObject.unit.test.d.ts.map +1 -0
  108. package/dist/telemetry/__tests__/remoteObject.unit.test.js +261 -0
  109. package/dist/telemetry/__tests__/remoteObject.unit.test.js.map +1 -0
  110. package/dist/telemetry/console.d.ts +8 -8
  111. package/dist/telemetry/console.d.ts.map +1 -1
  112. package/dist/telemetry/console.js +142 -53
  113. package/dist/telemetry/console.js.map +1 -1
  114. package/dist/telemetry/filterDsl.d.ts +45 -0
  115. package/dist/telemetry/filterDsl.d.ts.map +1 -0
  116. package/dist/telemetry/filterDsl.js +299 -0
  117. package/dist/telemetry/filterDsl.js.map +1 -0
  118. package/dist/telemetry/filterPresets.d.ts +35 -0
  119. package/dist/telemetry/filterPresets.d.ts.map +1 -0
  120. package/dist/telemetry/filterPresets.js +76 -0
  121. package/dist/telemetry/filterPresets.js.map +1 -0
  122. package/dist/telemetry/network.d.ts.map +1 -1
  123. package/dist/telemetry/network.js +16 -8
  124. package/dist/telemetry/network.js.map +1 -1
  125. package/dist/telemetry/objectExpander.d.ts +35 -0
  126. package/dist/telemetry/objectExpander.d.ts.map +1 -0
  127. package/dist/telemetry/objectExpander.js +165 -0
  128. package/dist/telemetry/objectExpander.js.map +1 -0
  129. package/dist/telemetry/remoteObject.d.ts +41 -0
  130. package/dist/telemetry/remoteObject.d.ts.map +1 -0
  131. package/dist/telemetry/remoteObject.js +193 -0
  132. package/dist/telemetry/remoteObject.js.map +1 -0
  133. package/dist/telemetry/remoteObjectUtils.d.ts +40 -0
  134. package/dist/telemetry/remoteObjectUtils.d.ts.map +1 -0
  135. package/dist/telemetry/remoteObjectUtils.js +75 -0
  136. package/dist/telemetry/remoteObjectUtils.js.map +1 -0
  137. package/dist/telemetry/roleInference.d.ts +1 -1
  138. package/dist/telemetry/roleInference.d.ts.map +1 -1
  139. package/dist/types.d.ts +113 -0
  140. package/dist/types.d.ts.map +1 -1
  141. package/dist/ui/formatters/a11y.d.ts +1 -1
  142. package/dist/ui/formatters/a11y.d.ts.map +1 -1
  143. package/dist/ui/formatters/console.d.ts +143 -0
  144. package/dist/ui/formatters/console.d.ts.map +1 -0
  145. package/dist/ui/formatters/console.js +431 -0
  146. package/dist/ui/formatters/console.js.map +1 -0
  147. package/dist/ui/formatters/dom.d.ts +4 -4
  148. package/dist/ui/formatters/dom.d.ts.map +1 -1
  149. package/dist/ui/formatters/dom.js +5 -5
  150. package/dist/ui/formatters/dom.js.map +1 -1
  151. package/dist/ui/formatters/networkList.d.ts +19 -0
  152. package/dist/ui/formatters/networkList.d.ts.map +1 -0
  153. package/dist/ui/formatters/networkList.js +86 -0
  154. package/dist/ui/formatters/networkList.js.map +1 -0
  155. package/dist/ui/formatters/preview.d.ts +18 -0
  156. package/dist/ui/formatters/preview.d.ts.map +1 -1
  157. package/dist/ui/formatters/preview.js +13 -5
  158. package/dist/ui/formatters/preview.js.map +1 -1
  159. package/dist/ui/logging/logger.d.ts +1 -1
  160. package/dist/ui/logging/logger.d.ts.map +1 -1
  161. package/dist/ui/logging/logger.js.map +1 -1
  162. package/dist/ui/messages/consoleMessages.d.ts +12 -27
  163. package/dist/ui/messages/consoleMessages.d.ts.map +1 -1
  164. package/dist/ui/messages/consoleMessages.js +16 -31
  165. package/dist/ui/messages/consoleMessages.js.map +1 -1
  166. package/dist/ui/messages/networkMessages.d.ts +24 -0
  167. package/dist/ui/messages/networkMessages.d.ts.map +1 -0
  168. package/dist/ui/messages/networkMessages.js +30 -0
  169. package/dist/ui/messages/networkMessages.js.map +1 -0
  170. package/dist/utils/decisionTrees.d.ts.map +1 -1
  171. package/dist/utils/decisionTrees.js +17 -2
  172. package/dist/utils/decisionTrees.js.map +1 -1
  173. package/dist/utils/strings.d.ts +14 -0
  174. package/dist/utils/strings.d.ts.map +1 -0
  175. package/dist/utils/strings.js +23 -0
  176. package/dist/utils/strings.js.map +1 -0
  177. package/dist/utils/taskMappings.d.ts.map +1 -1
  178. package/dist/utils/taskMappings.js +18 -3
  179. package/dist/utils/taskMappings.js.map +1 -1
  180. package/package.json +1 -1
@@ -0,0 +1,97 @@
1
+ /**
2
+ * HAR export command for network data.
3
+ *
4
+ * Exports collected network requests to HAR 1.2 format.
5
+ * Supports filtering with DevTools-compatible DSL.
6
+ */
7
+ import * as fs from 'fs';
8
+ import * as path from 'path';
9
+ import { Option } from 'commander';
10
+ import { runCommand } from '../../commands/shared/CommandRunner.js';
11
+ import { jsonOption } from '../../commands/shared/commonOptions.js';
12
+ import { getSessionFilePath } from '../../session/paths.js';
13
+ import { applyFilters, parseFilterString, validateFilterString } from '../../telemetry/filterDsl.js';
14
+ import { buildHAR } from '../../telemetry/har/builder.js';
15
+ import { CommandError } from '../../ui/errors/index.js';
16
+ import { AtomicFileWriter } from '../../utils/atomicFile.js';
17
+ import { EXIT_CODES } from '../../utils/exitCodes.js';
18
+ import { VERSION } from '../../utils/version.js';
19
+ import { getNetworkRequests } from './shared.js';
20
+ /**
21
+ * Generate timestamped filename for HAR export in ~/.bdg/ directory.
22
+ *
23
+ * @returns Full path to HAR file in ~/.bdg/capture-YYYY-MM-DD-HHMMSS.har
24
+ */
25
+ function generateHARFilename() {
26
+ const now = new Date();
27
+ const year = now.getFullYear();
28
+ const month = String(now.getMonth() + 1).padStart(2, '0');
29
+ const day = String(now.getDate()).padStart(2, '0');
30
+ const hours = String(now.getHours()).padStart(2, '0');
31
+ const minutes = String(now.getMinutes()).padStart(2, '0');
32
+ const seconds = String(now.getSeconds()).padStart(2, '0');
33
+ const filename = `capture-${year}-${month}-${day}-${hours}${minutes}${seconds}.har`;
34
+ const sessionDir = path.dirname(getSessionFilePath('OUTPUT'));
35
+ return path.join(sessionDir, filename);
36
+ }
37
+ /**
38
+ * Format HAR export success message for human output.
39
+ *
40
+ * @param data - HAR export result data
41
+ * @returns Formatted success message
42
+ */
43
+ function formatHARExport(data) {
44
+ const filterNote = data.filtered ? ' (filtered)' : '';
45
+ return `✓ Exported ${data.entries} requests${filterNote} to ${data.file}`;
46
+ }
47
+ /**
48
+ * Option for filter DSL.
49
+ */
50
+ const filterDslOption = new Option('--filter <dsl>', 'Filter requests using DevTools DSL (e.g., "status-code:>=400")');
51
+ /**
52
+ * Register HAR export command.
53
+ *
54
+ * @param networkCmd - Network parent command
55
+ */
56
+ export function registerHarCommand(networkCmd) {
57
+ networkCmd
58
+ .command('har [output-file]')
59
+ .description('Export network data as HAR 1.2 format')
60
+ .addOption(jsonOption())
61
+ .addOption(filterDslOption)
62
+ .action(async (outputFile, options) => {
63
+ await runCommand(async () => {
64
+ let requests = await getNetworkRequests();
65
+ let filtered = false;
66
+ if (options.filter) {
67
+ const validation = validateFilterString(options.filter);
68
+ if (!validation.valid) {
69
+ const metadata = validation.suggestion ? { suggestion: validation.suggestion } : {};
70
+ throw new CommandError(validation.error, metadata, EXIT_CODES.INVALID_ARGUMENTS);
71
+ }
72
+ const filters = parseFilterString(options.filter);
73
+ const originalCount = requests.length;
74
+ requests = applyFilters(requests, filters);
75
+ filtered = requests.length !== originalCount;
76
+ }
77
+ const outputPath = outputFile ?? generateHARFilename();
78
+ const dir = path.dirname(outputPath);
79
+ if (dir !== '.' && !fs.existsSync(dir)) {
80
+ fs.mkdirSync(dir, { recursive: true });
81
+ }
82
+ const har = buildHAR(requests, {
83
+ version: VERSION,
84
+ });
85
+ await AtomicFileWriter.writeAsync(outputPath, JSON.stringify(har, null, 2));
86
+ return {
87
+ success: true,
88
+ data: {
89
+ file: outputPath,
90
+ entries: har.log.entries.length,
91
+ filtered,
92
+ },
93
+ };
94
+ }, options, formatHARExport);
95
+ });
96
+ }
97
+ //# sourceMappingURL=har.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"har.js","sourceRoot":"","sources":["../../../src/commands/network/har.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,18 @@
1
+ /**
2
+ * Network command group registration.
3
+ *
4
+ * Provides commands for inspecting and exporting network data:
5
+ * - list: List requests with DevTools-compatible filtering
6
+ * - har: Export to HAR 1.2 format
7
+ * - getCookies: List cookies
8
+ * - headers: Show HTTP headers
9
+ * - document: Show main document headers
10
+ */
11
+ import type { Command } from 'commander';
12
+ /**
13
+ * Register all network subcommands.
14
+ *
15
+ * @param program - Commander.js Command instance to register commands on
16
+ */
17
+ export declare function registerNetworkCommands(program: Command): void;
18
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/commands/network/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAUzC;;;;GAIG;AACH,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAQ9D"}
@@ -0,0 +1,27 @@
1
+ /**
2
+ * Network command group registration.
3
+ *
4
+ * Provides commands for inspecting and exporting network data:
5
+ * - list: List requests with DevTools-compatible filtering
6
+ * - har: Export to HAR 1.2 format
7
+ * - getCookies: List cookies
8
+ * - headers: Show HTTP headers
9
+ * - document: Show main document headers
10
+ */
11
+ import { registerHarCommand } from './har.js';
12
+ import { registerListCommand } from './list.js';
13
+ import { registerGetCookiesCommand, registerHeadersCommand, registerDocumentCommand, } from './shared.js';
14
+ /**
15
+ * Register all network subcommands.
16
+ *
17
+ * @param program - Commander.js Command instance to register commands on
18
+ */
19
+ export function registerNetworkCommands(program) {
20
+ const networkCmd = program.command('network').description('Inspect network state and resources');
21
+ registerListCommand(networkCmd);
22
+ registerHarCommand(networkCmd);
23
+ registerGetCookiesCommand(networkCmd);
24
+ registerHeadersCommand(networkCmd);
25
+ registerDocumentCommand(networkCmd);
26
+ }
27
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/commands/network/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAIH,OAAO,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAC;AAC9C,OAAO,EAAE,mBAAmB,EAAE,MAAM,WAAW,CAAC;AAChD,OAAO,EACL,yBAAyB,EACzB,sBAAsB,EACtB,uBAAuB,GACxB,MAAM,aAAa,CAAC;AAErB;;;;GAIG;AACH,MAAM,UAAU,uBAAuB,CAAC,OAAgB;IACtD,MAAM,UAAU,GAAG,OAAO,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,WAAW,CAAC,qCAAqC,CAAC,CAAC;IAEjG,mBAAmB,CAAC,UAAU,CAAC,CAAC;IAChC,kBAAkB,CAAC,UAAU,CAAC,CAAC;IAC/B,yBAAyB,CAAC,UAAU,CAAC,CAAC;IACtC,sBAAsB,CAAC,UAAU,CAAC,CAAC;IACnC,uBAAuB,CAAC,UAAU,CAAC,CAAC;AACtC,CAAC"}
@@ -0,0 +1,14 @@
1
+ /**
2
+ * Network list command with DevTools-compatible filter DSL.
3
+ *
4
+ * Provides powerful filtering capabilities for network requests including
5
+ * status codes, domains, HTTP methods, MIME types, size thresholds, and more.
6
+ */
7
+ import { type Command } from 'commander';
8
+ /**
9
+ * Register network list command.
10
+ *
11
+ * @param networkCmd - Network parent command
12
+ */
13
+ export declare function registerListCommand(networkCmd: Command): void;
14
+ //# sourceMappingURL=list.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"list.d.ts","sourceRoot":"","sources":["../../../src/commands/network/list.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAU,KAAK,OAAO,EAAE,MAAM,WAAW,CAAC;AAoUjD;;;;GAIG;AACH,wBAAgB,mBAAmB,CAAC,UAAU,EAAE,OAAO,GAAG,IAAI,CAY7D"}
@@ -0,0 +1,273 @@
1
+ /**
2
+ * Network list command with DevTools-compatible filter DSL.
3
+ *
4
+ * Provides powerful filtering capabilities for network requests including
5
+ * status codes, domains, HTTP methods, MIME types, size thresholds, and more.
6
+ */
7
+ import { Option } from 'commander';
8
+ import { jsonOption } from '../../commands/shared/commonOptions.js';
9
+ import { handleDaemonConnectionError } from '../../commands/shared/daemonErrorHandler.js';
10
+ import { getErrorMessage } from '../../connection/errors.js';
11
+ import { getPeek } from '../../ipc/client.js';
12
+ import { validateIPCResponse } from '../../ipc/index.js';
13
+ import { applyFilters, getFilterHelpText, validateFilterString } from '../../telemetry/filterDsl.js';
14
+ import { resolvePreset, FILTER_PRESETS } from '../../telemetry/filterPresets.js';
15
+ import { CommandError } from '../../ui/errors/index.js';
16
+ import { formatNetworkList } from '../../ui/formatters/networkList.js';
17
+ import { followingNetworkMessage, noNetworkDataMessage, stoppedFollowingNetworkMessage, } from '../../ui/messages/networkMessages.js';
18
+ import { invalidLastRangeError } from '../../ui/messages/validation.js';
19
+ import { getExitCodeForConnectionError } from '../../utils/errorMapping.js';
20
+ import { EXIT_CODES } from '../../utils/exitCodes.js';
21
+ const MIN_LAST_ITEMS = 0;
22
+ const MAX_LAST_ITEMS = 10000;
23
+ const DEFAULT_LAST_ITEMS = 100;
24
+ const FOLLOW_MODE_LIMIT = 50;
25
+ const FOLLOW_INTERVAL_MS = 1000;
26
+ const networkLastOption = new Option('--last <n>', `Show last N requests (0 = all, default: ${DEFAULT_LAST_ITEMS})`)
27
+ .default(DEFAULT_LAST_ITEMS)
28
+ .argParser(parseLastOption);
29
+ const filterDslOption = new Option('--filter <dsl>', 'Filter requests using DevTools DSL (e.g., "status-code:>=400 domain:api.*")');
30
+ const presetOption = new Option('--preset <name>', 'Use predefined filter preset').choices(Object.keys(FILTER_PRESETS));
31
+ const followOption = new Option('-f, --follow', 'Stream network requests in real-time').default(false);
32
+ const verboseOption = new Option('-v, --verbose', 'Show full URLs and additional details').default(false);
33
+ /**
34
+ * Parse and validate --last option value.
35
+ */
36
+ function parseLastOption(val) {
37
+ const n = parseInt(val, 10);
38
+ if (isNaN(n) || n < MIN_LAST_ITEMS || n > MAX_LAST_ITEMS) {
39
+ throw new CommandError(invalidLastRangeError(MIN_LAST_ITEMS, MAX_LAST_ITEMS), {}, EXIT_CODES.INVALID_ARGUMENTS);
40
+ }
41
+ return n;
42
+ }
43
+ /**
44
+ * Build combined filter string from preset and explicit filter.
45
+ */
46
+ function buildFilterString(options) {
47
+ const explicit = options.filter ?? '';
48
+ if (!options.preset)
49
+ return explicit;
50
+ const presetFilter = resolvePreset(options.preset);
51
+ return explicit ? `${presetFilter} ${explicit}` : presetFilter;
52
+ }
53
+ /**
54
+ * Validate filter syntax and throw CommandError if invalid.
55
+ */
56
+ function validateFilterOptions(options) {
57
+ const filterString = buildFilterString(options);
58
+ if (!filterString)
59
+ return;
60
+ const validation = validateFilterString(filterString);
61
+ if (validation.valid)
62
+ return;
63
+ const metadata = validation.suggestion ? { suggestion: validation.suggestion } : {};
64
+ throw new CommandError(validation.error, metadata, EXIT_CODES.INVALID_ARGUMENTS);
65
+ }
66
+ /**
67
+ * Apply filters to requests array.
68
+ */
69
+ function filterRequests(requests, options) {
70
+ const filterString = buildFilterString(options);
71
+ if (!filterString)
72
+ return requests;
73
+ const validation = validateFilterString(filterString);
74
+ return validation.valid ? applyFilters(requests, validation.filters) : requests;
75
+ }
76
+ /**
77
+ * Handle empty network data response.
78
+ */
79
+ function handleEmptyNetworkData(options) {
80
+ if (options.json) {
81
+ console.log(JSON.stringify({ success: true, data: [], count: 0 }));
82
+ }
83
+ else {
84
+ console.log(noNetworkDataMessage());
85
+ }
86
+ process.exit(EXIT_CODES.SUCCESS);
87
+ }
88
+ /**
89
+ * Handle IPC validation error with daemon error handler.
90
+ */
91
+ function handleValidationError(error, options) {
92
+ const errorMsg = getErrorMessage(error);
93
+ const exitCode = getExitCodeForConnectionError(errorMsg);
94
+ const result = handleDaemonConnectionError(errorMsg, {
95
+ json: options.json,
96
+ follow: options.follow,
97
+ retryIntervalMs: FOLLOW_INTERVAL_MS,
98
+ exitCode,
99
+ });
100
+ if (result.shouldExit) {
101
+ process.exit(result.exitCode);
102
+ }
103
+ return false;
104
+ }
105
+ /**
106
+ * Handle daemon connection failure.
107
+ */
108
+ function handleConnectionFailure(options) {
109
+ const result = handleDaemonConnectionError('Daemon not running', {
110
+ json: options.json,
111
+ follow: options.follow,
112
+ retryIntervalMs: FOLLOW_INTERVAL_MS,
113
+ });
114
+ if (result.shouldExit) {
115
+ process.exit(result.exitCode);
116
+ }
117
+ return null;
118
+ }
119
+ /**
120
+ * Fetch network requests from the daemon.
121
+ */
122
+ async function fetchNetworkRequests(options) {
123
+ try {
124
+ const response = await getPeek();
125
+ try {
126
+ validateIPCResponse(response);
127
+ }
128
+ catch (validationError) {
129
+ handleValidationError(validationError, options);
130
+ return null;
131
+ }
132
+ const output = response.data?.preview;
133
+ if (!output?.data.network) {
134
+ handleEmptyNetworkData(options);
135
+ }
136
+ return output.data.network;
137
+ }
138
+ catch {
139
+ return handleConnectionFailure(options);
140
+ }
141
+ }
142
+ /**
143
+ * Build format options for display functions.
144
+ */
145
+ function buildFormatOptions(options, totalCount, lastLimit, follow = false) {
146
+ return {
147
+ json: options.json ?? false,
148
+ verbose: options.verbose ?? false,
149
+ last: lastLimit,
150
+ totalCount,
151
+ follow,
152
+ };
153
+ }
154
+ /**
155
+ * Display network requests in standard mode.
156
+ */
157
+ function displayNetworkList(requests, options) {
158
+ const lastCount = options.last ?? DEFAULT_LAST_ITEMS;
159
+ const displayRequests = lastCount === 0 ? requests : requests.slice(-lastCount);
160
+ const formatOptions = buildFormatOptions(options, requests.length, lastCount);
161
+ console.log(formatNetworkList(displayRequests, formatOptions));
162
+ }
163
+ /**
164
+ * Display network requests in follow/streaming mode.
165
+ */
166
+ function displayNetworkStreaming(requests, options) {
167
+ const displayRequests = requests.slice(-FOLLOW_MODE_LIMIT);
168
+ const formatOptions = buildFormatOptions(options, requests.length, FOLLOW_MODE_LIMIT, true);
169
+ console.clear();
170
+ console.log(formatNetworkList(displayRequests, formatOptions));
171
+ }
172
+ /**
173
+ * Handle CommandError with appropriate output format.
174
+ */
175
+ function handleCommandError(error, json) {
176
+ if (json) {
177
+ console.log(JSON.stringify({ success: false, error: error.message }));
178
+ }
179
+ else {
180
+ console.error(error.message);
181
+ if (error.metadata?.suggestion) {
182
+ console.error(error.metadata.suggestion);
183
+ }
184
+ }
185
+ process.exit(error.exitCode);
186
+ }
187
+ /**
188
+ * Process and display filtered network requests.
189
+ */
190
+ async function processNetworkRequests(options, displayFn) {
191
+ const requests = await fetchNetworkRequests(options);
192
+ if (!requests)
193
+ return;
194
+ try {
195
+ const filtered = filterRequests(requests, options);
196
+ displayFn(filtered, options);
197
+ }
198
+ catch (error) {
199
+ if (error instanceof CommandError) {
200
+ handleCommandError(error, options.json ?? false);
201
+ }
202
+ throw error;
203
+ }
204
+ }
205
+ /**
206
+ * Run follow mode with periodic updates.
207
+ */
208
+ async function runFollowMode(options) {
209
+ console.error(followingNetworkMessage());
210
+ const refresh = () => processNetworkRequests(options, displayNetworkStreaming);
211
+ await refresh();
212
+ const intervalId = setInterval(() => {
213
+ void refresh();
214
+ }, FOLLOW_INTERVAL_MS);
215
+ process.on('SIGINT', () => {
216
+ clearInterval(intervalId);
217
+ console.error(stoppedFollowingNetworkMessage());
218
+ process.exit(EXIT_CODES.SUCCESS);
219
+ });
220
+ }
221
+ /**
222
+ * Run standard (non-follow) mode.
223
+ */
224
+ async function runStandardMode(options) {
225
+ await processNetworkRequests(options, displayNetworkList);
226
+ }
227
+ /**
228
+ * Execute network list command action.
229
+ */
230
+ async function executeNetworkList(options) {
231
+ try {
232
+ validateFilterOptions(options);
233
+ }
234
+ catch (error) {
235
+ if (error instanceof CommandError) {
236
+ handleCommandError(error, options.json ?? false);
237
+ }
238
+ throw error;
239
+ }
240
+ if (options.follow) {
241
+ await runFollowMode(options);
242
+ }
243
+ else {
244
+ await runStandardMode(options);
245
+ }
246
+ }
247
+ /**
248
+ * Format preset help text for command help output.
249
+ */
250
+ function formatPresetHelp() {
251
+ return Object.entries(FILTER_PRESETS)
252
+ .map(([name, preset]) => ` ${name.padEnd(12)} ${preset.description}`)
253
+ .join('\n');
254
+ }
255
+ /**
256
+ * Register network list command.
257
+ *
258
+ * @param networkCmd - Network parent command
259
+ */
260
+ export function registerListCommand(networkCmd) {
261
+ networkCmd
262
+ .command('list')
263
+ .description('List network requests with DevTools-compatible filtering')
264
+ .addOption(jsonOption())
265
+ .addOption(filterDslOption)
266
+ .addOption(presetOption)
267
+ .addOption(networkLastOption)
268
+ .addOption(followOption)
269
+ .addOption(verboseOption)
270
+ .addHelpText('after', `\n${getFilterHelpText()}\n\nPresets:\n${formatPresetHelp()}`)
271
+ .action(executeNetworkList);
272
+ }
273
+ //# sourceMappingURL=list.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"list.js","sourceRoot":"","sources":["../../../src/commands/network/list.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,MAAM,EAAgB,MAAM,WAAW,CAAC;AAEjD,OAAO,EAAE,UAAU,EAAE,MAAM,oCAAoC,CAAC;AAChE,OAAO,EAAE,2BAA2B,EAAE,MAAM,yCAAyC,CAAC;AACtF,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAC1C,OAAO,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AACrD,OAAO,EAAE,YAAY,EAAE,iBAAiB,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AACjG,OAAO,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAE7E,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACpD,OAAO,EAAE,iBAAiB,EAA2B,MAAM,gCAAgC,CAAC;AAC5F,OAAO,EACL,uBAAuB,EACvB,oBAAoB,EACpB,8BAA8B,GAC/B,MAAM,kCAAkC,CAAC;AAC1C,OAAO,EAAE,qBAAqB,EAAE,MAAM,6BAA6B,CAAC;AACpE,OAAO,EAAE,6BAA6B,EAAE,MAAM,yBAAyB,CAAC;AACxE,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAElD,MAAM,cAAc,GAAG,CAAC,CAAC;AACzB,MAAM,cAAc,GAAG,KAAK,CAAC;AAC7B,MAAM,kBAAkB,GAAG,GAAG,CAAC;AAC/B,MAAM,iBAAiB,GAAG,EAAE,CAAC;AAC7B,MAAM,kBAAkB,GAAG,IAAI,CAAC;AAWhC,MAAM,iBAAiB,GAAG,IAAI,MAAM,CAClC,YAAY,EACZ,2CAA2C,kBAAkB,GAAG,CACjE;KACE,OAAO,CAAC,kBAAkB,CAAC;KAC3B,SAAS,CAAC,eAAe,CAAC,CAAC;AAE9B,MAAM,eAAe,GAAG,IAAI,MAAM,CAChC,gBAAgB,EAChB,6EAA6E,CAC9E,CAAC;AAEF,MAAM,YAAY,GAAG,IAAI,MAAM,CAAC,iBAAiB,EAAE,8BAA8B,CAAC,CAAC,OAAO,CACxF,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC,CAC5B,CAAC;AAEF,MAAM,YAAY,GAAG,IAAI,MAAM,CAAC,cAAc,EAAE,sCAAsC,CAAC,CAAC,OAAO,CAC7F,KAAK,CACN,CAAC;AAEF,MAAM,aAAa,GAAG,IAAI,MAAM,CAAC,eAAe,EAAE,uCAAuC,CAAC,CAAC,OAAO,CAChG,KAAK,CACN,CAAC;AAEF;;GAEG;AACH,SAAS,eAAe,CAAC,GAAW;IAClC,MAAM,CAAC,GAAG,QAAQ,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;IAC5B,IAAI,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,cAAc,IAAI,CAAC,GAAG,cAAc,EAAE,CAAC;QACzD,MAAM,IAAI,YAAY,CACpB,qBAAqB,CAAC,cAAc,EAAE,cAAc,CAAC,EACrD,EAAE,EACF,UAAU,CAAC,iBAAiB,CAC7B,CAAC;IACJ,CAAC;IACD,OAAO,CAAC,CAAC;AACX,CAAC;AAED;;GAEG;AACH,SAAS,iBAAiB,CAAC,OAAkC;IAC3D,MAAM,QAAQ,GAAG,OAAO,CAAC,MAAM,IAAI,EAAE,CAAC;IACtC,IAAI,CAAC,OAAO,CAAC,MAAM;QAAE,OAAO,QAAQ,CAAC;IAErC,MAAM,YAAY,GAAG,aAAa,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IACnD,OAAO,QAAQ,CAAC,CAAC,CAAC,GAAG,YAAY,IAAI,QAAQ,EAAE,CAAC,CAAC,CAAC,YAAY,CAAC;AACjE,CAAC;AAED;;GAEG;AACH,SAAS,qBAAqB,CAAC,OAAkC;IAC/D,MAAM,YAAY,GAAG,iBAAiB,CAAC,OAAO,CAAC,CAAC;IAChD,IAAI,CAAC,YAAY;QAAE,OAAO;IAE1B,MAAM,UAAU,GAAG,oBAAoB,CAAC,YAAY,CAAC,CAAC;IACtD,IAAI,UAAU,CAAC,KAAK;QAAE,OAAO;IAE7B,MAAM,QAAQ,GAAG,UAAU,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,UAAU,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;IACpF,MAAM,IAAI,YAAY,CAAC,UAAU,CAAC,KAAK,EAAE,QAAQ,EAAE,UAAU,CAAC,iBAAiB,CAAC,CAAC;AACnF,CAAC;AAED;;GAEG;AACH,SAAS,cAAc,CACrB,QAA0B,EAC1B,OAAkC;IAElC,MAAM,YAAY,GAAG,iBAAiB,CAAC,OAAO,CAAC,CAAC;IAChD,IAAI,CAAC,YAAY;QAAE,OAAO,QAAQ,CAAC;IAEnC,MAAM,UAAU,GAAG,oBAAoB,CAAC,YAAY,CAAC,CAAC;IACtD,OAAO,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,YAAY,CAAC,QAAQ,EAAE,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC;AAClF,CAAC;AAED;;GAEG;AACH,SAAS,sBAAsB,CAAC,OAAkC;IAChE,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;QACjB,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;IACrE,CAAC;SAAM,CAAC;QACN,OAAO,CAAC,GAAG,CAAC,oBAAoB,EAAE,CAAC,CAAC;IACtC,CAAC;IACD,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;AACnC,CAAC;AAED;;GAEG;AACH,SAAS,qBAAqB,CAAC,KAAc,EAAE,OAAkC;IAC/E,MAAM,QAAQ,GAAG,eAAe,CAAC,KAAK,CAAC,CAAC;IACxC,MAAM,QAAQ,GAAG,6BAA6B,CAAC,QAAQ,CAAC,CAAC;IACzD,MAAM,MAAM,GAAG,2BAA2B,CAAC,QAAQ,EAAE;QACnD,IAAI,EAAE,OAAO,CAAC,IAAI;QAClB,MAAM,EAAE,OAAO,CAAC,MAAM;QACtB,eAAe,EAAE,kBAAkB;QACnC,QAAQ;KACT,CAAC,CAAC;IAEH,IAAI,MAAM,CAAC,UAAU,EAAE,CAAC;QACtB,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;IAChC,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;GAEG;AACH,SAAS,uBAAuB,CAAC,OAAkC;IACjE,MAAM,MAAM,GAAG,2BAA2B,CAAC,oBAAoB,EAAE;QAC/D,IAAI,EAAE,OAAO,CAAC,IAAI;QAClB,MAAM,EAAE,OAAO,CAAC,MAAM;QACtB,eAAe,EAAE,kBAAkB;KACpC,CAAC,CAAC;IAEH,IAAI,MAAM,CAAC,UAAU,EAAE,CAAC;QACtB,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;IAChC,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;GAEG;AACH,KAAK,UAAU,oBAAoB,CACjC,OAAkC;IAElC,IAAI,CAAC;QACH,MAAM,QAAQ,GAAG,MAAM,OAAO,EAAE,CAAC;QAEjC,IAAI,CAAC;YACH,mBAAmB,CAAC,QAAQ,CAAC,CAAC;QAChC,CAAC;QAAC,OAAO,eAAe,EAAE,CAAC;YACzB,qBAAqB,CAAC,eAAe,EAAE,OAAO,CAAC,CAAC;YAChD,OAAO,IAAI,CAAC;QACd,CAAC;QAED,MAAM,MAAM,GAAG,QAAQ,CAAC,IAAI,EAAE,OAAgC,CAAC;QAC/D,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,OAAO,EAAE,CAAC;YAC1B,sBAAsB,CAAC,OAAO,CAAC,CAAC;QAClC,CAAC;QAED,OAAO,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC;IAC7B,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,uBAAuB,CAAC,OAAO,CAAC,CAAC;IAC1C,CAAC;AACH,CAAC;AAED;;GAEG;AACH,SAAS,kBAAkB,CACzB,OAAkC,EAClC,UAAkB,EAClB,SAAiB,EACjB,MAAM,GAAG,KAAK;IAEd,OAAO;QACL,IAAI,EAAE,OAAO,CAAC,IAAI,IAAI,KAAK;QAC3B,OAAO,EAAE,OAAO,CAAC,OAAO,IAAI,KAAK;QACjC,IAAI,EAAE,SAAS;QACf,UAAU;QACV,MAAM;KACP,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,SAAS,kBAAkB,CAAC,QAA0B,EAAE,OAAkC;IACxF,MAAM,SAAS,GAAG,OAAO,CAAC,IAAI,IAAI,kBAAkB,CAAC;IACrD,MAAM,eAAe,GAAG,SAAS,KAAK,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,SAAS,CAAC,CAAC;IAChF,MAAM,aAAa,GAAG,kBAAkB,CAAC,OAAO,EAAE,QAAQ,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;IAE9E,OAAO,CAAC,GAAG,CAAC,iBAAiB,CAAC,eAAe,EAAE,aAAa,CAAC,CAAC,CAAC;AACjE,CAAC;AAED;;GAEG;AACH,SAAS,uBAAuB,CAC9B,QAA0B,EAC1B,OAAkC;IAElC,MAAM,eAAe,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,iBAAiB,CAAC,CAAC;IAC3D,MAAM,aAAa,GAAG,kBAAkB,CAAC,OAAO,EAAE,QAAQ,CAAC,MAAM,EAAE,iBAAiB,EAAE,IAAI,CAAC,CAAC;IAE5F,OAAO,CAAC,KAAK,EAAE,CAAC;IAChB,OAAO,CAAC,GAAG,CAAC,iBAAiB,CAAC,eAAe,EAAE,aAAa,CAAC,CAAC,CAAC;AACjE,CAAC;AAED;;GAEG;AACH,SAAS,kBAAkB,CAAC,KAAmB,EAAE,IAAa;IAC5D,IAAI,IAAI,EAAE,CAAC;QACT,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;IACxE,CAAC;SAAM,CAAC;QACN,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QAC7B,IAAI,KAAK,CAAC,QAAQ,EAAE,UAAU,EAAE,CAAC;YAC/B,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;QAC3C,CAAC;IACH,CAAC;IACD,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;AAC/B,CAAC;AAED;;GAEG;AACH,KAAK,UAAU,sBAAsB,CACnC,OAAkC,EAClC,SAAmF;IAEnF,MAAM,QAAQ,GAAG,MAAM,oBAAoB,CAAC,OAAO,CAAC,CAAC;IACrD,IAAI,CAAC,QAAQ;QAAE,OAAO;IAEtB,IAAI,CAAC;QACH,MAAM,QAAQ,GAAG,cAAc,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;QACnD,SAAS,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;IAC/B,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAI,KAAK,YAAY,YAAY,EAAE,CAAC;YAClC,kBAAkB,CAAC,KAAK,EAAE,OAAO,CAAC,IAAI,IAAI,KAAK,CAAC,CAAC;QACnD,CAAC;QACD,MAAM,KAAK,CAAC;IACd,CAAC;AACH,CAAC;AAED;;GAEG;AACH,KAAK,UAAU,aAAa,CAAC,OAAkC;IAC7D,OAAO,CAAC,KAAK,CAAC,uBAAuB,EAAE,CAAC,CAAC;IAEzC,MAAM,OAAO,GAAG,GAAkB,EAAE,CAAC,sBAAsB,CAAC,OAAO,EAAE,uBAAuB,CAAC,CAAC;IAE9F,MAAM,OAAO,EAAE,CAAC;IAEhB,MAAM,UAAU,GAAG,WAAW,CAAC,GAAG,EAAE;QAClC,KAAK,OAAO,EAAE,CAAC;IACjB,CAAC,EAAE,kBAAkB,CAAC,CAAC;IAEvB,OAAO,CAAC,EAAE,CAAC,QAAQ,EAAE,GAAG,EAAE;QACxB,aAAa,CAAC,UAAU,CAAC,CAAC;QAC1B,OAAO,CAAC,KAAK,CAAC,8BAA8B,EAAE,CAAC,CAAC;QAChD,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;IACnC,CAAC,CAAC,CAAC;AACL,CAAC;AAED;;GAEG;AACH,KAAK,UAAU,eAAe,CAAC,OAAkC;IAC/D,MAAM,sBAAsB,CAAC,OAAO,EAAE,kBAAkB,CAAC,CAAC;AAC5D,CAAC;AAED;;GAEG;AACH,KAAK,UAAU,kBAAkB,CAAC,OAAkC;IAClE,IAAI,CAAC;QACH,qBAAqB,CAAC,OAAO,CAAC,CAAC;IACjC,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAI,KAAK,YAAY,YAAY,EAAE,CAAC;YAClC,kBAAkB,CAAC,KAAK,EAAE,OAAO,CAAC,IAAI,IAAI,KAAK,CAAC,CAAC;QACnD,CAAC;QACD,MAAM,KAAK,CAAC;IACd,CAAC;IAED,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;QACnB,MAAM,aAAa,CAAC,OAAO,CAAC,CAAC;IAC/B,CAAC;SAAM,CAAC;QACN,MAAM,eAAe,CAAC,OAAO,CAAC,CAAC;IACjC,CAAC;AACH,CAAC;AAED;;GAEG;AACH,SAAS,gBAAgB;IACvB,OAAO,MAAM,CAAC,OAAO,CAAC,cAAc,CAAC;SAClC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,MAAM,CAAC,EAAE,EAAE,CAAC,KAAK,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI,MAAM,CAAC,WAAW,EAAE,CAAC;SACrE,IAAI,CAAC,IAAI,CAAC,CAAC;AAChB,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,mBAAmB,CAAC,UAAmB;IACrD,UAAU;SACP,OAAO,CAAC,MAAM,CAAC;SACf,WAAW,CAAC,0DAA0D,CAAC;SACvE,SAAS,CAAC,UAAU,EAAE,CAAC;SACvB,SAAS,CAAC,eAAe,CAAC;SAC1B,SAAS,CAAC,YAAY,CAAC;SACvB,SAAS,CAAC,iBAAiB,CAAC;SAC5B,SAAS,CAAC,YAAY,CAAC;SACvB,SAAS,CAAC,aAAa,CAAC;SACxB,WAAW,CAAC,OAAO,EAAE,KAAK,iBAAiB,EAAE,iBAAiB,gBAAgB,EAAE,EAAE,CAAC;SACnF,MAAM,CAAC,kBAAkB,CAAC,CAAC;AAChC,CAAC"}
@@ -0,0 +1,56 @@
1
+ /**
2
+ * Shared utilities and helper commands for network subcommands.
3
+ *
4
+ * Contains getCookies and headers commands, plus shared data fetching utilities.
5
+ */
6
+ import type { Command } from 'commander';
7
+ import type { NetworkRequest } from '../../types.js';
8
+ /**
9
+ * Fetch network requests from live daemon session.
10
+ *
11
+ * @returns Network requests array
12
+ * @throws Error if daemon connection fails or no network data available
13
+ */
14
+ export declare function fetchFromLiveSession(): Promise<NetworkRequest[]>;
15
+ /**
16
+ * Fetch network requests from offline session.json file.
17
+ *
18
+ * @returns Network requests array
19
+ * @throws Error if session file not found or no network data available
20
+ */
21
+ export declare function fetchFromOfflineSession(): NetworkRequest[];
22
+ /**
23
+ * Check if error indicates daemon is unavailable.
24
+ *
25
+ * @param error - Error to check
26
+ * @returns True if error indicates no active session or daemon connection failure
27
+ */
28
+ export declare function isDaemonUnavailable(error: unknown): boolean;
29
+ /**
30
+ * Get network requests from live session or session.json.
31
+ *
32
+ * Tries live daemon first, falls back to offline session file.
33
+ *
34
+ * @returns Network requests array
35
+ * @throws Error if no session available (live or offline)
36
+ */
37
+ export declare function getNetworkRequests(): Promise<NetworkRequest[]>;
38
+ /**
39
+ * Register getCookies command.
40
+ *
41
+ * @param networkCmd - Network parent command
42
+ */
43
+ export declare function registerGetCookiesCommand(networkCmd: Command): void;
44
+ /**
45
+ * Register headers command.
46
+ *
47
+ * @param networkCmd - Network parent command
48
+ */
49
+ export declare function registerHeadersCommand(networkCmd: Command): void;
50
+ /**
51
+ * Register document command.
52
+ *
53
+ * @param networkCmd - Network parent command
54
+ */
55
+ export declare function registerDocumentCommand(networkCmd: Command): void;
56
+ //# sourceMappingURL=shared.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"shared.d.ts","sourceRoot":"","sources":["../../../src/commands/network/shared.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAWzC,OAAO,KAAK,EAAa,cAAc,EAAE,MAAM,YAAY,CAAC;AAO5D;;;;;GAKG;AACH,wBAAsB,oBAAoB,IAAI,OAAO,CAAC,cAAc,EAAE,CAAC,CAStE;AAED;;;;;GAKG;AACH,wBAAgB,uBAAuB,IAAI,cAAc,EAAE,CAkB1D;AAED;;;;;GAKG;AACH,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAO3D;AAED;;;;;;;GAOG;AACH,wBAAsB,kBAAkB,IAAI,OAAO,CAAC,cAAc,EAAE,CAAC,CASpE;AAED;;;;GAIG;AACH,wBAAgB,yBAAyB,CAAC,UAAU,EAAE,OAAO,GAAG,IAAI,CA6BnE;AAED;;;;GAIG;AACH,wBAAgB,sBAAsB,CAAC,UAAU,EAAE,OAAO,GAAG,IAAI,CAqChE;AAED;;;;GAIG;AACH,wBAAgB,uBAAuB,CAAC,UAAU,EAAE,OAAO,GAAG,IAAI,CAgCjE"}