Checkpoint SHD dashboard design system

This commit is contained in:
JB
2026-07-24 21:31:35 -04:00
commit 5e113454ee
52 changed files with 3128 additions and 0 deletions
+48
View File
@@ -0,0 +1,48 @@
import { connect } from '@tursodatabase/database';
import { argon2id, hash } from 'argon2';
import { randomBytes, randomUUID } from 'node:crypto';
import { resolve } from 'node:path';
import process from 'node:process';
const databasePath = resolve(process.env.TDR_DATABASE_PATH || './data/shd-build.db');
const database = await connect(databasePath);
const users = [
{ username: 'Aewyn', role: 'admin' },
{ username: 'Quartermaster', role: 'user' }
];
const findUser = await database.prepare(
'SELECT id, username, role FROM users WHERE username = ? COLLATE NOCASE'
);
const insertUser = await database.prepare(
'INSERT INTO users (id, username, password_hash, role, created_at) VALUES (?, ?, ?, ?, ?)'
);
for (const user of users) {
const existing = await findUser.get(user.username);
if (existing) {
console.log(`${user.username}: already exists (${existing.role}); left unchanged`);
continue;
}
// 120 bits of entropy encoded without punctuation that is awkward to paste.
const temporaryPassword = randomBytes(15).toString('base64url');
const passwordHash = await hash(temporaryPassword, {
type: argon2id,
memoryCost: 19_456,
timeCost: 2,
parallelism: 1
});
await insertUser.run(
randomUUID(),
user.username,
passwordHash,
user.role,
new Date().toISOString()
);
console.log(`${user.username} (${user.role}) temporary password: ${temporaryPassword}`);
}