sub-bridge 1.0.0 → 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.
Files changed (69) hide show
  1. package/.github/workflows/npm-publish.yml +3 -2
  2. package/.release-please-manifest.json +1 -1
  3. package/CHANGELOG.md +16 -0
  4. package/dist/auth/provider.d.ts +1 -0
  5. package/dist/auth/provider.d.ts.map +1 -1
  6. package/dist/auth/provider.js +22 -0
  7. package/dist/auth/provider.js.map +1 -1
  8. package/dist/cli.js +0 -14
  9. package/dist/cli.js.map +1 -1
  10. package/dist/oauth/authorize.d.ts +73 -0
  11. package/dist/oauth/authorize.d.ts.map +1 -0
  12. package/dist/oauth/authorize.js +197 -0
  13. package/dist/oauth/authorize.js.map +1 -0
  14. package/dist/oauth/crypto.d.ts +58 -0
  15. package/dist/oauth/crypto.d.ts.map +1 -0
  16. package/dist/oauth/crypto.js +170 -0
  17. package/dist/oauth/crypto.js.map +1 -0
  18. package/dist/oauth/dcr.d.ts +44 -0
  19. package/dist/oauth/dcr.d.ts.map +1 -0
  20. package/dist/oauth/dcr.js +84 -0
  21. package/dist/oauth/dcr.js.map +1 -0
  22. package/dist/oauth/metadata.d.ts +23 -0
  23. package/dist/oauth/metadata.d.ts.map +1 -0
  24. package/dist/oauth/metadata.js +29 -0
  25. package/dist/oauth/metadata.js.map +1 -0
  26. package/dist/oauth/token.d.ts +29 -0
  27. package/dist/oauth/token.d.ts.map +1 -0
  28. package/dist/oauth/token.js +117 -0
  29. package/dist/oauth/token.js.map +1 -0
  30. package/dist/routes/chat.d.ts.map +1 -1
  31. package/dist/routes/chat.js +128 -15
  32. package/dist/routes/chat.js.map +1 -1
  33. package/dist/routes/oauth.d.ts +13 -0
  34. package/dist/routes/oauth.d.ts.map +1 -0
  35. package/dist/routes/oauth.js +174 -0
  36. package/dist/routes/oauth.js.map +1 -0
  37. package/dist/server.d.ts.map +1 -1
  38. package/dist/server.js +14 -6
  39. package/dist/server.js.map +1 -1
  40. package/dist/tunnel/providers/cloudflare.d.ts.map +1 -1
  41. package/dist/tunnel/providers/cloudflare.js +19 -5
  42. package/dist/tunnel/providers/cloudflare.js.map +1 -1
  43. package/dist/tunnel/registry.d.ts.map +1 -1
  44. package/dist/tunnel/registry.js +75 -9
  45. package/dist/tunnel/registry.js.map +1 -1
  46. package/dist/utils/cloudflared-config.d.ts +2 -0
  47. package/dist/utils/cloudflared-config.d.ts.map +1 -0
  48. package/dist/utils/cloudflared-config.js +116 -0
  49. package/dist/utils/cloudflared-config.js.map +1 -0
  50. package/dist/utils/setup-instructions.d.ts.map +1 -1
  51. package/dist/utils/setup-instructions.js +6 -9
  52. package/dist/utils/setup-instructions.js.map +1 -1
  53. package/index.html +268 -281
  54. package/package.json +6 -2
  55. package/src/cli.ts +0 -14
  56. package/src/routes/chat.ts +3 -0
  57. package/src/server.ts +10 -6
  58. package/src/tunnel/providers/cloudflare.ts +18 -5
  59. package/src/tunnel/registry.ts +79 -8
  60. package/src/utils/cloudflared-config.ts +121 -0
  61. package/src/utils/setup-instructions.ts +6 -9
  62. package/dist/auth/oauth-flow.d.ts +0 -24
  63. package/dist/auth/oauth-flow.d.ts.map +0 -1
  64. package/dist/auth/oauth-flow.js +0 -184
  65. package/dist/auth/oauth-flow.js.map +0 -1
  66. package/dist/auth/oauth-manager.d.ts +0 -13
  67. package/dist/auth/oauth-manager.d.ts.map +0 -1
  68. package/dist/auth/oauth-manager.js +0 -25
  69. package/dist/auth/oauth-manager.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"cloudflare.d.ts","sourceRoot":"","sources":["../../../src/tunnel/providers/cloudflare.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,UAAU,CAAA;AAE9D,qBAAa,wBAAyB,YAAW,cAAc;IAC7D,EAAE,SAAe;IACjB,IAAI,SAAe;IACnB,oBAAoB,UAAO;IAErB,WAAW,IAAI,OAAO,CAAC,OAAO,CAAC;IAK/B,KAAK,CAAC,SAAS,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC;CAgC3E"}
1
+ {"version":3,"file":"cloudflare.d.ts","sourceRoot":"","sources":["../../../src/tunnel/providers/cloudflare.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,UAAU,CAAA;AAE9D,qBAAa,wBAAyB,YAAW,cAAc;IAC7D,EAAE,SAAe;IACjB,IAAI,SAAe;IACnB,oBAAoB,UAAO;IAErB,WAAW,IAAI,OAAO,CAAC,OAAO,CAAC;IAK/B,KAAK,CAAC,SAAS,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC;CA0C3E"}
@@ -2,9 +2,15 @@
2
2
  // ============================================================================
3
3
  // Cloudflare Tunnel Provider
4
4
  // ============================================================================
5
+ var __importDefault = (this && this.__importDefault) || function (mod) {
6
+ return (mod && mod.__esModule) ? mod : { "default": mod };
7
+ };
5
8
  Object.defineProperty(exports, "__esModule", { value: true });
6
9
  exports.CloudflareTunnelProvider = void 0;
7
10
  const cloudflared_1 = require("cloudflared");
11
+ const promises_1 = __importDefault(require("node:fs/promises"));
12
+ const node_os_1 = __importDefault(require("node:os"));
13
+ const node_path_1 = __importDefault(require("node:path"));
8
14
  class CloudflareTunnelProvider {
9
15
  id = 'cloudflare';
10
16
  name = 'Cloudflare';
@@ -24,12 +30,17 @@ class CloudflareTunnelProvider {
24
30
  };
25
31
  }
26
32
  // Anonymous tunnel using cloudflared npm package
27
- const tunnel = cloudflared_1.Tunnel.quick(`http://localhost:${localPort}`);
33
+ const tmpDir = await promises_1.default.mkdtemp(node_path_1.default.join(node_os_1.default.tmpdir(), 'sub-bridge-cloudflared-'));
34
+ const configPath = node_path_1.default.join(tmpDir, 'config.yml');
35
+ await promises_1.default.writeFile(configPath, 'no-autoupdate: true\n');
36
+ // Use HTTP/2 protocol for more reliable connections
37
+ const tunnel = cloudflared_1.Tunnel.quick(`http://localhost:${localPort}`, { '--config': configPath, '--protocol': 'http2' });
38
+ // Wait for URL event - the tunnel is usable once we have the URL
28
39
  const url = await new Promise((resolve, reject) => {
29
- const timeout = setTimeout(() => reject(new Error('Tunnel timeout (30s)')), 30000);
30
- tunnel.once('url', (tunnelUrl) => {
40
+ const timeout = setTimeout(() => reject(new Error('Tunnel timeout (60s)')), 60000);
41
+ tunnel.once('url', (url) => {
31
42
  clearTimeout(timeout);
32
- resolve(tunnelUrl);
43
+ resolve(url);
33
44
  });
34
45
  tunnel.once('error', (err) => {
35
46
  clearTimeout(timeout);
@@ -39,7 +50,10 @@ class CloudflareTunnelProvider {
39
50
  return {
40
51
  providerId: this.id,
41
52
  publicUrl: url,
42
- stop: () => tunnel.stop()
53
+ stop: () => {
54
+ tunnel.stop();
55
+ void promises_1.default.rm(tmpDir, { recursive: true, force: true });
56
+ }
43
57
  };
44
58
  }
45
59
  }
@@ -1 +1 @@
1
- {"version":3,"file":"cloudflare.js","sourceRoot":"","sources":["../../../src/tunnel/providers/cloudflare.ts"],"names":[],"mappings":";AAAA,+EAA+E;AAC/E,6BAA6B;AAC7B,+EAA+E;;;AAE/E,6CAAoC;AAGpC,MAAa,wBAAwB;IACnC,EAAE,GAAG,YAAY,CAAA;IACjB,IAAI,GAAG,YAAY,CAAA;IACnB,oBAAoB,GAAG,IAAI,CAAA;IAE3B,KAAK,CAAC,WAAW;QACf,uDAAuD;QACvD,OAAO,IAAI,CAAA;IACb,CAAC;IAED,KAAK,CAAC,KAAK,CAAC,SAAiB,EAAE,QAAiB;QAC9C,IAAI,QAAQ,EAAE,CAAC;YACb,wDAAwD;YACxD,qFAAqF;YACrF,OAAO;gBACL,UAAU,EAAE,IAAI,CAAC,EAAE;gBACnB,SAAS,EAAE,QAAQ,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,WAAW,QAAQ,EAAE;gBAC7E,IAAI,EAAE,GAAG,EAAE,GAAE,CAAC;aACf,CAAA;QACH,CAAC;QAED,iDAAiD;QACjD,MAAM,MAAM,GAAG,oBAAM,CAAC,KAAK,CAAC,oBAAoB,SAAS,EAAE,CAAC,CAAA;QAE5D,MAAM,GAAG,GAAG,MAAM,IAAI,OAAO,CAAS,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACxD,MAAM,OAAO,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,sBAAsB,CAAC,CAAC,EAAE,KAAK,CAAC,CAAA;YAClF,MAAM,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,SAAiB,EAAE,EAAE;gBACvC,YAAY,CAAC,OAAO,CAAC,CAAA;gBACrB,OAAO,CAAC,SAAS,CAAC,CAAA;YACpB,CAAC,CAAC,CAAA;YACF,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,GAAU,EAAE,EAAE;gBAClC,YAAY,CAAC,OAAO,CAAC,CAAA;gBACrB,MAAM,CAAC,GAAG,CAAC,CAAA;YACb,CAAC,CAAC,CAAA;QACJ,CAAC,CAAC,CAAA;QAEF,OAAO;YACL,UAAU,EAAE,IAAI,CAAC,EAAE;YACnB,SAAS,EAAE,GAAG;YACd,IAAI,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,IAAI,EAAE;SAC1B,CAAA;IACH,CAAC;CACF;AA1CD,4DA0CC"}
1
+ {"version":3,"file":"cloudflare.js","sourceRoot":"","sources":["../../../src/tunnel/providers/cloudflare.ts"],"names":[],"mappings":";AAAA,+EAA+E;AAC/E,6BAA6B;AAC7B,+EAA+E;;;;;;AAE/E,6CAAoC;AACpC,gEAAiC;AACjC,sDAAwB;AACxB,0DAA4B;AAG5B,MAAa,wBAAwB;IACnC,EAAE,GAAG,YAAY,CAAA;IACjB,IAAI,GAAG,YAAY,CAAA;IACnB,oBAAoB,GAAG,IAAI,CAAA;IAE3B,KAAK,CAAC,WAAW;QACf,uDAAuD;QACvD,OAAO,IAAI,CAAA;IACb,CAAC;IAED,KAAK,CAAC,KAAK,CAAC,SAAiB,EAAE,QAAiB;QAC9C,IAAI,QAAQ,EAAE,CAAC;YACb,wDAAwD;YACxD,qFAAqF;YACrF,OAAO;gBACL,UAAU,EAAE,IAAI,CAAC,EAAE;gBACnB,SAAS,EAAE,QAAQ,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,WAAW,QAAQ,EAAE;gBAC7E,IAAI,EAAE,GAAG,EAAE,GAAE,CAAC;aACf,CAAA;QACH,CAAC;QAED,iDAAiD;QACjD,MAAM,MAAM,GAAG,MAAM,kBAAE,CAAC,OAAO,CAAC,mBAAI,CAAC,IAAI,CAAC,iBAAE,CAAC,MAAM,EAAE,EAAE,yBAAyB,CAAC,CAAC,CAAA;QAClF,MAAM,UAAU,GAAG,mBAAI,CAAC,IAAI,CAAC,MAAM,EAAE,YAAY,CAAC,CAAA;QAClD,MAAM,kBAAE,CAAC,SAAS,CAAC,UAAU,EAAE,uBAAuB,CAAC,CAAA;QACvD,oDAAoD;QACpD,MAAM,MAAM,GAAG,oBAAM,CAAC,KAAK,CAAC,oBAAoB,SAAS,EAAE,EAAE,EAAE,UAAU,EAAE,UAAU,EAAE,YAAY,EAAE,OAAO,EAAE,CAAC,CAAA;QAE/G,iEAAiE;QACjE,MAAM,GAAG,GAAG,MAAM,IAAI,OAAO,CAAS,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACxD,MAAM,OAAO,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,sBAAsB,CAAC,CAAC,EAAE,KAAK,CAAC,CAAA;YAElF,MAAM,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,GAAW,EAAE,EAAE;gBACjC,YAAY,CAAC,OAAO,CAAC,CAAA;gBACrB,OAAO,CAAC,GAAG,CAAC,CAAA;YACd,CAAC,CAAC,CAAA;YAEF,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,GAAU,EAAE,EAAE;gBAClC,YAAY,CAAC,OAAO,CAAC,CAAA;gBACrB,MAAM,CAAC,GAAG,CAAC,CAAA;YACb,CAAC,CAAC,CAAA;QACJ,CAAC,CAAC,CAAA;QAEF,OAAO;YACL,UAAU,EAAE,IAAI,CAAC,EAAE;YACnB,SAAS,EAAE,GAAG;YACd,IAAI,EAAE,GAAG,EAAE;gBACT,MAAM,CAAC,IAAI,EAAE,CAAA;gBACb,KAAK,kBAAE,CAAC,EAAE,CAAC,MAAM,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAA;YACtD,CAAC;SACF,CAAA;IACH,CAAC;CACF;AApDD,4DAoDC"}
@@ -1 +1 @@
1
- {"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../src/tunnel/registry.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAkC,YAAY,EAAE,YAAY,EAAE,MAAM,SAAS,CAAA;AAOzF,qBAAa,cAAc;IACzB,OAAO,CAAC,SAAS,CAAyC;IAC1D,OAAO,CAAC,YAAY,CAA8B;IAClD,OAAO,CAAC,SAAS,CAAsB;IACvC,OAAO,CAAC,SAAS,CAAsB;;IAajC,YAAY,IAAI,OAAO,CAAC,YAAY,EAAE,CAAC;IAa7C,SAAS,IAAI,YAAY;IAenB,KAAK,CAAC,UAAU,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC;IA2B5F,IAAI,IAAI,YAAY;IASpB,YAAY,IAAI,MAAM,GAAG,IAAI;CAG9B"}
1
+ {"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../src/tunnel/registry.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAkC,YAAY,EAAE,YAAY,EAAE,MAAM,SAAS,CAAA;AAuDzF,qBAAa,cAAc;IACzB,OAAO,CAAC,SAAS,CAAyC;IAC1D,OAAO,CAAC,YAAY,CAA8B;IAClD,OAAO,CAAC,SAAS,CAAsB;IACvC,OAAO,CAAC,SAAS,CAAsB;;IAajC,YAAY,IAAI,OAAO,CAAC,YAAY,EAAE,CAAC;IAa7C,SAAS,IAAI,YAAY;IAenB,KAAK,CAAC,UAAU,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC;IAkD5F,IAAI,IAAI,YAAY;IASpB,YAAY,IAAI,MAAM,GAAG,IAAI;CAG9B"}
@@ -4,6 +4,53 @@
4
4
  // ============================================================================
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.TunnelRegistry = void 0;
7
+ const port_1 = require("../utils/port");
8
+ function sleep(ms) {
9
+ return new Promise((resolve) => setTimeout(resolve, ms));
10
+ }
11
+ async function verifyTunnelHealth(publicUrl, expectedPort) {
12
+ const baseUrl = publicUrl.replace(/\/$/, '');
13
+ const healthUrl = `${baseUrl}/health`;
14
+ const maxAttempts = 12;
15
+ let lastError = null;
16
+ for (let attempt = 1; attempt <= maxAttempts; attempt++) {
17
+ const controller = new AbortController();
18
+ const timeout = setTimeout(() => controller.abort(), 3000);
19
+ try {
20
+ const response = await fetch(healthUrl, { signal: controller.signal });
21
+ if (!response.ok) {
22
+ throw new Error(`Tunnel check failed (HTTP ${response.status})`);
23
+ }
24
+ const data = await response.json();
25
+ if (data.service !== port_1.SERVICE_IDENTIFIER) {
26
+ throw new Error('Tunnel check failed (unexpected service)');
27
+ }
28
+ if (typeof data.port === 'number' && data.port !== expectedPort) {
29
+ throw new Error(`Tunnel check failed (unexpected port ${data.port})`);
30
+ }
31
+ return;
32
+ }
33
+ catch (error) {
34
+ if (error instanceof Error && error.name === 'AbortError') {
35
+ lastError = new Error('Tunnel check timed out');
36
+ }
37
+ else if (error instanceof Error) {
38
+ lastError = error;
39
+ }
40
+ else {
41
+ lastError = new Error(String(error));
42
+ }
43
+ if (attempt < maxAttempts) {
44
+ await sleep(400);
45
+ continue;
46
+ }
47
+ throw new Error(`Tunnel check failed: ${lastError.message} (${healthUrl})`);
48
+ }
49
+ finally {
50
+ clearTimeout(timeout);
51
+ }
52
+ }
53
+ }
7
54
  const providers_1 = require("./providers");
8
55
  class TunnelRegistry {
9
56
  providers = new Map();
@@ -59,16 +106,35 @@ class TunnelRegistry {
59
106
  if (!await provider.isAvailable()) {
60
107
  throw new Error(`Tunnel provider ${provider.name} is not available`);
61
108
  }
62
- try {
63
- this.lastError = null;
64
- this.activeTunnel = await provider.start(localPort, namedUrl);
65
- this.startedAt = new Date().toISOString();
66
- return this.getStatus();
67
- }
68
- catch (error) {
69
- this.lastError = error instanceof Error ? error.message : String(error);
70
- throw error;
109
+ const isQuickCloudflare = providerId === 'cloudflare' && !namedUrl;
110
+ const maxAttempts = isQuickCloudflare ? 4 : 1;
111
+ let lastError = null;
112
+ for (let attempt = 1; attempt <= maxAttempts; attempt++) {
113
+ try {
114
+ this.lastError = null;
115
+ this.activeTunnel = await provider.start(localPort, namedUrl);
116
+ this.startedAt = new Date().toISOString();
117
+ await verifyTunnelHealth(this.activeTunnel.publicUrl, localPort);
118
+ return this.getStatus();
119
+ }
120
+ catch (error) {
121
+ lastError = error instanceof Error ? error : new Error(String(error));
122
+ this.lastError = lastError.message;
123
+ if (this.activeTunnel) {
124
+ this.activeTunnel.stop();
125
+ this.activeTunnel = null;
126
+ this.startedAt = null;
127
+ }
128
+ if (attempt < maxAttempts) {
129
+ await sleep(600);
130
+ continue;
131
+ }
132
+ }
71
133
  }
134
+ const message = lastError?.message || 'Unknown error';
135
+ throw new Error(maxAttempts > 1
136
+ ? `Failed to start tunnel after ${maxAttempts} attempts: ${message}`
137
+ : message);
72
138
  }
73
139
  stop() {
74
140
  if (this.activeTunnel) {
@@ -1 +1 @@
1
- {"version":3,"file":"registry.js","sourceRoot":"","sources":["../../src/tunnel/registry.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"registry.js","sourceRoot":"","sources":["../../src/tunnel/registry.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export declare function getCloudflaredHostnames(port: number): Promise<string[]>;
2
+ //# sourceMappingURL=cloudflared-config.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cloudflared-config.d.ts","sourceRoot":"","sources":["../../src/utils/cloudflared-config.ts"],"names":[],"mappings":"AA+FA,wBAAsB,uBAAuB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAyB7E"}
@@ -0,0 +1,116 @@
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.getCloudflaredHostnames = getCloudflaredHostnames;
7
+ const promises_1 = __importDefault(require("node:fs/promises"));
8
+ const node_os_1 = __importDefault(require("node:os"));
9
+ const node_path_1 = __importDefault(require("node:path"));
10
+ function stripQuotes(value) {
11
+ const trimmed = value.trim();
12
+ if ((trimmed.startsWith('"') && trimmed.endsWith('"')) ||
13
+ (trimmed.startsWith("'") && trimmed.endsWith("'"))) {
14
+ return trimmed.slice(1, -1);
15
+ }
16
+ return trimmed;
17
+ }
18
+ function normalizeHostname(hostname) {
19
+ return hostname.replace(/^https?:\/\//, '').split('/')[0]?.trim() || '';
20
+ }
21
+ function parseIngressRules(content) {
22
+ const entries = [];
23
+ const lines = content.split(/\r?\n/);
24
+ let inIngress = false;
25
+ let current = null;
26
+ for (const rawLine of lines) {
27
+ const line = rawLine.replace(/\t/g, ' ');
28
+ const trimmed = line.trim();
29
+ if (!trimmed || trimmed.startsWith('#'))
30
+ continue;
31
+ if (!inIngress) {
32
+ if (trimmed === 'ingress:' || trimmed.startsWith('ingress:')) {
33
+ inIngress = true;
34
+ }
35
+ continue;
36
+ }
37
+ const indent = line.match(/^\s*/)?.[0].length ?? 0;
38
+ if (indent === 0 && !trimmed.startsWith('-')) {
39
+ break;
40
+ }
41
+ if (trimmed.startsWith('-')) {
42
+ if (current && (current.hostname || current.service))
43
+ entries.push(current);
44
+ current = {};
45
+ const afterDash = trimmed.slice(1).trim();
46
+ if (afterDash.startsWith('hostname:')) {
47
+ current.hostname = stripQuotes(afterDash.slice('hostname:'.length));
48
+ }
49
+ else if (afterDash.startsWith('service:')) {
50
+ current.service = stripQuotes(afterDash.slice('service:'.length));
51
+ }
52
+ continue;
53
+ }
54
+ if (!current)
55
+ continue;
56
+ if (trimmed.startsWith('hostname:')) {
57
+ current.hostname = stripQuotes(trimmed.slice('hostname:'.length));
58
+ continue;
59
+ }
60
+ if (trimmed.startsWith('service:')) {
61
+ current.service = stripQuotes(trimmed.slice('service:'.length));
62
+ continue;
63
+ }
64
+ }
65
+ if (current && (current.hostname || current.service))
66
+ entries.push(current);
67
+ return entries;
68
+ }
69
+ function serviceMatchesPort(service, port) {
70
+ if (!service || service.startsWith('http_status:'))
71
+ return false;
72
+ try {
73
+ const url = new URL(service);
74
+ const protocol = url.protocol;
75
+ if (protocol !== 'http:' && protocol !== 'https:')
76
+ return false;
77
+ const resolvedPort = url.port
78
+ ? Number(url.port)
79
+ : (protocol === 'https:' ? 443 : 80);
80
+ if (resolvedPort !== port)
81
+ return false;
82
+ const host = url.hostname;
83
+ return host === 'localhost' || host === '127.0.0.1' || host === '0.0.0.0' || host === '::1';
84
+ }
85
+ catch {
86
+ return false;
87
+ }
88
+ }
89
+ async function getCloudflaredHostnames(port) {
90
+ const home = node_os_1.default.homedir();
91
+ const configPaths = [
92
+ node_path_1.default.join(home, '.cloudflared', 'config.yml'),
93
+ node_path_1.default.join(home, '.cloudflared', 'config.yaml'),
94
+ ];
95
+ const hostnames = new Set();
96
+ for (const configPath of configPaths) {
97
+ try {
98
+ const content = await promises_1.default.readFile(configPath, 'utf8');
99
+ const rules = parseIngressRules(content);
100
+ for (const rule of rules) {
101
+ if (!rule.hostname || !rule.service)
102
+ continue;
103
+ if (!serviceMatchesPort(rule.service, port))
104
+ continue;
105
+ const normalized = normalizeHostname(rule.hostname);
106
+ if (normalized)
107
+ hostnames.add(normalized);
108
+ }
109
+ }
110
+ catch {
111
+ continue;
112
+ }
113
+ }
114
+ return Array.from(hostnames);
115
+ }
116
+ //# sourceMappingURL=cloudflared-config.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cloudflared-config.js","sourceRoot":"","sources":["../../src/utils/cloudflared-config.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"setup-instructions.d.ts","sourceRoot":"","sources":["../../src/utils/setup-instructions.ts"],"names":[],"mappings":"AAAA,KAAK,cAAc,GAAG,QAAQ,GAAG,OAAO,CAAA;AAExC,UAAU,iBAAiB;IACzB,IAAI,EAAE,cAAc,CAAA;IACpB,OAAO,EAAE,MAAM,CAAA;IACf,WAAW,CAAC,EAAE,OAAO,CAAA;IACrB,YAAY,CAAC,EAAE,OAAO,CAAA;CACvB;AAQD,wBAAgB,eAAe,CAAC,OAAO,EAAE,iBAAiB,GAAG,MAAM,CA2ClE"}
1
+ {"version":3,"file":"setup-instructions.d.ts","sourceRoot":"","sources":["../../src/utils/setup-instructions.ts"],"names":[],"mappings":"AAAA,KAAK,cAAc,GAAG,QAAQ,GAAG,OAAO,CAAA;AAExC,UAAU,iBAAiB;IACzB,IAAI,EAAE,cAAc,CAAA;IACpB,OAAO,EAAE,MAAM,CAAA;IACf,WAAW,CAAC,EAAE,OAAO,CAAA;IACrB,YAAY,CAAC,EAAE,OAAO,CAAA;CACvB;AAQD,wBAAgB,eAAe,CAAC,OAAO,EAAE,iBAAiB,GAAG,MAAM,CAwClE"}
@@ -13,15 +13,15 @@ function buildStatusText(options) {
13
13
  const lines = [
14
14
  'Sub Bridge is running.',
15
15
  '',
16
- `Setup URL: ${baseUrl}`,
16
+ `Setup URL: ${baseUrl}?to=cursor`,
17
17
  "Open this URL in your browser where you're logged into ChatGPT or Claude.",
18
18
  '',
19
19
  'To configure Cursor:',
20
20
  '1. Authenticate with ChatGPT or Claude in the web UI',
21
21
  '2. Copy the generated API key',
22
- '3. In Cursor: Settings → Models → API Keys',
23
- ' - Paste the API key',
24
- ` - Set Base URL to: ${baseUrlForV1}/v1`,
22
+ '3. In Cursor Settings → Models → API Keys',
23
+ ' - Paste the API key from the web UI',
24
+ ` - Set Base URL from the web UI`,
25
25
  '',
26
26
  ...MODEL_MAPPING_LINES,
27
27
  ];
@@ -35,14 +35,11 @@ function buildStatusText(options) {
35
35
  'Sub Bridge server not reachable.',
36
36
  '',
37
37
  'To set up:',
38
- `1. Open ${baseUrl} in your browser where you're logged into ChatGPT or Claude`,
38
+ `1. Open ${baseUrl}?to=cursor in your browser where you're logged into ChatGPT or Claude`,
39
39
  '2. Authenticate and copy the generated API key',
40
- `3. In Cursor: Settings → Models → API Keys, paste the key and set Base URL to ${baseUrlForV1}/v1`,
40
+ `3. In Cursor: Settings → Models → API Keys, paste the key and set Base URL from the web UI`,
41
41
  '',
42
42
  ...MODEL_MAPPING_LINES,
43
- '',
44
- 'If you need a public URL, enable a tunnel in the web UI.',
45
- '',
46
43
  `Setup screenshot: ${baseUrl}/assets/setup.png`,
47
44
  ].join('\n');
48
45
  }
@@ -1 +1 @@
1
- {"version":3,"file":"setup-instructions.js","sourceRoot":"","sources":["../../src/utils/setup-instructions.ts"],"names":[],"mappings":";;AAeA,0CA2CC;AAjDD,MAAM,mBAAmB,GAAG;IAC1B,8EAA8E;IAC9E,+DAA+D;IAC/D,sEAAsE;CACvE,CAAA;AAED,SAAgB,eAAe,CAAC,OAA0B;IACxD,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,OAAO,CAAA;IACjC,MAAM,YAAY,GAAG,OAAO,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAA;IAE/C,IAAI,IAAI,KAAK,QAAQ,EAAE,CAAC;QACtB,MAAM,KAAK,GAAG;YACZ,wBAAwB;YACxB,EAAE;YACF,cAAc,OAAO,EAAE;YACvB,2EAA2E;YAC3E,EAAE;YACF,sBAAsB;YACtB,sDAAsD;YACtD,+BAA+B;YAC/B,4CAA4C;YAC5C,wBAAwB;YACxB,yBAAyB,YAAY,KAAK;YAC1C,EAAE;YACF,GAAG,mBAAmB;SACvB,CAAA;QAED,IAAI,OAAO,CAAC,WAAW,IAAI,CAAC,OAAO,CAAC,YAAY,EAAE,CAAC;YACjD,KAAK,CAAC,IAAI,CAAC,EAAE,EAAE,qFAAqF,CAAC,CAAA;QACvG,CAAC;QAED,KAAK,CAAC,IAAI,CAAC,EAAE,EAAE,qBAAqB,OAAO,mBAAmB,CAAC,CAAA;QAC/D,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;IACzB,CAAC;IAED,OAAO;QACL,kCAAkC;QAClC,EAAE;QACF,YAAY;QACZ,WAAW,OAAO,6DAA6D;QAC/E,gDAAgD;QAChD,iFAAiF,YAAY,KAAK;QAClG,EAAE;QACF,GAAG,mBAAmB;QACtB,EAAE;QACF,0DAA0D;QAC1D,EAAE;QACF,qBAAqB,OAAO,mBAAmB;KAChD,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;AACd,CAAC"}
1
+ {"version":3,"file":"setup-instructions.js","sourceRoot":"","sources":["../../src/utils/setup-instructions.ts"],"names":[],"mappings":";;AAeA,0CAwCC;AA9CD,MAAM,mBAAmB,GAAG;IAC1B,8EAA8E;IAC9E,+DAA+D;IAC/D,sEAAsE;CACvE,CAAA;AAED,SAAgB,eAAe,CAAC,OAA0B;IACxD,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,OAAO,CAAA;IACjC,MAAM,YAAY,GAAG,OAAO,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAA;IAE/C,IAAI,IAAI,KAAK,QAAQ,EAAE,CAAC;QACtB,MAAM,KAAK,GAAG;YACZ,wBAAwB;YACxB,EAAE;YACF,cAAc,OAAO,YAAY;YACjC,2EAA2E;YAC3E,EAAE;YACF,sBAAsB;YACtB,sDAAsD;YACtD,+BAA+B;YAC/B,2CAA2C;YAC3C,wCAAwC;YACxC,mCAAmC;YACnC,EAAE;YACF,GAAG,mBAAmB;SACvB,CAAA;QAED,IAAI,OAAO,CAAC,WAAW,IAAI,CAAC,OAAO,CAAC,YAAY,EAAE,CAAC;YACjD,KAAK,CAAC,IAAI,CAAC,EAAE,EAAE,qFAAqF,CAAC,CAAA;QACvG,CAAC;QAED,KAAK,CAAC,IAAI,CAAC,EAAE,EAAE,qBAAqB,OAAO,mBAAmB,CAAC,CAAA;QAC/D,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;IACzB,CAAC;IAED,OAAO;QACL,kCAAkC;QAClC,EAAE;QACF,YAAY;QACZ,WAAW,OAAO,uEAAuE;QACzF,gDAAgD;QAChD,4FAA4F;QAC5F,EAAE;QACF,GAAG,mBAAmB;QACtB,qBAAqB,OAAO,mBAAmB;KAChD,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;AACd,CAAC"}