devportal-tunnel 1.0.1 → 1.0.3

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.
@@ -44,148 +44,197 @@ const tunnelClient_1 = require("../utils/tunnelClient");
44
44
  const tunnels_1 = require("../utils/tunnels");
45
45
  const device_1 = require("../utils/device");
46
46
  const config_1 = require("../utils/config");
47
- // @ts-ignore - qrcode-terminal doesn't have types
48
- const qrcode = __importStar(require("qrcode-terminal"));
49
47
  async function startTunnel(port, options) {
50
- const spinner = (0, ora_1.default)('Connecting to DevPortal...').start();
48
+ const spinner = (0, ora_1.default)("Connecting to DevPortal...").start();
49
+ // Parse port forwarding if provided
50
+ let localPort = port;
51
+ let remotePort = port;
52
+ if (options.forward) {
53
+ const [remote, local] = options.forward.split(":");
54
+ if (!remote || !local) {
55
+ spinner.fail(chalk_1.default.red("Invalid port forwarding format. Use: --forward <remote>:<local>"));
56
+ console.log(chalk_1.default.gray("Example: --forward 8080:3000 (forwards remote port 8080 to local port 3000)"));
57
+ process.exit(1);
58
+ }
59
+ remotePort = parseInt(remote);
60
+ localPort = parseInt(local);
61
+ if (isNaN(remotePort) || isNaN(localPort)) {
62
+ spinner.fail(chalk_1.default.red("Invalid port numbers in forwarding"));
63
+ process.exit(1);
64
+ }
65
+ spinner.text = `Setting up port forwarding ${remotePort}:${localPort}...`;
66
+ }
67
+ // Check for existing tunnels on the same local port
68
+ const existingTunnels = (0, tunnels_1.getTunnels)().filter((t) => t.status === "live" && t.localPort === localPort);
69
+ if (existingTunnels.length > 0) {
70
+ spinner.fail(chalk_1.default.red(`Port ${localPort} is already being tunneled`));
71
+ console.log();
72
+ console.log(chalk_1.default.yellow("Existing tunnel:"));
73
+ existingTunnels.forEach((tunnel) => {
74
+ console.log(chalk_1.default.gray(` ID: ${tunnel.id}`));
75
+ console.log(chalk_1.default.gray(` Name: ${tunnel.name}`));
76
+ console.log(chalk_1.default.gray(` URL: ${tunnel.url}`));
77
+ console.log(chalk_1.default.gray(` Local Port: ${tunnel.localPort}`));
78
+ });
79
+ console.log();
80
+ console.log(chalk_1.default.gray("Options:"));
81
+ console.log(chalk_1.default.gray(" 1. Stop the existing tunnel: ") +
82
+ chalk_1.default.cyan(`devportal-tunnel stop ${existingTunnels[0].id}`));
83
+ console.log(chalk_1.default.gray(" 2. Use a different local port"));
84
+ console.log(chalk_1.default.gray(" 3. Use port forwarding: ") +
85
+ chalk_1.default.cyan(`--forward ${remotePort}:<different-port>`));
86
+ process.exit(1);
87
+ }
51
88
  // Check if local server is running
52
- const isPortOpen = await checkPort(port);
89
+ const isPortOpen = await checkPort(localPort);
53
90
  if (!isPortOpen) {
54
- spinner.warn(chalk_1.default.yellow(`No server detected on port ${port}`));
55
- console.log(chalk_1.default.gray(` Make sure your local server is running first`));
56
- console.log(chalk_1.default.gray(` Example: npm run dev`));
91
+ spinner.fail(chalk_1.default.red(`No server running on port ${localPort}`));
92
+ console.log();
93
+ console.log(chalk_1.default.gray(" Make sure your local server is running first:"));
94
+ console.log(chalk_1.default.gray(" Example: npm run dev"));
95
+ console.log();
96
+ console.log(chalk_1.default.gray(" Then run:"));
97
+ if (options.forward) {
98
+ console.log(chalk_1.default.cyan(` devportal-tunnel start ${port} --forward ${options.forward}`));
99
+ }
100
+ else {
101
+ console.log(chalk_1.default.cyan(` devportal-tunnel start ${port}`));
102
+ }
57
103
  console.log();
104
+ process.exit(1);
58
105
  }
59
106
  const config = (0, config_1.getConfig)();
60
107
  const deviceId = (0, device_1.getDeviceId)();
61
108
  // Use local simulation if no server configured or --local flag
62
109
  if (options.local || !config.serverUrl) {
63
- spinner.text = 'Starting local simulation mode...';
64
- await startSimulatedTunnel(port, options, spinner);
110
+ spinner.text = "Starting local simulation mode...";
111
+ await startSimulatedTunnel(localPort, remotePort, options, spinner);
65
112
  return;
66
113
  }
114
+ console.log(chalk_1.default.gray(`Connecting to DevPortal WebSocket: ${config.wsUrl}`));
67
115
  // Connect to real server
68
116
  try {
69
117
  const client = new tunnelClient_1.TunnelClient({
70
118
  serverUrl: config.serverUrl,
71
119
  wsUrl: config.wsUrl,
72
120
  deviceId,
73
- localPort: port,
121
+ localPort,
122
+ remotePort: options.forward ? remotePort : undefined,
74
123
  subdomain: options.subdomain,
75
124
  password: options.password,
76
125
  demo: options.demo,
77
126
  authHeader: options.authHeader,
78
127
  });
79
128
  // Handle events
80
- client.on('request', ({ method, path }) => {
129
+ client.on("request", ({ method, path }) => {
81
130
  const methodColor = getMethodColor(method);
82
131
  const timestamp = new Date().toLocaleTimeString();
83
- process.stdout.write(chalk_1.default.gray(timestamp) + ' ');
132
+ process.stdout.write(chalk_1.default.gray(timestamp) + " ");
84
133
  process.stdout.write(methodColor(method.padEnd(7)));
85
- process.stdout.write(chalk_1.default.white(path) + ' ');
134
+ process.stdout.write(chalk_1.default.white(path) + " ");
86
135
  });
87
- client.on('response', ({ status }) => {
136
+ client.on("response", ({ status }) => {
88
137
  const statusColor = status < 300 ? chalk_1.default.green : status < 400 ? chalk_1.default.yellow : chalk_1.default.red;
89
138
  console.log(statusColor(status.toString()));
90
139
  });
91
- client.on('error', (error) => {
92
- console.error(chalk_1.default.red('Error:'), error.message);
140
+ client.on("error", (error) => {
141
+ console.error(chalk_1.default.red("Tunnel client error:"), error.message);
93
142
  });
94
- client.on('disconnected', () => {
95
- console.log(chalk_1.default.yellow('\nConnection lost. Reconnecting...'));
143
+ client.on("disconnected", () => {
144
+ console.log(chalk_1.default.yellow("\nConnection lost. Reconnecting..."));
96
145
  });
97
- spinner.text = 'Establishing tunnel...';
146
+ spinner.text = "Establishing tunnel...";
98
147
  const tunnelInfo = await client.connect();
99
- spinner.succeed(chalk_1.default.green('Tunnel established'));
148
+ spinner.succeed(chalk_1.default.green("Tunnel established"));
100
149
  console.log();
101
150
  // Display tunnel info
102
- console.log(chalk_1.default.gray(' Local server: '), chalk_1.default.white(`http://localhost:${port}`));
103
- console.log(chalk_1.default.gray(' Public URL: '), chalk_1.default.cyan.underline(tunnelInfo.url));
104
- console.log(chalk_1.default.gray(' Tunnel ID: '), chalk_1.default.white(tunnelInfo.id));
151
+ console.log(chalk_1.default.gray(" Local server: "), chalk_1.default.white(`http://localhost:${localPort}`));
152
+ if (options.forward) {
153
+ console.log(chalk_1.default.gray(" Port forward: "), chalk_1.default.white(`Remote ${remotePort} → Local ${localPort}`));
154
+ }
155
+ console.log(chalk_1.default.gray(" Public URL: "), chalk_1.default.cyan.underline(tunnelInfo.url));
156
+ console.log(chalk_1.default.gray(" Tunnel ID: "), chalk_1.default.white(tunnelInfo.id));
105
157
  if (options.password) {
106
- console.log(chalk_1.default.gray(' Password: '), chalk_1.default.yellow('Protected'));
158
+ console.log(chalk_1.default.gray(" Password: "), chalk_1.default.yellow("Protected"));
107
159
  }
108
160
  if (tunnelInfo.expiresAt) {
109
161
  const expiresIn = Math.round((new Date(tunnelInfo.expiresAt).getTime() - Date.now()) / 60000);
110
- console.log(chalk_1.default.gray(' Expires in: '), chalk_1.default.yellow(`${expiresIn} minutes`));
162
+ console.log(chalk_1.default.gray(" Expires in: "), chalk_1.default.yellow(`${expiresIn} minutes`));
111
163
  }
112
164
  console.log();
113
- console.log(chalk_1.default.gray(' Dashboard: '), chalk_1.default.underline(`${config.serverUrl}/dashboard/${deviceId}`));
114
165
  console.log();
115
- // Show QR code if requested
116
- if (options.qr) {
117
- console.log(chalk_1.default.gray(' Scan to open on mobile:'));
118
- console.log();
119
- qrcode.generate(tunnelInfo.url, { small: true });
120
- console.log();
121
- }
122
166
  // Save tunnel info locally
123
167
  const storedTunnel = {
124
168
  id: tunnelInfo.id,
125
169
  name: tunnelInfo.name,
126
170
  url: tunnelInfo.url,
127
- localPort: port,
128
- status: 'live',
171
+ localPort,
172
+ status: "live",
129
173
  createdAt: new Date().toISOString(),
130
174
  pid: process.pid,
131
175
  };
132
176
  (0, tunnels_1.addTunnel)(storedTunnel);
133
- console.log(chalk_1.default.gray(' Forwarding requests... (Press Ctrl+C to stop)'));
177
+ console.log(chalk_1.default.gray(" Forwarding requests... (Press Ctrl+C to stop)"));
134
178
  console.log();
135
179
  // Handle shutdown
136
- process.on('SIGINT', () => {
180
+ process.on("SIGINT", async () => {
137
181
  console.log();
138
- console.log(chalk_1.default.yellow('Stopping tunnel...'));
139
- client.stop();
182
+ console.log(chalk_1.default.yellow("Stopping tunnel..."));
183
+ await client.stop();
184
+ console.log(chalk_1.default.green("Tunnel stopped"));
140
185
  process.exit(0);
141
186
  });
142
187
  // Keep process alive
143
188
  await new Promise(() => { });
144
189
  }
145
190
  catch (error) {
146
- spinner.fail(chalk_1.default.red('Failed to connect'));
191
+ spinner.fail(chalk_1.default.red("Failed to connect"));
147
192
  console.log();
148
- console.log(chalk_1.default.red('Error:'), error.message);
193
+ const message = error instanceof Error ? error.message : String(error);
194
+ console.error(chalk_1.default.red("Error:"), message);
195
+ console.log();
196
+ console.log(chalk_1.default.gray(`Server URL: ${config.serverUrl}`));
197
+ console.log(chalk_1.default.gray(`WebSocket URL: ${config.wsUrl}`));
198
+ console.log();
199
+ console.log(chalk_1.default.gray("Troubleshooting:"));
200
+ console.log(chalk_1.default.gray("1. Check your internet connection."));
201
+ console.log(chalk_1.default.gray("2. Verify ~/.devportal/config.json."));
202
+ console.log(chalk_1.default.gray("3. Confirm the server is running."));
149
203
  console.log();
150
- console.log(chalk_1.default.gray('Troubleshooting:'));
151
- console.log(chalk_1.default.gray(' 1. Check your internet connection'));
152
- console.log(chalk_1.default.gray(' 2. Verify the server URL in ~/.devportal/config.json'));
153
- console.log(chalk_1.default.gray(' 3. Try running with --local for simulation mode'));
154
204
  process.exit(1);
155
205
  }
156
206
  }
157
- async function startSimulatedTunnel(port, options, spinner) {
207
+ async function startSimulatedTunnel(localPort, remotePort, options, spinner) {
158
208
  // Simulate connection delay
159
209
  await sleep(1000);
160
210
  const name = options.subdomain || generateTunnelName();
161
211
  const tunnelId = `t-${Date.now().toString(36)}`;
162
212
  const url = `https://${name}.devportal.local`;
163
- spinner.succeed(chalk_1.default.green('Tunnel established (simulation mode)'));
213
+ spinner.succeed(chalk_1.default.green("Tunnel established (simulation mode)"));
164
214
  console.log();
165
- console.log(chalk_1.default.gray(' Local server: '), chalk_1.default.white(`http://localhost:${port}`));
166
- console.log(chalk_1.default.gray(' Public URL: '), chalk_1.default.cyan.underline(url));
167
- console.log(chalk_1.default.gray(' Tunnel ID: '), chalk_1.default.white(tunnelId));
215
+ console.log(chalk_1.default.gray(" Local server: "), chalk_1.default.white(`http://localhost:${localPort}`));
216
+ if (options.forward) {
217
+ console.log(chalk_1.default.gray(" Port forward: "), chalk_1.default.white(`Remote ${remotePort} → Local ${localPort}`));
218
+ }
219
+ console.log(chalk_1.default.gray(" Public URL: "), chalk_1.default.cyan.underline(url));
220
+ console.log(chalk_1.default.gray(" Tunnel ID: "), chalk_1.default.white(tunnelId));
168
221
  console.log();
169
- console.log(chalk_1.default.yellow(' ⚠ Running in simulation mode'));
170
- console.log(chalk_1.default.gray(' Configure server URL to enable real tunneling'));
222
+ console.log(chalk_1.default.yellow(" ⚠ Running in simulation mode"));
223
+ console.log(chalk_1.default.gray(" Configure server URL to enable real tunneling"));
171
224
  console.log();
172
- if (options.qr) {
173
- qrcode.generate(url, { small: true });
174
- console.log();
175
- }
176
- console.log(chalk_1.default.gray(' Simulating requests... (Press Ctrl+C to stop)'));
225
+ console.log(chalk_1.default.gray(" Simulating requests... (Press Ctrl+C to stop)"));
177
226
  console.log();
178
- simulateRequests(port);
179
- process.on('SIGINT', () => {
227
+ simulateRequests(localPort);
228
+ process.on("SIGINT", () => {
180
229
  console.log();
181
- console.log(chalk_1.default.yellow('Tunnel stopped'));
230
+ console.log(chalk_1.default.yellow("Tunnel stopped"));
182
231
  process.exit(0);
183
232
  });
184
233
  await new Promise(() => { });
185
234
  }
186
235
  function simulateRequests(port) {
187
- const methods = ['GET', 'POST', 'PUT', 'DELETE'];
188
- const paths = ['/api/users', '/api/auth', '/api/data', '/webhook', '/health'];
236
+ const methods = ["GET", "POST", "PUT", "DELETE"];
237
+ const paths = ["/api/users", "/api/auth", "/api/data", "/webhook", "/health"];
189
238
  const statuses = [200, 200, 200, 201, 400, 401, 404];
190
239
  const logRequest = () => {
191
240
  const method = methods[Math.floor(Math.random() * methods.length)];
@@ -213,19 +262,41 @@ function getMethodColor(method) {
213
262
  }
214
263
  async function checkPort(port) {
215
264
  return new Promise((resolve) => {
216
- const req = http.request({ host: 'localhost', port, timeout: 1000 }, () => {
265
+ const req = http.request({ host: "localhost", port, timeout: 1000 }, () => {
217
266
  resolve(true);
218
267
  });
219
- req.on('error', () => resolve(false));
220
- req.on('timeout', () => resolve(false));
268
+ req.on("error", () => resolve(false));
269
+ req.on("timeout", () => resolve(false));
221
270
  req.end();
222
271
  });
223
272
  }
224
273
  function sleep(ms) {
225
274
  return new Promise((resolve) => setTimeout(resolve, ms));
226
275
  }
227
- const adjectives = ['purple', 'cosmic', 'hidden', 'crystal', 'silent', 'golden', 'frozen', 'blazing', 'lunar', 'neon'];
228
- const nouns = ['horizon', 'lake', 'forest', 'ocean', 'canyon', 'river', 'meadow', 'summit', 'valley', 'storm'];
276
+ const adjectives = [
277
+ "purple",
278
+ "cosmic",
279
+ "hidden",
280
+ "crystal",
281
+ "silent",
282
+ "golden",
283
+ "frozen",
284
+ "blazing",
285
+ "lunar",
286
+ "neon",
287
+ ];
288
+ const nouns = [
289
+ "horizon",
290
+ "lake",
291
+ "forest",
292
+ "ocean",
293
+ "canyon",
294
+ "river",
295
+ "meadow",
296
+ "summit",
297
+ "valley",
298
+ "storm",
299
+ ];
229
300
  function generateTunnelName() {
230
301
  const adj = adjectives[Math.floor(Math.random() * adjectives.length)];
231
302
  const noun = nouns[Math.floor(Math.random() * nouns.length)];
@@ -1 +1 @@
1
- {"version":3,"file":"start.js","sourceRoot":"","sources":["../../src/commands/start.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"start.js","sourceRoot":"","sources":["../../src/commands/start.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -12,31 +12,31 @@ const stop_1 = require("./commands/stop");
12
12
  const replay_1 = require("./commands/replay");
13
13
  const logs_1 = require("./commands/logs");
14
14
  const config_1 = require("./commands/config");
15
+ const port_1 = require("./commands/port");
15
16
  const device_1 = require("./utils/device");
16
- const config_2 = require("./utils/config");
17
17
  const program = new commander_1.Command();
18
18
  // ASCII art logo
19
19
  const logo = `
20
- ${chalk_1.default.cyan('╔═══════════════════════════════════════╗')}
21
- ${chalk_1.default.cyan('║')} ${chalk_1.default.bold.white('DevPortal')} - Share localhost instantly ${chalk_1.default.cyan('║')}
22
- ${chalk_1.default.cyan('╚═══════════════════════════════════════╝')}
20
+ ${chalk_1.default.cyan("╔═══════════════════════════════════════╗")}
21
+ ${chalk_1.default.cyan("║")} ${chalk_1.default.bold.white("DevPortal")} - Share localhost instantly ${chalk_1.default.cyan("║")}
22
+ ${chalk_1.default.cyan("╚═══════════════════════════════════════╝")}
23
23
  `;
24
24
  program
25
- .name('devportal')
26
- .description('Expose your localhost to the internet with a single command')
27
- .version('1.0.0')
28
- .hook('preAction', () => {
25
+ .name("devportal")
26
+ .description("Expose your localhost to the internet with a single command")
27
+ .version("1.0.0")
28
+ .hook("preAction", () => {
29
29
  console.log(logo);
30
30
  });
31
31
  // Main command: devportal <port>
32
32
  program
33
- .argument('[port]', 'Local port to expose', '3000')
34
- .option('-s, --subdomain <name>', 'Custom subdomain for your URL')
35
- .option('-p, --password <pass>', 'Password protect the tunnel')
36
- .option('--demo', 'Create a temporary link that expires in 2 hours')
37
- .option('--qr', 'Display QR code in terminal')
38
- .option('--auth-header <header>', 'Add authorization header to requests')
39
- .option('--local', 'Run in local simulation mode (no server required)')
33
+ .argument("[port]", "Local port to expose", "3000")
34
+ .option("-s, --subdomain <name>", "Custom subdomain for your URL")
35
+ .option("-p, --password <pass>", "Password protect the tunnel")
36
+ .option("--demo", "Create a temporary link that expires in 2 hours")
37
+ .option("--auth-header <header>", "Add authorization header to requests")
38
+ .option("--local", "Run in local simulation mode (no server required)")
39
+ .option("--forward <ports>", "Port forwarding (format: remote:local, e.g., 8080:3000)")
40
40
  .action(async (port, options) => {
41
41
  if (port && !isNaN(parseInt(port))) {
42
42
  await (0, start_1.startTunnel)(parseInt(port), options);
@@ -47,65 +47,77 @@ program
47
47
  });
48
48
  // Start command: devportal start <port> (alias for default)
49
49
  program
50
- .command('start [port]')
51
- .description('Start a tunnel to expose your local port')
52
- .option('-s, --subdomain <name>', 'Custom subdomain for your URL')
53
- .option('-p, --password <pass>', 'Password protect the tunnel')
54
- .option('--demo', 'Create a temporary link that expires in 2 hours')
55
- .option('--qr', 'Display QR code in terminal')
56
- .option('--auth-header <header>', 'Add authorization header to requests')
57
- .option('--local', 'Run in local simulation mode (no server required)')
58
- .action(async (port = '3000', options) => {
50
+ .command("start [port]")
51
+ .description("Start a tunnel to expose your local port")
52
+ .option("-s, --subdomain <name>", "Custom subdomain for your URL")
53
+ .option("-p, --password <pass>", "Password protect the tunnel")
54
+ .option("--demo", "Create a temporary link that expires in 2 hours")
55
+ .option("--auth-header <header>", "Add authorization header to requests")
56
+ .option("--local", "Run in local simulation mode (no server required)")
57
+ .option("--forward <ports>", "Port forwarding (format: remote:local, e.g., 8080:3000)")
58
+ .action(async (port = "3000", options) => {
59
59
  await (0, start_1.startTunnel)(parseInt(port), options);
60
60
  });
61
61
  // List tunnels: devportal ls
62
62
  program
63
- .command('ls')
64
- .alias('list')
65
- .description('List all active tunnels')
63
+ .command("ls")
64
+ .alias("list")
65
+ .description("List all active tunnels")
66
66
  .action(async () => {
67
67
  await (0, list_1.listTunnels)();
68
68
  });
69
69
  // Stop tunnel: devportal stop <id>
70
70
  program
71
- .command('stop [tunnelId]')
72
- .description('Stop a tunnel by ID')
73
- .option('-a, --all', 'Stop all active tunnels')
71
+ .command("stop [tunnelId]")
72
+ .description("Stop a tunnel by ID")
73
+ .option("-a, --all", "Stop all active tunnels")
74
74
  .action(async (tunnelId, options) => {
75
75
  await (0, stop_1.stopTunnel)(tunnelId, options);
76
76
  });
77
+ // Stop all tunnels: devportal stop-all (convenient alias)
78
+ program
79
+ .command("stop-all")
80
+ .description("Stop all active tunnels")
81
+ .action(async () => {
82
+ await (0, stop_1.stopTunnel)(undefined, { all: true });
83
+ });
77
84
  // Replay request: devportal replay <requestId>
78
85
  program
79
- .command('replay <requestId>')
80
- .description('Replay a captured request')
81
- .option('-H, --header <header>', 'Add or override a header')
82
- .option('-b, --body <body>', 'Override request body')
86
+ .command("replay <requestId>")
87
+ .description("Replay a captured request")
88
+ .option("-H, --header <header>", "Add or override a header")
89
+ .option("-b, --body <body>", "Override request body")
83
90
  .action(async (requestId, options) => {
84
91
  await (0, replay_1.replayRequest)(requestId, options);
85
92
  });
86
93
  // Stream logs: devportal logs <tunnelId>
87
94
  program
88
- .command('logs <tunnelId>')
89
- .description('Stream live request logs from a tunnel')
95
+ .command("logs <tunnelId>")
96
+ .description("Stream live request logs from a tunnel")
90
97
  .action(async (tunnelId) => {
91
98
  await (0, logs_1.showLogs)(tunnelId);
92
99
  });
93
100
  // Config command
94
101
  program
95
- .command('config [action] [value]')
96
- .description('View or update configuration')
102
+ .command("config [action] [value]")
103
+ .description("View or update configuration")
97
104
  .action(async (action, value) => {
98
105
  await (0, config_1.configCommand)(action, value);
99
106
  });
107
+ // Port management command
108
+ program
109
+ .command("port [action] [port]")
110
+ .description("Manage ports (actions: check, scan, list)")
111
+ .action(async (action, port) => {
112
+ await (0, port_1.portCommand)(action, port ? parseInt(port) : undefined);
113
+ });
100
114
  // Device info command
101
115
  program
102
- .command('whoami')
103
- .description('Show current device ID and dashboard URL')
116
+ .command("whoami")
117
+ .description("Show current device ID")
104
118
  .action(() => {
105
119
  const deviceId = (0, device_1.getDeviceId)();
106
- const config = (0, config_2.getConfig)();
107
- console.log(chalk_1.default.gray('Device ID:'), chalk_1.default.cyan(deviceId));
108
- console.log(chalk_1.default.gray('Dashboard:'), chalk_1.default.underline(`${config.serverUrl}/dashboard/${deviceId}`));
120
+ console.log(chalk_1.default.gray("Device ID:"), chalk_1.default.cyan(deviceId));
109
121
  });
110
- program.parse();
122
+ program.parse(process.argv);
111
123
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,7 @@
1
1
  export interface Config {
2
2
  serverUrl: string;
3
3
  wsUrl: string;
4
+ frontendUrl: string;
4
5
  }
5
6
  export declare function getConfig(): Config;
6
7
  export declare function saveConfig(config: Partial<Config>): void;
@@ -1 +1 @@
1
- {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/utils/config.ts"],"names":[],"mappings":"AAIA,MAAM,WAAW,MAAM;IACrB,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;CACf;AASD,wBAAgB,SAAS,IAAI,MAAM,CAYlC;AAED,wBAAgB,UAAU,CAAC,MAAM,EAAE,OAAO,CAAC,MAAM,CAAC,GAAG,IAAI,CAOxD;AAED,wBAAgB,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAS9C"}
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/utils/config.ts"],"names":[],"mappings":"AAIA,MAAM,WAAW,MAAM;IACrB,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;CACrB;AAUD,wBAAgB,SAAS,IAAI,MAAM,CAYlC;AAED,wBAAgB,UAAU,CAAC,MAAM,EAAE,OAAO,CAAC,MAAM,CAAC,GAAG,IAAI,CAOxD;AAED,wBAAgB,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAY9C"}
@@ -39,10 +39,11 @@ exports.setServerUrl = setServerUrl;
39
39
  const fs = __importStar(require("fs"));
40
40
  const path = __importStar(require("path"));
41
41
  const device_1 = require("./device");
42
- const CONFIG_FILE = path.join((0, device_1.getConfigDir)(), 'config.json');
42
+ const CONFIG_FILE = path.join((0, device_1.getConfigDir)(), "config.json");
43
43
  const DEFAULT_CONFIG = {
44
- serverUrl: 'https://tunnel.stylnode.in',
45
- wsUrl: 'wss://tunnel.stylnode.in/ws',
44
+ serverUrl: "https://tunnl.stylnode.in",
45
+ wsUrl: "wss://tunnl.stylnode.in/ws",
46
+ frontendUrl: "https://devportal.stylnode.in",
46
47
  };
47
48
  function getConfig() {
48
49
  if (!fs.existsSync(CONFIG_FILE)) {
@@ -50,7 +51,7 @@ function getConfig() {
50
51
  return DEFAULT_CONFIG;
51
52
  }
52
53
  try {
53
- const config = JSON.parse(fs.readFileSync(CONFIG_FILE, 'utf-8'));
54
+ const config = JSON.parse(fs.readFileSync(CONFIG_FILE, "utf-8"));
54
55
  return { ...DEFAULT_CONFIG, ...config };
55
56
  }
56
57
  catch {
@@ -59,18 +60,19 @@ function getConfig() {
59
60
  }
60
61
  function saveConfig(config) {
61
62
  const currentConfig = fs.existsSync(CONFIG_FILE)
62
- ? JSON.parse(fs.readFileSync(CONFIG_FILE, 'utf-8'))
63
+ ? JSON.parse(fs.readFileSync(CONFIG_FILE, "utf-8"))
63
64
  : {};
64
65
  const newConfig = { ...currentConfig, ...config };
65
66
  fs.writeFileSync(CONFIG_FILE, JSON.stringify(newConfig, null, 2));
66
67
  }
67
68
  function setServerUrl(url) {
68
- // Derive WebSocket URL from HTTP URL (same host, /ws path)
69
- const wsUrl = url.replace('https://', 'wss://').replace('http://', 'ws://');
70
- const wsWithPath = wsUrl.replace(/\/$/, '') + '/ws';
69
+ const normalizedUrl = url.replace(/\/+$/, "");
70
+ const parsedUrl = new URL(normalizedUrl);
71
+ const wsProtocol = parsedUrl.protocol === "https:" ? "wss:" : "ws:";
72
+ const wsUrl = `${wsProtocol}//${parsedUrl.host}/ws`;
71
73
  saveConfig({
72
- serverUrl: url.replace(/\/$/, ''),
73
- wsUrl: wsWithPath,
74
+ serverUrl: normalizedUrl,
75
+ wsUrl,
74
76
  });
75
77
  }
76
78
  //# sourceMappingURL=config.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/utils/config.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAgBA,8BAYC;AAED,gCAOC;AAED,oCASC;AAhDD,uCAAyB;AACzB,2CAA6B;AAC7B,qCAAwC;AAOxC,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,IAAA,qBAAY,GAAE,EAAE,aAAa,CAAC,CAAC;AAE7D,MAAM,cAAc,GAAW;IAC7B,SAAS,EAAE,4BAA4B;IACvC,KAAK,EAAE,6BAA6B;CACrC,CAAC;AAEF,SAAgB,SAAS;IACvB,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,WAAW,CAAC,EAAE,CAAC;QAChC,UAAU,CAAC,cAAc,CAAC,CAAC;QAC3B,OAAO,cAAc,CAAC;IACxB,CAAC;IAED,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,YAAY,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC,CAAC;QACjE,OAAO,EAAE,GAAG,cAAc,EAAE,GAAG,MAAM,EAAE,CAAC;IAC1C,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,cAAc,CAAC;IACxB,CAAC;AACH,CAAC;AAED,SAAgB,UAAU,CAAC,MAAuB;IAChD,MAAM,aAAa,GAAG,EAAE,CAAC,UAAU,CAAC,WAAW,CAAC;QAC9C,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,YAAY,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;QACnD,CAAC,CAAC,EAAE,CAAC;IAEP,MAAM,SAAS,GAAG,EAAE,GAAG,aAAa,EAAE,GAAG,MAAM,EAAE,CAAC;IAClD,EAAE,CAAC,aAAa,CAAC,WAAW,EAAE,IAAI,CAAC,SAAS,CAAC,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;AACpE,CAAC;AAED,SAAgB,YAAY,CAAC,GAAW;IACtC,2DAA2D;IAC3D,MAAM,KAAK,GAAG,GAAG,CAAC,OAAO,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC,OAAO,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;IAC5E,MAAM,UAAU,GAAG,KAAK,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,GAAG,KAAK,CAAC;IAEpD,UAAU,CAAC;QACT,SAAS,EAAE,GAAG,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC;QACjC,KAAK,EAAE,UAAU;KAClB,CAAC,CAAC;AACL,CAAC"}
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/utils/config.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAkBA,8BAYC;AAED,gCAOC;AAED,oCAYC;AArDD,uCAAyB;AACzB,2CAA6B;AAC7B,qCAAwC;AAQxC,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,IAAA,qBAAY,GAAE,EAAE,aAAa,CAAC,CAAC;AAE7D,MAAM,cAAc,GAAW;IAC7B,SAAS,EAAE,2BAA2B;IACtC,KAAK,EAAE,4BAA4B;IACnC,WAAW,EAAE,+BAA+B;CAC7C,CAAC;AAEF,SAAgB,SAAS;IACvB,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,WAAW,CAAC,EAAE,CAAC;QAChC,UAAU,CAAC,cAAc,CAAC,CAAC;QAC3B,OAAO,cAAc,CAAC;IACxB,CAAC;IAED,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,YAAY,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC,CAAC;QACjE,OAAO,EAAE,GAAG,cAAc,EAAE,GAAG,MAAM,EAAE,CAAC;IAC1C,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,cAAc,CAAC;IACxB,CAAC;AACH,CAAC;AAED,SAAgB,UAAU,CAAC,MAAuB;IAChD,MAAM,aAAa,GAAG,EAAE,CAAC,UAAU,CAAC,WAAW,CAAC;QAC9C,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,YAAY,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;QACnD,CAAC,CAAC,EAAE,CAAC;IAEP,MAAM,SAAS,GAAG,EAAE,GAAG,aAAa,EAAE,GAAG,MAAM,EAAE,CAAC;IAClD,EAAE,CAAC,aAAa,CAAC,WAAW,EAAE,IAAI,CAAC,SAAS,CAAC,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;AACpE,CAAC;AAED,SAAgB,YAAY,CAAC,GAAW;IACtC,MAAM,aAAa,GAAG,GAAG,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;IAC9C,MAAM,SAAS,GAAG,IAAI,GAAG,CAAC,aAAa,CAAC,CAAC;IAEzC,MAAM,UAAU,GAAG,SAAS,CAAC,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC;IAEpE,MAAM,KAAK,GAAG,GAAG,UAAU,KAAK,SAAS,CAAC,IAAI,KAAK,CAAC;IAEpD,UAAU,CAAC;QACT,SAAS,EAAE,aAAa;QACxB,KAAK;KACN,CAAC,CAAC;AACL,CAAC"}