{"version":3,"sources":["../src/index.ts"],"sourcesContent":["/**\n * @package @api-buddy/supabase\n * Supabase client and utilities for API Buddy\n */\n\nimport { createClient, SupabaseClient } from '@supabase/supabase-js';\nexport interface SupabaseConfig {\n  url: string;\n  anonKey: string;\n  options?: {\n    auth?: {\n      autoRefreshToken?: boolean;\n      persistSession?: boolean;\n      detectSessionInUrl?: boolean;\n    };\n  };\n}\n\n/**\n * Extended Supabase client with API Buddy specific functionality\n */\nexport class SupabaseService {\n  private client: SupabaseClient;\n  private logger: {\n    info: (message: string) => void;\n    error: (message: string, error?: any) => void;\n  };\n\n  constructor(config: SupabaseConfig, logger?: any) {\n    this.client = createClient(config.url, config.anonKey, config.options);\n    this.logger = logger || {\n      info: (message: string) => console.log(`[Supabase] ${message}`),\n      error: (message: string, error?: any) => {\n        const errorMessage = error ? `${message}: ${error.message || error}` : message;\n        console.error(`[Supabase] ${errorMessage}`);\n        if (error?.stack) {\n          console.error(error.stack);\n        }\n      }\n    };\n  }\n\n  /**\n   * Get the underlying Supabase client\n   */\n  getClient(): SupabaseClient {\n    return this.client;\n  }\n\n  /**\n   * Execute a query with error handling\n   */\n  async query<T = any>(\n    table: string,\n    query: string,\n    params?: Record<string, unknown>\n  ): Promise<T | null> {\n    try {\n      const { data, error } = await this.client\n        .from(table)\n        .select(query)\n        .match(params || {});\n\n      if (error) {\n        throw error;\n      }\n\n      this.logger.info(`Successfully executed query on table: ${table}`);\n      return data as unknown as T;\n    } catch (error: unknown) {\n      const errorMessage = error instanceof Error ? error.message : String(error);\n      this.logger.error(`Supabase query error: ${errorMessage}`, { table, query, params });\n      return null;\n    }\n  }\n}\n\n/**\n * Create a new Supabase service instance\n */\nexport function createSupabaseService(\n  config: SupabaseConfig,\n  logger?: any\n): SupabaseService {\n  return new SupabaseService(config, logger);\n}\n\nexport * from '@supabase/supabase-js';\n"],"mappings":";AAKA,OAAS,gBAAAA,MAAoC,wBAkF7C,WAAc,wBAlEP,IAAMC,EAAN,KAAsB,CACnB,OACA,OAKR,YAAYC,EAAwBC,EAAc,CAChD,KAAK,OAASH,EAAaE,EAAO,IAAKA,EAAO,QAASA,EAAO,OAAO,EACrE,KAAK,OAASC,GAAU,CACtB,KAAOC,GAAoB,QAAQ,IAAI,cAAcA,CAAO,EAAE,EAC9D,MAAO,CAACA,EAAiBC,IAAgB,CACvC,IAAMC,EAAeD,EAAQ,GAAGD,CAAO,KAAKC,EAAM,SAAWA,CAAK,GAAKD,EACvE,QAAQ,MAAM,cAAcE,CAAY,EAAE,EACtCD,GAAA,MAAAA,EAAO,OACT,QAAQ,MAAMA,EAAM,KAAK,CAE7B,CACF,CACF,CAKA,WAA4B,CAC1B,OAAO,KAAK,MACd,CAKA,MAAM,MACJE,EACAC,EACAC,EACmB,CACnB,GAAI,CACF,GAAM,CAAE,KAAAC,EAAM,MAAAL,CAAM,EAAI,MAAM,KAAK,OAChC,KAAKE,CAAK,EACV,OAAOC,CAAK,EACZ,MAAMC,GAAU,CAAC,CAAC,EAErB,GAAIJ,EACF,MAAMA,EAGR,YAAK,OAAO,KAAK,yCAAyCE,CAAK,EAAE,EAC1DG,CACT,OAASL,EAAgB,CACvB,IAAMC,EAAeD,aAAiB,MAAQA,EAAM,QAAU,OAAOA,CAAK,EAC1E,YAAK,OAAO,MAAM,yBAAyBC,CAAY,GAAI,CAAE,MAAAC,EAAO,MAAAC,EAAO,OAAAC,CAAO,CAAC,EAC5E,IACT,CACF,CACF,EAKO,SAASE,EACdT,EACAC,EACiB,CACjB,OAAO,IAAIF,EAAgBC,EAAQC,CAAM,CAC3C","names":["createClient","SupabaseService","config","logger","message","error","errorMessage","table","query","params","data","createSupabaseService"]}