oblien 2.2.0 → 2.2.2

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 (46) hide show
  1. package/README.md +1 -0
  2. package/dist/cli/commands/auth.d.ts.map +1 -1
  3. package/dist/cli/commands/auth.js +2 -2
  4. package/dist/cli/commands/auth.js.map +1 -1
  5. package/dist/cli/commands/tunnel.d.ts +14 -0
  6. package/dist/cli/commands/tunnel.d.ts.map +1 -0
  7. package/dist/cli/commands/tunnel.js +201 -0
  8. package/dist/cli/commands/tunnel.js.map +1 -0
  9. package/dist/cli/index.js +16 -1
  10. package/dist/cli/index.js.map +1 -1
  11. package/dist/client.d.ts +3 -0
  12. package/dist/client.d.ts.map +1 -1
  13. package/dist/client.js +4 -0
  14. package/dist/client.js.map +1 -1
  15. package/dist/edge-tunnel.d.ts +95 -0
  16. package/dist/edge-tunnel.d.ts.map +1 -0
  17. package/dist/edge-tunnel.js +127 -0
  18. package/dist/edge-tunnel.js.map +1 -0
  19. package/dist/index.d.ts +4 -1
  20. package/dist/index.d.ts.map +1 -1
  21. package/dist/index.js +2 -0
  22. package/dist/index.js.map +1 -1
  23. package/dist/runtime/transfer.d.ts.map +1 -1
  24. package/dist/runtime/transfer.js +43 -1
  25. package/dist/runtime/transfer.js.map +1 -1
  26. package/dist/runtime-http.d.ts +10 -0
  27. package/dist/runtime-http.d.ts.map +1 -1
  28. package/dist/runtime-http.js +83 -1
  29. package/dist/runtime-http.js.map +1 -1
  30. package/dist/tunnel/client.d.ts +70 -0
  31. package/dist/tunnel/client.d.ts.map +1 -0
  32. package/dist/tunnel/client.js +280 -0
  33. package/dist/tunnel/client.js.map +1 -0
  34. package/dist/tunnel/protocol.d.ts +38 -0
  35. package/dist/tunnel/protocol.d.ts.map +1 -0
  36. package/dist/tunnel/protocol.js +66 -0
  37. package/dist/tunnel/protocol.js.map +1 -0
  38. package/dist/types/edge-tunnel.d.ts +40 -0
  39. package/dist/types/edge-tunnel.d.ts.map +1 -0
  40. package/dist/types/edge-tunnel.js +3 -0
  41. package/dist/types/edge-tunnel.js.map +1 -0
  42. package/dist/types/index.d.ts +2 -1
  43. package/dist/types/index.d.ts.map +1 -1
  44. package/dist/types/runtime.d.ts +16 -0
  45. package/dist/types/runtime.d.ts.map +1 -1
  46. package/package.json +1 -1
package/README.md CHANGED
@@ -154,6 +154,7 @@ This enables the Runtime API server (if needed), fetches a gateway JWT, and retu
154
154
  | Namespace | What it does |
155
155
  |-----------|-------------|
156
156
  | `rt.files` | List, read, write, stat, mkdir, delete, stream directory trees |
157
+ | `rt.transfer` | Download and upload `tar.gz` archives, with optional client-side progress callbacks |
157
158
  | `rt.exec` | Run commands, stream output, list/kill tasks, send stdin |
158
159
  | `rt.terminal` | Create PTY sessions, get scrollback, close sessions |
159
160
  | `rt.search` | Content search (ripgrep) and filename search |
@@ -1 +1 @@
1
- {"version":3,"file":"auth.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/auth.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAMH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AA8L3C,wBAAsB,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC,CA2B5E"}
1
+ {"version":3,"file":"auth.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/auth.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAMH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AA6L3C,wBAAsB,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC,CA2B5E"}
@@ -49,7 +49,8 @@ function prompt(question) {
49
49
  // ── Login ───────────────────────────────────────────────────────────
50
50
  async function authLogin(flags) {
51
51
  const base = flags.baseUrl ?? DEFAULT_BASE;
52
- // Check if already logged in
52
+ // If credentials exist but haven't failed, confirm re-auth.
53
+ // If config was already cleared (e.g. after a 401), skip straight to login.
53
54
  const existing = loadConfig();
54
55
  if (existing?.token || (existing?.clientId && existing?.clientSecret)) {
55
56
  const answer = await prompt('You are already logged in. Re-authenticate? [y/N] ');
@@ -107,7 +108,6 @@ async function authLogin(flags) {
107
108
  printError('Login timed out. Please try again.');
108
109
  process.exit(1);
109
110
  }
110
- console.log(' ✓ Authenticated!\n');
111
111
  // Step 5: Save the original JWT — it's now authenticated (user_id bound to its session)
112
112
  saveConfig({
113
113
  token: jwt,
@@ -1 +1 @@
1
- {"version":3,"file":"auth.js","sourceRoot":"","sources":["../../../src/cli/commands/auth.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"auth.js","sourceRoot":"","sources":["../../../src/cli/commands/auth.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,14 @@
1
+ /**
2
+ * oblien tunnel — expose a local port through the Oblien edge.
3
+ *
4
+ * oblien tunnel <port> Expose localhost:port
5
+ * oblien tunnel <port> --slug my-app With custom slug
6
+ * oblien tunnel <port> --name "My App" With custom name
7
+ * oblien tunnel <port> --domain x.com With custom domain
8
+ * oblien tunnel list List existing tunnels
9
+ * oblien tunnel status <id> Show tunnel details
10
+ * oblien tunnel delete <id> Delete a tunnel
11
+ */
12
+ import type { CliFlags } from './types.js';
13
+ export declare function tunnelCmd(args: string[], flags: CliFlags): Promise<void>;
14
+ //# sourceMappingURL=tunnel.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tunnel.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/tunnel.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAMH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAG3C,wBAAsB,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC,CAwB9E"}
@@ -0,0 +1,201 @@
1
+ /**
2
+ * oblien tunnel — expose a local port through the Oblien edge.
3
+ *
4
+ * oblien tunnel <port> Expose localhost:port
5
+ * oblien tunnel <port> --slug my-app With custom slug
6
+ * oblien tunnel <port> --name "My App" With custom name
7
+ * oblien tunnel <port> --domain x.com With custom domain
8
+ * oblien tunnel list List existing tunnels
9
+ * oblien tunnel status <id> Show tunnel details
10
+ * oblien tunnel delete <id> Delete a tunnel
11
+ */
12
+ import { buildClient } from '../auth.js';
13
+ import { printResult, printSuccess, printTable, printError } from '../output.js';
14
+ import { parseFlag, requireId, confirm } from './helpers.js';
15
+ import { TunnelClient } from '../../tunnel/client.js';
16
+ export async function tunnelCmd(args, flags) {
17
+ const sub = args[0];
18
+ switch (sub) {
19
+ case 'list':
20
+ case 'ls':
21
+ return tunnelList(flags);
22
+ case 'status':
23
+ return tunnelStatus(args[1], flags);
24
+ case 'delete':
25
+ case 'rm':
26
+ return tunnelDelete(args[1], flags);
27
+ case undefined:
28
+ return tunnelHelp();
29
+ default: {
30
+ // If first arg is a number, treat it as: oblien tunnel <port>
31
+ const port = Number(sub);
32
+ if (!Number.isNaN(port) && port > 0 && port <= 65535) {
33
+ return tunnelConnect(port, args.slice(1), flags);
34
+ }
35
+ console.error(`Unknown subcommand: ${sub}\n`);
36
+ return tunnelHelp();
37
+ }
38
+ }
39
+ }
40
+ // ── oblien tunnel <port> ──────────────────────────────────────────
41
+ async function tunnelConnect(port, args, flags) {
42
+ const client = buildClient(flags);
43
+ const slug = parseFlag(args, '--slug');
44
+ const name = parseFlag(args, '--name');
45
+ const domain = parseFlag(args, '--domain');
46
+ const expiresIn = parseFlag(args, '--expires-in');
47
+ // 1. Check for an existing tunnel on this port.
48
+ let tunnel;
49
+ try {
50
+ const { tunnels } = await client.edgeTunnel.list();
51
+ tunnel = tunnels.find(t => t.port === port && t.status === 'active');
52
+ }
53
+ catch { /* no existing tunnels */ }
54
+ // 2. Create a new tunnel if none exists for this port.
55
+ if (!tunnel) {
56
+ const tunnelName = name ?? `tunnel-${port}`;
57
+ const params = { name: tunnelName, port };
58
+ if (slug)
59
+ params.slug = slug;
60
+ if (domain)
61
+ params.domain = domain;
62
+ const res = await client.edgeTunnel.create(params);
63
+ tunnel = res.tunnel;
64
+ }
65
+ // 3. Issue a connection token.
66
+ const tokenRes = await client.edgeTunnel.issueToken(tunnel.id, expiresIn ? { expiresIn } : undefined);
67
+ // 4. Print tunnel info and connect.
68
+ console.log();
69
+ console.log(` \x1b[1m\x1b[32m✓ Tunnel ready\x1b[0m`);
70
+ console.log();
71
+ console.log(` URL ${tunnel.url}`);
72
+ console.log(` Port localhost:${port}`);
73
+ console.log(` ID ${tunnel.id}`);
74
+ if (!slug) {
75
+ console.log();
76
+ console.log(` \x1b[2mTip: Use --slug <name> for a custom URL, e.g. oblien tunnel ${port} --slug my-app\x1b[0m`);
77
+ }
78
+ console.log();
79
+ const tunnelClient = new TunnelClient({
80
+ connectUrl: tokenRes.connect_url,
81
+ token: tokenRes.token,
82
+ localPort: port,
83
+ tokenExpiresAt: tokenRes.expires_at,
84
+ });
85
+ let requestCount = 0;
86
+ tunnelClient.on('open', () => {
87
+ console.log(` \x1b[2mConnected — forwarding traffic. Press Ctrl+C to stop.\x1b[0m`);
88
+ console.log();
89
+ });
90
+ tunnelClient.on('request', (_streamId, localPort) => {
91
+ requestCount++;
92
+ const ts = new Date().toLocaleTimeString();
93
+ console.log(` \x1b[2m${ts}\x1b[0m → localhost:${localPort} \x1b[2m(${requestCount})\x1b[0m`);
94
+ });
95
+ tunnelClient.on('stream-error', (_streamId, reason) => {
96
+ console.log(` \x1b[31m✗\x1b[0m ${reason}`);
97
+ });
98
+ tunnelClient.on('disconnect', (code, reason) => {
99
+ console.log();
100
+ printError(`Disconnected (code=${code}${reason ? `, ${reason}` : ''}). Reconnecting...`);
101
+ // Simple reconnect with backoff
102
+ setTimeout(() => {
103
+ if (!tunnelClient.isConnected) {
104
+ tunnelClient.connect();
105
+ }
106
+ }, 2000);
107
+ });
108
+ let finishRun;
109
+ tunnelClient.on('auth-failed', (failure) => {
110
+ console.log();
111
+ printError(`${failure.message} Token expires at ${failure.expiresAt}.`);
112
+ finishRun?.();
113
+ });
114
+ const runPromise = new Promise((resolve) => {
115
+ let settled = false;
116
+ const finish = () => {
117
+ if (settled)
118
+ return;
119
+ settled = true;
120
+ process.off('SIGINT', shutdown);
121
+ process.off('SIGTERM', shutdown);
122
+ resolve();
123
+ };
124
+ const shutdown = () => {
125
+ console.log();
126
+ console.log(` Disconnecting...`);
127
+ tunnelClient.close();
128
+ finish();
129
+ };
130
+ finishRun = finish;
131
+ process.on('SIGINT', shutdown);
132
+ process.on('SIGTERM', shutdown);
133
+ });
134
+ tunnelClient.connect();
135
+ await runPromise;
136
+ }
137
+ // ── oblien tunnel list ────────────────────────────────────────────
138
+ async function tunnelList(flags) {
139
+ const client = buildClient(flags);
140
+ const res = await client.edgeTunnel.list();
141
+ if (flags.json) {
142
+ printResult(res, true);
143
+ return;
144
+ }
145
+ const tunnels = res.tunnels ?? [];
146
+ if (tunnels.length === 0) {
147
+ console.log('No tunnels.');
148
+ return;
149
+ }
150
+ printTable(tunnels.map(t => ({
151
+ id: t.id,
152
+ name: t.name,
153
+ port: t.port,
154
+ url: t.url,
155
+ status: t.status,
156
+ })), ['id', 'name', 'port', 'url', 'status']);
157
+ }
158
+ // ── oblien tunnel status <id> ─────────────────────────────────────
159
+ async function tunnelStatus(id, flags) {
160
+ const tunnelId = Number(requireId(id, 'tunnel status <id>'));
161
+ const client = buildClient(flags);
162
+ const res = await client.edgeTunnel.get(tunnelId);
163
+ printResult(flags.json ? res : res.tunnel, flags.json);
164
+ }
165
+ // ── oblien tunnel delete <id> ─────────────────────────────────────
166
+ async function tunnelDelete(id, flags) {
167
+ const tunnelId = Number(requireId(id, 'tunnel delete <id>'));
168
+ const client = buildClient(flags);
169
+ const ok = await confirm(`Delete tunnel ${tunnelId}?`);
170
+ if (!ok)
171
+ return;
172
+ await client.edgeTunnel.delete(tunnelId);
173
+ printSuccess(`Tunnel ${tunnelId} deleted.`);
174
+ }
175
+ // ── Help ──────────────────────────────────────────────────────────
176
+ function tunnelHelp() {
177
+ console.log(`
178
+ oblien tunnel - Expose a local port through the Oblien edge
179
+
180
+ Usage:
181
+ oblien tunnel <port> Expose localhost:port
182
+ oblien tunnel list List existing tunnels
183
+ oblien tunnel status <id> Show tunnel details
184
+ oblien tunnel delete <id> Delete a tunnel
185
+
186
+ Flags:
187
+ --slug <slug> Custom subdomain slug
188
+ --name <name> Display name for the tunnel
189
+ --domain <domain> Custom base domain
190
+ --expires-in <ttl> Token TTL like 30s, 5m, 1h, 7d
191
+
192
+ Examples:
193
+ oblien tunnel 3000
194
+ oblien tunnel 8080 --slug my-api
195
+ oblien tunnel 3000 --name "Dev Server" --domain preview.oblien.com
196
+ oblien tunnel 3000 --expires-in 15m
197
+ oblien tunnel list
198
+ oblien tunnel delete 42
199
+ `);
200
+ }
201
+ //# sourceMappingURL=tunnel.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tunnel.js","sourceRoot":"","sources":["../../../src/cli/commands/tunnel.ts"],"names":[],"mappings":"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"}
package/dist/cli/index.js CHANGED
@@ -10,6 +10,7 @@
10
10
  */
11
11
  import { createRequire } from 'node:module';
12
12
  import { extractGlobalFlags } from './output.js';
13
+ import { clearConfig } from './config-store.js';
13
14
  import { authCmd } from './commands/auth.js';
14
15
  import { configCmd } from './commands/config.js';
15
16
  import { skillsCmd } from './commands/skills.js';
@@ -35,6 +36,7 @@ import { metadataCmd } from './commands/metadata.js';
35
36
  import { terminalCmd } from './commands/terminal.js';
36
37
  import { watcherCmd } from './commands/watcher.js';
37
38
  import { tokensCmd } from './commands/tokens.js';
39
+ import { tunnelCmd } from './commands/tunnel.js';
38
40
  // ── Version ─────────────────────────────────────────────────────────
39
41
  function version() {
40
42
  const require = createRequire(import.meta.url);
@@ -80,6 +82,7 @@ function help() {
80
82
  terminal Manage runtime terminal sessions
81
83
  watcher Manage file system watchers
82
84
  tokens Issue scoped tokens (namespace/workspace JWTs)
85
+ tunnel Expose local ports through the Oblien edge
83
86
 
84
87
  Global flags:
85
88
  --json Output as JSON
@@ -122,6 +125,9 @@ function help() {
122
125
  oblien terminal list ws_abc123
123
126
  oblien watcher create ws_abc123 --path /app/src
124
127
  oblien tokens create --scope namespace --namespace my-ns
128
+ oblien tunnel 3000
129
+ oblien tunnel 8080 --slug my-api
130
+ oblien tunnel list
125
131
  `.trimStart());
126
132
  }
127
133
  // ── Main ────────────────────────────────────────────────────────────
@@ -225,6 +231,9 @@ async function main() {
225
231
  case 'tokens':
226
232
  await tokensCmd(args, flags);
227
233
  break;
234
+ case 'tunnel':
235
+ await tunnelCmd(args, flags);
236
+ break;
228
237
  default:
229
238
  console.error(`Unknown command: ${command}\n`);
230
239
  help();
@@ -234,7 +243,13 @@ async function main() {
234
243
  catch (err) {
235
244
  const msg = err instanceof Error ? err.message : String(err);
236
245
  const code = err.status;
237
- console.error(`✗ ${msg}${code ? ` (HTTP ${code})` : ''}`);
246
+ if (code === 401) {
247
+ clearConfig();
248
+ console.error(`✗ Session expired. Run: oblien login`);
249
+ }
250
+ else {
251
+ console.error(`✗ ${msg}${code ? ` (HTTP ${code})` : ''}`);
252
+ }
238
253
  process.exit(1);
239
254
  }
240
255
  }
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":"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"}
package/dist/client.d.ts CHANGED
@@ -4,6 +4,7 @@ import { WorkspaceHandle } from './workspace-handle.js';
4
4
  import { Namespace } from './namespace.js';
5
5
  import { Pages } from './pages.js';
6
6
  import { EdgeProxy } from './edge-proxy.js';
7
+ import { EdgeTunnel } from './edge-tunnel.js';
7
8
  import { Domain } from './domain.js';
8
9
  import { Tokens } from './tokens.js';
9
10
  import type { OblienOptions } from './types/index.js';
@@ -41,6 +42,8 @@ export declare class Oblien {
41
42
  get sites(): Pages;
42
43
  /** Edge proxy — reverse proxy subdomains to external upstreams (enterprise). */
43
44
  readonly edgeProxy: EdgeProxy;
45
+ /** Edge tunnel — expose local ports to the internet through the Oblien edge. */
46
+ readonly edgeTunnel: EdgeTunnel;
44
47
  /** Standalone domain utilities (DNS validation). */
45
48
  readonly domain: Domain;
46
49
  /** Scoped tokens — issue short-lived namespace/workspace JWTs for end-users. */
@@ -1 +1 @@
1
- {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AACvC,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACnC,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAEtD;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,qBAAa,MAAM;IACjB,kEAAkE;IAClE,QAAQ,CAAC,KAAK,EAAE,UAAU,CAAC;IAE3B,oEAAoE;IACpE,QAAQ,CAAC,UAAU,EAAE,SAAS,CAAC;IAE/B,+DAA+D;IAC/D,QAAQ,CAAC,UAAU,EAAE,SAAS,CAAC;IAE/B,mEAAmE;IACnE,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAC;IAEtB,6CAA6C;IAC7C,IAAI,KAAK,IAAI,KAAK,CAAuB;IAEzC,gFAAgF;IAChF,QAAQ,CAAC,SAAS,EAAE,SAAS,CAAC;IAE9B,oDAAoD;IACpD,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IAExB,gFAAgF;IAChF,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;gBAEZ,OAAO,EAAE,aAAa;IAUlC;;;;;;;;;;;;;;;;;;;OAmBG;IACH,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAI7B;;OAEG;IACH,WAAW,IAAI,IAAI;IAInB;;;;;;;;;;;;;;OAcG;IACH,SAAS,CAAC,WAAW,EAAE,MAAM,GAAG,eAAe;CAGhD"}
1
+ {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AACvC,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACnC,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAEtD;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,qBAAa,MAAM;IACjB,kEAAkE;IAClE,QAAQ,CAAC,KAAK,EAAE,UAAU,CAAC;IAE3B,oEAAoE;IACpE,QAAQ,CAAC,UAAU,EAAE,SAAS,CAAC;IAE/B,+DAA+D;IAC/D,QAAQ,CAAC,UAAU,EAAE,SAAS,CAAC;IAE/B,mEAAmE;IACnE,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAC;IAEtB,6CAA6C;IAC7C,IAAI,KAAK,IAAI,KAAK,CAAuB;IAEzC,gFAAgF;IAChF,QAAQ,CAAC,SAAS,EAAE,SAAS,CAAC;IAE9B,gFAAgF;IAChF,QAAQ,CAAC,UAAU,EAAE,UAAU,CAAC;IAEhC,oDAAoD;IACpD,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IAExB,gFAAgF;IAChF,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;gBAEZ,OAAO,EAAE,aAAa;IAWlC;;;;;;;;;;;;;;;;;;;OAmBG;IACH,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAI7B;;OAEG;IACH,WAAW,IAAI,IAAI;IAInB;;;;;;;;;;;;;;OAcG;IACH,SAAS,CAAC,WAAW,EAAE,MAAM,GAAG,eAAe;CAGhD"}
package/dist/client.js CHANGED
@@ -4,6 +4,7 @@ import { WorkspaceHandle } from './workspace-handle.js';
4
4
  import { Namespace } from './namespace.js';
5
5
  import { Pages } from './pages.js';
6
6
  import { EdgeProxy } from './edge-proxy.js';
7
+ import { EdgeTunnel } from './edge-tunnel.js';
7
8
  import { Domain } from './domain.js';
8
9
  import { Tokens } from './tokens.js';
9
10
  /**
@@ -40,6 +41,8 @@ export class Oblien {
40
41
  get sites() { return this.pages; }
41
42
  /** Edge proxy — reverse proxy subdomains to external upstreams (enterprise). */
42
43
  edgeProxy;
44
+ /** Edge tunnel — expose local ports to the internet through the Oblien edge. */
45
+ edgeTunnel;
43
46
  /** Standalone domain utilities (DNS validation). */
44
47
  domain;
45
48
  /** Scoped tokens — issue short-lived namespace/workspace JWTs for end-users. */
@@ -50,6 +53,7 @@ export class Oblien {
50
53
  this.namespaces = new Namespace(this);
51
54
  this.pages = new Pages(this);
52
55
  this.edgeProxy = new EdgeProxy(this);
56
+ this.edgeTunnel = new EdgeTunnel(this);
53
57
  this.domain = new Domain(this._http);
54
58
  this.tokens = new Tokens(this);
55
59
  }
@@ -1 +1 @@
1
- {"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AACvC,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACnC,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAGrC;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,MAAM,OAAO,MAAM;IACjB,kEAAkE;IACzD,KAAK,CAAa;IAE3B,oEAAoE;IAC3D,UAAU,CAAY;IAE/B,+DAA+D;IACtD,UAAU,CAAY;IAE/B,mEAAmE;IAC1D,KAAK,CAAQ;IAEtB,6CAA6C;IAC7C,IAAI,KAAK,KAAY,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;IAEzC,gFAAgF;IACvE,SAAS,CAAY;IAE9B,oDAAoD;IAC3C,MAAM,CAAS;IAExB,gFAAgF;IACvE,MAAM,CAAS;IAExB,YAAY,OAAsB;QAChC,IAAI,CAAC,KAAK,GAAG,IAAI,UAAU,CAAC,OAAO,CAAC,CAAC;QACrC,IAAI,CAAC,UAAU,GAAG,IAAI,SAAS,CAAC,IAAI,CAAC,CAAC;QACtC,IAAI,CAAC,UAAU,GAAG,IAAI,SAAS,CAAC,IAAI,CAAC,CAAC;QACtC,IAAI,CAAC,KAAK,GAAG,IAAI,KAAK,CAAC,IAAI,CAAC,CAAC;QAC7B,IAAI,CAAC,SAAS,GAAG,IAAI,SAAS,CAAC,IAAI,CAAC,CAAC;QACrC,IAAI,CAAC,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACrC,IAAI,CAAC,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,CAAC;IACjC,CAAC;IAED;;;;;;;;;;;;;;;;;;;OAmBG;IACH,QAAQ,CAAC,KAAa;QACpB,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IAC7B,CAAC;IAED;;OAEG;IACH,WAAW;QACT,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC;IAC3B,CAAC;IAED;;;;;;;;;;;;;;OAcG;IACH,SAAS,CAAC,WAAmB;QAC3B,OAAO,IAAI,eAAe,CAAC,IAAI,CAAC,UAAU,EAAE,WAAW,CAAC,CAAC;IAC3D,CAAC;CACF"}
1
+ {"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AACvC,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACnC,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAGrC;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,MAAM,OAAO,MAAM;IACjB,kEAAkE;IACzD,KAAK,CAAa;IAE3B,oEAAoE;IAC3D,UAAU,CAAY;IAE/B,+DAA+D;IACtD,UAAU,CAAY;IAE/B,mEAAmE;IAC1D,KAAK,CAAQ;IAEtB,6CAA6C;IAC7C,IAAI,KAAK,KAAY,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;IAEzC,gFAAgF;IACvE,SAAS,CAAY;IAE9B,gFAAgF;IACvE,UAAU,CAAa;IAEhC,oDAAoD;IAC3C,MAAM,CAAS;IAExB,gFAAgF;IACvE,MAAM,CAAS;IAExB,YAAY,OAAsB;QAChC,IAAI,CAAC,KAAK,GAAG,IAAI,UAAU,CAAC,OAAO,CAAC,CAAC;QACrC,IAAI,CAAC,UAAU,GAAG,IAAI,SAAS,CAAC,IAAI,CAAC,CAAC;QACtC,IAAI,CAAC,UAAU,GAAG,IAAI,SAAS,CAAC,IAAI,CAAC,CAAC;QACtC,IAAI,CAAC,KAAK,GAAG,IAAI,KAAK,CAAC,IAAI,CAAC,CAAC;QAC7B,IAAI,CAAC,SAAS,GAAG,IAAI,SAAS,CAAC,IAAI,CAAC,CAAC;QACrC,IAAI,CAAC,UAAU,GAAG,IAAI,UAAU,CAAC,IAAI,CAAC,CAAC;QACvC,IAAI,CAAC,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACrC,IAAI,CAAC,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,CAAC;IACjC,CAAC;IAED;;;;;;;;;;;;;;;;;;;OAmBG;IACH,QAAQ,CAAC,KAAa;QACpB,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IAC7B,CAAC;IAED;;OAEG;IACH,WAAW;QACT,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC;IAC3B,CAAC;IAED;;;;;;;;;;;;;;OAcG;IACH,SAAS,CAAC,WAAmB;QAC3B,OAAO,IAAI,eAAe,CAAC,IAAI,CAAC,UAAU,EAAE,WAAW,CAAC,CAAC;IAC3D,CAAC;CACF"}
@@ -0,0 +1,95 @@
1
+ import type { HttpClient } from './http.js';
2
+ import type { ApiResponse } from './types/common.js';
3
+ import type { EdgeTunnelData, EdgeTunnelCreateParams, EdgeTunnelUpdateParams, EdgeTunnelListResponse, EdgeTunnelIssueTokenParams, EdgeTunnelTokenResponse } from './types/edge-tunnel.js';
4
+ import { TunnelClient, type TunnelClientOptions } from './tunnel/client.js';
5
+ /**
6
+ * Edge tunnel — expose local ports to the internet through the Oblien edge.
7
+ *
8
+ * **Programmatic usage:**
9
+ * ```ts
10
+ * import Oblien from 'oblien';
11
+ * const client = new Oblien({ clientId, clientSecret });
12
+ *
13
+ * // One-liner: create + connect
14
+ * const tunnel = await client.edgeTunnel.connect({
15
+ * name: 'dev-server',
16
+ * port: 3000,
17
+ * });
18
+ *
19
+ * tunnel.on('request', (streamId, port) => {
20
+ * console.log(`Request → localhost:${port}`);
21
+ * });
22
+ *
23
+ * // Later…
24
+ * tunnel.close();
25
+ * ```
26
+ *
27
+ * **Low-level control:**
28
+ * ```ts
29
+ * const { tunnel } = await client.edgeTunnel.create({ name: 'api', port: 8080 });
30
+ * const { token, connect_url } = await client.edgeTunnel.issueToken(tunnel.id);
31
+ *
32
+ * const tc = new TunnelClient({ connectUrl: connect_url, token });
33
+ * tc.connect();
34
+ * ```
35
+ */
36
+ export declare class EdgeTunnel {
37
+ /** @internal */
38
+ readonly _http: HttpClient;
39
+ private readonly _base;
40
+ constructor(client: {
41
+ _http: HttpClient;
42
+ });
43
+ /** List all tunnels for the authenticated user. */
44
+ list(): Promise<EdgeTunnelListResponse>;
45
+ /** Get a single tunnel by ID. */
46
+ get(tunnelId: number): Promise<ApiResponse & {
47
+ tunnel: EdgeTunnelData;
48
+ }>;
49
+ /** Create a new edge tunnel. */
50
+ create(params: EdgeTunnelCreateParams): Promise<ApiResponse & {
51
+ tunnel: EdgeTunnelData;
52
+ }>;
53
+ /** Update tunnel name, slug, or port. */
54
+ update(tunnelId: number, params: EdgeTunnelUpdateParams): Promise<ApiResponse & {
55
+ tunnel: EdgeTunnelData;
56
+ }>;
57
+ /** Enable a disabled tunnel (re-creates the edge route). */
58
+ enable(tunnelId: number): Promise<ApiResponse & {
59
+ tunnel: EdgeTunnelData;
60
+ }>;
61
+ /** Disable a tunnel (removes the edge route, keeps DB record). */
62
+ disable(tunnelId: number): Promise<ApiResponse & {
63
+ tunnel: EdgeTunnelData;
64
+ }>;
65
+ /** Permanently delete a tunnel. */
66
+ delete(tunnelId: number): Promise<ApiResponse>;
67
+ /** Issue a short-lived JWT for agent authentication with the tunnel broker. */
68
+ issueToken(tunnelId: number, options?: EdgeTunnelIssueTokenParams): Promise<EdgeTunnelTokenResponse>;
69
+ /**
70
+ * Create a tunnel (or reuse an existing one) and connect in one call.
71
+ *
72
+ * Returns a connected {@link TunnelClient} that forwards incoming Oblien edge
73
+ * traffic to `localhost:<port>`. The tunnel stays open until you call `.close()`.
74
+ *
75
+ * ```ts
76
+ * const tunnel = await client.edgeTunnel.connect({ name: 'dev', port: 3000 });
77
+ * console.log(tunnel.url); // https://dev-xyz.preview.oblien.com
78
+ *
79
+ * tunnel.on('open', () => console.log('connected'));
80
+ * tunnel.on('request', (id, port) => console.log(`→ localhost:${port}`));
81
+ * tunnel.on('close', () => console.log('disconnected'));
82
+ *
83
+ * // Graceful shutdown
84
+ * tunnel.close();
85
+ * ```
86
+ *
87
+ * @param params - Tunnel creation params (port is required).
88
+ * @param connectOpts - Optional overrides for the WebSocket client.
89
+ */
90
+ connect(params: EdgeTunnelCreateParams, connectOpts?: Partial<Pick<TunnelClientOptions, 'localPort' | 'minTokenTtlMs' | 'tokenExpiresAt'>>): Promise<TunnelClient & {
91
+ url: string;
92
+ tunnelId: number;
93
+ }>;
94
+ }
95
+ //# sourceMappingURL=edge-tunnel.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"edge-tunnel.d.ts","sourceRoot":"","sources":["../src/edge-tunnel.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAC5C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,KAAK,EACV,cAAc,EACd,sBAAsB,EACtB,sBAAsB,EACtB,sBAAsB,EACtB,0BAA0B,EAC1B,uBAAuB,EACxB,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,YAAY,EAAE,KAAK,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAE5E;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AACH,qBAAa,UAAU;IACrB,gBAAgB;IAChB,QAAQ,CAAC,KAAK,EAAE,UAAU,CAAC;IAE3B,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAmB;gBAE7B,MAAM,EAAE;QAAE,KAAK,EAAE,UAAU,CAAA;KAAE;IAIzC,mDAAmD;IAC7C,IAAI,IAAI,OAAO,CAAC,sBAAsB,CAAC;IAI7C,iCAAiC;IAC3B,GAAG,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,GAAG;QAAE,MAAM,EAAE,cAAc,CAAA;KAAE,CAAC;IAI9E,gCAAgC;IAC1B,MAAM,CAAC,MAAM,EAAE,sBAAsB,GAAG,OAAO,CAAC,WAAW,GAAG;QAAE,MAAM,EAAE,cAAc,CAAA;KAAE,CAAC;IAI/F,yCAAyC;IACnC,MAAM,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,sBAAsB,GAAG,OAAO,CAAC,WAAW,GAAG;QAAE,MAAM,EAAE,cAAc,CAAA;KAAE,CAAC;IAIjH,4DAA4D;IACtD,MAAM,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,GAAG;QAAE,MAAM,EAAE,cAAc,CAAA;KAAE,CAAC;IAIjF,kEAAkE;IAC5D,OAAO,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,GAAG;QAAE,MAAM,EAAE,cAAc,CAAA;KAAE,CAAC;IAIlF,mCAAmC;IAC7B,MAAM,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC;IAIpD,+EAA+E;IACzE,UAAU,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,0BAA0B,GAAG,OAAO,CAAC,uBAAuB,CAAC;IAQ1G;;;;;;;;;;;;;;;;;;;;OAoBG;IACG,OAAO,CACX,MAAM,EAAE,sBAAsB,EAC9B,WAAW,CAAC,EAAE,OAAO,CAAC,IAAI,CAAC,mBAAmB,EAAE,WAAW,GAAG,eAAe,GAAG,gBAAgB,CAAC,CAAC,GACjG,OAAO,CAAC,YAAY,GAAG;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,CAAC;CAiC7D"}