import Database from 'better-sqlite3'; import bcrypt from 'bcryptjs'; import { mkdirSync } from 'node:fs'; import { dirname } from 'node:path'; const [, , username, password] = process.argv; if (!username || !password) { console.error('Uso: npm run create-user -- '); process.exit(1); } const path = process.env.DB_PATH ?? 'data/insanitylab.db'; mkdirSync(dirname(path), { recursive: true }); const db = new Database(path); db.exec(`CREATE TABLE IF NOT EXISTS users ( id INTEGER PRIMARY KEY AUTOINCREMENT, username TEXT NOT NULL UNIQUE, password_hash TEXT NOT NULL );`); db.prepare( `INSERT INTO users (username, password_hash) VALUES (?, ?) ON CONFLICT(username) DO UPDATE SET password_hash = excluded.password_hash` ).run(username, bcrypt.hashSync(password, 12)); console.log(`Utente "${username}" creato/aggiornato in ${path}`);