@bernierllc/auth-suite 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/README.md +468 -0
- package/dist/index.d.ts +9 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +39 -0
- package/dist/index.js.map +1 -0
- package/dist/managers/audit-manager.d.ts +26 -0
- package/dist/managers/audit-manager.d.ts.map +1 -0
- package/dist/managers/audit-manager.js +160 -0
- package/dist/managers/audit-manager.js.map +1 -0
- package/dist/managers/mfa-manager.d.ts +32 -0
- package/dist/managers/mfa-manager.d.ts.map +1 -0
- package/dist/managers/mfa-manager.js +206 -0
- package/dist/managers/mfa-manager.js.map +1 -0
- package/dist/managers/rbac-manager.d.ts +25 -0
- package/dist/managers/rbac-manager.d.ts.map +1 -0
- package/dist/managers/rbac-manager.js +192 -0
- package/dist/managers/rbac-manager.js.map +1 -0
- package/dist/managers/session-manager.d.ts +20 -0
- package/dist/managers/session-manager.d.ts.map +1 -0
- package/dist/managers/session-manager.js +110 -0
- package/dist/managers/session-manager.js.map +1 -0
- package/dist/suite.d.ts +172 -0
- package/dist/suite.d.ts.map +1 -0
- package/dist/suite.js +1145 -0
- package/dist/suite.js.map +1 -0
- package/dist/types.d.ts +250 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +10 -0
- package/dist/types.js.map +1 -0
- package/package.json +68 -0
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import type { SessionData, SessionManager } from '../types';
|
|
2
|
+
/**
|
|
3
|
+
* In-memory session manager
|
|
4
|
+
* For production use, consider Redis or database storage
|
|
5
|
+
*/
|
|
6
|
+
export declare class MemorySessionManager implements SessionManager {
|
|
7
|
+
private sessions;
|
|
8
|
+
private config;
|
|
9
|
+
private cleanupInterval?;
|
|
10
|
+
constructor(config: any);
|
|
11
|
+
create(userId: string, metadata?: Record<string, any>): Promise<SessionData>;
|
|
12
|
+
get(sessionId: string): Promise<SessionData | null>;
|
|
13
|
+
update(sessionId: string, updates: Partial<SessionData>): Promise<boolean>;
|
|
14
|
+
destroy(sessionId: string): Promise<boolean>;
|
|
15
|
+
destroyAllForUser(userId: string): Promise<number>;
|
|
16
|
+
cleanup(): Promise<number>;
|
|
17
|
+
private startCleanupTimer;
|
|
18
|
+
destroyManager(): void;
|
|
19
|
+
}
|
|
20
|
+
//# sourceMappingURL=session-manager.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"session-manager.d.ts","sourceRoot":"","sources":["../../src/managers/session-manager.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAE5D;;;GAGG;AACH,qBAAa,oBAAqB,YAAW,cAAc;IACzD,OAAO,CAAC,QAAQ,CAAkC;IAClD,OAAO,CAAC,MAAM,CAAM;IACpB,OAAO,CAAC,eAAe,CAAC,CAAiC;gBAE7C,MAAM,EAAE,GAAG;IAQjB,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,OAAO,CAAC,WAAW,CAAC;IAkB5E,GAAG,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC;IAoBnD,MAAM,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,CAAC,WAAW,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC;IAY1E,OAAO,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAI5C,iBAAiB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAalD,OAAO,IAAI,OAAO,CAAC,MAAM,CAAC;IAkBhC,OAAO,CAAC,iBAAiB;IAazB,cAAc,IAAI,IAAI;CAKvB"}
|
|
@@ -0,0 +1,110 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/*
|
|
3
|
+
Copyright (c) 2025 Bernier LLC
|
|
4
|
+
|
|
5
|
+
This file is licensed to the client under a limited-use license.
|
|
6
|
+
The client may use and modify this code *only within the scope of the project it was delivered for*.
|
|
7
|
+
Redistribution or use in other products or commercial offerings is not permitted without written consent from Bernier LLC.
|
|
8
|
+
*/
|
|
9
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
10
|
+
exports.MemorySessionManager = void 0;
|
|
11
|
+
const uuid_1 = require("uuid");
|
|
12
|
+
/**
|
|
13
|
+
* In-memory session manager
|
|
14
|
+
* For production use, consider Redis or database storage
|
|
15
|
+
*/
|
|
16
|
+
class MemorySessionManager {
|
|
17
|
+
sessions = new Map();
|
|
18
|
+
config;
|
|
19
|
+
cleanupInterval;
|
|
20
|
+
constructor(config) {
|
|
21
|
+
this.config = config;
|
|
22
|
+
if (config.cleanup?.enabled) {
|
|
23
|
+
this.startCleanupTimer();
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
async create(userId, metadata) {
|
|
27
|
+
const sessionId = (0, uuid_1.v4)();
|
|
28
|
+
const now = new Date();
|
|
29
|
+
const expiresAt = new Date(now.getTime() + (this.config.persistence?.ttl || 24 * 60 * 60 * 1000));
|
|
30
|
+
const session = {
|
|
31
|
+
sessionId,
|
|
32
|
+
userId,
|
|
33
|
+
createdAt: now,
|
|
34
|
+
lastAccessedAt: now,
|
|
35
|
+
expiresAt,
|
|
36
|
+
metadata: metadata || {}
|
|
37
|
+
};
|
|
38
|
+
this.sessions.set(sessionId, session);
|
|
39
|
+
return session;
|
|
40
|
+
}
|
|
41
|
+
async get(sessionId) {
|
|
42
|
+
const session = this.sessions.get(sessionId);
|
|
43
|
+
if (!session) {
|
|
44
|
+
return null;
|
|
45
|
+
}
|
|
46
|
+
// Check if session has expired
|
|
47
|
+
if (session.expiresAt < new Date()) {
|
|
48
|
+
this.sessions.delete(sessionId);
|
|
49
|
+
return null;
|
|
50
|
+
}
|
|
51
|
+
// Update last accessed time
|
|
52
|
+
session.lastAccessedAt = new Date();
|
|
53
|
+
this.sessions.set(sessionId, session);
|
|
54
|
+
return session;
|
|
55
|
+
}
|
|
56
|
+
async update(sessionId, updates) {
|
|
57
|
+
const session = this.sessions.get(sessionId);
|
|
58
|
+
if (!session) {
|
|
59
|
+
return false;
|
|
60
|
+
}
|
|
61
|
+
const updatedSession = { ...session, ...updates };
|
|
62
|
+
this.sessions.set(sessionId, updatedSession);
|
|
63
|
+
return true;
|
|
64
|
+
}
|
|
65
|
+
async destroy(sessionId) {
|
|
66
|
+
return this.sessions.delete(sessionId);
|
|
67
|
+
}
|
|
68
|
+
async destroyAllForUser(userId) {
|
|
69
|
+
let count = 0;
|
|
70
|
+
for (const [sessionId, session] of this.sessions.entries()) {
|
|
71
|
+
if (session.userId === userId) {
|
|
72
|
+
this.sessions.delete(sessionId);
|
|
73
|
+
count++;
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
return count;
|
|
77
|
+
}
|
|
78
|
+
async cleanup() {
|
|
79
|
+
const now = new Date();
|
|
80
|
+
const maxIdleMs = this.config.cleanup?.maxIdleMs || 24 * 60 * 60 * 1000;
|
|
81
|
+
let cleaned = 0;
|
|
82
|
+
for (const [sessionId, session] of this.sessions.entries()) {
|
|
83
|
+
const isExpired = session.expiresAt < now;
|
|
84
|
+
const isIdle = (now.getTime() - session.lastAccessedAt.getTime()) > maxIdleMs;
|
|
85
|
+
if (isExpired || isIdle) {
|
|
86
|
+
this.sessions.delete(sessionId);
|
|
87
|
+
cleaned++;
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
return cleaned;
|
|
91
|
+
}
|
|
92
|
+
startCleanupTimer() {
|
|
93
|
+
const intervalMs = this.config.cleanup?.intervalMs || 60000; // Default 1 minute
|
|
94
|
+
this.cleanupInterval = setInterval(async () => {
|
|
95
|
+
const cleaned = await this.cleanup();
|
|
96
|
+
if (cleaned > 0) {
|
|
97
|
+
// Optionally log cleanup activity
|
|
98
|
+
// eslint-disable-next-line no-console
|
|
99
|
+
console.log(`Cleaned up ${cleaned} expired sessions`);
|
|
100
|
+
}
|
|
101
|
+
}, intervalMs);
|
|
102
|
+
}
|
|
103
|
+
destroyManager() {
|
|
104
|
+
if (this.cleanupInterval) {
|
|
105
|
+
clearInterval(this.cleanupInterval);
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
exports.MemorySessionManager = MemorySessionManager;
|
|
110
|
+
//# sourceMappingURL=session-manager.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"session-manager.js","sourceRoot":"","sources":["../../src/managers/session-manager.ts"],"names":[],"mappings":"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"}
|
package/dist/suite.d.ts
ADDED
|
@@ -0,0 +1,172 @@
|
|
|
1
|
+
import type { AuthSuiteConfig, AuthSuiteResult, PermissionCheck, PermissionResult, RegisterCredentials, LoginCredentials, User, EmailVerificationResult } from './types';
|
|
2
|
+
/**
|
|
3
|
+
* Complete authentication suite providing comprehensive auth functionality
|
|
4
|
+
*
|
|
5
|
+
* Features:
|
|
6
|
+
* - Full authentication service capabilities
|
|
7
|
+
* - Enhanced session management with cleanup
|
|
8
|
+
* - Role-based access control (RBAC)
|
|
9
|
+
* - Multi-factor authentication (MFA)
|
|
10
|
+
* - Comprehensive audit logging
|
|
11
|
+
* - OAuth/SAML/LDAP integration support
|
|
12
|
+
* - Advanced security features
|
|
13
|
+
*/
|
|
14
|
+
export declare class AuthSuite {
|
|
15
|
+
private authService;
|
|
16
|
+
private sessionManager;
|
|
17
|
+
private rbacManager;
|
|
18
|
+
private mfaManager;
|
|
19
|
+
private auditManager;
|
|
20
|
+
private logger;
|
|
21
|
+
private config;
|
|
22
|
+
private emailSender?;
|
|
23
|
+
private neverhubAdapter?;
|
|
24
|
+
private verificationTokens;
|
|
25
|
+
constructor(config: AuthSuiteConfig);
|
|
26
|
+
/**
|
|
27
|
+
* Register a new user with enhanced features
|
|
28
|
+
*/
|
|
29
|
+
register(credentials: RegisterCredentials): Promise<AuthSuiteResult>;
|
|
30
|
+
/**
|
|
31
|
+
* Login user with enhanced security features
|
|
32
|
+
*/
|
|
33
|
+
login(credentials: LoginCredentials): Promise<AuthSuiteResult>;
|
|
34
|
+
/**
|
|
35
|
+
* Complete MFA verification and finish login
|
|
36
|
+
*/
|
|
37
|
+
completeMfaLogin(challengeId: string, response: string): Promise<AuthSuiteResult>;
|
|
38
|
+
/**
|
|
39
|
+
* Verify token with enhanced session management
|
|
40
|
+
*/
|
|
41
|
+
verifyToken(token: string): Promise<User | null>;
|
|
42
|
+
/**
|
|
43
|
+
* Check user permission with RBAC
|
|
44
|
+
*/
|
|
45
|
+
checkPermission(check: PermissionCheck): Promise<PermissionResult>;
|
|
46
|
+
/**
|
|
47
|
+
* Get user roles
|
|
48
|
+
*/
|
|
49
|
+
getUserRoles(userId: string): Promise<string[]>;
|
|
50
|
+
/**
|
|
51
|
+
* Get user permissions (all permissions from all roles)
|
|
52
|
+
*/
|
|
53
|
+
getUserPermissions(userId: string): Promise<string[]>;
|
|
54
|
+
/**
|
|
55
|
+
* Logout user and cleanup session
|
|
56
|
+
*/
|
|
57
|
+
logout(sessionId?: string): Promise<{
|
|
58
|
+
success: boolean;
|
|
59
|
+
}>;
|
|
60
|
+
/**
|
|
61
|
+
* Setup MFA for user
|
|
62
|
+
*/
|
|
63
|
+
setupMfa(userId: string, type: string): Promise<{
|
|
64
|
+
secret: string;
|
|
65
|
+
qrCode?: string;
|
|
66
|
+
}>;
|
|
67
|
+
/**
|
|
68
|
+
* Get audit logs with filtering
|
|
69
|
+
*/
|
|
70
|
+
getAuditLogs(filters: any): Promise<any[]>;
|
|
71
|
+
/**
|
|
72
|
+
* Cleanup expired sessions and audit logs
|
|
73
|
+
*/
|
|
74
|
+
cleanup(): Promise<{
|
|
75
|
+
sessions: number;
|
|
76
|
+
auditLogs: number;
|
|
77
|
+
}>;
|
|
78
|
+
/**
|
|
79
|
+
* Send verification email to user
|
|
80
|
+
*/
|
|
81
|
+
private sendVerificationEmail;
|
|
82
|
+
/**
|
|
83
|
+
* Manually send verification email to a user
|
|
84
|
+
*/
|
|
85
|
+
sendVerificationEmailManually(userId: string, email: string): Promise<{
|
|
86
|
+
success: boolean;
|
|
87
|
+
error?: string;
|
|
88
|
+
}>;
|
|
89
|
+
/**
|
|
90
|
+
* Get email configuration status
|
|
91
|
+
*/
|
|
92
|
+
getEmailConfiguration(): {
|
|
93
|
+
enabled: boolean;
|
|
94
|
+
verification: {
|
|
95
|
+
enabled: boolean;
|
|
96
|
+
required: boolean;
|
|
97
|
+
automaticSend: boolean;
|
|
98
|
+
};
|
|
99
|
+
welcome: {
|
|
100
|
+
enabled: boolean;
|
|
101
|
+
sendOnRegistration: boolean;
|
|
102
|
+
sendOnFirstLogin: boolean;
|
|
103
|
+
};
|
|
104
|
+
passwordReset: {
|
|
105
|
+
enabled: boolean;
|
|
106
|
+
};
|
|
107
|
+
providerConfigured: boolean;
|
|
108
|
+
neverhub: {
|
|
109
|
+
enabled: boolean;
|
|
110
|
+
available: boolean;
|
|
111
|
+
overrideDirect: boolean;
|
|
112
|
+
fallbackToDirect: boolean;
|
|
113
|
+
serviceName: string;
|
|
114
|
+
};
|
|
115
|
+
};
|
|
116
|
+
/**
|
|
117
|
+
* Verify user email with token
|
|
118
|
+
*/
|
|
119
|
+
verifyEmail(token: string): Promise<EmailVerificationResult>;
|
|
120
|
+
/**
|
|
121
|
+
* Send password reset email
|
|
122
|
+
*/
|
|
123
|
+
sendPasswordResetEmail(email: string): Promise<{
|
|
124
|
+
success: boolean;
|
|
125
|
+
error?: string;
|
|
126
|
+
}>;
|
|
127
|
+
private mergeWithDefaults;
|
|
128
|
+
/**
|
|
129
|
+
* Initialize NeverHub adapter if configured and available
|
|
130
|
+
*/
|
|
131
|
+
private initializeNeverHub;
|
|
132
|
+
private initializeManagers;
|
|
133
|
+
private completeLogin;
|
|
134
|
+
private isMfaRequired;
|
|
135
|
+
/**
|
|
136
|
+
* Check if verification email should be sent
|
|
137
|
+
*/
|
|
138
|
+
private shouldSendVerificationEmail;
|
|
139
|
+
/**
|
|
140
|
+
* Check if welcome email should be sent
|
|
141
|
+
*/
|
|
142
|
+
private shouldSendWelcomeEmail;
|
|
143
|
+
/**
|
|
144
|
+
* Build verification URL with token
|
|
145
|
+
*/
|
|
146
|
+
private buildVerificationUrl;
|
|
147
|
+
/**
|
|
148
|
+
* Process template variables in content
|
|
149
|
+
*/
|
|
150
|
+
private processTemplate;
|
|
151
|
+
/**
|
|
152
|
+
* Send email with NeverHub integration and fallback logic
|
|
153
|
+
*/
|
|
154
|
+
private sendEmailWithNeverHubFallback;
|
|
155
|
+
/**
|
|
156
|
+
* Send email via NeverHub service discovery
|
|
157
|
+
*/
|
|
158
|
+
private sendEmailViaNeverHub;
|
|
159
|
+
/**
|
|
160
|
+
* Check if NeverHub should be used for email sending
|
|
161
|
+
*/
|
|
162
|
+
private shouldUseNeverHub;
|
|
163
|
+
/**
|
|
164
|
+
* Send email with retry logic
|
|
165
|
+
*/
|
|
166
|
+
private sendEmailWithRetry;
|
|
167
|
+
/**
|
|
168
|
+
* Send welcome email to user
|
|
169
|
+
*/
|
|
170
|
+
private sendWelcomeEmail;
|
|
171
|
+
}
|
|
172
|
+
//# sourceMappingURL=suite.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"suite.d.ts","sourceRoot":"","sources":["../src/suite.ts"],"names":[],"mappings":"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"}
|