mirror of
https://github.com/danny-avila/LibreChat.git
synced 2025-12-22 19:30:15 +01:00
refactor: migrate checkEmailConfig to TypeScript and update imports
This commit is contained in:
parent
ab4596206f
commit
550bf56077
8 changed files with 27 additions and 32 deletions
|
|
@ -1,8 +1,8 @@
|
||||||
const bcrypt = require('bcryptjs');
|
const bcrypt = require('bcryptjs');
|
||||||
const jwt = require('jsonwebtoken');
|
const jwt = require('jsonwebtoken');
|
||||||
const { webcrypto } = require('node:crypto');
|
const { webcrypto } = require('node:crypto');
|
||||||
const { isEnabled } = require('@librechat/api');
|
|
||||||
const { logger } = require('@librechat/data-schemas');
|
const { logger } = require('@librechat/data-schemas');
|
||||||
|
const { isEnabled, checkEmailConfig } = require('@librechat/api');
|
||||||
const { SystemRoles, errorsToString } = require('librechat-data-provider');
|
const { SystemRoles, errorsToString } = require('librechat-data-provider');
|
||||||
const {
|
const {
|
||||||
findUser,
|
findUser,
|
||||||
|
|
@ -21,9 +21,9 @@ const {
|
||||||
generateRefreshToken,
|
generateRefreshToken,
|
||||||
} = require('~/models');
|
} = require('~/models');
|
||||||
const { isEmailDomainAllowed } = require('~/server/services/domains');
|
const { isEmailDomainAllowed } = require('~/server/services/domains');
|
||||||
const { checkEmailConfig, sendEmail } = require('~/server/utils');
|
|
||||||
const { registerSchema } = require('~/strategies/validators');
|
const { registerSchema } = require('~/strategies/validators');
|
||||||
const { getAppConfig } = require('~/server/services/Config');
|
const { getAppConfig } = require('~/server/services/Config');
|
||||||
|
const { sendEmail } = require('~/server/utils');
|
||||||
|
|
||||||
const domains = {
|
const domains = {
|
||||||
client: process.env.DOMAIN_CLIENT,
|
client: process.env.DOMAIN_CLIENT,
|
||||||
|
|
|
||||||
|
|
@ -1,12 +1,11 @@
|
||||||
const { webSearchKeys } = require('@librechat/api');
|
const { logger } = require('@librechat/data-schemas');
|
||||||
|
const { isEnabled, webSearchKeys, checkEmailConfig } = require('@librechat/api');
|
||||||
const {
|
const {
|
||||||
Constants,
|
Constants,
|
||||||
|
extractVariableName,
|
||||||
deprecatedAzureVariables,
|
deprecatedAzureVariables,
|
||||||
conflictingAzureVariables,
|
conflictingAzureVariables,
|
||||||
extractVariableName,
|
|
||||||
} = require('librechat-data-provider');
|
} = require('librechat-data-provider');
|
||||||
const { isEnabled, checkEmailConfig } = require('~/server/utils');
|
|
||||||
const { logger } = require('~/config');
|
|
||||||
|
|
||||||
const secretDefaults = {
|
const secretDefaults = {
|
||||||
CREDS_KEY: 'f34be427ebb29de8d88c107a71546019685ed8b241d8f2ed00c3df97ad2566f0',
|
CREDS_KEY: 'f34be427ebb29de8d88c107a71546019685ed8b241d8f2ed00c3df97ad2566f0',
|
||||||
|
|
@ -76,7 +75,7 @@ async function checkHealth() {
|
||||||
if (response?.ok && response?.status === 200) {
|
if (response?.ok && response?.status === 200) {
|
||||||
logger.info(`RAG API is running and reachable at ${process.env.RAG_API_URL}.`);
|
logger.info(`RAG API is running and reachable at ${process.env.RAG_API_URL}.`);
|
||||||
}
|
}
|
||||||
} catch (error) {
|
} catch {
|
||||||
logger.warn(
|
logger.warn(
|
||||||
`RAG API is either not running or not reachable at ${process.env.RAG_API_URL}, you may experience errors with file uploads.`,
|
`RAG API is either not running or not reachable at ${process.env.RAG_API_URL}, you may experience errors with file uploads.`,
|
||||||
);
|
);
|
||||||
|
|
|
||||||
|
|
@ -5,28 +5,7 @@ const sendEmail = require('./sendEmail');
|
||||||
const queue = require('./queue');
|
const queue = require('./queue');
|
||||||
const files = require('./files');
|
const files = require('./files');
|
||||||
|
|
||||||
/**
|
|
||||||
* Check if email configuration is set
|
|
||||||
* @returns {Boolean}
|
|
||||||
*/
|
|
||||||
function checkEmailConfig() {
|
|
||||||
// Check if Mailgun is configured
|
|
||||||
const hasMailgunConfig =
|
|
||||||
!!process.env.MAILGUN_API_KEY && !!process.env.MAILGUN_DOMAIN && !!process.env.EMAIL_FROM;
|
|
||||||
|
|
||||||
// Check if SMTP is configured
|
|
||||||
const hasSMTPConfig =
|
|
||||||
(!!process.env.EMAIL_SERVICE || !!process.env.EMAIL_HOST) &&
|
|
||||||
!!process.env.EMAIL_USERNAME &&
|
|
||||||
!!process.env.EMAIL_PASSWORD &&
|
|
||||||
!!process.env.EMAIL_FROM;
|
|
||||||
|
|
||||||
// Return true if either Mailgun or SMTP is properly configured
|
|
||||||
return hasMailgunConfig || hasSMTPConfig;
|
|
||||||
}
|
|
||||||
|
|
||||||
module.exports = {
|
module.exports = {
|
||||||
checkEmailConfig,
|
|
||||||
...handleText,
|
...handleText,
|
||||||
countTokens,
|
countTokens,
|
||||||
removePorts,
|
removePorts,
|
||||||
|
|
|
||||||
|
|
@ -4,9 +4,8 @@ const axios = require('axios');
|
||||||
const FormData = require('form-data');
|
const FormData = require('form-data');
|
||||||
const nodemailer = require('nodemailer');
|
const nodemailer = require('nodemailer');
|
||||||
const handlebars = require('handlebars');
|
const handlebars = require('handlebars');
|
||||||
const { logAxiosError } = require('@librechat/api');
|
|
||||||
const { logger } = require('@librechat/data-schemas');
|
const { logger } = require('@librechat/data-schemas');
|
||||||
const { isEnabled } = require('~/server/utils/handleText');
|
const { logAxiosError, isEnabled } = require('@librechat/api');
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Sends an email using Mailgun API.
|
* Sends an email using Mailgun API.
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,7 @@
|
||||||
const { logger } = require('@librechat/data-schemas');
|
const { logger } = require('@librechat/data-schemas');
|
||||||
const { errorsToString } = require('librechat-data-provider');
|
const { errorsToString } = require('librechat-data-provider');
|
||||||
|
const { isEnabled, checkEmailConfig } = require('@librechat/api');
|
||||||
const { Strategy: PassportLocalStrategy } = require('passport-local');
|
const { Strategy: PassportLocalStrategy } = require('passport-local');
|
||||||
const { isEnabled, checkEmailConfig } = require('~/server/utils');
|
|
||||||
const { findUser, comparePassword, updateUser } = require('~/models');
|
const { findUser, comparePassword, updateUser } = require('~/models');
|
||||||
const { loginSchema } = require('./validators');
|
const { loginSchema } = require('./validators');
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,10 +1,11 @@
|
||||||
const path = require('path');
|
const path = require('path');
|
||||||
const mongoose = require('mongoose');
|
const mongoose = require('mongoose');
|
||||||
|
const { checkEmailConfig } = require('@librechat/api');
|
||||||
const { User } = require('@librechat/data-schemas').createModels(mongoose);
|
const { User } = require('@librechat/data-schemas').createModels(mongoose);
|
||||||
require('module-alias')({ base: path.resolve(__dirname, '..', 'api') });
|
require('module-alias')({ base: path.resolve(__dirname, '..', 'api') });
|
||||||
const { sendEmail, checkEmailConfig } = require('~/server/utils');
|
|
||||||
const { askQuestion, silentExit } = require('./helpers');
|
const { askQuestion, silentExit } = require('./helpers');
|
||||||
const { createInvite } = require('~/models/inviteUser');
|
const { createInvite } = require('~/models/inviteUser');
|
||||||
|
const { sendEmail } = require('~/server/utils');
|
||||||
const connect = require('./connect');
|
const connect = require('./connect');
|
||||||
|
|
||||||
(async () => {
|
(async () => {
|
||||||
|
|
|
||||||
16
packages/api/src/utils/email.ts
Normal file
16
packages/api/src/utils/email.ts
Normal file
|
|
@ -0,0 +1,16 @@
|
||||||
|
/**
|
||||||
|
* Check if email configuration is set
|
||||||
|
* @returns Returns `true` if either Mailgun or SMTP is properly configured
|
||||||
|
*/
|
||||||
|
export function checkEmailConfig(): boolean {
|
||||||
|
const hasMailgunConfig =
|
||||||
|
!!process.env.MAILGUN_API_KEY && !!process.env.MAILGUN_DOMAIN && !!process.env.EMAIL_FROM;
|
||||||
|
|
||||||
|
const hasSMTPConfig =
|
||||||
|
(!!process.env.EMAIL_SERVICE || !!process.env.EMAIL_HOST) &&
|
||||||
|
!!process.env.EMAIL_USERNAME &&
|
||||||
|
!!process.env.EMAIL_PASSWORD &&
|
||||||
|
!!process.env.EMAIL_FROM;
|
||||||
|
|
||||||
|
return hasMailgunConfig || hasSMTPConfig;
|
||||||
|
}
|
||||||
|
|
@ -1,6 +1,7 @@
|
||||||
export * from './axios';
|
export * from './axios';
|
||||||
export * from './azure';
|
export * from './azure';
|
||||||
export * from './common';
|
export * from './common';
|
||||||
|
export * from './email';
|
||||||
export * from './env';
|
export * from './env';
|
||||||
export * from './events';
|
export * from './events';
|
||||||
export * from './files';
|
export * from './files';
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue