@ripeseed/rs-tunnel 0.1.3 → 0.3.0
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 +3 -2
- package/dist/commands/login.d.ts +18 -1
- package/dist/commands/login.js +54 -30
- package/dist/commands/login.js.map +1 -1
- package/dist/commands/login.test.d.ts +1 -0
- package/dist/commands/login.test.js +113 -0
- package/dist/commands/login.test.js.map +1 -0
- package/dist/commands/up.js +39 -5
- package/dist/commands/up.js.map +1 -1
- package/dist/commands/up.test.js +92 -0
- package/dist/commands/up.test.js.map +1 -1
- package/dist/index.js +4 -1
- package/dist/index.js.map +1 -1
- package/dist/lib/api-client.d.ts +11 -4
- package/dist/lib/api-client.js +26 -15
- package/dist/lib/api-client.js.map +1 -1
- package/dist/lib/api-client.test.d.ts +1 -0
- package/dist/lib/api-client.test.js +53 -0
- package/dist/lib/api-client.test.js.map +1 -0
- package/package.json +2 -2
- package/dist/lib/local-callback.d.ts +0 -9
- package/dist/lib/local-callback.js +0 -68
- package/dist/lib/local-callback.js.map +0 -1
package/README.md
CHANGED
|
@@ -16,6 +16,7 @@ export RS_TUNNEL_API_URL=https://api.your-domain.com
|
|
|
16
16
|
|
|
17
17
|
# authenticate
|
|
18
18
|
rs-tunnel login --email you@your-company.com
|
|
19
|
+
rs-tunnel login --email you@your-company.com --skip-browser-open
|
|
19
20
|
|
|
20
21
|
# expose local app on port 3000
|
|
21
22
|
rs-tunnel up --port 3000
|
|
@@ -26,7 +27,7 @@ If no API URL is configured, the CLI prompts once and stores it in `~/.rs-tunnel
|
|
|
26
27
|
## Commands
|
|
27
28
|
|
|
28
29
|
```bash
|
|
29
|
-
rs-tunnel login --email <email> [--domain <api-url>]
|
|
30
|
+
rs-tunnel login --email <email> [--skip-browser-open] [--domain <api-url>]
|
|
30
31
|
rs-tunnel up --port <port> [--url <slug>] [--verbose] [--domain <api-url>]
|
|
31
32
|
rs-tunnel list [--domain <api-url>]
|
|
32
33
|
rs-tunnel stop <tunnel-id-or-hostname> [--domain <api-url>]
|
|
@@ -39,6 +40,7 @@ rs-tunnel doctor [--domain <api-url>]
|
|
|
39
40
|
- `RS_TUNNEL_API_URL`: preferred API base URL override.
|
|
40
41
|
- `RS_TUNNEL_API_BASE_URL`: legacy alias (still supported).
|
|
41
42
|
- `--domain`: command-level API override; also persists for future commands.
|
|
43
|
+
- `--skip-browser-open`: skips automatically launching a browser, prints the Slack authorize URL, and keeps waiting for the API-side auth flow to complete.
|
|
42
44
|
|
|
43
45
|
## Notes
|
|
44
46
|
|
|
@@ -54,4 +56,3 @@ rs-tunnel doctor [--domain <api-url>]
|
|
|
54
56
|
|
|
55
57
|
- Monorepo: https://github.com/RipeSeed/rs-tunnel
|
|
56
58
|
- Full project docs: https://github.com/RipeSeed/rs-tunnel/blob/main/README.md
|
|
57
|
-
|
package/dist/commands/login.d.ts
CHANGED
|
@@ -1 +1,18 @@
|
|
|
1
|
-
|
|
1
|
+
import { getCliConfig } from '../config.js';
|
|
2
|
+
import { ApiClient } from '../lib/api-client.js';
|
|
3
|
+
import { createPkcePair } from '../lib/pkce.js';
|
|
4
|
+
import { saveSession } from '../store/credentials.js';
|
|
5
|
+
export type LoginCommandOptions = {
|
|
6
|
+
skipBrowserOpen?: boolean;
|
|
7
|
+
};
|
|
8
|
+
type LoginApiClient = Pick<ApiClient, 'startSlackAuth' | 'getSlackAuthStatus' | 'exchangeLoginCode'>;
|
|
9
|
+
type LoginCommandDependencies = {
|
|
10
|
+
getCliConfig: typeof getCliConfig;
|
|
11
|
+
createApiClient: (baseUrl: string) => LoginApiClient;
|
|
12
|
+
createPkcePair: typeof createPkcePair;
|
|
13
|
+
openUrl: (url: string) => Promise<void>;
|
|
14
|
+
saveSession: typeof saveSession;
|
|
15
|
+
sleep: (ms: number) => Promise<void>;
|
|
16
|
+
};
|
|
17
|
+
export declare function loginCommand(email: string, options?: LoginCommandOptions, dependencies?: LoginCommandDependencies): Promise<void>;
|
|
18
|
+
export {};
|
package/dist/commands/login.js
CHANGED
|
@@ -1,45 +1,69 @@
|
|
|
1
1
|
import open from 'open';
|
|
2
2
|
import { getCliConfig } from '../config.js';
|
|
3
3
|
import { ApiClient } from '../lib/api-client.js';
|
|
4
|
-
import { startCallbackServer } from '../lib/local-callback.js';
|
|
5
4
|
import { createPkcePair } from '../lib/pkce.js';
|
|
6
5
|
import { saveSession } from '../store/credentials.js';
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
6
|
+
const AUTH_POLL_INTERVAL_MS = 2_000;
|
|
7
|
+
const AUTH_POLL_TIMEOUT_MS = 120_000;
|
|
8
|
+
const defaultDependencies = {
|
|
9
|
+
getCliConfig,
|
|
10
|
+
createApiClient: (baseUrl) => new ApiClient(baseUrl),
|
|
11
|
+
createPkcePair,
|
|
12
|
+
openUrl: async (url) => {
|
|
13
|
+
await open(url);
|
|
14
|
+
},
|
|
15
|
+
saveSession,
|
|
16
|
+
sleep: async (ms) => {
|
|
17
|
+
await new Promise((resolve) => {
|
|
18
|
+
setTimeout(resolve, ms);
|
|
17
19
|
});
|
|
20
|
+
},
|
|
21
|
+
};
|
|
22
|
+
export async function loginCommand(email, options = {}, dependencies = defaultDependencies) {
|
|
23
|
+
const config = dependencies.getCliConfig();
|
|
24
|
+
const apiClient = dependencies.createApiClient(config.apiBaseUrl);
|
|
25
|
+
const pkce = dependencies.createPkcePair();
|
|
26
|
+
const auth = await apiClient.startSlackAuth({
|
|
27
|
+
email,
|
|
28
|
+
codeChallenge: pkce.challenge,
|
|
29
|
+
});
|
|
30
|
+
if (options.skipBrowserOpen) {
|
|
31
|
+
console.log(`Slack Auth URL: ${auth.authorizeUrl}`);
|
|
32
|
+
}
|
|
33
|
+
else {
|
|
18
34
|
try {
|
|
19
|
-
await
|
|
35
|
+
await dependencies.openUrl(auth.authorizeUrl);
|
|
20
36
|
}
|
|
21
37
|
catch {
|
|
22
38
|
console.log(`Open this URL in your browser:\n${auth.authorizeUrl}`);
|
|
23
39
|
}
|
|
24
|
-
console.log('Waiting for Slack OAuth callback...');
|
|
25
|
-
const callback = await callbackServer.waitForCode();
|
|
26
|
-
if (callback.state !== auth.state) {
|
|
27
|
-
throw new Error('OAuth state mismatch. Aborting login.');
|
|
28
|
-
}
|
|
29
|
-
const tokenPair = await apiClient.exchangeLoginCode({
|
|
30
|
-
loginCode: callback.code,
|
|
31
|
-
codeVerifier: pkce.verifier,
|
|
32
|
-
});
|
|
33
|
-
await saveSession({
|
|
34
|
-
accessToken: tokenPair.accessToken,
|
|
35
|
-
refreshToken: tokenPair.refreshToken,
|
|
36
|
-
expiresAtEpochSec: Math.floor(Date.now() / 1000) + tokenPair.expiresInSec,
|
|
37
|
-
profile: tokenPair.profile,
|
|
38
|
-
});
|
|
39
|
-
console.log(`Logged in as ${tokenPair.profile.email}`);
|
|
40
40
|
}
|
|
41
|
-
|
|
42
|
-
|
|
41
|
+
console.log('Waiting for Slack OAuth confirmation...');
|
|
42
|
+
const loginCode = await waitForLoginCode(auth.state, apiClient, dependencies.sleep);
|
|
43
|
+
const tokenPair = await apiClient.exchangeLoginCode({
|
|
44
|
+
loginCode,
|
|
45
|
+
codeVerifier: pkce.verifier,
|
|
46
|
+
});
|
|
47
|
+
await dependencies.saveSession({
|
|
48
|
+
accessToken: tokenPair.accessToken,
|
|
49
|
+
refreshToken: tokenPair.refreshToken,
|
|
50
|
+
expiresAtEpochSec: Math.floor(Date.now() / 1000) + tokenPair.expiresInSec,
|
|
51
|
+
profile: tokenPair.profile,
|
|
52
|
+
});
|
|
53
|
+
console.log(`Logged in as ${tokenPair.profile.email}`);
|
|
54
|
+
}
|
|
55
|
+
async function waitForLoginCode(state, apiClient, sleep) {
|
|
56
|
+
const startedAt = Date.now();
|
|
57
|
+
while (Date.now() - startedAt < AUTH_POLL_TIMEOUT_MS) {
|
|
58
|
+
const authStatus = await apiClient.getSlackAuthStatus({ state });
|
|
59
|
+
if (authStatus.status === 'authorized' && authStatus.loginCode) {
|
|
60
|
+
return authStatus.loginCode;
|
|
61
|
+
}
|
|
62
|
+
if (authStatus.status === 'expired') {
|
|
63
|
+
throw new Error('Slack OAuth session expired. Please run rs-tunnel login again.');
|
|
64
|
+
}
|
|
65
|
+
await sleep(AUTH_POLL_INTERVAL_MS);
|
|
43
66
|
}
|
|
67
|
+
throw new Error('Timed out waiting for Slack OAuth confirmation.');
|
|
44
68
|
}
|
|
45
69
|
//# sourceMappingURL=login.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"login.js","sourceRoot":"","sources":["../../src/commands/login.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,MAAM,CAAC;AAExB,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAC5C,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACjD,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"login.js","sourceRoot":"","sources":["../../src/commands/login.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,113 @@
|
|
|
1
|
+
import { describe, expect, it, vi } from 'vitest';
|
|
2
|
+
import { loginCommand } from './login.js';
|
|
3
|
+
describe('loginCommand', () => {
|
|
4
|
+
it('prints the auth URL when browser auto-open is skipped', async () => {
|
|
5
|
+
const startSlackAuth = vi.fn(async () => ({
|
|
6
|
+
authorizeUrl: 'https://slack.example.com/auth',
|
|
7
|
+
state: 'expected-state',
|
|
8
|
+
}));
|
|
9
|
+
const getSlackAuthStatus = vi.fn(async () => ({
|
|
10
|
+
status: 'authorized',
|
|
11
|
+
loginCode: 'login-code',
|
|
12
|
+
}));
|
|
13
|
+
const exchangeLoginCode = vi.fn(async () => ({
|
|
14
|
+
accessToken: 'access-token',
|
|
15
|
+
refreshToken: 'refresh-token',
|
|
16
|
+
expiresInSec: 900,
|
|
17
|
+
profile: {
|
|
18
|
+
email: 'test@example.com',
|
|
19
|
+
slackUserId: 'U1',
|
|
20
|
+
slackTeamId: 'T1',
|
|
21
|
+
},
|
|
22
|
+
}));
|
|
23
|
+
const saveSession = vi.fn(async () => { });
|
|
24
|
+
const openUrl = vi.fn(async () => { });
|
|
25
|
+
const logSpy = vi.spyOn(console, 'log').mockImplementation(() => { });
|
|
26
|
+
const dependencies = {
|
|
27
|
+
getCliConfig: () => ({ apiBaseUrl: 'https://api.example.com' }),
|
|
28
|
+
createApiClient: () => ({
|
|
29
|
+
startSlackAuth,
|
|
30
|
+
getSlackAuthStatus,
|
|
31
|
+
exchangeLoginCode,
|
|
32
|
+
}),
|
|
33
|
+
createPkcePair: () => ({
|
|
34
|
+
verifier: 'verifier-value',
|
|
35
|
+
challenge: 'challenge-value',
|
|
36
|
+
}),
|
|
37
|
+
openUrl,
|
|
38
|
+
saveSession,
|
|
39
|
+
sleep: vi.fn(async () => { }),
|
|
40
|
+
};
|
|
41
|
+
try {
|
|
42
|
+
await loginCommand('test@example.com', { skipBrowserOpen: true }, dependencies);
|
|
43
|
+
expect(startSlackAuth).toHaveBeenCalledWith({
|
|
44
|
+
email: 'test@example.com',
|
|
45
|
+
codeChallenge: 'challenge-value',
|
|
46
|
+
});
|
|
47
|
+
expect(openUrl).not.toHaveBeenCalled();
|
|
48
|
+
expect(getSlackAuthStatus).toHaveBeenCalledWith({
|
|
49
|
+
state: 'expected-state',
|
|
50
|
+
});
|
|
51
|
+
expect(exchangeLoginCode).toHaveBeenCalledWith({
|
|
52
|
+
loginCode: 'login-code',
|
|
53
|
+
codeVerifier: 'verifier-value',
|
|
54
|
+
});
|
|
55
|
+
expect(saveSession).toHaveBeenCalledWith(expect.objectContaining({
|
|
56
|
+
accessToken: 'access-token',
|
|
57
|
+
refreshToken: 'refresh-token',
|
|
58
|
+
profile: expect.objectContaining({
|
|
59
|
+
email: 'test@example.com',
|
|
60
|
+
}),
|
|
61
|
+
}));
|
|
62
|
+
expect(logSpy).toHaveBeenCalledWith('Slack Auth URL: https://slack.example.com/auth');
|
|
63
|
+
expect(logSpy).toHaveBeenCalledWith('Waiting for Slack OAuth confirmation...');
|
|
64
|
+
expect(logSpy).toHaveBeenCalledWith('Logged in as test@example.com');
|
|
65
|
+
}
|
|
66
|
+
finally {
|
|
67
|
+
logSpy.mockRestore();
|
|
68
|
+
}
|
|
69
|
+
});
|
|
70
|
+
it('opens the browser by default', async () => {
|
|
71
|
+
const openUrl = vi.fn(async () => { });
|
|
72
|
+
const logSpy = vi.spyOn(console, 'log').mockImplementation(() => { });
|
|
73
|
+
const dependencies = {
|
|
74
|
+
getCliConfig: () => ({ apiBaseUrl: 'https://api.example.com' }),
|
|
75
|
+
createApiClient: () => ({
|
|
76
|
+
startSlackAuth: vi.fn(async () => ({
|
|
77
|
+
authorizeUrl: 'https://slack.example.com/auth',
|
|
78
|
+
state: 'expected-state',
|
|
79
|
+
})),
|
|
80
|
+
getSlackAuthStatus: vi.fn(async () => ({
|
|
81
|
+
status: 'authorized',
|
|
82
|
+
loginCode: 'login-code',
|
|
83
|
+
})),
|
|
84
|
+
exchangeLoginCode: vi.fn(async () => ({
|
|
85
|
+
accessToken: 'access-token',
|
|
86
|
+
refreshToken: 'refresh-token',
|
|
87
|
+
expiresInSec: 900,
|
|
88
|
+
profile: {
|
|
89
|
+
email: 'test@example.com',
|
|
90
|
+
slackUserId: 'U1',
|
|
91
|
+
slackTeamId: 'T1',
|
|
92
|
+
},
|
|
93
|
+
})),
|
|
94
|
+
}),
|
|
95
|
+
createPkcePair: () => ({
|
|
96
|
+
verifier: 'verifier-value',
|
|
97
|
+
challenge: 'challenge-value',
|
|
98
|
+
}),
|
|
99
|
+
openUrl,
|
|
100
|
+
saveSession: vi.fn(async () => { }),
|
|
101
|
+
sleep: vi.fn(async () => { }),
|
|
102
|
+
};
|
|
103
|
+
try {
|
|
104
|
+
await loginCommand('test@example.com', {}, dependencies);
|
|
105
|
+
expect(openUrl).toHaveBeenCalledWith('https://slack.example.com/auth');
|
|
106
|
+
expect(logSpy).not.toHaveBeenCalledWith('Slack Auth URL: https://slack.example.com/auth');
|
|
107
|
+
}
|
|
108
|
+
finally {
|
|
109
|
+
logSpy.mockRestore();
|
|
110
|
+
}
|
|
111
|
+
});
|
|
112
|
+
});
|
|
113
|
+
//# sourceMappingURL=login.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"login.test.js","sourceRoot":"","sources":["../../src/commands/login.test.ts"],"names":[],"mappings":"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"}
|
package/dist/commands/up.js
CHANGED
|
@@ -111,7 +111,10 @@ export async function upCommand(input, dependencies = defaultDependencies) {
|
|
|
111
111
|
let metricsTimer = null;
|
|
112
112
|
let telemetryTimer = null;
|
|
113
113
|
let stopRemoteTunnelPromise = null;
|
|
114
|
+
let heartbeatInFlight = null;
|
|
115
|
+
let telemetryInFlight = null;
|
|
114
116
|
let remoteTunnelStopped = false;
|
|
117
|
+
let shutdownSignal = null;
|
|
115
118
|
const cloudflaredLogBuffer = [];
|
|
116
119
|
let currentRegion = null;
|
|
117
120
|
const telemetryQueue = [];
|
|
@@ -161,9 +164,15 @@ export async function upCommand(input, dependencies = defaultDependencies) {
|
|
|
161
164
|
}
|
|
162
165
|
};
|
|
163
166
|
const handleSignal = (signal) => {
|
|
167
|
+
shutdownSignal = signal;
|
|
168
|
+
if (child) {
|
|
169
|
+
child.kill(signal);
|
|
170
|
+
return;
|
|
171
|
+
}
|
|
164
172
|
void (async () => {
|
|
165
173
|
await stopRemoteTunnel();
|
|
166
|
-
|
|
174
|
+
await stopProxy(proxy);
|
|
175
|
+
dependencies.processRef.exit(signal === 'SIGINT' ? 130 : 143);
|
|
167
176
|
})();
|
|
168
177
|
};
|
|
169
178
|
const onSigInt = () => handleSignal('SIGINT');
|
|
@@ -217,11 +226,23 @@ export async function upCommand(input, dependencies = defaultDependencies) {
|
|
|
217
226
|
closeStdoutReader = attachLineReader(child.stdout, handleCloudflaredLine);
|
|
218
227
|
closeStderrReader = attachLineReader(child.stderr, handleCloudflaredLine);
|
|
219
228
|
heartbeatTimer = dependencies.setInterval(() => {
|
|
220
|
-
|
|
229
|
+
if (heartbeatInFlight) {
|
|
230
|
+
return;
|
|
231
|
+
}
|
|
232
|
+
heartbeatInFlight = apiClient
|
|
233
|
+
.heartbeat(tunnel.tunnelRunToken, tunnelId)
|
|
234
|
+
.then(() => undefined)
|
|
235
|
+
.catch((error) => {
|
|
221
236
|
console.error(formatApiClientError('Heartbeat failed', error));
|
|
237
|
+
})
|
|
238
|
+
.finally(() => {
|
|
239
|
+
heartbeatInFlight = null;
|
|
222
240
|
});
|
|
223
241
|
}, tunnel.heartbeatIntervalSec * 1000);
|
|
224
242
|
telemetryTimer = dependencies.setInterval(() => {
|
|
243
|
+
if (telemetryInFlight) {
|
|
244
|
+
return;
|
|
245
|
+
}
|
|
225
246
|
const snapshot = stats.getSnapshot();
|
|
226
247
|
const drained = telemetryQueue.splice(0, 200);
|
|
227
248
|
let errors = 0;
|
|
@@ -247,7 +268,9 @@ export async function upCommand(input, dependencies = defaultDependencies) {
|
|
|
247
268
|
},
|
|
248
269
|
requests: drained,
|
|
249
270
|
};
|
|
250
|
-
|
|
271
|
+
telemetryInFlight = apiClient
|
|
272
|
+
.ingestTelemetry(tunnel.tunnelRunToken, tunnelId, payload)
|
|
273
|
+
.catch((error) => {
|
|
251
274
|
if (error instanceof ApiClientError && (error.status === 404 || error.status === 405)) {
|
|
252
275
|
telemetryDisabled = true;
|
|
253
276
|
if (telemetryTimer) {
|
|
@@ -262,14 +285,25 @@ export async function upCommand(input, dependencies = defaultDependencies) {
|
|
|
262
285
|
lastTelemetryErrorAt = now;
|
|
263
286
|
console.error('Telemetry upload failed:', error instanceof Error ? error.message : String(error));
|
|
264
287
|
}
|
|
288
|
+
})
|
|
289
|
+
.finally(() => {
|
|
290
|
+
telemetryInFlight = null;
|
|
265
291
|
});
|
|
266
292
|
}, 2_000);
|
|
267
293
|
dependencies.processRef.once('SIGINT', onSigInt);
|
|
268
294
|
dependencies.processRef.once('SIGTERM', onSigTerm);
|
|
269
|
-
const
|
|
295
|
+
const exitResult = await new Promise((resolve, reject) => {
|
|
270
296
|
child.once('error', reject);
|
|
271
|
-
child.once('exit', (code) => resolve(code
|
|
297
|
+
child.once('exit', (code, signal) => resolve({ code, signal }));
|
|
272
298
|
});
|
|
299
|
+
const exitCode = exitResult.code ??
|
|
300
|
+
(shutdownSignal === 'SIGINT'
|
|
301
|
+
? 130
|
|
302
|
+
: shutdownSignal === 'SIGTERM'
|
|
303
|
+
? 143
|
|
304
|
+
: exitResult.signal
|
|
305
|
+
? 1
|
|
306
|
+
: 0);
|
|
273
307
|
if (exitCode !== 0 && !input.verbose && cloudflaredLogBuffer.length > 0) {
|
|
274
308
|
dependencies.processRef.stderr.write('cloudflared exited unexpectedly. Last logs:\n');
|
|
275
309
|
for (const line of cloudflaredLogBuffer.slice(-10)) {
|
package/dist/commands/up.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"up.js","sourceRoot":"","sources":["../../src/commands/up.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"up.js","sourceRoot":"","sources":["../../src/commands/up.ts"],"names":[],"mappings":"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"}
|
package/dist/commands/up.test.js
CHANGED
|
@@ -51,7 +51,9 @@ describe('upCommand', () => {
|
|
|
51
51
|
tunnelId: 'tunnel-id',
|
|
52
52
|
hostname: 'demo.tunnel.example.com',
|
|
53
53
|
cloudflaredToken: 'cf-token',
|
|
54
|
+
tunnelRunToken: 'run-token',
|
|
54
55
|
heartbeatIntervalSec: 20,
|
|
56
|
+
leaseTimeoutSec: 60,
|
|
55
57
|
})),
|
|
56
58
|
stopTunnel: vi.fn(async () => { }),
|
|
57
59
|
heartbeat: vi.fn(async () => ({ expiresAt: '2026-01-01T00:00:00.000Z' })),
|
|
@@ -139,7 +141,9 @@ describe('upCommand', () => {
|
|
|
139
141
|
tunnelId: 'tunnel-id',
|
|
140
142
|
hostname: 'demo.tunnel.example.com',
|
|
141
143
|
cloudflaredToken: 'cf-token',
|
|
144
|
+
tunnelRunToken: 'run-token',
|
|
142
145
|
heartbeatIntervalSec: 20,
|
|
146
|
+
leaseTimeoutSec: 60,
|
|
143
147
|
})),
|
|
144
148
|
stopTunnel: vi.fn(async () => { }),
|
|
145
149
|
heartbeat: vi.fn(async () => ({ expiresAt: '2026-01-01T00:00:00.000Z' })),
|
|
@@ -207,7 +211,9 @@ describe('upCommand', () => {
|
|
|
207
211
|
tunnelId: 'tunnel-id',
|
|
208
212
|
hostname: 'demo.tunnel.example.com',
|
|
209
213
|
cloudflaredToken: 'cf-token',
|
|
214
|
+
tunnelRunToken: 'run-token',
|
|
210
215
|
heartbeatIntervalSec: 20,
|
|
216
|
+
leaseTimeoutSec: 60,
|
|
211
217
|
})),
|
|
212
218
|
stopTunnel: vi.fn(async () => { }),
|
|
213
219
|
heartbeat: vi.fn(async () => {
|
|
@@ -254,6 +260,7 @@ describe('upCommand', () => {
|
|
|
254
260
|
}
|
|
255
261
|
heartbeatInterval.fn();
|
|
256
262
|
await new Promise((resolve) => setImmediate(resolve));
|
|
263
|
+
expect(apiClient.heartbeat).toHaveBeenCalledWith('run-token', 'tunnel-id');
|
|
257
264
|
expect(errorSpy).toHaveBeenCalledWith(expect.stringContaining('Heartbeat failed (status=500, code=INTERNAL_ERROR): Unexpected server error'));
|
|
258
265
|
errorSpy.mockRestore();
|
|
259
266
|
child.emit('exit', 0);
|
|
@@ -276,7 +283,9 @@ describe('upCommand', () => {
|
|
|
276
283
|
tunnelId: 'tunnel-id',
|
|
277
284
|
hostname: 'demo.tunnel.example.com',
|
|
278
285
|
cloudflaredToken: 'cf-token',
|
|
286
|
+
tunnelRunToken: 'run-token',
|
|
279
287
|
heartbeatIntervalSec: 20,
|
|
288
|
+
leaseTimeoutSec: 60,
|
|
280
289
|
})),
|
|
281
290
|
stopTunnel: vi.fn(async () => { }),
|
|
282
291
|
heartbeat: vi.fn(async () => ({ expiresAt: '2026-01-01T00:00:00.000Z' })),
|
|
@@ -351,7 +360,9 @@ describe('upCommand', () => {
|
|
|
351
360
|
tunnelId: 'tunnel-id',
|
|
352
361
|
hostname: 'demo.tunnel.example.com',
|
|
353
362
|
cloudflaredToken: 'cf-token',
|
|
363
|
+
tunnelRunToken: 'run-token',
|
|
354
364
|
heartbeatIntervalSec: 20,
|
|
365
|
+
leaseTimeoutSec: 60,
|
|
355
366
|
})),
|
|
356
367
|
stopTunnel: vi.fn(async () => { }),
|
|
357
368
|
heartbeat: vi.fn(async () => ({ expiresAt: '2026-01-01T00:00:00.000Z' })),
|
|
@@ -413,7 +424,9 @@ describe('upCommand', () => {
|
|
|
413
424
|
tunnelId: 'tunnel-id',
|
|
414
425
|
hostname: 'demo.tunnel.example.com',
|
|
415
426
|
cloudflaredToken: 'cf-token',
|
|
427
|
+
tunnelRunToken: 'run-token',
|
|
416
428
|
heartbeatIntervalSec: 20,
|
|
429
|
+
leaseTimeoutSec: 60,
|
|
417
430
|
})),
|
|
418
431
|
stopTunnel: vi.fn(async () => { }),
|
|
419
432
|
heartbeat: vi.fn(async () => ({ expiresAt: '2026-01-01T00:00:00.000Z' })),
|
|
@@ -459,9 +472,88 @@ describe('upCommand', () => {
|
|
|
459
472
|
await runPromise;
|
|
460
473
|
expect(child.kill).toHaveBeenCalledWith('SIGINT');
|
|
461
474
|
expect(apiClient.stopTunnel).toHaveBeenCalledTimes(1);
|
|
475
|
+
expect(child.kill.mock.invocationCallOrder[0] ?? 0).toBeLessThan(apiClient.stopTunnel.mock.invocationCallOrder[0] ?? Number.MAX_SAFE_INTEGER);
|
|
462
476
|
expect(proxyStop).toHaveBeenCalledTimes(1);
|
|
463
477
|
expect(dashboard.stop).toHaveBeenCalledTimes(1);
|
|
464
478
|
expect(processRef.exit.mock.calls[0]?.[0]).toBe(130);
|
|
465
479
|
});
|
|
480
|
+
it('does not overlap heartbeats while one is still in flight', async () => {
|
|
481
|
+
const child = createFakeChildProcess();
|
|
482
|
+
const dashboard = {
|
|
483
|
+
setRegion: vi.fn(),
|
|
484
|
+
setMetrics: vi.fn(),
|
|
485
|
+
addRequest: vi.fn(),
|
|
486
|
+
addCloudflaredLine: vi.fn(),
|
|
487
|
+
addMessage: vi.fn(),
|
|
488
|
+
stop: vi.fn(),
|
|
489
|
+
};
|
|
490
|
+
let resolveHeartbeat;
|
|
491
|
+
const heartbeatPromise = new Promise((resolve) => {
|
|
492
|
+
resolveHeartbeat = () => resolve({ expiresAt: '2026-01-01T00:00:00.000Z' });
|
|
493
|
+
});
|
|
494
|
+
const apiClient = {
|
|
495
|
+
refreshTokens: vi.fn(),
|
|
496
|
+
createTunnel: vi.fn(async () => ({
|
|
497
|
+
tunnelId: 'tunnel-id',
|
|
498
|
+
hostname: 'demo.tunnel.example.com',
|
|
499
|
+
cloudflaredToken: 'cf-token',
|
|
500
|
+
tunnelRunToken: 'run-token',
|
|
501
|
+
heartbeatIntervalSec: 20,
|
|
502
|
+
leaseTimeoutSec: 60,
|
|
503
|
+
})),
|
|
504
|
+
stopTunnel: vi.fn(async () => { }),
|
|
505
|
+
heartbeat: vi.fn(() => heartbeatPromise),
|
|
506
|
+
ingestTelemetry: vi.fn(async () => { }),
|
|
507
|
+
};
|
|
508
|
+
const { processRef } = createProcessRef();
|
|
509
|
+
const intervalCallbacks = [];
|
|
510
|
+
const setIntervalFn = vi.fn((fn, ms) => {
|
|
511
|
+
intervalCallbacks.push({ fn, ms });
|
|
512
|
+
return intervalCallbacks.length;
|
|
513
|
+
});
|
|
514
|
+
const runPromise = upCommand({ port: 3000, verbose: false }, {
|
|
515
|
+
createApiClient: () => apiClient,
|
|
516
|
+
requireSession: vi.fn(async () => ({
|
|
517
|
+
accessToken: 'access',
|
|
518
|
+
refreshToken: 'refresh',
|
|
519
|
+
expiresAtEpochSec: 1,
|
|
520
|
+
profile: {
|
|
521
|
+
email: 'osama@example.com',
|
|
522
|
+
slackUserId: 'U1',
|
|
523
|
+
slackTeamId: 'TRIPESEED',
|
|
524
|
+
},
|
|
525
|
+
})),
|
|
526
|
+
saveSession: vi.fn(async () => { }),
|
|
527
|
+
ensureCloudflaredInstalled: vi.fn(async () => '/usr/local/bin/cloudflared'),
|
|
528
|
+
startLocalProxy: vi.fn(async () => ({
|
|
529
|
+
port: 4545,
|
|
530
|
+
stop: vi.fn(async () => { }),
|
|
531
|
+
})),
|
|
532
|
+
createUpDashboard: vi.fn(() => dashboard),
|
|
533
|
+
getCliVersion: vi.fn(() => '0.1.0'),
|
|
534
|
+
spawn: vi.fn(() => child),
|
|
535
|
+
processRef: processRef,
|
|
536
|
+
setInterval: setIntervalFn,
|
|
537
|
+
clearInterval: vi.fn(),
|
|
538
|
+
});
|
|
539
|
+
await new Promise((resolve) => setImmediate(resolve));
|
|
540
|
+
const heartbeatInterval = intervalCallbacks.find((interval) => interval.ms === 20_000);
|
|
541
|
+
if (!heartbeatInterval) {
|
|
542
|
+
throw new Error('Expected heartbeat interval to be registered.');
|
|
543
|
+
}
|
|
544
|
+
heartbeatInterval.fn();
|
|
545
|
+
heartbeatInterval.fn();
|
|
546
|
+
await new Promise((resolve) => setImmediate(resolve));
|
|
547
|
+
expect(apiClient.heartbeat).toHaveBeenCalledTimes(1);
|
|
548
|
+
if (resolveHeartbeat) {
|
|
549
|
+
resolveHeartbeat();
|
|
550
|
+
}
|
|
551
|
+
await new Promise((resolve) => setImmediate(resolve));
|
|
552
|
+
heartbeatInterval.fn();
|
|
553
|
+
await new Promise((resolve) => setImmediate(resolve));
|
|
554
|
+
expect(apiClient.heartbeat).toHaveBeenCalledTimes(2);
|
|
555
|
+
child.emit('exit', 0);
|
|
556
|
+
await runPromise;
|
|
557
|
+
});
|
|
466
558
|
});
|
|
467
559
|
//# sourceMappingURL=up.test.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"up.test.js","sourceRoot":"","sources":["../../src/commands/up.test.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"up.test.js","sourceRoot":"","sources":["../../src/commands/up.test.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -20,10 +20,13 @@ program
|
|
|
20
20
|
program
|
|
21
21
|
.command('login')
|
|
22
22
|
.requiredOption('--email <email>', 'Email for Slack OAuth')
|
|
23
|
+
.option('--skip-browser-open', 'Skip automatically opening the browser and print the Slack auth URL')
|
|
23
24
|
.option('--domain <domain-url>', domainOptionDescription)
|
|
24
25
|
.action(async (options) => {
|
|
25
26
|
await applyDomainOption(options.domain);
|
|
26
|
-
await loginCommand(options.email
|
|
27
|
+
await loginCommand(options.email, {
|
|
28
|
+
skipBrowserOpen: options.skipBrowserOpen,
|
|
29
|
+
});
|
|
27
30
|
});
|
|
28
31
|
program
|
|
29
32
|
.command('up')
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC7C,OAAO,EAAE,0BAA0B,EAAE,MAAM,aAAa,CAAC;AACzD,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAEjD,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAC;AAC9B,MAAM,uBAAuB,GAC3B,iHAAiH,CAAC;AAEpH,KAAK,UAAU,iBAAiB,CAAC,MAAe;IAC9C,MAAM,0BAA0B,CAAC,MAAM,CAAC,CAAC;AAC3C,CAAC;AAED,OAAO;KACJ,IAAI,CAAC,WAAW,CAAC;KACjB,WAAW,CAAC,qCAAqC,CAAC;KAClD,OAAO,CAAC,aAAa,EAAE,CAAC,CAAC;AAE5B,OAAO;KACJ,OAAO,CAAC,OAAO,CAAC;KAChB,cAAc,CAAC,iBAAiB,EAAE,uBAAuB,CAAC;KAC1D,MAAM,CAAC,uBAAuB,EAAE,uBAAuB,CAAC;KACxD,MAAM,CAAC,KAAK,EAAE,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/lib/api-client.d.ts
CHANGED
|
@@ -12,11 +12,16 @@ export declare class ApiClient {
|
|
|
12
12
|
startSlackAuth(input: {
|
|
13
13
|
email: string;
|
|
14
14
|
codeChallenge: string;
|
|
15
|
-
cliCallbackUrl: string;
|
|
16
15
|
}): Promise<{
|
|
17
16
|
authorizeUrl: string;
|
|
18
17
|
state: string;
|
|
19
18
|
}>;
|
|
19
|
+
getSlackAuthStatus(input: {
|
|
20
|
+
state: string;
|
|
21
|
+
}): Promise<{
|
|
22
|
+
status: 'pending' | 'authorized' | 'expired';
|
|
23
|
+
loginCode?: string;
|
|
24
|
+
}>;
|
|
20
25
|
exchangeLoginCode(input: {
|
|
21
26
|
loginCode: string;
|
|
22
27
|
codeVerifier: string;
|
|
@@ -48,7 +53,9 @@ export declare class ApiClient {
|
|
|
48
53
|
tunnelId: string;
|
|
49
54
|
hostname: string;
|
|
50
55
|
cloudflaredToken: string;
|
|
51
|
-
|
|
56
|
+
tunnelRunToken: string;
|
|
57
|
+
heartbeatIntervalSec: number;
|
|
58
|
+
leaseTimeoutSec: number;
|
|
52
59
|
}>;
|
|
53
60
|
listTunnels(accessToken: string): Promise<{
|
|
54
61
|
status: "creating" | "active" | "stopping" | "stopped" | "failed";
|
|
@@ -64,10 +71,10 @@ export declare class ApiClient {
|
|
|
64
71
|
stoppedAt: string | null;
|
|
65
72
|
lastError: string | null;
|
|
66
73
|
}[]>;
|
|
67
|
-
heartbeat(
|
|
74
|
+
heartbeat(tunnelRunToken: string, tunnelId: string): Promise<{
|
|
68
75
|
expiresAt: string;
|
|
69
76
|
}>;
|
|
70
|
-
ingestTelemetry(
|
|
77
|
+
ingestTelemetry(tunnelRunToken: string, tunnelId: string, input: TunnelTelemetryIngestRequest): Promise<void>;
|
|
71
78
|
stopTunnel(accessToken: string, tunnelIdOrHostname: string): Promise<void>;
|
|
72
79
|
private request;
|
|
73
80
|
}
|
package/dist/lib/api-client.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { apiErrorSchema, authExchangeRequestSchema, authStartRequestSchema, authStartResponseSchema, heartbeatResponseSchema, refreshRequestSchema, tokenPairSchema, tunnelCreateRequestSchema, tunnelCreateResponseSchema, tunnelListResponseSchema, tunnelTelemetryIngestRequestSchema, tunnelTelemetryIngestResponseSchema, } from '@ripeseed/shared';
|
|
1
|
+
import { apiErrorSchema, authExchangeRequestSchema, authStatusRequestSchema, authStatusResponseSchema, authStartRequestSchema, authStartResponseSchema, heartbeatResponseSchema, refreshRequestSchema, tokenPairSchema, tunnelCreateRequestSchema, tunnelCreateResponseSchema, tunnelListResponseSchema, tunnelTelemetryIngestRequestSchema, tunnelTelemetryIngestResponseSchema, } from '@ripeseed/shared';
|
|
2
2
|
function formatNetworkFailure(error) {
|
|
3
3
|
if (!(error instanceof Error)) {
|
|
4
4
|
return 'unknown network error';
|
|
@@ -46,6 +46,14 @@ export class ApiClient {
|
|
|
46
46
|
});
|
|
47
47
|
return authStartResponseSchema.parse(response);
|
|
48
48
|
}
|
|
49
|
+
async getSlackAuthStatus(input) {
|
|
50
|
+
const body = authStatusRequestSchema.parse(input);
|
|
51
|
+
const response = await this.request('/v1/auth/slack/status', {
|
|
52
|
+
method: 'POST',
|
|
53
|
+
body,
|
|
54
|
+
});
|
|
55
|
+
return authStatusResponseSchema.parse(response);
|
|
56
|
+
}
|
|
49
57
|
async exchangeLoginCode(input) {
|
|
50
58
|
const body = authExchangeRequestSchema.parse(input);
|
|
51
59
|
const response = await this.request('/v1/auth/exchange', {
|
|
@@ -65,7 +73,7 @@ export class ApiClient {
|
|
|
65
73
|
async logout(accessToken, refreshToken) {
|
|
66
74
|
await this.request('/v1/auth/logout', {
|
|
67
75
|
method: 'POST',
|
|
68
|
-
accessToken,
|
|
76
|
+
bearerToken: accessToken,
|
|
69
77
|
body: {
|
|
70
78
|
refreshToken,
|
|
71
79
|
},
|
|
@@ -75,7 +83,7 @@ export class ApiClient {
|
|
|
75
83
|
const body = tunnelCreateRequestSchema.parse(input);
|
|
76
84
|
const response = await this.request('/v1/tunnels', {
|
|
77
85
|
method: 'POST',
|
|
78
|
-
accessToken,
|
|
86
|
+
bearerToken: accessToken,
|
|
79
87
|
body,
|
|
80
88
|
});
|
|
81
89
|
return tunnelCreateResponseSchema.parse(response);
|
|
@@ -83,23 +91,23 @@ export class ApiClient {
|
|
|
83
91
|
async listTunnels(accessToken) {
|
|
84
92
|
const response = await this.request('/v1/tunnels', {
|
|
85
93
|
method: 'GET',
|
|
86
|
-
accessToken,
|
|
94
|
+
bearerToken: accessToken,
|
|
87
95
|
});
|
|
88
96
|
return tunnelListResponseSchema.parse(response);
|
|
89
97
|
}
|
|
90
|
-
async heartbeat(
|
|
91
|
-
const response = await this.request(`/v1/tunnels/${encodeURIComponent(
|
|
98
|
+
async heartbeat(tunnelRunToken, tunnelId) {
|
|
99
|
+
const response = await this.request(`/v1/tunnels/${encodeURIComponent(tunnelId)}/heartbeat`, {
|
|
92
100
|
method: 'POST',
|
|
93
|
-
|
|
101
|
+
bearerToken: tunnelRunToken,
|
|
94
102
|
});
|
|
95
103
|
const parsed = heartbeatResponseSchema.parse(response);
|
|
96
104
|
return { expiresAt: parsed.expiresAt };
|
|
97
105
|
}
|
|
98
|
-
async ingestTelemetry(
|
|
106
|
+
async ingestTelemetry(tunnelRunToken, tunnelId, input) {
|
|
99
107
|
const body = tunnelTelemetryIngestRequestSchema.parse(input);
|
|
100
|
-
const response = await this.request(`/v1/tunnels/${encodeURIComponent(
|
|
108
|
+
const response = await this.request(`/v1/tunnels/${encodeURIComponent(tunnelId)}/telemetry`, {
|
|
101
109
|
method: 'POST',
|
|
102
|
-
|
|
110
|
+
bearerToken: tunnelRunToken,
|
|
103
111
|
body,
|
|
104
112
|
});
|
|
105
113
|
tunnelTelemetryIngestResponseSchema.parse(response);
|
|
@@ -107,18 +115,21 @@ export class ApiClient {
|
|
|
107
115
|
async stopTunnel(accessToken, tunnelIdOrHostname) {
|
|
108
116
|
await this.request(`/v1/tunnels/${encodeURIComponent(tunnelIdOrHostname)}`, {
|
|
109
117
|
method: 'DELETE',
|
|
110
|
-
accessToken,
|
|
118
|
+
bearerToken: accessToken,
|
|
111
119
|
});
|
|
112
120
|
}
|
|
113
121
|
async request(path, init) {
|
|
114
122
|
let response;
|
|
115
123
|
try {
|
|
124
|
+
const headers = {
|
|
125
|
+
...(init.bearerToken ? { Authorization: `Bearer ${init.bearerToken}` } : {}),
|
|
126
|
+
};
|
|
127
|
+
if (init.body !== undefined) {
|
|
128
|
+
headers['Content-Type'] = 'application/json';
|
|
129
|
+
}
|
|
116
130
|
response = await fetch(`${this.baseUrl}${path}`, {
|
|
117
131
|
method: init.method,
|
|
118
|
-
headers
|
|
119
|
-
'Content-Type': 'application/json',
|
|
120
|
-
...(init.accessToken ? { Authorization: `Bearer ${init.accessToken}` } : {}),
|
|
121
|
-
},
|
|
132
|
+
headers,
|
|
122
133
|
body: init.body !== undefined ? JSON.stringify(init.body) : undefined,
|
|
123
134
|
});
|
|
124
135
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"api-client.js","sourceRoot":"","sources":["../../src/lib/api-client.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,cAAc,EACd,yBAAyB,EACzB,sBAAsB,EACtB,uBAAuB,EACvB,uBAAuB,EACvB,oBAAoB,EACpB,eAAe,EACf,yBAAyB,EACzB,0BAA0B,EAC1B,wBAAwB,EACxB,kCAAkC,EAClC,mCAAmC,GACpC,MAAM,kBAAkB,CAAC;AAG1B,SAAS,oBAAoB,CAAC,KAAc;IAC1C,IAAI,CAAC,CAAC,KAAK,YAAY,KAAK,CAAC,EAAE,CAAC;QAC9B,OAAO,uBAAuB,CAAC;IACjC,CAAC;IAED,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC;IAC1B,IAAI,CAAC,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QACxC,OAAO,KAAK,CAAC,OAAO,CAAC;IACvB,CAAC;IAED,MAAM,IAAI,GAAG,OAAQ,KAA4B,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAE,KAA0B,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC;IACnH,MAAM,OAAO,GACX,OAAQ,KAA+B,CAAC,OAAO,KAAK,QAAQ;QAC1D,CAAC,CAAE,KAA6B,CAAC,OAAO;QACxC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC;IAEpB,OAAO,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,KAAK,OAAO,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC;AAChD,CAAC;AAED,MAAM,OAAO,cAAe,SAAQ,KAAK;IAErB;IACA;IAEA;IAJlB,YACkB,MAAc,EACd,IAAY,EAC5B,OAAe,EACC,OAAiB;QAEjC,KAAK,CAAC,OAAO,CAAC,CAAC;QALC,WAAM,GAAN,MAAM,CAAQ;QACd,SAAI,GAAJ,IAAI,CAAQ;QAEZ,YAAO,GAAP,OAAO,CAAU;IAGnC,CAAC;CACF;AAED,MAAM,OAAO,SAAS;IACS;IAA7B,YAA6B,OAAe;QAAf,YAAO,GAAP,OAAO,CAAQ;IAAG,CAAC;IAEhD,KAAK,CAAC,MAAM;QACV,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,IAAI,CAAC,OAAO,UAAU,CAAC,CAAC;YACxD,OAAO,QAAQ,CAAC,EAAE,CAAC;QACrB,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,KAAK,CAAC;QACf,CAAC;IACH,CAAC;IAED,KAAK,CAAC,cAAc,CAAC,
|
|
1
|
+
{"version":3,"file":"api-client.js","sourceRoot":"","sources":["../../src/lib/api-client.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
import { afterEach, describe, expect, it, vi } from 'vitest';
|
|
2
|
+
import { ApiClient } from './api-client.js';
|
|
3
|
+
describe('ApiClient', () => {
|
|
4
|
+
afterEach(() => {
|
|
5
|
+
vi.unstubAllGlobals();
|
|
6
|
+
vi.restoreAllMocks();
|
|
7
|
+
});
|
|
8
|
+
it('omits JSON content-type for heartbeat requests without a body', async () => {
|
|
9
|
+
const fetchMock = vi.fn(async () => new Response(JSON.stringify({ ok: true, expiresAt: '2026-01-01T00:00:00.000Z' }), {
|
|
10
|
+
status: 200,
|
|
11
|
+
headers: {
|
|
12
|
+
'content-type': 'application/json',
|
|
13
|
+
},
|
|
14
|
+
}));
|
|
15
|
+
vi.stubGlobal('fetch', fetchMock);
|
|
16
|
+
const client = new ApiClient('http://localhost:8080');
|
|
17
|
+
await client.heartbeat('runtime-token', 'tunnel-id');
|
|
18
|
+
const requestInit = fetchMock.mock.calls[0]?.[1];
|
|
19
|
+
expect(requestInit?.method).toBe('POST');
|
|
20
|
+
expect(requestInit?.body).toBeUndefined();
|
|
21
|
+
expect(requestInit?.headers).toMatchObject({
|
|
22
|
+
Authorization: 'Bearer runtime-token',
|
|
23
|
+
});
|
|
24
|
+
expect(requestInit?.headers).not.toMatchObject({
|
|
25
|
+
'Content-Type': 'application/json',
|
|
26
|
+
});
|
|
27
|
+
});
|
|
28
|
+
it('sends JSON content-type when a body is present', async () => {
|
|
29
|
+
const fetchMock = vi.fn(async () => new Response(JSON.stringify({
|
|
30
|
+
tunnelId: '11111111-1111-1111-1111-111111111111',
|
|
31
|
+
hostname: 'demo.tunnel.example.com',
|
|
32
|
+
cloudflaredToken: 'cf-token',
|
|
33
|
+
tunnelRunToken: 'runtime-token',
|
|
34
|
+
heartbeatIntervalSec: 20,
|
|
35
|
+
leaseTimeoutSec: 60,
|
|
36
|
+
}), {
|
|
37
|
+
status: 200,
|
|
38
|
+
headers: {
|
|
39
|
+
'content-type': 'application/json',
|
|
40
|
+
},
|
|
41
|
+
}));
|
|
42
|
+
vi.stubGlobal('fetch', fetchMock);
|
|
43
|
+
const client = new ApiClient('http://localhost:8080');
|
|
44
|
+
await client.createTunnel('access-token', { port: 3000, requestedSlug: 'demo' });
|
|
45
|
+
const requestInit = fetchMock.mock.calls[0]?.[1];
|
|
46
|
+
expect(requestInit?.headers).toMatchObject({
|
|
47
|
+
Authorization: 'Bearer access-token',
|
|
48
|
+
'Content-Type': 'application/json',
|
|
49
|
+
});
|
|
50
|
+
expect(requestInit?.body).toBe(JSON.stringify({ port: 3000, requestedSlug: 'demo' }));
|
|
51
|
+
});
|
|
52
|
+
});
|
|
53
|
+
//# sourceMappingURL=api-client.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"api-client.test.js","sourceRoot":"","sources":["../../src/lib/api-client.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAC;AAE7D,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAE5C,QAAQ,CAAC,WAAW,EAAE,GAAG,EAAE;IACzB,SAAS,CAAC,GAAG,EAAE;QACb,EAAE,CAAC,gBAAgB,EAAE,CAAC;QACtB,EAAE,CAAC,eAAe,EAAE,CAAC;IACvB,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,+DAA+D,EAAE,KAAK,IAAI,EAAE;QAC7E,MAAM,SAAS,GAAG,EAAE,CAAC,EAAE,CAAC,KAAK,IAAI,EAAE,CACjC,IAAI,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,0BAA0B,EAAE,CAAC,EAAE;YAChF,MAAM,EAAE,GAAG;YACX,OAAO,EAAE;gBACP,cAAc,EAAE,kBAAkB;aACnC;SACF,CAAC,CACH,CAAC;QACF,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;QAElC,MAAM,MAAM,GAAG,IAAI,SAAS,CAAC,uBAAuB,CAAC,CAAC;QACtD,MAAM,MAAM,CAAC,SAAS,CAAC,eAAe,EAAE,WAAW,CAAC,CAAC;QAErD,MAAM,WAAW,GAAK,SAAS,CAAC,IAAI,CAAC,KAA8D,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;QAC5G,MAAM,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACzC,MAAM,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC,aAAa,EAAE,CAAC;QAC1C,MAAM,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC,aAAa,CAAC;YACzC,aAAa,EAAE,sBAAsB;SACtC,CAAC,CAAC;QACH,MAAM,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC,GAAG,CAAC,aAAa,CAAC;YAC7C,cAAc,EAAE,kBAAkB;SACnC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,gDAAgD,EAAE,KAAK,IAAI,EAAE;QAC9D,MAAM,SAAS,GAAG,EAAE,CAAC,EAAE,CAAC,KAAK,IAAI,EAAE,CACjC,IAAI,QAAQ,CACV,IAAI,CAAC,SAAS,CAAC;YACb,QAAQ,EAAE,sCAAsC;YAChD,QAAQ,EAAE,yBAAyB;YACnC,gBAAgB,EAAE,UAAU;YAC5B,cAAc,EAAE,eAAe;YAC/B,oBAAoB,EAAE,EAAE;YACxB,eAAe,EAAE,EAAE;SACpB,CAAC,EACF;YACE,MAAM,EAAE,GAAG;YACX,OAAO,EAAE;gBACP,cAAc,EAAE,kBAAkB;aACnC;SACF,CACF,CACF,CAAC;QACF,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;QAElC,MAAM,MAAM,GAAG,IAAI,SAAS,CAAC,uBAAuB,CAAC,CAAC;QACtD,MAAM,MAAM,CAAC,YAAY,CAAC,cAAc,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,aAAa,EAAE,MAAM,EAAE,CAAC,CAAC;QAEjF,MAAM,WAAW,GAAK,SAAS,CAAC,IAAI,CAAC,KAA8D,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;QAC5G,MAAM,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC,aAAa,CAAC;YACzC,aAAa,EAAE,qBAAqB;YACpC,cAAc,EAAE,kBAAkB;SACnC,CAAC,CAAC;QACH,MAAM,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,aAAa,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC;IACxF,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@ripeseed/rs-tunnel",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.3.0",
|
|
4
4
|
"description": "CLI for running secure public tunnels to localhost through Cloudflare.",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"repository": {
|
|
@@ -29,7 +29,7 @@
|
|
|
29
29
|
"commander": "^13.1.0",
|
|
30
30
|
"open": "^10.1.0",
|
|
31
31
|
"zod": "^3.24.1",
|
|
32
|
-
"@ripeseed/shared": "0.
|
|
32
|
+
"@ripeseed/shared": "0.3.0"
|
|
33
33
|
},
|
|
34
34
|
"optionalDependencies": {
|
|
35
35
|
"keytar": "^7.9.0"
|
|
@@ -1,68 +0,0 @@
|
|
|
1
|
-
import http from 'node:http';
|
|
2
|
-
import { URL } from 'node:url';
|
|
3
|
-
export async function startCallbackServer() {
|
|
4
|
-
let resolveHandler;
|
|
5
|
-
let rejectHandler;
|
|
6
|
-
const waitForCodePromise = new Promise((resolve, reject) => {
|
|
7
|
-
resolveHandler = resolve;
|
|
8
|
-
rejectHandler = reject;
|
|
9
|
-
});
|
|
10
|
-
const server = http.createServer((req, res) => {
|
|
11
|
-
const requestUrl = new URL(req.url ?? '/', 'http://127.0.0.1');
|
|
12
|
-
if (requestUrl.pathname !== '/callback') {
|
|
13
|
-
res.statusCode = 404;
|
|
14
|
-
res.end('Not found');
|
|
15
|
-
return;
|
|
16
|
-
}
|
|
17
|
-
const code = requestUrl.searchParams.get('code');
|
|
18
|
-
const state = requestUrl.searchParams.get('state');
|
|
19
|
-
if (!code || !state) {
|
|
20
|
-
res.statusCode = 400;
|
|
21
|
-
res.end('Missing code or state');
|
|
22
|
-
rejectHandler?.(new Error('OAuth callback missing code or state'));
|
|
23
|
-
return;
|
|
24
|
-
}
|
|
25
|
-
res.statusCode = 200;
|
|
26
|
-
res.setHeader('Content-Type', 'text/plain');
|
|
27
|
-
res.end('Login complete. You can close this tab.');
|
|
28
|
-
resolveHandler?.({ code, state });
|
|
29
|
-
});
|
|
30
|
-
await new Promise((resolve, reject) => {
|
|
31
|
-
server.once('error', reject);
|
|
32
|
-
server.listen(0, '127.0.0.1', () => {
|
|
33
|
-
server.off('error', reject);
|
|
34
|
-
resolve();
|
|
35
|
-
});
|
|
36
|
-
});
|
|
37
|
-
const address = server.address();
|
|
38
|
-
if (!address || typeof address === 'string') {
|
|
39
|
-
throw new Error('Unable to bind local callback server.');
|
|
40
|
-
}
|
|
41
|
-
const timeout = setTimeout(() => {
|
|
42
|
-
rejectHandler?.(new Error('Timed out waiting for Slack OAuth callback.'));
|
|
43
|
-
}, 120_000);
|
|
44
|
-
return {
|
|
45
|
-
callbackUrl: `http://127.0.0.1:${address.port}/callback`,
|
|
46
|
-
waitForCode: async () => {
|
|
47
|
-
try {
|
|
48
|
-
return await waitForCodePromise;
|
|
49
|
-
}
|
|
50
|
-
finally {
|
|
51
|
-
clearTimeout(timeout);
|
|
52
|
-
}
|
|
53
|
-
},
|
|
54
|
-
close: async () => {
|
|
55
|
-
await new Promise((resolve, reject) => {
|
|
56
|
-
server.close((error) => {
|
|
57
|
-
if (error) {
|
|
58
|
-
reject(error);
|
|
59
|
-
return;
|
|
60
|
-
}
|
|
61
|
-
resolve();
|
|
62
|
-
});
|
|
63
|
-
});
|
|
64
|
-
clearTimeout(timeout);
|
|
65
|
-
},
|
|
66
|
-
};
|
|
67
|
-
}
|
|
68
|
-
//# sourceMappingURL=local-callback.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"local-callback.js","sourceRoot":"","sources":["../../src/lib/local-callback.ts"],"names":[],"mappings":"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"}
|