Compare commits

...

3 Commits

Author SHA1 Message Date
99f57dba76 2.12.3
Some checks failed
Docker (tags) / security (push) Failing after 26s
Docker (tags) / test (push) Has been skipped
Docker (tags) / release (push) Has been skipped
Docker (tags) / metadata (push) Has been skipped
2025-06-08 12:09:39 +00:00
415e28038d feat: add TypeScript interfaces for authentication and server statistics 2025-06-08 12:09:09 +00:00
7bda406624 2.12.2
Some checks failed
Docker (tags) / security (push) Failing after 28s
Docker (tags) / test (push) Has been skipped
Docker (tags) / release (push) Has been skipped
Docker (tags) / metadata (push) Has been skipped
2025-06-08 12:06:21 +00:00
5 changed files with 113 additions and 2 deletions

2
.gitignore vendored
View File

@ -19,5 +19,5 @@ dist_*/
# custom
**/.claude/settings.local.json
data/
.nogit/data/
readme.plan.md

View File

@ -1,7 +1,7 @@
{
"name": "@serve.zone/dcrouter",
"private": false,
"version": "2.12.1",
"version": "2.12.3",
"description": "A multifaceted routing service handling mail and SMS delivery functions.",
"main": "dist_ts/index.js",
"typings": "dist_ts/index.d.ts",

View File

@ -0,0 +1,8 @@
export interface IIdentity {
jwt: string;
userId: string;
name: string;
expiresAt: number;
role?: string;
type?: string;
}

View File

@ -0,0 +1,2 @@
export * from './auth.js';
export * from './stats.js';

101
ts_interfaces/data/stats.ts Normal file
View File

@ -0,0 +1,101 @@
export interface IServerStats {
uptime: number;
startTime: number;
memoryUsage: {
heapUsed: number;
heapTotal: number;
external: number;
rss: number;
};
cpuUsage: {
user: number;
system: number;
};
activeConnections: number;
totalConnections: number;
}
export interface IEmailStats {
sent: number;
received: number;
bounced: number;
queued: number;
failed: number;
averageDeliveryTime: number;
deliveryRate: number;
bounceRate: number;
}
export interface IDnsStats {
totalQueries: number;
cacheHits: number;
cacheMisses: number;
cacheHitRate: number;
activeDomains: number;
averageResponseTime: number;
queryTypes: {
[key: string]: number;
};
}
export interface IRateLimitInfo {
domain: string;
currentRate: number;
limit: number;
remaining: number;
resetTime: number;
blocked: boolean;
}
export interface ISecurityMetrics {
blockedIPs: string[];
reputationScores: {
[domain: string]: number;
};
spamDetected: number;
malwareDetected: number;
phishingDetected: number;
authenticationFailures: number;
suspiciousActivities: number;
}
export interface ILogEntry {
timestamp: number;
level: 'debug' | 'info' | 'warn' | 'error';
category: 'smtp' | 'dns' | 'security' | 'system' | 'email';
message: string;
metadata?: any;
}
export interface IConnectionInfo {
id: string;
remoteAddress: string;
localAddress: string;
startTime: number;
protocol: 'smtp' | 'smtps' | 'http' | 'https';
state: 'connecting' | 'connected' | 'authenticated' | 'transmitting' | 'closing';
bytesReceived: number;
bytesSent: number;
}
export interface IQueueStatus {
name: string;
size: number;
processing: number;
failed: number;
retrying: number;
averageProcessingTime: number;
}
export interface IHealthStatus {
healthy: boolean;
uptime: number;
services: {
[service: string]: {
status: 'healthy' | 'degraded' | 'unhealthy';
message?: string;
lastCheck: number;
};
};
version?: string;
}