{"version":3,"file":"web.cjs","names":["BaseWebSocketStream","BaseChatIflytekXinghuo"],"sources":["../../../src/chat_models/iflytek_xinghuo/web.ts"],"sourcesContent":["import { BaseChatIflytekXinghuo } from \"./common.js\";\nimport {\n  WebSocketStreamOptions,\n  BaseWebSocketStream,\n} from \"../../utils/iflytek_websocket_stream.js\";\n\nclass WebSocketStream extends BaseWebSocketStream<string> {\n  openWebSocket(url: string, options: WebSocketStreamOptions): WebSocket {\n    return new WebSocket(url, options.protocols ?? []);\n  }\n}\n\n/**\n * @example\n * ```typescript\n * const model = new ChatIflytekXinghuo();\n * const response = await model.invoke([new HumanMessage(\"Nice to meet you!\")]);\n * console.log(response);\n * ```\n */\nexport class ChatIflytekXinghuo extends BaseChatIflytekXinghuo {\n  async openWebSocketStream<WebSocketStream>(\n    options: WebSocketStreamOptions\n  ): Promise<WebSocketStream> {\n    const host = \"spark-api.xf-yun.com\";\n    const date = new Date().toUTCString();\n    const url = `GET /${this.version}/chat HTTP/1.1`;\n    const keyBuffer = new TextEncoder().encode(this.iflytekApiSecret);\n    const dataBuffer = new TextEncoder().encode(\n      `host: ${host}\\ndate: ${date}\\n${url}`\n    );\n    const cryptoKey = await crypto.subtle.importKey(\n      \"raw\",\n      keyBuffer,\n      { name: \"HMAC\", hash: \"SHA-256\" },\n      false,\n      [\"sign\"]\n    );\n    const signature = await crypto.subtle.sign(\"HMAC\", cryptoKey, dataBuffer);\n    const hash = window.btoa(String.fromCharCode(...new Uint8Array(signature)));\n    const authorization_origin = `api_key=\"${this.iflytekApiKey}\", algorithm=\"hmac-sha256\", headers=\"host date request-line\", signature=\"${hash}\"`;\n    const authorization = window.btoa(authorization_origin);\n    let authWebSocketUrl = this.apiUrl;\n    authWebSocketUrl += `?authorization=${authorization}`;\n    authWebSocketUrl += `&host=${encodeURIComponent(host)}`;\n    authWebSocketUrl += `&date=${encodeURIComponent(date)}`;\n    return new WebSocketStream(authWebSocketUrl, options) as WebSocketStream;\n  }\n}\n"],"mappings":";;;;;;AAMA,IAAM,kBAAN,cAA8BA,iCAAAA,oBAA4B;CACxD,cAAc,KAAa,SAA4C;AACrE,SAAO,IAAI,UAAU,KAAK,QAAQ,aAAa,EAAE,CAAC;;;;;;;;;;;AAYtD,IAAa,qBAAb,cAAwCC,eAAAA,uBAAuB;CAC7D,MAAM,oBACJ,SAC0B;EAC1B,MAAM,OAAO;EACb,MAAM,wBAAO,IAAI,MAAM,EAAC,aAAa;EACrC,MAAM,MAAM,QAAQ,KAAK,QAAQ;EACjC,MAAM,YAAY,IAAI,aAAa,CAAC,OAAO,KAAK,iBAAiB;EACjE,MAAM,aAAa,IAAI,aAAa,CAAC,OACnC,SAAS,KAAK,UAAU,KAAK,IAAI,MAClC;EACD,MAAM,YAAY,MAAM,OAAO,OAAO,UACpC,OACA,WACA;GAAE,MAAM;GAAQ,MAAM;GAAW,EACjC,OACA,CAAC,OAAO,CACT;EACD,MAAM,YAAY,MAAM,OAAO,OAAO,KAAK,QAAQ,WAAW,WAAW;EACzE,MAAM,OAAO,OAAO,KAAK,OAAO,aAAa,GAAG,IAAI,WAAW,UAAU,CAAC,CAAC;EAC3E,MAAM,uBAAuB,YAAY,KAAK,cAAc,2EAA2E,KAAK;EAC5I,MAAM,gBAAgB,OAAO,KAAK,qBAAqB;EACvD,IAAI,mBAAmB,KAAK;AAC5B,sBAAoB,kBAAkB;AACtC,sBAAoB,SAAS,mBAAmB,KAAK;AACrD,sBAAoB,SAAS,mBAAmB,KAAK;AACrD,SAAO,IAAI,gBAAgB,kBAAkB,QAAQ"}