All files / src/oauth index.ts

100% Statements 60/60
100% Branches 0/0
3.77% Functions 2/53
100% Lines 58/58

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                68x 68x 68x 130x 68x 68x                                           68x     68x 68x 68x 68x 68x 68x 68x 68x                   68x 68x 74x 68x 68x 68x 68x 68x       68x 68x 68x 68x 68x 68x 68x 68x 68x 68x 68x 68x 68x 68x       68x 68x 68x 68x 68x 68x 68x 68x 68x       68x 68x 68x 68x 68x 68x 68x 68x 68x 68x 68x 68x    
/**
 * OAuth Module Index
 *
 * Main entry point for OAuth functionality.
 * Re-exports all OAuth-related modules for easy import.
 */
 
// Configuration
export {
  loadOAuthConfig,
  validateStaticConfig,
  isOAuthEnabled,
  getAuthModeDescription,
  resetOAuthConfigCache,
} 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,
  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,
  healthHandler,
  protectedResourceHandler,
  getBaseUrl,
  authorizeHandler,
  pollHandler,
  callbackHandler,
  tokenHandler,
  registerHandler,
  getRegisteredClient,
  isValidRedirectUri,
} from "./endpoints/index";