@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.
Files changed (2) hide show
  1. package/dist/prompt.js +14 -9
  2. 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(`<html><body style="font-family:sans-serif"><h2>${msg}</h2><p>You can close this tab and return to the terminal.</p></body></html>`);
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)
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@addorimprove/prompt",
3
- "version": "0.1.0",
3
+ "version": "0.1.2",
4
4
  "type": "module",
5
5
  "bin": { "prompt": "dist/prompt.js" },
6
6
  "files": ["dist"],