{"version":3,"file":"admin-Dkysy7S4.mjs","names":["Base","options: any","path: string","method: string","body: any","headers: Record<string, string>"],"sources":["../src/client/admin/admin.ts"],"sourcesContent":["import Base from \"../base\";\n\nexport interface IAdminSdk {\n  sessions: {\n    create: (args: {\n      phoneNumber: string;\n      requestData?: Record<string, any>;\n    }) => Promise<{ token: string; expires_at: string }>;\n  };\n  agents: {\n    authorize: (args: {\n      agentId: string;\n      context?: Record<string, any>;\n    }) => Promise<{ token: string; expires_at?: string }>;\n  };\n}\n\nclass AdminSdk extends Base implements IAdminSdk {\n  routes: { [x: string]: { path: string; method: string } };\n\n  constructor(options: any) {\n    super(options);\n    this.routes = {\n      sessions: { path: \"/v1/inbound/session\", method: \"POST\" },\n      authorize: { path: \"/v1/agents/:agentId/authorize\", method: \"POST\" },\n    };\n    this.endpoint = options?.endpoint || \"https://api.bland.ai\";\n  }\n\n  private async request(\n    path: string,\n    method: string = \"GET\",\n    body: any = null\n  ): Promise<any> {\n    if (!this.endpoint) throw new Error(\"Admin SDK endpoint is not set\");\n    const url = `${this.endpoint}${path}`;\n    const headers: Record<string, string> = {\n      \"Content-Type\": \"application/json\",\n    };\n    if (this.admin?.apiKey) {\n      headers[\"authorization\"] = `${this.admin.apiKey}`;\n    } else {\n      throw new Error(\"Admin SDK API key is not set\");\n    }\n\n    const request = await fetch(url, {\n      method,\n      headers,\n      body: body ? JSON.stringify(body) : null,\n    });\n\n    if (!request.ok) {\n      const errorText = await request.text();\n      throw new Error(\n        `Request failed: ${request.status} ${request.statusText} - ${errorText}`\n      );\n    }\n\n    if (request.status === 204) {\n      return null;\n    }\n\n    return request.json();\n  }\n\n  sessions = {\n    create: async ({\n      phoneNumber,\n      requestData = {},\n    }: {\n      phoneNumber: string;\n      requestData?: Record<string, any>;\n    }): Promise<{ token: string; expires_at: string }> => {\n      const payload = { phone_number: phoneNumber, request_data: requestData };\n      const response = await this.request(\n        this.routes.sessions.path,\n        this.routes.sessions.method,\n        payload\n      );\n      if (!response?.token) throw new Error(\"No session token returned\");\n      return { token: response.token, expires_at: response.expires_at };\n    },\n  };\n\n  agents = {\n    authorize: async ({\n      agentId,\n      context = {},\n    }: {\n      agentId: string;\n      context?: Record<string, any>;\n    }): Promise<{ token: string; expires_at?: string }> => {\n      const path = this.routes.authorize.path.replace(\n        \":agentId\",\n        encodeURIComponent(agentId)\n      );\n      const response = await this.request(path, this.routes.authorize.method, {\n        context,\n      });\n      if (!response?.token) throw new Error(\"No authorization token returned\");\n      return { token: response.token, expires_at: response.expires_at };\n    },\n  };\n}\n\nexport default AdminSdk;\n"],"mappings":"mDAiBA,IAAM,EAAN,cAAuBA,CAA0B,CAC/C,OAEA,YAAYC,EAAc,CAMxB,AALA,MAAM,EAAQ,CACd,KAAK,OAAS,CACZ,SAAU,CAAE,KAAM,sBAAuB,OAAQ,MAAQ,EACzD,UAAW,CAAE,KAAM,gCAAiC,OAAQ,MAAQ,CACrE,EACD,KAAK,SAAW,GAAS,UAAY,sBACtC,CAED,MAAc,QACZC,EACAC,EAAiB,MACjBC,EAAY,KACE,CACd,IAAK,KAAK,SAAU,KAAM,CAAI,MAAM,gCAAA,CACpC,IAAM,GAAO,EAAE,KAAK,SAAS,EAAE,EAAK,EAC9BC,EAAkC,CACtC,eAAgB,kBACjB,EACD,GAAI,KAAK,OAAO,OACd,EAAQ,eAAoB,EAAE,KAAK,MAAM,OAAO,OAEhD,KAAM,CAAI,MAAM,+BAAA,CAGlB,IAAM,EAAU,KAAM,OAAM,EAAK,CAC/B,SACA,UACA,KAAM,EAAO,KAAK,UAAU,EAAK,CAAG,IACrC,EAAC,CAEF,IAAK,EAAQ,GAAI,CACf,IAAM,EAAY,KAAM,GAAQ,MAAM,CACtC,KAAM,CAAI,OACP,kBAAkB,EAAQ,OAAO,GAAG,EAAQ,WAAW,KAAK,EAAU,EAAA,AAE1E,CAMD,OAJI,EAAQ,SAAW,IACd,KAGF,EAAQ,MAAM,AACtB,CAED,SAAW,CACT,OAAQ,MAAO,CACb,cACA,cAAc,CAAE,EAIjB,GAAqD,CACpD,IAAM,EAAU,CAAE,aAAc,EAAa,aAAc,CAAa,EAClE,EAAW,KAAM,MAAK,QAC1B,KAAK,OAAO,SAAS,KACrB,KAAK,OAAO,SAAS,OACrB,EACD,CACD,IAAK,GAAU,MAAO,KAAM,CAAI,MAAM,4BAAA,CACtC,MAAO,CAAE,MAAO,EAAS,MAAO,WAAY,EAAS,UAAY,CAClE,CACF,EAED,OAAS,CACP,UAAW,MAAO,CAChB,UACA,UAAU,CAAE,EAIb,GAAsD,CACrD,IAAM,EAAO,KAAK,OAAO,UAAU,KAAK,QACtC,WACA,mBAAmB,EAAQ,CAC5B,CACK,EAAW,KAAM,MAAK,QAAQ,EAAM,KAAK,OAAO,UAAU,OAAQ,CACtE,SACD,EAAC,CACF,IAAK,GAAU,MAAO,KAAM,CAAI,MAAM,kCAAA,CACtC,MAAO,CAAE,MAAO,EAAS,MAAO,WAAY,EAAS,UAAY,CAClE,CACF,CACF,EAED,EAAe"}