{"version":3,"sources":["../../src/core/errors.ts","../../src/core/client.ts","../../src/risk-profile/client.ts"],"names":[],"mappings":"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","file":"index.mjs","sourcesContent":["/**\n * Error hierarchy for CGS SDK\n *\n * Provides structured error handling with specific error types\n * for different failure scenarios.\n */\n\nexport class CGSError extends Error {\n  constructor(\n    message: string,\n    public code: string,\n    public statusCode?: number,\n    public details?: Record<string, unknown>\n  ) {\n    super(message);\n    this.name = 'CGSError';\n    Object.setPrototypeOf(this, CGSError.prototype);\n  }\n}\n\nexport class NetworkError extends CGSError {\n  constructor(message: string, public originalError?: unknown) {\n    super(message, 'NETWORK_ERROR', undefined, { originalError });\n    this.name = 'NetworkError';\n    Object.setPrototypeOf(this, NetworkError.prototype);\n  }\n}\n\nexport class ValidationError extends CGSError {\n  constructor(message: string, fields?: string[]) {\n    super(message, 'VALIDATION_ERROR', 400, { fields });\n    this.name = 'ValidationError';\n    Object.setPrototypeOf(this, ValidationError.prototype);\n  }\n}\n\nexport class ServiceUnavailableError extends CGSError {\n  constructor(service: string) {\n    super(`${service} is unavailable`, 'SERVICE_UNAVAILABLE', 503, { service });\n    this.name = 'ServiceUnavailableError';\n    Object.setPrototypeOf(this, ServiceUnavailableError.prototype);\n  }\n}\n\nexport class ComplianceBlockedError extends CGSError {\n  constructor(reasons: string[]) {\n    super('Access blocked due to compliance rules', 'COMPLIANCE_BLOCKED', 403, { reasons });\n    this.name = 'ComplianceBlockedError';\n    Object.setPrototypeOf(this, ComplianceBlockedError.prototype);\n  }\n}\n\nexport class AuthenticationError extends CGSError {\n  constructor(message: string = 'Authentication failed') {\n    super(message, 'AUTHENTICATION_ERROR', 401);\n    this.name = 'AuthenticationError';\n    Object.setPrototypeOf(this, AuthenticationError.prototype);\n  }\n}\n\nexport class RateLimitError extends CGSError {\n  constructor(public retryAfter?: number) {\n    super('Rate limit exceeded', 'RATE_LIMIT_EXCEEDED', 429, { retryAfter });\n    this.name = 'RateLimitError';\n    Object.setPrototypeOf(this, RateLimitError.prototype);\n  }\n}\n\nexport class TimeoutError extends CGSError {\n  constructor(public timeout: number) {\n    super(`Request timeout after ${timeout}ms`, 'TIMEOUT', 408, { timeout });\n    this.name = 'TimeoutError';\n    Object.setPrototypeOf(this, TimeoutError.prototype);\n  }\n}\n\nexport class ComplianceError extends CGSError {\n  constructor(\n    message: string,\n    public originalError?: unknown,\n    code: string = 'COMPLIANCE_ERROR'\n  ) {\n    super(message, code, undefined, { originalError });\n    this.name = 'ComplianceError';\n    Object.setPrototypeOf(this, ComplianceError.prototype);\n  }\n}\n","/**\n * Base HTTP client for all CGS SDK clients\n *\n * Provides common functionality:\n * - Request/response handling\n * - Error handling\n * - Retry logic with exponential backoff\n * - Timeout management\n * - Debug logging\n */\n\nimport type { BaseClientConfig, RequiredBaseClientConfig } from './config';\nimport {\n  CGSError,\n  NetworkError,\n  TimeoutError,\n  AuthenticationError,\n  RateLimitError,\n  ServiceUnavailableError,\n} from './errors';\n\nexport abstract class BaseClient {\n  protected config: RequiredBaseClientConfig;\n\n  constructor(config: BaseClientConfig) {\n    this.config = {\n      baseURL: config.baseURL,\n      tenantId: config.tenantId,\n      apiKey: config.apiKey || '',\n      headers: config.headers || {},\n      timeout: config.timeout || 10000,\n      retries: config.retries || 3,\n      debug: config.debug || false,\n    };\n  }\n\n  /**\n   * Make an HTTP request with timeout and error handling\n   */\n  protected async request<T>(\n    endpoint: string,\n    options: RequestInit = {},\n    serviceURL?: string\n  ): Promise<T> {\n    const url = `${serviceURL || this.config.baseURL}${endpoint}`;\n\n    const headers: Record<string, string> = {\n      'Content-Type': 'application/json',\n      'X-Tenant-ID': this.config.tenantId,\n      ...this.config.headers,\n      ...((options.headers as Record<string, string>) || {}),\n    };\n\n    if (this.config.apiKey) {\n      headers['Authorization'] = `Bearer ${this.config.apiKey}`;\n    }\n\n    const controller = new AbortController();\n    const timeoutId = setTimeout(() => controller.abort(), this.config.timeout);\n\n    try {\n      if (this.config.debug) {\n        console.log(`[CGS SDK] ${options.method || 'GET'} ${url}`, {\n          headers,\n          body: options.body,\n        });\n      }\n\n      const response = await fetch(url, {\n        ...options,\n        headers,\n        signal: controller.signal,\n      });\n\n      clearTimeout(timeoutId);\n\n      const data = await response.json();\n\n      if (!response.ok) {\n        this.handleErrorResponse(response.status, data);\n      }\n\n      if (this.config.debug) {\n        console.log(`[CGS SDK] Response:`, data);\n      }\n\n      return data as T;\n    } catch (error) {\n      clearTimeout(timeoutId);\n\n      if (error instanceof Error) {\n        if (error.name === 'AbortError') {\n          throw new TimeoutError(this.config.timeout);\n        }\n        if (error instanceof CGSError) {\n          throw error;\n        }\n      }\n\n      throw new NetworkError('Network request failed', error);\n    }\n  }\n\n  /**\n   * Make an HTTP request with retry logic\n   */\n  protected async requestWithRetry<T>(\n    endpoint: string,\n    options: RequestInit = {},\n    serviceURL?: string,\n    retries: number = this.config.retries\n  ): Promise<T> {\n    let lastError: Error | undefined;\n\n    for (let attempt = 0; attempt <= retries; attempt++) {\n      try {\n        return await this.request<T>(endpoint, options, serviceURL);\n      } catch (error) {\n        lastError = error instanceof Error ? error : new Error('Unknown error');\n\n        // Don't retry on client errors (4xx) or authentication errors\n        if (\n          lastError instanceof CGSError &&\n          lastError.statusCode &&\n          lastError.statusCode >= 400 &&\n          lastError.statusCode < 500\n        ) {\n          throw lastError;\n        }\n\n        // Don't retry on last attempt\n        if (attempt === retries) {\n          break;\n        }\n\n        // Exponential backoff with jitter\n        const delay = Math.min(1000 * Math.pow(2, attempt) + Math.random() * 1000, 10000);\n        await new Promise((resolve) => setTimeout(resolve, delay));\n\n        if (this.config.debug) {\n          console.log(`[CGS SDK] Retry attempt ${attempt + 1}/${retries} after ${delay.toFixed(0)}ms`);\n        }\n      }\n    }\n\n    throw new NetworkError(`Request failed after ${retries} retries`, lastError);\n  }\n\n  /**\n   * Handle error responses from API\n   */\n  protected handleErrorResponse(status: number, data: any): never {\n    const message = data.error || data.message || `HTTP ${status}`;\n\n    switch (status) {\n      case 400:\n        throw new CGSError(message, 'BAD_REQUEST', 400, data);\n      case 401:\n        throw new AuthenticationError(message);\n      case 403:\n        throw new CGSError(message, 'FORBIDDEN', 403, data);\n      case 404:\n        throw new CGSError(message, 'NOT_FOUND', 404, data);\n      case 429:\n        const retryAfter = data.retry_after || data.retryAfter;\n        throw new RateLimitError(retryAfter);\n      case 500:\n      case 502:\n      case 503:\n      case 504:\n        throw new ServiceUnavailableError(message);\n      default:\n        throw new CGSError(message, 'UNKNOWN_ERROR', status, data);\n    }\n  }\n\n  /**\n   * Build query string from parameters\n   */\n  protected buildQueryString(params: Record<string, unknown>): string {\n    const query = new URLSearchParams();\n\n    Object.entries(params).forEach(([key, value]) => {\n      if (value !== undefined && value !== null) {\n        if (Array.isArray(value)) {\n          value.forEach((item) => query.append(key, String(item)));\n        } else {\n          query.append(key, String(value));\n        }\n      }\n    });\n\n    const queryString = query.toString();\n    return queryString ? `?${queryString}` : '';\n  }\n\n  /**\n   * Update client configuration\n   */\n  updateConfig(config: Partial<BaseClientConfig>): void {\n    this.config = {\n      ...this.config,\n      ...config,\n      headers: {\n        ...this.config.headers,\n        ...(config.headers || {}),\n      },\n    };\n  }\n\n  /**\n   * Get current configuration (readonly)\n   */\n  getConfig(): Readonly<BaseClientConfig> {\n    return { ...this.config };\n  }\n\n  /**\n   * Health check endpoint\n   */\n  async healthCheck(): Promise<{ status: string; timestamp: string }> {\n    return this.request('/api/v1/health');\n  }\n}\n","/**\n * RiskProfileClient - Customer Risk Profile Management\n *\n * Provides methods to create, retrieve, and manage customer risk profiles\n * in the CGS Compliance Platform.\n */\n\nimport { BaseClient } from '../core/client';\nimport type { BaseClientConfig } from '../core/config';\nimport type {\n  CustomerProfile,\n  CreateProfileRequest,\n  UpdateProfileRequest,\n  ProfileDetailsResponse,\n  ProfileFilters,\n  ProfileListResponse,\n  RiskDashboardMetrics,\n  RiskConfiguration,\n} from './types';\n\nexport class RiskProfileClient extends BaseClient {\n  constructor(config: BaseClientConfig) {\n    super(config);\n  }\n\n  // ============================================================================\n  // Profile Management\n  // ============================================================================\n\n  /**\n   * Create a new customer risk profile\n   *\n   * @param request - Profile creation data\n   * @returns Created customer profile\n   *\n   * @example\n   * ```typescript\n   * const profile = await client.createProfile({\n   *   customer_id: 'CUST-12345',\n   *   entity_type: 'individual',\n   *   customer_status: 'active',\n   *   full_name: 'John Doe',\n   *   email_address: 'john@example.com',\n   *   date_of_birth: '1990-01-15',\n   *   country_of_residence: 'US'\n   * });\n   * ```\n   */\n  async createProfile(request: CreateProfileRequest): Promise<CustomerProfile> {\n    return this.request<CustomerProfile>('/api/v1/profiles', {\n      method: 'POST',\n      body: JSON.stringify(request),\n    });\n  }\n\n  /**\n   * Get customer profile by customer ID\n   *\n   * Note: This searches for the profile using the customer_id field.\n   * Returns the first matching profile for the tenant.\n   *\n   * @param customerId - Customer ID to search for\n   * @returns Customer profile\n   *\n   * @example\n   * ```typescript\n   * const profile = await client.getProfile('CUST-12345');\n   * console.log('Risk score:', profile.risk_score);\n   * ```\n   */\n  async getProfile(customerId: string): Promise<CustomerProfile> {\n    const response = await this.queryProfiles({\n      search: customerId,\n      page: 1,\n      page_size: 1,\n    });\n\n    if (response.data.length === 0) {\n      throw new Error(`Profile not found for customer ID: ${customerId}`);\n    }\n\n    return response.data[0];\n  }\n\n  /**\n   * Get profile by UUID\n   *\n   * @param profileId - Profile UUID\n   * @returns Customer profile\n   */\n  async getProfileById(profileId: string): Promise<CustomerProfile> {\n    // Note: The dashboard endpoint provides detailed profile view\n    const details = await this.getProfileDetails(profileId);\n    return details.profile;\n  }\n\n  /**\n   * Get detailed profile information including risk factors and history\n   *\n   * @param profileId - Profile UUID\n   * @returns Detailed profile response with risk factors and history\n   *\n   * @example\n   * ```typescript\n   * const details = await client.getProfileDetails(profileId);\n   * console.log('Risk factors:', details.risk_factors);\n   * console.log('Risk history:', details.risk_history);\n   * console.log('Alert counts:', {\n   *   watchlist: details.watchlist_alert_count,\n   *   fraud: details.fraud_alert_count,\n   *   geo: details.geolocation_alert_count\n   * });\n   * ```\n   */\n  async getProfileDetails(profileId: string): Promise<ProfileDetailsResponse> {\n    return this.request<ProfileDetailsResponse>(\n      `/api/v1/risk-dashboard/profiles/${profileId}`\n    );\n  }\n\n  /**\n   * Update customer profile\n   *\n   * @param profileId - Profile UUID\n   * @param updates - Fields to update\n   * @returns Updated customer profile\n   *\n   * @example\n   * ```typescript\n   * const updated = await client.updateProfile(profileId, {\n   *   location: 'New York, USA',\n   *   location_compliance: 'compliant',\n   *   last_recorded_activity: new Date().toISOString()\n   * });\n   * ```\n   */\n  async updateProfile(\n    profileId: string,\n    updates: UpdateProfileRequest\n  ): Promise<CustomerProfile> {\n    return this.request<CustomerProfile>(`/api/v1/profiles/${profileId}`, {\n      method: 'PUT',\n      body: JSON.stringify(updates),\n    });\n  }\n\n  /**\n   * Manually recalculate risk score for a profile\n   *\n   * Triggers immediate risk score recalculation based on current risk factors.\n   *\n   * @param profileId - Profile UUID\n   * @param reason - Optional reason for recalculation\n   *\n   * @example\n   * ```typescript\n   * await client.recalculateRiskScore(profileId, 'Manual review completed');\n   * ```\n   */\n  async recalculateRiskScore(profileId: string, reason?: string): Promise<void> {\n    const body = reason ? JSON.stringify({ reason }) : undefined;\n    await this.request(`/api/v1/profiles/recalculate/${profileId}`, {\n      method: 'POST',\n      body,\n    });\n  }\n\n  // ============================================================================\n  // Query & Search\n  // ============================================================================\n\n  /**\n   * Query profiles with advanced filters\n   *\n   * @param filters - Filter criteria and pagination\n   * @returns Paginated list of profiles\n   *\n   * @example\n   * ```typescript\n   * const results = await client.queryProfiles({\n   *   risk_category: ['high', 'critical'],\n   *   kyc_status: ['pending'],\n   *   is_pep: true,\n   *   page: 1,\n   *   page_size: 20,\n   *   sort_by: 'risk_score',\n   *   sort_order: 'desc'\n   * });\n   *\n   * console.log(`Found ${results.total} high-risk profiles`);\n   * results.data.forEach(profile => {\n   *   console.log(`${profile.full_name}: ${profile.risk_score}`);\n   * });\n   * ```\n   */\n  async queryProfiles(filters: ProfileFilters = {}): Promise<ProfileListResponse> {\n    const queryString = this.buildQueryString(filters as Record<string, unknown>);\n    return this.request<ProfileListResponse>(\n      `/api/v1/risk-dashboard/profiles${queryString}`\n    );\n  }\n\n  /**\n   * Search profiles by text (searches name, email, customer_id, account_number)\n   *\n   * @param searchText - Text to search for\n   * @param limit - Maximum results to return (default: 10)\n   * @returns Array of matching profiles\n   */\n  async searchProfiles(searchText: string, limit: number = 10): Promise<CustomerProfile[]> {\n    const response = await this.queryProfiles({\n      search: searchText,\n      page: 1,\n      page_size: limit,\n    });\n    return response.data;\n  }\n\n  /**\n   * Get all high-risk profiles (high + critical)\n   *\n   * @param limit - Maximum results to return (default: 50)\n   * @returns Array of high-risk profiles\n   */\n  async getHighRiskProfiles(limit: number = 50): Promise<CustomerProfile[]> {\n    const response = await this.queryProfiles({\n      risk_category: ['high', 'critical'],\n      page: 1,\n      page_size: limit,\n      sort_by: 'risk_score',\n      sort_order: 'desc',\n    });\n    return response.data;\n  }\n\n  /**\n   * Get profiles requiring PEP review\n   *\n   * @param limit - Maximum results to return (default: 50)\n   * @returns Array of PEP profiles\n   */\n  async getPEPProfiles(limit: number = 50): Promise<CustomerProfile[]> {\n    const response = await this.queryProfiles({\n      is_pep: true,\n      page: 1,\n      page_size: limit,\n    });\n    return response.data;\n  }\n\n  /**\n   * Get profiles with sanctions matches\n   *\n   * @param limit - Maximum results to return (default: 50)\n   * @returns Array of sanctioned profiles\n   */\n  async getSanctionedProfiles(limit: number = 50): Promise<CustomerProfile[]> {\n    const response = await this.queryProfiles({\n      has_sanctions: true,\n      page: 1,\n      page_size: limit,\n    });\n    return response.data;\n  }\n\n  // ============================================================================\n  // Dashboard & Metrics\n  // ============================================================================\n\n  /**\n   * Get risk dashboard metrics and statistics\n   *\n   * @param startDate - Optional start date for metrics (ISO format)\n   * @param endDate - Optional end date for metrics (ISO format)\n   * @returns Dashboard metrics\n   *\n   * @example\n   * ```typescript\n   * const metrics = await client.getDashboardMetrics();\n   * console.log('Total risky profiles:', metrics.total_risky_profiles);\n   * console.log('Critical profiles:', metrics.total_critical_profiles);\n   * console.log('Average risk score:', metrics.average_risk_score);\n   *\n   * metrics.risk_distribution.forEach(item => {\n   *   console.log(`${item.category}: ${item.count} (${item.percentage}%)`);\n   * });\n   * ```\n   */\n  async getDashboardMetrics(\n    startDate?: string,\n    endDate?: string\n  ): Promise<RiskDashboardMetrics> {\n    const params: Record<string, string> = {};\n    if (startDate) params.start_date = startDate;\n    if (endDate) params.end_date = endDate;\n\n    const queryString = this.buildQueryString(params);\n    return this.request<RiskDashboardMetrics>(\n      `/api/v1/risk-dashboard/metrics${queryString}`\n    );\n  }\n\n  // ============================================================================\n  // Bulk Operations\n  // ============================================================================\n\n  /**\n   * Get or create profile (idempotent operation)\n   *\n   * Attempts to get existing profile by customer_id, creates if not found.\n   *\n   * @param customerId - Customer ID\n   * @param createRequest - Profile data to use if creating new profile\n   * @returns Existing or newly created profile\n   *\n   * @example\n   * ```typescript\n   * const profile = await client.getOrCreateProfile('CUST-123', {\n   *   customer_id: 'CUST-123',\n   *   entity_type: 'individual',\n   *   full_name: 'John Doe',\n   *   email_address: 'john@example.com'\n   * });\n   * ```\n   */\n  async getOrCreateProfile(\n    customerId: string,\n    createRequest: CreateProfileRequest\n  ): Promise<CustomerProfile> {\n    try {\n      return await this.getProfile(customerId);\n    } catch (error) {\n      // Profile doesn't exist, create it\n      return await this.createProfile(createRequest);\n    }\n  }\n\n  /**\n   * Batch get profiles by customer IDs\n   *\n   * @param customerIds - Array of customer IDs\n   * @returns Array of profiles (may be less than input if some not found)\n   */\n  async batchGetProfiles(customerIds: string[]): Promise<CustomerProfile[]> {\n    // Note: Current API doesn't have batch endpoint, so we query with search\n    // In production, this should use a dedicated batch endpoint\n    const profiles: CustomerProfile[] = [];\n\n    for (const customerId of customerIds) {\n      try {\n        const profile = await this.getProfile(customerId);\n        profiles.push(profile);\n      } catch (error) {\n        // Profile not found, skip\n        if (this.config.debug) {\n          console.warn(`[RiskProfileClient] Profile not found for: ${customerId}`);\n        }\n      }\n    }\n\n    return profiles;\n  }\n\n  // ============================================================================\n  // Configuration\n  // ============================================================================\n\n  /**\n   * Get risk configuration for tenant\n   *\n   * Returns the risk scoring weights and thresholds configured for the tenant.\n   *\n   * @returns Risk configuration\n   */\n  async getRiskConfiguration(): Promise<RiskConfiguration> {\n    return this.request<RiskConfiguration>('/api/v1/risk-config');\n  }\n\n  /**\n   * Update risk configuration for tenant\n   *\n   * Updates risk scoring weights and/or thresholds.\n   *\n   * @param config - Configuration updates\n   * @returns Updated risk configuration\n   */\n  async updateRiskConfiguration(\n    config: Partial<RiskConfiguration>\n  ): Promise<RiskConfiguration> {\n    return this.request<RiskConfiguration>('/api/v1/risk-config', {\n      method: 'PUT',\n      body: JSON.stringify(config),\n    });\n  }\n}\n"]}