@allan1361/iota-big3-sdk-middleware
Version:
🏆 A+ Grade Certified Enterprise Middleware Framework - Phase 3 Certified (90/100) with advanced resilience patterns, comprehensive type safety, and production-ready observability
63 lines • 1.85 kB
TypeScript
import type { Logger } from '@iota-big3/sdk-types';
import { Redis } from 'ioredis';
import { Knex } from 'knex';
import type { Result } from '@iota-big3/sdk-patterns';
export interface Session {
id: string;
userId: string;
data: SessionData;
createdAt: Date;
updatedAt: Date;
expiresAt: Date;
lastActivityAt: Date;
deviceInfo?: DeviceInfo;
}
export interface SessionData {
userId: string;
createdAt: Date;
expiresAt: Date;
lastAccessedAt: Date;
data?: Record<string, unknown>;
roles?: string[];
permissions?: string[];
ipAddress?: string;
userAgent?: string;
}
export interface DeviceInfo {
id: string;
type: 'web' | 'mobile' | 'desktop' | 'api';
name?: string;
os?: string;
browser?: string;
trusted?: boolean;
}
export interface SessionStoreConfig {
redis?: Redis;
db?: Knex;
sessionTTL?: number;
maxConcurrentSessions?: number;
extendOnActivity?: boolean;
cleanupInterval?: number;
}
export declare class SessionStore {
private redis?;
private db?;
private config;
private logger?;
private cleanupTimer?;
constructor(config: SessionStoreConfig, logger?: Logger);
createAsync(userId: string, data: SessionData, deviceInfo?: DeviceInfo): Promise<Result<Session, Error>>;
getAsync(sessionId: string): Promise<Session | null>;
touchAsync(sessionId: string): Promise<void>;
destroyAsync(sessionId: string): Promise<void>;
destroyUserSessionsAsync(userId: string): Promise<void>;
getUserSessionsAsync(userId: string): Promise<Session[]>;
private enforceSessionLimitAsync;
private cleanupAsync;
private startCleanup;
stopCleanup(): void;
private generateSessionId;
private getRedisKey;
private getUserSessionsKey;
}
//# sourceMappingURL=session-store.d.ts.map