All files / src/profiles index.ts

100% Statements 30/30
100% Branches 0/0
100% Functions 25/25
100% Lines 27/27

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                                  2x                     3x 3x 3x         3x 3x       5x     2x 3x 3x 3x 3x 3x           2x 3x 3x 3x 3x 3x 3x 3x 3x       2x 3x 3x   3x 3x    
/**
 * Profiles module - configuration profiles for GitLab MCP
 *
 * @example
 * ```typescript
 * import { loadAndApplyProfile, ProfileLoader } from './profiles';
 *
 * // Apply a profile by name
 * await loadAndApplyProfile('work');
 *
 * // Or use the loader directly
 * const loader = new ProfileLoader();
 * const profiles = await loader.listProfiles();
 * ```
 */
 
// Types
export {
  Profile,
  Preset,
  ProfilesConfig,
  ProfileInfo,
  ProfileValidationResult,
  AuthConfig,
  PatAuth,
  OAuthAuth,
  CookieAuth,
  FeatureFlags,
  ProfileSchema,
  PresetSchema,
  ProfilesConfigSchema,
  // Project-level types
  ProjectPreset,
  ProjectProfile,
  ProjectConfig,
  ProjectPresetSchema,
  ProjectProfileSchema,
} from "./types";
 
// Loader
export { ProfileLoader, loadProfile, getProfileNameFromEnv } from "./loader";
 
// Applicator
export {
  applyProfile,
  applyPreset,
  loadAndApplyProfile,
  loadAndApplyPreset,
  tryApplyProfileFromEnv,
  ApplyProfileResult,
  ApplyPresetResult,
} from "./applicator";
 
// Project-level config loader
export {
  loadProjectConfig,
  findProjectConfig,
  validateProjectPreset,
  validateProjectProfile,
  getProjectConfigSummary,
  PROJECT_CONFIG_DIR,
  PROJECT_PRESET_FILE,
  PROJECT_PROFILE_FILE,
} from "./project-loader";
 
// Scope enforcer
export {
  ScopeEnforcer,
  ScopeViolationError,
  ScopeConfig,
  extractProjectsFromArgs,
  enforceArgsScope,
} from "./scope-enforcer";