@opendatalabs/connect 0.10.0-canary.e8aeb13 → 0.10.1-canary.f8921f7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cli/auth.d.ts +11 -1
- package/dist/cli/auth.d.ts.map +1 -1
- package/dist/cli/auth.js +86 -13
- package/dist/cli/auth.js.map +1 -1
- package/dist/cli/index.d.ts.map +1 -1
- package/dist/cli/index.js +104 -13
- package/dist/cli/index.js.map +1 -1
- package/dist/personal-server/client.d.ts +1 -1
- package/dist/personal-server/client.d.ts.map +1 -1
- package/dist/personal-server/client.js +1 -1
- package/dist/personal-server/client.js.map +1 -1
- package/dist/personal-server/index.d.ts +7 -0
- package/dist/personal-server/index.d.ts.map +1 -1
- package/dist/personal-server/index.js +16 -10
- package/dist/personal-server/index.js.map +1 -1
- package/package.json +1 -1
package/dist/cli/auth.d.ts
CHANGED
|
@@ -61,6 +61,7 @@ export interface DeviceCodePollAuthorized {
|
|
|
61
61
|
ps_access_token?: string;
|
|
62
62
|
address: string;
|
|
63
63
|
expires_in?: number;
|
|
64
|
+
expires_at?: string;
|
|
64
65
|
}
|
|
65
66
|
export interface DeviceCodePollPending {
|
|
66
67
|
status: "pending";
|
|
@@ -91,8 +92,17 @@ export declare function openBrowser(url: string): void;
|
|
|
91
92
|
export declare function runDeviceCodeFlow(callbacks: {
|
|
92
93
|
onCode: (code: string, verificationUri: string) => void;
|
|
93
94
|
onWaiting: () => void;
|
|
94
|
-
onAuthorized: (creds: VanaCredentials) => void
|
|
95
|
+
onAuthorized: (creds: VanaCredentials) => void | Promise<void>;
|
|
95
96
|
onExpired: () => void;
|
|
96
97
|
onError: (error: Error) => void;
|
|
97
98
|
}): Promise<VanaCredentials | null>;
|
|
99
|
+
export type AuthTarget = "cloud" | "self-hosted";
|
|
100
|
+
export declare function getAuthTarget(psUrl: string | null): AuthTarget;
|
|
101
|
+
export declare function resolvePersonalServerUrl(): string | undefined;
|
|
102
|
+
export declare function runSelfHostedLoginFlow(serverUrl: string, onLoginUrl: (url: string) => void): Promise<{
|
|
103
|
+
server: string;
|
|
104
|
+
address: string;
|
|
105
|
+
access_token: string;
|
|
106
|
+
expires_at: string;
|
|
107
|
+
}>;
|
|
98
108
|
//# sourceMappingURL=auth.d.ts.map
|
package/dist/cli/auth.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"auth.d.ts","sourceRoot":"","sources":["../../src/cli/auth.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAQH,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE;QACP,OAAO,EAAE,MAAM,CAAC;QAChB,aAAa,EAAE,MAAM,CAAC;QACtB,UAAU,EAAE,MAAM,CAAC;KACpB,CAAC;IACF,eAAe,EAAE;QACf,GAAG,EAAE,MAAM,CAAC;QACZ,YAAY,EAAE,MAAM,CAAC;QACrB,UAAU,EAAE,MAAM,CAAC;KACpB,GAAG,IAAI,CAAC;CACV;AAQD;;;;;;;;GAQG;AACH,wBAAgB,eAAe,IAAI,eAAe,GAAG,IAAI,CAyCxD;AAED;;GAEG;AACH,wBAAsB,eAAe,CAAC,KAAK,EAAE,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC,CAQ3E;AAED;;GAEG;AACH,wBAAsB,gBAAgB,IAAI,OAAO,CAAC,IAAI,CAAC,CAUtD;AAED;;GAEG;AACH,wBAAgB,SAAS,CAAC,KAAK,EAAE,eAAe,GAAG,OAAO,CAOzD;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAGrD;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAYzD;AAID,MAAM,WAAW,kBAAkB;IACjC,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,gBAAgB,EAAE,MAAM,CAAC;IACzB,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,wBAAwB;IACvC,MAAM,EAAE,YAAY,CAAC;IACrB,aAAa,EAAE,MAAM,CAAC;IACtB,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,qBAAqB;IACpC,MAAM,EAAE,SAAS,CAAC;CACnB;AAED,MAAM,WAAW,qBAAqB;IACpC,MAAM,EAAE,SAAS,CAAC;CACnB;AAED,MAAM,MAAM,sBAAsB,GAC9B,wBAAwB,GACxB,qBAAqB,GACrB,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"auth.d.ts","sourceRoot":"","sources":["../../src/cli/auth.ts"],"names":[],"mappings":"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"}
|
package/dist/cli/auth.js
CHANGED
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
* Supports the device code flow for browser-based login and
|
|
6
6
|
* env var overrides for CI/automation.
|
|
7
7
|
*/
|
|
8
|
-
import {
|
|
8
|
+
import { spawnSync } from "node:child_process";
|
|
9
9
|
import fs from "node:fs";
|
|
10
10
|
import fsp from "node:fs/promises";
|
|
11
11
|
import path from "node:path";
|
|
@@ -122,6 +122,16 @@ export function formatExpiresIn(expiresAt) {
|
|
|
122
122
|
const minutes = Math.floor(ms / (60 * 1000));
|
|
123
123
|
return `${minutes} minute${minutes === 1 ? "" : "s"}`;
|
|
124
124
|
}
|
|
125
|
+
function resolveCredentialExpiry(params) {
|
|
126
|
+
if (params.expiresAt) {
|
|
127
|
+
const parsed = new Date(params.expiresAt);
|
|
128
|
+
if (!Number.isNaN(parsed.getTime())) {
|
|
129
|
+
return parsed.toISOString();
|
|
130
|
+
}
|
|
131
|
+
}
|
|
132
|
+
const expiresIn = params.expiresIn ?? 30 * 24 * 60 * 60;
|
|
133
|
+
return new Date(Date.now() + expiresIn * 1000).toISOString();
|
|
134
|
+
}
|
|
125
135
|
function getAccountUrl() {
|
|
126
136
|
return (process.env.VANA_ACCOUNT_URL?.replace(/\/+$/, "") ??
|
|
127
137
|
"https://account.vana.org");
|
|
@@ -161,17 +171,16 @@ export async function pollDeviceCode(deviceCode) {
|
|
|
161
171
|
* Best-effort — failures are silently ignored.
|
|
162
172
|
*/
|
|
163
173
|
export function openBrowser(url) {
|
|
174
|
+
// Use spawnSync with args array to prevent shell injection.
|
|
175
|
+
// A malicious server could return a URL with shell metacharacters.
|
|
164
176
|
const platform = process.platform;
|
|
165
177
|
try {
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
}
|
|
172
|
-
else {
|
|
173
|
-
execSync(`xdg-open ${JSON.stringify(url)}`, { stdio: "ignore" });
|
|
174
|
-
}
|
|
178
|
+
const opener = platform === "darwin"
|
|
179
|
+
? "open"
|
|
180
|
+
: platform === "win32"
|
|
181
|
+
? "start"
|
|
182
|
+
: "xdg-open";
|
|
183
|
+
spawnSync(opener, [url], { stdio: "ignore" });
|
|
175
184
|
}
|
|
176
185
|
catch {
|
|
177
186
|
// Best-effort — user can open manually
|
|
@@ -197,8 +206,10 @@ export async function runDeviceCodeFlow(callbacks) {
|
|
|
197
206
|
try {
|
|
198
207
|
const result = await pollDeviceCode(deviceCode.device_code);
|
|
199
208
|
if (result.status === "authorized") {
|
|
200
|
-
const
|
|
201
|
-
|
|
209
|
+
const expiresAt = resolveCredentialExpiry({
|
|
210
|
+
expiresAt: result.expires_at,
|
|
211
|
+
expiresIn: result.expires_in,
|
|
212
|
+
});
|
|
202
213
|
const creds = {
|
|
203
214
|
account: {
|
|
204
215
|
address: result.address,
|
|
@@ -213,7 +224,7 @@ export async function runDeviceCodeFlow(callbacks) {
|
|
|
213
224
|
}
|
|
214
225
|
: null,
|
|
215
226
|
};
|
|
216
|
-
callbacks.onAuthorized(creds);
|
|
227
|
+
await callbacks.onAuthorized(creds);
|
|
217
228
|
return creds;
|
|
218
229
|
}
|
|
219
230
|
if (result.status === "expired") {
|
|
@@ -235,4 +246,66 @@ export async function runDeviceCodeFlow(callbacks) {
|
|
|
235
246
|
return null;
|
|
236
247
|
}
|
|
237
248
|
}
|
|
249
|
+
export function getAuthTarget(psUrl) {
|
|
250
|
+
if (!psUrl)
|
|
251
|
+
return "cloud";
|
|
252
|
+
if (psUrl.includes(".myvana.app"))
|
|
253
|
+
return "cloud";
|
|
254
|
+
if (psUrl.startsWith("http://localhost") ||
|
|
255
|
+
psUrl.startsWith("http://127.0.0.1"))
|
|
256
|
+
return "cloud";
|
|
257
|
+
return "self-hosted";
|
|
258
|
+
}
|
|
259
|
+
export function resolvePersonalServerUrl() {
|
|
260
|
+
return (process.env.VANA_PS_URL ||
|
|
261
|
+
process.env.VANA_PERSONAL_SERVER_URL ||
|
|
262
|
+
loadCredentials()?.personal_server?.url);
|
|
263
|
+
}
|
|
264
|
+
const SELF_HOSTED_POLL_INTERVAL_MS = 5_000;
|
|
265
|
+
function resolveLoginV2PollUrl(serverUrl, endpoint) {
|
|
266
|
+
return new URL(endpoint, `${serverUrl.replace(/\/$/, "")}/`).toString();
|
|
267
|
+
}
|
|
268
|
+
export async function runSelfHostedLoginFlow(serverUrl, onLoginUrl) {
|
|
269
|
+
const base = serverUrl.replace(/\/$/, "");
|
|
270
|
+
// 1. Initiate login flow
|
|
271
|
+
const initRes = await fetch(`${base}/auth/device`, { method: "POST" });
|
|
272
|
+
if (!initRes.ok) {
|
|
273
|
+
throw new Error(`Server at ${base} does not support CLI login (${initRes.status})`);
|
|
274
|
+
}
|
|
275
|
+
const init = (await initRes.json());
|
|
276
|
+
// 2. Open browser
|
|
277
|
+
onLoginUrl(init.login);
|
|
278
|
+
// 3. Poll for completion (5 min timeout)
|
|
279
|
+
const deadline = Date.now() + 5 * 60 * 1000;
|
|
280
|
+
const pollUrl = resolveLoginV2PollUrl(base, init.poll.endpoint);
|
|
281
|
+
while (Date.now() < deadline) {
|
|
282
|
+
await new Promise((r) => setTimeout(r, SELF_HOSTED_POLL_INTERVAL_MS));
|
|
283
|
+
const pollRes = await fetch(`${pollUrl}?token=${encodeURIComponent(init.poll.token)}`);
|
|
284
|
+
if (pollRes.status === 200) {
|
|
285
|
+
const result = (await pollRes.json());
|
|
286
|
+
return {
|
|
287
|
+
server: result.server,
|
|
288
|
+
address: result.address,
|
|
289
|
+
access_token: result.access_token,
|
|
290
|
+
expires_at: result.expires_at,
|
|
291
|
+
};
|
|
292
|
+
}
|
|
293
|
+
if (pollRes.status === 404 || pollRes.status === 202) {
|
|
294
|
+
const result = (await pollRes
|
|
295
|
+
.json()
|
|
296
|
+
.catch(() => null));
|
|
297
|
+
if (result?.status === "expired") {
|
|
298
|
+
throw new Error("Authorization expired. Please try again.");
|
|
299
|
+
}
|
|
300
|
+
continue;
|
|
301
|
+
}
|
|
302
|
+
if (pollRes.status === 429) {
|
|
303
|
+
continue;
|
|
304
|
+
}
|
|
305
|
+
if (!pollRes.ok) {
|
|
306
|
+
throw new Error(`Poll failed: ${pollRes.status}`);
|
|
307
|
+
}
|
|
308
|
+
}
|
|
309
|
+
throw new Error("Authorization timed out. Please try again.");
|
|
310
|
+
}
|
|
238
311
|
//# sourceMappingURL=auth.js.map
|
package/dist/cli/auth.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"auth.js","sourceRoot":"","sources":["../../src/cli/auth.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"auth.js","sourceRoot":"","sources":["../../src/cli/auth.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAC/C,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,GAAG,MAAM,kBAAkB,CAAC;AACnC,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,MAAM,SAAS,CAAC;AAezB,MAAM,SAAS,GAAG,WAAW,CAAC;AAE9B,SAAS,eAAe;IACtB,OAAO,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,OAAO,EAAE,SAAS,CAAC,CAAC;AACrD,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,UAAU,eAAe;IAC7B,gCAAgC;IAChC,MAAM,eAAe,GAAG,OAAO,CAAC,GAAG,CAAC,kBAAkB,CAAC;IACvD,MAAM,UAAU,GAAG,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC;IAC7C,MAAM,QAAQ,GACZ,OAAO,CAAC,GAAG,CAAC,WAAW,IAAI,OAAO,CAAC,GAAG,CAAC,wBAAwB,CAAC;IAElE,IAAI,eAAe,EAAE,CAAC;QACpB,4EAA4E;QAC5E,MAAM,SAAS,GAAG,IAAI,IAAI,CACxB,IAAI,CAAC,GAAG,EAAE,GAAG,GAAG,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CACvC,CAAC,WAAW,EAAE,CAAC;QAChB,OAAO;YACL,OAAO,EAAE;gBACP,OAAO,EAAE,KAAK;gBACd,aAAa,EAAE,eAAe;gBAC9B,UAAU,EAAE,SAAS;aACtB;YACD,eAAe,EACb,UAAU,IAAI,QAAQ;gBACpB,CAAC,CAAC;oBACE,GAAG,EAAE,QAAQ;oBACb,YAAY,EAAE,UAAU;oBACxB,UAAU,EAAE,SAAS;iBACtB;gBACH,CAAC,CAAC,IAAI;SACX,CAAC;IACJ,CAAC;IAED,iBAAiB;IACjB,MAAM,QAAQ,GAAG,eAAe,EAAE,CAAC;IACnC,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,EAAE,CAAC,YAAY,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;QAC9C,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAoB,CAAC;QACjD,IAAI,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC;YACrB,OAAO,IAAI,CAAC;QACd,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,eAAe,CAAC,KAAsB;IAC1D,MAAM,QAAQ,GAAG,eAAe,EAAE,CAAC;IACnC,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;IAEnC,MAAM,GAAG,CAAC,KAAK,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAC1C,MAAM,GAAG,CAAC,SAAS,CAAC,QAAQ,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,GAAG,IAAI,EAAE;QACnE,IAAI,EAAE,KAAK;KACZ,CAAC,CAAC;AACL,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,gBAAgB;IACpC,MAAM,QAAQ,GAAG,eAAe,EAAE,CAAC;IACnC,IAAI,CAAC;QACH,MAAM,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;IAC7B,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,+BAA+B;QAC/B,IAAK,GAA6B,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;YACrD,MAAM,GAAG,CAAC;QACZ,CAAC;IACH,CAAC;AACH,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,SAAS,CAAC,KAAsB;IAC9C,IAAI,CAAC;QACH,MAAM,SAAS,GAAG,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;QACrD,OAAO,SAAS,CAAC,OAAO,EAAE,IAAI,IAAI,CAAC,GAAG,EAAE,CAAC;IAC3C,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,aAAa,CAAC,OAAe;IAC3C,IAAI,OAAO,CAAC,MAAM,IAAI,EAAE;QAAE,OAAO,OAAO,CAAC;IACzC,OAAO,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,MAAM,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;AACzD,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,eAAe,CAAC,SAAiB;IAC/C,MAAM,EAAE,GAAG,IAAI,IAAI,CAAC,SAAS,CAAC,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IACtD,IAAI,EAAE,IAAI,CAAC;QAAE,OAAO,SAAS,CAAC;IAE9B,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,GAAG,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC,CAAC;IACpD,IAAI,IAAI,GAAG,CAAC;QAAE,OAAO,GAAG,IAAI,OAAO,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC;IAE3D,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,GAAG,CAAC,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC,CAAC;IAChD,IAAI,KAAK,GAAG,CAAC;QAAE,OAAO,GAAG,KAAK,QAAQ,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC;IAE/D,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,CAAC,CAAC;IAC7C,OAAO,GAAG,OAAO,UAAU,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC;AACxD,CAAC;AAmCD,SAAS,uBAAuB,CAAC,MAGhC;IACC,IAAI,MAAM,CAAC,SAAS,EAAE,CAAC;QACrB,MAAM,MAAM,GAAG,IAAI,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;QAC1C,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC,EAAE,CAAC;YACpC,OAAO,MAAM,CAAC,WAAW,EAAE,CAAC;QAC9B,CAAC;IACH,CAAC;IAED,MAAM,SAAS,GAAG,MAAM,CAAC,SAAS,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC;IACxD,OAAO,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,GAAG,IAAI,CAAC,CAAC,WAAW,EAAE,CAAC;AAC/D,CAAC;AAED,SAAS,aAAa;IACpB,OAAO,CACL,OAAO,CAAC,GAAG,CAAC,gBAAgB,EAAE,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC;QACjD,0BAA0B,CAC3B,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,iBAAiB;IACrC,MAAM,GAAG,GAAG,GAAG,aAAa,EAAE,kBAAkB,CAAC;IACjD,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,EAAE;QAChC,MAAM,EAAE,MAAM;QACd,OAAO,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE;KAChD,CAAC,CAAC;IAEH,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;QACjB,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC;QACnD,MAAM,IAAI,KAAK,CACb,0CAA0C,QAAQ,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CACvF,CAAC;IACJ,CAAC;IAED,OAAO,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAuB,CAAC;AACvD,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,cAAc,CAClC,UAAkB;IAElB,MAAM,GAAG,GAAG,GAAG,aAAa,EAAE,qCAAqC,kBAAkB,CAAC,UAAU,CAAC,EAAE,CAAC;IACpG,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,EAAE;QAChC,MAAM,EAAE,KAAK;QACb,MAAM,EAAE,WAAW,CAAC,OAAO,CAAC,MAAM,CAAC;KACpC,CAAC,CAAC;IAEH,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;QACjB,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC;QACnD,MAAM,IAAI,KAAK,CACb,qBAAqB,QAAQ,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAClE,CAAC;IACJ,CAAC;IAED,OAAO,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,CAA2B,CAAC;AAC3D,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,WAAW,CAAC,GAAW;IACrC,4DAA4D;IAC5D,mEAAmE;IACnE,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC;IAElC,IAAI,CAAC;QACH,MAAM,MAAM,GACV,QAAQ,KAAK,QAAQ;YACnB,CAAC,CAAC,MAAM;YACR,CAAC,CAAC,QAAQ,KAAK,OAAO;gBACpB,CAAC,CAAC,OAAO;gBACT,CAAC,CAAC,UAAU,CAAC;QACnB,SAAS,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAC;IAChD,CAAC;IAAC,MAAM,CAAC;QACP,uCAAuC;IACzC,CAAC;AACH,CAAC;AAED;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,iBAAiB,CAAC,SAMvC;IACC,IAAI,CAAC;QACH,MAAM,UAAU,GAAG,MAAM,iBAAiB,EAAE,CAAC;QAE7C,SAAS,CAAC,MAAM,CAAC,UAAU,CAAC,SAAS,EAAE,UAAU,CAAC,gBAAgB,CAAC,CAAC;QAEpE,sBAAsB;QACtB,WAAW,CAAC,UAAU,CAAC,gBAAgB,CAAC,CAAC;QAEzC,SAAS,CAAC,SAAS,EAAE,CAAC;QAEtB,MAAM,QAAQ,GAAG,CAAC,UAAU,CAAC,QAAQ,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC;QACnD,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,UAAU,CAAC,UAAU,GAAG,IAAI,CAAC;QAE3D,OAAO,IAAI,CAAC,GAAG,EAAE,GAAG,QAAQ,EAAE,CAAC;YAC7B,MAAM,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC,CAAC;YAE9D,IAAI,CAAC;gBACH,MAAM,MAAM,GAAG,MAAM,cAAc,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC;gBAE5D,IAAI,MAAM,CAAC,MAAM,KAAK,YAAY,EAAE,CAAC;oBACnC,MAAM,SAAS,GAAG,uBAAuB,CAAC;wBACxC,SAAS,EAAE,MAAM,CAAC,UAAU;wBAC5B,SAAS,EAAE,MAAM,CAAC,UAAU;qBAC7B,CAAC,CAAC;oBAEH,MAAM,KAAK,GAAoB;wBAC7B,OAAO,EAAE;4BACP,OAAO,EAAE,MAAM,CAAC,OAAO;4BACvB,aAAa,EAAE,MAAM,CAAC,aAAa;4BACnC,UAAU,EAAE,SAAS;yBACtB;wBACD,eAAe,EACb,MAAM,CAAC,mBAAmB,IAAI,MAAM,CAAC,eAAe;4BAClD,CAAC,CAAC;gCACE,GAAG,EAAE,MAAM,CAAC,mBAAmB;gCAC/B,YAAY,EAAE,MAAM,CAAC,eAAe;gCACpC,UAAU,EAAE,SAAS;6BACtB;4BACH,CAAC,CAAC,IAAI;qBACX,CAAC;oBAEF,MAAM,SAAS,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;oBACpC,OAAO,KAAK,CAAC;gBACf,CAAC;gBAED,IAAI,MAAM,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;oBAChC,SAAS,CAAC,SAAS,EAAE,CAAC;oBACtB,OAAO,IAAI,CAAC;gBACd,CAAC;gBAED,0CAA0C;YAC5C,CAAC;YAAC,MAAM,CAAC;gBACP,gDAAgD;YAClD,CAAC;QACH,CAAC;QAED,YAAY;QACZ,SAAS,CAAC,SAAS,EAAE,CAAC;QACtB,OAAO,IAAI,CAAC;IACd,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,SAAS,CAAC,OAAO,CACf,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAC1D,CAAC;QACF,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAMD,MAAM,UAAU,aAAa,CAAC,KAAoB;IAChD,IAAI,CAAC,KAAK;QAAE,OAAO,OAAO,CAAC;IAC3B,IAAI,KAAK,CAAC,QAAQ,CAAC,aAAa,CAAC;QAAE,OAAO,OAAO,CAAC;IAClD,IACE,KAAK,CAAC,UAAU,CAAC,kBAAkB,CAAC;QACpC,KAAK,CAAC,UAAU,CAAC,kBAAkB,CAAC;QAEpC,OAAO,OAAO,CAAC;IACjB,OAAO,aAAa,CAAC;AACvB,CAAC;AAED,MAAM,UAAU,wBAAwB;IACtC,OAAO,CACL,OAAO,CAAC,GAAG,CAAC,WAAW;QACvB,OAAO,CAAC,GAAG,CAAC,wBAAwB;QACpC,eAAe,EAAE,EAAE,eAAe,EAAE,GAAG,CACxC,CAAC;AACJ,CAAC;AA4BD,MAAM,4BAA4B,GAAG,KAAK,CAAC;AAE3C,SAAS,qBAAqB,CAAC,SAAiB,EAAE,QAAgB;IAChE,OAAO,IAAI,GAAG,CAAC,QAAQ,EAAE,GAAG,SAAS,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,CAAC;AAC1E,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,sBAAsB,CAC1C,SAAiB,EACjB,UAAiC;IAOjC,MAAM,IAAI,GAAG,SAAS,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;IAE1C,yBAAyB;IACzB,MAAM,OAAO,GAAG,MAAM,KAAK,CAAC,GAAG,IAAI,cAAc,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;IACvE,IAAI,CAAC,OAAO,CAAC,EAAE,EAAE,CAAC;QAChB,MAAM,IAAI,KAAK,CACb,aAAa,IAAI,gCAAgC,OAAO,CAAC,MAAM,GAAG,CACnE,CAAC;IACJ,CAAC;IACD,MAAM,IAAI,GAAG,CAAC,MAAM,OAAO,CAAC,IAAI,EAAE,CAAwB,CAAC;IAE3D,kBAAkB;IAClB,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAEvB,yCAAyC;IACzC,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC;IAC5C,MAAM,OAAO,GAAG,qBAAqB,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IAEhE,OAAO,IAAI,CAAC,GAAG,EAAE,GAAG,QAAQ,EAAE,CAAC;QAC7B,MAAM,IAAI,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,CAAC,EAAE,4BAA4B,CAAC,CAAC,CAAC;QAEtE,MAAM,OAAO,GAAG,MAAM,KAAK,CACzB,GAAG,OAAO,UAAU,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAC1D,CAAC;QAEF,IAAI,OAAO,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC;YAC3B,MAAM,MAAM,GAAG,CAAC,MAAM,OAAO,CAAC,IAAI,EAAE,CAAuB,CAAC;YAC5D,OAAO;gBACL,MAAM,EAAE,MAAM,CAAC,MAAM;gBACrB,OAAO,EAAE,MAAM,CAAC,OAAO;gBACvB,YAAY,EAAE,MAAM,CAAC,YAAY;gBACjC,UAAU,EAAE,MAAM,CAAC,UAAU;aAC9B,CAAC;QACJ,CAAC;QAED,IAAI,OAAO,CAAC,MAAM,KAAK,GAAG,IAAI,OAAO,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC;YACrD,MAAM,MAAM,GAAG,CAAC,MAAM,OAAO;iBAC1B,IAAI,EAAE;iBACN,KAAK,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,CAA+B,CAAC;YAEpD,IAAI,MAAM,EAAE,MAAM,KAAK,SAAS,EAAE,CAAC;gBACjC,MAAM,IAAI,KAAK,CAAC,0CAA0C,CAAC,CAAC;YAC9D,CAAC;YAED,SAAS;QACX,CAAC;QAED,IAAI,OAAO,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC;YAC3B,SAAS;QACX,CAAC;QAED,IAAI,CAAC,OAAO,CAAC,EAAE,EAAE,CAAC;YAChB,MAAM,IAAI,KAAK,CAAC,gBAAgB,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;QACpD,CAAC;IACH,CAAC;IAED,MAAM,IAAI,KAAK,CAAC,4CAA4C,CAAC,CAAC;AAChE,CAAC"}
|
package/dist/cli/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":"AAuCA,OAAO,EAQL,YAAY,EAIb,MAAM,kBAAkB,CAAC;AAC1B,OAAO,KAAK,EACV,UAAU,EAEV,gBAAgB,EAEhB,SAAS,EACT,YAAY,EACb,MAAM,sBAAsB,CAAC;AAC9B,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":"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"}
|
package/dist/cli/index.js
CHANGED
|
@@ -29,12 +29,12 @@ const vanaPromptTheme = {
|
|
|
29
29
|
import { createConnectRenderer, createHumanRenderer, formatDisplayPath, formatRelativeTime, } from "./render/index.js";
|
|
30
30
|
import { CliOutcomeStatus, migrateLegacyDataHome, getBrowserProfilesDir, getConnectorCacheDir, getLogsDir, getSessionsDir, getSourceResultPath, readCliState, readCliConfig, updateCliConfig, updateSourceState, } from "../core/index.js";
|
|
31
31
|
import { fetchConnectorToCache, listAvailableSources, readCachedConnectorMetadata, } from "../connectors/registry.js";
|
|
32
|
-
import { detectPersonalServerTarget, ingestResult, } from "../personal-server/index.js";
|
|
32
|
+
import { detectPersonalServerTarget, ingestResult, resolvePersonalServerAuthConfig, } from "../personal-server/index.js";
|
|
33
33
|
import { findDataConnectorsDir, ManagedPlaywrightRuntime, } from "../runtime/index.js";
|
|
34
34
|
import { listAvailableSkills, installSkill, readInstalledSkills, } from "../skills/index.js";
|
|
35
35
|
import { queryStatus, querySources, queryDataList, queryDataShow, queryDoctor, } from "./queries.js";
|
|
36
36
|
import { checkForUpdate, readUpdateCheck, isNewerVersion, } from "./update-check.js";
|
|
37
|
-
import { loadCredentials, saveCredentials, clearCredentials, isExpired, formatAddress, formatExpiresIn, runDeviceCodeFlow, } from "./auth.js";
|
|
37
|
+
import { loadCredentials, saveCredentials, clearCredentials, isExpired, formatAddress, formatExpiresIn, getAuthTarget, resolvePersonalServerUrl, runDeviceCodeFlow, runSelfHostedLoginFlow, } from "./auth.js";
|
|
38
38
|
function cleanDescription(desc) {
|
|
39
39
|
return desc
|
|
40
40
|
.replace(/ using Playwright browser automation\.?/i, ".")
|
|
@@ -334,9 +334,10 @@ Examples:
|
|
|
334
334
|
});
|
|
335
335
|
program
|
|
336
336
|
.command("login")
|
|
337
|
-
.description("Log in to your Vana account")
|
|
338
|
-
.
|
|
339
|
-
|
|
337
|
+
.description("Log in to your Vana account or a self-hosted Personal Server")
|
|
338
|
+
.option("-s, --server <url>", "Self-hosted Personal Server URL")
|
|
339
|
+
.action(async (loginOptions) => {
|
|
340
|
+
process.exitCode = await runLogin(parsedOptions, loginOptions.server);
|
|
340
341
|
});
|
|
341
342
|
program
|
|
342
343
|
.command("logout")
|
|
@@ -1236,8 +1237,18 @@ async function runStatus(options) {
|
|
|
1236
1237
|
const displayName = displaySource(sourceId, sourceLabels);
|
|
1237
1238
|
const sourceStatus = status.sources.find((s) => s.source === sourceId);
|
|
1238
1239
|
const sourceOverdue = sourceStatus?.isOverdue ?? false;
|
|
1239
|
-
const
|
|
1240
|
-
|
|
1240
|
+
const dataState = stored?.dataState;
|
|
1241
|
+
// Show worst of connectionHealth and dataState
|
|
1242
|
+
let healthLabel;
|
|
1243
|
+
let healthTone;
|
|
1244
|
+
if (dataState === "ingest_failed") {
|
|
1245
|
+
healthLabel = "sync failed";
|
|
1246
|
+
healthTone = "warning";
|
|
1247
|
+
}
|
|
1248
|
+
else {
|
|
1249
|
+
healthTone = sourceOverdue ? "warning" : toneForHealth(health);
|
|
1250
|
+
healthLabel = health === "needs_reauth" ? "needs login" : health;
|
|
1251
|
+
}
|
|
1241
1252
|
const staleTag = sourceOverdue
|
|
1242
1253
|
? ` ${emit.badge("stale", "warning")}`
|
|
1243
1254
|
: "";
|
|
@@ -1245,7 +1256,11 @@ async function runStatus(options) {
|
|
|
1245
1256
|
? `collected ${formatRelativeTime(stored.lastCollectedAt)}`
|
|
1246
1257
|
: "";
|
|
1247
1258
|
emit.keyValue(` ${displayName}`, `${healthLabel}${staleTag} ${collectedAgo}`, healthTone);
|
|
1248
|
-
if (
|
|
1259
|
+
if (dataState === "ingest_failed") {
|
|
1260
|
+
const errMsg = stored?.lastError ?? "sync failed";
|
|
1261
|
+
emit.detail(` \u21b3 ${errMsg}. Run \`vana connect ${sourceId}\``);
|
|
1262
|
+
}
|
|
1263
|
+
else if ((health === "needs_reauth" || health === "error") &&
|
|
1249
1264
|
stored?.connectionHealthReason) {
|
|
1250
1265
|
const msg = formatHealthMessage(stored.connectionHealthReason);
|
|
1251
1266
|
const ago = stored.connectionHealthChangedAt
|
|
@@ -2153,7 +2168,10 @@ async function runServerData(scope, options) {
|
|
|
2153
2168
|
if (target.state === "available" && target.url) {
|
|
2154
2169
|
try {
|
|
2155
2170
|
const { createPersonalServerClient: createClient } = await import("../personal-server/client.js");
|
|
2156
|
-
const client = createClient({
|
|
2171
|
+
const client = createClient({
|
|
2172
|
+
url: target.url,
|
|
2173
|
+
auth: resolvePersonalServerAuthConfig(target.url),
|
|
2174
|
+
});
|
|
2157
2175
|
remoteScopes = await client.listScopes(scope);
|
|
2158
2176
|
}
|
|
2159
2177
|
catch (err) {
|
|
@@ -2947,6 +2965,11 @@ export function getSourceStatusPresentation(source) {
|
|
|
2947
2965
|
if (!source.installed && !source.lastRunOutcome) {
|
|
2948
2966
|
return { label: "not connected", tone: "muted" };
|
|
2949
2967
|
}
|
|
2968
|
+
// Check dataState before early-returning on missing lastRunOutcome —
|
|
2969
|
+
// ingest can fail even when lastRunOutcome is unset
|
|
2970
|
+
if (source.dataState === "ingest_failed") {
|
|
2971
|
+
return { label: "sync failed", tone: "error" };
|
|
2972
|
+
}
|
|
2950
2973
|
if (!source.lastRunOutcome) {
|
|
2951
2974
|
return { label: "installed", tone: "success" };
|
|
2952
2975
|
}
|
|
@@ -2979,9 +3002,6 @@ export function getSourceStatusPresentation(source) {
|
|
|
2979
3002
|
if (source.dataState === "collected_local") {
|
|
2980
3003
|
return { label: "local", tone: "muted" };
|
|
2981
3004
|
}
|
|
2982
|
-
if (source.dataState === "ingest_failed") {
|
|
2983
|
-
return { label: "sync failed", tone: "error" };
|
|
2984
|
-
}
|
|
2985
3005
|
return { label: "connected", tone: "success" };
|
|
2986
3006
|
}
|
|
2987
3007
|
export function toneForRuntime(runtime) {
|
|
@@ -3084,6 +3104,9 @@ export function rankSourceStatus(source) {
|
|
|
3084
3104
|
if (source.lastRunOutcome === CliOutcomeStatus.CONNECTOR_UNAVAILABLE) {
|
|
3085
3105
|
return 4;
|
|
3086
3106
|
}
|
|
3107
|
+
if (source.dataState === "ingest_failed") {
|
|
3108
|
+
return 2;
|
|
3109
|
+
}
|
|
3087
3110
|
if (source.dataState === "ingested_personal_server") {
|
|
3088
3111
|
return 5;
|
|
3089
3112
|
}
|
|
@@ -3975,7 +3998,59 @@ async function runSkillShow(name, options) {
|
|
|
3975
3998
|
}
|
|
3976
3999
|
}
|
|
3977
4000
|
// ── Login / Logout ─────────────────────────────────────────────────────
|
|
3978
|
-
async function runLogin(options) {
|
|
4001
|
+
async function runLogin(options, serverUrl) {
|
|
4002
|
+
// Determine auth target: cloud (account.vana.org) or self-hosted (PS directly)
|
|
4003
|
+
const psUrl = serverUrl ?? resolvePersonalServerUrl() ?? null;
|
|
4004
|
+
const authTarget = getAuthTarget(psUrl);
|
|
4005
|
+
// If self-hosted, use /auth/device flow against the PS
|
|
4006
|
+
if (authTarget === "self-hosted" && psUrl) {
|
|
4007
|
+
const emit = createEmitter(options);
|
|
4008
|
+
emit.blank();
|
|
4009
|
+
emit.info(` Logging in to ${psUrl}...`);
|
|
4010
|
+
emit.blank();
|
|
4011
|
+
try {
|
|
4012
|
+
const result = await runSelfHostedLoginFlow(psUrl, (url) => {
|
|
4013
|
+
emit.info(` ! Open this URL in your browser:`);
|
|
4014
|
+
emit.info(` ${url}`);
|
|
4015
|
+
emit.blank();
|
|
4016
|
+
emit.info(` Waiting for authorization...`);
|
|
4017
|
+
// Try to open browser — use spawn with args array to prevent shell injection
|
|
4018
|
+
// (a malicious self-hosted PS could return a URL with shell metacharacters)
|
|
4019
|
+
try {
|
|
4020
|
+
const { spawn } = require("node:child_process");
|
|
4021
|
+
const opener = process.platform === "darwin"
|
|
4022
|
+
? "open"
|
|
4023
|
+
: process.platform === "win32"
|
|
4024
|
+
? "start"
|
|
4025
|
+
: "xdg-open";
|
|
4026
|
+
spawn(opener, [url], { detached: true, stdio: "ignore" }).unref();
|
|
4027
|
+
}
|
|
4028
|
+
catch {
|
|
4029
|
+
// Browser open failed — user will open manually
|
|
4030
|
+
}
|
|
4031
|
+
});
|
|
4032
|
+
await saveCredentials({
|
|
4033
|
+
account: {
|
|
4034
|
+
address: result.address,
|
|
4035
|
+
session_token: "",
|
|
4036
|
+
expires_at: result.expires_at,
|
|
4037
|
+
},
|
|
4038
|
+
personal_server: {
|
|
4039
|
+
url: psUrl,
|
|
4040
|
+
access_token: result.access_token,
|
|
4041
|
+
expires_at: result.expires_at,
|
|
4042
|
+
},
|
|
4043
|
+
});
|
|
4044
|
+
emit.success(`Logged in to ${psUrl}`);
|
|
4045
|
+
emit.success(`Credentials saved to ~/.vana/auth.json`);
|
|
4046
|
+
return 0;
|
|
4047
|
+
}
|
|
4048
|
+
catch (err) {
|
|
4049
|
+
emit.info(` ✗ Login failed: ${err instanceof Error ? err.message : String(err)}`);
|
|
4050
|
+
return 1;
|
|
4051
|
+
}
|
|
4052
|
+
}
|
|
4053
|
+
// Cloud flow (account.vana.org)
|
|
3979
4054
|
// Check env var shortcut
|
|
3980
4055
|
const envToken = process.env.VANA_SESSION_TOKEN;
|
|
3981
4056
|
if (envToken) {
|
|
@@ -4077,6 +4152,22 @@ async function runLogin(options) {
|
|
|
4077
4152
|
return creds ? 0 : 1;
|
|
4078
4153
|
}
|
|
4079
4154
|
async function runLogout(options) {
|
|
4155
|
+
// Revoke the token server-side before clearing local credentials
|
|
4156
|
+
const creds = loadCredentials();
|
|
4157
|
+
if (creds?.personal_server?.url && creds.personal_server.access_token) {
|
|
4158
|
+
try {
|
|
4159
|
+
await fetch(`${creds.personal_server.url.replace(/\/$/, "")}/auth/device/token`, {
|
|
4160
|
+
method: "DELETE",
|
|
4161
|
+
headers: {
|
|
4162
|
+
Authorization: `Bearer ${creds.personal_server.access_token}`,
|
|
4163
|
+
},
|
|
4164
|
+
signal: AbortSignal.timeout(5000),
|
|
4165
|
+
});
|
|
4166
|
+
}
|
|
4167
|
+
catch {
|
|
4168
|
+
// Best-effort — server may be down, but we still clear local creds
|
|
4169
|
+
}
|
|
4170
|
+
}
|
|
4080
4171
|
await clearCredentials();
|
|
4081
4172
|
if (options.json) {
|
|
4082
4173
|
process.stdout.write(`${JSON.stringify({ status: "logged_out" })}\n`);
|