outray 0.0.2 → 0.0.6

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/dist/auth.d.ts ADDED
@@ -0,0 +1,28 @@
1
+ interface LoginSession {
2
+ loginUrl: string;
3
+ code: string;
4
+ expiresIn: number;
5
+ }
6
+ interface Organization {
7
+ id: string;
8
+ slug: string;
9
+ name: string;
10
+ role: string;
11
+ }
12
+ interface ExchangeResponse {
13
+ orgToken: string;
14
+ expiresAt: string;
15
+ }
16
+ export declare class AuthManager {
17
+ private webUrl;
18
+ private userToken?;
19
+ constructor(webUrl: string, userToken?: string | undefined);
20
+ initiateLogin(): Promise<LoginSession>;
21
+ pollLoginStatus(code: string): Promise<string>;
22
+ fetchOrganizations(): Promise<Organization[]>;
23
+ exchangeToken(orgId: string): Promise<ExchangeResponse>;
24
+ selectOrganization(orgs: Organization[]): Promise<Organization>;
25
+ openBrowser(url: string): void;
26
+ }
27
+ export {};
28
+ //# sourceMappingURL=auth.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"auth.d.ts","sourceRoot":"","sources":["../src/auth.ts"],"names":[],"mappings":"AAIA,UAAU,YAAY;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;CACnB;AAOD,UAAU,YAAY;IACpB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;CACd;AAED,UAAU,gBAAgB;IACxB,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,qBAAa,WAAW;IAEpB,OAAO,CAAC,MAAM;IACd,OAAO,CAAC,SAAS,CAAC;gBADV,MAAM,EAAE,MAAM,EACd,SAAS,CAAC,EAAE,MAAM,YAAA;IAGtB,aAAa,IAAI,OAAO,CAAC,YAAY,CAAC;IAYtC,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IA8B9C,kBAAkB,IAAI,OAAO,CAAC,YAAY,EAAE,CAAC;IAkB7C,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAqBvD,kBAAkB,CAAC,IAAI,EAAE,YAAY,EAAE,GAAG,OAAO,CAAC,YAAY,CAAC;IA8BrE,WAAW,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI;CAe/B"}
package/dist/auth.js ADDED
@@ -0,0 +1,114 @@
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
+ exports.AuthManager = void 0;
7
+ const chalk_1 = __importDefault(require("chalk"));
8
+ const child_process_1 = require("child_process");
9
+ const prompts_1 = __importDefault(require("prompts"));
10
+ class AuthManager {
11
+ constructor(webUrl, userToken) {
12
+ this.webUrl = webUrl;
13
+ this.userToken = userToken;
14
+ }
15
+ async initiateLogin() {
16
+ const response = await fetch(`${this.webUrl}/api/cli/login`, {
17
+ method: "POST",
18
+ });
19
+ if (!response.ok) {
20
+ throw new Error(`Failed to initiate login: ${response.status}`);
21
+ }
22
+ return (await response.json());
23
+ }
24
+ async pollLoginStatus(code) {
25
+ const maxAttempts = 60; // 5 minutes (5s intervals)
26
+ let attempts = 0;
27
+ while (attempts < maxAttempts) {
28
+ const response = await fetch(`${this.webUrl}/api/cli/login/status?code=${code}`);
29
+ if (!response.ok) {
30
+ throw new Error(`Failed to check login status: ${response.status}`);
31
+ }
32
+ const status = (await response.json());
33
+ if (status.status === "authenticated" && status.userToken) {
34
+ return status.userToken;
35
+ }
36
+ if (status.status === "expired") {
37
+ throw new Error("Login session expired");
38
+ }
39
+ await new Promise((resolve) => setTimeout(resolve, 5000));
40
+ attempts++;
41
+ }
42
+ throw new Error("Login timeout");
43
+ }
44
+ async fetchOrganizations() {
45
+ if (!this.userToken) {
46
+ throw new Error("No user token available");
47
+ }
48
+ const response = await fetch(`${this.webUrl}/api/me/orgs`, {
49
+ headers: {
50
+ Authorization: `Bearer ${this.userToken}`,
51
+ },
52
+ });
53
+ if (!response.ok) {
54
+ throw new Error(`Failed to fetch organizations: ${response.status}`);
55
+ }
56
+ return (await response.json());
57
+ }
58
+ async exchangeToken(orgId) {
59
+ if (!this.userToken) {
60
+ throw new Error("No user token available");
61
+ }
62
+ const response = await fetch(`${this.webUrl}/api/cli/exchange`, {
63
+ method: "POST",
64
+ headers: {
65
+ "Content-Type": "application/json",
66
+ Authorization: `Bearer ${this.userToken}`,
67
+ },
68
+ body: JSON.stringify({ orgId }),
69
+ });
70
+ if (!response.ok) {
71
+ throw new Error(`Failed to exchange token: ${response.status}`);
72
+ }
73
+ return (await response.json());
74
+ }
75
+ async selectOrganization(orgs) {
76
+ if (orgs.length === 0) {
77
+ throw new Error("No organizations found");
78
+ }
79
+ if (orgs.length === 1) {
80
+ console.log(chalk_1.default.dim(`Auto-selecting organization: ${orgs[0].slug}`));
81
+ return orgs[0];
82
+ }
83
+ console.log(chalk_1.default.cyan("\n🏢 Select an organization:"));
84
+ const response = await (0, prompts_1.default)({
85
+ type: "select",
86
+ name: "org",
87
+ message: "Organization",
88
+ choices: orgs.map((org) => ({
89
+ title: `${org.name} (${org.slug})`,
90
+ value: org.id,
91
+ })),
92
+ });
93
+ const selected = orgs.find((org) => org.id === response.org);
94
+ if (!selected) {
95
+ throw new Error("No organization selected");
96
+ }
97
+ return selected;
98
+ }
99
+ openBrowser(url) {
100
+ const platform = process.platform;
101
+ const command = platform === "darwin"
102
+ ? `open "${url}"`
103
+ : platform === "win32"
104
+ ? `start "${url}"`
105
+ : `xdg-open "${url}"`;
106
+ (0, child_process_1.exec)(command, (error) => {
107
+ if (error) {
108
+ console.log(chalk_1.default.yellow("⚠️ Could not open browser automatically"));
109
+ }
110
+ });
111
+ }
112
+ }
113
+ exports.AuthManager = AuthManager;
114
+ //# sourceMappingURL=auth.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"auth.js","sourceRoot":"","sources":["../src/auth.ts"],"names":[],"mappings":"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"}
package/dist/client.d.ts CHANGED
@@ -4,6 +4,7 @@ export declare class OutRayClient {
4
4
  private serverUrl;
5
5
  private apiKey?;
6
6
  private subdomain?;
7
+ private customDomain?;
7
8
  private requestedSubdomain?;
8
9
  private reconnectTimeout;
9
10
  private pingInterval;
@@ -11,7 +12,7 @@ export declare class OutRayClient {
11
12
  private assignedUrl;
12
13
  private subdomainConflictHandled;
13
14
  private forceTakeover;
14
- constructor(localPort: number, serverUrl?: string, apiKey?: string, subdomain?: string);
15
+ constructor(localPort: number, serverUrl?: string, apiKey?: string, subdomain?: string, customDomain?: string);
15
16
  start(): void;
16
17
  stop(): void;
17
18
  private connect;
@@ -1 +1 @@
1
- {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AAOA,qBAAa,YAAY;IACvB,OAAO,CAAC,EAAE,CAA0B;IACpC,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,MAAM,CAAC,CAAS;IACxB,OAAO,CAAC,SAAS,CAAC,CAAS;IAC3B,OAAO,CAAC,kBAAkB,CAAC,CAAS;IACpC,OAAO,CAAC,gBAAgB,CAA+B;IACvD,OAAO,CAAC,YAAY,CAA+B;IACnD,OAAO,CAAC,eAAe,CAAQ;IAC/B,OAAO,CAAC,WAAW,CAAuB;IAC1C,OAAO,CAAC,wBAAwB,CAAS;IACzC,OAAO,CAAC,aAAa,CAAS;gBAG5B,SAAS,EAAE,MAAM,EACjB,SAAS,GAAE,MAAgC,EAC3C,MAAM,CAAC,EAAE,MAAM,EACf,SAAS,CAAC,EAAE,MAAM;IASb,KAAK,IAAI,IAAI;IAIb,IAAI,IAAI,IAAI;IAgBnB,OAAO,CAAC,OAAO;IAgBf,OAAO,CAAC,UAAU;IAalB,OAAO,CAAC,aAAa;IA0DrB,OAAO,CAAC,gBAAgB;IAqDxB,OAAO,CAAC,gBAAgB;IAexB,OAAO,CAAC,SAAS;IASjB,OAAO,CAAC,QAAQ;YAOF,uBAAuB;IAsCrC,OAAO,CAAC,WAAW;CAUpB"}
1
+ {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AAOA,qBAAa,YAAY;IACvB,OAAO,CAAC,EAAE,CAA0B;IACpC,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,MAAM,CAAC,CAAS;IACxB,OAAO,CAAC,SAAS,CAAC,CAAS;IAC3B,OAAO,CAAC,YAAY,CAAC,CAAS;IAC9B,OAAO,CAAC,kBAAkB,CAAC,CAAS;IACpC,OAAO,CAAC,gBAAgB,CAA+B;IACvD,OAAO,CAAC,YAAY,CAA+B;IACnD,OAAO,CAAC,eAAe,CAAQ;IAC/B,OAAO,CAAC,WAAW,CAAuB;IAC1C,OAAO,CAAC,wBAAwB,CAAS;IACzC,OAAO,CAAC,aAAa,CAAS;gBAG5B,SAAS,EAAE,MAAM,EACjB,SAAS,GAAE,MAAgC,EAC3C,MAAM,CAAC,EAAE,MAAM,EACf,SAAS,CAAC,EAAE,MAAM,EAClB,YAAY,CAAC,EAAE,MAAM;IAUhB,KAAK,IAAI,IAAI;IAIb,IAAI,IAAI,IAAI;IAgBnB,OAAO,CAAC,OAAO;IAgBf,OAAO,CAAC,UAAU;IAclB,OAAO,CAAC,aAAa;IAsErB,OAAO,CAAC,gBAAgB;IAqDxB,OAAO,CAAC,gBAAgB;IAexB,OAAO,CAAC,SAAS;IASjB,OAAO,CAAC,QAAQ;YAOF,uBAAuB;IAsCrC,OAAO,CAAC,WAAW;CAkBpB"}
package/dist/client.js CHANGED
@@ -10,7 +10,7 @@ const prompts_1 = __importDefault(require("prompts"));
10
10
  const protocol_1 = require("./protocol");
11
11
  const http_1 = __importDefault(require("http"));
12
12
  class OutRayClient {
13
- constructor(localPort, serverUrl = "wss://api.outray.dev/", apiKey, subdomain) {
13
+ constructor(localPort, serverUrl = "wss://api.outray.dev/", apiKey, subdomain, customDomain) {
14
14
  this.ws = null;
15
15
  this.reconnectTimeout = null;
16
16
  this.pingInterval = null;
@@ -22,6 +22,7 @@ class OutRayClient {
22
22
  this.serverUrl = serverUrl;
23
23
  this.apiKey = apiKey;
24
24
  this.subdomain = subdomain;
25
+ this.customDomain = customDomain;
25
26
  this.requestedSubdomain = subdomain;
26
27
  }
27
28
  start() {
@@ -44,7 +45,7 @@ class OutRayClient {
44
45
  this.ws = new ws_1.default(this.serverUrl);
45
46
  this.ws.on("open", () => this.handleOpen());
46
47
  this.ws.on("message", (data) => this.handleMessage(data.toString()));
47
- this.ws.on("close", () => this.handleClose());
48
+ this.ws.on("close", (code, reason) => this.handleClose(code, reason));
48
49
  this.ws.on("error", (error) => {
49
50
  console.log(chalk_1.default.red(`❌ WebSocket error: ${error.message}`));
50
51
  });
@@ -59,6 +60,7 @@ class OutRayClient {
59
60
  type: "open_tunnel",
60
61
  apiKey: this.apiKey,
61
62
  subdomain: this.subdomain,
63
+ customDomain: this.customDomain,
62
64
  forceTakeover: this.forceTakeover,
63
65
  });
64
66
  this.ws?.send(handshake);
@@ -81,6 +83,13 @@ class OutRayClient {
81
83
  else if (message.type === "error") {
82
84
  if (message.code === "SUBDOMAIN_IN_USE") {
83
85
  if (this.assignedUrl) {
86
+ // If we're reconnecting and the subdomain is in use, it's likely our own
87
+ // zombie connection from the drop. Try to force takeover once.
88
+ if (!this.forceTakeover) {
89
+ console.log(chalk_1.default.dim("Subdomain in use during reconnection, attempting takeover..."));
90
+ this.forceTakeover = true;
91
+ return;
92
+ }
84
93
  // We had a successful connection before, but now subdomain is taken
85
94
  // This means we were taken over by another tunnel
86
95
  console.log(chalk_1.default.yellow(`\n⚠️ Your tunnel was taken over by another connection.`));
@@ -218,10 +227,16 @@ class OutRayClient {
218
227
  process.exit(0);
219
228
  }
220
229
  }
221
- handleClose() {
230
+ handleClose(code, reason) {
222
231
  this.stopPing();
223
232
  if (!this.shouldReconnect)
224
233
  return;
234
+ const reasonStr = reason?.toString() || "";
235
+ if (code === 1000 && reasonStr === "Tunnel stopped by user") {
236
+ console.log(chalk_1.default.red("\n🛑 Tunnel stopped by user via dashboard."));
237
+ this.stop();
238
+ process.exit(0);
239
+ }
225
240
  console.log(chalk_1.default.yellow("😵 Disconnected from OutRay. Retrying in 2s…"));
226
241
  this.reconnectTimeout = setTimeout(() => {
227
242
  this.connect();
@@ -1 +1 @@
1
- {"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,18 @@
1
+ export interface OutRayConfig {
2
+ authType: "user";
3
+ userToken?: string;
4
+ activeOrgId?: string;
5
+ orgToken?: string;
6
+ orgTokenExpiresAt?: string;
7
+ }
8
+ export declare class ConfigManager {
9
+ private configFile;
10
+ constructor(isDev: boolean);
11
+ ensureConfigDir(): void;
12
+ load(): OutRayConfig | null;
13
+ save(config: OutRayConfig): void;
14
+ clear(): void;
15
+ isOrgTokenValid(config: OutRayConfig): boolean;
16
+ getActiveToken(config: OutRayConfig): string | null;
17
+ }
18
+ //# sourceMappingURL=config.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAQA,MAAM,WAAW,YAAY;IAC3B,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,iBAAiB,CAAC,EAAE,MAAM,CAAC;CAC5B;AAED,qBAAa,aAAa;IACxB,OAAO,CAAC,UAAU,CAAS;gBAEf,KAAK,EAAE,OAAO;IAI1B,eAAe,IAAI,IAAI;IAMvB,IAAI,IAAI,YAAY,GAAG,IAAI;IAe3B,IAAI,CAAC,MAAM,EAAE,YAAY,GAAG,IAAI;IAKhC,KAAK,IAAI,IAAI;IAMb,eAAe,CAAC,MAAM,EAAE,YAAY,GAAG,OAAO;IAY9C,cAAc,CAAC,MAAM,EAAE,YAAY,GAAG,MAAM,GAAG,IAAI;CAOpD"}
package/dist/config.js ADDED
@@ -0,0 +1,61 @@
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
+ exports.ConfigManager = void 0;
7
+ const fs_1 = __importDefault(require("fs"));
8
+ const path_1 = __importDefault(require("path"));
9
+ const os_1 = __importDefault(require("os"));
10
+ const CONFIG_DIR = path_1.default.join(os_1.default.homedir(), ".outray");
11
+ const PROD_CONFIG_FILE = path_1.default.join(CONFIG_DIR, "config.json");
12
+ const DEV_CONFIG_FILE = path_1.default.join(CONFIG_DIR, "config.dev.json");
13
+ class ConfigManager {
14
+ constructor(isDev) {
15
+ this.configFile = isDev ? DEV_CONFIG_FILE : PROD_CONFIG_FILE;
16
+ }
17
+ ensureConfigDir() {
18
+ if (!fs_1.default.existsSync(CONFIG_DIR)) {
19
+ fs_1.default.mkdirSync(CONFIG_DIR, { recursive: true });
20
+ }
21
+ }
22
+ load() {
23
+ if (!fs_1.default.existsSync(this.configFile)) {
24
+ return null;
25
+ }
26
+ try {
27
+ const data = fs_1.default.readFileSync(this.configFile, "utf-8");
28
+ const config = JSON.parse(data);
29
+ return config;
30
+ }
31
+ catch (e) {
32
+ return null;
33
+ }
34
+ }
35
+ save(config) {
36
+ this.ensureConfigDir();
37
+ fs_1.default.writeFileSync(this.configFile, JSON.stringify(config, null, 2));
38
+ }
39
+ clear() {
40
+ if (fs_1.default.existsSync(this.configFile)) {
41
+ fs_1.default.unlinkSync(this.configFile);
42
+ }
43
+ }
44
+ isOrgTokenValid(config) {
45
+ if (!config.orgToken || !config.orgTokenExpiresAt) {
46
+ return false;
47
+ }
48
+ const expiresAt = new Date(config.orgTokenExpiresAt);
49
+ const now = new Date();
50
+ // Consider expired if less than 5 minutes remain
51
+ return expiresAt.getTime() - now.getTime() > 5 * 60 * 1000;
52
+ }
53
+ getActiveToken(config) {
54
+ if (config.authType === "user" && config.orgToken) {
55
+ return config.orgToken;
56
+ }
57
+ return null;
58
+ }
59
+ }
60
+ exports.ConfigManager = ConfigManager;
61
+ //# sourceMappingURL=config.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":";;;;;;AAAA,4CAAoB;AACpB,gDAAwB;AACxB,4CAAoB;AAEpB,MAAM,UAAU,GAAG,cAAI,CAAC,IAAI,CAAC,YAAE,CAAC,OAAO,EAAE,EAAE,SAAS,CAAC,CAAC;AACtD,MAAM,gBAAgB,GAAG,cAAI,CAAC,IAAI,CAAC,UAAU,EAAE,aAAa,CAAC,CAAC;AAC9D,MAAM,eAAe,GAAG,cAAI,CAAC,IAAI,CAAC,UAAU,EAAE,iBAAiB,CAAC,CAAC;AAUjE,MAAa,aAAa;IAGxB,YAAY,KAAc;QACxB,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,gBAAgB,CAAC;IAC/D,CAAC;IAED,eAAe;QACb,IAAI,CAAC,YAAE,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;YAC/B,YAAE,CAAC,SAAS,CAAC,UAAU,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAChD,CAAC;IACH,CAAC;IAED,IAAI;QACF,IAAI,CAAC,YAAE,CAAC,UAAU,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC;YACpC,OAAO,IAAI,CAAC;QACd,CAAC;QAED,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,YAAE,CAAC,YAAY,CAAC,IAAI,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;YACvD,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAiB,CAAC;YAEhD,OAAO,MAAM,CAAC;QAChB,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;IAED,IAAI,CAAC,MAAoB;QACvB,IAAI,CAAC,eAAe,EAAE,CAAC;QACvB,YAAE,CAAC,aAAa,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;IACrE,CAAC;IAED,KAAK;QACH,IAAI,YAAE,CAAC,UAAU,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC;YACnC,YAAE,CAAC,UAAU,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QACjC,CAAC;IACH,CAAC;IAED,eAAe,CAAC,MAAoB;QAClC,IAAI,CAAC,MAAM,CAAC,QAAQ,IAAI,CAAC,MAAM,CAAC,iBAAiB,EAAE,CAAC;YAClD,OAAO,KAAK,CAAC;QACf,CAAC;QAED,MAAM,SAAS,GAAG,IAAI,IAAI,CAAC,MAAM,CAAC,iBAAiB,CAAC,CAAC;QACrD,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC;QAEvB,iDAAiD;QACjD,OAAO,SAAS,CAAC,OAAO,EAAE,GAAG,GAAG,CAAC,OAAO,EAAE,GAAG,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC;IAC7D,CAAC;IAED,cAAc,CAAC,MAAoB;QACjC,IAAI,MAAM,CAAC,QAAQ,KAAK,MAAM,IAAI,MAAM,CAAC,QAAQ,EAAE,CAAC;YAClD,OAAO,MAAM,CAAC,QAAQ,CAAC;QACzB,CAAC;QAED,OAAO,IAAI,CAAC;IACd,CAAC;CACF;AA1DD,sCA0DC"}
package/dist/index.js CHANGED
@@ -5,51 +5,168 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
5
5
  };
6
6
  Object.defineProperty(exports, "__esModule", { value: true });
7
7
  const chalk_1 = __importDefault(require("chalk"));
8
- const fs_1 = __importDefault(require("fs"));
9
- const path_1 = __importDefault(require("path"));
10
- const os_1 = __importDefault(require("os"));
11
8
  const client_1 = require("./client");
12
- const CONFIG_DIR = path_1.default.join(os_1.default.homedir(), ".outray");
13
- const CONFIG_FILE = path_1.default.join(CONFIG_DIR, "config.json");
14
- function saveConfig(config) {
15
- if (!fs_1.default.existsSync(CONFIG_DIR)) {
16
- fs_1.default.mkdirSync(CONFIG_DIR, { recursive: true });
17
- }
18
- fs_1.default.writeFileSync(CONFIG_FILE, JSON.stringify(config, null, 2));
19
- console.log(chalk_1.default.green("✅ Auth token saved successfully!"));
9
+ const config_1 = require("./config");
10
+ const auth_1 = require("./auth");
11
+ const package_json_1 = require("../package.json");
12
+ async function handleLogin(configManager, webUrl, isDev) {
13
+ console.log(chalk_1.default.cyan(`\nOpening browser for authentication...`));
14
+ const authManager = new auth_1.AuthManager(webUrl);
15
+ try {
16
+ // Step 1: Initiate login session
17
+ const session = await authManager.initiateLogin();
18
+ console.log(chalk_1.default.dim(`\nIf browser doesn't open, visit:\n${session.loginUrl}\n`));
19
+ authManager.openBrowser(session.loginUrl);
20
+ // Step 2: Poll for authentication
21
+ console.log(chalk_1.default.dim("Waiting for authentication..."));
22
+ const userToken = await authManager.pollLoginStatus(session.code);
23
+ console.log(chalk_1.default.green("✓ Authenticated successfully"));
24
+ // Step 3: Fetch organizations
25
+ const authManagerWithToken = new auth_1.AuthManager(webUrl, userToken);
26
+ const orgs = await authManagerWithToken.fetchOrganizations();
27
+ // Step 4: Select organization
28
+ const selectedOrg = await authManagerWithToken.selectOrganization(orgs);
29
+ // Step 5: Exchange token
30
+ const { orgToken, expiresAt } = await authManagerWithToken.exchangeToken(selectedOrg.id);
31
+ // Step 6: Save config
32
+ const config = {
33
+ authType: "user",
34
+ userToken,
35
+ activeOrgId: selectedOrg.id,
36
+ orgToken,
37
+ orgTokenExpiresAt: expiresAt,
38
+ };
39
+ configManager.save(config);
40
+ console.log(chalk_1.default.green(`\n✔ Logged in successfully`));
41
+ console.log(chalk_1.default.dim(`✔ Active org: ${selectedOrg.slug}`));
42
+ }
43
+ catch (error) {
44
+ console.log(chalk_1.default.red(`\n❌ Login failed: ${error instanceof Error ? error.message : "Unknown error"}`));
45
+ process.exit(1);
46
+ }
20
47
  }
21
- function loadConfig() {
22
- if (fs_1.default.existsSync(CONFIG_FILE)) {
23
- try {
24
- return JSON.parse(fs_1.default.readFileSync(CONFIG_FILE, "utf-8"));
48
+ async function handleSwitch(configManager, config, webUrl, orgSlugArg) {
49
+ if (config.authType !== "user" || !config.userToken) {
50
+ console.log(chalk_1.default.red("❌ Please login first with: outray login"));
51
+ process.exit(1);
52
+ }
53
+ const authManager = new auth_1.AuthManager(webUrl, config.userToken);
54
+ try {
55
+ const orgs = await authManager.fetchOrganizations();
56
+ let selectedOrg;
57
+ if (orgSlugArg) {
58
+ // Find org by slug
59
+ selectedOrg = orgs.find((org) => org.slug === orgSlugArg);
60
+ if (!selectedOrg) {
61
+ console.log(chalk_1.default.red(`❌ Organization "${orgSlugArg}" not found`));
62
+ process.exit(1);
63
+ }
25
64
  }
26
- catch (e) {
27
- return {};
65
+ else {
66
+ // Interactive selection
67
+ selectedOrg = await authManager.selectOrganization(orgs);
28
68
  }
69
+ // Exchange token for new org
70
+ const { orgToken, expiresAt } = await authManager.exchangeToken(selectedOrg.id);
71
+ // Update config
72
+ config.activeOrgId = selectedOrg.id;
73
+ config.orgToken = orgToken;
74
+ config.orgTokenExpiresAt = expiresAt;
75
+ configManager.save(config);
76
+ console.log(chalk_1.default.green(`\n✔ Switched to: ${selectedOrg.slug}`));
77
+ }
78
+ catch (error) {
79
+ console.log(chalk_1.default.red(`\n❌ Switch failed: ${error instanceof Error ? error.message : "Unknown error"}`));
80
+ process.exit(1);
29
81
  }
30
- return {};
31
82
  }
32
- async function validateToken(token, webUrl) {
83
+ async function handleWhoami(config, webUrl, isDev) {
84
+ if (!config.userToken || !config.activeOrgId) {
85
+ console.log(chalk_1.default.red("❌ Not logged in"));
86
+ process.exit(1);
87
+ }
33
88
  try {
34
- const response = await fetch(`${webUrl}/api/tunnel/auth`, {
35
- method: "POST",
36
- headers: {
37
- "Content-Type": "application/json",
38
- },
39
- body: JSON.stringify({ token }),
40
- });
41
- if (!response.ok) {
42
- throw new Error(`Server returned ${response.status}`);
43
- }
44
- const data = (await response.json());
45
- if (!data.valid) {
46
- throw new Error(data.error || "Invalid token");
47
- }
48
- return true;
89
+ const authManager = new auth_1.AuthManager(webUrl, config.userToken);
90
+ const orgs = await authManager.fetchOrganizations();
91
+ const activeOrg = orgs.find((org) => org.id === config.activeOrgId);
92
+ if (!activeOrg) {
93
+ console.log(chalk_1.default.red("❌ Active organization not found"));
94
+ process.exit(1);
95
+ }
96
+ console.log(chalk_1.default.cyan(`\nAuthentication Status\n`));
97
+ console.log(chalk_1.default.dim("Active Organization:"));
98
+ console.log(` ${activeOrg.name} (${activeOrg.slug})`);
99
+ console.log(chalk_1.default.dim(`\nRole: ${activeOrg.role}`));
100
+ if (orgs.length > 1) {
101
+ console.log(chalk_1.default.dim(`\nYou have access to ${orgs.length} organizations. Use 'outray switch' to change.`));
102
+ }
49
103
  }
50
104
  catch (error) {
51
- throw error;
105
+ console.log(chalk_1.default.red(`\n❌ Failed to fetch info: ${error instanceof Error ? error.message : "Unknown error"}`));
106
+ process.exit(1);
107
+ }
108
+ }
109
+ async function handleLogout(configManager, isDev) {
110
+ const config = configManager.load();
111
+ if (!config) {
112
+ console.log(chalk_1.default.yellow("⚠️ Not logged in"));
113
+ return;
114
+ }
115
+ configManager.clear();
116
+ console.log(chalk_1.default.green(`✔ Logged out successfully`));
117
+ }
118
+ async function ensureValidToken(configManager, config, webUrl) {
119
+ // User auth - ensure org token is valid
120
+ if (config.authType === "user") {
121
+ if (!config.userToken || !config.activeOrgId) {
122
+ throw new Error("Invalid config state");
123
+ }
124
+ // Check if org token is still valid
125
+ if (configManager.isOrgTokenValid(config)) {
126
+ return config.orgToken;
127
+ }
128
+ // Token expired - silently re-exchange
129
+ console.log(chalk_1.default.dim("Refreshing authentication..."));
130
+ const authManager = new auth_1.AuthManager(webUrl, config.userToken);
131
+ const { orgToken, expiresAt } = await authManager.exchangeToken(config.activeOrgId);
132
+ config.orgToken = orgToken;
133
+ config.orgTokenExpiresAt = expiresAt;
134
+ configManager.save(config);
135
+ return orgToken;
136
+ }
137
+ throw new Error("No valid authentication found");
138
+ }
139
+ async function getOrgSlugForDisplay(config, webUrl) {
140
+ if (config.authType !== "user" || !config.userToken || !config.activeOrgId) {
141
+ return null;
142
+ }
143
+ try {
144
+ const authManager = new auth_1.AuthManager(webUrl, config.userToken);
145
+ const orgs = await authManager.fetchOrganizations();
146
+ const activeOrg = orgs.find((org) => org.id === config.activeOrgId);
147
+ return activeOrg?.slug || null;
52
148
  }
149
+ catch {
150
+ return null;
151
+ }
152
+ }
153
+ function printHelp() {
154
+ console.log(chalk_1.default.cyan("\nUsage:"));
155
+ console.log(chalk_1.default.cyan(" outray login Login via browser"));
156
+ console.log(chalk_1.default.cyan(" outray <port> Start tunnel"));
157
+ console.log(chalk_1.default.cyan(" outray switch [org] Switch organization"));
158
+ console.log(chalk_1.default.cyan(" outray whoami Show current user"));
159
+ console.log(chalk_1.default.cyan(" outray logout Logout"));
160
+ console.log(chalk_1.default.cyan(" outray version Show version"));
161
+ console.log(chalk_1.default.cyan(" outray help Show this help message"));
162
+ console.log(chalk_1.default.cyan("\nOptions:"));
163
+ console.log(chalk_1.default.cyan(" --org <slug> Use specific org"));
164
+ console.log(chalk_1.default.cyan(" --subdomain <name> Custom subdomain"));
165
+ console.log(chalk_1.default.cyan(" --domain <domain> Custom domain"));
166
+ console.log(chalk_1.default.cyan(" --key <token> Override auth token"));
167
+ console.log(chalk_1.default.cyan(" --dev Use dev environment"));
168
+ console.log(chalk_1.default.cyan(" -v, --version Show version"));
169
+ console.log(chalk_1.default.cyan(" -h, --help Show this help message"));
53
170
  }
54
171
  async function main() {
55
172
  const args = process.argv.slice(2);
@@ -59,33 +176,49 @@ async function main() {
59
176
  (isDev ? "ws://localhost:3547" : "wss://api.outray.dev/");
60
177
  const webUrl = process.env.OUTRAY_WEB_URL ||
61
178
  (isDev ? "http://localhost:3000" : "https://console.outray.dev");
62
- if (!command) {
63
- console.log(chalk_1.default.red(" Please specify a command"));
64
- console.log(chalk_1.default.cyan("Usage:"));
65
- console.log(chalk_1.default.cyan(" outray login <token> Save your authentication token"));
66
- console.log(chalk_1.default.cyan(" outray http <port> Start an HTTP tunnel"));
67
- console.log(chalk_1.default.cyan(" outray <port> Start an HTTP tunnel (shorthand)"));
68
- process.exit(1);
179
+ const configManager = new config_1.ConfigManager(isDev);
180
+ if (command === "version" || command === "-v" || command === "--version") {
181
+ console.log(`outray version ${package_json_1.version}`);
182
+ return;
69
183
  }
184
+ if (command === "help" || command === "-h" || command === "--help") {
185
+ printHelp();
186
+ return;
187
+ }
188
+ // Handle commands that don't require a tunnel
70
189
  if (command === "login") {
71
- const token = args[1];
72
- if (!token) {
73
- console.log(chalk_1.default.red("❌ Please provide an auth token"));
74
- console.log(chalk_1.default.cyan("Usage: outray login <token>"));
190
+ await handleLogin(configManager, webUrl, isDev);
191
+ return;
192
+ }
193
+ if (command === "logout") {
194
+ await handleLogout(configManager, isDev);
195
+ return;
196
+ }
197
+ if (command === "switch") {
198
+ const config = configManager.load();
199
+ if (!config) {
200
+ console.log(chalk_1.default.red("❌ Not logged in. Run: outray login"));
75
201
  process.exit(1);
76
202
  }
77
- console.log(chalk_1.default.cyan("Validating token..."));
78
- console.log(chalk_1.default.gray(` Connecting to ${webUrl}`));
79
- try {
80
- await validateToken(token, webUrl);
81
- saveConfig({ token });
82
- }
83
- catch (err) {
84
- console.log(chalk_1.default.red(`❌ Validation failed: ${err instanceof Error ? err.message : "Unknown error"}`));
203
+ const orgSlug = args[1];
204
+ await handleSwitch(configManager, config, webUrl, orgSlug);
205
+ return;
206
+ }
207
+ if (command === "whoami") {
208
+ const config = configManager.load();
209
+ if (!config) {
210
+ console.log(chalk_1.default.red("❌ Not logged in. Run: outray login"));
85
211
  process.exit(1);
86
212
  }
213
+ await handleWhoami(config, webUrl, isDev);
87
214
  return;
88
215
  }
216
+ if (!command) {
217
+ console.log(chalk_1.default.red("❌ Please specify a command"));
218
+ printHelp();
219
+ process.exit(1);
220
+ }
221
+ // Parse tunnel command
89
222
  let localPort;
90
223
  let remainingArgs;
91
224
  if (command === "http") {
@@ -115,34 +248,99 @@ async function main() {
115
248
  const subdomainArg = remainingArgs.find((arg) => arg.startsWith("--subdomain"));
116
249
  if (subdomainArg) {
117
250
  if (subdomainArg.includes("=")) {
118
- // Format: --subdomain=value
119
251
  subdomain = subdomainArg.split("=")[1];
120
252
  }
121
253
  else {
122
- // Format: --subdomain value
123
254
  const subdomainIndex = remainingArgs.indexOf(subdomainArg);
124
255
  if (subdomainIndex !== -1 && remainingArgs[subdomainIndex + 1]) {
125
256
  subdomain = remainingArgs[subdomainIndex + 1];
126
257
  }
127
258
  }
128
259
  }
129
- const config = loadConfig();
130
- let apiKey = process.env.OUTRAY_API_KEY || config.token;
260
+ let customDomain;
261
+ const domainArg = remainingArgs.find((arg) => arg.startsWith("--domain"));
262
+ if (domainArg) {
263
+ if (domainArg.includes("=")) {
264
+ customDomain = domainArg.split("=")[1];
265
+ }
266
+ else {
267
+ const domainIndex = remainingArgs.indexOf(domainArg);
268
+ if (domainIndex !== -1 && remainingArgs[domainIndex + 1]) {
269
+ customDomain = remainingArgs[domainIndex + 1];
270
+ }
271
+ }
272
+ }
273
+ // Handle --org flag for temporary org override
274
+ const orgArg = remainingArgs.find((arg) => arg.startsWith("--org"));
275
+ let tempOrgSlug;
276
+ if (orgArg) {
277
+ if (orgArg.includes("=")) {
278
+ tempOrgSlug = orgArg.split("=")[1];
279
+ }
280
+ else {
281
+ const orgIndex = remainingArgs.indexOf(orgArg);
282
+ if (orgIndex !== -1 && remainingArgs[orgIndex + 1]) {
283
+ tempOrgSlug = remainingArgs[orgIndex + 1];
284
+ }
285
+ }
286
+ }
287
+ // Load and validate config
288
+ let config = configManager.load();
289
+ if (!config) {
290
+ console.log(chalk_1.default.red("❌ Not logged in. Run: outray login"));
291
+ process.exit(1);
292
+ }
293
+ // Handle temporary org override
294
+ if (tempOrgSlug && config.authType === "user" && config.userToken) {
295
+ const authManager = new auth_1.AuthManager(webUrl, config.userToken);
296
+ const orgs = await authManager.fetchOrganizations();
297
+ const tempOrg = orgs.find((org) => org.slug === tempOrgSlug);
298
+ if (!tempOrg) {
299
+ console.log(chalk_1.default.red(`❌ Organization "${tempOrgSlug}" not found`));
300
+ process.exit(1);
301
+ }
302
+ // Exchange token for temporary org (don't save to config)
303
+ const { orgToken } = await authManager.exchangeToken(tempOrg.id);
304
+ config = {
305
+ ...config,
306
+ orgToken,
307
+ activeOrgId: tempOrg.id,
308
+ };
309
+ console.log(chalk_1.default.dim(`Using organization: ${tempOrg.slug} (temporary)\n`));
310
+ }
311
+ // Get API key/token
312
+ let apiKey;
131
313
  const keyArg = remainingArgs.find((arg) => arg.startsWith("--key"));
132
314
  if (keyArg) {
133
315
  if (keyArg.includes("=")) {
134
- // Format: --key=value
135
316
  apiKey = keyArg.split("=")[1];
136
317
  }
137
318
  else {
138
- // Format: --key value
139
319
  const keyIndex = remainingArgs.indexOf(keyArg);
140
320
  if (keyIndex !== -1 && remainingArgs[keyIndex + 1]) {
141
321
  apiKey = remainingArgs[keyIndex + 1];
142
322
  }
143
323
  }
144
324
  }
145
- const client = new client_1.OutRayClient(localPort, serverUrl, apiKey, subdomain);
325
+ else {
326
+ // Ensure we have a valid token
327
+ try {
328
+ apiKey = await ensureValidToken(configManager, config, webUrl);
329
+ }
330
+ catch (error) {
331
+ console.log(chalk_1.default.red(`❌ Authentication error: ${error instanceof Error ? error.message : "Unknown error"}`));
332
+ console.log(chalk_1.default.cyan("Try running: outray login"));
333
+ process.exit(1);
334
+ }
335
+ }
336
+ // Show active org (unless using --org override)
337
+ if (!tempOrgSlug) {
338
+ const orgSlug = await getOrgSlugForDisplay(config, webUrl);
339
+ if (orgSlug) {
340
+ console.log(chalk_1.default.dim(`Org: ${orgSlug}`));
341
+ }
342
+ }
343
+ const client = new client_1.OutRayClient(localPort, serverUrl, apiKey, subdomain, customDomain);
146
344
  client.start();
147
345
  process.on("SIGINT", () => {
148
346
  console.log(chalk_1.default.cyan("\n👋 Shutting down gracefully..."));
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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"}
package/dist/types.d.ts CHANGED
@@ -1,6 +1,7 @@
1
1
  export interface OpenTunnelMessage {
2
2
  type: "open_tunnel";
3
3
  subdomain?: string | null;
4
+ customDomain?: string | null;
4
5
  apiKey?: string;
5
6
  forceTakeover?: boolean;
6
7
  }
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,aAAa,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,aAAa,CAAC,EAAE,OAAO,CAAC;CACzB;AAED,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,eAAe,CAAC;IACtB,GAAG,EAAE,MAAM,CAAC;CACb;AAED,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,SAAS,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC,CAAC;IAC3C,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,qBAAqB;IACpC,IAAI,EAAE,UAAU,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC,CAAC;IAC3C,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,OAAO,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,MAAM,aAAa,GACrB,mBAAmB,GACnB,iBAAiB,GACjB,YAAY,CAAC;AACjB,MAAM,MAAM,aAAa,GAAG,iBAAiB,GAAG,qBAAqB,CAAC"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,aAAa,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,aAAa,CAAC,EAAE,OAAO,CAAC;CACzB;AAED,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,eAAe,CAAC;IACtB,GAAG,EAAE,MAAM,CAAC;CACb;AAED,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,SAAS,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC,CAAC;IAC3C,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,qBAAqB;IACpC,IAAI,EAAE,UAAU,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC,CAAC;IAC3C,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,OAAO,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,MAAM,aAAa,GACrB,mBAAmB,GACnB,iBAAiB,GACjB,YAAY,CAAC;AACjB,MAAM,MAAM,aAAa,GAAG,iBAAiB,GAAG,qBAAqB,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "outray",
3
- "version": "0.0.2",
3
+ "version": "0.0.6",
4
4
  "description": "OutRay CLI - Expose your local server to the internet",
5
5
  "main": "dist/index.js",
6
6
  "bin": {