agrasya-voice-sdk 1.0.33 → 1.0.35
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +50 -3
- package/dist/index.d.mts +5 -0
- package/dist/index.d.ts +5 -0
- package/dist/index.js +1 -1
- package/dist/index.mjs +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -33,6 +33,56 @@ const events = {
|
|
|
33
33
|
const sdkWithEvents = new AgrasyaVoiceSDK({ apiKey: "your-api-key" }, events);
|
|
34
34
|
```
|
|
35
35
|
|
|
36
|
+
## Methods
|
|
37
|
+
|
|
38
|
+
### Constructor
|
|
39
|
+
|
|
40
|
+
```typescript
|
|
41
|
+
constructor(config: AgrasyaSDKConfig, events: AgrasyaEvents = {});
|
|
42
|
+
```
|
|
43
|
+
|
|
44
|
+
Initializes the SDK with the provided configuration and optional event handlers.
|
|
45
|
+
|
|
46
|
+
### start()
|
|
47
|
+
|
|
48
|
+
```typescript
|
|
49
|
+
async start(): Promise<void>
|
|
50
|
+
```
|
|
51
|
+
|
|
52
|
+
Starts a voice session by establishing a connection with the backend and initializing WebRTC components.
|
|
53
|
+
|
|
54
|
+
### stop()
|
|
55
|
+
|
|
56
|
+
```typescript
|
|
57
|
+
async stop(): Promise<void>
|
|
58
|
+
```
|
|
59
|
+
|
|
60
|
+
Stops the voice session, closes the WebRTC connection, and cleans up resources.
|
|
61
|
+
|
|
62
|
+
### sendMessage()
|
|
63
|
+
|
|
64
|
+
```typescript
|
|
65
|
+
sendMessage(message: string): void
|
|
66
|
+
```
|
|
67
|
+
|
|
68
|
+
Sends a message through the data channel.
|
|
69
|
+
|
|
70
|
+
### onStatusChange
|
|
71
|
+
|
|
72
|
+
```typescript
|
|
73
|
+
onStatusChange(status: "idle" | "initializing" | "connecting" | "connected" | "error"): void
|
|
74
|
+
```
|
|
75
|
+
|
|
76
|
+
Event handler for status changes.
|
|
77
|
+
|
|
78
|
+
### onMessageReceived
|
|
79
|
+
|
|
80
|
+
```typescript
|
|
81
|
+
onMessageReceived(message: string): void
|
|
82
|
+
```
|
|
83
|
+
|
|
84
|
+
Event handler for incoming messages.
|
|
85
|
+
|
|
36
86
|
## Development
|
|
37
87
|
|
|
38
88
|
```bash
|
|
@@ -47,9 +97,6 @@ npm run dev
|
|
|
47
97
|
|
|
48
98
|
# Run tests
|
|
49
99
|
npm test
|
|
50
|
-
|
|
51
|
-
# Run linting
|
|
52
|
-
npm run lint
|
|
53
100
|
```
|
|
54
101
|
|
|
55
102
|
## Publishing
|
package/dist/index.d.mts
CHANGED
|
@@ -32,6 +32,11 @@ interface AgrasyaEvents {
|
|
|
32
32
|
onStatusChange?: (status: "idle" | "initializing" | "connecting" | "connected" | "error") => void;
|
|
33
33
|
/** Emitted when the call duration updates */
|
|
34
34
|
onCallDurationUpdate?: (duration: number) => void;
|
|
35
|
+
/** Emitted when the user's usage limit is reached */
|
|
36
|
+
onUsageLimitReached?: (data: {
|
|
37
|
+
success: boolean;
|
|
38
|
+
message: string;
|
|
39
|
+
}) => void;
|
|
35
40
|
}
|
|
36
41
|
|
|
37
42
|
/**
|
package/dist/index.d.ts
CHANGED
|
@@ -32,6 +32,11 @@ interface AgrasyaEvents {
|
|
|
32
32
|
onStatusChange?: (status: "idle" | "initializing" | "connecting" | "connected" | "error") => void;
|
|
33
33
|
/** Emitted when the call duration updates */
|
|
34
34
|
onCallDurationUpdate?: (duration: number) => void;
|
|
35
|
+
/** Emitted when the user's usage limit is reached */
|
|
36
|
+
onUsageLimitReached?: (data: {
|
|
37
|
+
success: boolean;
|
|
38
|
+
message: string;
|
|
39
|
+
}) => void;
|
|
35
40
|
}
|
|
36
41
|
|
|
37
42
|
/**
|
package/dist/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
'use strict';
|
|
1
|
+
'use strict';const a0_0x39dbfb=a0_0x1079;(function(_0x3dcbc2,_0x29d8c5){const _0x9244e=a0_0x1079,_0xe1cf1c=_0x3dcbc2();while(!![]){try{const _0x3a8dcd=-parseInt(_0x9244e(0x153))/0x1*(-parseInt(_0x9244e(0x16c))/0x2)+parseInt(_0x9244e(0x147))/0x3+-parseInt(_0x9244e(0x13d))/0x4+parseInt(_0x9244e(0x163))/0x5+parseInt(_0x9244e(0x134))/0x6+-parseInt(_0x9244e(0x16b))/0x7*(parseInt(_0x9244e(0x11e))/0x8)+-parseInt(_0x9244e(0x138))/0x9;if(_0x3a8dcd===_0x29d8c5)break;else _0xe1cf1c['push'](_0xe1cf1c['shift']());}catch(_0x17cac2){_0xe1cf1c['push'](_0xe1cf1c['shift']());}}}(a0_0x33b1,0xba685));function a0_0x1079(_0x81dc3f,_0x4edb73){_0x81dc3f=_0x81dc3f-0x115;const _0x33b145=a0_0x33b1();let _0x107910=_0x33b145[_0x81dc3f];return _0x107910;}var __create=Object['create'],__defProp=Object[a0_0x39dbfb(0x130)],__getOwnPropDesc=Object['getOwnPropertyDescriptor'],__getOwnPropNames=Object['getOwnPropertyNames'],__getProtoOf=Object[a0_0x39dbfb(0x149)],__hasOwnProp=Object[a0_0x39dbfb(0x12e)][a0_0x39dbfb(0x11f)],__export=(_0x54e6f0,_0x390849)=>{for(var _0x1c98cd in _0x390849)__defProp(_0x54e6f0,_0x1c98cd,{'get':_0x390849[_0x1c98cd],'enumerable':!![]});},__copyProps=(_0x233564,_0xc4fe84,_0x406175,_0x52ab44)=>{const _0x3f710c=a0_0x39dbfb;if(_0xc4fe84&&typeof _0xc4fe84===_0x3f710c(0x173)||typeof _0xc4fe84==='function'){for(let _0x111243 of __getOwnPropNames(_0xc4fe84))if(!__hasOwnProp['call'](_0x233564,_0x111243)&&_0x111243!==_0x406175)__defProp(_0x233564,_0x111243,{'get':()=>_0xc4fe84[_0x111243],'enumerable':!(_0x52ab44=__getOwnPropDesc(_0xc4fe84,_0x111243))||_0x52ab44[_0x3f710c(0x14f)]});}return _0x233564;},__toESM=(_0x104051,_0x4963ca,_0x5cd85e)=>(_0x5cd85e=_0x104051!=null?__create(__getProtoOf(_0x104051)):{},__copyProps(_0x4963ca||!_0x104051||!_0x104051[a0_0x39dbfb(0x14c)]?__defProp(_0x5cd85e,a0_0x39dbfb(0x145),{'value':_0x104051,'enumerable':!![]}):_0x5cd85e,_0x104051)),__toCommonJS=_0x46a37e=>__copyProps(__defProp({},a0_0x39dbfb(0x14c),{'value':!![]}),_0x46a37e),index_exports={};__export(index_exports,{'AgrasyaVoiceSDK':()=>AgrasyaVoiceSDK}),module[a0_0x39dbfb(0x152)]=__toCommonJS(index_exports);function a0_0x33b1(){const _0x5a8d63=['http://localhost:4001','mediaDevices','Failed\x20to\x20fetch\x20minutes\x20usage','onCallDurationUpdate','stop','baseUrl','77gmOxmF','596800IHOHRf','catch','setupSocketListeners','stopTimer','debug','oai-events','createElement','object','startVoiceSession','session_ended','setupWebRTC','Failed\x20to\x20initialize\x20session:\x20','onmessage','sdp','peerConnection','ontrack','setRemoteDescription','465584Hswaym','hasOwnProperty','initializeBackendSession','application/json','apiKey','durationInterval','callDuration','connected','socket.io-client','SDP\x20exchange\x20failed:\x20','json','audioStream','data','onStatusChange','dataUrl','update_start_time','prototype','body','defineProperty','usage_limit_reached','audio','model','3105882uFfaeb','stopVoiceSession','emit','idle','13690467ukzeul','statusText','error','disconnect','language','837408qSkLWy','key\x20is\x20null\x20or\x20undefined.','parse','cleanup','getUserMedia','dataChannel','stringify','events','default','close','3188370NBIWaU','createOffer','getPrototypeOf','success','srcObject','__esModule','config','createDataChannel','enumerable','fetchMinutesUsage','startTimer','exports','4gwIzHF','setStatus','Failed\x20to\x20fetch\x20minutes\x20usage:\x20','getTracks','/v1/agrasya/connect','ephKey','addTrack','/v1/agrasya/usage','log','message','socket','forEach','minutesLeft','/v1/agrasya/client-token?language=','websocket','sessionId','1800905kaLYDX','autoplay'];a0_0x33b1=function(){return _0x5a8d63;};return a0_0x33b1();}var import_socket=__toESM(require(a0_0x39dbfb(0x126))),AgrasyaVoiceSDK=class{[a0_0x39dbfb(0x14d)];[a0_0x39dbfb(0x144)];[a0_0x39dbfb(0x11b)]=null;[a0_0x39dbfb(0x142)]=null;[a0_0x39dbfb(0x129)]=null;[a0_0x39dbfb(0x15d)]=null;['sessionId']=null;[a0_0x39dbfb(0x158)]=null;[a0_0x39dbfb(0x12c)]=null;[a0_0x39dbfb(0x133)]=null;[a0_0x39dbfb(0x124)]=0x0;[a0_0x39dbfb(0x123)]=null;constructor(_0x31bcef,_0x293cad={}){const _0x4e5a0f=a0_0x39dbfb;this[_0x4e5a0f(0x14d)]={'baseUrl':_0x4e5a0f(0x165),'language':'','debug':![],..._0x31bcef},this[_0x4e5a0f(0x144)]=_0x293cad;}['log'](..._0x12d6d7){const _0x277725=a0_0x39dbfb;this['config'][_0x277725(0x170)]&&console[_0x277725(0x15b)]('[AgrasyaSDK]',..._0x12d6d7);}['setStatus'](_0x487266){const _0xa05fba=a0_0x39dbfb;this[_0xa05fba(0x144)][_0xa05fba(0x12b)]?.(_0x487266);}['startTimer'](){const _0x22bd7c=a0_0x39dbfb;this['callDuration']=0x0,this[_0x22bd7c(0x123)]=setInterval(()=>{const _0x4c1b9b=_0x22bd7c;this[_0x4c1b9b(0x124)]+=0x1,this[_0x4c1b9b(0x144)][_0x4c1b9b(0x168)]?.(this[_0x4c1b9b(0x124)]);},0x3e8);}[a0_0x39dbfb(0x16f)](){const _0x20c7f2=a0_0x39dbfb;this['durationInterval']&&(clearInterval(this['durationInterval']),this[_0x20c7f2(0x123)]=null);}async['initializeBackendSession'](){const _0x395c6b=a0_0x39dbfb,_0x3ccbaf=this[_0x395c6b(0x14d)][_0x395c6b(0x16a)]+_0x395c6b(0x160)+this[_0x395c6b(0x14d)][_0x395c6b(0x13c)],_0x3fde5b=await fetch(_0x3ccbaf,{'method':'GET','headers':{'x-agrasya-client-api-key':this[_0x395c6b(0x14d)][_0x395c6b(0x122)],'Content-Type':_0x395c6b(0x121)}});if(!_0x3fde5b['ok']){const _0x3b8da3=await _0x3fde5b[_0x395c6b(0x128)]()[_0x395c6b(0x16d)](()=>({'message':_0x3fde5b[_0x395c6b(0x139)]}));throw new Error(_0x395c6b(0x118)+(_0x3b8da3['message']||_0x3fde5b[_0x395c6b(0x139)]));}const _0x4107ff=await _0x3fde5b[_0x395c6b(0x128)]();if(!_0x4107ff['success'])throw new Error(_0x4107ff[_0x395c6b(0x15c)]||'Backend\x20initialization\x20failed');return _0x4107ff[_0x395c6b(0x12a)];}async[a0_0x39dbfb(0x117)](_0x52283a){const _0x471d42=a0_0x39dbfb;this[_0x471d42(0x11b)]=new RTCPeerConnection(),this[_0x471d42(0x142)]=this['peerConnection'][_0x471d42(0x14e)](_0x471d42(0x171));this[_0x471d42(0x142)]&&(this[_0x471d42(0x142)][_0x471d42(0x119)]=_0x348f5c=>{const _0x523c7b=_0x471d42,_0x23a188=JSON[_0x523c7b(0x13f)](_0x348f5c['data']);this[_0x523c7b(0x144)]['onTranscript']?.(_0x23a188);});this[_0x471d42(0x11b)][_0x471d42(0x11c)]=_0x4a4376=>{const _0x4e1825=_0x471d42,_0x21a897=document[_0x4e1825(0x172)](_0x4e1825(0x132));_0x21a897[_0x4e1825(0x14b)]=_0x4a4376['streams'][0x0],_0x21a897[_0x4e1825(0x164)]=!![],document[_0x4e1825(0x12f)]['appendChild'](_0x21a897);},this[_0x471d42(0x129)]=await navigator[_0x471d42(0x166)][_0x471d42(0x141)]({'audio':!![]});if(this[_0x471d42(0x129)]){const _0x233541=this['audioStream']['getTracks']()[0x0];this[_0x471d42(0x11b)][_0x471d42(0x159)](_0x233541,this[_0x471d42(0x129)]);}const _0x106d98=await this[_0x471d42(0x11b)][_0x471d42(0x148)]();await this[_0x471d42(0x11b)]['setLocalDescription'](_0x106d98);const _0x38b462=this[_0x471d42(0x14d)][_0x471d42(0x16a)]+_0x471d42(0x157),_0x161509=await fetch(_0x38b462,{'method':'POST','body':JSON[_0x471d42(0x143)]({'sessionId':this[_0x471d42(0x162)],'sdp':_0x106d98[_0x471d42(0x11a)]}),'headers':{'x-agrasya-client-api-key':this[_0x471d42(0x14d)]['apiKey'],'Content-Type':_0x471d42(0x121)}});if(!_0x161509['ok'])throw new Error(_0x471d42(0x127)+_0x161509[_0x471d42(0x139)]);const _0x22dcc6=await _0x161509[_0x471d42(0x128)](),_0xe1ef09=_0x22dcc6[_0x471d42(0x12a)][_0x471d42(0x11a)],_0x5a9b16={'type':'answer','sdp':_0xe1ef09};await this[_0x471d42(0x11b)][_0x471d42(0x11d)](_0x5a9b16);}[a0_0x39dbfb(0x16e)](_0x165faa){const _0xd7ad51=a0_0x39dbfb;_0x165faa['on']('disconnect',()=>{const _0x22142f=a0_0x1079;this[_0x22142f(0x140)]();}),_0x165faa['on'](_0xd7ad51(0x116),()=>{const _0x30ef0f=_0xd7ad51;this[_0x30ef0f(0x140)]();}),_0x165faa['on'](_0xd7ad51(0x131),_0x42beaa=>{this['events']['onUsageLimitReached']?.(_0x42beaa);});}async[a0_0x39dbfb(0x115)](_0x15e45b){const _0x2cd1dc=a0_0x39dbfb;try{this['setStatus']('initializing');const _0x1cc4d2=await this[_0x2cd1dc(0x120)]();this[_0x2cd1dc(0x162)]=_0x1cc4d2[_0x2cd1dc(0x162)],this['ephKey']=_0x1cc4d2[_0x2cd1dc(0x158)];if(!this[_0x2cd1dc(0x158)])throw new Error(_0x2cd1dc(0x13e));const _0x3c335b=await this[_0x2cd1dc(0x150)]();this[_0x2cd1dc(0x15b)]('Minutes\x20left:\x20'+_0x3c335b),await this[_0x2cd1dc(0x117)](this[_0x2cd1dc(0x158)]),this[_0x2cd1dc(0x15d)]=(0x0,import_socket[_0x2cd1dc(0x145)])(this[_0x2cd1dc(0x14d)]['baseUrl'],{'transports':[_0x2cd1dc(0x161)]}),this[_0x2cd1dc(0x15d)][_0x2cd1dc(0x136)]('join_session',{'sessionId':this['sessionId']}),this[_0x2cd1dc(0x15d)][_0x2cd1dc(0x136)](_0x2cd1dc(0x12d)),this['setupSocketListeners'](this['socket']),this[_0x2cd1dc(0x154)](_0x2cd1dc(0x125)),this[_0x2cd1dc(0x151)]();}catch(_0x5a8eca){this[_0x2cd1dc(0x154)](_0x2cd1dc(0x13a));throw _0x5a8eca;}}async[a0_0x39dbfb(0x135)](){this['cleanup']();}[a0_0x39dbfb(0x140)](){const _0x379c3f=a0_0x39dbfb;this[_0x379c3f(0x11b)]&&(this[_0x379c3f(0x11b)][_0x379c3f(0x146)](),this[_0x379c3f(0x11b)]=null),this[_0x379c3f(0x142)]&&(this[_0x379c3f(0x142)]['close'](),this[_0x379c3f(0x142)]=null),this['audioStream']&&(this[_0x379c3f(0x129)][_0x379c3f(0x156)]()[_0x379c3f(0x15e)](_0x1dc7e3=>_0x1dc7e3[_0x379c3f(0x169)]()),this['audioStream']=null),this[_0x379c3f(0x15d)]&&(this[_0x379c3f(0x15d)][_0x379c3f(0x13b)](),this[_0x379c3f(0x15d)]=null),this['stopTimer'](),this[_0x379c3f(0x154)](_0x379c3f(0x137));}async[a0_0x39dbfb(0x150)](){const _0x253473=a0_0x39dbfb,_0x3eb22e=this[_0x253473(0x14d)][_0x253473(0x16a)]+_0x253473(0x15a),_0x3c822b=await fetch(_0x3eb22e,{'method':'GET','headers':{'x-agrasya-client-api-key':this['config'][_0x253473(0x122)],'Content-Type':_0x253473(0x121)}});if(!_0x3c822b['ok']){const _0x442293=await _0x3c822b[_0x253473(0x128)]()[_0x253473(0x16d)](()=>({'message':_0x3c822b['statusText']}));throw new Error(_0x253473(0x155)+(_0x442293[_0x253473(0x15c)]||_0x3c822b[_0x253473(0x139)]));}const _0x4344c2=await _0x3c822b[_0x253473(0x128)]();if(!_0x4344c2[_0x253473(0x14a)])throw new Error(_0x4344c2[_0x253473(0x15c)]||_0x253473(0x167));return _0x4344c2[_0x253473(0x12a)][_0x253473(0x15f)];}};0x0&&(module[a0_0x39dbfb(0x152)]={'AgrasyaVoiceSDK':AgrasyaVoiceSDK});
|
package/dist/index.mjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
const
|
|
1
|
+
const a1_0x4c6459=a1_0x2ac9;(function(_0x1813fe,_0x385a70){const _0x53e059=a1_0x2ac9,_0x33d500=_0x1813fe();while(!![]){try{const _0x27a249=parseInt(_0x53e059(0x120))/0x1+-parseInt(_0x53e059(0x150))/0x2*(-parseInt(_0x53e059(0x15b))/0x3)+parseInt(_0x53e059(0x12f))/0x4*(-parseInt(_0x53e059(0x119))/0x5)+-parseInt(_0x53e059(0x116))/0x6+-parseInt(_0x53e059(0x14d))/0x7*(parseInt(_0x53e059(0x14f))/0x8)+-parseInt(_0x53e059(0x145))/0x9+-parseInt(_0x53e059(0x134))/0xa*(-parseInt(_0x53e059(0x160))/0xb);if(_0x27a249===_0x385a70)break;else _0x33d500['push'](_0x33d500['shift']());}catch(_0x12dd38){_0x33d500['push'](_0x33d500['shift']());}}}(a1_0x5e82,0x7aeda));function a1_0x5e82(){const _0x217878=['Failed\x20to\x20fetch\x20minutes\x20usage:\x20','idle','[AgrasyaSDK]','audioStream','2321431HMIfDV','onUsageLimitReached','16dzSgvb','18lnLEPV','SDP\x20exchange\x20failed:\x20','Minutes\x20left:\x20','message','GET','forEach','error','sdp','emit','parse','getUserMedia','210054IsPhWI','Failed\x20to\x20fetch\x20minutes\x20usage','setStatus','createOffer','initializing','150502GQryfq','createDataChannel','update_start_time','socket','success','events','onStatusChange','292362DLTLRQ','fetchMinutesUsage','audio','170vHpICG','body','streams','sessionId','close','getTracks','POST','815912VWqhQM','http://localhost:4001','minutesLeft','config','dataChannel','connected','setRemoteDescription','json','callDuration','statusText','ephKey','startTimer','disconnect','autoplay','session_ended','21776uXwDdL','apiKey','mediaDevices','stopTimer','data','670erBarH','application/json','cleanup','durationInterval','setupSocketListeners','catch','Backend\x20initialization\x20failed','/v1/agrasya/usage','onmessage','model','baseUrl','peerConnection','/v1/agrasya/client-token?language=','websocket','oai-events','startVoiceSession','log','8659485uEKaYB','setLocalDescription','stop','language'];a1_0x5e82=function(){return _0x217878;};return a1_0x5e82();}import a1_0x5382ae from'socket.io-client';var AgrasyaVoiceSDK=class{[a1_0x4c6459(0x123)];['events'];['peerConnection']=null;['dataChannel']=null;['audioStream']=null;[a1_0x4c6459(0x163)]=null;[a1_0x4c6459(0x11c)]=null;[a1_0x4c6459(0x12a)]=null;['dataUrl']=null;[a1_0x4c6459(0x13d)]=null;['callDuration']=0x0;[a1_0x4c6459(0x137)]=null;constructor(_0x231307,_0x44ab09={}){const _0x534e3f=a1_0x4c6459;this[_0x534e3f(0x123)]={'baseUrl':_0x534e3f(0x121),'language':'','debug':![],..._0x231307},this[_0x534e3f(0x114)]=_0x44ab09;}['log'](..._0x26eb41){const _0x407cce=a1_0x4c6459;this[_0x407cce(0x123)]['debug']&&console[_0x407cce(0x144)](_0x407cce(0x14b),..._0x26eb41);}[a1_0x4c6459(0x15d)](_0x53fb86){const _0x24e91a=a1_0x4c6459;this[_0x24e91a(0x114)][_0x24e91a(0x115)]?.(_0x53fb86);}[a1_0x4c6459(0x12b)](){const _0x4483c6=a1_0x4c6459;this['callDuration']=0x0,this[_0x4483c6(0x137)]=setInterval(()=>{const _0xc93a6b=_0x4483c6;this[_0xc93a6b(0x128)]+=0x1,this[_0xc93a6b(0x114)]['onCallDurationUpdate']?.(this[_0xc93a6b(0x128)]);},0x3e8);}[a1_0x4c6459(0x132)](){const _0x1fad97=a1_0x4c6459;this[_0x1fad97(0x137)]&&(clearInterval(this[_0x1fad97(0x137)]),this[_0x1fad97(0x137)]=null);}async['initializeBackendSession'](){const _0x2a3ad6=a1_0x4c6459,_0x20f07c=this[_0x2a3ad6(0x123)]['baseUrl']+_0x2a3ad6(0x140)+this['config'][_0x2a3ad6(0x148)],_0x2ad278=await fetch(_0x20f07c,{'method':'GET','headers':{'x-agrasya-client-api-key':this[_0x2a3ad6(0x123)]['apiKey'],'Content-Type':_0x2a3ad6(0x135)}});if(!_0x2ad278['ok']){const _0x1a5cb7=await _0x2ad278[_0x2a3ad6(0x127)]()[_0x2a3ad6(0x139)](()=>({'message':_0x2ad278[_0x2a3ad6(0x129)]}));throw new Error('Failed\x20to\x20initialize\x20session:\x20'+(_0x1a5cb7[_0x2a3ad6(0x153)]||_0x2ad278[_0x2a3ad6(0x129)]));}const _0x1bf950=await _0x2ad278[_0x2a3ad6(0x127)]();if(!_0x1bf950['success'])throw new Error(_0x1bf950['message']||_0x2a3ad6(0x13a));return _0x1bf950[_0x2a3ad6(0x133)];}async['setupWebRTC'](_0x2d91de){const _0x1cb4d5=a1_0x4c6459;this['peerConnection']=new RTCPeerConnection(),this['dataChannel']=this[_0x1cb4d5(0x13f)][_0x1cb4d5(0x161)](_0x1cb4d5(0x142));this[_0x1cb4d5(0x124)]&&(this[_0x1cb4d5(0x124)][_0x1cb4d5(0x13c)]=_0x219162=>{const _0x380f0f=_0x1cb4d5,_0x498e6b=JSON[_0x380f0f(0x159)](_0x219162[_0x380f0f(0x133)]);this[_0x380f0f(0x114)]['onTranscript']?.(_0x498e6b);});this[_0x1cb4d5(0x13f)]['ontrack']=_0x32c71c=>{const _0x81a209=_0x1cb4d5,_0x6a9139=document['createElement'](_0x81a209(0x118));_0x6a9139['srcObject']=_0x32c71c[_0x81a209(0x11b)][0x0],_0x6a9139[_0x81a209(0x12d)]=!![],document[_0x81a209(0x11a)]['appendChild'](_0x6a9139);},this[_0x1cb4d5(0x14c)]=await navigator[_0x1cb4d5(0x131)][_0x1cb4d5(0x15a)]({'audio':!![]});if(this[_0x1cb4d5(0x14c)]){const _0x5c7a10=this[_0x1cb4d5(0x14c)][_0x1cb4d5(0x11e)]()[0x0];this[_0x1cb4d5(0x13f)]['addTrack'](_0x5c7a10,this[_0x1cb4d5(0x14c)]);}const _0x37876b=await this[_0x1cb4d5(0x13f)][_0x1cb4d5(0x15e)]();await this[_0x1cb4d5(0x13f)][_0x1cb4d5(0x146)](_0x37876b);const _0x329f73=this[_0x1cb4d5(0x123)]['baseUrl']+'/v1/agrasya/connect',_0x162ce9=await fetch(_0x329f73,{'method':_0x1cb4d5(0x11f),'body':JSON['stringify']({'sessionId':this[_0x1cb4d5(0x11c)],'sdp':_0x37876b[_0x1cb4d5(0x157)]}),'headers':{'x-agrasya-client-api-key':this[_0x1cb4d5(0x123)][_0x1cb4d5(0x130)],'Content-Type':_0x1cb4d5(0x135)}});if(!_0x162ce9['ok'])throw new Error(_0x1cb4d5(0x151)+_0x162ce9[_0x1cb4d5(0x129)]);const _0x314ddd=await _0x162ce9[_0x1cb4d5(0x127)](),_0x207367=_0x314ddd[_0x1cb4d5(0x133)][_0x1cb4d5(0x157)],_0x52a969={'type':'answer','sdp':_0x207367};await this[_0x1cb4d5(0x13f)][_0x1cb4d5(0x126)](_0x52a969);}['setupSocketListeners'](_0x1932a6){const _0x55cb38=a1_0x4c6459;_0x1932a6['on']('disconnect',()=>{this['cleanup']();}),_0x1932a6['on'](_0x55cb38(0x12e),()=>{this['cleanup']();}),_0x1932a6['on']('usage_limit_reached',_0x3fb25a=>{const _0x1513fd=_0x55cb38;this['events'][_0x1513fd(0x14e)]?.(_0x3fb25a);});}async[a1_0x4c6459(0x143)](_0x463e2f){const _0x370758=a1_0x4c6459;try{this[_0x370758(0x15d)](_0x370758(0x15f));const _0x4de461=await this['initializeBackendSession']();this[_0x370758(0x11c)]=_0x4de461['sessionId'],this[_0x370758(0x12a)]=_0x4de461[_0x370758(0x12a)];if(!this[_0x370758(0x12a)])throw new Error('key\x20is\x20null\x20or\x20undefined.');const _0x2533a7=await this[_0x370758(0x117)]();this['log'](_0x370758(0x152)+_0x2533a7),await this['setupWebRTC'](this[_0x370758(0x12a)]),this[_0x370758(0x163)]=a1_0x5382ae(this[_0x370758(0x123)][_0x370758(0x13e)],{'transports':[_0x370758(0x141)]}),this[_0x370758(0x163)][_0x370758(0x158)]('join_session',{'sessionId':this[_0x370758(0x11c)]}),this['socket']['emit'](_0x370758(0x162)),this[_0x370758(0x138)](this[_0x370758(0x163)]),this[_0x370758(0x15d)](_0x370758(0x125)),this[_0x370758(0x12b)]();}catch(_0x54d36a){this[_0x370758(0x15d)](_0x370758(0x156));throw _0x54d36a;}}async['stopVoiceSession'](){const _0x333a29=a1_0x4c6459;this[_0x333a29(0x136)]();}[a1_0x4c6459(0x136)](){const _0x2896ff=a1_0x4c6459;this['peerConnection']&&(this[_0x2896ff(0x13f)][_0x2896ff(0x11d)](),this[_0x2896ff(0x13f)]=null),this[_0x2896ff(0x124)]&&(this['dataChannel']['close'](),this[_0x2896ff(0x124)]=null),this[_0x2896ff(0x14c)]&&(this['audioStream'][_0x2896ff(0x11e)]()[_0x2896ff(0x155)](_0x25c35c=>_0x25c35c[_0x2896ff(0x147)]()),this[_0x2896ff(0x14c)]=null),this[_0x2896ff(0x163)]&&(this[_0x2896ff(0x163)][_0x2896ff(0x12c)](),this['socket']=null),this[_0x2896ff(0x132)](),this[_0x2896ff(0x15d)](_0x2896ff(0x14a));}async[a1_0x4c6459(0x117)](){const _0x1ba51a=a1_0x4c6459,_0x728fe5=this[_0x1ba51a(0x123)][_0x1ba51a(0x13e)]+_0x1ba51a(0x13b),_0x2f15a3=await fetch(_0x728fe5,{'method':_0x1ba51a(0x154),'headers':{'x-agrasya-client-api-key':this[_0x1ba51a(0x123)]['apiKey'],'Content-Type':'application/json'}});if(!_0x2f15a3['ok']){const _0x27411b=await _0x2f15a3[_0x1ba51a(0x127)]()['catch'](()=>({'message':_0x2f15a3[_0x1ba51a(0x129)]}));throw new Error(_0x1ba51a(0x149)+(_0x27411b[_0x1ba51a(0x153)]||_0x2f15a3[_0x1ba51a(0x129)]));}const _0x363734=await _0x2f15a3[_0x1ba51a(0x127)]();if(!_0x363734[_0x1ba51a(0x164)])throw new Error(_0x363734['message']||_0x1ba51a(0x15c));return _0x363734[_0x1ba51a(0x133)][_0x1ba51a(0x122)];}};function a1_0x2ac9(_0x581670,_0x2be819){_0x581670=_0x581670-0x114;const _0x5e8288=a1_0x5e82();let _0x2ac92b=_0x5e8288[_0x581670];return _0x2ac92b;}export{AgrasyaVoiceSDK};
|