@addorimprove/prompt 0.1.0 → 0.1.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/prompt.js +14 -9
- package/package.json +1 -1
package/dist/prompt.js
CHANGED
|
@@ -249,6 +249,11 @@ function buildAuthorizeUrl(p) {
|
|
|
249
249
|
u.searchParams.set("redirect_uri", p.redirectUri);
|
|
250
250
|
return u.toString();
|
|
251
251
|
}
|
|
252
|
+
function renderCallbackPage(msg, redirectTo) {
|
|
253
|
+
const head = redirectTo ? `<meta http-equiv="refresh" content="0;url=${redirectTo}">` : "";
|
|
254
|
+
const tail = redirectTo ? `<p>Redirecting to your dashboard… If nothing happens, <a href="${redirectTo}">continue</a>.</p>` : `<p>You can close this tab and return to the terminal.</p>`;
|
|
255
|
+
return `<!doctype html><html><head><meta charset="utf-8">${head}</head>` + `<body style="font-family:sans-serif"><h2>${msg}</h2>${tail}</body></html>`;
|
|
256
|
+
}
|
|
252
257
|
function parseCallback(reqUrl) {
|
|
253
258
|
const u = new URL(reqUrl, "http://127.0.0.1");
|
|
254
259
|
return {
|
|
@@ -297,9 +302,9 @@ async function login(baseUrlFlag) {
|
|
|
297
302
|
timer.unref();
|
|
298
303
|
const server = createServer((req, res) => {
|
|
299
304
|
const { code: code2, state: gotState, error } = parseCallback(req.url ?? "");
|
|
300
|
-
const finish = (status, msg) => {
|
|
305
|
+
const finish = (status, msg, redirectTo) => {
|
|
301
306
|
res.writeHead(status, { "content-type": "text/html" });
|
|
302
|
-
res.end(
|
|
307
|
+
res.end(renderCallbackPage(msg, redirectTo));
|
|
303
308
|
};
|
|
304
309
|
const fail = (err, status, msg) => {
|
|
305
310
|
finish(status, msg);
|
|
@@ -313,7 +318,7 @@ async function login(baseUrlFlag) {
|
|
|
313
318
|
return fail(new Error("state mismatch"), 400, "State mismatch — aborting.");
|
|
314
319
|
if (!code2)
|
|
315
320
|
return fail(new Error("missing code"), 400, "Missing authorization code.");
|
|
316
|
-
finish(200, "Logged in to Prompt CLI.");
|
|
321
|
+
finish(200, "Logged in to Prompt CLI.", new URL("/", baseUrl).toString());
|
|
317
322
|
clearTimeout(timer);
|
|
318
323
|
server.close();
|
|
319
324
|
resolve({ code: code2, redirectUri: redirectUri2 });
|
|
@@ -345,7 +350,7 @@ async function login(baseUrlFlag) {
|
|
|
345
350
|
saveCredential({ user: me });
|
|
346
351
|
console.log(`Logged in as ${me.name} <${me.email}>.`);
|
|
347
352
|
}
|
|
348
|
-
async function whoami(baseUrlFlag) {
|
|
353
|
+
async function whoami(baseUrlFlag, json = false) {
|
|
349
354
|
const apiKey = resolveApiKey();
|
|
350
355
|
if (!apiKey) {
|
|
351
356
|
console.error("Not logged in. Run 'prompt login'.");
|
|
@@ -354,9 +359,9 @@ async function whoami(baseUrlFlag) {
|
|
|
354
359
|
}
|
|
355
360
|
const client = new ApiClient({ baseUrl: resolveBaseUrl(baseUrlFlag), apiKey });
|
|
356
361
|
const me = await client.getMe();
|
|
357
|
-
console.log(`${me.name} <${me.email}> (id: ${me.id})`);
|
|
362
|
+
console.log(json ? JSON.stringify(me, null, 2) : `${me.name} <${me.email}> (id: ${me.id})`);
|
|
358
363
|
}
|
|
359
|
-
async function logout(baseUrlFlag) {
|
|
364
|
+
async function logout(baseUrlFlag, json = false) {
|
|
360
365
|
const apiKey = resolveApiKey();
|
|
361
366
|
if (apiKey) {
|
|
362
367
|
try {
|
|
@@ -365,7 +370,7 @@ async function logout(baseUrlFlag) {
|
|
|
365
370
|
} catch {}
|
|
366
371
|
}
|
|
367
372
|
clearCredential();
|
|
368
|
-
console.log("Logged out.");
|
|
373
|
+
console.log(json ? JSON.stringify({ loggedOut: true }, null, 2) : "Logged out.");
|
|
369
374
|
}
|
|
370
375
|
|
|
371
376
|
// src/commands.ts
|
|
@@ -394,9 +399,9 @@ async function run(args) {
|
|
|
394
399
|
case "login":
|
|
395
400
|
return login(baseFlag);
|
|
396
401
|
case "logout":
|
|
397
|
-
return logout(baseFlag);
|
|
402
|
+
return logout(baseFlag, json);
|
|
398
403
|
case "whoami":
|
|
399
|
-
return whoami(baseFlag);
|
|
404
|
+
return whoami(baseFlag, json);
|
|
400
405
|
case "ls": {
|
|
401
406
|
const client = requireClient(args.flags);
|
|
402
407
|
if (!client)
|