{"version":3,"file":"web.cjs","names":["BaseWebSocketStream","url: string","options: WebSocketStreamOptions","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,qDAA4B;CACxD,cAAcC,KAAaC,SAA4C;AACrE,SAAO,IAAI,UAAU,KAAK,QAAQ,aAAa,CAAE;CAClD;AACF;;;;;;;;;AAUD,IAAa,qBAAb,cAAwCC,sCAAuB;CAC7D,MAAM,oBACJD,SAC0B;EAC1B,MAAM,OAAO;EACb,MAAM,wBAAO,IAAI,QAAO,aAAa;EACrC,MAAM,MAAM,CAAC,KAAK,EAAE,KAAK,QAAQ,cAAc,CAAC;EAChD,MAAM,YAAY,IAAI,cAAc,OAAO,KAAK,iBAAiB;EACjE,MAAM,aAAa,IAAI,cAAc,OACnC,CAAC,MAAM,EAAE,KAAK,QAAQ,EAAE,KAAK,EAAE,EAAE,KAAK,CACvC;EACD,MAAM,YAAY,MAAM,OAAO,OAAO,UACpC,OACA,WACA;GAAE,MAAM;GAAQ,MAAM;EAAW,GACjC,OACA,CAAC,MAAO,EACT;EACD,MAAM,YAAY,MAAM,OAAO,OAAO,KAAK,QAAQ,WAAW,WAAW;EACzE,MAAM,OAAO,OAAO,KAAK,OAAO,aAAa,GAAG,IAAI,WAAW,WAAW,CAAC;EAC3E,MAAM,uBAAuB,CAAC,SAAS,EAAE,KAAK,cAAc,yEAAyE,EAAE,KAAK,CAAC,CAAC;EAC9I,MAAM,gBAAgB,OAAO,KAAK,qBAAqB;EACvD,IAAI,mBAAmB,KAAK;EAC5B,oBAAoB,CAAC,eAAe,EAAE,eAAe;EACrD,oBAAoB,CAAC,MAAM,EAAE,mBAAmB,KAAK,EAAE;EACvD,oBAAoB,CAAC,MAAM,EAAE,mBAAmB,KAAK,EAAE;AACvD,SAAO,IAAI,gBAAgB,kBAAkB;CAC9C;AACF"}