@thetechfossil/auth2 1.2.19 → 1.2.21

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.
Files changed (38) hide show
  1. package/README.md +1 -1
  2. package/dist/index.components.d.mts +1 -0
  3. package/dist/index.components.d.ts +1 -0
  4. package/dist/index.components.js +275 -11
  5. package/dist/index.components.js.map +1 -1
  6. package/dist/index.components.mjs +275 -11
  7. package/dist/index.components.mjs.map +1 -1
  8. package/dist/index.d.mts +111 -3
  9. package/dist/index.d.ts +111 -3
  10. package/dist/index.js +470 -30
  11. package/dist/index.js.map +1 -1
  12. package/dist/index.mjs +471 -32
  13. package/dist/index.mjs.map +1 -1
  14. package/dist/index.next.d.mts +54 -1
  15. package/dist/index.next.d.ts +54 -1
  16. package/dist/index.next.js +332 -26
  17. package/dist/index.next.js.map +1 -1
  18. package/dist/index.next.mjs +332 -26
  19. package/dist/index.next.mjs.map +1 -1
  20. package/dist/index.next.server.d.mts +81 -2
  21. package/dist/index.next.server.d.ts +81 -2
  22. package/dist/index.next.server.js +406 -9
  23. package/dist/index.next.server.js.map +1 -1
  24. package/dist/index.next.server.mjs +403 -10
  25. package/dist/index.next.server.mjs.map +1 -1
  26. package/dist/index.node.d.mts +81 -2
  27. package/dist/index.node.d.ts +81 -2
  28. package/dist/index.node.js +406 -9
  29. package/dist/index.node.js.map +1 -1
  30. package/dist/index.node.mjs +403 -10
  31. package/dist/index.node.mjs.map +1 -1
  32. package/dist/index.react-native.d.mts +227 -0
  33. package/dist/index.react-native.d.ts +227 -0
  34. package/dist/index.react-native.js +1684 -0
  35. package/dist/index.react-native.js.map +1 -0
  36. package/dist/index.react-native.mjs +1648 -0
  37. package/dist/index.react-native.mjs.map +1 -0
  38. package/package.json +119 -102
@@ -14,6 +14,8 @@ interface User {
14
14
  phoneNumber?: string;
15
15
  avatar?: string;
16
16
  role: string;
17
+ emailVerified?: boolean;
18
+ twoFactorEnabled?: boolean;
17
19
  linkedAccounts?: LinkedAccount[];
18
20
  createdAt: string;
19
21
  updatedAt: string;
@@ -63,6 +65,7 @@ interface AuthConfig {
63
65
  localStorageKey?: string;
64
66
  token?: string;
65
67
  csrfEnabled?: boolean;
68
+ enableSocket?: boolean;
66
69
  upfilesConfig?: UpfilesConfig;
67
70
  }
68
71
  interface UpfilesConfig {
@@ -130,17 +133,57 @@ interface UseAuthReturn {
130
133
  }>;
131
134
  revokeSession: (sessionId: string) => Promise<AuthResponse>;
132
135
  revokeAllSessions: () => Promise<AuthResponse>;
136
+ adminCreateUser: (data: {
137
+ email: string;
138
+ name: string;
139
+ phoneNumber?: string;
140
+ password?: string;
141
+ }) => Promise<AuthResponse & {
142
+ user?: User;
143
+ }>;
144
+ adminVerifyUser: (userId: string) => Promise<AuthResponse>;
145
+ adminSuspendUser: (userId: string) => Promise<AuthResponse>;
146
+ adminActivateUser: (userId: string) => Promise<AuthResponse>;
133
147
  }
134
148
 
149
+ type SocketEventHandler<T = any> = (data: T) => void;
150
+
135
151
  declare class AuthService {
136
152
  private httpClient;
153
+ private socketService;
137
154
  private config;
138
155
  private token;
139
156
  private upfilesClient;
157
+ private cachedUser;
158
+ private userCacheTimestamp;
159
+ private readonly USER_CACHE_TTL;
140
160
  constructor(config: AuthConfig);
141
161
  private loadTokenFromStorage;
142
162
  private saveTokenToStorage;
143
163
  private removeTokenFromStorage;
164
+ private connectSocket;
165
+ private disconnectSocket;
166
+ onUserUpdated(handler: SocketEventHandler<{
167
+ user: User;
168
+ }>): () => void;
169
+ onSessionRevoked(handler: SocketEventHandler<{
170
+ sessionId?: string;
171
+ }>): () => void;
172
+ onAllSessionsRevoked(handler: SocketEventHandler<{}>): () => void;
173
+ onPasswordChanged(handler: SocketEventHandler<{}>): () => void;
174
+ on2FAChanged(handler: SocketEventHandler<{
175
+ enabled: boolean;
176
+ }>): () => void;
177
+ onSocketConnected(handler: SocketEventHandler<{}>): () => void;
178
+ onSocketDisconnected(handler: SocketEventHandler<{
179
+ reason: string;
180
+ }>): () => void;
181
+ onSocketError(handler: SocketEventHandler<{
182
+ error: string;
183
+ }>): () => void;
184
+ isSocketConnected(): boolean;
185
+ clearUserCache(): void;
186
+ private isCacheValid;
144
187
  isAuthenticated(): boolean;
145
188
  getToken(): string | null;
146
189
  getCurrentUser(): User | null;
@@ -154,7 +197,7 @@ declare class AuthService {
154
197
  verify(data: VerifyData): Promise<AuthResponse>;
155
198
  verifyEmailToken(token: string): Promise<AuthResponse>;
156
199
  logout(): Promise<void>;
157
- getProfile(): Promise<User>;
200
+ getProfile(forceRefresh?: boolean): Promise<User>;
158
201
  updateProfile(data: UpdateUserData): Promise<AuthResponse>;
159
202
  getAllUsers(): Promise<User[]>;
160
203
  getUserById(id: string): Promise<User>;
@@ -185,6 +228,14 @@ declare class AuthService {
185
228
  success: boolean;
186
229
  logs: any[];
187
230
  }>;
231
+ adminCreateUser(data: {
232
+ email: string;
233
+ name: string;
234
+ phoneNumber?: string;
235
+ password?: string;
236
+ }): Promise<AuthResponse & {
237
+ user?: User;
238
+ }>;
188
239
  adminVerifyUser(userId: string): Promise<AuthResponse>;
189
240
  adminForcePasswordReset(userId: string): Promise<AuthResponse>;
190
241
  adminSuspendUser(userId: string): Promise<AuthResponse>;
@@ -197,6 +248,7 @@ declare class HttpClient {
197
248
  private frontendBaseUrl;
198
249
  private baseUrl;
199
250
  constructor(baseUrl: string, defaultHeaders?: Record<string, string>);
251
+ private createUserFriendlyError;
200
252
  get<T>(endpoint: string, headers?: Record<string, string>): Promise<T>;
201
253
  post<T>(endpoint: string, data?: any, headers?: Record<string, string>): Promise<T>;
202
254
  put<T>(endpoint: string, data?: any, headers?: Record<string, string>): Promise<T>;
@@ -224,6 +276,33 @@ declare class AuthClient extends AuthService {
224
276
  getAllUsers(): Promise<User[]>;
225
277
  }
226
278
 
279
+ interface TokenVerifierConfig {
280
+ authServiceUrl: string;
281
+ cacheTTL?: number;
282
+ cacheEnabled?: boolean;
283
+ }
284
+ declare class TokenVerifier {
285
+ private config;
286
+ private cache;
287
+ private cleanupInterval;
288
+ constructor(config: TokenVerifierConfig);
289
+ verifyToken(token: string): Promise<User | null>;
290
+ invalidateToken(token: string): void;
291
+ clearCache(): void;
292
+ getCacheStats(): {
293
+ size: number;
294
+ enabled: boolean;
295
+ ttl: number;
296
+ };
297
+ destroy(): void;
298
+ private getFromCache;
299
+ private setCache;
300
+ private startCleanup;
301
+ }
302
+ declare function createTokenVerifier(config: TokenVerifierConfig): TokenVerifier;
303
+ declare function getTokenVerifier(): TokenVerifier;
304
+ declare function verifyToken(token: string): Promise<User | null>;
305
+
227
306
  declare class NextServerAuth extends AuthClient {
228
307
  constructor(config: AuthConfig);
229
308
  static parseTokenFromHeaders(headers: Headers): string | null;
@@ -281,4 +360,4 @@ interface AuthMiddlewareConfig {
281
360
  declare function authMiddleware(config?: AuthMiddlewareConfig): (request: NextRequestLike) => NextResponseLike;
282
361
  declare function createAuthMiddleware(config?: AuthMiddlewareConfig): (request: NextRequestLike) => NextResponseLike;
283
362
 
284
- export { type AuditLog, AuthClient, type AuthConfig, type AuthResponse, AuthServer, AuthService, type CsrfTokenResponse, HttpClient, type LinkedAccount, type LoginData, type MFASetup, NextServerAuth, type OAuthConfig, type OAuthProvider, type RegisterData, type Session, type UpdateUserData, type UpfilesConfig, type UseAuthReturn, type User, type VerifyData, auth, authMiddleware, createAuthMiddleware, currentUser, getAuthServer, redirectIfAuthenticated, requireAuth };
363
+ export { type AuditLog, AuthClient, type AuthConfig, type AuthResponse, AuthServer, AuthService, type CsrfTokenResponse, HttpClient, type LinkedAccount, type LoginData, type MFASetup, NextServerAuth, type OAuthConfig, type OAuthProvider, type RegisterData, type Session, TokenVerifier, type UpdateUserData, type UpfilesConfig, type UseAuthReturn, type User, type VerifyData, auth, authMiddleware, createAuthMiddleware, createTokenVerifier, currentUser, getAuthServer, getTokenVerifier, redirectIfAuthenticated, requireAuth, verifyToken };
@@ -14,6 +14,8 @@ interface User {
14
14
  phoneNumber?: string;
15
15
  avatar?: string;
16
16
  role: string;
17
+ emailVerified?: boolean;
18
+ twoFactorEnabled?: boolean;
17
19
  linkedAccounts?: LinkedAccount[];
18
20
  createdAt: string;
19
21
  updatedAt: string;
@@ -63,6 +65,7 @@ interface AuthConfig {
63
65
  localStorageKey?: string;
64
66
  token?: string;
65
67
  csrfEnabled?: boolean;
68
+ enableSocket?: boolean;
66
69
  upfilesConfig?: UpfilesConfig;
67
70
  }
68
71
  interface UpfilesConfig {
@@ -130,17 +133,57 @@ interface UseAuthReturn {
130
133
  }>;
131
134
  revokeSession: (sessionId: string) => Promise<AuthResponse>;
132
135
  revokeAllSessions: () => Promise<AuthResponse>;
136
+ adminCreateUser: (data: {
137
+ email: string;
138
+ name: string;
139
+ phoneNumber?: string;
140
+ password?: string;
141
+ }) => Promise<AuthResponse & {
142
+ user?: User;
143
+ }>;
144
+ adminVerifyUser: (userId: string) => Promise<AuthResponse>;
145
+ adminSuspendUser: (userId: string) => Promise<AuthResponse>;
146
+ adminActivateUser: (userId: string) => Promise<AuthResponse>;
133
147
  }
134
148
 
149
+ type SocketEventHandler<T = any> = (data: T) => void;
150
+
135
151
  declare class AuthService {
136
152
  private httpClient;
153
+ private socketService;
137
154
  private config;
138
155
  private token;
139
156
  private upfilesClient;
157
+ private cachedUser;
158
+ private userCacheTimestamp;
159
+ private readonly USER_CACHE_TTL;
140
160
  constructor(config: AuthConfig);
141
161
  private loadTokenFromStorage;
142
162
  private saveTokenToStorage;
143
163
  private removeTokenFromStorage;
164
+ private connectSocket;
165
+ private disconnectSocket;
166
+ onUserUpdated(handler: SocketEventHandler<{
167
+ user: User;
168
+ }>): () => void;
169
+ onSessionRevoked(handler: SocketEventHandler<{
170
+ sessionId?: string;
171
+ }>): () => void;
172
+ onAllSessionsRevoked(handler: SocketEventHandler<{}>): () => void;
173
+ onPasswordChanged(handler: SocketEventHandler<{}>): () => void;
174
+ on2FAChanged(handler: SocketEventHandler<{
175
+ enabled: boolean;
176
+ }>): () => void;
177
+ onSocketConnected(handler: SocketEventHandler<{}>): () => void;
178
+ onSocketDisconnected(handler: SocketEventHandler<{
179
+ reason: string;
180
+ }>): () => void;
181
+ onSocketError(handler: SocketEventHandler<{
182
+ error: string;
183
+ }>): () => void;
184
+ isSocketConnected(): boolean;
185
+ clearUserCache(): void;
186
+ private isCacheValid;
144
187
  isAuthenticated(): boolean;
145
188
  getToken(): string | null;
146
189
  getCurrentUser(): User | null;
@@ -154,7 +197,7 @@ declare class AuthService {
154
197
  verify(data: VerifyData): Promise<AuthResponse>;
155
198
  verifyEmailToken(token: string): Promise<AuthResponse>;
156
199
  logout(): Promise<void>;
157
- getProfile(): Promise<User>;
200
+ getProfile(forceRefresh?: boolean): Promise<User>;
158
201
  updateProfile(data: UpdateUserData): Promise<AuthResponse>;
159
202
  getAllUsers(): Promise<User[]>;
160
203
  getUserById(id: string): Promise<User>;
@@ -185,6 +228,14 @@ declare class AuthService {
185
228
  success: boolean;
186
229
  logs: any[];
187
230
  }>;
231
+ adminCreateUser(data: {
232
+ email: string;
233
+ name: string;
234
+ phoneNumber?: string;
235
+ password?: string;
236
+ }): Promise<AuthResponse & {
237
+ user?: User;
238
+ }>;
188
239
  adminVerifyUser(userId: string): Promise<AuthResponse>;
189
240
  adminForcePasswordReset(userId: string): Promise<AuthResponse>;
190
241
  adminSuspendUser(userId: string): Promise<AuthResponse>;
@@ -197,6 +248,7 @@ declare class HttpClient {
197
248
  private frontendBaseUrl;
198
249
  private baseUrl;
199
250
  constructor(baseUrl: string, defaultHeaders?: Record<string, string>);
251
+ private createUserFriendlyError;
200
252
  get<T>(endpoint: string, headers?: Record<string, string>): Promise<T>;
201
253
  post<T>(endpoint: string, data?: any, headers?: Record<string, string>): Promise<T>;
202
254
  put<T>(endpoint: string, data?: any, headers?: Record<string, string>): Promise<T>;
@@ -224,6 +276,33 @@ declare class AuthClient extends AuthService {
224
276
  getAllUsers(): Promise<User[]>;
225
277
  }
226
278
 
279
+ interface TokenVerifierConfig {
280
+ authServiceUrl: string;
281
+ cacheTTL?: number;
282
+ cacheEnabled?: boolean;
283
+ }
284
+ declare class TokenVerifier {
285
+ private config;
286
+ private cache;
287
+ private cleanupInterval;
288
+ constructor(config: TokenVerifierConfig);
289
+ verifyToken(token: string): Promise<User | null>;
290
+ invalidateToken(token: string): void;
291
+ clearCache(): void;
292
+ getCacheStats(): {
293
+ size: number;
294
+ enabled: boolean;
295
+ ttl: number;
296
+ };
297
+ destroy(): void;
298
+ private getFromCache;
299
+ private setCache;
300
+ private startCleanup;
301
+ }
302
+ declare function createTokenVerifier(config: TokenVerifierConfig): TokenVerifier;
303
+ declare function getTokenVerifier(): TokenVerifier;
304
+ declare function verifyToken(token: string): Promise<User | null>;
305
+
227
306
  declare class NextServerAuth extends AuthClient {
228
307
  constructor(config: AuthConfig);
229
308
  static parseTokenFromHeaders(headers: Headers): string | null;
@@ -281,4 +360,4 @@ interface AuthMiddlewareConfig {
281
360
  declare function authMiddleware(config?: AuthMiddlewareConfig): (request: NextRequestLike) => NextResponseLike;
282
361
  declare function createAuthMiddleware(config?: AuthMiddlewareConfig): (request: NextRequestLike) => NextResponseLike;
283
362
 
284
- export { type AuditLog, AuthClient, type AuthConfig, type AuthResponse, AuthServer, AuthService, type CsrfTokenResponse, HttpClient, type LinkedAccount, type LoginData, type MFASetup, NextServerAuth, type OAuthConfig, type OAuthProvider, type RegisterData, type Session, type UpdateUserData, type UpfilesConfig, type UseAuthReturn, type User, type VerifyData, auth, authMiddleware, createAuthMiddleware, currentUser, getAuthServer, redirectIfAuthenticated, requireAuth };
363
+ export { type AuditLog, AuthClient, type AuthConfig, type AuthResponse, AuthServer, AuthService, type CsrfTokenResponse, HttpClient, type LinkedAccount, type LoginData, type MFASetup, NextServerAuth, type OAuthConfig, type OAuthProvider, type RegisterData, type Session, TokenVerifier, type UpdateUserData, type UpfilesConfig, type UseAuthReturn, type User, type VerifyData, auth, authMiddleware, createAuthMiddleware, createTokenVerifier, currentUser, getAuthServer, getTokenVerifier, redirectIfAuthenticated, requireAuth, verifyToken };