All files / src/oauth index.ts

100% Statements 65/65
100% Branches 0/0
100% Functions 58/58
100% Lines 63/63

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 114                219x 227x 227x 227x 1853x 227x 227x 227x 227x                                           227x     219x 227x 227x 227x 227x 227x 227x                   219x 227x 277x 227x 227x 227x 227x 313x 227x 227x       219x 227x 227x 227x 227x 227x 227x 227x 227x 227x 227x 227x 227x 227x       219x 225x 225x 225x 225x 225x 225x 225x 225x 225x       219x 249x 274x 224x 248x 248x 248x 248x 248x 224x 224x 248x    
/**
 * 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,
  revokeGitLabToken,
} from './gitlab-device-flow';
 
// OAuth Endpoints
export {
  metadataHandler,
  protectedResourceHandler,
  getBaseUrl,
  authorizeHandler,
  pollHandler,
  callbackHandler,
  tokenHandler,
  registerHandler,
  getRegisteredClient,
  isValidRedirectUri,
  revokeHandler,
} from './endpoints/index';