@juspay/neurolink 9.31.2 → 9.32.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/CHANGELOG.md +6 -0
- package/dist/auth/AuthProviderFactory.d.ts +71 -0
- package/dist/auth/AuthProviderFactory.js +111 -0
- package/dist/auth/AuthProviderRegistry.d.ts +33 -0
- package/dist/auth/AuthProviderRegistry.js +190 -0
- package/dist/auth/RequestContext.d.ts +23 -0
- package/dist/auth/RequestContext.js +78 -0
- package/dist/auth/authContext.d.ts +198 -0
- package/dist/auth/authContext.js +314 -0
- package/dist/auth/errors.d.ts +63 -0
- package/dist/auth/errors.js +39 -0
- package/dist/auth/index.d.ts +20 -8
- package/dist/auth/index.js +35 -7
- package/dist/auth/middleware/AuthMiddleware.d.ts +181 -0
- package/dist/auth/middleware/AuthMiddleware.js +519 -0
- package/dist/auth/middleware/rateLimitByUser.d.ts +282 -0
- package/dist/auth/middleware/rateLimitByUser.js +554 -0
- package/dist/auth/providers/BaseAuthProvider.d.ts +259 -0
- package/dist/auth/providers/BaseAuthProvider.js +723 -0
- package/dist/auth/providers/CognitoProvider.d.ts +61 -0
- package/dist/auth/providers/CognitoProvider.js +304 -0
- package/dist/auth/providers/KeycloakProvider.d.ts +61 -0
- package/dist/auth/providers/KeycloakProvider.js +393 -0
- package/dist/auth/providers/auth0.d.ts +59 -0
- package/dist/auth/providers/auth0.js +274 -0
- package/dist/auth/providers/betterAuth.d.ts +51 -0
- package/dist/auth/providers/betterAuth.js +182 -0
- package/dist/auth/providers/clerk.d.ts +65 -0
- package/dist/auth/providers/clerk.js +317 -0
- package/dist/auth/providers/custom.d.ts +64 -0
- package/dist/auth/providers/custom.js +112 -0
- package/dist/auth/providers/firebase.d.ts +63 -0
- package/dist/auth/providers/firebase.js +226 -0
- package/dist/auth/providers/jwt.d.ts +68 -0
- package/dist/auth/providers/jwt.js +212 -0
- package/dist/auth/providers/oauth2.d.ts +73 -0
- package/dist/auth/providers/oauth2.js +303 -0
- package/dist/auth/providers/supabase.d.ts +63 -0
- package/dist/auth/providers/supabase.js +259 -0
- package/dist/auth/providers/workos.d.ts +61 -0
- package/dist/auth/providers/workos.js +284 -0
- package/dist/auth/serverBridge.d.ts +14 -0
- package/dist/auth/serverBridge.js +25 -0
- package/dist/auth/sessionManager.d.ts +142 -0
- package/dist/auth/sessionManager.js +437 -0
- package/dist/cli/commands/authProviders.d.ts +43 -0
- package/dist/cli/commands/authProviders.js +399 -0
- package/dist/cli/factories/authCommandFactory.d.ts +23 -5
- package/dist/cli/factories/authCommandFactory.js +108 -5
- package/dist/cli/parser.js +1 -1
- package/dist/client/auth/AuthProviderFactory.js +111 -0
- package/dist/client/auth/AuthProviderRegistry.js +190 -0
- package/dist/client/auth/RequestContext.js +78 -0
- package/dist/client/auth/accountPool.js +178 -0
- package/dist/client/auth/authContext.js +314 -0
- package/dist/client/auth/errors.js +39 -0
- package/dist/client/auth/index.js +61 -0
- package/dist/client/auth/middleware/AuthMiddleware.js +519 -0
- package/dist/client/auth/middleware/rateLimitByUser.js +554 -0
- package/dist/client/auth/providers/BaseAuthProvider.js +723 -0
- package/dist/client/auth/providers/CognitoProvider.js +304 -0
- package/dist/client/auth/providers/KeycloakProvider.js +393 -0
- package/dist/client/auth/providers/auth0.js +274 -0
- package/dist/client/auth/providers/betterAuth.js +182 -0
- package/dist/client/auth/providers/clerk.js +317 -0
- package/dist/client/auth/providers/custom.js +112 -0
- package/dist/client/auth/providers/firebase.js +226 -0
- package/dist/client/auth/providers/jwt.js +212 -0
- package/dist/client/auth/providers/oauth2.js +303 -0
- package/dist/client/auth/providers/supabase.js +259 -0
- package/dist/client/auth/providers/workos.js +284 -0
- package/dist/client/auth/serverBridge.js +25 -0
- package/dist/client/auth/sessionManager.js +437 -0
- package/dist/client/core/infrastructure/baseRegistry.js +5 -1
- package/dist/client/index.js +25 -0
- package/dist/client/mcp/toolRegistry.js +11 -1
- package/dist/client/neurolink.js +218 -0
- package/dist/client/rag/ChunkerRegistry.js +2 -2
- package/dist/client/rag/metadata/MetadataExtractorRegistry.js +2 -2
- package/dist/client/rag/reranker/RerankerRegistry.js +2 -2
- package/dist/client/server/routes/agentRoutes.js +20 -2
- package/dist/client/types/authTypes.js +2 -1
- package/dist/core/infrastructure/baseRegistry.d.ts +3 -1
- package/dist/core/infrastructure/baseRegistry.js +5 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.js +25 -0
- package/dist/lib/auth/AuthProviderFactory.d.ts +71 -0
- package/dist/lib/auth/AuthProviderFactory.js +112 -0
- package/dist/lib/auth/AuthProviderRegistry.d.ts +33 -0
- package/dist/lib/auth/AuthProviderRegistry.js +191 -0
- package/dist/lib/auth/RequestContext.d.ts +23 -0
- package/dist/lib/auth/RequestContext.js +79 -0
- package/dist/lib/auth/authContext.d.ts +198 -0
- package/dist/lib/auth/authContext.js +315 -0
- package/dist/lib/auth/errors.d.ts +63 -0
- package/dist/lib/auth/errors.js +40 -0
- package/dist/lib/auth/index.d.ts +20 -8
- package/dist/lib/auth/index.js +35 -7
- package/dist/lib/auth/middleware/AuthMiddleware.d.ts +181 -0
- package/dist/lib/auth/middleware/AuthMiddleware.js +520 -0
- package/dist/lib/auth/middleware/rateLimitByUser.d.ts +282 -0
- package/dist/lib/auth/middleware/rateLimitByUser.js +555 -0
- package/dist/lib/auth/providers/BaseAuthProvider.d.ts +259 -0
- package/dist/lib/auth/providers/BaseAuthProvider.js +724 -0
- package/dist/lib/auth/providers/CognitoProvider.d.ts +61 -0
- package/dist/lib/auth/providers/CognitoProvider.js +305 -0
- package/dist/lib/auth/providers/KeycloakProvider.d.ts +61 -0
- package/dist/lib/auth/providers/KeycloakProvider.js +394 -0
- package/dist/lib/auth/providers/auth0.d.ts +59 -0
- package/dist/lib/auth/providers/auth0.js +275 -0
- package/dist/lib/auth/providers/betterAuth.d.ts +51 -0
- package/dist/lib/auth/providers/betterAuth.js +183 -0
- package/dist/lib/auth/providers/clerk.d.ts +65 -0
- package/dist/lib/auth/providers/clerk.js +318 -0
- package/dist/lib/auth/providers/custom.d.ts +64 -0
- package/dist/lib/auth/providers/custom.js +113 -0
- package/dist/lib/auth/providers/firebase.d.ts +63 -0
- package/dist/lib/auth/providers/firebase.js +227 -0
- package/dist/lib/auth/providers/jwt.d.ts +68 -0
- package/dist/lib/auth/providers/jwt.js +213 -0
- package/dist/lib/auth/providers/oauth2.d.ts +73 -0
- package/dist/lib/auth/providers/oauth2.js +304 -0
- package/dist/lib/auth/providers/supabase.d.ts +63 -0
- package/dist/lib/auth/providers/supabase.js +260 -0
- package/dist/lib/auth/providers/workos.d.ts +61 -0
- package/dist/lib/auth/providers/workos.js +285 -0
- package/dist/lib/auth/serverBridge.d.ts +14 -0
- package/dist/lib/auth/serverBridge.js +26 -0
- package/dist/lib/auth/sessionManager.d.ts +142 -0
- package/dist/lib/auth/sessionManager.js +438 -0
- package/dist/lib/core/infrastructure/baseRegistry.d.ts +3 -1
- package/dist/lib/core/infrastructure/baseRegistry.js +5 -1
- package/dist/lib/index.d.ts +1 -0
- package/dist/lib/index.js +25 -0
- package/dist/lib/mcp/toolRegistry.js +11 -1
- package/dist/lib/neurolink.d.ts +42 -1
- package/dist/lib/neurolink.js +218 -0
- package/dist/lib/rag/ChunkerRegistry.js +2 -2
- package/dist/lib/rag/metadata/MetadataExtractorRegistry.js +2 -2
- package/dist/lib/rag/reranker/RerankerRegistry.js +2 -2
- package/dist/lib/server/routes/agentRoutes.js +20 -2
- package/dist/lib/types/authTypes.d.ts +937 -1
- package/dist/lib/types/authTypes.js +2 -1
- package/dist/lib/types/configTypes.d.ts +46 -0
- package/dist/lib/types/generateTypes.d.ts +6 -0
- package/dist/lib/types/index.d.ts +1 -0
- package/dist/lib/types/streamTypes.d.ts +6 -0
- package/dist/mcp/toolRegistry.js +11 -1
- package/dist/neurolink.d.ts +42 -1
- package/dist/neurolink.js +218 -0
- package/dist/rag/ChunkerRegistry.js +2 -2
- package/dist/rag/metadata/MetadataExtractorRegistry.js +2 -2
- package/dist/rag/reranker/RerankerRegistry.js +2 -2
- package/dist/server/routes/agentRoutes.js +20 -2
- package/dist/types/authTypes.d.ts +937 -1
- package/dist/types/authTypes.js +2 -1
- package/dist/types/configTypes.d.ts +46 -0
- package/dist/types/generateTypes.d.ts +6 -0
- package/dist/types/index.d.ts +1 -0
- package/dist/types/streamTypes.d.ts +6 -0
- package/package.json +2 -1
|
@@ -0,0 +1,259 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* BaseAuthProvider - Abstract base class for authentication providers
|
|
3
|
+
*
|
|
4
|
+
* Provides common functionality for all auth providers including:
|
|
5
|
+
* - Token extraction (header, cookie, query param, custom function)
|
|
6
|
+
* - Session management (create, validate, refresh, revoke)
|
|
7
|
+
* - RBAC authorization (roles, permissions, wildcards, hierarchy)
|
|
8
|
+
* - Token validation utilities (JWT parsing, expiry checks)
|
|
9
|
+
* - Event emission for auth lifecycle hooks
|
|
10
|
+
* - Error handling via unified AuthError factory
|
|
11
|
+
*/
|
|
12
|
+
import { EventEmitter } from "events";
|
|
13
|
+
import type { AuthenticatedContext, AuthHealthCheck, AuthorizationResult, AuthProviderConfig, AuthProviderType, AuthRequestContext, AuthSession, AuthUser, MastraAuthProvider, RBACConfig, SessionConfig, SessionStorage, SessionValidationResult, TokenClaims, TokenValidationResult } from "../../types/authTypes.js";
|
|
14
|
+
/**
|
|
15
|
+
* @deprecated Use `AuthError` from `../errors.js` instead.
|
|
16
|
+
* Kept for backward compatibility with CognitoProvider / KeycloakProvider.
|
|
17
|
+
*/
|
|
18
|
+
export declare const AuthProviderError: {
|
|
19
|
+
codes: {
|
|
20
|
+
readonly INVALID_TOKEN: "AUTH-001";
|
|
21
|
+
readonly EXPIRED_TOKEN: "AUTH-002";
|
|
22
|
+
readonly MISSING_TOKEN: "AUTH-003";
|
|
23
|
+
readonly TOKEN_DECODE_FAILED: "AUTH-004";
|
|
24
|
+
readonly INVALID_SIGNATURE: "AUTH-005";
|
|
25
|
+
readonly SESSION_NOT_FOUND: "AUTH-010";
|
|
26
|
+
readonly SESSION_EXPIRED: "AUTH-011";
|
|
27
|
+
readonly SESSION_REVOKED: "AUTH-012";
|
|
28
|
+
readonly INSUFFICIENT_PERMISSIONS: "AUTH-020";
|
|
29
|
+
readonly INSUFFICIENT_ROLES: "AUTH-021";
|
|
30
|
+
readonly ACCESS_DENIED: "AUTH-022";
|
|
31
|
+
readonly USER_NOT_FOUND: "AUTH-030";
|
|
32
|
+
readonly USER_DISABLED: "AUTH-031";
|
|
33
|
+
readonly EMAIL_NOT_VERIFIED: "AUTH-032";
|
|
34
|
+
readonly MFA_REQUIRED: "AUTH-033";
|
|
35
|
+
readonly PROVIDER_ERROR: "AUTH-040";
|
|
36
|
+
readonly PROVIDER_NOT_FOUND: "AUTH-041";
|
|
37
|
+
readonly PROVIDER_INIT_FAILED: "AUTH-042";
|
|
38
|
+
readonly CONFIGURATION_ERROR: "AUTH-043";
|
|
39
|
+
readonly CREATION_FAILED: "AUTH-050";
|
|
40
|
+
readonly REGISTRATION_FAILED: "AUTH-051";
|
|
41
|
+
readonly DUPLICATE_REGISTRATION: "AUTH-052";
|
|
42
|
+
readonly MIDDLEWARE_ERROR: "AUTH-060";
|
|
43
|
+
readonly RATE_LIMITED: "AUTH-061";
|
|
44
|
+
readonly JWKS_FETCH_FAILED: "AUTH-070";
|
|
45
|
+
readonly JWKS_KEY_NOT_FOUND: "AUTH-071";
|
|
46
|
+
};
|
|
47
|
+
create: (code: "SESSION_NOT_FOUND" | "INVALID_TOKEN" | "EXPIRED_TOKEN" | "MISSING_TOKEN" | "TOKEN_DECODE_FAILED" | "INVALID_SIGNATURE" | "SESSION_EXPIRED" | "SESSION_REVOKED" | "INSUFFICIENT_PERMISSIONS" | "INSUFFICIENT_ROLES" | "ACCESS_DENIED" | "USER_NOT_FOUND" | "USER_DISABLED" | "EMAIL_NOT_VERIFIED" | "MFA_REQUIRED" | "PROVIDER_ERROR" | "PROVIDER_NOT_FOUND" | "PROVIDER_INIT_FAILED" | "CONFIGURATION_ERROR" | "CREATION_FAILED" | "REGISTRATION_FAILED" | "DUPLICATE_REGISTRATION" | "MIDDLEWARE_ERROR" | "RATE_LIMITED" | "JWKS_FETCH_FAILED" | "JWKS_KEY_NOT_FOUND", message: string, options?: {
|
|
48
|
+
retryable?: boolean;
|
|
49
|
+
details?: Record<string, unknown>;
|
|
50
|
+
cause?: Error;
|
|
51
|
+
} | undefined) => import("../../core/infrastructure/baseError.js").NeuroLinkFeatureError;
|
|
52
|
+
};
|
|
53
|
+
/**
|
|
54
|
+
* Default in-memory session storage
|
|
55
|
+
*/
|
|
56
|
+
export declare class InMemorySessionStorage implements SessionStorage {
|
|
57
|
+
private sessions;
|
|
58
|
+
private userSessions;
|
|
59
|
+
get(sessionId: string): Promise<AuthSession | null>;
|
|
60
|
+
save(session: AuthSession): Promise<void>;
|
|
61
|
+
delete(sessionId: string): Promise<void>;
|
|
62
|
+
deleteAllForUser(userId: string): Promise<void>;
|
|
63
|
+
getForUser(userId: string): Promise<AuthSession[]>;
|
|
64
|
+
exists(sessionId: string): Promise<boolean>;
|
|
65
|
+
touch(sessionId: string): Promise<void>;
|
|
66
|
+
clear(): Promise<void>;
|
|
67
|
+
/**
|
|
68
|
+
* Get session count (for testing/monitoring)
|
|
69
|
+
*/
|
|
70
|
+
get size(): number;
|
|
71
|
+
}
|
|
72
|
+
/**
|
|
73
|
+
* BaseAuthProvider - Abstract base class for all auth providers
|
|
74
|
+
*
|
|
75
|
+
* Subclasses must implement:
|
|
76
|
+
* - authenticateToken() - Validate and decode JWT/access tokens
|
|
77
|
+
*
|
|
78
|
+
* Optionally override:
|
|
79
|
+
* - getUser() - Fetch user by ID from provider
|
|
80
|
+
* - updateUserRoles() - Update user roles in provider
|
|
81
|
+
* - updateUserPermissions() - Update user permissions in provider
|
|
82
|
+
* - dispose() - Clean up resources
|
|
83
|
+
*/
|
|
84
|
+
export declare abstract class BaseAuthProvider implements MastraAuthProvider {
|
|
85
|
+
abstract readonly type: AuthProviderType;
|
|
86
|
+
readonly config: AuthProviderConfig;
|
|
87
|
+
protected sessionStorage: SessionStorage;
|
|
88
|
+
protected sessionConfig: SessionConfig;
|
|
89
|
+
protected rbacConfig: RBACConfig;
|
|
90
|
+
protected emitter: EventEmitter<any>;
|
|
91
|
+
constructor(config: AuthProviderConfig);
|
|
92
|
+
/**
|
|
93
|
+
* Validate and authenticate a token
|
|
94
|
+
* Subclasses must implement provider-specific token validation
|
|
95
|
+
*/
|
|
96
|
+
abstract authenticateToken(token: string, context?: AuthRequestContext): Promise<TokenValidationResult>;
|
|
97
|
+
/**
|
|
98
|
+
* Extract token using configured strategy
|
|
99
|
+
*
|
|
100
|
+
* Attempts extraction in order:
|
|
101
|
+
* 1. Header (Authorization: Bearer <token> by default)
|
|
102
|
+
* 2. Cookie
|
|
103
|
+
* 3. Query parameter
|
|
104
|
+
* 4. Custom function
|
|
105
|
+
*
|
|
106
|
+
* @param context - Request context containing headers, cookies, etc.
|
|
107
|
+
* @returns Extracted token or null if not found
|
|
108
|
+
*/
|
|
109
|
+
extractToken(context: AuthRequestContext): Promise<string | null>;
|
|
110
|
+
/**
|
|
111
|
+
* Create a new session for an authenticated user
|
|
112
|
+
*
|
|
113
|
+
* Session duration and metadata are derived from `this.sessionConfig` and
|
|
114
|
+
* the optional `context`. This matches the `AuthSessionManager` type
|
|
115
|
+
* signature: `createSession(user, context?)`.
|
|
116
|
+
*/
|
|
117
|
+
createSession(user: AuthUser, context?: AuthRequestContext): Promise<AuthSession>;
|
|
118
|
+
/**
|
|
119
|
+
* Validate an existing session
|
|
120
|
+
*/
|
|
121
|
+
validateSession(sessionId: string): Promise<SessionValidationResult>;
|
|
122
|
+
/**
|
|
123
|
+
* Refresh a session (extend expiration)
|
|
124
|
+
*/
|
|
125
|
+
refreshSession(sessionId: string): Promise<AuthSession>;
|
|
126
|
+
/**
|
|
127
|
+
* Revoke a session
|
|
128
|
+
*
|
|
129
|
+
* Marks the session as invalid rather than deleting it immediately.
|
|
130
|
+
* This keeps a tombstone so that "revoked" is distinguishable from
|
|
131
|
+
* "not found" during subsequent validation attempts.
|
|
132
|
+
*/
|
|
133
|
+
revokeSession(sessionId: string): Promise<void>;
|
|
134
|
+
/**
|
|
135
|
+
* Revoke all sessions for a user
|
|
136
|
+
*/
|
|
137
|
+
revokeAllSessions(userId: string): Promise<void>;
|
|
138
|
+
/**
|
|
139
|
+
* Check if a user is authorized for specific roles/permissions
|
|
140
|
+
*/
|
|
141
|
+
authorize(user: AuthUser, options: {
|
|
142
|
+
roles?: string[];
|
|
143
|
+
permissions?: string[];
|
|
144
|
+
requireAllRoles?: boolean;
|
|
145
|
+
}): Promise<AuthorizationResult>;
|
|
146
|
+
/**
|
|
147
|
+
* Check if user is a super admin
|
|
148
|
+
*/
|
|
149
|
+
protected isSuperAdmin(user: AuthUser): boolean;
|
|
150
|
+
/**
|
|
151
|
+
* Get effective roles including inherited roles from hierarchy (transitive)
|
|
152
|
+
*/
|
|
153
|
+
protected getEffectiveRoles(user: AuthUser): Set<string>;
|
|
154
|
+
/**
|
|
155
|
+
* Get effective permissions including role-based permissions
|
|
156
|
+
*/
|
|
157
|
+
protected getEffectivePermissions(user: AuthUser): Set<string>;
|
|
158
|
+
/**
|
|
159
|
+
* Check if a permission set grants a given permission.
|
|
160
|
+
* Supports exact match, global wildcard ("*"), and hierarchical wildcards
|
|
161
|
+
* (e.g. "tools:*" grants "tools:execute").
|
|
162
|
+
*/
|
|
163
|
+
private hasPermission;
|
|
164
|
+
/**
|
|
165
|
+
* Parse JWT token (without validation)
|
|
166
|
+
*/
|
|
167
|
+
protected parseJWT(token: string): TokenClaims | null;
|
|
168
|
+
/**
|
|
169
|
+
* Check if token is expired
|
|
170
|
+
*/
|
|
171
|
+
protected isTokenExpired(claims: TokenClaims, clockTolerance?: number): boolean;
|
|
172
|
+
/**
|
|
173
|
+
* Check if token is not yet valid
|
|
174
|
+
*/
|
|
175
|
+
protected isTokenNotYetValid(claims: TokenClaims, clockTolerance?: number): boolean;
|
|
176
|
+
/**
|
|
177
|
+
* Extract user from token claims
|
|
178
|
+
*/
|
|
179
|
+
protected extractUserFromClaims(claims: TokenClaims, options?: {
|
|
180
|
+
rolesClaimKey?: string;
|
|
181
|
+
permissionsClaimKey?: string;
|
|
182
|
+
idClaimKey?: string;
|
|
183
|
+
}): AuthUser;
|
|
184
|
+
/**
|
|
185
|
+
* Get user by ID
|
|
186
|
+
* Override in subclass if provider supports user lookup
|
|
187
|
+
*/
|
|
188
|
+
getUser?(_userId: string): Promise<AuthUser | null>;
|
|
189
|
+
/**
|
|
190
|
+
* Update user roles
|
|
191
|
+
* Override in subclass if provider supports role updates.
|
|
192
|
+
* Returns the user with updated roles.
|
|
193
|
+
*/
|
|
194
|
+
updateUserRoles?(_userId: string, _roles: string[]): Promise<AuthUser>;
|
|
195
|
+
/**
|
|
196
|
+
* Update user permissions
|
|
197
|
+
* Override in subclass if provider supports permission updates.
|
|
198
|
+
* Returns the user with updated permissions.
|
|
199
|
+
*/
|
|
200
|
+
updateUserPermissions?(_userId: string, _permissions: string[]): Promise<AuthUser>;
|
|
201
|
+
/**
|
|
202
|
+
* Clean up resources
|
|
203
|
+
*/
|
|
204
|
+
dispose(): Promise<void>;
|
|
205
|
+
/**
|
|
206
|
+
* Check if a user is authorized to perform an action
|
|
207
|
+
*/
|
|
208
|
+
authorizeUser(user: AuthUser, permission: string): Promise<AuthorizationResult>;
|
|
209
|
+
/**
|
|
210
|
+
* Check if user has specific roles
|
|
211
|
+
*/
|
|
212
|
+
authorizeRoles(user: AuthUser, roles: string[]): Promise<AuthorizationResult>;
|
|
213
|
+
/**
|
|
214
|
+
* Check if user has all specified permissions
|
|
215
|
+
*/
|
|
216
|
+
authorizePermissions(user: AuthUser, permissions: string[]): Promise<AuthorizationResult>;
|
|
217
|
+
/**
|
|
218
|
+
* Get an existing session by ID
|
|
219
|
+
*/
|
|
220
|
+
getSession(sessionId: string): Promise<AuthSession | null>;
|
|
221
|
+
/**
|
|
222
|
+
* Invalidate/destroy a session
|
|
223
|
+
*/
|
|
224
|
+
destroySession(sessionId: string): Promise<void>;
|
|
225
|
+
/**
|
|
226
|
+
* Get all active sessions for a user
|
|
227
|
+
*/
|
|
228
|
+
getUserSessions(userId: string): Promise<AuthSession[]>;
|
|
229
|
+
/**
|
|
230
|
+
* Invalidate all sessions for a user (global logout)
|
|
231
|
+
*/
|
|
232
|
+
destroyAllUserSessions(userId: string): Promise<void>;
|
|
233
|
+
/**
|
|
234
|
+
* Full request authentication flow
|
|
235
|
+
*
|
|
236
|
+
* Combines token extraction (with full strategy support), validation,
|
|
237
|
+
* and session creation/reuse.
|
|
238
|
+
*
|
|
239
|
+
* @param context - Request context
|
|
240
|
+
* @returns Authenticated context with user and session, or null
|
|
241
|
+
*/
|
|
242
|
+
authenticateRequest(context: AuthRequestContext): Promise<AuthenticatedContext | null>;
|
|
243
|
+
/**
|
|
244
|
+
* Check provider health
|
|
245
|
+
*/
|
|
246
|
+
healthCheck(): Promise<AuthHealthCheck>;
|
|
247
|
+
/**
|
|
248
|
+
* Subscribe to auth events
|
|
249
|
+
*/
|
|
250
|
+
on(event: string, listener: (...args: unknown[]) => void): void;
|
|
251
|
+
/**
|
|
252
|
+
* Unsubscribe from auth events
|
|
253
|
+
*/
|
|
254
|
+
off(event: string, listener: (...args: unknown[]) => void): void;
|
|
255
|
+
/**
|
|
256
|
+
* Emit an auth event
|
|
257
|
+
*/
|
|
258
|
+
protected emit(event: string, ...args: unknown[]): void;
|
|
259
|
+
}
|