From a48ae6588586b2e978fb89e7c86c41dda876459f Mon Sep 17 00:00:00 2001 From: ClaraCrazy Date: Fri, 9 Jan 2026 12:03:33 +0100 Subject: [PATCH] [Chore]: Update legacy naming scheme --- app.js | 6 +++--- application/{config.js => config-service.js} | 4 ++-- application/{crypto-detector.js => crypto-service.js} | 6 +++--- application/{helper.js => helper-service.js} | 8 ++++---- application/imap-service.js | 8 ++++---- application/mail-processing-service.js | 4 ++-- domain/api-token-repository.js | 2 +- domain/mail-repository.js | 4 ++-- domain/statistics-store.js | 2 +- infrastructure/web/routes/account.js | 4 ++-- infrastructure/web/routes/auth.js | 2 +- infrastructure/web/routes/error.js | 2 +- infrastructure/web/routes/home.js | 4 ++-- infrastructure/web/routes/inbox.js | 10 +++++----- infrastructure/web/routes/stats.js | 4 ++-- infrastructure/web/template-context.js | 4 ++-- infrastructure/web/views/twig-filters.js | 2 +- infrastructure/web/web.js | 6 +++--- scripts/check-domains.js | 4 +++- 19 files changed, 44 insertions(+), 42 deletions(-) rename application/{config.js => config-service.js} (98%) rename application/{crypto-detector.js => crypto-service.js} (99%) rename application/{helper.js => helper-service.js} (98%) diff --git a/app.js b/app.js index 2290b3c..d82a3b3 100644 --- a/app.js +++ b/app.js @@ -18,9 +18,9 @@ if (fs.existsSync(envPath)) { } } -const config = require('./application/config') +const config = require('./application/config-service') const debug = require('debug')('48hr-email:app') -const Helper = require('./application/helper') +const Helper = require('./application/helper-service') const helper = new(Helper) const { app, io, server } = require('./infrastructure/web/web') const ClientNotification = require('./infrastructure/web/client-notification') @@ -337,4 +337,4 @@ server.on('error', error => { console.error('Fatal web server error', error) process.exit(1) } -}) \ No newline at end of file +}) diff --git a/application/config.js b/application/config-service.js similarity index 98% rename from application/config.js rename to application/config-service.js index 4820758..268883b 100644 --- a/application/config.js +++ b/application/config-service.js @@ -1,6 +1,6 @@ // config.js require("dotenv").config({ quiet: true }); -const debug = require('debug')('48hr-email:config') +const debug = require('debug')('48hr-email:config-service') // Migration helper: warn about deprecated env vars if (process.env.USER_SESSION_SECRET && !process.env.HTTP_SESSION_SECRET) { @@ -131,4 +131,4 @@ if (!config.email.domains.length) { debug(`Configuration validated successfully: ${config.email.domains.length} domains${config.uxDebugMode ? ' (UX DEBUG MODE)' : ''}`) -module.exports = config; \ No newline at end of file +module.exports = config; diff --git a/application/crypto-detector.js b/application/crypto-service.js similarity index 99% rename from application/crypto-detector.js rename to application/crypto-service.js index ecd6489..d687d31 100644 --- a/application/crypto-detector.js +++ b/application/crypto-service.js @@ -1,9 +1,9 @@ -const debug = require('debug')('48hr-email:crypto-detector') +const debug = require('debug')('48hr-email:crypto-service') /** * Detects cryptographic keys and signatures in email attachments */ -class CryptoDetector { +class CryptoService { constructor() { // Common cryptographic file extensions this.cryptoExtensions = [ @@ -408,4 +408,4 @@ class CryptoDetector { } } -module.exports = CryptoDetector \ No newline at end of file +module.exports = CryptoService diff --git a/application/helper.js b/application/helper-service.js similarity index 98% rename from application/helper.js rename to application/helper-service.js index f3c824b..56e26ff 100644 --- a/application/helper.js +++ b/application/helper-service.js @@ -1,8 +1,8 @@ -const config = require('./config') -const debug = require('debug')('48hr-email:helper') +const config = require('./config-service') +const debug = require('debug')('48hr-email:helper-service') const crypto = require('crypto') -class Helper { +class HelperService { /** * Normalize our config into a proper timestamp, so we know what emails to purge @@ -283,4 +283,4 @@ class Helper { } } -module.exports = Helper +module.exports = HelperService diff --git a/application/imap-service.js b/application/imap-service.js index 3cc81ab..6b29fba 100644 --- a/application/imap-service.js +++ b/application/imap-service.js @@ -5,9 +5,9 @@ const addressparser = require('nodemailer/lib/addressparser') const retry = require('async-retry') const debug = require('debug')('48hr-email:imap-manager') const Mail = require('../domain/mail') -const Helper = require('./helper') +const Helper = require('./helper-service') const helper = new(Helper) -const config = require('./config') +const config = require('./config-service') // Just adding some missing functions to imap-simple... :-) @@ -380,8 +380,8 @@ class ImapService extends EventEmitter { async _searchWithoutFetch(searchCriteria) { const imapUnderlying = this.connection.imap; // If searching by UID and the list is too long, batch it - const UID_BATCH_SIZE = 500; - // Detect UID search: ['UID', [array]] or ['UID', '1:1000'] + const UID_BATCH_SIZE = this.config.imap.fetchChunkSize; + // Detect UID search: ['UID', [array]] or ['UID', '1:500'] if (Array.isArray(searchCriteria) && searchCriteria.length === 1 && Array.isArray(searchCriteria[0]) && searchCriteria[0][0] === 'UID' && Array.isArray(searchCriteria[0][1]) && searchCriteria[0][1].length > UID_BATCH_SIZE) { const allUids = searchCriteria[0][1]; let allResults = []; diff --git a/application/mail-processing-service.js b/application/mail-processing-service.js index 78a8660..d24dc4e 100644 --- a/application/mail-processing-service.js +++ b/application/mail-processing-service.js @@ -1,8 +1,8 @@ const EventEmitter = require('events') const debug = require('debug')('48hr-email:imap-processor') const ImapService = require('./imap-service') -const Helper = require('./helper') -const config = require('./config') +const Helper = require('./helper-service') +const config = require('./config-service') const helper = new(Helper) diff --git a/domain/api-token-repository.js b/domain/api-token-repository.js index 5c0fcb0..93218da 100644 --- a/domain/api-token-repository.js +++ b/domain/api-token-repository.js @@ -1,4 +1,4 @@ -const Helper = require('../application/helper') +const Helper = require('../application/helper-service') const helper = new Helper() class ApiTokenRepository { diff --git a/domain/mail-repository.js b/domain/mail-repository.js index 7981a2c..24b59e3 100644 --- a/domain/mail-repository.js +++ b/domain/mail-repository.js @@ -1,6 +1,6 @@ const debug = require('debug')('48hr-email:mail-summary-store') const MultiMap = require('mnemonist/multi-map') -const config = require('../application/config') +const config = require('../application/config-service') class MailRepository { constructor() { @@ -87,4 +87,4 @@ class MailRepository { } } -module.exports = MailRepository \ No newline at end of file +module.exports = MailRepository diff --git a/domain/statistics-store.js b/domain/statistics-store.js index 040ad3c..751f988 100644 --- a/domain/statistics-store.js +++ b/domain/statistics-store.js @@ -1,5 +1,5 @@ const debug = require('debug')('48hr-email:stats-store'); -const config = require('../application/config'); +const config = require('../application/config-service'); const crypto = require('crypto'); /** diff --git a/infrastructure/web/routes/account.js b/infrastructure/web/routes/account.js index 4600e53..2f2cd98 100644 --- a/infrastructure/web/routes/account.js +++ b/infrastructure/web/routes/account.js @@ -12,7 +12,7 @@ router.get('/account', requireAuth, async(req, res) => { const userRepository = req.app.get('userRepository') const inboxLock = req.app.get('inboxLock') const mailProcessingService = req.app.get('mailProcessingService') - const Helper = require('../../../application/helper') + const Helper = require('../../../application/helper-service') const helper = new Helper() // In UX debug mode, reset mock data to initial state only on fresh page load @@ -350,4 +350,4 @@ router.post('/account/delete', } ) -module.exports = router \ No newline at end of file +module.exports = router diff --git a/infrastructure/web/routes/auth.js b/infrastructure/web/routes/auth.js index b7323a1..c0a391b 100644 --- a/infrastructure/web/routes/auth.js +++ b/infrastructure/web/routes/auth.js @@ -3,7 +3,7 @@ const router = new express.Router() const { body, validationResult } = require('express-validator') const debug = require('debug')('48hr-email:auth-routes') const { redirectIfAuthenticated } = require('../middleware/auth') -const config = require('../../../application/config') +const config = require('../../../application/config-service') const templateContext = require('../template-context') // Simple in-memory rate limiters for registration and login diff --git a/infrastructure/web/routes/error.js b/infrastructure/web/routes/error.js index 8e567ad..79648f1 100644 --- a/infrastructure/web/routes/error.js +++ b/infrastructure/web/routes/error.js @@ -1,6 +1,6 @@ const express = require('express') const router = new express.Router() -const config = require('../../../application/config') +const config = require('../../../application/config-service') const templateContext = require('../template-context') const debug = require('debug')('48hr-email:routes') diff --git a/infrastructure/web/routes/home.js b/infrastructure/web/routes/home.js index a81a72b..5cadbb0 100644 --- a/infrastructure/web/routes/home.js +++ b/infrastructure/web/routes/home.js @@ -3,7 +3,7 @@ const router = new express.Router() const { check, validationResult } = require('express-validator') const debug = require('debug')('48hr-email:routes') const randomWord = require('random-word') -const config = require('../../../application/config') +const config = require('../../../application/config-service') const templateContext = require('../template-context') router.get('/', async(req, res, next) => { @@ -71,4 +71,4 @@ router.post( } ) -module.exports = router \ No newline at end of file +module.exports = router diff --git a/infrastructure/web/routes/inbox.js b/infrastructure/web/routes/inbox.js index 61f68d0..bab163a 100644 --- a/infrastructure/web/routes/inbox.js +++ b/infrastructure/web/routes/inbox.js @@ -3,12 +3,12 @@ const router = new express.Router() const { param, body, validationResult } = require('express-validator') const debug = require('debug')('48hr-email:routes') -const config = require('../../../application/config') -const Helper = require('../../../application/helper') -const CryptoDetector = require('../../../application/crypto-detector') +const config = require('../../../application/config-service') +const Helper = require('../../../application/helper-service') +const CryptoService = require('../../../application/crypto-service') const templateContext = require('../template-context') const helper = new(Helper) -const cryptoDetector = new CryptoDetector() +const cryptoService = new CryptoService() const { checkLockAccess } = require('../middleware/lock') const { requireAuth, optionalAuth } = require('../middleware/auth') @@ -142,7 +142,7 @@ router.get( res.set('Cache-Control', 'private, max-age=600') // Detect cryptographic keys in attachments - const cryptoAttachments = cryptoDetector.detectCryptoAttachments(mail.attachments) + const cryptoAttachments = cryptoService.detectCryptoAttachments(mail.attachments) debug(`Found ${cryptoAttachments.length} cryptographic attachments`) debug(`Rendering email view for UID ${req.params.uid}`) diff --git a/infrastructure/web/routes/stats.js b/infrastructure/web/routes/stats.js index 0056302..a62a09d 100644 --- a/infrastructure/web/routes/stats.js +++ b/infrastructure/web/routes/stats.js @@ -101,7 +101,7 @@ router.get('/api', async(req, res) => { const statisticsStore = req.app.get('statisticsStore') const imapService = req.app.get('imapService') const mailProcessingService = req.app.get('mailProcessingService') - const Helper = require('../../../application/helper') + const Helper = require('../../../application/helper-service') const helper = new Helper() // Update largest UID before getting stats (if IMAP is ready) @@ -129,4 +129,4 @@ router.get('/api', async(req, res) => { } }) -module.exports = router \ No newline at end of file +module.exports = router diff --git a/infrastructure/web/template-context.js b/infrastructure/web/template-context.js index f492848..d16f053 100644 --- a/infrastructure/web/template-context.js +++ b/infrastructure/web/template-context.js @@ -1,5 +1,5 @@ -const config = require('../../application/config') -const Helper = require('../../application/helper') +const config = require('../../application/config-service') +const Helper = require('../../application/helper-service') /** * Template Context Builder diff --git a/infrastructure/web/views/twig-filters.js b/infrastructure/web/views/twig-filters.js index 41e667a..08e0851 100644 --- a/infrastructure/web/views/twig-filters.js +++ b/infrastructure/web/views/twig-filters.js @@ -1,5 +1,5 @@ const sanitizeHtml = require('sanitize-html') -const config = require('../../../application/config') +const config = require('../../../application/config-service') /** * Transformes tags to always use "noreferrer noopener" and open in a new window. diff --git a/infrastructure/web/web.js b/infrastructure/web/web.js index 7cd28bf..962332a 100644 --- a/infrastructure/web/web.js +++ b/infrastructure/web/web.js @@ -10,7 +10,7 @@ const compression = require('compression') const helmet = require('helmet') const socketio = require('socket.io') -const config = require('../../application/config') +const config = require('../../application/config-service') const createApiRouter = require('./api/router') const inboxRouter = require('./routes/inbox') const homeRouter = require('./routes/home') @@ -120,7 +120,7 @@ app.use((req, res, next) => { app.use(async(req, res, next) => { const mailProcessingService = req.app.get('mailProcessingService') const imapService = req.app.get('imapService') - const Helper = require('../../application/helper') + const Helper = require('../../application/helper-service') const helper = new Helper() if (mailProcessingService) { @@ -243,4 +243,4 @@ server.on('listening', () => { server.emit('ready') }) -module.exports = { app, io, server } \ No newline at end of file +module.exports = { app, io, server } diff --git a/scripts/check-domains.js b/scripts/check-domains.js index 22c966d..54efb2a 100644 --- a/scripts/check-domains.js +++ b/scripts/check-domains.js @@ -1,7 +1,9 @@ #!/usr/bin/env node +const HelperService = require("../application/helper-service") + // Test script to verify domains are loaded correctly -const helper = new Helper() +const helper = new HelperService() const domains = helper.getDomains() console.log('\nDomains from helper.getDomains():', domains) console.log('Length:', domains ? domains.length : undefined)