chore: import upstream snapshot with attribution

This commit is contained in:
wehub-resource-sync
2026-07-13 13:39:12 +08:00
commit d8dcd5f6d1
8604 changed files with 2479390 additions and 0 deletions
+45
View File
@@ -0,0 +1,45 @@
import bcrypt from "bcryptjs";
const MANAGEMENT_PASSWORD_SALT_ROUNDS = 12;
export async function hashManagementPassword(password) {
return bcrypt.hash(password, MANAGEMENT_PASSWORD_SALT_ROUNDS);
}
export function ensureSettingsSchema(db) {
db.prepare(
`CREATE TABLE IF NOT EXISTS key_value (
namespace TEXT NOT NULL,
key TEXT NOT NULL,
value TEXT NOT NULL,
PRIMARY KEY (namespace, key)
)`
).run();
}
export function updateSettings(db, updates) {
ensureSettingsSchema(db);
const insert = db.prepare(
"INSERT OR REPLACE INTO key_value (namespace, key, value) VALUES ('settings', ?, ?)"
);
const tx = db.transaction(() => {
for (const [key, value] of Object.entries(updates)) {
insert.run(key, JSON.stringify(value));
}
});
tx();
}
export function getSettings(db) {
ensureSettingsSchema(db);
const rows = db.prepare("SELECT key, value FROM key_value WHERE namespace = 'settings'").all();
const settings = {};
for (const row of rows) {
try {
settings[row.key] = JSON.parse(row.value);
} catch {
settings[row.key] = row.value;
}
}
return settings;
}