All files / src/oauth index.ts

100% Statements 63/63
100% Branches 0/0
100% Functions 56/56
100% Lines 61/61

Press n or j to go to the next uncovered block, b, p or k for the previous block.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112                93x 95x 95x 95x 171x 95x 95x 95x 95x                                           95x     93x 95x 95x 95x 95x 95x 95x                   93x 95x 95x 95x 95x 95x 95x 102x 95x 95x       93x 95x 95x 95x 95x 95x 95x 95x 95x 95x 95x 95x 95x 95x       93x 95x 95x 95x 95x 95x 95x 95x 95x       93x 95x 95x 95x 95x 95x 95x 95x 95x 95x 95x    
/**
 * OAuth Module Index
 *
 * Main entry point for OAuth functionality.
 * Re-exports all OAuth-related modules for easy import.
 */
 
// Configuration
export {
  loadOAuthConfig,
  validateStaticConfig,
  ConfigurationError,
  isOAuthEnabled,
  getAuthModeDescription,
  resetOAuthConfigCache,
  isStaticTokenConfigured,
  isAuthenticationConfigured,
} from './config';
export type { OAuthConfig } from './config';
 
// Types
export type {
  OAuthSession,
  AuthCodeFlowState,
  DeviceFlowState,
  AuthorizationCode,
  GitLabTokenResponse,
  GitLabDeviceResponse,
  TokenContext,
  GitLabUserInfo,
  MCPTokenResponse,
  OAuthErrorResponse,
  DeviceFlowPollStatus,
  DeviceFlowPollResponse,
  MCPTokenPayload,
} from './types';
 
// Session Store
export { sessionStore, SessionStore } from './session-store';
 
// Storage Backends
export {
  createStorageBackend,
  getStorageType,
  validateStorageConfig,
  MemoryStorageBackend,
  FileStorageBackend,
  STORAGE_DATA_VERSION,
} from './storage';
export type {
  SessionStorageBackend,
  StorageConfig,
  SessionStorageStats,
  StorageData,
} from './storage';
 
// Token Context (AsyncLocalStorage)
export {
  runWithTokenContext,
  getTokenContext,
  getGitLabTokenFromContext,
  getGitLabUserIdFromContext,
  getGitLabUsernameFromContext,
  getSessionIdFromContext,
  getGitLabApiUrlFromContext,
  getInstanceLabelFromContext,
  isInOAuthContext,
} from './token-context';
 
// Token Utilities
export {
  createJWT,
  verifyJWT,
  verifyMCPToken,
  generateCodeVerifier,
  generateCodeChallenge,
  verifyCodeChallenge,
  generateRandomString,
  generateUUID,
  generateAuthorizationCode,
  generateSessionId,
  generateRefreshToken,
  isTokenExpiringSoon,
  calculateTokenExpiry,
} from './token-utils';
 
// GitLab OAuth Flows (Device Flow and Authorization Code Flow)
export {
  initiateDeviceFlow,
  pollDeviceFlowOnce,
  pollForToken,
  refreshGitLabToken,
  getGitLabUser,
  validateGitLabToken,
  exchangeGitLabAuthCode,
  buildGitLabAuthUrl,
} from './gitlab-device-flow';
 
// OAuth Endpoints
export {
  metadataHandler,
  protectedResourceHandler,
  getBaseUrl,
  authorizeHandler,
  pollHandler,
  callbackHandler,
  tokenHandler,
  registerHandler,
  getRegisteredClient,
  isValidRedirectUri,
} from './endpoints/index';