@gofreego/tsutils 0.1.12 → 0.1.14
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/dist/index.d.mts +185 -57
- package/dist/index.d.ts +185 -57
- package/dist/index.js +162 -143
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +160 -141
- package/dist/index.mjs.map +1 -1
- package/package.json +2 -2
package/dist/index.d.mts
CHANGED
|
@@ -511,6 +511,15 @@ interface HttpResponse<T = any> {
|
|
|
511
511
|
statusText: string;
|
|
512
512
|
headers: Headers;
|
|
513
513
|
}
|
|
514
|
+
interface ErrorData {
|
|
515
|
+
code: number;
|
|
516
|
+
message: string;
|
|
517
|
+
}
|
|
518
|
+
interface HttpError extends Error {
|
|
519
|
+
status?: number;
|
|
520
|
+
statusText?: string;
|
|
521
|
+
data?: ErrorData;
|
|
522
|
+
}
|
|
514
523
|
|
|
515
524
|
declare class HttpClient {
|
|
516
525
|
private baseURL;
|
|
@@ -519,12 +528,16 @@ declare class HttpClient {
|
|
|
519
528
|
constructor(config?: HttpClientConfig);
|
|
520
529
|
private buildURL;
|
|
521
530
|
private request;
|
|
531
|
+
setDefaultHeader(key: string, value: string): void;
|
|
532
|
+
removeDefaultHeader(key: string): void;
|
|
533
|
+
getDefaultHeaders(): Record<string, string>;
|
|
522
534
|
get<T = any>(url: string, config?: RequestConfig): Promise<HttpResponse<T>>;
|
|
523
535
|
post<T = any>(url: string, data?: any, config?: RequestConfig): Promise<HttpResponse<T>>;
|
|
524
536
|
put<T = any>(url: string, data?: any, config?: RequestConfig): Promise<HttpResponse<T>>;
|
|
525
537
|
patch<T = any>(url: string, data?: any, config?: RequestConfig): Promise<HttpResponse<T>>;
|
|
526
538
|
delete<T = any>(url: string, config?: RequestConfig): Promise<HttpResponse<T>>;
|
|
527
539
|
}
|
|
540
|
+
declare function extractErrorMessage(error: any): string;
|
|
528
541
|
|
|
529
542
|
/**
|
|
530
543
|
* Merges class names together
|
|
@@ -591,64 +604,179 @@ declare class LocalStorage {
|
|
|
591
604
|
|
|
592
605
|
declare const getHighlighter: () => Promise<Highlighter>;
|
|
593
606
|
|
|
594
|
-
|
|
595
|
-
|
|
596
|
-
|
|
597
|
-
|
|
598
|
-
|
|
599
|
-
|
|
600
|
-
|
|
601
|
-
|
|
602
|
-
/**
|
|
603
|
-
|
|
604
|
-
|
|
605
|
-
|
|
606
|
-
|
|
607
|
-
|
|
608
|
-
|
|
609
|
-
|
|
610
|
-
|
|
611
|
-
|
|
612
|
-
|
|
613
|
-
|
|
607
|
+
interface User {
|
|
608
|
+
id: string;
|
|
609
|
+
uuid: string;
|
|
610
|
+
username: string;
|
|
611
|
+
email?: string | undefined;
|
|
612
|
+
phone?: string | undefined;
|
|
613
|
+
/** Display name for the user */
|
|
614
|
+
name?: string | undefined;
|
|
615
|
+
/** URL to user's avatar image */
|
|
616
|
+
avatarUrl?: string | undefined;
|
|
617
|
+
emailVerified: boolean;
|
|
618
|
+
phoneVerified: boolean;
|
|
619
|
+
deactivated: boolean;
|
|
620
|
+
isActive: boolean;
|
|
621
|
+
isLocked: boolean;
|
|
622
|
+
failedLoginAttempts: number;
|
|
623
|
+
lastLoginAt?: string | undefined;
|
|
624
|
+
passwordChangedAt: string;
|
|
625
|
+
createdAt: string;
|
|
626
|
+
updatedAt: string;
|
|
627
|
+
}
|
|
628
|
+
interface SignInMetadata {
|
|
629
|
+
/** Unique device identifier */
|
|
630
|
+
deviceId?: string | undefined;
|
|
631
|
+
/** Human-readable device name */
|
|
632
|
+
deviceName?: string | undefined;
|
|
633
|
+
/** web, mobile, desktop, tablet */
|
|
634
|
+
deviceType?: string | undefined;
|
|
635
|
+
lat?: number | undefined;
|
|
636
|
+
long?: number | undefined;
|
|
637
|
+
}
|
|
638
|
+
/** SignInRequest for user authentication */
|
|
639
|
+
interface SignInRequest {
|
|
640
|
+
username: string;
|
|
641
|
+
password?: string | undefined;
|
|
642
|
+
otp?: string | undefined;
|
|
643
|
+
rememberMe?: boolean | undefined;
|
|
644
|
+
metadata?: SignInMetadata | undefined;
|
|
645
|
+
profiles?: boolean | undefined;
|
|
646
|
+
includePermissions?: boolean | undefined;
|
|
647
|
+
verificationId?: string | undefined;
|
|
648
|
+
}
|
|
649
|
+
/** SignInResponse with authentication tokens and user data */
|
|
650
|
+
interface SignInResponse {
|
|
651
|
+
accessToken: string;
|
|
652
|
+
refreshToken: string;
|
|
653
|
+
/** Access token expiration (Unix timestamp) */
|
|
654
|
+
expiresAt: string;
|
|
655
|
+
/** Refresh token expiration (Unix timestamp) */
|
|
656
|
+
refreshExpiresAt: string;
|
|
657
|
+
user: User | undefined;
|
|
658
|
+
/** Session UUID for tracking */
|
|
659
|
+
sessionId: string;
|
|
660
|
+
message: string;
|
|
661
|
+
}
|
|
662
|
+
/** RefreshTokenRequest to refresh access token */
|
|
663
|
+
interface RefreshTokenRequest {
|
|
664
|
+
refreshToken: string;
|
|
665
|
+
deviceId?: string | undefined;
|
|
666
|
+
profiles?: boolean | undefined;
|
|
667
|
+
includePermissions?: boolean | undefined;
|
|
668
|
+
}
|
|
669
|
+
/** RefreshTokenResponse with new tokens */
|
|
670
|
+
interface RefreshTokenResponse {
|
|
671
|
+
accessToken: string;
|
|
672
|
+
/** New refresh token (rotation) */
|
|
673
|
+
refreshToken: string;
|
|
674
|
+
expiresAt: string;
|
|
675
|
+
refreshExpiresAt: string;
|
|
676
|
+
message: string;
|
|
677
|
+
}
|
|
678
|
+
/** LogoutRequest to end user session */
|
|
679
|
+
interface LogoutRequest {
|
|
680
|
+
/** Specific session to logout */
|
|
681
|
+
sessionId?: string | undefined;
|
|
682
|
+
/** Logout from all devices */
|
|
683
|
+
allSessions?: boolean | undefined;
|
|
684
|
+
}
|
|
685
|
+
/** LogoutResponse */
|
|
686
|
+
interface LogoutResponse {
|
|
687
|
+
success: boolean;
|
|
688
|
+
message: string;
|
|
689
|
+
/** Number of sessions ended */
|
|
690
|
+
sessionsTerminated: number;
|
|
691
|
+
}
|
|
692
|
+
/** GenerateLoginTokenRequest - user is identified from Authorization header */
|
|
693
|
+
interface GenerateLoginTokenRequest {
|
|
694
|
+
/** Token TTL in seconds (default: 60, max: 300) */
|
|
695
|
+
ttlSeconds?: number | undefined;
|
|
696
|
+
}
|
|
697
|
+
/** SignInWithLoginTokenRequest - sign in using a single-use login token */
|
|
698
|
+
interface SignInWithLoginTokenRequest {
|
|
699
|
+
loginToken: string;
|
|
700
|
+
metadata?: SignInMetadata | undefined;
|
|
701
|
+
profiles?: boolean | undefined;
|
|
702
|
+
includePermissions?: boolean | undefined;
|
|
703
|
+
}
|
|
704
|
+
/** GenerateLoginTokenResponse - short-lived single-use token */
|
|
705
|
+
interface GenerateLoginTokenResponse {
|
|
706
|
+
/** Opaque single-use token (prefix: ltk_) */
|
|
707
|
+
loginToken: string;
|
|
708
|
+
/** Unix timestamp (seconds), TTL ~1 min */
|
|
709
|
+
expiresAt: string;
|
|
614
710
|
}
|
|
615
|
-
/**
|
|
616
|
-
* AuthProvider verifies a JWT embedded in document.cookie.
|
|
617
|
-
* Checks for existence, decodes the signature, and evaluates the `exp` claim.
|
|
618
|
-
* Redirects heavily dependent or kicks custom callbacks if failed.
|
|
619
|
-
*/
|
|
620
|
-
declare const AuthProvider: React.FC<AuthProviderProps>;
|
|
621
|
-
/**
|
|
622
|
-
* React Hook for easily accessing the authenticated JWT context
|
|
623
|
-
*/
|
|
624
|
-
declare const useAuth: () => AuthContextType;
|
|
625
711
|
|
|
626
|
-
|
|
627
|
-
|
|
628
|
-
|
|
629
|
-
*/
|
|
630
|
-
|
|
631
|
-
|
|
632
|
-
|
|
633
|
-
|
|
634
|
-
|
|
635
|
-
|
|
636
|
-
|
|
637
|
-
/**
|
|
638
|
-
|
|
639
|
-
|
|
640
|
-
|
|
641
|
-
|
|
642
|
-
|
|
643
|
-
|
|
644
|
-
|
|
645
|
-
|
|
646
|
-
|
|
647
|
-
|
|
648
|
-
|
|
649
|
-
|
|
650
|
-
|
|
651
|
-
|
|
712
|
+
interface ISessionManager {
|
|
713
|
+
/** Persist session to localStorage and set the auth header. */
|
|
714
|
+
save(session: SignInResponse): void;
|
|
715
|
+
/** Partially update stored session fields (e.g. after token refresh). */
|
|
716
|
+
patch(updates: Partial<SignInResponse>): void;
|
|
717
|
+
/** Clear session from localStorage and remove the auth header. */
|
|
718
|
+
clear(): void;
|
|
719
|
+
/** Return the full stored session, or null if absent / unparseable. */
|
|
720
|
+
get(): SignInResponse | null;
|
|
721
|
+
/** Return the stored access token, or undefined. */
|
|
722
|
+
getAccessToken(): string | undefined;
|
|
723
|
+
/** Return the stored refresh token, or undefined. */
|
|
724
|
+
getRefreshToken(): string | undefined;
|
|
725
|
+
/** Return the session UUID, or undefined. */
|
|
726
|
+
getSessionId(): string | undefined;
|
|
727
|
+
/** True when a non-expired access token is stored. */
|
|
728
|
+
isAuthenticated(): boolean;
|
|
729
|
+
/** Called on app startup: restore the auth header or wipe an expired session. */
|
|
730
|
+
initialize(): void;
|
|
731
|
+
}
|
|
732
|
+
declare class SessionManager implements ISessionManager {
|
|
733
|
+
private static instance;
|
|
734
|
+
private readonly key;
|
|
735
|
+
private readonly client;
|
|
736
|
+
private cache;
|
|
737
|
+
private constructor();
|
|
738
|
+
static getInstance(client: HttpClient): SessionManager;
|
|
739
|
+
save(session: SignInResponse): void;
|
|
740
|
+
patch(updates: Partial<SignInResponse>): void;
|
|
741
|
+
clear(): void;
|
|
742
|
+
get(): SignInResponse | null;
|
|
743
|
+
getAccessToken(): string | undefined;
|
|
744
|
+
getRefreshToken(): string | undefined;
|
|
745
|
+
getSessionId(): string | undefined;
|
|
746
|
+
isAuthenticated(): boolean;
|
|
747
|
+
initialize(): void;
|
|
748
|
+
private setAuthToken;
|
|
749
|
+
private clearAuthToken;
|
|
750
|
+
}
|
|
751
|
+
|
|
752
|
+
interface IAuthService {
|
|
753
|
+
signIn(request: SignInRequest): Promise<SignInResponse>;
|
|
754
|
+
refreshToken(request?: Partial<RefreshTokenRequest>): Promise<RefreshTokenResponse>;
|
|
755
|
+
logout(request: LogoutRequest): Promise<LogoutResponse>;
|
|
756
|
+
generateLoginToken(request?: GenerateLoginTokenRequest): Promise<GenerateLoginTokenResponse>;
|
|
757
|
+
signInWithLoginToken(request: SignInWithLoginTokenRequest): Promise<SignInResponse>;
|
|
758
|
+
isAuthenticated(): boolean;
|
|
759
|
+
getAccessToken(): string | undefined;
|
|
760
|
+
getSessionDetails(): SignInResponse | null;
|
|
761
|
+
getSessionId(): string | undefined;
|
|
762
|
+
initializeAuth(): void;
|
|
763
|
+
}
|
|
764
|
+
declare class AuthService implements IAuthService {
|
|
765
|
+
private static instance;
|
|
766
|
+
private readonly client;
|
|
767
|
+
private readonly sessionManager;
|
|
768
|
+
private constructor();
|
|
769
|
+
static getInstance(client: HttpClient): AuthService;
|
|
770
|
+
signIn(request: SignInRequest): Promise<SignInResponse>;
|
|
771
|
+
refreshToken(request?: Partial<RefreshTokenRequest>): Promise<RefreshTokenResponse>;
|
|
772
|
+
logout(request: LogoutRequest): Promise<LogoutResponse>;
|
|
773
|
+
generateLoginToken(request?: GenerateLoginTokenRequest): Promise<GenerateLoginTokenResponse>;
|
|
774
|
+
signInWithLoginToken(request: SignInWithLoginTokenRequest): Promise<SignInResponse>;
|
|
775
|
+
isAuthenticated(): boolean;
|
|
776
|
+
getAccessToken(): string | undefined;
|
|
777
|
+
getSessionDetails(): SignInResponse | null;
|
|
778
|
+
getSessionId(): string | undefined;
|
|
779
|
+
initializeAuth(): void;
|
|
652
780
|
}
|
|
653
781
|
|
|
654
|
-
export {
|
|
782
|
+
export { AuthService, ConfirmDialog, type ConfirmDialogProps, type ErrorData, type GenerateLoginTokenRequest, type GenerateLoginTokenResponse, HttpClient, type HttpClientConfig, type HttpError, type HttpResponse, type IAuthService, type ISessionManager, LocalStorage, type LogoutRequest, type LogoutResponse, type MenuItem, type Notification, type NotificationContextType, NotificationProvider, type NotificationProviderProps, ReadmeViewer, type RefreshTokenRequest, type RefreshTokenResponse, type RequestConfig, type ResolvedThemeMode, SessionManager, SidebarLayout, type SidebarLayoutProps, type SignInMetadata, type SignInRequest, type SignInResponse, type SignInWithLoginTokenRequest, type Theme, type ThemeContextValue, type ThemeMode, ThemeProvider, ThemeToggle, type User, borderRadius, cn, darkTheme, debounce, elevation, extractErrorMessage, fontSize, fontWeight, formatDate, getHighlighter, lightTheme, lineHeight, spacing, throttle, tokens, transition, useNotification, useTheme, zIndex };
|
package/dist/index.d.ts
CHANGED
|
@@ -511,6 +511,15 @@ interface HttpResponse<T = any> {
|
|
|
511
511
|
statusText: string;
|
|
512
512
|
headers: Headers;
|
|
513
513
|
}
|
|
514
|
+
interface ErrorData {
|
|
515
|
+
code: number;
|
|
516
|
+
message: string;
|
|
517
|
+
}
|
|
518
|
+
interface HttpError extends Error {
|
|
519
|
+
status?: number;
|
|
520
|
+
statusText?: string;
|
|
521
|
+
data?: ErrorData;
|
|
522
|
+
}
|
|
514
523
|
|
|
515
524
|
declare class HttpClient {
|
|
516
525
|
private baseURL;
|
|
@@ -519,12 +528,16 @@ declare class HttpClient {
|
|
|
519
528
|
constructor(config?: HttpClientConfig);
|
|
520
529
|
private buildURL;
|
|
521
530
|
private request;
|
|
531
|
+
setDefaultHeader(key: string, value: string): void;
|
|
532
|
+
removeDefaultHeader(key: string): void;
|
|
533
|
+
getDefaultHeaders(): Record<string, string>;
|
|
522
534
|
get<T = any>(url: string, config?: RequestConfig): Promise<HttpResponse<T>>;
|
|
523
535
|
post<T = any>(url: string, data?: any, config?: RequestConfig): Promise<HttpResponse<T>>;
|
|
524
536
|
put<T = any>(url: string, data?: any, config?: RequestConfig): Promise<HttpResponse<T>>;
|
|
525
537
|
patch<T = any>(url: string, data?: any, config?: RequestConfig): Promise<HttpResponse<T>>;
|
|
526
538
|
delete<T = any>(url: string, config?: RequestConfig): Promise<HttpResponse<T>>;
|
|
527
539
|
}
|
|
540
|
+
declare function extractErrorMessage(error: any): string;
|
|
528
541
|
|
|
529
542
|
/**
|
|
530
543
|
* Merges class names together
|
|
@@ -591,64 +604,179 @@ declare class LocalStorage {
|
|
|
591
604
|
|
|
592
605
|
declare const getHighlighter: () => Promise<Highlighter>;
|
|
593
606
|
|
|
594
|
-
|
|
595
|
-
|
|
596
|
-
|
|
597
|
-
|
|
598
|
-
|
|
599
|
-
|
|
600
|
-
|
|
601
|
-
|
|
602
|
-
/**
|
|
603
|
-
|
|
604
|
-
|
|
605
|
-
|
|
606
|
-
|
|
607
|
-
|
|
608
|
-
|
|
609
|
-
|
|
610
|
-
|
|
611
|
-
|
|
612
|
-
|
|
613
|
-
|
|
607
|
+
interface User {
|
|
608
|
+
id: string;
|
|
609
|
+
uuid: string;
|
|
610
|
+
username: string;
|
|
611
|
+
email?: string | undefined;
|
|
612
|
+
phone?: string | undefined;
|
|
613
|
+
/** Display name for the user */
|
|
614
|
+
name?: string | undefined;
|
|
615
|
+
/** URL to user's avatar image */
|
|
616
|
+
avatarUrl?: string | undefined;
|
|
617
|
+
emailVerified: boolean;
|
|
618
|
+
phoneVerified: boolean;
|
|
619
|
+
deactivated: boolean;
|
|
620
|
+
isActive: boolean;
|
|
621
|
+
isLocked: boolean;
|
|
622
|
+
failedLoginAttempts: number;
|
|
623
|
+
lastLoginAt?: string | undefined;
|
|
624
|
+
passwordChangedAt: string;
|
|
625
|
+
createdAt: string;
|
|
626
|
+
updatedAt: string;
|
|
627
|
+
}
|
|
628
|
+
interface SignInMetadata {
|
|
629
|
+
/** Unique device identifier */
|
|
630
|
+
deviceId?: string | undefined;
|
|
631
|
+
/** Human-readable device name */
|
|
632
|
+
deviceName?: string | undefined;
|
|
633
|
+
/** web, mobile, desktop, tablet */
|
|
634
|
+
deviceType?: string | undefined;
|
|
635
|
+
lat?: number | undefined;
|
|
636
|
+
long?: number | undefined;
|
|
637
|
+
}
|
|
638
|
+
/** SignInRequest for user authentication */
|
|
639
|
+
interface SignInRequest {
|
|
640
|
+
username: string;
|
|
641
|
+
password?: string | undefined;
|
|
642
|
+
otp?: string | undefined;
|
|
643
|
+
rememberMe?: boolean | undefined;
|
|
644
|
+
metadata?: SignInMetadata | undefined;
|
|
645
|
+
profiles?: boolean | undefined;
|
|
646
|
+
includePermissions?: boolean | undefined;
|
|
647
|
+
verificationId?: string | undefined;
|
|
648
|
+
}
|
|
649
|
+
/** SignInResponse with authentication tokens and user data */
|
|
650
|
+
interface SignInResponse {
|
|
651
|
+
accessToken: string;
|
|
652
|
+
refreshToken: string;
|
|
653
|
+
/** Access token expiration (Unix timestamp) */
|
|
654
|
+
expiresAt: string;
|
|
655
|
+
/** Refresh token expiration (Unix timestamp) */
|
|
656
|
+
refreshExpiresAt: string;
|
|
657
|
+
user: User | undefined;
|
|
658
|
+
/** Session UUID for tracking */
|
|
659
|
+
sessionId: string;
|
|
660
|
+
message: string;
|
|
661
|
+
}
|
|
662
|
+
/** RefreshTokenRequest to refresh access token */
|
|
663
|
+
interface RefreshTokenRequest {
|
|
664
|
+
refreshToken: string;
|
|
665
|
+
deviceId?: string | undefined;
|
|
666
|
+
profiles?: boolean | undefined;
|
|
667
|
+
includePermissions?: boolean | undefined;
|
|
668
|
+
}
|
|
669
|
+
/** RefreshTokenResponse with new tokens */
|
|
670
|
+
interface RefreshTokenResponse {
|
|
671
|
+
accessToken: string;
|
|
672
|
+
/** New refresh token (rotation) */
|
|
673
|
+
refreshToken: string;
|
|
674
|
+
expiresAt: string;
|
|
675
|
+
refreshExpiresAt: string;
|
|
676
|
+
message: string;
|
|
677
|
+
}
|
|
678
|
+
/** LogoutRequest to end user session */
|
|
679
|
+
interface LogoutRequest {
|
|
680
|
+
/** Specific session to logout */
|
|
681
|
+
sessionId?: string | undefined;
|
|
682
|
+
/** Logout from all devices */
|
|
683
|
+
allSessions?: boolean | undefined;
|
|
684
|
+
}
|
|
685
|
+
/** LogoutResponse */
|
|
686
|
+
interface LogoutResponse {
|
|
687
|
+
success: boolean;
|
|
688
|
+
message: string;
|
|
689
|
+
/** Number of sessions ended */
|
|
690
|
+
sessionsTerminated: number;
|
|
691
|
+
}
|
|
692
|
+
/** GenerateLoginTokenRequest - user is identified from Authorization header */
|
|
693
|
+
interface GenerateLoginTokenRequest {
|
|
694
|
+
/** Token TTL in seconds (default: 60, max: 300) */
|
|
695
|
+
ttlSeconds?: number | undefined;
|
|
696
|
+
}
|
|
697
|
+
/** SignInWithLoginTokenRequest - sign in using a single-use login token */
|
|
698
|
+
interface SignInWithLoginTokenRequest {
|
|
699
|
+
loginToken: string;
|
|
700
|
+
metadata?: SignInMetadata | undefined;
|
|
701
|
+
profiles?: boolean | undefined;
|
|
702
|
+
includePermissions?: boolean | undefined;
|
|
703
|
+
}
|
|
704
|
+
/** GenerateLoginTokenResponse - short-lived single-use token */
|
|
705
|
+
interface GenerateLoginTokenResponse {
|
|
706
|
+
/** Opaque single-use token (prefix: ltk_) */
|
|
707
|
+
loginToken: string;
|
|
708
|
+
/** Unix timestamp (seconds), TTL ~1 min */
|
|
709
|
+
expiresAt: string;
|
|
614
710
|
}
|
|
615
|
-
/**
|
|
616
|
-
* AuthProvider verifies a JWT embedded in document.cookie.
|
|
617
|
-
* Checks for existence, decodes the signature, and evaluates the `exp` claim.
|
|
618
|
-
* Redirects heavily dependent or kicks custom callbacks if failed.
|
|
619
|
-
*/
|
|
620
|
-
declare const AuthProvider: React.FC<AuthProviderProps>;
|
|
621
|
-
/**
|
|
622
|
-
* React Hook for easily accessing the authenticated JWT context
|
|
623
|
-
*/
|
|
624
|
-
declare const useAuth: () => AuthContextType;
|
|
625
711
|
|
|
626
|
-
|
|
627
|
-
|
|
628
|
-
|
|
629
|
-
*/
|
|
630
|
-
|
|
631
|
-
|
|
632
|
-
|
|
633
|
-
|
|
634
|
-
|
|
635
|
-
|
|
636
|
-
|
|
637
|
-
/**
|
|
638
|
-
|
|
639
|
-
|
|
640
|
-
|
|
641
|
-
|
|
642
|
-
|
|
643
|
-
|
|
644
|
-
|
|
645
|
-
|
|
646
|
-
|
|
647
|
-
|
|
648
|
-
|
|
649
|
-
|
|
650
|
-
|
|
651
|
-
|
|
712
|
+
interface ISessionManager {
|
|
713
|
+
/** Persist session to localStorage and set the auth header. */
|
|
714
|
+
save(session: SignInResponse): void;
|
|
715
|
+
/** Partially update stored session fields (e.g. after token refresh). */
|
|
716
|
+
patch(updates: Partial<SignInResponse>): void;
|
|
717
|
+
/** Clear session from localStorage and remove the auth header. */
|
|
718
|
+
clear(): void;
|
|
719
|
+
/** Return the full stored session, or null if absent / unparseable. */
|
|
720
|
+
get(): SignInResponse | null;
|
|
721
|
+
/** Return the stored access token, or undefined. */
|
|
722
|
+
getAccessToken(): string | undefined;
|
|
723
|
+
/** Return the stored refresh token, or undefined. */
|
|
724
|
+
getRefreshToken(): string | undefined;
|
|
725
|
+
/** Return the session UUID, or undefined. */
|
|
726
|
+
getSessionId(): string | undefined;
|
|
727
|
+
/** True when a non-expired access token is stored. */
|
|
728
|
+
isAuthenticated(): boolean;
|
|
729
|
+
/** Called on app startup: restore the auth header or wipe an expired session. */
|
|
730
|
+
initialize(): void;
|
|
731
|
+
}
|
|
732
|
+
declare class SessionManager implements ISessionManager {
|
|
733
|
+
private static instance;
|
|
734
|
+
private readonly key;
|
|
735
|
+
private readonly client;
|
|
736
|
+
private cache;
|
|
737
|
+
private constructor();
|
|
738
|
+
static getInstance(client: HttpClient): SessionManager;
|
|
739
|
+
save(session: SignInResponse): void;
|
|
740
|
+
patch(updates: Partial<SignInResponse>): void;
|
|
741
|
+
clear(): void;
|
|
742
|
+
get(): SignInResponse | null;
|
|
743
|
+
getAccessToken(): string | undefined;
|
|
744
|
+
getRefreshToken(): string | undefined;
|
|
745
|
+
getSessionId(): string | undefined;
|
|
746
|
+
isAuthenticated(): boolean;
|
|
747
|
+
initialize(): void;
|
|
748
|
+
private setAuthToken;
|
|
749
|
+
private clearAuthToken;
|
|
750
|
+
}
|
|
751
|
+
|
|
752
|
+
interface IAuthService {
|
|
753
|
+
signIn(request: SignInRequest): Promise<SignInResponse>;
|
|
754
|
+
refreshToken(request?: Partial<RefreshTokenRequest>): Promise<RefreshTokenResponse>;
|
|
755
|
+
logout(request: LogoutRequest): Promise<LogoutResponse>;
|
|
756
|
+
generateLoginToken(request?: GenerateLoginTokenRequest): Promise<GenerateLoginTokenResponse>;
|
|
757
|
+
signInWithLoginToken(request: SignInWithLoginTokenRequest): Promise<SignInResponse>;
|
|
758
|
+
isAuthenticated(): boolean;
|
|
759
|
+
getAccessToken(): string | undefined;
|
|
760
|
+
getSessionDetails(): SignInResponse | null;
|
|
761
|
+
getSessionId(): string | undefined;
|
|
762
|
+
initializeAuth(): void;
|
|
763
|
+
}
|
|
764
|
+
declare class AuthService implements IAuthService {
|
|
765
|
+
private static instance;
|
|
766
|
+
private readonly client;
|
|
767
|
+
private readonly sessionManager;
|
|
768
|
+
private constructor();
|
|
769
|
+
static getInstance(client: HttpClient): AuthService;
|
|
770
|
+
signIn(request: SignInRequest): Promise<SignInResponse>;
|
|
771
|
+
refreshToken(request?: Partial<RefreshTokenRequest>): Promise<RefreshTokenResponse>;
|
|
772
|
+
logout(request: LogoutRequest): Promise<LogoutResponse>;
|
|
773
|
+
generateLoginToken(request?: GenerateLoginTokenRequest): Promise<GenerateLoginTokenResponse>;
|
|
774
|
+
signInWithLoginToken(request: SignInWithLoginTokenRequest): Promise<SignInResponse>;
|
|
775
|
+
isAuthenticated(): boolean;
|
|
776
|
+
getAccessToken(): string | undefined;
|
|
777
|
+
getSessionDetails(): SignInResponse | null;
|
|
778
|
+
getSessionId(): string | undefined;
|
|
779
|
+
initializeAuth(): void;
|
|
652
780
|
}
|
|
653
781
|
|
|
654
|
-
export {
|
|
782
|
+
export { AuthService, ConfirmDialog, type ConfirmDialogProps, type ErrorData, type GenerateLoginTokenRequest, type GenerateLoginTokenResponse, HttpClient, type HttpClientConfig, type HttpError, type HttpResponse, type IAuthService, type ISessionManager, LocalStorage, type LogoutRequest, type LogoutResponse, type MenuItem, type Notification, type NotificationContextType, NotificationProvider, type NotificationProviderProps, ReadmeViewer, type RefreshTokenRequest, type RefreshTokenResponse, type RequestConfig, type ResolvedThemeMode, SessionManager, SidebarLayout, type SidebarLayoutProps, type SignInMetadata, type SignInRequest, type SignInResponse, type SignInWithLoginTokenRequest, type Theme, type ThemeContextValue, type ThemeMode, ThemeProvider, ThemeToggle, type User, borderRadius, cn, darkTheme, debounce, elevation, extractErrorMessage, fontSize, fontWeight, formatDate, getHighlighter, lightTheme, lineHeight, spacing, throttle, tokens, transition, useNotification, useTheme, zIndex };
|