@origonai/web-chat-sdk 1.0.4 → 1.0.6

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.
@@ -1,50 +1,50 @@
1
- import { fetchEventSource as re } from "@microsoft/fetch-event-source";
2
- function H() {
3
- const e = Date.now(), t = new Uint8Array(16);
4
- crypto.getRandomValues(t), t[0] = e >> 40 & 255, t[1] = e >> 32 & 255, t[2] = e >> 24 & 255, t[3] = e >> 16 & 255, t[4] = e >> 8 & 255, t[5] = e & 255, t[6] = t[6] & 15 | 112, t[8] = t[8] & 63 | 128;
5
- const s = [...t].map((r) => r.toString(16).padStart(2, "0")).join("");
6
- return `${s.slice(0, 8)}-${s.slice(8, 12)}-${s.slice(12, 16)}-${s.slice(
1
+ import { fetchEventSource as de } from "@microsoft/fetch-event-source";
2
+ function X() {
3
+ const e = Date.now(), n = new Uint8Array(16);
4
+ crypto.getRandomValues(n), n[0] = e >> 40 & 255, n[1] = e >> 32 & 255, n[2] = e >> 24 & 255, n[3] = e >> 16 & 255, n[4] = e >> 8 & 255, n[5] = e & 255, n[6] = n[6] & 15 | 112, n[8] = n[8] & 63 | 128;
5
+ const o = [...n].map((r) => r.toString(16).padStart(2, "0")).join("");
6
+ return `${o.slice(0, 8)}-${o.slice(8, 12)}-${o.slice(12, 16)}-${o.slice(
7
7
  16,
8
8
  20
9
- )}-${s.slice(20)}`;
9
+ )}-${o.slice(20)}`;
10
10
  }
11
- function ae() {
11
+ function ue() {
12
12
  if (localStorage.getItem("chatDeviceId"))
13
13
  return localStorage.getItem("chatDeviceId");
14
- const e = H();
14
+ const e = X();
15
15
  return localStorage.setItem("chatDeviceId", e), e;
16
16
  }
17
- async function ie(e) {
18
- return new Promise((t) => setTimeout(t, e));
17
+ async function ge(e) {
18
+ return new Promise((n) => setTimeout(n, e));
19
19
  }
20
- function le(e) {
21
- let t;
20
+ function fe(e) {
21
+ let n;
22
22
  try {
23
- const s = new URL(e);
24
- t = `https://${s.hostname}${s.pathname}/sse`;
25
- } catch (s) {
23
+ const o = new URL(e);
24
+ n = `https://${o.hostname}${o.pathname}/sse`;
25
+ } catch (o) {
26
26
  }
27
- return t;
27
+ return n;
28
28
  }
29
- function de(e) {
30
- let t;
29
+ function pe(e) {
30
+ let n;
31
31
  try {
32
- const s = new URL(e);
33
- t = `wss://${s.hostname}${s.pathname}/wss`;
34
- } catch (s) {
32
+ const o = new URL(e);
33
+ n = `wss://${o.hostname}${o.pathname}/wss`;
34
+ } catch (o) {
35
35
  }
36
- return t;
36
+ return n;
37
37
  }
38
- function ue(e) {
39
- let t;
38
+ function me(e) {
39
+ let n;
40
40
  try {
41
- const s = new URL(e);
42
- t = `wss://${s.hostname}${s.pathname}/audio`;
43
- } catch (s) {
41
+ const o = new URL(e);
42
+ n = `wss://${o.hostname}${o.pathname}/audio`;
43
+ } catch (o) {
44
44
  }
45
- return t;
45
+ return n;
46
46
  }
47
- const w = {
47
+ const y = {
48
48
  ASSISTANT: "assistant",
49
49
  // this can be automated or LLM AI Agent response
50
50
  USER: "user",
@@ -53,13 +53,13 @@ const w = {
53
53
  // this is human supervisor (ex. Samespace Dock agent, or Resolve human agent)
54
54
  SYSTEM: "system"
55
55
  // this is system message, for ex "Agent joined" / "Agent left"
56
- }, Y = 1e4, ge = 5e3, v = {
56
+ }, Z = 1e4, Se = 5e3, D = {
57
57
  MESSAGE: "message",
58
58
  TYPING: "typing",
59
59
  TYPING_STOP: "typingOff",
60
60
  END: "end"
61
61
  };
62
- function fe() {
62
+ function ke() {
63
63
  return {
64
64
  socket: null,
65
65
  previouslyConnected: !1,
@@ -69,112 +69,112 @@ function fe() {
69
69
  socketConnectionTimeout: null
70
70
  };
71
71
  }
72
- let c = fe();
73
- function U() {
74
- c.pingInterval && (clearInterval(c.pingInterval), c.pingInterval = null);
72
+ let a = ke();
73
+ function M() {
74
+ a.pingInterval && (clearInterval(a.pingInterval), a.pingInterval = null);
75
75
  }
76
- function pe() {
77
- U(), c.pingInterval = setInterval(() => {
78
- c.socket && c.socket.readyState === WebSocket.OPEN ? O({ type: "ping" }) : U();
79
- }, Y);
76
+ function Ie() {
77
+ M(), a.pingInterval = setInterval(() => {
78
+ a.socket && a.socket.readyState === WebSocket.OPEN ? x({ type: "ping" }) : M();
79
+ }, Z);
80
80
  }
81
- function B() {
82
- U(), c.socketDisconnectedTimeout && (clearTimeout(c.socketDisconnectedTimeout), c.socketDisconnectedTimeout = null), c.socketConnectionTimeout && (clearTimeout(c.socketConnectionTimeout), c.socketConnectionTimeout = null);
81
+ function j() {
82
+ M(), a.socketDisconnectedTimeout && (clearTimeout(a.socketDisconnectedTimeout), a.socketDisconnectedTimeout = null), a.socketConnectionTimeout && (clearTimeout(a.socketConnectionTimeout), a.socketConnectionTimeout = null);
83
83
  }
84
- function Q() {
85
- c.socketDisconnected = !1, R("socket");
84
+ function ee() {
85
+ a.socketDisconnected = !1, O("socket");
86
86
  }
87
- function Z() {
88
- c.socketDisconnected = !0, R("sse");
87
+ function ne() {
88
+ a.socketDisconnected = !0, O("sse");
89
89
  }
90
- function me(e) {
91
- return new Promise((t, s) => {
92
- if (c.socket && (c.socket.readyState === WebSocket.CONNECTING || c.socket.readyState === WebSocket.OPEN)) {
93
- t(c.socket.readyState === WebSocket.OPEN);
90
+ function he(e) {
91
+ return new Promise((n, o) => {
92
+ if (a.socket && (a.socket.readyState === WebSocket.CONNECTING || a.socket.readyState === WebSocket.OPEN)) {
93
+ n(a.socket.readyState === WebSocket.OPEN);
94
94
  return;
95
95
  }
96
- const r = N();
96
+ const r = b();
97
97
  if (!r || !r.endpoint) {
98
- s(new Error("SDK not initialized. Please initialize SDK first."));
98
+ o(new Error("SDK not initialized. Please initialize SDK first."));
99
99
  return;
100
100
  }
101
- const d = de(r.endpoint);
102
- if (!d) {
103
- s(
101
+ const l = pe(r.endpoint);
102
+ if (!l) {
103
+ o(
104
104
  new Error(
105
105
  "Invalid endpoint while initializing SDK. Please check the endpoint and try again."
106
106
  )
107
107
  );
108
108
  return;
109
109
  }
110
- const f = P(), i = new URLSearchParams({
111
- externalId: f
110
+ const d = P(), c = new URLSearchParams({
111
+ externalId: d
112
112
  });
113
- e.sessionId && i.set("sessionId", e.sessionId), e.requestId && i.set("requestId", e.requestId), r.token && i.set("token", r.token);
114
- const u = `${d}?${i.toString()}`;
115
- c.socket = new WebSocket(u), c.socket.onopen = () => {
116
- c.previouslyConnected = !0, Q(), O({ type: "ping" }), clearTimeout(c.socketConnectionTimeout), pe(), t(!0);
117
- }, c.socket.onmessage = (l) => {
118
- const p = JSON.parse(l.data);
119
- Se(p);
120
- }, c.socket.onerror = (l) => {
121
- R("sse"), s(l);
122
- }, c.socket.onclose = (l) => {
123
- l.target === c.socket && (l.code === 1006 && (c.previouslyConnected ? Z() : k({
113
+ e.sessionId && c.set("sessionId", e.sessionId), e.requestId && c.set("requestId", e.requestId), r.token && c.set("token", r.token);
114
+ const u = `${l}?${c.toString()}`;
115
+ a.socket = new WebSocket(u), a.socket.onopen = () => {
116
+ a.previouslyConnected = !0, ee(), x({ type: "ping" }), clearTimeout(a.socketConnectionTimeout), Ie(), n(!0);
117
+ }, a.socket.onmessage = (f) => {
118
+ const g = JSON.parse(f.data);
119
+ we(g);
120
+ }, a.socket.onerror = (f) => {
121
+ O("sse"), o(f);
122
+ }, a.socket.onclose = (f) => {
123
+ f.target === a.socket && (f.code === 1006 && (a.previouslyConnected ? ne() : h({
124
124
  errorText: "Unable to establish connection",
125
125
  done: !0,
126
126
  timestamp: (/* @__PURE__ */ new Date()).toISOString()
127
- }), clearTimeout(c.socketConnectionTimeout)), c.socket = null, B());
128
- }, c.previouslyConnected || (c.socketConnectionTimeout = setTimeout(() => {
129
- k({
127
+ }), clearTimeout(a.socketConnectionTimeout)), a.socket = null, j());
128
+ }, a.previouslyConnected || (a.socketConnectionTimeout = setTimeout(() => {
129
+ h({
130
130
  errorText: "Unable to establish connection",
131
131
  done: !0,
132
132
  timestamp: (/* @__PURE__ */ new Date()).toISOString()
133
- }), s(new Error("Socket connection timed out"));
134
- }, ge));
133
+ }), o(new Error("Socket connection timed out"));
134
+ }, Se));
135
135
  });
136
136
  }
137
- function O(e) {
138
- c.socketDisconnected || !c.socket || c.socket.send(JSON.stringify({ ...e, eventId: e.eventId || H() }));
137
+ function x(e) {
138
+ a.socketDisconnected || !a.socket || a.socket.send(JSON.stringify({ ...e, eventId: e.eventId || X() }));
139
139
  }
140
- function Se(e) {
140
+ function we(e) {
141
141
  switch (e.type) {
142
142
  case "pong": {
143
- c.socketDisconnected && Q(), c.socketDisconnectedTimeout && clearTimeout(c.socketDisconnectedTimeout), c.socketDisconnectedTimeout = setTimeout(() => {
144
- Z();
145
- }, Y + 1e3);
143
+ a.socketDisconnected && ee(), a.socketDisconnectedTimeout && clearTimeout(a.socketDisconnectedTimeout), a.socketDisconnectedTimeout = setTimeout(() => {
144
+ ne();
145
+ }, Z + 1e3);
146
146
  break;
147
147
  }
148
- case v.TYPING: {
149
- V(!0);
148
+ case D.TYPING: {
149
+ Q(!0);
150
150
  break;
151
151
  }
152
- case v.TYPING_STOP: {
153
- V(!1);
152
+ case D.TYPING_STOP: {
153
+ Q(!1);
154
154
  break;
155
155
  }
156
- case v.MESSAGE: {
157
- const { eventId: t, data: s } = e;
158
- t || k({
159
- ...s,
156
+ case D.MESSAGE: {
157
+ const { eventId: n, data: o } = e;
158
+ n || h({
159
+ ...o,
160
160
  done: !0,
161
161
  timestamp: (/* @__PURE__ */ new Date()).toISOString()
162
162
  });
163
163
  break;
164
164
  }
165
- case v.END: {
166
- j();
165
+ case D.END: {
166
+ te();
167
167
  break;
168
168
  }
169
169
  }
170
170
  }
171
- function j() {
172
- c.socket && c.socket.close(1e3), c.previouslyConnected = !1, B(), c.socket = null, R("sse");
171
+ function te() {
172
+ a.socket && a.socket.close(1e3), a.previouslyConnected = !1, j(), a.socket = null, O("sse");
173
173
  }
174
- function ke() {
175
- return c.socket !== null && c.socket.readyState === WebSocket.OPEN && !c.socketDisconnected;
174
+ function Ce() {
175
+ return a.socket !== null && a.socket.readyState === WebSocket.OPEN && !a.socketDisconnected;
176
176
  }
177
- function X(e = {}) {
177
+ function oe(e = {}) {
178
178
  return {
179
179
  credentials: void 0,
180
180
  authenticated: !1,
@@ -190,251 +190,310 @@ function X(e = {}) {
190
190
  control: "agent"
191
191
  };
192
192
  }
193
- let o = X();
194
- function xe(e) {
195
- o.callbacks = { ...o.callbacks, ...e };
193
+ let s = oe();
194
+ function ze(e) {
195
+ s.callbacks = { ...s.callbacks, ...e };
196
196
  }
197
- function qe(e) {
198
- o.credentials = e, e.token && (o.authenticated = !0);
197
+ function Fe(e) {
198
+ s.credentials = e, e.token && (s.authenticated = !0);
199
199
  }
200
- function N() {
201
- return o.credentials;
200
+ function b() {
201
+ return s.credentials;
202
202
  }
203
- function Ie(e) {
204
- var t, s;
205
- e && e !== o.sessionId && (o.sessionId = e, (s = (t = o.callbacks).onSessionUpdate) == null || s.call(t, e));
203
+ function Ee(e) {
204
+ var n, o;
205
+ e && e !== s.sessionId && (s.sessionId = e, (o = (n = s.callbacks).onSessionUpdate) == null || o.call(n, e));
206
206
  }
207
- async function Le(e = {}) {
207
+ async function Ge(e = {}) {
208
208
  try {
209
- let t = null;
210
- o.authenticated ? t = o.configData : (t = await ye(o.credentials), o.authenticated = !0, o.configData = t);
211
- let s = [], r = "agent";
209
+ let n = null;
210
+ s.authenticated ? n = s.configData : (n = await Te(s.credentials), s.authenticated = !0, s.configData = n);
211
+ let o = [], r = "agent";
212
212
  if (e.sessionId) {
213
- const f = await Ee(e.sessionId);
214
- s = f.messages, r = f.control || "agent";
213
+ const d = await ve(e.sessionId);
214
+ o = d.messages, r = d.control || "agent";
215
215
  }
216
- const d = new URLSearchParams();
217
- return o.credentials.token || d.set("externalId", P()), o.sseUrl = `${le(
218
- o.credentials.endpoint
219
- )}?${d.toString()}`, o.sessionId = e.sessionId, o.messages = s, o.control = r, r === "human" && Ce({ text: "", html: "" }).catch(() => {
216
+ const l = new URLSearchParams();
217
+ return s.credentials.token || l.set("externalId", P()), s.sseUrl = `${fe(
218
+ s.credentials.endpoint
219
+ )}?${l.toString()}`, s.sessionId = e.sessionId, s.messages = o, s.control = r, r === "human" && ye({ text: "", html: "" }).catch(() => {
220
220
  }), {
221
- sessionId: o.sessionId,
222
- messages: s,
221
+ sessionId: s.sessionId,
222
+ messages: o,
223
223
  control: r,
224
- configData: t
224
+ configData: n
225
225
  };
226
- } catch (t) {
227
- throw ee(), t;
226
+ } catch (n) {
227
+ throw se(), n;
228
228
  }
229
229
  }
230
- function Ge() {
231
- ee();
230
+ function Je() {
231
+ se();
232
232
  }
233
- function ee() {
234
- o.abortController && o.abortController.abort(), j();
235
- const { callbacks: e, credentials: t } = o;
236
- o = X(e), o.credentials = t;
233
+ function se() {
234
+ s.abortController && s.abortController.abort(), te();
235
+ const { callbacks: e, credentials: n } = s;
236
+ s = oe(e), s.credentials = n;
237
237
  }
238
238
  function P() {
239
239
  var e;
240
- return (e = o.credentials) != null && e.externalId ? o.credentials.externalId : ae();
240
+ return (e = s.credentials) != null && e.externalId ? s.credentials.externalId : ue();
241
241
  }
242
- function k(e) {
243
- var t, s;
244
- o.messages = [...o.messages, e], (s = (t = o.callbacks).onMessageAdd) == null || s.call(t, e);
242
+ function h(e) {
243
+ var n, o;
244
+ s.messages = [...s.messages, e], (o = (n = s.callbacks).onMessageAdd) == null || o.call(n, e);
245
245
  }
246
- function V(e) {
247
- var t, s;
248
- (s = (t = o.callbacks).onTyping) == null || s.call(t, e);
246
+ function Q(e) {
247
+ var n, o;
248
+ (o = (n = s.callbacks).onTyping) == null || o.call(n, e);
249
249
  }
250
- function R(e) {
251
- var t, s;
252
- o.transport = e, (s = (t = o.callbacks).onTransportUpdate) == null || s.call(t, e);
250
+ function O(e) {
251
+ var n, o;
252
+ s.transport = e, (o = (n = s.callbacks).onTransportUpdate) == null || o.call(n, e);
253
253
  }
254
- function Ce({ text: e, html: t, context: s }) {
255
- return new Promise((r, d) => {
254
+ function ye({ text: e, html: n, context: o, attachments: r }) {
255
+ return new Promise((l, d) => {
256
256
  (async () => {
257
- var f, i, u;
257
+ var c, u, f;
258
258
  try {
259
- const l = !e && !t;
260
- if (!l) {
261
- const g = {
262
- role: w.USER,
259
+ const g = !e && !n;
260
+ if (!g) {
261
+ const p = {
262
+ role: y.USER,
263
263
  text: e,
264
- html: t,
265
- timestamp: (/* @__PURE__ */ new Date()).toISOString()
264
+ html: n,
265
+ timestamp: (/* @__PURE__ */ new Date()).toISOString(),
266
+ attachments: r
266
267
  };
267
- k(g), await ie(200);
268
+ h(p), await ge(200);
268
269
  }
269
- if (o.transport === "socket" && ke()) {
270
- O({
270
+ if (s.transport === "socket" && Ce()) {
271
+ x({
271
272
  type: "message",
272
273
  data: {
273
274
  text: e,
274
- html: t
275
+ html: n
275
276
  }
276
- }), r(o.sessionId);
277
+ }), l(s.sessionId);
277
278
  return;
278
279
  }
279
- if (o.control === "agent") {
280
- const g = {
281
- role: w.ASSISTANT,
280
+ if (s.control === "agent") {
281
+ const p = {
282
+ role: y.ASSISTANT,
282
283
  text: "",
283
284
  loading: !0
284
285
  };
285
- k(g);
286
+ h(p);
286
287
  }
287
- const p = new URL(o.sseUrl);
288
- o.sessionId && p.searchParams.set("sessionId", o.sessionId), o.requestId && p.searchParams.set("requestId", o.requestId), o.lastStreamId = void 0, o.abortController = new AbortController();
288
+ const I = new URL(s.sseUrl);
289
+ s.sessionId && I.searchParams.set("sessionId", s.sessionId), s.requestId && I.searchParams.set("requestId", s.requestId), s.lastStreamId = void 0, s.abortController = new AbortController();
289
290
  const C = {
290
291
  "Content-Type": "application/json"
291
292
  };
292
- (f = o.credentials) != null && f.token && (C.Authorization = `Bearer ${o.credentials.token}`), await re(p.toString(), {
293
+ (c = s.credentials) != null && c.token && (C.Authorization = `Bearer ${s.credentials.token}`), await de(I.toString(), {
293
294
  method: "POST",
294
295
  headers: C,
295
- body: l ? void 0 : JSON.stringify({
296
+ body: g ? void 0 : JSON.stringify({
296
297
  message: e,
297
- html: t,
298
- context: s
298
+ html: n,
299
+ context: o,
300
+ attachments: r
299
301
  }),
300
- signal: o.abortController.signal,
302
+ signal: s.abortController.signal,
301
303
  openWhenHidden: !0,
302
- onopen: async (g) => {
303
- if (!g.ok)
304
+ onopen: async (p) => {
305
+ if (!p.ok)
304
306
  throw new Error("Failed to send message");
305
307
  },
306
- onmessage: (g) => {
307
- var E, b, M, x, q, L, G, z, F, W, J, _, K;
308
- const a = JSON.parse(g.data);
309
- if (g.event === "connected")
310
- o.sessionId = a.sessionId, o.requestId = a.requestId, a.control && (o.control = a.control, (b = (E = o.callbacks).onControlUpdate) == null || b.call(E, a.control));
311
- else if (g.event === "upgrade_to_websocket")
312
- me({
313
- sessionId: o.sessionId,
314
- requestId: a.requestId
308
+ onmessage: (p) => {
309
+ var $, A, q, L, z, F, G, J, W, _, K, H, V, B, Y;
310
+ const i = JSON.parse(p.data);
311
+ if (p.event === "connected")
312
+ s.sessionId = i.sessionId, s.requestId = i.requestId, i.control && (s.control = i.control, (A = ($ = s.callbacks).onControlUpdate) == null || A.call($, i.control));
313
+ else if (p.event === "upgrade_to_websocket")
314
+ he({
315
+ sessionId: s.sessionId,
316
+ requestId: i.requestId
315
317
  });
316
- else if (g.event === "update")
317
- a.control && (o.control = a.control, (x = (M = o.callbacks).onControlUpdate) == null || x.call(M, a.control));
318
- else if (a.error) {
319
- const h = a.error && typeof a.error == "string" ? a.error : "Failed to connect to the system", S = o.messages.length - 1, m = {
320
- ...o.messages[S],
318
+ else if (p.event === "update")
319
+ i.control && (s.control = i.control, (L = (q = s.callbacks).onControlUpdate) == null || L.call(q, i.control));
320
+ else if (i.error) {
321
+ const m = i.error && typeof i.error == "string" ? i.error : "Failed to connect to the system", k = s.messages.length - 1, S = {
322
+ ...s.messages[k],
321
323
  loading: !1,
322
- errorText: h
324
+ errorText: m
323
325
  };
324
- o.messages = o.messages.map(
325
- ($, ce) => ce === S ? m : $
326
- ), (L = (q = o.callbacks).onMessageUpdate) == null || L.call(q, S, m), d(new Error(h));
327
- } else if (g.event === "done")
328
- r(o.sessionId);
329
- else if (a.message !== void 0) {
330
- if (a.role === w.SUPERVISOR) {
331
- const m = {
332
- role: w.SUPERVISOR,
333
- text: a.message,
334
- sources: a.sources,
326
+ s.messages = s.messages.map(
327
+ (v, le) => le === k ? S : v
328
+ ), (F = (z = s.callbacks).onMessageUpdate) == null || F.call(z, k, S), d(new Error(m));
329
+ } else if (p.event === "done") {
330
+ const m = s.messages.length - 1, E = {
331
+ ...s.messages[m],
332
+ loading: !1,
333
+ done: !0
334
+ };
335
+ s.messages = s.messages.map(
336
+ (S, v) => v === m ? E : S
337
+ ), (J = (G = s.callbacks).onMessageUpdate) == null || J.call(G, m, E), l(s.sessionId);
338
+ } else if (i.message !== void 0) {
339
+ if (i.role === y.SUPERVISOR) {
340
+ const S = {
341
+ role: y.SUPERVISOR,
342
+ text: i.message,
343
+ sources: i.sources,
335
344
  done: !0
336
345
  };
337
- k(m), r(o.sessionId), o.sessionId = (G = a.sessionId) != null ? G : o.sessionId, o.requestId = (z = a.requestId) != null ? z : o.requestId;
346
+ h(S), l(s.sessionId), s.sessionId = (W = i.sessionId) != null ? W : s.sessionId, s.requestId = (_ = i.requestId) != null ? _ : s.requestId;
338
347
  return;
339
348
  }
340
- if (a.streamId !== void 0) {
341
- if (o.lastStreamId === void 0)
342
- o.lastStreamId = a.streamId;
343
- else if (a.streamId !== o.lastStreamId) {
344
- o.lastStreamId = a.streamId;
345
- const m = {
346
- role: w.ASSISTANT,
349
+ if (i.streamId !== void 0) {
350
+ if (s.lastStreamId === void 0)
351
+ s.lastStreamId = i.streamId;
352
+ else if (i.streamId !== s.lastStreamId) {
353
+ s.lastStreamId = i.streamId;
354
+ const S = {
355
+ role: y.ASSISTANT,
347
356
  text: "",
348
357
  loading: !0
349
358
  };
350
- k(m);
359
+ h(S);
351
360
  }
352
361
  }
353
- const h = o.messages.length - 1, S = o.messages[h], A = {
354
- ...S,
362
+ const m = s.messages.length - 1, k = s.messages[m], E = {
363
+ ...k,
355
364
  loading: !1,
356
- text: (S.text || "") + a.message,
357
- sources: a.sources,
358
- done: (F = a.done) != null ? F : S.done
365
+ text: (k.text || "") + i.message,
366
+ sources: i.sources,
367
+ done: (K = i.done) != null ? K : k.done
359
368
  };
360
- o.messages = o.messages.map(
361
- (m, $) => $ === h ? A : m
362
- ), (J = (W = o.callbacks).onMessageUpdate) == null || J.call(W, h, A), a.done, o.sessionId = (_ = a.sessionId) != null ? _ : o.sessionId, o.requestId = (K = a.requestId) != null ? K : o.requestId;
369
+ s.messages = s.messages.map(
370
+ (S, v) => v === m ? E : S
371
+ ), (V = (H = s.callbacks).onMessageUpdate) == null || V.call(H, m, E), i.done, s.sessionId = (B = i.sessionId) != null ? B : s.sessionId, s.requestId = (Y = i.requestId) != null ? Y : s.requestId;
363
372
  }
364
373
  },
365
- onerror: (g) => {
366
- throw g;
374
+ onerror: (p) => {
375
+ throw p;
367
376
  },
368
377
  openWhenHidden: !0
369
378
  });
370
- } catch (l) {
371
- const p = "Failed to connect to the system", C = o.messages.length - 1, g = o.messages[C], a = {
372
- ...g,
379
+ } catch (g) {
380
+ const I = "Failed to connect to the system", C = s.messages.length - 1, p = s.messages[C], i = {
381
+ ...p,
373
382
  loading: !1,
374
- errorText: g.done ? void 0 : l.message || p,
383
+ errorText: p.done ? void 0 : g.message || I,
375
384
  done: !0
376
385
  };
377
- o.messages = o.messages.map(
378
- (E, b) => b === C ? a : E
379
- ), (u = (i = o.callbacks).onMessageUpdate) == null || u.call(i, C, a), d(l);
386
+ s.messages = s.messages.map(
387
+ ($, A) => A === C ? i : $
388
+ ), (f = (u = s.callbacks).onMessageUpdate) == null || f.call(u, C, i), d(g);
380
389
  }
381
390
  })();
382
391
  });
383
392
  }
384
- const he = "Something went wrong initializing the chat", we = "Chat SDK not initialized";
385
- async function ye(e) {
386
- const { endpoint: t } = e, s = `${t}/config`, r = await fetch(s, {
393
+ const be = "Something went wrong initializing the chat", N = "Chat SDK not initialized";
394
+ async function Te(e) {
395
+ const { endpoint: n } = e, o = `${n}/config`, r = await fetch(o, {
387
396
  method: "GET",
388
397
  headers: {
389
398
  "Content-Type": "application/json"
390
399
  }
391
400
  });
392
401
  if (!r.ok) {
393
- const i = await r.json();
394
- throw new Error((i == null ? void 0 : i.error) || he);
402
+ const c = await r.json();
403
+ throw new Error((c == null ? void 0 : c.error) || be);
395
404
  }
396
405
  return (await r.json()).data;
397
406
  }
398
- async function ze() {
407
+ async function We() {
399
408
  const e = new URLSearchParams({
400
409
  externalId: P()
401
- }), t = await ne(`/sessions?${e.toString()}`, "GET");
402
- if (!t.ok)
410
+ }), n = await re(`/sessions?${e.toString()}`, "GET");
411
+ if (!n.ok)
403
412
  throw new Error("Unable to load history, please try again later");
404
- return t.json();
413
+ return n.json();
405
414
  }
406
- async function Ee(e) {
407
- var i;
408
- const t = new URLSearchParams({
415
+ async function ve(e) {
416
+ var c;
417
+ const n = new URLSearchParams({
409
418
  sessionId: e
410
- }), s = await ne(`/session?${t.toString()}`, "GET");
411
- if (!s.ok)
419
+ }), o = await re(`/session?${n.toString()}`, "GET");
420
+ if (!o.ok)
412
421
  throw new Error("Unable to load messages, please try again later");
413
- const r = await s.json(), d = r == null ? void 0 : r.control, f = ((i = r == null ? void 0 : r.history) != null ? i : []).map((u) => ({
422
+ const r = await o.json(), l = r == null ? void 0 : r.control, d = ((c = r == null ? void 0 : r.history) != null ? c : []).map((u) => ({
414
423
  id: u.id,
415
424
  text: u.text,
416
- role: u.youtubeVideo ? w.ASSISTANT : u.role,
425
+ role: u.youtubeVideo ? y.ASSISTANT : u.role,
417
426
  timestamp: u.timestamp,
418
427
  video: u.youtubeVideo,
419
428
  channel: u.channel,
420
429
  done: !0
421
430
  }));
422
- return { control: d, messages: f };
431
+ return { control: l, messages: d };
423
432
  }
424
- async function ne(e, t = "GET", s = null) {
425
- const r = N(), { endpoint: d, token: f } = r || {};
426
- if (!d)
427
- throw new Error(we);
428
- const i = `${d}${e}`, u = {
433
+ function _e(e, n, o) {
434
+ const r = b(), { endpoint: l, token: d } = r || {};
435
+ if (!l) {
436
+ const g = new Error(N);
437
+ return o && o(g, null), null;
438
+ }
439
+ const c = new XMLHttpRequest(), u = new FormData();
440
+ u.append("file", e);
441
+ const f = `${l}/upload`;
442
+ return c.open("POST", f), d && c.setRequestHeader("Authorization", `Bearer ${d}`), n && c.upload.addEventListener("progress", (g) => {
443
+ if (g.lengthComputable) {
444
+ const I = g.loaded / g.total * 100;
445
+ n(I, g.loaded, g.total);
446
+ }
447
+ }), c.addEventListener("load", () => {
448
+ if (c.status >= 200 && c.status < 300)
449
+ try {
450
+ const g = JSON.parse(c.responseText);
451
+ o && o(null, g);
452
+ } catch (g) {
453
+ o && o(new Error("Failed to parse response"), null);
454
+ }
455
+ else
456
+ o && o(new Error(`Upload failed with status ${c.status}`), null);
457
+ }), c.addEventListener("error", () => {
458
+ o && o(new Error("Network error during upload"), null);
459
+ }), c.addEventListener("abort", () => {
460
+ o && o(new Error("Upload aborted"), null);
461
+ }), c.send(u), c;
462
+ }
463
+ async function Ke(e) {
464
+ const n = b(), { endpoint: o, token: r } = n || {};
465
+ if (!o)
466
+ throw new Error(N);
467
+ const l = `${o}/delete/${e}`, d = {};
468
+ r && (d.Authorization = `Bearer ${r}`);
469
+ const c = await fetch(l, {
470
+ method: "DELETE",
471
+ headers: d
472
+ });
473
+ if (!c.ok)
474
+ throw new Error(`Delete failed with status ${c.status}`);
475
+ return { success: !0 };
476
+ }
477
+ function He(e) {
478
+ const n = b(), { endpoint: o } = n || {};
479
+ if (!o)
480
+ throw new Error(N);
481
+ return `${o}/upload/${e}`;
482
+ }
483
+ async function re(e, n = "GET", o = null) {
484
+ const r = b(), { endpoint: l, token: d } = r || {};
485
+ if (!l)
486
+ throw new Error(N);
487
+ const c = `${l}${e}`, u = {
429
488
  "Content-Type": "application/json"
430
489
  };
431
- return f && (u.Authorization = `Bearer ${f}`), fetch(i, {
490
+ return d && (u.Authorization = `Bearer ${d}`), fetch(c, {
432
491
  headers: u,
433
- method: t,
434
- body: s ? JSON.stringify(s) : null
492
+ method: n,
493
+ body: o ? JSON.stringify(o) : null
435
494
  });
436
495
  }
437
- function te(e = {}) {
496
+ function ae(e = {}) {
438
497
  return {
439
498
  sessionId: void 0,
440
499
  socket: null,
@@ -452,52 +511,52 @@ function te(e = {}) {
452
511
  pendingRemoteIceCandidates: []
453
512
  };
454
513
  }
455
- let n = te();
456
- const be = {
514
+ let t = ae();
515
+ const $e = {
457
516
  iceServers: [{ urls: "stun:stun.l.google.com:19302" }, { urls: "stun:stun1.l.google.com:19302" }]
458
517
  };
459
- function Fe(e) {
460
- n.callbacks = { ...n.callbacks, ...e };
518
+ function Ve(e) {
519
+ t.callbacks = { ...t.callbacks, ...e };
461
520
  }
462
- function oe() {
463
- n.peerConnection && (n.peerConnection.close(), n.peerConnection = null), n.localStream && (n.localStream.getTracks().forEach((t) => t.stop()), n.localStream = null), n.remoteStream && (n.remoteStream = null), n.remoteAudio && (n.remoteAudio.srcObject = null, n.remoteAudio.parentNode && n.remoteAudio.parentNode.removeChild(n.remoteAudio), n.remoteAudio = null), n.socket && (n.socket.close(), n.socket = null), D();
464
- const e = n.callbacks;
465
- n = te(e);
521
+ function ce() {
522
+ t.peerConnection && (t.peerConnection.close(), t.peerConnection = null), t.localStream && (t.localStream.getTracks().forEach((n) => n.stop()), t.localStream = null), t.remoteStream && (t.remoteStream = null), t.remoteAudio && (t.remoteAudio.srcObject = null, t.remoteAudio.parentNode && t.remoteAudio.parentNode.removeChild(t.remoteAudio), t.remoteAudio = null), t.socket && (t.socket.close(), t.socket = null), U();
523
+ const e = t.callbacks;
524
+ t = ae(e);
466
525
  }
467
- function I(e) {
468
- var t, s;
469
- n.callStatus = e, (s = (t = n.callbacks).onCallStatus) == null || s.call(t, e);
526
+ function w(e) {
527
+ var n, o;
528
+ t.callStatus = e, (o = (n = t.callbacks).onCallStatus) == null || o.call(n, e);
470
529
  }
471
- function T(e) {
472
- var t, s;
473
- (s = (t = n.callbacks).onCallError) == null || s.call(t, e);
530
+ function R(e) {
531
+ var n, o;
532
+ (o = (n = t.callbacks).onCallError) == null || o.call(n, e);
474
533
  }
475
- function D() {
476
- n.pingInterval && (clearInterval(n.pingInterval), n.pingInterval = null);
534
+ function U() {
535
+ t.pingInterval && (clearInterval(t.pingInterval), t.pingInterval = null);
477
536
  }
478
- function ve() {
479
- D(), n.pingInterval = setInterval(() => {
480
- if (n.socket && n.socket.readyState === WebSocket.OPEN) {
481
- n.pingCount++;
537
+ function Ae() {
538
+ U(), t.pingInterval = setInterval(() => {
539
+ if (t.socket && t.socket.readyState === WebSocket.OPEN) {
540
+ t.pingCount++;
482
541
  const e = {
483
542
  type: "ping",
484
543
  timestamp: Date.now(),
485
- count: n.pingCount
544
+ count: t.pingCount
486
545
  };
487
- y(e);
546
+ T(e);
488
547
  } else
489
- D();
548
+ U();
490
549
  }, 1e4);
491
550
  }
492
- function Te() {
493
- n.lastPongTime = Date.now();
551
+ function De() {
552
+ t.lastPongTime = Date.now();
494
553
  }
495
- function y(e) {
496
- n.socket && n.socket.readyState === WebSocket.OPEN && n.socket.send(JSON.stringify(e));
554
+ function T(e) {
555
+ t.socket && t.socket.readyState === WebSocket.OPEN && t.socket.send(JSON.stringify(e));
497
556
  }
498
- async function De() {
557
+ async function Re() {
499
558
  try {
500
- n.localStream = await navigator.mediaDevices.getUserMedia({
559
+ t.localStream = await navigator.mediaDevices.getUserMedia({
501
560
  audio: !0,
502
561
  video: !1
503
562
  });
@@ -505,233 +564,236 @@ async function De() {
505
564
  throw e;
506
565
  }
507
566
  }
508
- function Pe() {
509
- n.peerConnection = new RTCPeerConnection(be), n.peerConnection.onicecandidate = (e) => {
567
+ function Ue() {
568
+ t.peerConnection = new RTCPeerConnection($e), t.peerConnection.onicecandidate = (e) => {
510
569
  if (e.candidate) {
511
- const t = JSON.stringify(e.candidate);
512
- n.peerConnection && n.peerConnection.remoteDescription ? y({
570
+ const n = JSON.stringify(e.candidate);
571
+ t.peerConnection && t.peerConnection.remoteDescription ? T({
513
572
  type: "ice",
514
573
  data: {
515
- candidate: t
574
+ candidate: n
516
575
  }
517
- }) : n.localIceCandidates.push(t);
576
+ }) : t.localIceCandidates.push(n);
518
577
  }
519
- }, n.peerConnection.ontrack = (e) => {
520
- n.remoteStream = e.streams[0], n.remoteAudio || (n.remoteAudio = document.createElement("audio"), n.remoteAudio.autoplay = !0, n.remoteAudio.controls = !1, document.body.appendChild(n.remoteAudio)), n.remoteAudio.srcObject = n.remoteStream, n.remoteAudio.play().then(() => {
521
- }).catch((t) => {
578
+ }, t.peerConnection.ontrack = (e) => {
579
+ t.remoteStream = e.streams[0], t.remoteAudio || (t.remoteAudio = document.createElement("audio"), t.remoteAudio.autoplay = !0, t.remoteAudio.controls = !1, document.body.appendChild(t.remoteAudio)), t.remoteAudio.srcObject = t.remoteStream, t.remoteAudio.play().then(() => {
580
+ }).catch((n) => {
522
581
  });
523
- }, n.peerConnection.onconnectionstatechange = () => {
524
- const e = n.peerConnection.connectionState;
525
- e === "connected" ? I("connected") : (e === "disconnected" || e === "closed") && (I("disconnected"), se());
526
- }, n.peerConnection.oniceconnectionstatechange = () => {
582
+ }, t.peerConnection.onconnectionstatechange = () => {
583
+ const e = t.peerConnection.connectionState;
584
+ e === "connected" ? w("connected") : (e === "disconnected" || e === "closed") && (w("disconnected"), ie());
585
+ }, t.peerConnection.oniceconnectionstatechange = () => {
527
586
  };
528
587
  }
529
- function Re(e) {
530
- return new Promise((t, s) => {
531
- if (n.socket && (n.socket.readyState === WebSocket.CONNECTING || n.socket.readyState === WebSocket.OPEN)) {
532
- t(n.socket.readyState === WebSocket.OPEN);
588
+ function Pe(e) {
589
+ return new Promise((n, o) => {
590
+ if (t.socket && (t.socket.readyState === WebSocket.CONNECTING || t.socket.readyState === WebSocket.OPEN)) {
591
+ n(t.socket.readyState === WebSocket.OPEN);
533
592
  return;
534
593
  }
535
- const r = N();
594
+ const r = b();
536
595
  if (!r || !r.endpoint) {
537
- s(new Error("SDK not initialized. Please initialize SDK first."));
596
+ o(new Error("SDK not initialized. Please initialize SDK first."));
538
597
  return;
539
598
  }
540
- const d = ue(r.endpoint);
541
- if (!d) {
542
- s(
599
+ const l = me(r.endpoint);
600
+ if (!l) {
601
+ o(
543
602
  new Error(
544
603
  "Invalid endpoint while initializing SDK. Please check the endpoint and try again."
545
604
  )
546
605
  );
547
606
  return;
548
607
  }
549
- const f = P(), i = new URLSearchParams({
550
- externalId: f
608
+ const d = P(), c = new URLSearchParams({
609
+ externalId: d
551
610
  });
552
- e.sessionId && i.set("sessionId", e.sessionId), r.token && i.set("token", r.token);
553
- const u = `${d}?${i.toString()}`;
554
- n.socket = new WebSocket(u), n.socket.onopen = (l) => {
555
- ve(), t(!0);
556
- }, n.socket.onmessage = (l) => {
557
- const p = JSON.parse(l.data);
558
- Ae(p);
559
- }, n.socket.onerror = (l) => {
560
- I("error"), T(l.message || "Unable to connect voice"), s(l);
561
- }, n.socket.onclose = (l) => {
562
- D();
611
+ e.sessionId && c.set("sessionId", e.sessionId), r.token && c.set("token", r.token);
612
+ const u = `${l}?${c.toString()}`;
613
+ t.socket = new WebSocket(u), t.socket.onopen = (f) => {
614
+ Ae(), n(!0);
615
+ }, t.socket.onmessage = (f) => {
616
+ const g = JSON.parse(f.data);
617
+ Oe(g);
618
+ }, t.socket.onerror = (f) => {
619
+ w("error"), R(f.message || "Unable to connect voice"), o(f);
620
+ }, t.socket.onclose = (f) => {
621
+ U();
563
622
  };
564
623
  });
565
624
  }
566
- function Ae(e) {
625
+ function Oe(e) {
567
626
  switch (e.type) {
568
627
  case "pong":
569
- Te();
628
+ De();
570
629
  break;
571
630
  case "answer":
572
- Ue(e.data);
631
+ Me(e.data);
573
632
  break;
574
633
  case "connected":
575
- $e(e.data);
634
+ Ne(e.data);
576
635
  break;
577
636
  case "ice":
578
- Oe(e.data);
637
+ xe(e.data);
579
638
  break;
580
639
  case "renegotiationOffer":
581
- Ne(e.data);
640
+ qe(e.data);
582
641
  break;
583
642
  case "end":
584
- se();
643
+ ie();
585
644
  break;
586
645
  case "error":
587
- I("error"), T(e.error || "Unable to connect voice");
646
+ w("error"), R(e.error || "Unable to connect voice");
588
647
  break;
589
648
  default:
590
649
  break;
591
650
  }
592
651
  }
593
- function $e(e) {
594
- n.sessionId = e.sessionId, Ie(e.sessionId);
652
+ function Ne(e) {
653
+ t.sessionId = e.sessionId, Ee(e.sessionId);
595
654
  }
596
- async function Ue(e) {
655
+ async function Me(e) {
597
656
  try {
598
- if (n.peerConnection) {
599
- const t = new RTCSessionDescription({
657
+ if (t.peerConnection) {
658
+ const n = new RTCSessionDescription({
600
659
  type: "answer",
601
660
  sdp: e.sdp
602
661
  });
603
- await n.peerConnection.setRemoteDescription(t);
604
- for (const s of n.localIceCandidates)
605
- y({
662
+ await t.peerConnection.setRemoteDescription(n);
663
+ for (const o of t.localIceCandidates)
664
+ T({
606
665
  type: "ice",
607
666
  data: {
608
- candidate: s
667
+ candidate: o
609
668
  }
610
669
  });
611
- n.localIceCandidates = [];
612
- for (const s of n.pendingRemoteIceCandidates)
670
+ t.localIceCandidates = [];
671
+ for (const o of t.pendingRemoteIceCandidates)
613
672
  try {
614
- const r = new RTCIceCandidate(JSON.parse(s));
615
- await n.peerConnection.addIceCandidate(r);
673
+ const r = new RTCIceCandidate(JSON.parse(o));
674
+ await t.peerConnection.addIceCandidate(r);
616
675
  } catch (r) {
617
676
  }
618
- n.pendingRemoteIceCandidates = [];
677
+ t.pendingRemoteIceCandidates = [];
619
678
  }
620
- } catch (t) {
679
+ } catch (n) {
621
680
  }
622
681
  }
623
- async function Oe(e) {
682
+ async function xe(e) {
624
683
  try {
625
- if (n.peerConnection) {
626
- if (!n.peerConnection.remoteDescription) {
627
- n.pendingRemoteIceCandidates.push(e.candidate);
684
+ if (t.peerConnection) {
685
+ if (!t.peerConnection.remoteDescription) {
686
+ t.pendingRemoteIceCandidates.push(e.candidate);
628
687
  return;
629
688
  }
630
- const t = new RTCIceCandidate(JSON.parse(e.candidate));
631
- await n.peerConnection.addIceCandidate(t);
689
+ const n = new RTCIceCandidate(JSON.parse(e.candidate));
690
+ await t.peerConnection.addIceCandidate(n);
632
691
  }
633
- } catch (t) {
692
+ } catch (n) {
634
693
  }
635
694
  }
636
- async function Ne(e) {
695
+ async function qe(e) {
637
696
  try {
638
- if (n.peerConnection) {
639
- const t = new RTCSessionDescription({
697
+ if (t.peerConnection) {
698
+ const n = new RTCSessionDescription({
640
699
  type: "offer",
641
700
  sdp: e.sdp
642
701
  });
643
- await n.peerConnection.setRemoteDescription(t);
644
- const s = await n.peerConnection.createAnswer();
645
- await n.peerConnection.setLocalDescription(s), y({
702
+ await t.peerConnection.setRemoteDescription(n);
703
+ const o = await t.peerConnection.createAnswer();
704
+ await t.peerConnection.setLocalDescription(o), T({
646
705
  type: "renegotiationAnswer",
647
706
  data: {
648
- sdp: s.sdp
707
+ sdp: o.sdp
649
708
  }
650
709
  });
651
710
  }
652
- } catch (t) {
711
+ } catch (n) {
653
712
  }
654
713
  }
655
- async function We(e = {}) {
714
+ async function Be(e = {}) {
656
715
  try {
657
- if (n.callStatus === "connecting" || n.callStatus === "connected")
716
+ if (t.callStatus === "connecting" || t.callStatus === "connected")
658
717
  return;
659
- I("connecting"), T(null), n.sessionId = e.sessionId, await De(), Pe(), n.localStream.getTracks().forEach((s) => {
660
- n.peerConnection.addTrack(s, n.localStream);
661
- }), await Re(e);
662
- const t = await n.peerConnection.createOffer();
663
- await n.peerConnection.setLocalDescription(t), y({
718
+ w("connecting"), R(null), t.sessionId = e.sessionId, await Re(), Ue(), t.localStream.getTracks().forEach((o) => {
719
+ t.peerConnection.addTrack(o, t.localStream);
720
+ }), await Pe(e);
721
+ const n = await t.peerConnection.createOffer();
722
+ await t.peerConnection.setLocalDescription(n), T({
664
723
  type: "offer",
665
724
  data: {
666
- sdp: t.sdp
725
+ sdp: n.sdp
667
726
  }
668
727
  });
669
- } catch (t) {
670
- I("error"), T(t.message || "Unable to connect voice"), oe();
728
+ } catch (n) {
729
+ w("error"), R(n.message || "Unable to connect voice"), ce();
671
730
  }
672
731
  }
673
- function se() {
674
- y({
732
+ function ie() {
733
+ T({
675
734
  type: "end"
676
- }), n.socket && (n.socket.close(), n.socket = null), I("disconnected"), n.peerConnection && (n.peerConnection.close(), n.peerConnection = null), n.localStream && (n.localStream.getTracks().forEach((e) => e.stop()), n.localStream = null), oe();
735
+ }), t.socket && (t.socket.close(), t.socket = null), w("disconnected"), t.peerConnection && (t.peerConnection.close(), t.peerConnection = null), t.localStream && (t.localStream.getTracks().forEach((e) => e.stop()), t.localStream = null), ce();
677
736
  }
678
- function Je() {
679
- if (n.localStream) {
680
- const e = n.localStream.getAudioTracks()[0];
737
+ function Ye() {
738
+ if (t.localStream) {
739
+ const e = t.localStream.getAudioTracks()[0];
681
740
  if (e)
682
- return e.enabled = !e.enabled, n.isMuted = !e.enabled, n.isMuted;
741
+ return e.enabled = !e.enabled, t.isMuted = !e.enabled, t.isMuted;
683
742
  }
684
743
  return !1;
685
744
  }
686
- function _e() {
687
- return n.localStream;
745
+ function Qe() {
746
+ return t.localStream;
688
747
  }
689
- function Ke() {
690
- return new Promise((e, t) => {
691
- if (!n.peerConnection) {
692
- t(new Error("no peer connection"));
748
+ function Xe() {
749
+ return new Promise((e, n) => {
750
+ if (!t.peerConnection) {
751
+ n(new Error("no peer connection"));
693
752
  return;
694
753
  }
695
- n.peerConnection.getStats().then((s) => {
696
- s.forEach((r) => {
754
+ t.peerConnection.getStats().then((o) => {
755
+ o.forEach((r) => {
697
756
  r.type == "inbound-rtp" && e(r.totalAudioEnergy);
698
- }), t(new Error("no inbound-rtp stats found"));
699
- }).catch((s) => {
700
- t(s);
757
+ }), n(new Error("no inbound-rtp stats found"));
758
+ }).catch((o) => {
759
+ n(o);
701
760
  });
702
761
  });
703
762
  }
704
- function Ve() {
705
- return new Promise((e, t) => {
706
- if (!n.peerConnection) {
707
- t(new Error("no peer connection"));
763
+ function Ze() {
764
+ return new Promise((e, n) => {
765
+ if (!t.peerConnection) {
766
+ n(new Error("no peer connection"));
708
767
  return;
709
768
  }
710
- n.peerConnection.getStats().then((s) => {
711
- s.forEach((r) => {
769
+ t.peerConnection.getStats().then((o) => {
770
+ o.forEach((r) => {
712
771
  r.type == "outbound-rtp" && e(r.totalAudioEnergy);
713
- }), t(new Error("no outbound-rtp stats found"));
714
- }).catch((s) => {
715
- t(s);
772
+ }), n(new Error("no outbound-rtp stats found"));
773
+ }).catch((o) => {
774
+ n(o);
716
775
  });
717
776
  });
718
777
  }
719
778
  export {
720
- w as MESSAGE_ROLES,
721
- ye as authenticate,
722
- Ge as disconnect,
723
- se as disconnectCall,
724
- ze as getHistory,
725
- Ke as getInboundAudioEnergy,
726
- _e as getLocalStream,
727
- Ve as getOutboundAudioEnergy,
728
- Ee as getSession,
729
- qe as initialize,
730
- Ce as sendMessage,
731
- Fe as setCallCallbacks,
732
- xe as setCallbacks,
733
- We as startCall,
734
- Le as startChat,
735
- Je as toggleMute
779
+ y as MESSAGE_ROLES,
780
+ Te as authenticate,
781
+ Ke as deleteAttachment,
782
+ Je as disconnect,
783
+ ie as disconnectCall,
784
+ He as getAttachment,
785
+ We as getHistory,
786
+ Xe as getInboundAudioEnergy,
787
+ Qe as getLocalStream,
788
+ Ze as getOutboundAudioEnergy,
789
+ ve as getSession,
790
+ Fe as initialize,
791
+ ye as sendMessage,
792
+ Ve as setCallCallbacks,
793
+ ze as setCallbacks,
794
+ Be as startCall,
795
+ Ge as startChat,
796
+ Ye as toggleMute,
797
+ _e as uploadAttachment
736
798
  };
737
799
  //# sourceMappingURL=origon-chat-sdk.js.map