oblien 2.1.9 → 2.2.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.
- package/README.md +19 -3
- package/dist/cli/commands/namespaces.d.ts.map +1 -1
- package/dist/cli/commands/namespaces.js +14 -0
- package/dist/cli/commands/namespaces.js.map +1 -1
- package/dist/cli/commands/tunnel.d.ts +14 -0
- package/dist/cli/commands/tunnel.d.ts.map +1 -0
- package/dist/cli/commands/tunnel.js +177 -0
- package/dist/cli/commands/tunnel.js.map +1 -0
- package/dist/cli/index.js +8 -0
- package/dist/cli/index.js.map +1 -1
- package/dist/client.d.ts +3 -0
- package/dist/client.d.ts.map +1 -1
- package/dist/client.js +4 -0
- package/dist/client.js.map +1 -1
- package/dist/edge-tunnel.d.ts +95 -0
- package/dist/edge-tunnel.d.ts.map +1 -0
- package/dist/edge-tunnel.js +121 -0
- package/dist/edge-tunnel.js.map +1 -0
- package/dist/index.d.ts +4 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -0
- package/dist/index.js.map +1 -1
- package/dist/namespace.d.ts +6 -1
- package/dist/namespace.d.ts.map +1 -1
- package/dist/namespace.js +11 -0
- package/dist/namespace.js.map +1 -1
- package/dist/runtime/transfer.d.ts.map +1 -1
- package/dist/runtime/transfer.js +43 -1
- package/dist/runtime/transfer.js.map +1 -1
- package/dist/runtime-http.d.ts +10 -0
- package/dist/runtime-http.d.ts.map +1 -1
- package/dist/runtime-http.js +83 -1
- package/dist/runtime-http.js.map +1 -1
- package/dist/tunnel/client.d.ts +65 -0
- package/dist/tunnel/client.d.ts.map +1 -0
- package/dist/tunnel/client.js +227 -0
- package/dist/tunnel/client.js.map +1 -0
- package/dist/tunnel/protocol.d.ts +38 -0
- package/dist/tunnel/protocol.d.ts.map +1 -0
- package/dist/tunnel/protocol.js +66 -0
- package/dist/tunnel/protocol.js.map +1 -0
- package/dist/types/edge-tunnel.d.ts +36 -0
- package/dist/types/edge-tunnel.d.ts.map +1 -0
- package/dist/types/edge-tunnel.js +3 -0
- package/dist/types/edge-tunnel.js.map +1 -0
- package/dist/types/index.d.ts +3 -2
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/namespace.d.ts +17 -0
- package/dist/types/namespace.d.ts.map +1 -1
- package/dist/types/runtime.d.ts +16 -0
- package/dist/types/runtime.d.ts.map +1 -1
- package/dist/types/workspace-resources.d.ts +25 -1
- package/dist/types/workspace-resources.d.ts.map +1 -1
- 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 |
|
|
@@ -203,12 +204,19 @@ Pre-flight checks before connecting custom domains or claiming slugs. These are
|
|
|
203
204
|
const { available, url } = await client.domain.checkSlug({ slug: 'my-app' });
|
|
204
205
|
|
|
205
206
|
// Verify DNS for a custom domain
|
|
206
|
-
const { verified, cname, required_records } = await client.domain.verify({
|
|
207
|
+
const { verified, cname, ownership, errors, required_records } = await client.domain.verify({
|
|
207
208
|
domain: 'app.example.com',
|
|
208
209
|
resource_id: 'ws_abc',
|
|
209
210
|
});
|
|
211
|
+
|
|
212
|
+
if (!verified) {
|
|
213
|
+
console.log(errors);
|
|
214
|
+
console.log(required_records);
|
|
215
|
+
}
|
|
210
216
|
```
|
|
211
217
|
|
|
218
|
+
Standard plans require both edge DNS and TXT ownership. Enterprise custom-domain grants can verify with edge DNS only.
|
|
219
|
+
|
|
212
220
|
---
|
|
213
221
|
|
|
214
222
|
## Namespaces
|
|
@@ -256,10 +264,15 @@ See the [Edge Proxy docs](https://oblien.com/docs/concepts/edge-proxy) for detai
|
|
|
256
264
|
|
|
257
265
|
## Error handling
|
|
258
266
|
|
|
259
|
-
Every API error is an instance of `OblienError` with typed subclasses
|
|
267
|
+
Every API error is an instance of `OblienError` with typed subclasses. The SDK preserves the machine-readable `code`, human-readable `message`, optional `details`, and optional `requestId` from the API response.
|
|
260
268
|
|
|
261
269
|
```typescript
|
|
262
|
-
import {
|
|
270
|
+
import {
|
|
271
|
+
OblienError,
|
|
272
|
+
NotFoundError,
|
|
273
|
+
RateLimitError,
|
|
274
|
+
PaymentRequiredError,
|
|
275
|
+
} from 'oblien';
|
|
263
276
|
|
|
264
277
|
try {
|
|
265
278
|
await client.workspaces.get('ws_nonexistent');
|
|
@@ -267,6 +280,9 @@ try {
|
|
|
267
280
|
if (err instanceof NotFoundError) { /* 404 */ }
|
|
268
281
|
if (err instanceof RateLimitError) { /* 429 — back off */ }
|
|
269
282
|
if (err instanceof PaymentRequiredError) { /* 402 — quota exceeded */ }
|
|
283
|
+
if (err instanceof OblienError) {
|
|
284
|
+
console.error(err.code, err.message, err.details, err.requestId);
|
|
285
|
+
}
|
|
270
286
|
}
|
|
271
287
|
```
|
|
272
288
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"namespaces.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/namespaces.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAE3C,wBAAsB,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC,
|
|
1
|
+
{"version":3,"file":"namespaces.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/namespaces.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAE3C,wBAAsB,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC,CAuElF"}
|
|
@@ -5,6 +5,7 @@ export async function namespacesCmd(args, flags) {
|
|
|
5
5
|
const sub = args[0];
|
|
6
6
|
switch (sub) {
|
|
7
7
|
case 'create': return nsCreate(args.slice(1), flags);
|
|
8
|
+
case 'ensure': return nsEnsure(args.slice(1), flags);
|
|
8
9
|
case 'list':
|
|
9
10
|
case 'ls': return nsList(args.slice(1), flags);
|
|
10
11
|
case 'get': return nsGet(args[1], flags);
|
|
@@ -29,6 +30,7 @@ export async function namespacesCmd(args, flags) {
|
|
|
29
30
|
|
|
30
31
|
Usage:
|
|
31
32
|
oblien ns create [flags] Create a namespace
|
|
33
|
+
oblien ns ensure [flags] Create or reuse a namespace
|
|
32
34
|
oblien ns list List namespaces
|
|
33
35
|
oblien ns get <id|slug> Get namespace details
|
|
34
36
|
oblien ns update <id> [flags] Update namespace
|
|
@@ -62,6 +64,7 @@ export async function namespacesCmd(args, flags) {
|
|
|
62
64
|
|
|
63
65
|
Examples:
|
|
64
66
|
oblien ns create --name production --type production
|
|
67
|
+
oblien ns ensure --name production --type production
|
|
65
68
|
oblien ns list --status active
|
|
66
69
|
oblien ns suspend ns_abc123
|
|
67
70
|
oblien ns set-quota --namespace production --service sandbox --limit 500
|
|
@@ -80,6 +83,17 @@ async function nsCreate(args, flags) {
|
|
|
80
83
|
});
|
|
81
84
|
printResult(res.data, flags.json);
|
|
82
85
|
}
|
|
86
|
+
async function nsEnsure(args, flags) {
|
|
87
|
+
const client = buildClient(flags);
|
|
88
|
+
const res = await client.namespaces.ensure({
|
|
89
|
+
name: parseFlag(args, '--name'),
|
|
90
|
+
slug: parseFlag(args, '--slug'),
|
|
91
|
+
type: parseFlag(args, '--type'),
|
|
92
|
+
description: parseFlag(args, '--description'),
|
|
93
|
+
tags: parseFlag(args, '--tags')?.split(','),
|
|
94
|
+
});
|
|
95
|
+
printResult(res, flags.json);
|
|
96
|
+
}
|
|
83
97
|
async function nsList(args, flags) {
|
|
84
98
|
const client = buildClient(flags);
|
|
85
99
|
const res = await client.namespaces.list({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"namespaces.js","sourceRoot":"","sources":["../../../src/cli/commands/namespaces.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AACzC,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AACzD,OAAO,EAAE,SAAS,EAAE,SAAS,EAAW,MAAM,cAAc,CAAC;AAI7D,MAAM,CAAC,KAAK,UAAU,aAAa,CAAC,IAAc,EAAE,KAAe;IACjE,MAAM,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;IAEpB,QAAQ,GAAG,EAAE,CAAC;QACZ,KAAK,QAAQ,CAAC,CAAK,OAAO,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;QACzD,KAAK,MAAM,CAAC;QACZ,KAAK,IAAI,CAAC,CAAS,OAAO,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;QACvD,KAAK,KAAK,CAAC,CAAQ,OAAO,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;QAChD,KAAK,QAAQ,CAAC,CAAK,OAAO,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;QAClE,KAAK,QAAQ,CAAC;QACd,KAAK,IAAI,CAAC,CAAS,OAAO,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;QAClE,KAAK,SAAS,CAAC,CAAI,OAAO,QAAQ,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;QAC9D,KAAK,UAAU,CAAC,CAAG,OAAO,QAAQ,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;QAC/D,KAAK,iBAAiB,CAAC,CAAC,OAAO,QAAQ,CAAC,gBAAgB,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;QAC1E,KAAK,UAAU,CAAC,CAAG,OAAO,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;QACpE,KAAK,OAAO,CAAC,CAAM,OAAO,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;QACjE,KAAK,WAAW,CAAC,CAAE,OAAO,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;QAC3D,KAAK,aAAa,CAAC,CAAC,OAAO,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;QAC9D,KAAK,QAAQ,CAAC,CAAK,OAAO,gBAAgB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;QACjE,KAAK,SAAS,CAAC,CAAI,OAAO,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;QACnE,KAAK,mBAAmB,CAAC,CAAE,OAAO,iBAAiB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;QAC1E,KAAK,mBAAmB,CAAC,CAAE,OAAO,iBAAiB,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;QACpE,KAAK,gBAAgB,CAAC,CAAK,OAAO,qBAAqB,CAAC,KAAK,CAAC,CAAC;QAC/D;YACE,OAAO,CAAC,GAAG,CAAC
|
|
1
|
+
{"version":3,"file":"namespaces.js","sourceRoot":"","sources":["../../../src/cli/commands/namespaces.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,177 @@
|
|
|
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
|
+
// 1. Check for an existing tunnel on this port.
|
|
47
|
+
let tunnel;
|
|
48
|
+
try {
|
|
49
|
+
const { tunnels } = await client.edgeTunnel.list();
|
|
50
|
+
tunnel = tunnels.find(t => t.port === port && t.status === 'active');
|
|
51
|
+
}
|
|
52
|
+
catch { /* no existing tunnels */ }
|
|
53
|
+
// 2. Create a new tunnel if none exists for this port.
|
|
54
|
+
if (!tunnel) {
|
|
55
|
+
const tunnelName = name ?? `tunnel-${port}`;
|
|
56
|
+
const params = { name: tunnelName, port };
|
|
57
|
+
if (slug)
|
|
58
|
+
params.slug = slug;
|
|
59
|
+
if (domain)
|
|
60
|
+
params.domain = domain;
|
|
61
|
+
const res = await client.edgeTunnel.create(params);
|
|
62
|
+
tunnel = res.tunnel;
|
|
63
|
+
}
|
|
64
|
+
// 3. Issue a connection token.
|
|
65
|
+
const tokenRes = await client.edgeTunnel.issueToken(tunnel.id);
|
|
66
|
+
// 4. Print tunnel info and connect.
|
|
67
|
+
console.log();
|
|
68
|
+
console.log(` \x1b[1m\x1b[32m✓ Tunnel ready\x1b[0m`);
|
|
69
|
+
console.log();
|
|
70
|
+
console.log(` URL ${tunnel.url}`);
|
|
71
|
+
console.log(` Port localhost:${port}`);
|
|
72
|
+
console.log(` ID ${tunnel.id}`);
|
|
73
|
+
console.log();
|
|
74
|
+
const tunnelClient = new TunnelClient({
|
|
75
|
+
connectUrl: tokenRes.connect_url,
|
|
76
|
+
token: tokenRes.token,
|
|
77
|
+
localPort: port,
|
|
78
|
+
});
|
|
79
|
+
let requestCount = 0;
|
|
80
|
+
tunnelClient.on('open', () => {
|
|
81
|
+
console.log(` \x1b[2mConnected — forwarding traffic. Press Ctrl+C to stop.\x1b[0m`);
|
|
82
|
+
console.log();
|
|
83
|
+
});
|
|
84
|
+
tunnelClient.on('request', (_streamId, localPort) => {
|
|
85
|
+
requestCount++;
|
|
86
|
+
const ts = new Date().toLocaleTimeString();
|
|
87
|
+
console.log(` \x1b[2m${ts}\x1b[0m → localhost:${localPort} \x1b[2m(${requestCount})\x1b[0m`);
|
|
88
|
+
});
|
|
89
|
+
tunnelClient.on('stream-error', (_streamId, reason) => {
|
|
90
|
+
console.log(` \x1b[31m✗\x1b[0m ${reason}`);
|
|
91
|
+
});
|
|
92
|
+
tunnelClient.on('disconnect', (code, reason) => {
|
|
93
|
+
console.log();
|
|
94
|
+
printError(`Disconnected (code=${code}${reason ? `, ${reason}` : ''}). Reconnecting...`);
|
|
95
|
+
// Simple reconnect with backoff
|
|
96
|
+
setTimeout(() => {
|
|
97
|
+
if (!tunnelClient.isConnected) {
|
|
98
|
+
tunnelClient.connect();
|
|
99
|
+
}
|
|
100
|
+
}, 2000);
|
|
101
|
+
});
|
|
102
|
+
tunnelClient.connect();
|
|
103
|
+
// Keep alive until SIGINT/SIGTERM
|
|
104
|
+
await new Promise((resolve) => {
|
|
105
|
+
const shutdown = () => {
|
|
106
|
+
console.log();
|
|
107
|
+
console.log(` Disconnecting...`);
|
|
108
|
+
tunnelClient.close();
|
|
109
|
+
resolve();
|
|
110
|
+
};
|
|
111
|
+
process.on('SIGINT', shutdown);
|
|
112
|
+
process.on('SIGTERM', shutdown);
|
|
113
|
+
});
|
|
114
|
+
}
|
|
115
|
+
// ── oblien tunnel list ────────────────────────────────────────────
|
|
116
|
+
async function tunnelList(flags) {
|
|
117
|
+
const client = buildClient(flags);
|
|
118
|
+
const res = await client.edgeTunnel.list();
|
|
119
|
+
if (flags.json) {
|
|
120
|
+
printResult(res, true);
|
|
121
|
+
return;
|
|
122
|
+
}
|
|
123
|
+
const tunnels = res.tunnels ?? [];
|
|
124
|
+
if (tunnels.length === 0) {
|
|
125
|
+
console.log('No tunnels.');
|
|
126
|
+
return;
|
|
127
|
+
}
|
|
128
|
+
printTable(tunnels.map(t => ({
|
|
129
|
+
id: t.id,
|
|
130
|
+
name: t.name,
|
|
131
|
+
port: t.port,
|
|
132
|
+
url: t.url,
|
|
133
|
+
status: t.status,
|
|
134
|
+
})), ['id', 'name', 'port', 'url', 'status']);
|
|
135
|
+
}
|
|
136
|
+
// ── oblien tunnel status <id> ─────────────────────────────────────
|
|
137
|
+
async function tunnelStatus(id, flags) {
|
|
138
|
+
const tunnelId = Number(requireId(id, 'tunnel status <id>'));
|
|
139
|
+
const client = buildClient(flags);
|
|
140
|
+
const res = await client.edgeTunnel.get(tunnelId);
|
|
141
|
+
printResult(flags.json ? res : res.tunnel, flags.json);
|
|
142
|
+
}
|
|
143
|
+
// ── oblien tunnel delete <id> ─────────────────────────────────────
|
|
144
|
+
async function tunnelDelete(id, flags) {
|
|
145
|
+
const tunnelId = Number(requireId(id, 'tunnel delete <id>'));
|
|
146
|
+
const client = buildClient(flags);
|
|
147
|
+
const ok = await confirm(`Delete tunnel ${tunnelId}?`);
|
|
148
|
+
if (!ok)
|
|
149
|
+
return;
|
|
150
|
+
await client.edgeTunnel.delete(tunnelId);
|
|
151
|
+
printSuccess(`Tunnel ${tunnelId} deleted.`);
|
|
152
|
+
}
|
|
153
|
+
// ── Help ──────────────────────────────────────────────────────────
|
|
154
|
+
function tunnelHelp() {
|
|
155
|
+
console.log(`
|
|
156
|
+
oblien tunnel - Expose a local port through the Oblien edge
|
|
157
|
+
|
|
158
|
+
Usage:
|
|
159
|
+
oblien tunnel <port> Expose localhost:port
|
|
160
|
+
oblien tunnel list List existing tunnels
|
|
161
|
+
oblien tunnel status <id> Show tunnel details
|
|
162
|
+
oblien tunnel delete <id> Delete a tunnel
|
|
163
|
+
|
|
164
|
+
Flags:
|
|
165
|
+
--slug <slug> Custom subdomain slug
|
|
166
|
+
--name <name> Display name for the tunnel
|
|
167
|
+
--domain <domain> Custom base domain
|
|
168
|
+
|
|
169
|
+
Examples:
|
|
170
|
+
oblien tunnel 3000
|
|
171
|
+
oblien tunnel 8080 --slug my-api
|
|
172
|
+
oblien tunnel 3000 --name "Dev Server" --domain preview.oblien.com
|
|
173
|
+
oblien tunnel list
|
|
174
|
+
oblien tunnel delete 42
|
|
175
|
+
`);
|
|
176
|
+
}
|
|
177
|
+
//# 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
|
@@ -35,6 +35,7 @@ import { metadataCmd } from './commands/metadata.js';
|
|
|
35
35
|
import { terminalCmd } from './commands/terminal.js';
|
|
36
36
|
import { watcherCmd } from './commands/watcher.js';
|
|
37
37
|
import { tokensCmd } from './commands/tokens.js';
|
|
38
|
+
import { tunnelCmd } from './commands/tunnel.js';
|
|
38
39
|
// ── Version ─────────────────────────────────────────────────────────
|
|
39
40
|
function version() {
|
|
40
41
|
const require = createRequire(import.meta.url);
|
|
@@ -80,6 +81,7 @@ function help() {
|
|
|
80
81
|
terminal Manage runtime terminal sessions
|
|
81
82
|
watcher Manage file system watchers
|
|
82
83
|
tokens Issue scoped tokens (namespace/workspace JWTs)
|
|
84
|
+
tunnel Expose local ports through the Oblien edge
|
|
83
85
|
|
|
84
86
|
Global flags:
|
|
85
87
|
--json Output as JSON
|
|
@@ -122,6 +124,9 @@ function help() {
|
|
|
122
124
|
oblien terminal list ws_abc123
|
|
123
125
|
oblien watcher create ws_abc123 --path /app/src
|
|
124
126
|
oblien tokens create --scope namespace --namespace my-ns
|
|
127
|
+
oblien tunnel 3000
|
|
128
|
+
oblien tunnel 8080 --slug my-api
|
|
129
|
+
oblien tunnel list
|
|
125
130
|
`.trimStart());
|
|
126
131
|
}
|
|
127
132
|
// ── Main ────────────────────────────────────────────────────────────
|
|
@@ -225,6 +230,9 @@ async function main() {
|
|
|
225
230
|
case 'tokens':
|
|
226
231
|
await tokensCmd(args, flags);
|
|
227
232
|
break;
|
|
233
|
+
case 'tunnel':
|
|
234
|
+
await tunnelCmd(args, flags);
|
|
235
|
+
break;
|
|
228
236
|
default:
|
|
229
237
|
console.error(`Unknown command: ${command}\n`);
|
|
230
238
|
help();
|
package/dist/cli/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":";AAEA;;;;;;;;GAQG;AAEH,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AAEjD,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAC7C,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACjD,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACjD,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AACzD,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AACzD,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAC7C,OAAO,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAC/C,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACjD,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AACnD,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AACxD,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AACvD,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACjD,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAC7C,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AACvD,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAC3C,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAC3C,OAAO,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AAC9D,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACjD,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AACvD,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AACnD,OAAO,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAC/C,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AACrD,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AACrD,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AACnD,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAEjD,uEAAuE;AAEvE,SAAS,OAAO;IACd,MAAM,OAAO,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC/C,MAAM,GAAG,GAAG,OAAO,CAAC,oBAAoB,CAAC,CAAC;IAC1C,OAAO,CAAC,GAAG,CAAC,UAAU,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC;AACvC,CAAC;AAED,uEAAuE;AAEvE,SAAS,IAAI;IACX,OAAO,CAAC,GAAG,CAAC
|
|
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. */
|
package/dist/client.d.ts.map
CHANGED
|
@@ -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;
|
|
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
|
}
|
package/dist/client.js.map
CHANGED
|
@@ -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, 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): 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'>>): 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,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,GAAG,OAAO,CAAC,uBAAuB,CAAC;IAIpE;;;;;;;;;;;;;;;;;;;;OAoBG;IACG,OAAO,CACX,MAAM,EAAE,sBAAsB,EAC9B,WAAW,CAAC,EAAE,OAAO,CAAC,IAAI,CAAC,mBAAmB,EAAE,WAAW,CAAC,CAAC,GAC5D,OAAO,CAAC,YAAY,GAAG;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,CAAC;CA+B7D"}
|