@iflow-mcp/roxybrowserlabs-roxybrowser-mcp-server 1.0.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.
- package/README.md +216 -0
- package/lib/index.d.ts +9 -0
- package/lib/index.d.ts.map +1 -0
- package/lib/index.js +180 -0
- package/lib/index.js.map +1 -0
- package/lib/modules/account.d.ts +491 -0
- package/lib/modules/account.d.ts.map +1 -0
- package/lib/modules/account.js +442 -0
- package/lib/modules/account.js.map +1 -0
- package/lib/modules/browser.d.ts +3029 -0
- package/lib/modules/browser.d.ts.map +1 -0
- package/lib/modules/browser.js +1502 -0
- package/lib/modules/browser.js.map +1 -0
- package/lib/modules/other.d.ts +102 -0
- package/lib/modules/other.d.ts.map +1 -0
- package/lib/modules/other.js +194 -0
- package/lib/modules/other.js.map +1 -0
- package/lib/modules/proxy.d.ts +576 -0
- package/lib/modules/proxy.d.ts.map +1 -0
- package/lib/modules/proxy.js +724 -0
- package/lib/modules/proxy.js.map +1 -0
- package/lib/types.d.ts +1195 -0
- package/lib/types.d.ts.map +1 -0
- package/lib/types.js +366 -0
- package/lib/types.js.map +1 -0
- package/lib/utils/index.d.ts +24 -0
- package/lib/utils/index.d.ts.map +1 -0
- package/lib/utils/index.js +45 -0
- package/lib/utils/index.js.map +1 -0
- package/package.json +1 -0
package/README.md
ADDED
|
@@ -0,0 +1,216 @@
|
|
|
1
|
+
# RoxyBrowser MCP Server
|
|
2
|
+
|
|
3
|
+
[English](README.md) | [δΈζ](README_CN.md)
|
|
4
|
+
|
|
5
|
+
A Model Context Protocol (MCP) server for [RoxyBrowser](https://www.roxybrowser.com/) that provides AI assistants with the ability to manage browser instances and obtain Chrome DevTools Protocol (CDP) WebSocket endpoints for automation.
|
|
6
|
+
|
|
7
|
+
## Features
|
|
8
|
+
|
|
9
|
+
- π **Browser Management**: Open and close RoxyBrowser instances programmatically
|
|
10
|
+
- π **CDP Integration**: Get WebSocket endpoints for Chrome DevTools Protocol automation
|
|
11
|
+
- π€ **AI-Friendly**: Seamlessly integrates with AI assistants through MCP
|
|
12
|
+
- π― **Playwright Ready**: Works with [RoxyBrowser Playwright MCP](https://github.com/roxybrowserlabs/roxybrowser-playwright-mcp) (RoxyBrowser's customized Playwright MCP)
|
|
13
|
+
- π **Workspace Support**: Manage browsers across different workspaces and projects
|
|
14
|
+
- π οΈ **Browser Creation**: Create browsers (single or batch) with full configuration
|
|
15
|
+
- π **Proxy Management**: List, create, detect, and manage proxy configurations
|
|
16
|
+
- π€ **Account Management**: Manage platform accounts and credentials in workspaces
|
|
17
|
+
- π§ **Advanced Configuration**: Fingerprints, cache clear, random fingerprint, and more
|
|
18
|
+
- π₯ **Health Check**: Server and workspace connectivity diagnostics
|
|
19
|
+
|
|
20
|
+
## Quick Start
|
|
21
|
+
|
|
22
|
+
### Prerequisites
|
|
23
|
+
|
|
24
|
+
1. **RoxyBrowser** installed and running
|
|
25
|
+
2. **RoxyBrowser API** enabled in settings:
|
|
26
|
+
- Open RoxyBrowser β API
|
|
27
|
+
- Set "API Status" to "Enable"
|
|
28
|
+
- Copy your API Key
|
|
29
|
+
- Note the API port (default: 50000)
|
|
30
|
+
|
|
31
|
+
### MCP Client Configuration
|
|
32
|
+
|
|
33
|
+
Add both RoxyBrowser OpenAPI and RoxyBrowser Playwright MCP to your MCP client configuration:
|
|
34
|
+
|
|
35
|
+
**Claude Desktop / VS Code / Cursor:**
|
|
36
|
+
```json
|
|
37
|
+
{
|
|
38
|
+
"mcpServers": {
|
|
39
|
+
"roxybrowser-openapi": {
|
|
40
|
+
"command": "npx",
|
|
41
|
+
"args": ["@roxybrowser/openapi@latest"],
|
|
42
|
+
"env": {
|
|
43
|
+
"ROXY_API_KEY": "YOUR API KEY",
|
|
44
|
+
"ROXY_API_HOST": "http://127.0.0.1:50000"
|
|
45
|
+
}
|
|
46
|
+
},
|
|
47
|
+
"roxybrowser-playwright-mcp": {
|
|
48
|
+
"command": "npx",
|
|
49
|
+
"args": ["@roxybrowser/playwright-mcp@latest"]
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
```
|
|
54
|
+
|
|
55
|
+
**Note:** Replace `YOUR API KEY` and `YOUR API HOST` with your actual RoxyBrowser credentials.
|
|
56
|
+
|
|
57
|
+
## Available Tools
|
|
58
|
+
|
|
59
|
+
### Workspace
|
|
60
|
+
- `roxy_list_workspaces` - List all available workspaces and their projects
|
|
61
|
+
|
|
62
|
+
### Browser
|
|
63
|
+
- `roxy_list_browsers` - List browsers in a workspace/project with filtering
|
|
64
|
+
- `roxy_create_browser` - Create a browser with full configuration
|
|
65
|
+
- `roxy_batch_create_browsers` - Create multiple browsers in batch
|
|
66
|
+
- `roxy_open_browsers` - Open browsers and get CDP WebSocket endpoints for automation
|
|
67
|
+
- `roxy_update_browser` - Update existing browser configuration
|
|
68
|
+
- `roxy_close_browsers` - Close running browsers (does NOT free quota)
|
|
69
|
+
- `roxy_delete_browsers` - Delete browser profiles permanently (frees quota)
|
|
70
|
+
- `roxy_get_browser_detail` - Get detailed browser information and configuration
|
|
71
|
+
- `roxy_get_connection_info` - Get CDP endpoints and PIDs for opened browsers
|
|
72
|
+
- `roxy_clear_local_cache` - Clear local browser cache
|
|
73
|
+
- `roxy_clear_server_cache` - Clear server-side browser cache
|
|
74
|
+
- `roxy_random_fingerprint` - Randomize browser fingerprint
|
|
75
|
+
- `roxy_list_labels` - Get browser labels/tags for organization
|
|
76
|
+
|
|
77
|
+
### Proxy
|
|
78
|
+
- `roxy_list_proxies` - List proxy configurations in a workspace
|
|
79
|
+
- `roxy_store_proxies` - Get list of proxies you've purchased (store)
|
|
80
|
+
- `roxy_create_proxy` - Create a proxy configuration
|
|
81
|
+
- `roxy_batch_create_proxies` - Create multiple proxies in batch
|
|
82
|
+
- `roxy_detect_proxy` - Detect/test proxy availability
|
|
83
|
+
- `roxy_modify_proxy` - Modify existing proxy configuration
|
|
84
|
+
- `roxy_delete_proxies` - Delete proxy configurations
|
|
85
|
+
|
|
86
|
+
### Account
|
|
87
|
+
- `roxy_list_accounts` - List platform accounts and credentials in a workspace
|
|
88
|
+
- `roxy_create_account` - Create a platform account
|
|
89
|
+
- `roxy_batch_create_accounts` - Create multiple accounts in batch
|
|
90
|
+
- `roxy_modify_account` - Modify existing account
|
|
91
|
+
- `roxy_delete_accounts` - Delete accounts
|
|
92
|
+
|
|
93
|
+
### Utilities
|
|
94
|
+
- `roxy_health_check` - Server health check and workspace/browser connectivity diagnostics
|
|
95
|
+
|
|
96
|
+
## Complete Workflow Examples
|
|
97
|
+
|
|
98
|
+
### Example 1: Quick Browser Automation Setup
|
|
99
|
+
|
|
100
|
+
```
|
|
101
|
+
1. AI: "Create a browser in workspace 1 with name 'Test Browser'"
|
|
102
|
+
β Uses roxy_create_browser
|
|
103
|
+
β Returns browser ID ready for use
|
|
104
|
+
|
|
105
|
+
2. AI: "Open the browser I just created"
|
|
106
|
+
β Uses roxy_open_browsers with the returned ID
|
|
107
|
+
β Returns CDP WebSocket URL like: ws://127.0.0.1:52314/devtools/browser/xxx
|
|
108
|
+
|
|
109
|
+
3. AI: "Navigate to gmail.com, login, and send emails"
|
|
110
|
+
β Uses RoxyBrowser Playwright MCP tools (browser_navigate, browser_type, browser_click, etc.)
|
|
111
|
+
β RoxyBrowser Playwright MCP connects to the opened browser via CDP endpoint
|
|
112
|
+
|
|
113
|
+
4. AI: "Close the browser when done"
|
|
114
|
+
β Uses roxy_close_browsers
|
|
115
|
+
```
|
|
116
|
+
|
|
117
|
+
### Example 2: Browser with Proxy
|
|
118
|
+
|
|
119
|
+
```
|
|
120
|
+
1. AI: "Detect my proxy before creating browsers"
|
|
121
|
+
β Uses roxy_detect_proxy
|
|
122
|
+
β Confirms proxy is available
|
|
123
|
+
|
|
124
|
+
2. AI: "Create a browser with SOCKS5 proxy and 1920x1080 in workspace 2"
|
|
125
|
+
β Uses roxy_create_browser with proxy configuration
|
|
126
|
+
β Returns configured browser ID
|
|
127
|
+
|
|
128
|
+
3. AI: "Open the browser and start automation"
|
|
129
|
+
β Uses roxy_open_browsers β gets CDP endpoint
|
|
130
|
+
β RoxyBrowser Playwright MCP connects and begins automation
|
|
131
|
+
```
|
|
132
|
+
|
|
133
|
+
## Integration with Playwright MCP
|
|
134
|
+
|
|
135
|
+
RoxyBrowser MCP is designed to work seamlessly with [RoxyBrowser Playwright MCP](https://github.com/roxybrowserlabs/roxybrowser-playwright-mcp), our customized Playwright MCP server built specifically for RoxyBrowser compatibility.
|
|
136
|
+
|
|
137
|
+
**RoxyBrowser Playwright MCP** is based on [Microsoft's Playwright MCP](https://github.com/microsoft/playwright-mcp) with enhancements for RoxyBrowser's fingerprint browser features.
|
|
138
|
+
|
|
139
|
+
### Workflow
|
|
140
|
+
|
|
141
|
+
1. Use RoxyBrowser OpenAPI MCP to create and open browsers
|
|
142
|
+
2. Get CDP WebSocket endpoints from opened browsers
|
|
143
|
+
3. Use RoxyBrowser Playwright MCP to automate browser tasks with full Playwright capabilities
|
|
144
|
+
|
|
145
|
+
Both servers work together seamlessly when configured in your MCP client (see configuration above).
|
|
146
|
+
|
|
147
|
+
## Development
|
|
148
|
+
|
|
149
|
+
```bash
|
|
150
|
+
# Development mode with auto-rebuild
|
|
151
|
+
npm run dev
|
|
152
|
+
|
|
153
|
+
# Build for production
|
|
154
|
+
npm run build
|
|
155
|
+
```
|
|
156
|
+
|
|
157
|
+
## API Reference
|
|
158
|
+
|
|
159
|
+
### Environment Variables
|
|
160
|
+
|
|
161
|
+
| Variable | Required | Default | Description |
|
|
162
|
+
|----------|----------|---------|-------------|
|
|
163
|
+
| `ROXY_API_KEY` | β
Yes | - | API key from RoxyBrowser settings |
|
|
164
|
+
| `ROXY_API_HOST` | β
Yes | `http://127.0.0.1:50000` | RoxyBrowser API endpoint |
|
|
165
|
+
| `ROXY_TIMEOUT` | No | `30000` | Request timeout in milliseconds |
|
|
166
|
+
|
|
167
|
+
## Troubleshooting
|
|
168
|
+
|
|
169
|
+
### Connection Issues
|
|
170
|
+
|
|
171
|
+
**Error: "Failed to connect to RoxyBrowser API"**
|
|
172
|
+
|
|
173
|
+
Check:
|
|
174
|
+
1. RoxyBrowser is running
|
|
175
|
+
2. API is enabled: RoxyBrowser β API β API Status = Enable
|
|
176
|
+
3. Correct API key: Copy from RoxyBrowser β API β API Key
|
|
177
|
+
4. Correct port: Check RoxyBrowser β API β Port Settings (default: 50000)
|
|
178
|
+
5. No firewall blocking http://127.0.0.1:50000
|
|
179
|
+
|
|
180
|
+
### Authentication Issues
|
|
181
|
+
|
|
182
|
+
**Error: "Configuration Error: API key is required"**
|
|
183
|
+
|
|
184
|
+
Set the environment variable:
|
|
185
|
+
```bash
|
|
186
|
+
export ROXY_API_KEY="your_actual_api_key_from_roxybrowser"
|
|
187
|
+
```
|
|
188
|
+
|
|
189
|
+
### Browser Opening Issues
|
|
190
|
+
|
|
191
|
+
**Error: "Insufficient profiles quota" (Code 101 or 409)**
|
|
192
|
+
|
|
193
|
+
Solutions:
|
|
194
|
+
- Purchase more profiles in RoxyBrowser Billing Center
|
|
195
|
+
- **Delete** unused browser profiles using `roxy_delete_browsers` (closing alone does NOT free quota)
|
|
196
|
+
- Upgrade your subscription plan
|
|
197
|
+
- Check current quota usage in workspace settings
|
|
198
|
+
|
|
199
|
+
**Some browsers fail to open:**
|
|
200
|
+
|
|
201
|
+
- Check that the browser profiles exist and are not corrupted
|
|
202
|
+
- Ensure sufficient system resources (RAM, CPU)
|
|
203
|
+
- Verify the dirIds are valid (use `roxy_list_browsers` first)
|
|
204
|
+
- Run `roxy_health_check` for connectivity and health diagnostics
|
|
205
|
+
|
|
206
|
+
## License
|
|
207
|
+
|
|
208
|
+
MIT License - see LICENSE file for details.
|
|
209
|
+
|
|
210
|
+
## Contributing
|
|
211
|
+
|
|
212
|
+
1. Fork the repository
|
|
213
|
+
2. Create a feature branch
|
|
214
|
+
3. Make your changes
|
|
215
|
+
4. Add tests if applicable
|
|
216
|
+
5. Submit a pull request
|
package/lib/index.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAEA;;;;;GAKG"}
|
package/lib/index.js
ADDED
|
@@ -0,0 +1,180 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
/**
|
|
3
|
+
* RoxyBrowser MCP Server
|
|
4
|
+
*
|
|
5
|
+
* Model Context Protocol server for RoxyBrowser automation
|
|
6
|
+
* Provides tools to manage browser instances and get CDP endpoints
|
|
7
|
+
*/
|
|
8
|
+
import { Server } from '@modelcontextprotocol/sdk/server/index.js';
|
|
9
|
+
import { StdioServerTransport } from '@modelcontextprotocol/sdk/server/stdio.js';
|
|
10
|
+
import { CallToolRequestSchema, ListToolsRequestSchema, } from '@modelcontextprotocol/sdk/types.js';
|
|
11
|
+
import { batchCreateAccounts, createAccount, deleteAccounts, listAccounts, modifyAccount } from './modules/account.js';
|
|
12
|
+
import { batchCreateBrowsers, clearLocalCache, clearServerCache, closeBrowsers, createBrowser, deleteBrowsers, getBrowserDetail, getConnectionInfo, listBrowsers, listLabels, openBrowser, randomFingerprint, updateBrowser } from './modules/browser.js';
|
|
13
|
+
import { healthCheck, listWorkspaces } from './modules/other.js';
|
|
14
|
+
import { batchCreateProxies, createProxy, deleteProxies, detectProxy, modifyProxy, proxyList, proxyStore } from './modules/proxy.js';
|
|
15
|
+
import { ConfigError } from './types.js';
|
|
16
|
+
// ========== Tool Definitions ==========
|
|
17
|
+
const TOOLS = [
|
|
18
|
+
listBrowsers.schema,
|
|
19
|
+
batchCreateBrowsers.schema,
|
|
20
|
+
createBrowser.schema,
|
|
21
|
+
openBrowser.schema,
|
|
22
|
+
updateBrowser.schema,
|
|
23
|
+
closeBrowsers.schema,
|
|
24
|
+
deleteBrowsers.schema,
|
|
25
|
+
getBrowserDetail.schema,
|
|
26
|
+
clearLocalCache.schema,
|
|
27
|
+
clearServerCache.schema,
|
|
28
|
+
randomFingerprint.schema,
|
|
29
|
+
listLabels.schema,
|
|
30
|
+
getConnectionInfo.schema,
|
|
31
|
+
proxyList.schema,
|
|
32
|
+
proxyStore.schema,
|
|
33
|
+
createProxy.schema,
|
|
34
|
+
batchCreateProxies.schema,
|
|
35
|
+
detectProxy.schema,
|
|
36
|
+
modifyProxy.schema,
|
|
37
|
+
deleteProxies.schema,
|
|
38
|
+
// getDetectChannels.schema,
|
|
39
|
+
listAccounts.schema,
|
|
40
|
+
createAccount.schema,
|
|
41
|
+
batchCreateAccounts.schema,
|
|
42
|
+
modifyAccount.schema,
|
|
43
|
+
deleteAccounts.schema,
|
|
44
|
+
listWorkspaces.schema,
|
|
45
|
+
healthCheck.schema,
|
|
46
|
+
];
|
|
47
|
+
// ========== MCP Server ==========
|
|
48
|
+
class RoxyBrowserMCPServer {
|
|
49
|
+
server;
|
|
50
|
+
constructor() {
|
|
51
|
+
this.server = new Server({
|
|
52
|
+
name: 'roxybrowser-openapi-mcp',
|
|
53
|
+
version: '1.0.0',
|
|
54
|
+
}, {
|
|
55
|
+
capabilities: {
|
|
56
|
+
tools: {},
|
|
57
|
+
},
|
|
58
|
+
});
|
|
59
|
+
this.setupHandlers();
|
|
60
|
+
// Initialize RoxyBrowser client
|
|
61
|
+
// const config = getConfig()
|
|
62
|
+
// this.roxyClient = new RoxyClient(config)
|
|
63
|
+
}
|
|
64
|
+
setupHandlers() {
|
|
65
|
+
// List available tools
|
|
66
|
+
this.server.setRequestHandler(ListToolsRequestSchema, async () => ({
|
|
67
|
+
tools: TOOLS,
|
|
68
|
+
}));
|
|
69
|
+
// Handle tool calls
|
|
70
|
+
this.server.setRequestHandler(CallToolRequestSchema, async (request) => {
|
|
71
|
+
const { name, arguments: args } = request.params;
|
|
72
|
+
try {
|
|
73
|
+
switch (name) {
|
|
74
|
+
// ζ΅θ§ε¨ηΈε
³
|
|
75
|
+
case listBrowsers.name:
|
|
76
|
+
return await listBrowsers.handle(args);
|
|
77
|
+
case createBrowser.name:
|
|
78
|
+
return await createBrowser.handle(args);
|
|
79
|
+
case openBrowser.name:
|
|
80
|
+
return await openBrowser.handle(args);
|
|
81
|
+
case updateBrowser.name:
|
|
82
|
+
return await updateBrowser.handle(args);
|
|
83
|
+
case closeBrowsers.name:
|
|
84
|
+
return await closeBrowsers.handle(args);
|
|
85
|
+
case deleteBrowsers.name:
|
|
86
|
+
return await deleteBrowsers.handle(args);
|
|
87
|
+
case batchCreateBrowsers.name:
|
|
88
|
+
return await batchCreateBrowsers.handle(args);
|
|
89
|
+
case listLabels.name:
|
|
90
|
+
return await listLabels.handle(args);
|
|
91
|
+
case getConnectionInfo.name:
|
|
92
|
+
return await getConnectionInfo.handle(args);
|
|
93
|
+
case randomFingerprint.name:
|
|
94
|
+
return await randomFingerprint.handle(args);
|
|
95
|
+
case clearLocalCache.name:
|
|
96
|
+
return await clearLocalCache.handle(args);
|
|
97
|
+
case clearServerCache.name:
|
|
98
|
+
return await clearServerCache.handle(args);
|
|
99
|
+
case getBrowserDetail.name:
|
|
100
|
+
return await getBrowserDetail.handle(args);
|
|
101
|
+
// 账ε·ηΈε
³
|
|
102
|
+
case listAccounts.name:
|
|
103
|
+
return await listAccounts.handle(args);
|
|
104
|
+
case createAccount.name:
|
|
105
|
+
return await createAccount.handle(args);
|
|
106
|
+
case batchCreateAccounts.name:
|
|
107
|
+
return await batchCreateAccounts.handle(args);
|
|
108
|
+
case modifyAccount.name:
|
|
109
|
+
return await modifyAccount.handle(args);
|
|
110
|
+
case deleteAccounts.name:
|
|
111
|
+
return await deleteAccounts.handle(args);
|
|
112
|
+
// 代ηηΈε
³
|
|
113
|
+
case proxyList.name:
|
|
114
|
+
return await proxyList.handle(args);
|
|
115
|
+
case proxyStore.name:
|
|
116
|
+
return await proxyStore.handle(args);
|
|
117
|
+
case createProxy.name:
|
|
118
|
+
return await createProxy.handle(args);
|
|
119
|
+
case batchCreateProxies.name:
|
|
120
|
+
return await batchCreateProxies.handle(args);
|
|
121
|
+
case detectProxy.name:
|
|
122
|
+
return await detectProxy.handle(args);
|
|
123
|
+
case modifyProxy.name:
|
|
124
|
+
return await modifyProxy.handle(args);
|
|
125
|
+
case deleteProxies.name:
|
|
126
|
+
return await deleteProxies.handle(args);
|
|
127
|
+
// η©Ίι΄ε葨
|
|
128
|
+
case listWorkspaces.name:
|
|
129
|
+
return await listWorkspaces.handle(args);
|
|
130
|
+
// ε₯εΊ·ζ£ζ₯
|
|
131
|
+
case healthCheck.name:
|
|
132
|
+
return await healthCheck.handle(args);
|
|
133
|
+
default:
|
|
134
|
+
throw new Error(`Unknown tool: ${name}`);
|
|
135
|
+
}
|
|
136
|
+
}
|
|
137
|
+
catch (error) {
|
|
138
|
+
return {
|
|
139
|
+
content: [
|
|
140
|
+
{
|
|
141
|
+
type: 'text',
|
|
142
|
+
text: error instanceof Error ? error.message : 'Unknown error',
|
|
143
|
+
},
|
|
144
|
+
],
|
|
145
|
+
};
|
|
146
|
+
}
|
|
147
|
+
});
|
|
148
|
+
}
|
|
149
|
+
async run() {
|
|
150
|
+
console.error('π Starting RoxyBrowser MCP Server...');
|
|
151
|
+
const transport = new StdioServerTransport();
|
|
152
|
+
await this.server.connect(transport);
|
|
153
|
+
console.error('β
RoxyBrowser MCP Server is running');
|
|
154
|
+
}
|
|
155
|
+
}
|
|
156
|
+
// ========== Main ==========
|
|
157
|
+
async function main() {
|
|
158
|
+
try {
|
|
159
|
+
const server = new RoxyBrowserMCPServer();
|
|
160
|
+
await server.run();
|
|
161
|
+
}
|
|
162
|
+
catch (error) {
|
|
163
|
+
if (error instanceof ConfigError) {
|
|
164
|
+
console.error(`β Configuration Error: ${error.message}`);
|
|
165
|
+
process.exit(1);
|
|
166
|
+
}
|
|
167
|
+
console.error('β Unexpected error:', error);
|
|
168
|
+
process.exit(1);
|
|
169
|
+
}
|
|
170
|
+
}
|
|
171
|
+
// Handle graceful shutdown
|
|
172
|
+
process.on('SIGINT', () => {
|
|
173
|
+
console.error('\nπ Shutting down RoxyBrowser MCP Server...');
|
|
174
|
+
process.exit(0);
|
|
175
|
+
});
|
|
176
|
+
main().catch((error) => {
|
|
177
|
+
console.error('Fatal error:', error);
|
|
178
|
+
process.exit(1);
|
|
179
|
+
});
|
|
180
|
+
//# sourceMappingURL=index.js.map
|
package/lib/index.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|