mirror of
https://github.com/Memo-2023/mana-monorepo.git
synced 2026-05-16 13:39:41 +02:00
Applied formatting to 1487+ files using pnpm format:write - TypeScript/JavaScript files - Svelte components - Astro pages - JSON configs - Markdown docs 13 files still need manual review (Astro JSX comments)
102 lines
2.6 KiB
TypeScript
102 lines
2.6 KiB
TypeScript
// Types
|
|
export * from './types';
|
|
|
|
// Core utilities
|
|
import { createAuthService as _createAuthService } from './core/authService';
|
|
export { createAuthService } from './core/authService';
|
|
export type { AuthService } from './core/authService';
|
|
|
|
import { createTokenManager as _createTokenManager } from './core/tokenManager';
|
|
export { createTokenManager } from './core/tokenManager';
|
|
export type { TokenManager, TokenManagerConfig } from './core/tokenManager';
|
|
|
|
export {
|
|
decodeToken,
|
|
isTokenValidLocally,
|
|
isTokenExpired,
|
|
getUserFromToken,
|
|
getTokenExpirationTime,
|
|
getTimeUntilExpiration,
|
|
isB2BUser,
|
|
getB2BInfo,
|
|
shouldDisableRevenueCat,
|
|
getAppSettings,
|
|
} from './core/jwtUtils';
|
|
|
|
// Storage adapter
|
|
import {
|
|
setStorageAdapter as _setStorageAdapter,
|
|
createLocalStorageAdapter as _createLocalStorageAdapter,
|
|
} from './adapters/storage';
|
|
export {
|
|
setStorageAdapter,
|
|
getStorageAdapter,
|
|
isStorageInitialized,
|
|
createLocalStorageAdapter,
|
|
createMemoryStorageAdapter,
|
|
} from './adapters/storage';
|
|
|
|
// Device adapter
|
|
import {
|
|
setDeviceAdapter as _setDeviceAdapter,
|
|
createWebDeviceAdapter as _createWebDeviceAdapter,
|
|
} from './adapters/device';
|
|
export {
|
|
setDeviceAdapter,
|
|
getDeviceAdapter,
|
|
isDeviceInitialized,
|
|
createWebDeviceAdapter,
|
|
} from './adapters/device';
|
|
|
|
// Network adapter
|
|
import {
|
|
setNetworkAdapter as _setNetworkAdapter,
|
|
createWebNetworkAdapter as _createWebNetworkAdapter,
|
|
} from './adapters/network';
|
|
export {
|
|
setNetworkAdapter,
|
|
getNetworkAdapter,
|
|
isDeviceConnected,
|
|
hasStableConnection,
|
|
createWebNetworkAdapter,
|
|
} from './adapters/network';
|
|
|
|
// Fetch interceptor
|
|
import { setupFetchInterceptor as _setupFetchInterceptor } from './interceptors/fetchInterceptor';
|
|
export {
|
|
setupFetchInterceptor,
|
|
setupTokenObservers,
|
|
getInterceptorStatus,
|
|
} from './interceptors/fetchInterceptor';
|
|
export type { FetchInterceptorConfig } from './interceptors/fetchInterceptor';
|
|
|
|
/**
|
|
* Initialize auth service with all adapters for web
|
|
*
|
|
* @example
|
|
* ```typescript
|
|
* import { initializeWebAuth } from '@manacore/shared-auth';
|
|
*
|
|
* const { authService, tokenManager } = initializeWebAuth({
|
|
* baseUrl: 'https://api.example.com',
|
|
* });
|
|
* ```
|
|
*/
|
|
export function initializeWebAuth(config: {
|
|
baseUrl: string;
|
|
storageKeys?: Partial<import('./types').StorageKeys>;
|
|
}) {
|
|
// Set up adapters
|
|
_setStorageAdapter(_createLocalStorageAdapter());
|
|
_setDeviceAdapter(_createWebDeviceAdapter());
|
|
_setNetworkAdapter(_createWebNetworkAdapter());
|
|
|
|
// Create services
|
|
const authService = _createAuthService(config);
|
|
const tokenManager = _createTokenManager(authService);
|
|
|
|
// Set up interceptor
|
|
_setupFetchInterceptor(authService, tokenManager);
|
|
|
|
return { authService, tokenManager };
|
|
}
|