From 84468c3ee5ef9bc2689446b2ccefccf39962837b Mon Sep 17 00:00:00 2001 From: Anshgrover23 Date: Sat, 18 Jan 2025 15:08:28 +0530 Subject: [PATCH 1/2] follow pattern --- cli/auth/login/register.ts | 110 ++++++++++++++++++++----------------- package.json | 2 +- 2 files changed, 61 insertions(+), 51 deletions(-) diff --git a/cli/auth/login/register.ts b/cli/auth/login/register.ts index 21ca6dd..568041e 100644 --- a/cli/auth/login/register.ts +++ b/cli/auth/login/register.ts @@ -5,56 +5,27 @@ import { getKy } from "lib/registry-api/get-ky" import type { EndpointResponse } from "lib/registry-api/endpoint-types" export const registerAuthLogin = (program: Command) => { - program.commands - .find((c) => c.name() === "auth")! - .command("login") - .description("Authenticate CLI, login to registry") - .action(async (args) => { - const ky = getKy() + // Define the login action once to share between both commands + const loginAction = async () => { + const ky = getKy() - const { login_page } = await ky - .post( - "sessions/login_page/create", - { - json: {}, - }, - ) - .json() + const { login_page } = await ky + .post( + "sessions/login_page/create", + { + json: {}, + }, + ) + .json() - console.log("Please visit the following URL to log in:") - console.log(login_page.url) + console.log("Please visit the following URL to log in:") + console.log(login_page.url) - // Wait until we receive confirmation - while (true) { - const { login_page: new_login_page } = await ky - .post( - "sessions/login_page/get", - { - json: { - login_page_id: login_page.login_page_id, - }, - headers: { - Authorization: `Bearer ${login_page.login_page_auth_token}`, - }, - }, - ) - .json() - - if (new_login_page.was_login_successful) { - console.log("Logged in! Generating token...") - break - } - - if (new_login_page.is_expired) { - throw new Error("Login page expired") - } - - await delay(1000) - } - - const { session } = await ky - .post( - "sessions/login_page/exchange_for_cli_session", + // Wait until we receive confirmation + while (true) { + const { login_page: new_login_page } = await ky + .post( + "sessions/login_page/get", { json: { login_page_id: login_page.login_page_id, @@ -66,8 +37,47 @@ export const registerAuthLogin = (program: Command) => { ) .json() - cliConfig.set("sessionToken", session.token) + if (new_login_page.was_login_successful) { + console.log("Logged in! Generating token...") + break + } - console.log("Ready to use!") - }) + if (new_login_page.is_expired) { + throw new Error("Login page expired") + } + + await delay(1000) + } + + const { session } = await ky + .post( + "sessions/login_page/exchange_for_cli_session", + { + json: { + login_page_id: login_page.login_page_id, + }, + headers: { + Authorization: `Bearer ${login_page.login_page_auth_token}`, + }, + }, + ) + .json() + + cliConfig.set("sessionToken", session.token) + + console.log("Ready to use!") + } + + // Register the auth login subcommand + program.commands + .find((c) => c.name() === "auth")! + .command("login") + .description("Authenticate CLI, login to registry") + .action(loginAction) + + // Register the top-level login command as an alias + program + .command("login") + .description("Alias for 'tsci auth login'") + .action(loginAction) } diff --git a/package.json b/package.json index ce333b8..149a871 100644 --- a/package.json +++ b/package.json @@ -2,7 +2,7 @@ "name": "@tscircuit/cli", "main": "dist/main.js", "type": "module", - "version": "0.1.9", + "version": "0.1.10", "bin": { "tsci": "./dist/main.js" }, From 11a6b85efba2bff725811ffc728956d9f414ee01 Mon Sep 17 00:00:00 2001 From: Ansh Grover <168731971+Anshgrover23@users.noreply.github.com> Date: Sat, 18 Jan 2025 15:14:46 +0530 Subject: [PATCH 2/2] Update register.ts --- cli/auth/login/register.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cli/auth/login/register.ts b/cli/auth/login/register.ts index 568041e..e4b96f7 100644 --- a/cli/auth/login/register.ts +++ b/cli/auth/login/register.ts @@ -78,6 +78,6 @@ export const registerAuthLogin = (program: Command) => { // Register the top-level login command as an alias program .command("login") - .description("Alias for 'tsci auth login'") + .description("Login to tscircuit registry") .action(loginAction) }