Phase 1: Add ESLint/Prettier config + baseline auto-fixes
This commit is contained in:
@@ -16,7 +16,7 @@ module.exports = function(ctx) {
|
||||
m: 60 * 1000,
|
||||
h: 60 * 60 * 1000,
|
||||
d: 24 * 60 * 60 * 1000,
|
||||
y: 365 * 24 * 60 * 60 * 1000
|
||||
y: 365 * 24 * 60 * 60 * 1000,
|
||||
};
|
||||
|
||||
return value * (multipliers[unit] || multipliers.h);
|
||||
@@ -54,7 +54,7 @@ module.exports = function(ctx) {
|
||||
|
||||
const keyData = await ctx.authManager.generateAPIKey(
|
||||
name.trim(),
|
||||
scopes || ['read', 'write']
|
||||
scopes || ['read', 'write'],
|
||||
);
|
||||
|
||||
res.json({
|
||||
@@ -64,7 +64,7 @@ module.exports = function(ctx) {
|
||||
name: keyData.name,
|
||||
scopes: keyData.scopes,
|
||||
createdAt: keyData.createdAt,
|
||||
warning: 'Save this key securely - it will not be shown again'
|
||||
warning: 'Save this key securely - it will not be shown again',
|
||||
});
|
||||
}, 'auth-keys-generate'));
|
||||
|
||||
@@ -109,9 +109,9 @@ module.exports = function(ctx) {
|
||||
const token = await ctx.authManager.generateJWT(
|
||||
{
|
||||
sub: userId || 'dashcaddy-admin',
|
||||
scope: ['admin'] // Session-generated JWTs have admin scope
|
||||
scope: ['admin'], // Session-generated JWTs have admin scope
|
||||
},
|
||||
expiresIn || '24h'
|
||||
expiresIn || '24h',
|
||||
);
|
||||
|
||||
// Calculate expiration timestamp
|
||||
@@ -122,7 +122,7 @@ module.exports = function(ctx) {
|
||||
success: true,
|
||||
token,
|
||||
expiresAt,
|
||||
usage: 'Include in Authorization header as: Bearer <token>'
|
||||
usage: 'Include in Authorization header as: Bearer <token>',
|
||||
});
|
||||
}, 'auth-jwt-generate'));
|
||||
|
||||
|
||||
@@ -29,7 +29,7 @@ module.exports = function(ctx) {
|
||||
const { spawnSync } = require('child_process');
|
||||
const proc = spawnSync('wget', [
|
||||
'-q', '-S', `--post-data=${routerBody}`, '-O', '/dev/null',
|
||||
`${baseUrl}/cgi-bin/login.ha`
|
||||
`${baseUrl}/cgi-bin/login.ha`,
|
||||
], { timeout: 5000, encoding: 'utf8' });
|
||||
const result = (proc.stderr || '').split('\n').slice(0, 2).join('\n');
|
||||
const locationMatch = result.match(/Location:\s*(.+)/);
|
||||
|
||||
@@ -10,8 +10,8 @@ module.exports = function(ctx) {
|
||||
config: {
|
||||
enabled: ctx.totpConfig.enabled,
|
||||
sessionDuration: ctx.totpConfig.sessionDuration,
|
||||
isSetUp: ctx.totpConfig.isSetUp
|
||||
}
|
||||
isSetUp: ctx.totpConfig.isSetUp,
|
||||
},
|
||||
});
|
||||
}, 'totp-config-get'));
|
||||
|
||||
@@ -35,7 +35,7 @@ module.exports = function(ctx) {
|
||||
const otpauth = authenticator.keyuri('user', 'DashCaddy', secret);
|
||||
const qrDataUrl = await QRCode.toDataURL(otpauth, {
|
||||
width: 256, margin: 2,
|
||||
color: { dark: '#ffffff', light: '#00000000' }
|
||||
color: { dark: '#ffffff', light: '#00000000' },
|
||||
});
|
||||
|
||||
res.json({ success: true, qrCode: qrDataUrl, manualKey: secret, issuer: 'DashCaddy', imported: !!req.body?.secret });
|
||||
@@ -166,7 +166,7 @@ module.exports = function(ctx) {
|
||||
|
||||
if (sessionDuration && !ctx.session.durations.hasOwnProperty(sessionDuration)) {
|
||||
return ctx.errorResponse(res, 400, 'Invalid session duration', {
|
||||
validOptions: Object.keys(ctx.session.durations)
|
||||
validOptions: Object.keys(ctx.session.durations),
|
||||
});
|
||||
}
|
||||
|
||||
@@ -180,7 +180,7 @@ module.exports = function(ctx) {
|
||||
await ctx.saveTotpConfig();
|
||||
res.json({
|
||||
success: true,
|
||||
config: { enabled: ctx.totpConfig.enabled, sessionDuration: ctx.totpConfig.sessionDuration, isSetUp: ctx.totpConfig.isSetUp }
|
||||
config: { enabled: ctx.totpConfig.enabled, sessionDuration: ctx.totpConfig.sessionDuration, isSetUp: ctx.totpConfig.isSetUp },
|
||||
});
|
||||
}, 'totp-config'));
|
||||
|
||||
|
||||
Reference in New Issue
Block a user