tunli 0.3.0 → 0.4.1

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 (57) hide show
  1. package/CHANGELOG.md +38 -0
  2. package/README.md +29 -29
  3. package/dist/cli-app/Dashboard.d.ts +4 -1
  4. package/dist/cli-app/Dashboard.d.ts.map +1 -1
  5. package/dist/cli-app/Dashboard.js +39 -6
  6. package/dist/cli-app/Dashboard.js.map +1 -1
  7. package/dist/cli-app/TunnelPicker.d.ts +3 -0
  8. package/dist/cli-app/TunnelPicker.d.ts.map +1 -0
  9. package/dist/cli-app/TunnelPicker.js +28 -0
  10. package/dist/cli-app/TunnelPicker.js.map +1 -0
  11. package/dist/cli-app/versionCheck.d.ts.map +1 -1
  12. package/dist/cli-app/versionCheck.js +11 -1
  13. package/dist/cli-app/versionCheck.js.map +1 -1
  14. package/dist/client.js +10 -0
  15. package/dist/client.js.map +1 -1
  16. package/dist/commands/CommandDaemon/CommandDaemon.d.ts.map +1 -1
  17. package/dist/commands/CommandDaemon/CommandDaemon.js +38 -23
  18. package/dist/commands/CommandDaemon/CommandDaemon.js.map +1 -1
  19. package/dist/commands/CommandDashboard/CommandDashboard.d.ts.map +1 -1
  20. package/dist/commands/CommandDashboard/CommandDashboard.js +58 -18
  21. package/dist/commands/CommandDashboard/CommandDashboard.js.map +1 -1
  22. package/dist/commands/CommandDown/CommandDown.d.ts +4 -0
  23. package/dist/commands/CommandDown/CommandDown.d.ts.map +1 -0
  24. package/dist/commands/CommandDown/CommandDown.js +35 -0
  25. package/dist/commands/CommandDown/CommandDown.js.map +1 -0
  26. package/dist/commands/CommandHTTP/CommandHttp.d.ts.map +1 -1
  27. package/dist/commands/CommandHTTP/CommandHttp.js +8 -5
  28. package/dist/commands/CommandHTTP/CommandHttp.js.map +1 -1
  29. package/dist/commands/CommandLogs/CommandLogs.js +1 -1
  30. package/dist/commands/CommandLogs/CommandLogs.js.map +1 -1
  31. package/dist/commands/CommandStop/CommandStop.d.ts.map +1 -1
  32. package/dist/commands/CommandStop/CommandStop.js +15 -13
  33. package/dist/commands/CommandStop/CommandStop.js.map +1 -1
  34. package/dist/commands/CommandUp/CommandUp.d.ts +4 -0
  35. package/dist/commands/CommandUp/CommandUp.d.ts.map +1 -0
  36. package/dist/commands/CommandUp/CommandUp.js +53 -0
  37. package/dist/commands/CommandUp/CommandUp.js.map +1 -0
  38. package/dist/commands/CommandUseProfile/CommandUseProfile.d.ts.map +1 -1
  39. package/dist/commands/CommandUseProfile/CommandUseProfile.js +3 -1
  40. package/dist/commands/CommandUseProfile/CommandUseProfile.js.map +1 -1
  41. package/dist/commands/utils.d.ts.map +1 -1
  42. package/dist/commands/utils.js +1 -0
  43. package/dist/commands/utils.js.map +1 -1
  44. package/dist/config/TempProfileConfig.d.ts.map +1 -1
  45. package/dist/config/TempProfileConfig.js +22 -1
  46. package/dist/config/TempProfileConfig.js.map +1 -1
  47. package/dist/daemon/DaemonClient.d.ts +8 -5
  48. package/dist/daemon/DaemonClient.d.ts.map +1 -1
  49. package/dist/daemon/DaemonClient.js +5 -1
  50. package/dist/daemon/DaemonClient.js.map +1 -1
  51. package/dist/daemon/DaemonServer.js +1 -1
  52. package/dist/daemon/DaemonServer.js.map +1 -1
  53. package/dist/daemon/protocol.d.ts +1 -0
  54. package/dist/daemon/protocol.d.ts.map +1 -1
  55. package/dist/sea-main.js +6 -0
  56. package/dist/sea-main.js.map +1 -1
  57. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"CommandDaemon.js","sourceRoot":"","sources":["../../../src/commands/CommandDaemon/CommandDaemon.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"CommandDaemon.js","sourceRoot":"","sources":["../../../src/commands/CommandDaemon/CommandDaemon.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"CommandDashboard.d.ts","sourceRoot":"","sources":["../../../src/commands/CommandDashboard/CommandDashboard.ts"],"names":[],"mappings":"AAAA,OAAO,EAAW,OAAO,EAAC,MAAM,kBAAkB,CAAC;AACnD,OAAO,KAAK,EAAC,OAAO,EAAC,MAAM,cAAc,CAAC;AAK1C,eAAO,MAAM,sBAAsB,GAAI,KAAK,OAAO,EAAE,UAAU,OAAO,YAmDrE,CAAA"}
1
+ {"version":3,"file":"CommandDashboard.d.ts","sourceRoot":"","sources":["../../../src/commands/CommandDashboard/CommandDashboard.ts"],"names":[],"mappings":"AAAA,OAAO,EAAW,OAAO,EAAC,MAAM,kBAAkB,CAAC;AACnD,OAAO,KAAK,EAAC,OAAO,EAAgB,MAAM,cAAc,CAAC;AAOzD,eAAO,MAAM,sBAAsB,GAAI,KAAK,OAAO,EAAE,UAAU,OAAO,YA6FrE,CAAA"}
@@ -2,6 +2,7 @@ import { Argument, Command } from "#commander/index";
2
2
  import { DaemonClient } from "#daemon/DaemonClient";
3
3
  import { AppEventEmitter } from "#cli-app/AppEventEmitter";
4
4
  import { initDashboard } from "#cli-app/Dashboard";
5
+ import { pickTunnel } from "#cli-app/TunnelPicker";
5
6
  export const createCommandDashboard = (ctx, _program) => {
6
7
  return new Command('dashboard')
7
8
  .description('Attach to a running tunnel and show the live dashboard')
@@ -14,33 +15,72 @@ export const createCommandDashboard = (ctx, _program) => {
14
15
  const listResult = await new DaemonClient().send({ type: 'list' });
15
16
  if (listResult.type !== 'list')
16
17
  return ctx.exit(1);
17
- const profileName = args.profile ?? listResult.tunnels[0]?.profileName;
18
- if (!profileName) {
18
+ if (listResult.tunnels.length === 0) {
19
19
  ctx.logger.error('No active tunnels.');
20
20
  return ctx.exit(1);
21
21
  }
22
- const appEmitter = new AppEventEmitter();
23
- const attachResult = await DaemonClient.attach(profileName, appEmitter).catch((e) => {
24
- ctx.logger.error(e.message);
25
- ctx.exit(1);
26
- });
22
+ // A: pre-start picker when no profile arg and multiple tunnels are running
23
+ let profileName = args.profile;
24
+ if (!profileName) {
25
+ if (listResult.tunnels.length === 1) {
26
+ profileName = listResult.tunnels[0].profileName;
27
+ }
28
+ else {
29
+ const picked = await pickTunnel(listResult.tunnels);
30
+ if (!picked)
31
+ return ctx.exit(0);
32
+ profileName = picked.profileName;
33
+ }
34
+ }
27
35
  const tunnelInfo = listResult.tunnels.find(t => t.profileName === profileName);
28
36
  if (!tunnelInfo) {
29
37
  ctx.logger.error(`No tunnel running for profile "${profileName}".`);
30
38
  return ctx.exit(1);
31
39
  }
32
- const [host, portStr] = tunnelInfo.target.split(':');
33
- const mockConfig = {
34
- profileName,
35
- filepath: '-',
36
- allowedCidr: [],
37
- deniedCidr: [],
38
- proxy: { proxyIdent: '', proxyURL: tunnelInfo.proxyURL },
39
- target: { host: host ?? 'localhost', port: Number(portStr ?? 80), protocol: 'http' },
40
- serverConfig: { url: '', authToken: '' },
41
- apiClient: ctx.apiClient,
40
+ const buildMockConfig = (info) => {
41
+ const [host, portStr] = info.target.split(':');
42
+ return {
43
+ profileName: info.profileName,
44
+ filepath: '-',
45
+ allowedCidr: [],
46
+ deniedCidr: [],
47
+ proxy: { proxyIdent: '', proxyURL: info.proxyURL },
48
+ target: { host: host ?? 'localhost', port: Number(portStr ?? 80), protocol: 'http' },
49
+ serverConfig: { url: '', authToken: '' },
50
+ apiClient: ctx.apiClient,
51
+ };
52
+ };
53
+ // Track the current attach so it can be disconnected on tunnel switch
54
+ const attachState = { disconnect: () => { } };
55
+ // C: switch handler — called from inside the dashboard via Ctrl+T modal
56
+ let rerenderDashboard = null;
57
+ const onSwitchTunnel = async (newTunnel) => {
58
+ attachState.disconnect();
59
+ const newEmitter = new AppEventEmitter();
60
+ const { promise, disconnect } = DaemonClient.attach(newTunnel.profileName, newEmitter);
61
+ attachState.disconnect = disconnect;
62
+ const newResult = await promise.catch(() => null);
63
+ const refreshed = await new DaemonClient().send({ type: 'list' });
64
+ const allTunnels = refreshed.type === 'list' ? refreshed.tunnels : [newTunnel];
65
+ rerenderDashboard?.(buildMockConfig(newTunnel), newEmitter, allTunnels);
66
+ if (newResult?.status === 'connected')
67
+ newEmitter.emit('connect');
68
+ if (newResult?.status === 'disconnected')
69
+ newEmitter.emit('disconnect', 'io client disconnect');
70
+ if (newResult?.lastLatency !== undefined)
71
+ newEmitter.emit('latency', newResult.lastLatency);
72
+ if (newResult?.requestCount)
73
+ newEmitter.emit('request-count', newResult.requestCount);
42
74
  };
43
- initDashboard(mockConfig, appEmitter);
75
+ const appEmitter = new AppEventEmitter();
76
+ const { promise: attachPromise, disconnect } = DaemonClient.attach(profileName, appEmitter);
77
+ attachState.disconnect = disconnect;
78
+ const attachResult = await attachPromise.catch((e) => {
79
+ ctx.logger.error(e.message);
80
+ ctx.exit(1);
81
+ });
82
+ const { rerender } = initDashboard(buildMockConfig(tunnelInfo), appEmitter, listResult.tunnels, onSwitchTunnel);
83
+ rerenderDashboard = rerender;
44
84
  if (attachResult?.status === 'connected')
45
85
  appEmitter.emit('connect');
46
86
  if (attachResult?.status === 'disconnected')
@@ -1 +1 @@
1
- {"version":3,"file":"CommandDashboard.js","sourceRoot":"","sources":["../../../src/commands/CommandDashboard/CommandDashboard.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"CommandDashboard.js","sourceRoot":"","sources":["../../../src/commands/CommandDashboard/CommandDashboard.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ import { Command } from "#commander/index";
2
+ import type { Context } from "#types/types";
3
+ export declare const createCommandDown: (ctx: Context, _program: Command) => Command;
4
+ //# sourceMappingURL=CommandDown.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CommandDown.d.ts","sourceRoot":"","sources":["../../../src/commands/CommandDown/CommandDown.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,OAAO,EAAC,MAAM,kBAAkB,CAAC;AACzC,OAAO,KAAK,EAAC,OAAO,EAAC,MAAM,cAAc,CAAC;AAE1C,eAAO,MAAM,iBAAiB,GAAI,KAAK,OAAO,EAAE,UAAU,OAAO,YAkChE,CAAA"}
@@ -0,0 +1,35 @@
1
+ import { Command } from "#commander/index";
2
+ import { DaemonClient } from "#daemon/DaemonClient";
3
+ export const createCommandDown = (ctx, _program) => {
4
+ return new Command('down')
5
+ .description('Stop all tunnels belonging to the local config profiles')
6
+ .action(async () => {
7
+ if (!ctx.config.local) {
8
+ ctx.logger.error('No local config found. Run `tunli init` to create one.');
9
+ return ctx.exit(1);
10
+ }
11
+ if (!await DaemonClient.isRunning()) {
12
+ ctx.logger.info('No daemon running.');
13
+ return;
14
+ }
15
+ const listResult = await new DaemonClient().send({ type: 'list' });
16
+ if (listResult.type !== 'list')
17
+ return ctx.exit(1);
18
+ const localProfileNames = new Set(ctx.config.local.profiles.map(p => p.name));
19
+ const toStop = listResult.tunnels.filter(t => localProfileNames.has(t.profileName));
20
+ if (toStop.length === 0) {
21
+ ctx.logger.info('No active tunnels for this project.');
22
+ return;
23
+ }
24
+ for (const tunnel of toStop) {
25
+ const result = await new DaemonClient().send({ type: 'stop', profileName: tunnel.profileName });
26
+ if (result.type === 'stopped') {
27
+ ctx.logger.info(`${tunnel.profileName}: stopped`);
28
+ }
29
+ else if (result.type === 'error') {
30
+ ctx.logger.error(`${tunnel.profileName}: ${result.message}`);
31
+ }
32
+ }
33
+ });
34
+ };
35
+ //# sourceMappingURL=CommandDown.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CommandDown.js","sourceRoot":"","sources":["../../../src/commands/CommandDown/CommandDown.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,OAAO,EAAC,MAAM,kBAAkB,CAAC;AAEzC,OAAO,EAAC,YAAY,EAAC,MAAM,sBAAsB,CAAC;AAClD,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,GAAY,EAAE,QAAiB,EAAE,EAAE;IACnE,OAAO,IAAI,OAAO,CAAC,MAAM,CAAC;SACvB,WAAW,CAAC,yDAAyD,CAAC;SACtE,MAAM,CAAC,KAAK,IAAI,EAAE;QACjB,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;YACtB,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,wDAAwD,CAAC,CAAA;YAC1E,OAAO,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;QACpB,CAAC;QAED,IAAI,CAAC,MAAM,YAAY,CAAC,SAAS,EAAE,EAAE,CAAC;YACpC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAA;YACrC,OAAM;QACR,CAAC;QAED,MAAM,UAAU,GAAG,MAAM,IAAI,YAAY,EAAE,CAAC,IAAI,CAAC,EAAC,IAAI,EAAE,MAAM,EAAC,CAAC,CAAA;QAChE,IAAI,UAAU,CAAC,IAAI,KAAK,MAAM;YAAE,OAAO,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;QAElD,MAAM,iBAAiB,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAA;QAC7E,MAAM,MAAM,GAAG,UAAU,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAA;QAEnF,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACxB,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,qCAAqC,CAAC,CAAA;YACtD,OAAM;QACR,CAAC;QAED,KAAK,MAAM,MAAM,IAAI,MAAM,EAAE,CAAC;YAC5B,MAAM,MAAM,GAAG,MAAM,IAAI,YAAY,EAAE,CAAC,IAAI,CAAC,EAAC,IAAI,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,CAAC,WAAW,EAAC,CAAC,CAAA;YAC7F,IAAI,MAAM,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;gBAC9B,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,WAAW,WAAW,CAAC,CAAA;YACnD,CAAC;iBAAM,IAAI,MAAM,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;gBACnC,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,MAAM,CAAC,WAAW,KAAK,MAAM,CAAC,OAAO,EAAE,CAAC,CAAA;YAC9D,CAAC;QACH,CAAC;IACH,CAAC,CAAC,CAAA;AACN,CAAC,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"CommandHttp.d.ts","sourceRoot":"","sources":["../../../src/commands/CommandHTTP/CommandHttp.ts"],"names":[],"mappings":"AAAA,OAAO,EAAW,OAAO,EAA2B,MAAM,kBAAkB,CAAC;AAC7E,OAAO,KAAK,EAAC,OAAO,EAAC,MAAM,cAAc,CAAC;AAY1C,eAAO,MAAM,iBAAiB,GAAI,KAAK,OAAO,EAAE,UAAU,OAAO,YA6DhE,CAAA"}
1
+ {"version":3,"file":"CommandHttp.d.ts","sourceRoot":"","sources":["../../../src/commands/CommandHTTP/CommandHttp.ts"],"names":[],"mappings":"AAAA,OAAO,EAAW,OAAO,EAA2B,MAAM,kBAAkB,CAAC;AAC7E,OAAO,KAAK,EAAC,OAAO,EAAC,MAAM,cAAc,CAAC;AAY1C,eAAO,MAAM,iBAAiB,GAAI,KAAK,OAAO,EAAE,UAAU,OAAO,YAiEhE,CAAA"}
@@ -15,8 +15,8 @@ export const createCommandHttp = (ctx, _program) => {
15
15
  addSharedOptions(cmd, 'save');
16
16
  cmd.addArgument(new Argument('port', 'Local port to forward (e.g. 3000)').required().parse(checkPort));
17
17
  cmd.addArgument(new Argument('host', 'Local host to forward to (default: localhost)'));
18
- cmd.addOption(new Option('foreground', 'Run tunnel in the foreground (no daemon)'));
19
- cmd.addOption(new Option('dashboard', 'Show live dashboard (implies --foreground)'));
18
+ cmd.addOption(new Option('foreground', 'Run tunnel in the foreground (no daemon)').alias('fg'));
19
+ cmd.addOption(new Option('dashboard', 'Show live dashboard (implies --foreground)').alias('db'));
20
20
  cmd.addOption(new Option('logs', 'Show live log output (implies --foreground)'));
21
21
  cmd.action(async ({ args, options }) => {
22
22
  const port = args.port;
@@ -38,7 +38,7 @@ export const createCommandHttp = (ctx, _program) => {
38
38
  process.on('SIGINT', () => process.exit(0));
39
39
  process.on('SIGTERM', () => process.exit(0));
40
40
  if (opts.dashboard)
41
- initDashboard(validated, appEmitter);
41
+ initDashboard(validated, appEmitter, [{ profileName: validated.profileName, proxyURL: validated.proxy.proxyURL, target: `${validated.target.host}:${validated.target.port}`, status: 'connecting' }], () => { });
42
42
  else if (opts.logs)
43
43
  initLiveLog(validated, appEmitter);
44
44
  return;
@@ -61,8 +61,11 @@ export const createCommandHttp = (ctx, _program) => {
61
61
  ctx.logger.error(result.message);
62
62
  return ctx.exit(1);
63
63
  }
64
- if (result.type === 'started')
65
- ctx.logger.info(`Tunnel started: ${result.proxyURL}`);
64
+ if (result.type === 'started') {
65
+ const targetUrl = `${validated.target.protocol}://${validated.target.host}:${validated.target.port}`;
66
+ const status = result.alreadyRunning ? 'Already running' : '✓ Connected';
67
+ ctx.logger.info(`${status}\n✓ Public URL: ${result.proxyURL}\n✓ Target URL: ${targetUrl}`);
68
+ }
66
69
  });
67
70
  return cmd;
68
71
  };
@@ -1 +1 @@
1
- {"version":3,"file":"CommandHttp.js","sourceRoot":"","sources":["../../../src/commands/CommandHTTP/CommandHttp.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"CommandHttp.js","sourceRoot":"","sources":["../../../src/commands/CommandHTTP/CommandHttp.ts"],"names":[],"mappings":"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"}
@@ -21,7 +21,7 @@ export const createCommandLogs = (ctx, _program) => {
21
21
  return ctx.exit(1);
22
22
  }
23
23
  const appEmitter = new AppEventEmitter();
24
- const status = await DaemonClient.attach(profileName, appEmitter).catch((e) => {
24
+ const status = await DaemonClient.attach(profileName, appEmitter).promise.catch((e) => {
25
25
  ctx.logger.error(e.message);
26
26
  ctx.exit(1);
27
27
  });
@@ -1 +1 @@
1
- {"version":3,"file":"CommandLogs.js","sourceRoot":"","sources":["../../../src/commands/CommandLogs/CommandLogs.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,QAAQ,EAAE,OAAO,EAAC,MAAM,kBAAkB,CAAC;AAEnD,OAAO,EAAC,YAAY,EAAC,MAAM,sBAAsB,CAAC;AAClD,OAAO,EAAC,eAAe,EAAC,MAAM,0BAA0B,CAAC;AACzD,OAAO,EAAC,WAAW,EAAC,MAAM,kBAAkB,CAAC;AAE7C,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,GAAY,EAAE,QAAiB,EAAE,EAAE;IACnE,OAAO,IAAI,OAAO,CAAC,MAAM,CAAC;SACvB,KAAK,CAAC,KAAK,CAAC;SACZ,WAAW,CAAC,uDAAuD,CAAC;SACpE,WAAW,CAAC,IAAI,QAAQ,CAAC,SAAS,EAAE,2BAA2B,CAAC,CAAC;SACjE,MAAM,CAAC,KAAK,EAAE,EAAC,IAAI,EAAC,EAAE,EAAE;QACvB,IAAI,CAAC,MAAM,YAAY,CAAC,SAAS,EAAE,EAAE,CAAC;YACpC,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,mEAAmE,CAAC,CAAA;YACrF,OAAO,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;QACpB,CAAC;QAED,MAAM,UAAU,GAAG,MAAM,IAAI,YAAY,EAAE,CAAC,IAAI,CAAC,EAAC,IAAI,EAAE,MAAM,EAAC,CAAC,CAAA;QAChE,IAAI,UAAU,CAAC,IAAI,KAAK,MAAM;YAAE,OAAO,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;QAElD,MAAM,WAAW,GAAI,IAAI,CAAC,OAA8B,IAAI,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,WAAW,CAAA;QAC9F,IAAI,CAAC,WAAW,EAAE,CAAC;YACjB,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,oBAAoB,CAAC,CAAA;YACtC,OAAO,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;QACpB,CAAC;QAED,MAAM,UAAU,GAAG,IAAI,eAAe,EAAE,CAAA;QAExC,MAAM,MAAM,GAAG,MAAM,YAAY,CAAC,MAAM,CAAC,WAAW,EAAE,UAAU,CAAC,CAAC,KAAK,CAAC,CAAC,CAAQ,EAAE,EAAE;YACnF,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,CAAA;YAC3B,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;QACb,CAAC,CAAC,CAAA;QAEF,IAAI,MAAM,EAAE,MAAM,KAAK,WAAW;YAAE,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;QAC9D,WAAW,CAAC,SAAkB,EAAE,UAAU,CAAC,CAAA;IAC7C,CAAC,CAAC,CAAA;AACN,CAAC,CAAA"}
1
+ {"version":3,"file":"CommandLogs.js","sourceRoot":"","sources":["../../../src/commands/CommandLogs/CommandLogs.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,QAAQ,EAAE,OAAO,EAAC,MAAM,kBAAkB,CAAC;AAEnD,OAAO,EAAC,YAAY,EAAC,MAAM,sBAAsB,CAAC;AAClD,OAAO,EAAC,eAAe,EAAC,MAAM,0BAA0B,CAAC;AACzD,OAAO,EAAC,WAAW,EAAC,MAAM,kBAAkB,CAAC;AAE7C,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,GAAY,EAAE,QAAiB,EAAE,EAAE;IACnE,OAAO,IAAI,OAAO,CAAC,MAAM,CAAC;SACvB,KAAK,CAAC,KAAK,CAAC;SACZ,WAAW,CAAC,uDAAuD,CAAC;SACpE,WAAW,CAAC,IAAI,QAAQ,CAAC,SAAS,EAAE,2BAA2B,CAAC,CAAC;SACjE,MAAM,CAAC,KAAK,EAAE,EAAC,IAAI,EAAC,EAAE,EAAE;QACvB,IAAI,CAAC,MAAM,YAAY,CAAC,SAAS,EAAE,EAAE,CAAC;YACpC,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,mEAAmE,CAAC,CAAA;YACrF,OAAO,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;QACpB,CAAC;QAED,MAAM,UAAU,GAAG,MAAM,IAAI,YAAY,EAAE,CAAC,IAAI,CAAC,EAAC,IAAI,EAAE,MAAM,EAAC,CAAC,CAAA;QAChE,IAAI,UAAU,CAAC,IAAI,KAAK,MAAM;YAAE,OAAO,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;QAElD,MAAM,WAAW,GAAI,IAAI,CAAC,OAA8B,IAAI,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,WAAW,CAAA;QAC9F,IAAI,CAAC,WAAW,EAAE,CAAC;YACjB,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,oBAAoB,CAAC,CAAA;YACtC,OAAO,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;QACpB,CAAC;QAED,MAAM,UAAU,GAAG,IAAI,eAAe,EAAE,CAAA;QAExC,MAAM,MAAM,GAAG,MAAM,YAAY,CAAC,MAAM,CAAC,WAAW,EAAE,UAAU,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAQ,EAAE,EAAE;YAC3F,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,CAAA;YAC3B,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;QACb,CAAC,CAAC,CAAA;QAEF,IAAI,MAAM,EAAE,MAAM,KAAK,WAAW;YAAE,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;QAC9D,WAAW,CAAC,SAAkB,EAAE,UAAU,CAAC,CAAA;IAC7C,CAAC,CAAC,CAAA;AACN,CAAC,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"CommandStop.d.ts","sourceRoot":"","sources":["../../../src/commands/CommandStop/CommandStop.ts"],"names":[],"mappings":"AAAA,OAAO,EAAW,OAAO,EAAuC,MAAM,kBAAkB,CAAC;AACzF,OAAO,KAAK,EAAC,OAAO,EAAC,MAAM,cAAc,CAAC;AAG1C,eAAO,MAAM,iBAAiB,GAAI,KAAK,OAAO,EAAE,UAAU,OAAO,YAmBhE,CAAA"}
1
+ {"version":3,"file":"CommandStop.d.ts","sourceRoot":"","sources":["../../../src/commands/CommandStop/CommandStop.ts"],"names":[],"mappings":"AAAA,OAAO,EAAW,OAAO,EAAC,MAAM,kBAAkB,CAAC;AACnD,OAAO,KAAK,EAAC,OAAO,EAAC,MAAM,cAAc,CAAC;AAG1C,eAAO,MAAM,iBAAiB,GAAI,KAAK,OAAO,EAAE,UAAU,OAAO,YAqBhE,CAAA"}
@@ -2,23 +2,25 @@ import { Argument, Command } from "#commander/index";
2
2
  import { DaemonClient } from "#daemon/DaemonClient";
3
3
  export const createCommandStop = (ctx, _program) => {
4
4
  return new Command('stop')
5
- .description('Stop a running tunnel')
6
- .addArgument(new Argument('profile', 'Profile name of the tunnel to stop'))
7
- .action(async (parseResult) => {
8
- const profile = parseResult.args.profile;
5
+ .description('Stop one or more running tunnels')
6
+ .addArgument(new Argument('profiles', 'Profile name(s) of the tunnel(s) to stop').many())
7
+ .action(async ({ args }) => {
8
+ const profiles = args.profiles;
9
9
  if (!await DaemonClient.isRunning()) {
10
10
  ctx.logger.info('No daemon running.');
11
11
  return;
12
12
  }
13
- const result = await new DaemonClient().send({ type: 'stop', profileName: profile });
14
- if (result.type === 'stopped') {
15
- ctx.logger.info(`Tunnel "${profile}" stopped.`);
16
- }
17
- else if (result.type === 'error') {
18
- ctx.logger.error(result.message);
19
- }
20
- else {
21
- ctx.logger.error('Unexpected response from daemon.');
13
+ for (const profile of profiles) {
14
+ const result = await new DaemonClient().send({ type: 'stop', profileName: profile });
15
+ if (result.type === 'stopped') {
16
+ ctx.logger.info(`Tunnel "${profile}" stopped.`);
17
+ }
18
+ else if (result.type === 'error') {
19
+ ctx.logger.error(result.message);
20
+ }
21
+ else {
22
+ ctx.logger.error('Unexpected response from daemon.');
23
+ }
22
24
  }
23
25
  });
24
26
  };
@@ -1 +1 @@
1
- {"version":3,"file":"CommandStop.js","sourceRoot":"","sources":["../../../src/commands/CommandStop/CommandStop.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,QAAQ,EAAE,OAAO,EAAuC,MAAM,kBAAkB,CAAC;AAEzF,OAAO,EAAC,YAAY,EAAC,MAAM,sBAAsB,CAAC;AAElD,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,GAAY,EAAE,QAAiB,EAAE,EAAE;IACnE,OAAO,IAAI,OAAO,CAAC,MAAM,CAAC;SACvB,WAAW,CAAC,uBAAuB,CAAC;SACpC,WAAW,CAAC,IAAI,QAAQ,CAAC,SAAS,EAAE,oCAAoC,CAAC,CAAC;SAC1E,MAAM,CAAC,KAAK,EAAE,WAA4D,EAAE,EAAE;QAC7E,MAAM,OAAO,GAAG,WAAW,CAAC,IAAI,CAAC,OAAO,CAAA;QACxC,IAAI,CAAC,MAAM,YAAY,CAAC,SAAS,EAAE,EAAE,CAAC;YACpC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAA;YACrC,OAAM;QACR,CAAC;QACD,MAAM,MAAM,GAAG,MAAM,IAAI,YAAY,EAAE,CAAC,IAAI,CAAC,EAAC,IAAI,EAAE,MAAM,EAAE,WAAW,EAAE,OAAO,EAAC,CAAC,CAAA;QAClF,IAAI,MAAM,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;YAC9B,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,OAAO,YAAY,CAAC,CAAA;QACjD,CAAC;aAAM,IAAI,MAAM,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;YACnC,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,CAAA;QAClC,CAAC;aAAM,CAAC;YACN,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,kCAAkC,CAAC,CAAA;QACtD,CAAC;IACH,CAAC,CAAC,CAAA;AACN,CAAC,CAAA"}
1
+ {"version":3,"file":"CommandStop.js","sourceRoot":"","sources":["../../../src/commands/CommandStop/CommandStop.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,QAAQ,EAAE,OAAO,EAAC,MAAM,kBAAkB,CAAC;AAEnD,OAAO,EAAC,YAAY,EAAC,MAAM,sBAAsB,CAAC;AAElD,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,GAAY,EAAE,QAAiB,EAAE,EAAE;IACnE,OAAO,IAAI,OAAO,CAAC,MAAM,CAAC;SACvB,WAAW,CAAC,kCAAkC,CAAC;SAC/C,WAAW,CAAC,IAAI,QAAQ,CAAC,UAAU,EAAE,0CAA0C,CAAC,CAAC,IAAI,EAAE,CAAC;SACxF,MAAM,CAAC,KAAK,EAAE,EAAC,IAAI,EAAC,EAAE,EAAE;QACvB,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAoB,CAAA;QAC1C,IAAI,CAAC,MAAM,YAAY,CAAC,SAAS,EAAE,EAAE,CAAC;YACpC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAA;YACrC,OAAM;QACR,CAAC;QACD,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;YAC/B,MAAM,MAAM,GAAG,MAAM,IAAI,YAAY,EAAE,CAAC,IAAI,CAAC,EAAC,IAAI,EAAE,MAAM,EAAE,WAAW,EAAE,OAAO,EAAC,CAAC,CAAA;YAClF,IAAI,MAAM,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;gBAC9B,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,OAAO,YAAY,CAAC,CAAA;YACjD,CAAC;iBAAM,IAAI,MAAM,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;gBACnC,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,CAAA;YAClC,CAAC;iBAAM,CAAC;gBACN,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,kCAAkC,CAAC,CAAA;YACtD,CAAC;QACH,CAAC;IACH,CAAC,CAAC,CAAA;AACN,CAAC,CAAA"}
@@ -0,0 +1,4 @@
1
+ import { Command } from "#commander/index";
2
+ import type { Context } from "#types/types";
3
+ export declare const createCommandUp: (ctx: Context, _program: Command) => Command;
4
+ //# sourceMappingURL=CommandUp.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CommandUp.d.ts","sourceRoot":"","sources":["../../../src/commands/CommandUp/CommandUp.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,OAAO,EAAC,MAAM,kBAAkB,CAAC;AACzC,OAAO,KAAK,EAAC,OAAO,EAAC,MAAM,cAAc,CAAC;AAG1C,eAAO,MAAM,eAAe,GAAI,KAAK,OAAO,EAAE,UAAU,OAAO,YAoD9D,CAAA"}
@@ -0,0 +1,53 @@
1
+ import { Command } from "#commander/index";
2
+ import { validateProfileConfig } from "#config/validations/validateProfileConfig";
3
+ import { DaemonClient } from "#daemon/DaemonClient";
4
+ export const createCommandUp = (ctx, _program) => {
5
+ return new Command('up')
6
+ .description('Start all profiles defined in the local config')
7
+ .action(async () => {
8
+ if (!ctx.config.local) {
9
+ ctx.logger.error('No local config found. Run `tunli init` to create one.');
10
+ return ctx.exit(1);
11
+ }
12
+ const profiles = ctx.config.local.profiles;
13
+ if (profiles.length === 0) {
14
+ ctx.logger.error('No profiles defined in local config. Add profiles to .tunli/config.json first.');
15
+ return ctx.exit(1);
16
+ }
17
+ await DaemonClient.ensureRunning();
18
+ for (const profile of profiles) {
19
+ const validated = await validateProfileConfig(ctx, profile).catch((e) => {
20
+ ctx.logger.error(`${profile.name}: ${e.message}`);
21
+ return null;
22
+ });
23
+ if (!validated)
24
+ continue;
25
+ const result = await new DaemonClient().send({
26
+ type: 'start',
27
+ profileName: validated.profileName,
28
+ proxyIdent: validated.proxy.proxyIdent,
29
+ proxyURL: validated.proxy.proxyURL,
30
+ serverUrl: validated.serverConfig.url,
31
+ authToken: validated.serverConfig.authToken,
32
+ target: validated.target,
33
+ filepath: validated.filepath,
34
+ allowedCidr: validated.allowedCidr,
35
+ deniedCidr: validated.deniedCidr,
36
+ });
37
+ if (result.type === 'error') {
38
+ ctx.logger.error(`${validated.profileName}: ${result.message}`);
39
+ continue;
40
+ }
41
+ if (result.type === 'started') {
42
+ const targetUrl = `${validated.target.protocol}://${validated.target.host}:${validated.target.port}`;
43
+ if (result.alreadyRunning) {
44
+ ctx.logger.info(`${validated.profileName}: already running → ${result.proxyURL}`);
45
+ }
46
+ else {
47
+ ctx.logger.info(`${validated.profileName}: ✓ ${result.proxyURL} → ${targetUrl}`);
48
+ }
49
+ }
50
+ }
51
+ });
52
+ };
53
+ //# sourceMappingURL=CommandUp.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CommandUp.js","sourceRoot":"","sources":["../../../src/commands/CommandUp/CommandUp.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"CommandUseProfile.d.ts","sourceRoot":"","sources":["../../../src/commands/CommandUseProfile/CommandUseProfile.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,OAAO,EAAC,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAW,OAAO,EAAyC,MAAM,kBAAkB,CAAC;AAwB3F,eAAO,MAAM,yBAAyB,GAAI,KAAK,OAAO,EAAE,UAAU,OAAO,YAkDxE,CAAA"}
1
+ {"version":3,"file":"CommandUseProfile.d.ts","sourceRoot":"","sources":["../../../src/commands/CommandUseProfile/CommandUseProfile.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,OAAO,EAAC,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAW,OAAO,EAAyC,MAAM,kBAAkB,CAAC;AAwB3F,eAAO,MAAM,yBAAyB,GAAI,KAAK,OAAO,EAAE,UAAU,OAAO,YAoDxE,CAAA"}
@@ -55,7 +55,9 @@ export const createCommandStartProfile = (ctx, _program) => {
55
55
  return ctx.exit(1);
56
56
  }
57
57
  if (result.type === 'started') {
58
- ctx.logger.info(`Tunnel started: ${result.proxyURL}`);
58
+ const targetUrl = `${validated.target.protocol}://${validated.target.host}:${validated.target.port}`;
59
+ const status = result.alreadyRunning ? 'Already running' : '✓ Connected';
60
+ ctx.logger.info(`${status}\n✓ Public URL: ${result.proxyURL}\n✓ Target URL: ${targetUrl}`);
59
61
  }
60
62
  });
61
63
  return cmd;
@@ -1 +1 @@
1
- {"version":3,"file":"CommandUseProfile.js","sourceRoot":"","sources":["../../../src/commands/CommandUseProfile/CommandUseProfile.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"CommandUseProfile.js","sourceRoot":"","sources":["../../../src/commands/CommandUseProfile/CommandUseProfile.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/commands/utils.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,MAAM,GAAI,MAAM,OAAO,QAKnC,CAAA;AAED,eAAO,MAAM,OAAO,GAAI,UAAU,MAAM,KAAG,OAAO,CAAC,OAAO,CAQzD,CAAA"}
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/commands/utils.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,MAAM,GAAI,MAAM,OAAO,QAKnC,CAAA;AAED,eAAO,MAAM,OAAO,GAAI,UAAU,MAAM,KAAG,OAAO,CAAC,OAAO,CASzD,CAAA"}
@@ -8,6 +8,7 @@ export const toJSON = (data) => {
8
8
  export const confirm = (question) => {
9
9
  const rl = createInterface({ input: process.stdin, output: process.stdout });
10
10
  return new Promise(resolve => {
11
+ rl.on('close', () => { process.stdout.write('\n'); resolve(false); });
11
12
  rl.question(question, answer => {
12
13
  rl.close();
13
14
  resolve(answer.trim().toLowerCase() === 'y');
@@ -1 +1 @@
1
- {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/commands/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,eAAe,EAAC,MAAM,UAAU,CAAA;AAExC,MAAM,CAAC,MAAM,MAAM,GAAG,CAAC,IAAa,EAAE,EAAE;IACtC,IAAI,IAAI,IAAI,IAAI,EAAE,CAAC;QACjB,OAAO,IAAI,CAAA;IACb,CAAC;IACD,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAA;AACzC,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,OAAO,GAAG,CAAC,QAAgB,EAAoB,EAAE;IAC5D,MAAM,EAAE,GAAG,eAAe,CAAC,EAAC,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAC,CAAC,CAAA;IAC1E,OAAO,IAAI,OAAO,CAAC,OAAO,CAAC,EAAE;QAC3B,EAAE,CAAC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC,EAAE;YAC7B,EAAE,CAAC,KAAK,EAAE,CAAA;YACV,OAAO,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,KAAK,GAAG,CAAC,CAAA;QAC9C,CAAC,CAAC,CAAA;IACJ,CAAC,CAAC,CAAA;AACJ,CAAC,CAAA"}
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/commands/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,eAAe,EAAC,MAAM,UAAU,CAAA;AAExC,MAAM,CAAC,MAAM,MAAM,GAAG,CAAC,IAAa,EAAE,EAAE;IACtC,IAAI,IAAI,IAAI,IAAI,EAAE,CAAC;QACjB,OAAO,IAAI,CAAA;IACb,CAAC;IACD,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAA;AACzC,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,OAAO,GAAG,CAAC,QAAgB,EAAoB,EAAE;IAC5D,MAAM,EAAE,GAAG,eAAe,CAAC,EAAC,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAC,CAAC,CAAA;IAC1E,OAAO,IAAI,OAAO,CAAC,OAAO,CAAC,EAAE;QAC3B,EAAE,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAA,CAAC,CAAC,CAAC,CAAA;QACpE,EAAE,CAAC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC,EAAE;YAC7B,EAAE,CAAC,KAAK,EAAE,CAAA;YACV,OAAO,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,KAAK,GAAG,CAAC,CAAA;QAC9C,CAAC,CAAC,CAAA;IACJ,CAAC,CAAC,CAAA;AACJ,CAAC,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"TempProfileConfig.d.ts","sourceRoot":"","sources":["../../src/config/TempProfileConfig.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,mBAAmB,EAAC,MAAM,6BAA6B,CAAC;AAChE,OAAO,KAAK,EAAC,YAAY,EAAC,MAAM,sBAAsB,CAAC;AAGvD,qBAAa,iBAAkB,SAAQ,mBAAmB;gBAE5C,MAAM,EAAE,YAAY;IAIhC,IAAI,IAAI,IAAI,MAAM,CAEjB;IAED,IAAI;CAGL"}
1
+ {"version":3,"file":"TempProfileConfig.d.ts","sourceRoot":"","sources":["../../src/config/TempProfileConfig.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,mBAAmB,EAAC,MAAM,6BAA6B,CAAC;AAChE,OAAO,KAAK,EAAC,YAAY,EAAC,MAAM,sBAAsB,CAAC;AAwBvD,qBAAa,iBAAkB,SAAQ,mBAAmB;gBAE5C,MAAM,EAAE,YAAY;IAIhC,IAAI,IAAI,IAAI,MAAM,CAIjB;IAED,IAAI;CAGL"}
@@ -1,10 +1,31 @@
1
1
  import { ParsedProfileConfig } from "#config/ParsedProfileConfig";
2
+ import { sha256 } from "#utils/hashFunctions";
3
+ const ADJECTIVES = [
4
+ 'amber', 'brave', 'calm', 'cedar', 'crisp',
5
+ 'dusk', 'eager', 'fair', 'fleet', 'frost',
6
+ 'glad', 'gold', 'grand', 'gray', 'green',
7
+ 'hollow', 'jade', 'keen', 'kind', 'lark',
8
+ 'lean', 'light', 'lone', 'mist', 'mossy',
9
+ 'neat', 'nimble', 'noble', 'north', 'oaken',
10
+ 'pale', 'prime', 'proud', 'quick', 'quiet',
11
+ 'rapid', 'raw', 'red', 'rocky', 'round',
12
+ 'sage', 'sharp', 'shy', 'silk', 'slim',
13
+ 'soft', 'still', 'stone', 'swift', 'teal',
14
+ 'thin', 'tidy', 'true', 'vivid', 'warm',
15
+ 'wild', 'wise', 'woody', 'young', 'zeal',
16
+ ];
17
+ const adjectiveForHostPort = (host, port) => {
18
+ const index = parseInt(sha256(`${host}:${port}`).slice(0, 8), 16);
19
+ return ADJECTIVES[index % ADJECTIVES.length];
20
+ };
2
21
  export class TempProfileConfig extends ParsedProfileConfig {
3
22
  constructor(config) {
4
23
  super(config, '__TEMP__', {}, false);
5
24
  }
6
25
  get name() {
7
- return this.target;
26
+ const port = this.port ?? 0;
27
+ const host = this.host ?? 'localhost';
28
+ return `${adjectiveForHostPort(host, port)}-${port}`;
8
29
  }
9
30
  save() {
10
31
  throw new Error('ich kann und darf nicht gespeichert werden');
@@ -1 +1 @@
1
- {"version":3,"file":"TempProfileConfig.js","sourceRoot":"","sources":["../../src/config/TempProfileConfig.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,mBAAmB,EAAC,MAAM,6BAA6B,CAAC;AAIhE,MAAM,OAAO,iBAAkB,SAAQ,mBAAmB;IAExD,YAAY,MAAoB;QAC9B,KAAK,CAAC,MAAM,EAAE,UAAU,EAAE,EAAE,EAAE,KAAK,CAAC,CAAC;IACvC,CAAC;IAED,IAAI,IAAI;QACN,OAAO,IAAI,CAAC,MAAM,CAAA;IACpB,CAAC;IAED,IAAI;QACF,MAAM,IAAI,KAAK,CAAC,4CAA4C,CAAC,CAAA;IAC/D,CAAC;CACF"}
1
+ {"version":3,"file":"TempProfileConfig.js","sourceRoot":"","sources":["../../src/config/TempProfileConfig.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,mBAAmB,EAAC,MAAM,6BAA6B,CAAC;AAEhE,OAAO,EAAC,MAAM,EAAC,MAAM,sBAAsB,CAAC;AAE5C,MAAM,UAAU,GAAG;IACjB,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO;IAC1C,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO;IACzC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO;IACxC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM;IACxC,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO;IACxC,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO;IAC3C,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO;IAC1C,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO;IACvC,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM;IACtC,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM;IACzC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM;IACvC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM;CACzC,CAAA;AAED,MAAM,oBAAoB,GAAG,CAAC,IAAY,EAAE,IAAY,EAAU,EAAE;IAClE,MAAM,KAAK,GAAG,QAAQ,CAAC,MAAM,CAAC,GAAG,IAAI,IAAI,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAA;IACjE,OAAO,UAAU,CAAC,KAAK,GAAG,UAAU,CAAC,MAAM,CAAE,CAAA;AAC/C,CAAC,CAAA;AAGD,MAAM,OAAO,iBAAkB,SAAQ,mBAAmB;IAExD,YAAY,MAAoB;QAC9B,KAAK,CAAC,MAAM,EAAE,UAAU,EAAE,EAAE,EAAE,KAAK,CAAC,CAAC;IACvC,CAAC;IAED,IAAI,IAAI;QACN,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,IAAI,CAAC,CAAA;QAC3B,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,IAAI,WAAW,CAAA;QACrC,OAAO,GAAG,oBAAoB,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,IAAI,EAAE,CAAA;IACtD,CAAC;IAED,IAAI;QACF,MAAM,IAAI,KAAK,CAAC,4CAA4C,CAAC,CAAA;IAC/D,CAAC;CACF"}
@@ -4,11 +4,14 @@ export declare class DaemonClient {
4
4
  send(request: DaemonRequest): Promise<DaemonResponse>;
5
5
  static isRunning(): Promise<boolean>;
6
6
  static spawnDaemon(): void;
7
- static attach(profileName: string, appEmitter: AppEventEmitter): Promise<{
8
- status: TunnelInfo['status'];
9
- requestCount: number;
10
- lastLatency?: number;
11
- }>;
7
+ static attach(profileName: string, appEmitter: AppEventEmitter): {
8
+ promise: Promise<{
9
+ status: TunnelInfo['status'];
10
+ requestCount: number;
11
+ lastLatency?: number;
12
+ }>;
13
+ disconnect: () => void;
14
+ };
12
15
  static start(): Promise<void>;
13
16
  static stop(): Promise<void>;
14
17
  static ensureRunning(): Promise<void>;
@@ -1 +1 @@
1
- {"version":3,"file":"DaemonClient.d.ts","sourceRoot":"","sources":["../../src/daemon/DaemonClient.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAC,aAAa,EAAE,cAAc,EAAE,UAAU,EAAC,MAAM,kBAAkB,CAAA;AAC/E,OAAO,KAAK,EAAC,eAAe,EAAC,MAAM,0BAA0B,CAAA;AAO7D,qBAAa,YAAY;IAEjB,IAAI,CAAC,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,cAAc,CAAC;IAyB3D,MAAM,CAAC,SAAS,IAAI,OAAO,CAAC,OAAO,CAAC;IAWpC,MAAM,CAAC,WAAW,IAAI,IAAI;IA0B1B,MAAM,CAAC,MAAM,CAAC,WAAW,EAAE,MAAM,EAAE,UAAU,EAAE,eAAe,GAAG,OAAO,CAAC;QAAE,MAAM,EAAE,UAAU,CAAC,QAAQ,CAAC,CAAC;QAAC,YAAY,EAAE,MAAM,CAAC;QAAC,WAAW,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;WAmEzI,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;WAUtB,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;WAUrB,aAAa,IAAI,OAAO,CAAC,IAAI,CAAC;CAI5C"}
1
+ {"version":3,"file":"DaemonClient.d.ts","sourceRoot":"","sources":["../../src/daemon/DaemonClient.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAC,aAAa,EAAE,cAAc,EAAE,UAAU,EAAC,MAAM,kBAAkB,CAAA;AAC/E,OAAO,KAAK,EAAC,eAAe,EAAC,MAAM,0BAA0B,CAAA;AAO7D,qBAAa,YAAY;IAEjB,IAAI,CAAC,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,cAAc,CAAC;IAyB3D,MAAM,CAAC,SAAS,IAAI,OAAO,CAAC,OAAO,CAAC;IAWpC,MAAM,CAAC,WAAW,IAAI,IAAI;IA2B1B,MAAM,CAAC,MAAM,CAAC,WAAW,EAAE,MAAM,EAAE,UAAU,EAAE,eAAe,GAAG;QAAE,OAAO,EAAE,OAAO,CAAC;YAAE,MAAM,EAAE,UAAU,CAAC,QAAQ,CAAC,CAAC;YAAC,YAAY,EAAE,MAAM,CAAC;YAAC,WAAW,CAAC,EAAE,MAAM,CAAA;SAAE,CAAC,CAAC;QAAC,UAAU,EAAE,MAAM,IAAI,CAAA;KAAE;WAsE9K,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;WAUtB,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;WAUrB,aAAa,IAAI,OAAO,CAAC,IAAI,CAAC;CAI5C"}
@@ -65,9 +65,12 @@ export class DaemonClient {
65
65
  // Attach to a running tunnel, streaming events into the given AppEventEmitter.
66
66
  // Resolves with tunnel info when attach-ok is received.
67
67
  // The socket stays open; events flow until the tunnel stops or process exits.
68
+ // Call disconnect() to close the socket early (e.g. when switching tunnels).
68
69
  static attach(profileName, appEmitter) {
69
- return new Promise((resolve, reject) => {
70
+ let socketRef = null;
71
+ const promise = new Promise((resolve, reject) => {
70
72
  const socket = net.connect(DAEMON_SOCKET_PATH);
73
+ socketRef = socket;
71
74
  let buffer = '';
72
75
  socket.on('connect', () => {
73
76
  socket.write(JSON.stringify({ type: 'attach', profileName }) + '\n');
@@ -128,6 +131,7 @@ export class DaemonClient {
128
131
  socket.on('error', reject);
129
132
  socket.on('close', () => appEmitter.emit('disconnect', 'daemon-closed'));
130
133
  });
134
+ return { promise, disconnect: () => { socketRef?.destroy(); socketRef = null; } };
131
135
  }
132
136
  static async start() {
133
137
  DaemonClient.spawnDaemon();
@@ -1 +1 @@
1
- {"version":3,"file":"DaemonClient.js","sourceRoot":"","sources":["../../src/daemon/DaemonClient.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"DaemonClient.js","sourceRoot":"","sources":["../../src/daemon/DaemonClient.ts"],"names":[],"mappings":"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"}