fix(imports): convert require() to ESM import for randomBytes in auth.js

This commit is contained in:
Ulas
2026-04-03 23:00:38 +02:00
parent 3b90074723
commit 2f6127911e
7 changed files with 181 additions and 25 deletions
+9 -12
View File
@@ -4,16 +4,14 @@
* Abhängigkeiten: express, bcrypt, express-session, server/db.js
*/
'use strict';
const express = require('express');
const bcrypt = require('bcrypt');
const session = require('express-session');
const rateLimit = require('express-rate-limit');
const db = require('./db');
const { generateToken, csrfMiddleware } = require('./middleware/csrf');
const { createLogger } = require('./logger');
import express from 'express';
import bcrypt from 'bcrypt';
import session from 'express-session';
import rateLimit from 'express-rate-limit';
import { randomBytes } from 'node:crypto';
import * as db from './db.js';
import { generateToken, csrfMiddleware } from './middleware/csrf.js';
import { createLogger } from './logger.js';
const log = createLogger('Auth');
const router = express.Router();
@@ -97,7 +95,6 @@ if (!process.env.SESSION_SECRET) {
if (process.env.NODE_ENV === 'production') {
throw new Error('[Auth] SESSION_SECRET muss in der .env gesetzt sein (Produktion).');
}
const { randomBytes } = require('node:crypto');
process.env.SESSION_SECRET = randomBytes(32).toString('hex');
log.warn('SESSION_SECRET nicht gesetzt - zufaelliges Einmal-Secret generiert (Sessions ueberleben keinen Neustart).');
}
@@ -410,4 +407,4 @@ router.delete('/users/:id', requireAuth, requireAdmin, csrfMiddleware, (req, res
}
});
module.exports = { router, sessionMiddleware, requireAuth, requireAdmin };
export { router, sessionMiddleware, requireAuth, requireAdmin };
+1 -3
View File
@@ -5,8 +5,6 @@
* Abhängigkeiten: keine
*/
'use strict';
// SQL-String für Migration v1 (gespiegelt aus db.js MIGRATIONS[0].up)
// Änderungen in db.js MIGRATIONS müssen hier synchron gehalten werden.
const MIGRATIONS_SQL = {
@@ -182,4 +180,4 @@ const MIGRATIONS_SQL = {
`,
};
module.exports = { MIGRATIONS_SQL };
export { MIGRATIONS_SQL };
+8 -7
View File
@@ -9,15 +9,13 @@
* Ohne DB_ENCRYPTION_KEY gesetzt läuft die App mit unverschlüsseltem SQLite (für Entwicklung).
*/
'use strict';
const Database = require('better-sqlite3');
const path = require('path');
const { createLogger } = require('./logger');
import Database from 'better-sqlite3';
import path from 'path';
import { createLogger } from './logger.js';
const log = createLogger('DB');
const DB_PATH = process.env.DB_PATH || path.join(__dirname, '..', 'oikos.db');
const DB_PATH = process.env.DB_PATH || path.join(import.meta.dirname, '..', 'oikos.db');
const DB_KEY = process.env.DB_ENCRYPTION_KEY;
let db;
@@ -32,6 +30,7 @@ let db;
* @returns {import('better-sqlite3').Database}
*/
function init() {
if (db) return db;
db = new Database(DB_PATH);
if (DB_KEY) {
@@ -369,4 +368,6 @@ function transaction(fn) {
return get().transaction(fn)();
}
module.exports = { init, get, transaction, currentVersion };
init(); // auto-initialise when module is first imported
export { init, get, transaction, currentVersion };
+1 -3
View File
@@ -5,8 +5,6 @@
* Steuerung: LOG_LEVEL env var (debug, info, warn, error). Default: info.
*/
'use strict';
const LEVELS = { debug: 0, info: 1, warn: 2, error: 3 };
const currentLevel = LEVELS[process.env.LOG_LEVEL] ?? LEVELS.info;
const isProduction = process.env.NODE_ENV === 'production';
@@ -37,4 +35,4 @@ function createLogger(mod) {
};
}
module.exports = { createLogger };
export { createLogger };