@brightdata/cli 0.1.3 → 0.1.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (92) hide show
  1. package/README.md +410 -1
  2. package/dist/__tests__/browser/connection.test.d.ts +2 -0
  3. package/dist/__tests__/browser/connection.test.d.ts.map +1 -0
  4. package/dist/__tests__/browser/connection.test.js +168 -0
  5. package/dist/__tests__/browser/connection.test.js.map +1 -0
  6. package/dist/__tests__/browser/daemon.test.d.ts +2 -0
  7. package/dist/__tests__/browser/daemon.test.d.ts.map +1 -0
  8. package/dist/__tests__/browser/daemon.test.js +586 -0
  9. package/dist/__tests__/browser/daemon.test.js.map +1 -0
  10. package/dist/__tests__/browser/entrypoint.test.d.ts +2 -0
  11. package/dist/__tests__/browser/entrypoint.test.d.ts.map +1 -0
  12. package/dist/__tests__/browser/entrypoint.test.js +53 -0
  13. package/dist/__tests__/browser/entrypoint.test.js.map +1 -0
  14. package/dist/__tests__/browser/ipc.test.d.ts +2 -0
  15. package/dist/__tests__/browser/ipc.test.d.ts.map +1 -0
  16. package/dist/__tests__/browser/ipc.test.js +199 -0
  17. package/dist/__tests__/browser/ipc.test.js.map +1 -0
  18. package/dist/__tests__/browser/lifecycle.test.d.ts +2 -0
  19. package/dist/__tests__/browser/lifecycle.test.d.ts.map +1 -0
  20. package/dist/__tests__/browser/lifecycle.test.js +176 -0
  21. package/dist/__tests__/browser/lifecycle.test.js.map +1 -0
  22. package/dist/__tests__/browser/snapshot.test.d.ts +2 -0
  23. package/dist/__tests__/browser/snapshot.test.d.ts.map +1 -0
  24. package/dist/__tests__/browser/snapshot.test.js +202 -0
  25. package/dist/__tests__/browser/snapshot.test.js.map +1 -0
  26. package/dist/__tests__/commands/add-mcp.test.d.ts +2 -0
  27. package/dist/__tests__/commands/add-mcp.test.d.ts.map +1 -0
  28. package/dist/__tests__/commands/add-mcp.test.js +138 -0
  29. package/dist/__tests__/commands/add-mcp.test.js.map +1 -0
  30. package/dist/__tests__/commands/browser.test.d.ts +2 -0
  31. package/dist/__tests__/commands/browser.test.d.ts.map +1 -0
  32. package/dist/__tests__/commands/browser.test.js +431 -0
  33. package/dist/__tests__/commands/browser.test.js.map +1 -0
  34. package/dist/__tests__/utils/browser-credentials.test.d.ts +2 -0
  35. package/dist/__tests__/utils/browser-credentials.test.d.ts.map +1 -0
  36. package/dist/__tests__/utils/browser-credentials.test.js +81 -0
  37. package/dist/__tests__/utils/browser-credentials.test.js.map +1 -0
  38. package/dist/__tests__/utils/mcp-config.test.d.ts +2 -0
  39. package/dist/__tests__/utils/mcp-config.test.d.ts.map +1 -0
  40. package/dist/__tests__/utils/mcp-config.test.js +154 -0
  41. package/dist/__tests__/utils/mcp-config.test.js.map +1 -0
  42. package/dist/browser/connection.d.ts +24 -0
  43. package/dist/browser/connection.d.ts.map +1 -0
  44. package/dist/browser/connection.js +55 -0
  45. package/dist/browser/connection.js.map +1 -0
  46. package/dist/browser/daemon.d.ts +130 -0
  47. package/dist/browser/daemon.d.ts.map +1 -0
  48. package/dist/browser/daemon.js +645 -0
  49. package/dist/browser/daemon.js.map +1 -0
  50. package/dist/browser/entrypoint.d.ts +20 -0
  51. package/dist/browser/entrypoint.d.ts.map +1 -0
  52. package/dist/browser/entrypoint.js +46 -0
  53. package/dist/browser/entrypoint.js.map +1 -0
  54. package/dist/browser/interaction.d.ts +32 -0
  55. package/dist/browser/interaction.d.ts.map +1 -0
  56. package/dist/browser/interaction.js +215 -0
  57. package/dist/browser/interaction.js.map +1 -0
  58. package/dist/browser/ipc.d.ts +52 -0
  59. package/dist/browser/ipc.d.ts.map +1 -0
  60. package/dist/browser/ipc.js +254 -0
  61. package/dist/browser/ipc.js.map +1 -0
  62. package/dist/browser/lifecycle.d.ts +31 -0
  63. package/dist/browser/lifecycle.d.ts.map +1 -0
  64. package/dist/browser/lifecycle.js +202 -0
  65. package/dist/browser/lifecycle.js.map +1 -0
  66. package/dist/browser/screenshot.d.ts +19 -0
  67. package/dist/browser/screenshot.d.ts.map +1 -0
  68. package/dist/browser/screenshot.js +44 -0
  69. package/dist/browser/screenshot.js.map +1 -0
  70. package/dist/browser/snapshot.d.ts +48 -0
  71. package/dist/browser/snapshot.d.ts.map +1 -0
  72. package/dist/browser/snapshot.js +490 -0
  73. package/dist/browser/snapshot.js.map +1 -0
  74. package/dist/commands/add-mcp.d.ts +18 -0
  75. package/dist/commands/add-mcp.d.ts.map +1 -0
  76. package/dist/commands/add-mcp.js +196 -0
  77. package/dist/commands/add-mcp.js.map +1 -0
  78. package/dist/commands/browser.d.ts +62 -0
  79. package/dist/commands/browser.d.ts.map +1 -0
  80. package/dist/commands/browser.js +615 -0
  81. package/dist/commands/browser.js.map +1 -0
  82. package/dist/index.js +40 -21
  83. package/dist/index.js.map +1 -1
  84. package/dist/utils/browser-credentials.d.ts +5 -0
  85. package/dist/utils/browser-credentials.d.ts.map +1 -0
  86. package/dist/utils/browser-credentials.js +53 -0
  87. package/dist/utils/browser-credentials.js.map +1 -0
  88. package/dist/utils/mcp-config.d.ts +15 -0
  89. package/dist/utils/mcp-config.d.ts.map +1 -0
  90. package/dist/utils/mcp-config.js +87 -0
  91. package/dist/utils/mcp-config.js.map +1 -0
  92. package/package.json +2 -1
@@ -0,0 +1,138 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ const fs_1 = __importDefault(require("fs"));
7
+ const os_1 = __importDefault(require("os"));
8
+ const path_1 = __importDefault(require("path"));
9
+ const vitest_1 = require("vitest");
10
+ const mocks = vitest_1.vi.hoisted(() => ({
11
+ checkbox: vitest_1.vi.fn(),
12
+ select: vitest_1.vi.fn(),
13
+ confirm: vitest_1.vi.fn(),
14
+ get_api_key: vitest_1.vi.fn(),
15
+ dim: vitest_1.vi.fn((msg) => msg),
16
+ green: vitest_1.vi.fn((msg) => msg),
17
+ red: vitest_1.vi.fn((msg) => msg),
18
+ warn: vitest_1.vi.fn(),
19
+ }));
20
+ vitest_1.vi.mock('@inquirer/prompts', () => ({
21
+ checkbox: mocks.checkbox,
22
+ select: mocks.select,
23
+ confirm: mocks.confirm,
24
+ }));
25
+ vitest_1.vi.mock('../../utils/credentials', () => ({
26
+ get_api_key: mocks.get_api_key,
27
+ }));
28
+ vitest_1.vi.mock('../../utils/output', () => ({
29
+ dim: mocks.dim,
30
+ green: mocks.green,
31
+ red: mocks.red,
32
+ warn: mocks.warn,
33
+ }));
34
+ const add_mcp_1 = require("../../commands/add-mcp");
35
+ const get_expected_entry = (api_key) => ({
36
+ command: 'npx',
37
+ args: ['@brightdata/mcp'],
38
+ env: {
39
+ API_TOKEN: api_key,
40
+ },
41
+ });
42
+ const mk_tmp_dir = () => fs_1.default.mkdtempSync(path_1.default.join(os_1.default.tmpdir(), 'brightdata-add-mcp-'));
43
+ const read_json = (file_path) => JSON.parse(fs_1.default.readFileSync(file_path, 'utf8'));
44
+ (0, vitest_1.describe)('commands/add-mcp', () => {
45
+ let tmp_dir = '';
46
+ let home_dir = '';
47
+ let project_dir = '';
48
+ let codex_home = '';
49
+ let original_cwd = '';
50
+ let stdin_tty;
51
+ let stdout_tty;
52
+ (0, vitest_1.beforeEach)(() => {
53
+ vitest_1.vi.clearAllMocks();
54
+ tmp_dir = mk_tmp_dir();
55
+ home_dir = path_1.default.join(tmp_dir, 'home');
56
+ project_dir = path_1.default.join(tmp_dir, 'project');
57
+ codex_home = path_1.default.join(tmp_dir, 'codex-home');
58
+ original_cwd = process.cwd();
59
+ stdin_tty = Object.getOwnPropertyDescriptor(process.stdin, 'isTTY');
60
+ stdout_tty = Object.getOwnPropertyDescriptor(process.stdout, 'isTTY');
61
+ fs_1.default.mkdirSync(home_dir, { recursive: true });
62
+ fs_1.default.mkdirSync(project_dir, { recursive: true });
63
+ process.chdir(project_dir);
64
+ process.env['CODEX_HOME'] = codex_home;
65
+ vitest_1.vi.spyOn(os_1.default, 'homedir').mockReturnValue(home_dir);
66
+ Object.defineProperty(process.stdin, 'isTTY', {
67
+ value: true,
68
+ configurable: true,
69
+ });
70
+ Object.defineProperty(process.stdout, 'isTTY', {
71
+ value: true,
72
+ configurable: true,
73
+ });
74
+ mocks.get_api_key.mockReturnValue('test_api_key');
75
+ mocks.checkbox.mockResolvedValue(['claude-code', 'cursor', 'codex']);
76
+ mocks.select.mockResolvedValue('project');
77
+ mocks.confirm.mockResolvedValue(true);
78
+ vitest_1.vi.spyOn(process.stderr, 'write').mockImplementation(() => true);
79
+ });
80
+ (0, vitest_1.afterEach)(() => {
81
+ process.chdir(original_cwd);
82
+ if (stdin_tty)
83
+ Object.defineProperty(process.stdin, 'isTTY', stdin_tty);
84
+ if (stdout_tty)
85
+ Object.defineProperty(process.stdout, 'isTTY', stdout_tty);
86
+ delete process.env['CODEX_HOME'];
87
+ vitest_1.vi.restoreAllMocks();
88
+ if (tmp_dir)
89
+ fs_1.default.rmSync(tmp_dir, { recursive: true, force: true });
90
+ });
91
+ (0, vitest_1.it)('writes selected agent configs in the full interactive flow', async () => {
92
+ await (0, add_mcp_1.run_add_mcp)();
93
+ (0, vitest_1.expect)(mocks.checkbox).toHaveBeenCalledOnce();
94
+ (0, vitest_1.expect)(mocks.select).toHaveBeenCalledOnce();
95
+ (0, vitest_1.expect)(mocks.confirm).not.toHaveBeenCalled();
96
+ (0, vitest_1.expect)(read_json(path_1.default.join(project_dir, '.claude', 'settings.json')))
97
+ .toEqual({
98
+ mcpServers: {
99
+ 'bright-data': get_expected_entry('test_api_key'),
100
+ },
101
+ });
102
+ (0, vitest_1.expect)(read_json(path_1.default.join(project_dir, '.cursor', 'mcp.json')))
103
+ .toEqual({
104
+ mcpServers: {
105
+ 'bright-data': get_expected_entry('test_api_key'),
106
+ },
107
+ });
108
+ (0, vitest_1.expect)(read_json(path_1.default.join(codex_home, 'mcp.json')))
109
+ .toEqual({
110
+ mcpServers: {
111
+ 'bright-data': get_expected_entry('test_api_key'),
112
+ },
113
+ });
114
+ (0, vitest_1.expect)(fs_1.default.existsSync(path_1.default.join(home_dir, '.claude.json'))).toBe(false);
115
+ (0, vitest_1.expect)(fs_1.default.existsSync(path_1.default.join(home_dir, '.cursor', 'mcp.json')))
116
+ .toBe(false);
117
+ });
118
+ (0, vitest_1.it)('warns and overwrites invalid JSON after confirmation', async () => {
119
+ const cursor_config = path_1.default.join(project_dir, '.cursor', 'mcp.json');
120
+ fs_1.default.mkdirSync(path_1.default.dirname(cursor_config), { recursive: true });
121
+ fs_1.default.writeFileSync(cursor_config, '{invalid-json');
122
+ mocks.checkbox.mockResolvedValue(['cursor']);
123
+ mocks.select.mockResolvedValue('project');
124
+ mocks.confirm.mockResolvedValue(true);
125
+ await (0, add_mcp_1.run_add_mcp)();
126
+ (0, vitest_1.expect)(mocks.warn).toHaveBeenCalledWith(vitest_1.expect.stringContaining('Invalid JSON in ' + cursor_config));
127
+ (0, vitest_1.expect)(mocks.confirm).toHaveBeenCalledWith({
128
+ message: 'Overwrite invalid config at ' + cursor_config + '?',
129
+ default: false,
130
+ });
131
+ (0, vitest_1.expect)(read_json(cursor_config)).toEqual({
132
+ mcpServers: {
133
+ 'bright-data': get_expected_entry('test_api_key'),
134
+ },
135
+ });
136
+ });
137
+ });
138
+ //# sourceMappingURL=add-mcp.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"add-mcp.test.js","sourceRoot":"","sources":["../../../src/__tests__/commands/add-mcp.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=browser.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"browser.test.d.ts","sourceRoot":"","sources":["../../../src/__tests__/commands/browser.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,431 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const vitest_1 = require("vitest");
4
+ const mocks = vitest_1.vi.hoisted(() => ({
5
+ DEFAULT_IPC_TIMEOUT_MS: 30_000,
6
+ DEFAULT_SESSION_NAME: 'default',
7
+ ensure_authenticated: vitest_1.vi.fn(),
8
+ ensure_browser_zone: vitest_1.vi.fn(),
9
+ ensure_daemon: vitest_1.vi.fn(),
10
+ existsSync: vitest_1.vi.fn(),
11
+ fail: vitest_1.vi.fn((msg) => { throw new Error(`fail:${msg}`); }),
12
+ get_cdp_endpoint: vitest_1.vi.fn(),
13
+ get_daemon_base_dir: vitest_1.vi.fn(),
14
+ info: vitest_1.vi.fn(),
15
+ is_daemon_alive: vitest_1.vi.fn(),
16
+ normalize_session_name: vitest_1.vi.fn(),
17
+ print: vitest_1.vi.fn(),
18
+ readdirSync: vitest_1.vi.fn(),
19
+ send_command: vitest_1.vi.fn(),
20
+ start: vitest_1.vi.fn(),
21
+ stop: vitest_1.vi.fn(),
22
+ success: vitest_1.vi.fn(),
23
+ }));
24
+ vitest_1.vi.mock('fs', () => ({
25
+ default: {
26
+ existsSync: mocks.existsSync,
27
+ readdirSync: mocks.readdirSync,
28
+ },
29
+ }));
30
+ vitest_1.vi.mock('../../browser/daemon', () => ({
31
+ DEFAULT_DAEMON_IDLE_TIMEOUT_MS: 600_000,
32
+ }));
33
+ vitest_1.vi.mock('../../browser/ipc', () => ({
34
+ DEFAULT_IPC_TIMEOUT_MS: mocks.DEFAULT_IPC_TIMEOUT_MS,
35
+ DEFAULT_SESSION_NAME: mocks.DEFAULT_SESSION_NAME,
36
+ get_daemon_base_dir: mocks.get_daemon_base_dir,
37
+ normalize_session_name: mocks.normalize_session_name,
38
+ }));
39
+ vitest_1.vi.mock('../../browser/lifecycle', () => ({
40
+ ensure_daemon: mocks.ensure_daemon,
41
+ is_daemon_alive: mocks.is_daemon_alive,
42
+ send_command: mocks.send_command,
43
+ }));
44
+ vitest_1.vi.mock('../../utils/auth', () => ({
45
+ ensure_authenticated: mocks.ensure_authenticated,
46
+ }));
47
+ vitest_1.vi.mock('../../utils/browser-credentials', () => ({
48
+ DEFAULT_BROWSER_ZONE: 'cli_browser',
49
+ ensure_browser_zone: mocks.ensure_browser_zone,
50
+ get_cdp_endpoint: mocks.get_cdp_endpoint,
51
+ }));
52
+ vitest_1.vi.mock('../../utils/output', () => ({
53
+ fail: mocks.fail,
54
+ info: mocks.info,
55
+ print: mocks.print,
56
+ success: mocks.success,
57
+ }));
58
+ vitest_1.vi.mock('../../utils/spinner', () => ({
59
+ start: mocks.start,
60
+ }));
61
+ const browser_1 = require("../../commands/browser");
62
+ (0, vitest_1.describe)('commands/browser', () => {
63
+ (0, vitest_1.beforeEach)(() => {
64
+ vitest_1.vi.clearAllMocks();
65
+ mocks.ensure_authenticated.mockReturnValue('api_key');
66
+ mocks.get_cdp_endpoint.mockResolvedValue('wss://browser.example');
67
+ mocks.get_daemon_base_dir.mockReturnValue('/tmp/brightdata-cli');
68
+ mocks.is_daemon_alive.mockResolvedValue(true);
69
+ mocks.normalize_session_name.mockImplementation((name) => (name ?? mocks.DEFAULT_SESSION_NAME).trim());
70
+ mocks.send_command.mockResolvedValue({ success: true, data: {} });
71
+ mocks.start.mockReturnValue({ stop: mocks.stop });
72
+ });
73
+ (0, vitest_1.it)('opens a URL by resolving credentials, ensuring the daemon, and navigating', async () => {
74
+ mocks.send_command.mockResolvedValue({
75
+ success: true,
76
+ data: {
77
+ status: 200,
78
+ title: 'Example Domain',
79
+ url: 'https://example.com',
80
+ },
81
+ });
82
+ await (0, browser_1.handle_browser_open)('https://example.com', {});
83
+ (0, vitest_1.expect)(mocks.ensure_authenticated).toHaveBeenCalledWith(undefined);
84
+ (0, vitest_1.expect)(mocks.ensure_browser_zone).toHaveBeenCalledWith('api_key', 'cli_browser');
85
+ (0, vitest_1.expect)(mocks.get_cdp_endpoint).toHaveBeenCalledWith('api_key', 'cli_browser', undefined);
86
+ (0, vitest_1.expect)(mocks.ensure_daemon).toHaveBeenCalledWith('default', {
87
+ cdp_endpoint: 'wss://browser.example',
88
+ daemon_dir: undefined,
89
+ idle_timeout_ms: undefined,
90
+ });
91
+ (0, vitest_1.expect)(mocks.send_command).toHaveBeenCalledWith('default', vitest_1.expect.objectContaining({
92
+ action: 'navigate',
93
+ params: { url: 'https://example.com' },
94
+ }), { daemon_dir: undefined, timeout_ms: undefined });
95
+ (0, vitest_1.expect)(mocks.stop).toHaveBeenCalledTimes(1);
96
+ (0, vitest_1.expect)(mocks.success).toHaveBeenCalledWith('Navigated to https://example.com');
97
+ (0, vitest_1.expect)(mocks.info).toHaveBeenNthCalledWith(1, 'Title: Example Domain');
98
+ (0, vitest_1.expect)(mocks.info).toHaveBeenNthCalledWith(2, 'URL: https://example.com');
99
+ });
100
+ (0, vitest_1.it)('reloads the current page for an active browser session', async () => {
101
+ mocks.send_command.mockResolvedValue({
102
+ success: true,
103
+ data: {
104
+ status: 200,
105
+ title: 'Reloaded Example',
106
+ url: 'https://example.com',
107
+ },
108
+ });
109
+ await (0, browser_1.handle_browser_reload)({ session: 'shop' });
110
+ (0, vitest_1.expect)(mocks.send_command).toHaveBeenCalledWith('shop', vitest_1.expect.objectContaining({ action: 'reload' }), { daemon_dir: undefined, timeout_ms: undefined });
111
+ (0, vitest_1.expect)(mocks.success).toHaveBeenCalledWith('Reloaded page.');
112
+ (0, vitest_1.expect)(mocks.info).toHaveBeenNthCalledWith(1, 'Title: Reloaded Example');
113
+ (0, vitest_1.expect)(mocks.info).toHaveBeenNthCalledWith(2, 'URL: https://example.com');
114
+ });
115
+ (0, vitest_1.it)('prints cookies for an active browser session', async () => {
116
+ const cookies = [{ name: 'session', value: 'abc' }];
117
+ mocks.send_command.mockResolvedValue({
118
+ success: true,
119
+ data: { cookies },
120
+ });
121
+ await (0, browser_1.handle_browser_cookies)({ session: 'shop', pretty: true });
122
+ (0, vitest_1.expect)(mocks.send_command).toHaveBeenCalledWith('shop', vitest_1.expect.objectContaining({ action: 'cookies' }), { daemon_dir: undefined, timeout_ms: undefined });
123
+ (0, vitest_1.expect)(mocks.print).toHaveBeenCalledWith(cookies, { json: undefined, output: undefined, pretty: true });
124
+ });
125
+ (0, vitest_1.it)('prints snapshot text for an active browser session with extended snapshot params', async () => {
126
+ mocks.send_command.mockResolvedValue({
127
+ success: true,
128
+ data: {
129
+ compact: true,
130
+ depth: 1,
131
+ interactive: false,
132
+ ref_count: 1,
133
+ selector: '#checkout',
134
+ snapshot: 'Page: Example Domain\nURL: https://example.com\n\n- link "Pricing" [ref=e1]',
135
+ title: 'Example Domain',
136
+ url: 'https://example.com',
137
+ },
138
+ });
139
+ await (0, browser_1.handle_browser_snapshot)({
140
+ compact: true,
141
+ depth: '1',
142
+ selector: '#checkout',
143
+ session: 'shop',
144
+ });
145
+ (0, vitest_1.expect)(mocks.send_command).toHaveBeenCalledWith('shop', vitest_1.expect.objectContaining({
146
+ action: 'snapshot',
147
+ params: {
148
+ compact: true,
149
+ depth: 1,
150
+ interactive: false,
151
+ selector: '#checkout',
152
+ },
153
+ }), { daemon_dir: undefined, timeout_ms: undefined });
154
+ (0, vitest_1.expect)(mocks.print).toHaveBeenCalledWith('Page: Example Domain\nURL: https://example.com\n\n- link "Pricing" [ref=e1]', { output: undefined });
155
+ });
156
+ (0, vitest_1.it)('captures a screenshot for an active browser session', async () => {
157
+ mocks.send_command.mockResolvedValue({
158
+ success: true,
159
+ data: {
160
+ full_page: true,
161
+ mime_type: 'image/png',
162
+ path: '/tmp/browser-shot.png',
163
+ },
164
+ });
165
+ await (0, browser_1.handle_browser_screenshot)('/tmp/browser-shot.png', {
166
+ fullPage: true,
167
+ session: 'shop',
168
+ });
169
+ (0, vitest_1.expect)(mocks.send_command).toHaveBeenCalledWith('shop', vitest_1.expect.objectContaining({
170
+ action: 'screenshot',
171
+ params: {
172
+ base64: false,
173
+ full_page: true,
174
+ path: '/tmp/browser-shot.png',
175
+ },
176
+ }), { daemon_dir: undefined, timeout_ms: undefined });
177
+ (0, vitest_1.expect)(mocks.print).toHaveBeenCalledWith('/tmp/browser-shot.png', { output: undefined });
178
+ });
179
+ (0, vitest_1.it)('rejects invalid snapshot depth before sending the command', async () => {
180
+ await (0, vitest_1.expect)((0, browser_1.handle_browser_snapshot)({ depth: 'abc', session: 'shop' })).rejects.toThrow('fail:Snapshot depth must be a non-negative integer.');
181
+ (0, vitest_1.expect)(mocks.send_command).not.toHaveBeenCalled();
182
+ });
183
+ (0, vitest_1.it)('fails status when the session is not active', async () => {
184
+ mocks.is_daemon_alive.mockResolvedValue(false);
185
+ await (0, vitest_1.expect)((0, browser_1.handle_browser_status)({ session: 'shop' })).rejects.toThrow('fail:No active browser session "shop".');
186
+ (0, vitest_1.expect)(mocks.send_command).not.toHaveBeenCalled();
187
+ });
188
+ (0, vitest_1.it)('collects browser session names from daemon files', () => {
189
+ mocks.existsSync.mockReturnValue(true);
190
+ mocks.readdirSync.mockReturnValue([
191
+ 'shop.sock',
192
+ 'shop.pid',
193
+ 'stale.pid',
194
+ 'notes.txt',
195
+ ]);
196
+ (0, vitest_1.expect)((0, browser_1.get_browser_session_names)({ daemonDir: '/tmp/test' }))
197
+ .toEqual(['shop', 'stale']);
198
+ (0, vitest_1.expect)(mocks.get_daemon_base_dir).toHaveBeenCalledWith({ daemon_dir: '/tmp/test' });
199
+ });
200
+ (0, vitest_1.it)('lists only active browser sessions', async () => {
201
+ mocks.existsSync.mockReturnValue(true);
202
+ mocks.readdirSync.mockReturnValue([
203
+ 'shop.sock',
204
+ 'shop.pid',
205
+ 'stale.pid',
206
+ ]);
207
+ mocks.is_daemon_alive.mockImplementation(async (name) => name == 'shop');
208
+ mocks.send_command.mockResolvedValue({
209
+ success: true,
210
+ data: { session_name: 'shop', connected: true },
211
+ });
212
+ await (0, browser_1.handle_browser_sessions)({ pretty: true });
213
+ (0, vitest_1.expect)(mocks.send_command).toHaveBeenCalledWith('shop', vitest_1.expect.objectContaining({ action: 'status' }), { daemon_dir: undefined, timeout_ms: undefined });
214
+ (0, vitest_1.expect)(mocks.print).toHaveBeenCalledWith([{ session_name: 'shop', connected: true }], { json: undefined, output: undefined, pretty: true });
215
+ });
216
+ (0, vitest_1.it)('closes all active browser sessions', async () => {
217
+ mocks.existsSync.mockReturnValue(true);
218
+ mocks.readdirSync.mockReturnValue([
219
+ 'shop.pid',
220
+ 'cart.sock',
221
+ 'stale.pid',
222
+ ]);
223
+ mocks.is_daemon_alive.mockImplementation(async (name) => name != 'stale');
224
+ mocks.send_command.mockResolvedValue({ success: true, data: { closed: true } });
225
+ await (0, browser_1.handle_browser_close)({ all: true });
226
+ (0, vitest_1.expect)(mocks.send_command).toHaveBeenCalledTimes(2);
227
+ (0, vitest_1.expect)(mocks.send_command).toHaveBeenNthCalledWith(1, 'cart', vitest_1.expect.objectContaining({ action: 'close' }), { daemon_dir: undefined, timeout_ms: undefined });
228
+ (0, vitest_1.expect)(mocks.send_command).toHaveBeenNthCalledWith(2, 'shop', vitest_1.expect.objectContaining({ action: 'close' }), { daemon_dir: undefined, timeout_ms: undefined });
229
+ (0, vitest_1.expect)(mocks.success).toHaveBeenCalledWith('Closed 2 browser sessions.');
230
+ });
231
+ (0, vitest_1.it)('parses browser-group flags for open and forwards them to the handler flow', async () => {
232
+ mocks.send_command.mockResolvedValue({
233
+ success: true,
234
+ data: {
235
+ status: 200,
236
+ title: 'Example Domain',
237
+ url: 'https://example.com',
238
+ },
239
+ });
240
+ const command = (0, browser_1.create_browser_command)();
241
+ command.exitOverride();
242
+ await command.parseAsync([
243
+ 'open',
244
+ 'https://example.com',
245
+ '--session',
246
+ 'shop',
247
+ '--timeout',
248
+ '1234',
249
+ '--country',
250
+ 'us',
251
+ '--zone',
252
+ 'browser_us',
253
+ '--idle-timeout',
254
+ '4567',
255
+ '--json',
256
+ ], { from: 'user' });
257
+ (0, vitest_1.expect)(mocks.ensure_browser_zone).toHaveBeenCalledWith('api_key', 'browser_us');
258
+ (0, vitest_1.expect)(mocks.get_cdp_endpoint).toHaveBeenCalledWith('api_key', 'browser_us', 'us');
259
+ (0, vitest_1.expect)(mocks.ensure_daemon).toHaveBeenCalledWith('shop', {
260
+ cdp_endpoint: 'wss://browser.example',
261
+ daemon_dir: undefined,
262
+ idle_timeout_ms: 4567,
263
+ });
264
+ (0, vitest_1.expect)(mocks.send_command).toHaveBeenCalledWith('shop', vitest_1.expect.objectContaining({
265
+ action: 'navigate',
266
+ params: { url: 'https://example.com' },
267
+ }), { daemon_dir: undefined, timeout_ms: 1234 });
268
+ (0, vitest_1.expect)(mocks.print).toHaveBeenCalledWith({
269
+ status: 200,
270
+ title: 'Example Domain',
271
+ url: 'https://example.com',
272
+ }, { json: true, output: undefined, pretty: undefined });
273
+ (0, vitest_1.expect)(mocks.success).not.toHaveBeenCalled();
274
+ });
275
+ (0, vitest_1.it)('parses the back subcommand and sends the browser action', async () => {
276
+ mocks.send_command.mockResolvedValue({
277
+ success: true,
278
+ data: {
279
+ status: 200,
280
+ title: 'Back Page',
281
+ url: 'https://example.com/back',
282
+ },
283
+ });
284
+ const command = (0, browser_1.create_browser_command)();
285
+ command.exitOverride();
286
+ await command.parseAsync([
287
+ 'back',
288
+ '--session',
289
+ 'shop',
290
+ '--json',
291
+ ], { from: 'user' });
292
+ (0, vitest_1.expect)(mocks.send_command).toHaveBeenCalledWith('shop', vitest_1.expect.objectContaining({ action: 'back' }), { daemon_dir: undefined, timeout_ms: undefined });
293
+ (0, vitest_1.expect)(mocks.print).toHaveBeenCalledWith({
294
+ status: 200,
295
+ title: 'Back Page',
296
+ url: 'https://example.com/back',
297
+ }, { json: true, output: undefined, pretty: undefined });
298
+ });
299
+ (0, vitest_1.it)('parses snapshot flags and forwards the full snapshot param set', async () => {
300
+ mocks.send_command.mockResolvedValue({
301
+ success: true,
302
+ data: {
303
+ compact: false,
304
+ depth: 2,
305
+ interactive: true,
306
+ ref_count: 1,
307
+ selector: '#checkout',
308
+ snapshot: 'Page: Example Domain\nURL: https://example.com\n\n- link "Pricing" [ref=e1]',
309
+ title: 'Example Domain',
310
+ url: 'https://example.com',
311
+ },
312
+ });
313
+ const command = (0, browser_1.create_browser_command)();
314
+ command.exitOverride();
315
+ await command.parseAsync([
316
+ 'snapshot',
317
+ '--session',
318
+ 'shop',
319
+ '--interactive',
320
+ '--depth',
321
+ '2',
322
+ '--selector',
323
+ '#checkout',
324
+ '--json',
325
+ ], { from: 'user' });
326
+ (0, vitest_1.expect)(mocks.send_command).toHaveBeenCalledWith('shop', vitest_1.expect.objectContaining({
327
+ action: 'snapshot',
328
+ params: {
329
+ compact: false,
330
+ depth: 2,
331
+ interactive: true,
332
+ selector: '#checkout',
333
+ },
334
+ }), { daemon_dir: undefined, timeout_ms: undefined });
335
+ (0, vitest_1.expect)(mocks.print).toHaveBeenCalledWith({
336
+ compact: false,
337
+ depth: 2,
338
+ interactive: true,
339
+ ref_count: 1,
340
+ selector: '#checkout',
341
+ snapshot: 'Page: Example Domain\nURL: https://example.com\n\n- link "Pricing" [ref=e1]',
342
+ title: 'Example Domain',
343
+ url: 'https://example.com',
344
+ }, { json: true, output: undefined, pretty: undefined });
345
+ });
346
+ (0, vitest_1.it)('parses screenshot flags and forwards the screenshot params', async () => {
347
+ mocks.send_command.mockResolvedValue({
348
+ success: true,
349
+ data: {
350
+ base64: 'aW1hZ2U=',
351
+ full_page: true,
352
+ mime_type: 'image/png',
353
+ path: '/tmp/browser-shot.png',
354
+ },
355
+ });
356
+ const command = (0, browser_1.create_browser_command)();
357
+ command.exitOverride();
358
+ await command.parseAsync([
359
+ 'screenshot',
360
+ '/tmp/browser-shot.png',
361
+ '--session',
362
+ 'shop',
363
+ '--full-page',
364
+ '--base64',
365
+ '--json',
366
+ ], { from: 'user' });
367
+ (0, vitest_1.expect)(mocks.send_command).toHaveBeenCalledWith('shop', vitest_1.expect.objectContaining({
368
+ action: 'screenshot',
369
+ params: {
370
+ base64: true,
371
+ full_page: true,
372
+ path: '/tmp/browser-shot.png',
373
+ },
374
+ }), { daemon_dir: undefined, timeout_ms: undefined });
375
+ (0, vitest_1.expect)(mocks.print).toHaveBeenCalledWith({
376
+ base64: 'aW1hZ2U=',
377
+ full_page: true,
378
+ mime_type: 'image/png',
379
+ path: '/tmp/browser-shot.png',
380
+ }, { json: true, output: undefined, pretty: undefined });
381
+ });
382
+ (0, vitest_1.it)('rejects open-only flags on status through browser-group parsing', async () => {
383
+ const command = (0, browser_1.create_browser_command)();
384
+ command.exitOverride();
385
+ await (0, vitest_1.expect)(command.parseAsync([
386
+ 'status',
387
+ '--country',
388
+ 'us',
389
+ ], { from: 'user' })).rejects.toThrow('fail:--country is not supported by "brightdata browser status".');
390
+ (0, vitest_1.expect)(mocks.send_command).not.toHaveBeenCalled();
391
+ });
392
+ (0, vitest_1.it)('rejects compact mode outside the snapshot command', async () => {
393
+ const command = (0, browser_1.create_browser_command)();
394
+ command.exitOverride();
395
+ await (0, vitest_1.expect)(command.parseAsync([
396
+ 'status',
397
+ '--compact',
398
+ ], { from: 'user' })).rejects.toThrow('fail:--compact is not supported by "brightdata browser status".');
399
+ (0, vitest_1.expect)(mocks.send_command).not.toHaveBeenCalled();
400
+ });
401
+ (0, vitest_1.it)('rejects selector mode outside the snapshot command', async () => {
402
+ const command = (0, browser_1.create_browser_command)();
403
+ command.exitOverride();
404
+ await (0, vitest_1.expect)(command.parseAsync([
405
+ 'status',
406
+ '--selector',
407
+ '#checkout',
408
+ ], { from: 'user' })).rejects.toThrow('fail:--selector is not supported by "brightdata browser status".');
409
+ (0, vitest_1.expect)(mocks.send_command).not.toHaveBeenCalled();
410
+ });
411
+ (0, vitest_1.it)('rejects screenshot-only flags outside the screenshot command', async () => {
412
+ const command = (0, browser_1.create_browser_command)();
413
+ command.exitOverride();
414
+ await (0, vitest_1.expect)(command.parseAsync([
415
+ 'status',
416
+ '--full-page',
417
+ ], { from: 'user' })).rejects.toThrow('fail:--full-page is not supported by "brightdata browser status".');
418
+ (0, vitest_1.expect)(mocks.send_command).not.toHaveBeenCalled();
419
+ });
420
+ (0, vitest_1.it)('rejects not-yet-implemented global flags on open', async () => {
421
+ const command = (0, browser_1.create_browser_command)();
422
+ command.exitOverride();
423
+ await (0, vitest_1.expect)(command.parseAsync([
424
+ 'open',
425
+ 'https://example.com',
426
+ '--headed',
427
+ ], { from: 'user' })).rejects.toThrow('fail:--headed is not supported by "brightdata browser open".');
428
+ (0, vitest_1.expect)(mocks.ensure_authenticated).not.toHaveBeenCalled();
429
+ });
430
+ });
431
+ //# sourceMappingURL=browser.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"browser.test.js","sourceRoot":"","sources":["../../../src/__tests__/commands/browser.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=browser-credentials.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"browser-credentials.test.d.ts","sourceRoot":"","sources":["../../../src/__tests__/utils/browser-credentials.test.ts"],"names":[],"mappings":""}