From 06c30b8af28a86eef8691ff53bbc71b55cad7ac5 Mon Sep 17 00:00:00 2001 From: Jesse Wierzbinski Date: Tue, 7 May 2024 07:41:02 +0000 Subject: [PATCH] feat(cli): :recycle: Begin new CLI rewrite with oclif --- .gitignore | 3 +- bun.lockb | Bin 159180 -> 334236 bytes drizzle/db.ts | 12 ++- package.json | 2 +- packages/cli/base.ts | 14 ++++ packages/cli/bin/dev.cmd | 3 + packages/cli/bin/dev.ts | 5 ++ packages/cli/bin/run.cmd | 3 + packages/cli/bin/run.ts | 5 ++ packages/cli/classes.ts | 96 ++++++++++++++++++++++ packages/cli/commands/user/delete.ts | 90 +++++++++++++++++++++ packages/cli/commands/user/list.ts | 83 +++++++++++++++++++ packages/cli/commands/user/reset.ts | 114 +++++++++++++++++++++++++++ packages/cli/index.ts | 9 +++ packages/cli/package.json | 40 ++++++++++ packages/cli/theme.json | 15 ++++ packages/cli/utils/format.ts | 70 ++++++++++++++++ packages/config-manager/package.json | 5 +- packages/database-interface/user.ts | 6 ++ tsconfig.json | 3 +- utils/loggers.ts | 2 +- 21 files changed, 569 insertions(+), 11 deletions(-) create mode 100644 packages/cli/base.ts create mode 100644 packages/cli/bin/dev.cmd create mode 100755 packages/cli/bin/dev.ts create mode 100644 packages/cli/bin/run.cmd create mode 100755 packages/cli/bin/run.ts create mode 100644 packages/cli/classes.ts create mode 100644 packages/cli/commands/user/delete.ts create mode 100644 packages/cli/commands/user/list.ts create mode 100644 packages/cli/commands/user/reset.ts create mode 100644 packages/cli/index.ts create mode 100644 packages/cli/package.json create mode 100644 packages/cli/theme.json create mode 100644 packages/cli/utils/format.ts diff --git a/.gitignore b/.gitignore index 0f8796c3..3d9df006 100644 --- a/.gitignore +++ b/.gitignore @@ -179,4 +179,5 @@ glitch-old glitch glitch.tar.gz glitch-dev -*.pem \ No newline at end of file +*.pem +oclif.manifest.json \ No newline at end of file diff --git a/bun.lockb b/bun.lockb index bcb09639b5b9ab0c516067c83e7d7bcbf264c57b..d79453ac630b5929a183ce5884b4f43c512d2543 100755 GIT binary patch literal 334236 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�Z!;LZg7XD^+`az_>& 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 &e}ZuuOSVU03t)_XFA= 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 X`T;vV{@lg)pLX!}m!io3Rsa4!V0fsZ delta 28940 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 diff --git a/drizzle/db.ts b/drizzle/db.ts index 2de45337..485bba4c 100644 --- a/drizzle/db.ts +++ b/drizzle/db.ts @@ -1,4 +1,4 @@ -import { config } from "config-manager"; +import { config } from "~/packages/config-manager"; import { drizzle } from "drizzle-orm/node-postgres"; import { migrate } from "drizzle-orm/postgres-js/migrator"; import { LogLevel, type LogManager, type MultiLogManager } from "log-manager"; @@ -13,7 +13,10 @@ export const client = new Client({ database: config.database.database, }); -export const setupDatabase = async (logger: LogManager | MultiLogManager) => { +export const setupDatabase = async ( + logger: LogManager | MultiLogManager, + info = true, +) => { try { await client.connect(); } catch (e) { @@ -28,7 +31,8 @@ export const setupDatabase = async (logger: LogManager | MultiLogManager) => { } // Migrate the database - await logger.log(LogLevel.INFO, "Database", "Migrating database..."); + info && + (await logger.log(LogLevel.INFO, "Database", "Migrating database...")); try { await migrate(db, { @@ -44,7 +48,7 @@ export const setupDatabase = async (logger: LogManager | MultiLogManager) => { process.exit(1); } - await logger.log(LogLevel.INFO, "Database", "Database migrated"); + info && (await logger.log(LogLevel.INFO, "Database", "Database migrated")); }; export const db = drizzle(client, { schema }); diff --git a/package.json b/package.json index 752e6767..c746cfbd 100644 --- a/package.json +++ b/package.json @@ -35,7 +35,7 @@ "build": "bun run build.ts", "cloc": "cloc . --exclude-dir node_modules,dist,.output,.nuxt,meta,logs,glitch,glitch-dev --exclude-ext sql,log,pem", "wc": "find server database *.ts docs packages types utils drizzle tests -type f -print0 | wc -m --files0-from=-", - "cli": "bun run cli.ts", + "cli": "bun run packages/cli/bin/run.ts", "prune": "ts-prune | grep -v server/ | grep -v dist/ | grep -v '(used in module)'" }, "trustedDependencies": [ diff --git a/packages/cli/base.ts b/packages/cli/base.ts new file mode 100644 index 00000000..b01bd5be --- /dev/null +++ b/packages/cli/base.ts @@ -0,0 +1,14 @@ +import { Command } from "@oclif/core"; + +export abstract class BaseCommand extends Command { + protected async init(): Promise { + await super.init(); + + const { setupDatabase } = await import("~drizzle/db"); + const { consoleLogger } = await import("@loggers"); + + (async () => { + await setupDatabase(consoleLogger, false); + })(); + } +} diff --git a/packages/cli/bin/dev.cmd b/packages/cli/bin/dev.cmd new file mode 100644 index 00000000..af5277ed --- /dev/null +++ b/packages/cli/bin/dev.cmd @@ -0,0 +1,3 @@ +@echo off + +bun "%~dp0\dev" %* diff --git a/packages/cli/bin/dev.ts b/packages/cli/bin/dev.ts new file mode 100755 index 00000000..9f0c6d5d --- /dev/null +++ b/packages/cli/bin/dev.ts @@ -0,0 +1,5 @@ +#!/usr/bin/env -S bun + +import { execute } from "@oclif/core"; + +await execute({ development: true, dir: import.meta.url }); diff --git a/packages/cli/bin/run.cmd b/packages/cli/bin/run.cmd new file mode 100644 index 00000000..fbb3ae58 --- /dev/null +++ b/packages/cli/bin/run.cmd @@ -0,0 +1,3 @@ +@echo off + +bun "%~dp0\run" %* diff --git a/packages/cli/bin/run.ts b/packages/cli/bin/run.ts new file mode 100755 index 00000000..bce9512c --- /dev/null +++ b/packages/cli/bin/run.ts @@ -0,0 +1,5 @@ +#!/usr/bin/env bun + +import { execute } from "@oclif/core"; + +await execute({ dir: import.meta.url }); diff --git a/packages/cli/classes.ts b/packages/cli/classes.ts new file mode 100644 index 00000000..65028645 --- /dev/null +++ b/packages/cli/classes.ts @@ -0,0 +1,96 @@ +import { and, eq, like } from "drizzle-orm"; +import { Users } from "~drizzle/schema"; +import type { User } from "~packages/database-interface/user"; +import { BaseCommand } from "./base"; +import { Args, Flags, type Command, type Interfaces } from "@oclif/core"; + +export type FlagsType = Interfaces.InferredFlags< + (typeof BaseCommand)["baseFlags"] & T["flags"] +>; +export type ArgsType = Interfaces.InferredArgs< + T["args"] +>; + +export abstract class UserFinderCommand< + T extends typeof BaseCommand, +> extends BaseCommand { + static baseFlags = { + pattern: Flags.boolean({ + char: "p", + description: + "Process as a wildcard pattern (don't forget to escape)", + }), + type: Flags.string({ + char: "t", + description: "Type of identifier", + options: ["id", "username", "note", "display-name", "email"], + default: "id", + }), + limit: Flags.integer({ + char: "n", + description: "Limit the number of users", + default: 100, + }), + print: Flags.boolean({ + allowNo: true, + default: true, + char: "P", + description: "Print user(s) found before processing", + }), + }; + + static baseArgs = { + identifier: Args.string({ + description: + "Identifier of the user (by default this must be an ID)", + required: true, + }), + }; + + protected flags!: FlagsType; + protected args!: ArgsType; + + public async init(): Promise { + await super.init(); + const { args, flags } = await this.parse({ + flags: this.ctor.flags, + baseFlags: (super.ctor as typeof BaseCommand).baseFlags, + args: this.ctor.args, + strict: this.ctor.strict, + }); + this.flags = flags as FlagsType; + this.args = args as ArgsType; + } + + public async findUsers(): Promise { + const operator = this.flags.pattern ? like : eq; + // Replace wildcards with an SQL LIKE pattern + const identifier = this.flags.pattern + ? this.args.identifier.replace(/\*/g, "%") + : this.args.identifier; + + const { User } = await import("~packages/database-interface/user"); + + return await User.manyFromSql( + and( + this.flags.type === "id" + ? operator(Users.id, identifier) + : undefined, + this.flags.type === "username" + ? operator(Users.username, identifier) + : undefined, + this.flags.type === "note" + ? operator(Users.note, identifier) + : undefined, + this.flags.type === "display-name" + ? operator(Users.displayName, identifier) + : undefined, + this.flags.type === "email" + ? operator(Users.email, identifier) + : undefined, + ), + undefined, + this.flags.limit, + ); + } +} diff --git a/packages/cli/commands/user/delete.ts b/packages/cli/commands/user/delete.ts new file mode 100644 index 00000000..c4c6eef5 --- /dev/null +++ b/packages/cli/commands/user/delete.ts @@ -0,0 +1,90 @@ +import { Flags } from "@oclif/core"; +import chalk from "chalk"; +import { formatArray } from "~packages/cli/utils/format"; +import confirm from "@inquirer/confirm"; +import ora from "ora"; +import { UserFinderCommand } from "~packages/cli/classes"; + +export default class UserDelete extends UserFinderCommand { + static override description = "Deletes users"; + + static override examples = [ + "<%= config.bin %> <%= command.id %> johngastron --type username", + "<%= config.bin %> <%= command.id %> 018ec11c-c6cb-7a67-bd20-a4c81bf42912", + '<%= config.bin %> <%= command.id %> "*badword*" --pattern --type username', + ]; + + static override flags = { + confirm: Flags.boolean({ + description: + "Ask for confirmation before deleting the user (default yes)", + allowNo: true, + default: true, + }), + }; + + static override args = { + identifier: UserFinderCommand.baseArgs.identifier, + }; + + public async run(): Promise { + const { flags, args } = await this.parse(UserDelete); + + const users = await this.findUsers(); + + if (!users || users.length === 0) { + this.log(chalk.bold(`${chalk.red("✗")} No users found`)); + this.exit(1); + } + + // Display user + flags.print && + this.log( + chalk.bold( + `${chalk.green("✓")} Found ${chalk.green( + users.length, + )} user(s)`, + ), + ); + + flags.print && + this.log( + formatArray( + users.map((u) => u.getUser()), + [ + "id", + "username", + "displayName", + "createdAt", + "updatedAt", + "isAdmin", + ], + ), + ); + + if (flags.confirm) { + const choice = await confirm({ + message: `Are you sure you want to delete these users? ${chalk.red( + "This is irreversible.", + )}`, + }); + + if (!choice) { + this.log(chalk.bold(`${chalk.red("✗")} Aborted operation`)); + return this.exit(1); + } + } + + const spinner = ora("Deleting user(s)").start(); + + for (const user of users) { + await user.delete(); + } + + spinner.stop(); + + this.log(chalk.bold(`${chalk.green("✓")} User(s) deleted`)); + + this.exit(0); + } +} diff --git a/packages/cli/commands/user/list.ts b/packages/cli/commands/user/list.ts new file mode 100644 index 00000000..e988a9ff --- /dev/null +++ b/packages/cli/commands/user/list.ts @@ -0,0 +1,83 @@ +import { Flags } from "@oclif/core"; +import { and, eq, isNotNull, isNull } from "drizzle-orm"; +import { Users } from "~drizzle/schema"; +import { BaseCommand } from "~packages/cli/base"; +import { formatArray } from "~packages/cli/utils/format"; +import { User } from "~packages/database-interface/user"; + +export default class UserList extends BaseCommand { + static override args = {}; + + static override description = "List all users"; + + static override examples = [ + "<%= config.bin %> <%= command.id %> --format json --local", + "<%= config.bin %> <%= command.id %>", + ]; + + static override flags = { + format: Flags.string({ + char: "f", + description: "Output format", + options: ["json", "csv"], + }), + local: Flags.boolean({ + char: "l", + description: "Local users only", + exclusive: ["remote"], + }), + remote: Flags.boolean({ + char: "r", + description: "Remote users only", + exclusive: ["local"], + }), + limit: Flags.integer({ + char: "n", + description: "Limit the number of users", + default: 200, + }), + admin: Flags.boolean({ + char: "a", + description: "Admin users only", + allowNo: true, + }), + "pretty-dates": Flags.boolean({ + char: "p", + description: "Pretty print dates", + }), + }; + + public async run(): Promise { + const { flags } = await this.parse(UserList); + + const users = await User.manyFromSql( + and( + flags.local ? isNull(Users.instanceId) : undefined, + flags.remote ? isNotNull(Users.instanceId) : undefined, + flags.admin ? eq(Users.isAdmin, flags.admin) : undefined, + ), + undefined, + flags.limit, + ); + + const keys = [ + "id", + "username", + "displayName", + "createdAt", + "updatedAt", + "isAdmin", + ]; + + this.log( + formatArray( + users.map((u) => u.getUser()), + keys, + flags.format as "json" | "csv" | undefined, + flags["pretty-dates"], + ), + ); + + this.exit(0); + } +} diff --git a/packages/cli/commands/user/reset.ts b/packages/cli/commands/user/reset.ts new file mode 100644 index 00000000..02cf873e --- /dev/null +++ b/packages/cli/commands/user/reset.ts @@ -0,0 +1,114 @@ +import { Flags } from "@oclif/core"; +import chalk from "chalk"; +import { formatArray } from "~packages/cli/utils/format"; +import confirm from "@inquirer/confirm"; +import { renderUnicodeCompact } from "uqr"; +import { UserFinderCommand } from "~packages/cli/classes"; + +export default class UserReset extends UserFinderCommand { + static override description = "Resets users' passwords"; + + static override examples = [ + "<%= config.bin %> <%= command.id %> johngastron --type username", + "<%= config.bin %> <%= command.id %> 018ec11c-c6cb-7a67-bd20-a4c81bf42912", + ]; + + static override flags = { + confirm: Flags.boolean({ + description: + "Ask for confirmation before deleting the user (default yes)", + allowNo: true, + default: true, + }), + limit: Flags.integer({ + char: "n", + description: "Limit the number of users", + default: 1, + }), + raw: Flags.boolean({ + description: + "Only output the password reset link (implies --no-print and --no-confirm)", + }), + }; + + static override args = { + identifier: UserFinderCommand.baseArgs.identifier, + }; + + public async run(): Promise { + const { flags, args } = await this.parse(UserReset); + + const users = await this.findUsers(); + + if (!users || users.length === 0) { + this.log(chalk.bold(`${chalk.red("✗")} No users found`)); + this.exit(1); + } + + // Display user + !flags.raw && + this.log( + chalk.bold( + `${chalk.green("✓")} Found ${chalk.green( + users.length, + )} user(s)`, + ), + ); + + !flags.raw && + flags.print && + this.log( + formatArray( + users.map((u) => u.getUser()), + [ + "id", + "username", + "displayName", + "createdAt", + "updatedAt", + "isAdmin", + ], + ), + ); + + if (flags.confirm && !flags.raw) { + const choice = await confirm({ + message: `Reset these users's passwords? ${chalk.red( + "This is irreversible.", + )}`, + }); + + if (!choice) { + this.log(chalk.bold(`${chalk.red("✗")} Aborted operation`)); + return this.exit(1); + } + } + + const link = "https://example.com/reset-password"; + + !flags.raw && + this.log( + `${chalk.green("✓")} Password reset for ${ + users.length + } user(s)`, + ); + + this.log( + flags.raw + ? link + : `\nPassword reset link for ${chalk.bold( + "@testuser", + )}: ${chalk.underline(chalk.blue(link))}\n`, + ); + + const qrcode = renderUnicodeCompact(link, { + border: 2, + }); + + // Pad all lines of QR code with spaces + + !flags.raw && this.log(` ${qrcode.replaceAll("\n", "\n ")}`); + + this.exit(0); + } +} diff --git a/packages/cli/index.ts b/packages/cli/index.ts new file mode 100644 index 00000000..ff4eec50 --- /dev/null +++ b/packages/cli/index.ts @@ -0,0 +1,9 @@ +/* import { Command } from "@oclif/core"; +import UserList from "./commands/user/list"; +import UserDelete from "./commands/user/delete"; + +export const commands = { + "user list": UserList, + "user delete": UserDelete, +}; + */ diff --git a/packages/cli/package.json b/packages/cli/package.json new file mode 100644 index 00000000..712e0e09 --- /dev/null +++ b/packages/cli/package.json @@ -0,0 +1,40 @@ +{ + "name": "cli", + "version": "0.0.0", + "type": "module", + "dependencies": { + "@inquirer/confirm": "^3.1.6", + "@oclif/core": "^3.26.6", + "@oclif/plugin-help": "^6.0.21", + "@oclif/plugin-plugins": "^5.0.19", + "chalk": "^5.3.0", + "cli-progress": "^3.12.0", + "ora": "^8.0.1", + "table": "^6.8.2", + "uqr": "^0.1.2" + }, + "devDependencies": { + "@types/cli-progress": "^3.11.5", + "oclif": "^4.10.4" + }, + "oclif": { + "bin": "cli", + "dirname": "cli", + "commands": { + "strategy": "pattern", + "target": "./commands" + }, + "additionalHelpFlags": ["-h"], + "additionalVersionFlags": ["-v"], + "plugins": ["@oclif/plugin-help"], + "description": "CLI to interface with the Lysand project", + "topicSeparator": " ", + "topics": { + "user": { + "description": "Manage users" + } + }, + "theme": "./theme.json", + "flexibleTaxonomy": true + } +} diff --git a/packages/cli/theme.json b/packages/cli/theme.json new file mode 100644 index 00000000..4d77c5ec --- /dev/null +++ b/packages/cli/theme.json @@ -0,0 +1,15 @@ +{ + "bin": "white", + "command": "cyan", + "commandSummary": "white", + "dollarSign": "white", + "flag": "white", + "flagDefaultValue": "blue", + "flagOptions": "white", + "flagRequired": "red", + "flagSeparator": "white", + "sectionDescription": "white", + "sectionHeader": "underline", + "topic": "white", + "version": "green" +} diff --git a/packages/cli/utils/format.ts b/packages/cli/utils/format.ts new file mode 100644 index 00000000..c329c988 --- /dev/null +++ b/packages/cli/utils/format.ts @@ -0,0 +1,70 @@ +import chalk from "chalk"; +import { getBorderCharacters, table } from "table"; + +/** + * Given a JS array, return a string output to be passed to console.log + * @param arr The array to be formatted + * @param keys The keys to be displayed (removes all other keys from the output) + * @param type Either "json", "csv" or nothing for a table + * @returns The formatted string + */ +export const formatArray = ( + arr: Record[], + keys: string[], + type?: "json" | "csv", + prettyDates = false, +): string => { + const output = arr.map((item) => { + const newItem = {} as Record; + + for (const key of keys) { + newItem[key] = item[key]; + } + + return newItem; + }); + + if (prettyDates) { + for (const item of output) { + for (const key of keys) { + const value = item[key]; + // If this is an ISO string, convert it to a nice date + if ( + typeof value === "string" && + value.match(/^\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2}.\d{3}$/) + ) { + item[key] = Intl.DateTimeFormat(undefined, { + year: "numeric", + month: "short", + day: "2-digit", + hour: "2-digit", + minute: "2-digit", + second: "2-digit", + }).format(new Date(value)); + // Format using Chalk + item[key] = chalk.underline(item[key]); + } + } + } + } + + switch (type) { + case "json": + return JSON.stringify(output, null, 2); + case "csv": + return `${keys.join(",")}\n${output + .map((item) => keys.map((key) => item[key]).join(",")) + .join("\n")}`; + default: + // Convert output to array of arrays for table + return table( + [ + keys.map((k) => chalk.bold(k)), + ...output.map((item) => keys.map((key) => item[key])), + ], + { + border: getBorderCharacters("norc"), + }, + ); + } +}; diff --git a/packages/config-manager/package.json b/packages/config-manager/package.json index 97c2dac6..28fbe8c5 100644 --- a/packages/config-manager/package.json +++ b/packages/config-manager/package.json @@ -2,9 +2,8 @@ "name": "config-manager", "version": "0.0.0", "main": "index.ts", + "type": "module", "dependencies": { - "@iarna/toml": "^2.2.5", - "c12": "^1.10.0", - "merge-deep-ts": "^1.2.6" + "c12": "^1.10.0" } } diff --git a/packages/database-interface/user.ts b/packages/database-interface/user.ts index 264c857c..0ffb5c54 100644 --- a/packages/database-interface/user.ts +++ b/packages/database-interface/user.ts @@ -144,6 +144,12 @@ export class User { )[0].count; } + async delete() { + return ( + await db.delete(Users).where(eq(Users.id, this.id)).returning() + )[0]; + } + async pin(note: Note) { return ( await db diff --git a/tsconfig.json b/tsconfig.json index ae93c9d7..f180cbe8 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -35,6 +35,7 @@ "*.d.ts", "**/*.ts", "**/*.d.ts", - "server/api/well-known/**/*.ts" + "server/api/well-known/**/*.ts", + "packages/cli/index.mts" ] } diff --git a/utils/loggers.ts b/utils/loggers.ts index af76f102..e0f4a557 100644 --- a/utils/loggers.ts +++ b/utils/loggers.ts @@ -1,4 +1,4 @@ -import { config } from "config-manager"; +import { config } from "~packages/config-manager"; import { LogManager, MultiLogManager } from "log-manager"; const noColors = process.env.NO_COLORS === "true";