All files / src/oauth index.ts

100% Statements 64/64
100% Branches 0/0
100% Functions 57/57
100% Lines 62/62

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 113                88x 90x 90x 90x 165x 90x 90x 90x 90x                                           90x     88x 90x 90x 90x 90x 90x 90x 90x                   88x 90x 90x 90x 90x 90x 90x 95x 90x 90x       88x 90x 90x 90x 90x 90x 90x 90x 90x 90x 90x 90x 90x 90x       88x 90x 90x 90x 90x 90x 90x 90x 90x       88x 90x 90x 90x 90x 90x 90x 90x 90x 90x 90x    
/**
 * 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,
  PostgreSQLStorageBackend,
  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';