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                81x 83x 83x 83x 156x 83x 83x 83x 83x                                           83x     81x 83x 83x 83x 83x 83x 83x 83x                   81x 83x 83x 83x 83x 83x 83x 88x 83x 83x       81x 83x 83x 83x 83x 83x 83x 83x 83x 83x 83x 83x 83x 83x       81x 83x 83x 83x 83x 83x 83x 83x 83x       81x 83x 83x 83x 83x 83x 83x 83x 83x 83x 83x    
/**
 * 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";