{"version":3,"sources":["../src/client/browser-client.ts","../src/browser.ts"],"names":[],"mappings":"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","file":"browser.mjs","sourcesContent":["/**\n * Browser-safe client for Ragatanga MCP SDK\n * \n * This client is designed to be used in browser environments like Next.js client components.\n * It avoids using Node.js specific features and dependencies that cause issues in the browser.\n */\n\nimport { MCPOptions } from './types';\n\n// Basic error class that doesn't rely on inheritance from problematic modules\nexport class BrowserMCPError extends Error {\n  status?: number;\n  code?: string;\n\n  constructor(message: string, options?: { status?: number; code?: string }) {\n    super(message);\n    this.name = 'BrowserMCPError';\n    this.status = options?.status;\n    this.code = options?.code;\n\n    // Ensures proper prototype chain for instanceof checks\n    Object.setPrototypeOf(this, BrowserMCPError.prototype);\n  }\n}\n\n/**\n * Browser-safe MCP client implementation\n */\nexport class BrowserMCPClient {\n  private baseUrl: string;\n  private tenantId?: string;\n  private apiKey?: string;\n  private token?: string;\n  private defaultOptions: RequestInit;\n  private defaultTimeout: number;\n\n  /**\n   * Creates a new browser-safe MCP client\n   * @param options - Client options\n   */\n  constructor(options: MCPOptions = {}) {\n    this.baseUrl = options.baseUrl || 'https://api.mcp.ai';\n    this.tenantId = options.tenantId;\n    this.apiKey = options.apiKey;\n    this.token = options.token;\n    this.defaultOptions = options.defaultFetchOptions || {};\n    this.defaultTimeout = options.defaultTimeout || 10000;\n  }\n\n  /**\n   * Make a request to the MCP API\n   */\n  async request<T = any>(\n    path: string,\n    options: {\n      method?: string;\n      body?: any;\n      headers?: Record<string, string>;\n      timeout?: number;\n    } = {}\n  ): Promise<T> {\n    const { method = 'GET', body, headers = {}, timeout = this.defaultTimeout } = options;\n    \n    // Construct URL\n    const url = `${this.baseUrl}${path}`;\n    \n    // Prepare headers\n    const requestHeaders: Record<string, string> = {\n      'Content-Type': 'application/json',\n      ...headers\n    };\n    \n    // Add authentication if available\n    if (this.apiKey) {\n      requestHeaders['X-API-Key'] = this.apiKey;\n    }\n    \n    if (this.token) {\n      requestHeaders['Authorization'] = `Bearer ${this.token}`;\n    }\n    \n    if (this.tenantId) {\n      requestHeaders['X-Tenant-ID'] = this.tenantId;\n    }\n    \n    // Prepare fetch options\n    const fetchOptions: RequestInit = {\n      ...this.defaultOptions,\n      method,\n      headers: requestHeaders,\n      body: body ? JSON.stringify(body) : undefined\n    };\n    \n    // Create an AbortController for timeout\n    const controller = new AbortController();\n    fetchOptions.signal = controller.signal;\n    \n    // Set up timeout\n    const timeoutId = setTimeout(() => controller.abort(), timeout);\n    \n    try {\n      const response = await fetch(url, fetchOptions);\n      clearTimeout(timeoutId);\n      \n      if (!response.ok) {\n        throw new BrowserMCPError(`HTTP error ${response.status}: ${response.statusText}`, {\n          status: response.status,\n          code: `HTTP_${response.status}`\n        });\n      }\n      \n      return await response.json();\n    } catch (error: any) {\n      clearTimeout(timeoutId);\n      \n      if (error.name === 'AbortError') {\n        throw new BrowserMCPError('Request timed out', { code: 'TIMEOUT' });\n      }\n      \n      throw new BrowserMCPError(`Request failed: ${error.message}`);\n    }\n  }\n  \n  /**\n   * Make a GET request\n   */\n  async get<T = any>(path: string, options: Omit<Parameters<BrowserMCPClient['request']>[1], 'method'> = {}): Promise<T> {\n    return this.request<T>(path, { ...options, method: 'GET' });\n  }\n  \n  /**\n   * Make a POST request\n   */\n  async post<T = any>(path: string, body: any, options: Omit<Parameters<BrowserMCPClient['request']>[1], 'method' | 'body'> = {}): Promise<T> {\n    return this.request<T>(path, { ...options, method: 'POST', body });\n  }\n  \n  /**\n   * Make a PUT request\n   */\n  async put<T = any>(path: string, body: any, options: Omit<Parameters<BrowserMCPClient['request']>[1], 'method' | 'body'> = {}): Promise<T> {\n    return this.request<T>(path, { ...options, method: 'PUT', body });\n  }\n  \n  /**\n   * Make a DELETE request\n   */\n  async delete<T = any>(path: string, options: Omit<Parameters<BrowserMCPClient['request']>[1], 'method'> = {}): Promise<T> {\n    return this.request<T>(path, { ...options, method: 'DELETE' });\n  }\n}\n\n/**\n * Create a browser-safe MCP client\n */\nexport function createBrowserClient(options: MCPOptions): BrowserMCPClient {\n  return new BrowserMCPClient(options);\n}\n\n/**\n * Default export - create a browser-safe MCP client\n */\nexport default createBrowserClient; ","/**\n * Browser-safe entry point for Ragatanga MCP SDK\n * \n * This file exports a browser-compatible version of the SDK that doesn't include\n * Node.js specific dependencies that cause issues in the browser environment.\n */\n\n// Re-export browser-safe client\nexport { \n  BrowserMCPClient, \n  BrowserMCPError, \n  createBrowserClient \n} from './client/browser-client';\n\n// Export a createClient alias for compatibility with the main SDK\nexport { createBrowserClient as createClient } from './client/browser-client';\n\n// Re-export type definitions\nexport type { MCPOptions } from './client/types';\n\n// Default export - createBrowserClient function\nimport { createBrowserClient } from './client/browser-client';\nexport default createBrowserClient; "]}