@d-id/client-sdk 1.0.19-beta.45 → 1.0.19-beta.46
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/dist/index.js +117 -117
- package/dist/index.umd.cjs +1 -1
- package/dist/src/types/stream/stream.d.ts +1 -1
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
const
|
|
1
|
+
const S = "https://api.d-id.com", b = "wss://notifications.d-id.com";
|
|
2
2
|
function W() {
|
|
3
3
|
let e = window.localStorage.getItem("did_external_key_id");
|
|
4
4
|
return e || (e = Math.random().toString(16).slice(2), window.localStorage.setItem("did_external_key_id", e)), e;
|
|
@@ -12,9 +12,9 @@ function K(e) {
|
|
|
12
12
|
return `Client-Key ${e.clientKey}.${W()}`;
|
|
13
13
|
throw new Error(`Unknown auth type: ${e}`);
|
|
14
14
|
}
|
|
15
|
-
function _(e,
|
|
15
|
+
function _(e, a = S) {
|
|
16
16
|
const n = async (t, r) => {
|
|
17
|
-
const
|
|
17
|
+
const i = await fetch(a + (t != null && t.startsWith("/") ? t : `/${t}`), {
|
|
18
18
|
...r,
|
|
19
19
|
headers: {
|
|
20
20
|
...r == null ? void 0 : r.headers,
|
|
@@ -22,11 +22,11 @@ function _(e, i = C) {
|
|
|
22
22
|
"Content-Type": "application/json"
|
|
23
23
|
}
|
|
24
24
|
});
|
|
25
|
-
if (!
|
|
26
|
-
let o = await
|
|
25
|
+
if (!i.ok) {
|
|
26
|
+
let o = await i.text().catch(() => "Failed to fetch");
|
|
27
27
|
throw new Error(o);
|
|
28
28
|
}
|
|
29
|
-
return
|
|
29
|
+
return i.json();
|
|
30
30
|
};
|
|
31
31
|
return {
|
|
32
32
|
get(t, r) {
|
|
@@ -35,37 +35,37 @@ function _(e, i = C) {
|
|
|
35
35
|
method: "GET"
|
|
36
36
|
});
|
|
37
37
|
},
|
|
38
|
-
post(t, r,
|
|
38
|
+
post(t, r, i) {
|
|
39
39
|
return n(t, {
|
|
40
|
-
...
|
|
40
|
+
...i,
|
|
41
41
|
body: JSON.stringify(r),
|
|
42
42
|
method: "POST"
|
|
43
43
|
});
|
|
44
44
|
},
|
|
45
|
-
delete(t, r,
|
|
45
|
+
delete(t, r, i) {
|
|
46
46
|
return n(t, {
|
|
47
|
-
...
|
|
47
|
+
...i,
|
|
48
48
|
body: JSON.stringify(r),
|
|
49
49
|
method: "DELETE"
|
|
50
50
|
});
|
|
51
51
|
},
|
|
52
|
-
patch(t, r,
|
|
52
|
+
patch(t, r, i) {
|
|
53
53
|
return n(t, {
|
|
54
|
-
...
|
|
54
|
+
...i,
|
|
55
55
|
body: JSON.stringify(r),
|
|
56
56
|
method: "PATCH"
|
|
57
57
|
});
|
|
58
58
|
}
|
|
59
59
|
};
|
|
60
60
|
}
|
|
61
|
-
function E(e,
|
|
62
|
-
const n = _(e, `${
|
|
61
|
+
function E(e, a = S) {
|
|
62
|
+
const n = _(e, `${a}/agents`);
|
|
63
63
|
return {
|
|
64
64
|
create(t, r) {
|
|
65
65
|
return n.post("/", t, r);
|
|
66
66
|
},
|
|
67
67
|
getAgents(t, r) {
|
|
68
|
-
return n.get(`/${t ? `?tag=${t}` : ""}`, r).then((
|
|
68
|
+
return n.get(`/${t ? `?tag=${t}` : ""}`, r).then((i) => i ?? []);
|
|
69
69
|
},
|
|
70
70
|
getById(t, r) {
|
|
71
71
|
return n.get(`/${t}`, r);
|
|
@@ -73,19 +73,19 @@ function E(e, i = C) {
|
|
|
73
73
|
delete(t, r) {
|
|
74
74
|
return n.delete(`/${t}`, void 0, r);
|
|
75
75
|
},
|
|
76
|
-
update(t, r,
|
|
77
|
-
return n.patch(`/${t}`, r,
|
|
76
|
+
update(t, r, i) {
|
|
77
|
+
return n.patch(`/${t}`, r, i);
|
|
78
78
|
},
|
|
79
79
|
newChat(t, r) {
|
|
80
80
|
return n.post(`/${t}/chat`, void 0, r);
|
|
81
81
|
},
|
|
82
|
-
chat(t, r,
|
|
83
|
-
return n.post(`/${t}/chat/${r}`,
|
|
82
|
+
chat(t, r, i, o) {
|
|
83
|
+
return n.post(`/${t}/chat/${r}`, i, o);
|
|
84
84
|
}
|
|
85
85
|
};
|
|
86
86
|
}
|
|
87
|
-
function O(e,
|
|
88
|
-
const n = _(e, `${
|
|
87
|
+
function O(e, a = S) {
|
|
88
|
+
const n = _(e, `${a}/knowledge`);
|
|
89
89
|
return {
|
|
90
90
|
createKnowledge(t, r) {
|
|
91
91
|
return n.post("/", t, r);
|
|
@@ -99,87 +99,87 @@ function O(e, i = C) {
|
|
|
99
99
|
deleteKnowledge(t, r) {
|
|
100
100
|
return n.delete(`/${t}`, void 0, r);
|
|
101
101
|
},
|
|
102
|
-
createDocument(t, r,
|
|
103
|
-
return n.post(`/${t}/documents`, r,
|
|
102
|
+
createDocument(t, r, i) {
|
|
103
|
+
return n.post(`/${t}/documents`, r, i);
|
|
104
104
|
},
|
|
105
|
-
deleteDocument(t, r,
|
|
106
|
-
return n.delete(`/${t}/documents/${r}`, void 0,
|
|
105
|
+
deleteDocument(t, r, i) {
|
|
106
|
+
return n.delete(`/${t}/documents/${r}`, void 0, i);
|
|
107
107
|
},
|
|
108
108
|
getDocuments(t, r) {
|
|
109
109
|
return n.get(`/${t}/documents`, r);
|
|
110
110
|
},
|
|
111
|
-
getDocument(t, r,
|
|
112
|
-
return n.get(`/${t}/documents/${r}`,
|
|
111
|
+
getDocument(t, r, i) {
|
|
112
|
+
return n.get(`/${t}/documents/${r}`, i);
|
|
113
113
|
},
|
|
114
|
-
getRecords(t, r,
|
|
115
|
-
return n.get(`/${t}/documents/${r}/records`,
|
|
114
|
+
getRecords(t, r, i) {
|
|
115
|
+
return n.get(`/${t}/documents/${r}/records`, i);
|
|
116
116
|
},
|
|
117
|
-
query(t, r,
|
|
117
|
+
query(t, r, i) {
|
|
118
118
|
return n.post(`/${t}/query`, {
|
|
119
119
|
query: r
|
|
120
|
-
},
|
|
120
|
+
}, i);
|
|
121
121
|
}
|
|
122
122
|
};
|
|
123
123
|
}
|
|
124
|
-
function B(e,
|
|
125
|
-
const n = _(e, `${
|
|
124
|
+
function B(e, a = S) {
|
|
125
|
+
const n = _(e, `${a}/chats/ratings`);
|
|
126
126
|
return {
|
|
127
127
|
create(t, r) {
|
|
128
128
|
return n.post("/", t, r);
|
|
129
129
|
},
|
|
130
130
|
getByKnowledge(t, r) {
|
|
131
|
-
return n.get(`/${t}`, r).then((
|
|
131
|
+
return n.get(`/${t}`, r).then((i) => i ?? []);
|
|
132
132
|
},
|
|
133
|
-
update(t, r,
|
|
134
|
-
return n.patch(`/${t}`, r,
|
|
133
|
+
update(t, r, i) {
|
|
134
|
+
return n.patch(`/${t}`, r, i);
|
|
135
135
|
},
|
|
136
136
|
delete(t, r) {
|
|
137
137
|
return n.delete(`/${t}`, r);
|
|
138
138
|
}
|
|
139
139
|
};
|
|
140
140
|
}
|
|
141
|
-
const H = (e) => new Promise((
|
|
141
|
+
const H = (e) => new Promise((a) => setTimeout(a, e));
|
|
142
142
|
function U(e) {
|
|
143
|
-
return new Promise((
|
|
143
|
+
return new Promise((a, n) => {
|
|
144
144
|
const {
|
|
145
145
|
callbacks: t,
|
|
146
146
|
host: r,
|
|
147
|
-
auth:
|
|
147
|
+
auth: i
|
|
148
148
|
} = e, {
|
|
149
149
|
onMessage: o = null,
|
|
150
150
|
onOpen: u = null,
|
|
151
151
|
onClose: c = null,
|
|
152
152
|
onError: m = null
|
|
153
|
-
} = t || {}, d = new WebSocket(`${r}?authorization=${K(
|
|
153
|
+
} = t || {}, d = new WebSocket(`${r}?authorization=${K(i)}`);
|
|
154
154
|
d.onmessage = o, d.onclose = c, d.onerror = (g) => {
|
|
155
155
|
console.error(g), m == null || m(g), n(g);
|
|
156
156
|
}, d.onopen = (g) => {
|
|
157
|
-
u == null || u(g),
|
|
157
|
+
u == null || u(g), a(d);
|
|
158
158
|
};
|
|
159
159
|
});
|
|
160
160
|
}
|
|
161
161
|
async function F(e) {
|
|
162
162
|
const {
|
|
163
|
-
retries:
|
|
163
|
+
retries: a = 1
|
|
164
164
|
} = e;
|
|
165
165
|
let n = null;
|
|
166
166
|
for (let t = 0; (n == null ? void 0 : n.readyState) !== WebSocket.OPEN; t++)
|
|
167
167
|
try {
|
|
168
168
|
n = await U(e);
|
|
169
169
|
} catch (r) {
|
|
170
|
-
if (t ===
|
|
170
|
+
if (t === a)
|
|
171
171
|
throw r;
|
|
172
172
|
await H(t * 500);
|
|
173
173
|
}
|
|
174
174
|
return n;
|
|
175
175
|
}
|
|
176
|
-
async function T(e,
|
|
176
|
+
async function T(e, a, n) {
|
|
177
177
|
const t = n ? [n] : [], r = await F({
|
|
178
178
|
auth: e,
|
|
179
|
-
host:
|
|
179
|
+
host: a,
|
|
180
180
|
callbacks: {
|
|
181
|
-
onMessage: (
|
|
182
|
-
const o = JSON.parse(
|
|
181
|
+
onMessage: (i) => {
|
|
182
|
+
const o = JSON.parse(i.data);
|
|
183
183
|
t.forEach((u) => u(o.event, o));
|
|
184
184
|
}
|
|
185
185
|
}
|
|
@@ -187,26 +187,26 @@ async function T(e, i, n) {
|
|
|
187
187
|
return {
|
|
188
188
|
socket: r,
|
|
189
189
|
terminate: () => r.close(),
|
|
190
|
-
subscribeToEvents: (
|
|
190
|
+
subscribeToEvents: (i) => t.push(i)
|
|
191
191
|
};
|
|
192
192
|
}
|
|
193
|
-
var q = /* @__PURE__ */ ((e) => (e.Amazon = "amazon", e.Microsoft = "microsoft", e.Afflorithmics = "afflorithmics", e.Elevenlabs = "elevenlabs", e))(q || {}), N = /* @__PURE__ */ ((e) => (e.Public = "public", e.Premium = "premium", e.Private = "private", e))(N || {}),
|
|
193
|
+
var q = /* @__PURE__ */ ((e) => (e.Amazon = "amazon", e.Microsoft = "microsoft", e.Afflorithmics = "afflorithmics", e.Elevenlabs = "elevenlabs", e))(q || {}), N = /* @__PURE__ */ ((e) => (e.Public = "public", e.Premium = "premium", e.Private = "private", e))(N || {}), R = /* @__PURE__ */ ((e) => (e.Start = "START", e.Stop = "STOP", e))(R || {}), y = /* @__PURE__ */ ((e) => (e.ChatAnswer = "chat/answer", e.ChatPartial = "chat/partial", e.StreamDone = "stream/done", e.StreamStarted = "stream/started", e.StreamFailed = "stream/error", e))(y || {}), j = /* @__PURE__ */ ((e) => (e.Unrated = "Unrated", e.Positive = "Positive", e.Negative = "Negative", e))(j || {}), z = /* @__PURE__ */ ((e) => (e.Functional = "Functional", e.TextOnly = "TextOnly", e.Maintenance = "Maintenance", e))(z || {}), P = /* @__PURE__ */ ((e) => (e.Embed = "embed", e.Query = "query", e.Partial = "partial", e.Answer = "answer", e.Complete = "done", e))(P || {}), J = /* @__PURE__ */ ((e) => (e.KnowledgeProcessing = "knowledge/processing", e.KnowledgeIndexing = "knowledge/indexing", e.KnowledgeFailed = "knowledge/error", e.KnowledgeDone = "knowledge/done", e))(J || {}), D = /* @__PURE__ */ ((e) => (e.Knowledge = "knowledge", e.Document = "document", e.Record = "record", e))(D || {}), G = /* @__PURE__ */ ((e) => (e.Pdf = "pdf", e.Text = "text", e.Html = "html", e.Word = "word", e.Json = "json", e.Markdown = "markdown", e.Csv = "csv", e.Excel = "excel", e.Powerpoint = "powerpoint", e.Archive = "archive", e.Image = "image", e.Audio = "audio", e.Video = "video", e))(G || {}), $ = /* @__PURE__ */ ((e) => (e.Clip = "clip", e.Talk = "talk", e))($ || {});
|
|
194
194
|
function Q(e) {
|
|
195
|
-
return e.presenter.type ===
|
|
196
|
-
videoType:
|
|
195
|
+
return e.presenter.type === $.Clip ? {
|
|
196
|
+
videoType: $.Clip,
|
|
197
197
|
driver_id: e.presenter.driver_id,
|
|
198
198
|
presenter_id: e.presenter.presenter_id
|
|
199
199
|
} : {
|
|
200
|
-
videoType:
|
|
200
|
+
videoType: $.Talk,
|
|
201
201
|
source_url: e.presenter.source_url
|
|
202
202
|
};
|
|
203
203
|
}
|
|
204
|
-
function
|
|
205
|
-
return new Promise(async (r,
|
|
204
|
+
function L(e, a, n, t) {
|
|
205
|
+
return new Promise(async (r, i) => {
|
|
206
206
|
const o = await te(Q(e), {
|
|
207
|
-
...
|
|
207
|
+
...a,
|
|
208
208
|
callbacks: {
|
|
209
|
-
...
|
|
209
|
+
...a.callbacks,
|
|
210
210
|
onConnectionStateChange: async (u) => {
|
|
211
211
|
var c, m;
|
|
212
212
|
if (u === "connected")
|
|
@@ -216,50 +216,50 @@ function P(e, i, n, t) {
|
|
|
216
216
|
streamingManager: o
|
|
217
217
|
});
|
|
218
218
|
} catch (d) {
|
|
219
|
-
console.error(d),
|
|
219
|
+
console.error(d), i(new Error("Cannot create new chat"));
|
|
220
220
|
}
|
|
221
221
|
else
|
|
222
|
-
u === "failed" &&
|
|
223
|
-
(m = (c =
|
|
222
|
+
u === "failed" && i(new Error("Cannot create connection"));
|
|
223
|
+
(m = (c = a.callbacks).onConnectionStateChange) == null || m.call(c, u);
|
|
224
224
|
},
|
|
225
225
|
// TODO remove when webscoket will return partial
|
|
226
226
|
onMessage: (u, c) => {
|
|
227
227
|
var m, d;
|
|
228
|
-
u === y.ChatAnswer && (console.log("ChatAnswer", u, c), (d = (m =
|
|
228
|
+
u === y.ChatAnswer && (console.log("ChatAnswer", u, c), (d = (m = a.callbacks).onChatEvents) == null || d.call(m, P.Answer, {
|
|
229
229
|
content: c,
|
|
230
|
-
event:
|
|
230
|
+
event: P.Answer
|
|
231
231
|
}));
|
|
232
232
|
}
|
|
233
233
|
}
|
|
234
234
|
});
|
|
235
235
|
});
|
|
236
236
|
}
|
|
237
|
-
function ne(e,
|
|
238
|
-
return E(
|
|
237
|
+
function ne(e, a, n) {
|
|
238
|
+
return E(a, n || S).getById(e);
|
|
239
239
|
}
|
|
240
|
-
async function re(e,
|
|
240
|
+
async function re(e, a) {
|
|
241
241
|
var w, p;
|
|
242
|
-
const n =
|
|
243
|
-
(p = (w =
|
|
244
|
-
const m = await T(
|
|
242
|
+
const n = a.baseURL || S, t = a.wsURL || b, r = new AbortController(), i = E(a.auth, n), o = B(a.auth, n), u = O(a.auth, n), c = typeof e == "string" ? await i.getById(e) : e;
|
|
243
|
+
(p = (w = a.callbacks) == null ? void 0 : w.onAgentReady) == null || p.call(w, c);
|
|
244
|
+
const m = await T(a.auth, t, a.callbacks.onChatEvents);
|
|
245
245
|
let {
|
|
246
246
|
chat: d,
|
|
247
247
|
streamingManager: g
|
|
248
|
-
} = await
|
|
248
|
+
} = await L(c, a, i);
|
|
249
249
|
return {
|
|
250
250
|
agent: c,
|
|
251
251
|
chatId: d.id,
|
|
252
252
|
async reconnectToChat() {
|
|
253
253
|
const {
|
|
254
254
|
streamingManager: s
|
|
255
|
-
} = await
|
|
255
|
+
} = await L(c, a, i, d);
|
|
256
256
|
g = s;
|
|
257
257
|
},
|
|
258
258
|
terminate() {
|
|
259
259
|
return r.abort(), m.terminate(), g.terminate();
|
|
260
260
|
},
|
|
261
261
|
chat(s) {
|
|
262
|
-
return
|
|
262
|
+
return i.chat(c.id, d.id, {
|
|
263
263
|
sessionId: g.sessionId,
|
|
264
264
|
streamId: g.streamId,
|
|
265
265
|
messages: s
|
|
@@ -299,8 +299,8 @@ async function re(e, i) {
|
|
|
299
299
|
}
|
|
300
300
|
};
|
|
301
301
|
}
|
|
302
|
-
function X(e,
|
|
303
|
-
const n = _(e,
|
|
302
|
+
function X(e, a) {
|
|
303
|
+
const n = _(e, a);
|
|
304
304
|
return {
|
|
305
305
|
createStream(t) {
|
|
306
306
|
return n.post("/clips/streams", {
|
|
@@ -309,22 +309,22 @@ function X(e, i) {
|
|
|
309
309
|
compatibility_mode: t.compatibility_mode
|
|
310
310
|
});
|
|
311
311
|
},
|
|
312
|
-
startConnection(t, r,
|
|
312
|
+
startConnection(t, r, i) {
|
|
313
313
|
return n.post(`/clips/streams/${t}/sdp`, {
|
|
314
|
-
session_id:
|
|
314
|
+
session_id: i,
|
|
315
315
|
answer: r
|
|
316
316
|
});
|
|
317
317
|
},
|
|
318
|
-
addIceCandidate(t, r,
|
|
318
|
+
addIceCandidate(t, r, i) {
|
|
319
319
|
return n.post(`/clips/streams/${t}/ice`, {
|
|
320
|
-
session_id:
|
|
320
|
+
session_id: i,
|
|
321
321
|
...r
|
|
322
322
|
});
|
|
323
323
|
},
|
|
324
|
-
sendStreamRequest(t, r,
|
|
324
|
+
sendStreamRequest(t, r, i) {
|
|
325
325
|
return n.post(`/clips/streams/${t}`, {
|
|
326
326
|
session_id: r,
|
|
327
|
-
...
|
|
327
|
+
...i
|
|
328
328
|
});
|
|
329
329
|
},
|
|
330
330
|
close(t, r) {
|
|
@@ -334,8 +334,8 @@ function X(e, i) {
|
|
|
334
334
|
}
|
|
335
335
|
};
|
|
336
336
|
}
|
|
337
|
-
function Y(e,
|
|
338
|
-
const n = _(e,
|
|
337
|
+
function Y(e, a) {
|
|
338
|
+
const n = _(e, a);
|
|
339
339
|
return {
|
|
340
340
|
createStream(t, r) {
|
|
341
341
|
return n.post("/talks/streams", {
|
|
@@ -345,42 +345,42 @@ function Y(e, i) {
|
|
|
345
345
|
config: t.config
|
|
346
346
|
}, r);
|
|
347
347
|
},
|
|
348
|
-
startConnection(t, r,
|
|
348
|
+
startConnection(t, r, i, o) {
|
|
349
349
|
return n.post(`/talks/streams/${t}/sdp`, {
|
|
350
|
-
session_id:
|
|
350
|
+
session_id: i,
|
|
351
351
|
answer: r
|
|
352
352
|
}, o);
|
|
353
353
|
},
|
|
354
|
-
addIceCandidate(t, r,
|
|
354
|
+
addIceCandidate(t, r, i, o) {
|
|
355
355
|
return n.post(`/talks/streams/${t}/ice`, {
|
|
356
|
-
session_id:
|
|
356
|
+
session_id: i,
|
|
357
357
|
...r
|
|
358
358
|
}, o);
|
|
359
359
|
},
|
|
360
|
-
sendStreamRequest(t, r,
|
|
360
|
+
sendStreamRequest(t, r, i, o) {
|
|
361
361
|
return n.post(`/talks/streams/${t}`, {
|
|
362
362
|
session_id: r,
|
|
363
|
-
...
|
|
363
|
+
...i
|
|
364
364
|
}, o);
|
|
365
365
|
},
|
|
366
|
-
close(t, r,
|
|
366
|
+
close(t, r, i) {
|
|
367
367
|
return n.delete(`/talks/streams/${t}`, {
|
|
368
368
|
session_id: r
|
|
369
|
-
},
|
|
369
|
+
}, i);
|
|
370
370
|
}
|
|
371
371
|
};
|
|
372
372
|
}
|
|
373
|
-
function Z(e,
|
|
374
|
-
return e.map((n, t) => t === 0 ?
|
|
373
|
+
function Z(e, a) {
|
|
374
|
+
return e.map((n, t) => t === 0 ? a ? {
|
|
375
375
|
index: t,
|
|
376
376
|
timestamp: n.timestamp,
|
|
377
|
-
bytesReceived: n.bytesReceived -
|
|
378
|
-
packetsReceived: n.packetsReceived -
|
|
379
|
-
packetsLost: n.packetsLost -
|
|
377
|
+
bytesReceived: n.bytesReceived - a.bytesReceived,
|
|
378
|
+
packetsReceived: n.packetsReceived - a.packetsReceived,
|
|
379
|
+
packetsLost: n.packetsLost - a.packetsLost,
|
|
380
380
|
jitter: n.jitter,
|
|
381
381
|
frameWidth: n.frameWidth,
|
|
382
382
|
frameHeight: n.frameHeight,
|
|
383
|
-
|
|
383
|
+
framesPerSecond: n.framesPerSecond
|
|
384
384
|
} : {
|
|
385
385
|
index: t,
|
|
386
386
|
timestamp: n.timestamp,
|
|
@@ -390,7 +390,7 @@ function Z(e, i) {
|
|
|
390
390
|
jitter: n.jitter,
|
|
391
391
|
frameWidth: n.frameWidth,
|
|
392
392
|
frameHeight: n.frameHeight,
|
|
393
|
-
|
|
393
|
+
framesPerSecond: n.framesPerSecond
|
|
394
394
|
} : {
|
|
395
395
|
index: t,
|
|
396
396
|
timestamp: n.timestamp,
|
|
@@ -400,30 +400,30 @@ function Z(e, i) {
|
|
|
400
400
|
jitter: n.jitter,
|
|
401
401
|
frameWidth: n.frameWidth,
|
|
402
402
|
frameHeight: n.frameHeight,
|
|
403
|
-
|
|
403
|
+
framesPerSecond: n.framesPerSecond
|
|
404
404
|
});
|
|
405
405
|
}
|
|
406
406
|
let x = !1;
|
|
407
|
-
const v = (e,
|
|
408
|
-
function ee(e,
|
|
409
|
-
let n = [], t = 0, r = 0,
|
|
407
|
+
const v = (e, a) => x && console.log(e, a), V = (window.RTCPeerConnection || window.webkitRTCPeerConnection || window.mozRTCPeerConnection).bind(window);
|
|
408
|
+
function ee(e, a) {
|
|
409
|
+
let n = [], t = 0, r = 0, i;
|
|
410
410
|
return setInterval(() => {
|
|
411
411
|
e.getStats().then((u) => {
|
|
412
412
|
u.forEach((c) => {
|
|
413
413
|
if (c.type === "inbound-rtp" && c.kind === "video") {
|
|
414
414
|
if (r = n.length - 1, c && n[r]) {
|
|
415
415
|
const m = c.bytesReceived, d = n[r].bytesReceived;
|
|
416
|
-
let g =
|
|
417
|
-
|
|
416
|
+
let g = i;
|
|
417
|
+
i = m - d > 0;
|
|
418
418
|
let w;
|
|
419
|
-
if (g !==
|
|
420
|
-
if (
|
|
419
|
+
if (g !== i) {
|
|
420
|
+
if (i)
|
|
421
421
|
t = n.length;
|
|
422
422
|
else {
|
|
423
423
|
const p = n.slice(t), s = t === 0 ? void 0 : n[t - 1];
|
|
424
424
|
w = Z(p, s), w = w.sort((f, A) => A.packetsLost - f.packetsLost).slice(0, 5);
|
|
425
425
|
}
|
|
426
|
-
|
|
426
|
+
a == null || a(i ? R.Start : R.Stop, w);
|
|
427
427
|
}
|
|
428
428
|
}
|
|
429
429
|
n.push(c);
|
|
@@ -433,19 +433,19 @@ function ee(e, i) {
|
|
|
433
433
|
}, 500);
|
|
434
434
|
}
|
|
435
435
|
async function te(e, {
|
|
436
|
-
debug:
|
|
436
|
+
debug: a = !1,
|
|
437
437
|
callbacks: n,
|
|
438
438
|
auth: t,
|
|
439
|
-
baseURL: r =
|
|
439
|
+
baseURL: r = S
|
|
440
440
|
}) {
|
|
441
|
-
x =
|
|
441
|
+
x = a;
|
|
442
442
|
const {
|
|
443
|
-
startConnection:
|
|
443
|
+
startConnection: i,
|
|
444
444
|
sendStreamRequest: o,
|
|
445
445
|
close: u,
|
|
446
446
|
createStream: c,
|
|
447
447
|
addIceCandidate: m
|
|
448
|
-
} = e.videoType ===
|
|
448
|
+
} = e.videoType === $.Clip ? X(t, r) : Y(t, r), {
|
|
449
449
|
id: d,
|
|
450
450
|
offer: g,
|
|
451
451
|
ice_servers: w,
|
|
@@ -471,15 +471,15 @@ async function te(e, {
|
|
|
471
471
|
}, f.onmessage = (l) => {
|
|
472
472
|
var h, k;
|
|
473
473
|
if (f.readyState === "open") {
|
|
474
|
-
const [
|
|
475
|
-
|
|
476
|
-
event:
|
|
474
|
+
const [C, I] = l.data.split(":");
|
|
475
|
+
C === y.StreamStarted ? console.log("StreamStarted", C, I) : C === y.StreamDone ? console.log("StreamDone") : C === y.StreamFailed ? ((h = n.onVideoStateChange) == null || h.call(n, R.Stop, {
|
|
476
|
+
event: C,
|
|
477
477
|
data: I
|
|
478
|
-
}), clearInterval(A), console.log("StreamFailed")) : (k = n.onMessage) == null || k.call(n,
|
|
478
|
+
}), clearInterval(A), console.log("StreamFailed")) : (k = n.onMessage) == null || k.call(n, C, decodeURIComponent(I));
|
|
479
479
|
}
|
|
480
480
|
}, await s.setRemoteDescription(g), v("set remote description OK");
|
|
481
|
-
const
|
|
482
|
-
return v("create answer OK"), await s.setLocalDescription(
|
|
481
|
+
const M = await s.createAnswer();
|
|
482
|
+
return v("create answer OK"), await s.setLocalDescription(M), v("set local description OK"), await i(d, M, p), v("start connection OK"), {
|
|
483
483
|
/**
|
|
484
484
|
* Method to send request to server to get clip or talk depend on you payload
|
|
485
485
|
* @param payload
|
|
@@ -493,7 +493,7 @@ async function te(e, {
|
|
|
493
493
|
async terminate() {
|
|
494
494
|
var l, h;
|
|
495
495
|
d && (s && (s.close(), s.oniceconnectionstatechange = null, s.onnegotiationneeded = null, s.onicecandidate = null, s.ontrack = null), await u(d, p).catch((k) => {
|
|
496
|
-
}), (l = n.onConnectionStateChange) == null || l.call(n, "closed"), (h = n.onVideoStateChange) == null || h.call(n,
|
|
496
|
+
}), (l = n.onConnectionStateChange) == null || l.call(n, "closed"), (h = n.onVideoStateChange) == null || h.call(n, R.Stop), clearInterval(A));
|
|
497
497
|
},
|
|
498
498
|
/**
|
|
499
499
|
* Session identifier information, should be returned in the body of all streaming requests
|
|
@@ -507,7 +507,7 @@ async function te(e, {
|
|
|
507
507
|
}
|
|
508
508
|
export {
|
|
509
509
|
z as ChatMode,
|
|
510
|
-
|
|
510
|
+
P as ChatProgress,
|
|
511
511
|
G as DocumentType,
|
|
512
512
|
D as KnowledgeType,
|
|
513
513
|
q as Providers,
|
package/dist/index.umd.cjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
(function(l,h){typeof exports=="object"&&typeof module<"u"?h(exports):typeof define=="function"&&define.amd?define(["exports"],h):(l=typeof globalThis<"u"?globalThis:l||self,h(l.index={}))})(this,function(l){"use strict";const h="https://api.d-id.com",D="wss://notifications.d-id.com";function G(){let e=window.localStorage.getItem("did_external_key_id");return e||(e=Math.random().toString(16).slice(2),window.localStorage.setItem("did_external_key_id",e)),e}function K(e){if(e.type==="bearer")return`Bearer ${e.token}`;if(e.type==="basic")return`Basic ${btoa(`${e.username}:${e.password}`)}`;if(e.type==="key")return`Client-Key ${e.clientKey}.${G()}`;throw new Error(`Unknown auth type: ${e}`)}function y(e,i=h){const n=async(t,r)=>{const a=await fetch(i+(t!=null&&t.startsWith("/")?t:`/${t}`),{...r,headers:{...r==null?void 0:r.headers,Authorization:K(e),"Content-Type":"application/json"}});if(!a.ok){let o=await a.text().catch(()=>"Failed to fetch");throw new Error(o)}return a.json()};return{get(t,r){return n(t,{...r,method:"GET"})},post(t,r,a){return n(t,{...a,body:JSON.stringify(r),method:"POST"})},delete(t,r,a){return n(t,{...a,body:JSON.stringify(r),method:"DELETE"})},patch(t,r,a){return n(t,{...a,body:JSON.stringify(r),method:"PATCH"})}}}function M(e,i=h){const n=y(e,`${i}/agents`);return{create(t,r){return n.post("/",t,r)},getAgents(t,r){return n.get(`/${t?`?tag=${t}`:""}`,r).then(a=>a??[])},getById(t,r){return n.get(`/${t}`,r)},delete(t,r){return n.delete(`/${t}`,void 0,r)},update(t,r,a){return n.patch(`/${t}`,r,a)},newChat(t,r){return n.post(`/${t}/chat`,void 0,r)},chat(t,r,a,o){return n.post(`/${t}/chat/${r}`,a,o)}}}function b(e,i=h){const n=y(e,`${i}/knowledge`);return{createKnowledge(t,r){return n.post("/",t,r)},getKnowledgeBase(t){return n.get("/",t)},getKnowledge(t,r){return n.get(`/${t}`,r)},deleteKnowledge(t,r){return n.delete(`/${t}`,void 0,r)},createDocument(t,r,a){return n.post(`/${t}/documents`,r,a)},deleteDocument(t,r,a){return n.delete(`/${t}/documents/${r}`,void 0,a)},getDocuments(t,r){return n.get(`/${t}/documents`,r)},getDocument(t,r,a){return n.get(`/${t}/documents/${r}`,a)},getRecords(t,r,a){return n.get(`/${t}/documents/${r}/records`,a)},query(t,r,a){return n.post(`/${t}/query`,{query:r},a)}}}function E(e,i=h){const n=y(e,`${i}/chats/ratings`);return{create(t,r){return n.post("/",t,r)},getByKnowledge(t,r){return n.get(`/${t}`,r).then(a=>a??[])},update(t,r,a){return n.patch(`/${t}`,r,a)},delete(t,r){return n.delete(`/${t}`,r)}}}const Q=e=>new Promise(i=>setTimeout(i,e));function x(e){return new Promise((i,n)=>{const{callbacks:t,host:r,auth:a}=e,{onMessage:o=null,onOpen:g=null,onClose:c=null,onError:m=null}=t||{},d=new WebSocket(`${r}?authorization=${K(a)}`);d.onmessage=o,d.onclose=c,d.onerror=f=>{console.error(f),m==null||m(f),n(f)},d.onopen=f=>{g==null||g(f),i(d)}})}async function X(e){const{retries:i=1}=e;let n=null;for(let t=0;(n==null?void 0:n.readyState)!==WebSocket.OPEN;t++)try{n=await x(e)}catch(r){if(t===i)throw r;await Q(t*500)}return n}async function T(e,i,n){const t=n?[n]:[],r=await X({auth:e,host:i,callbacks:{onMessage:a=>{const o=JSON.parse(a.data);t.forEach(g=>g(o.event,o))}}});return{socket:r,terminate:()=>r.close(),subscribeToEvents:a=>t.push(a)}}var O=(e=>(e.Amazon="amazon",e.Microsoft="microsoft",e.Afflorithmics="afflorithmics",e.Elevenlabs="elevenlabs",e))(O||{}),W=(e=>(e.Public="public",e.Premium="premium",e.Private="private",e))(W||{}),A=(e=>(e.Start="START",e.Stop="STOP",e))(A||{}),R=(e=>(e.ChatAnswer="chat/answer",e.ChatPartial="chat/partial",e.StreamDone="stream/done",e.StreamStarted="stream/started",e.StreamFailed="stream/error",e))(R||{}),j=(e=>(e.Unrated="Unrated",e.Positive="Positive",e.Negative="Negative",e))(j||{}),B=(e=>(e.Functional="Functional",e.TextOnly="TextOnly",e.Maintenance="Maintenance",e))(B||{}),k=(e=>(e.Embed="embed",e.Query="query",e.Partial="partial",e.Answer="answer",e.Complete="done",e))(k||{}),H=(e=>(e.KnowledgeProcessing="knowledge/processing",e.KnowledgeIndexing="knowledge/indexing",e.KnowledgeFailed="knowledge/error",e.KnowledgeDone="knowledge/done",e))(H||{}),U=(e=>(e.Knowledge="knowledge",e.Document="document",e.Record="record",e))(U||{}),F=(e=>(e.Pdf="pdf",e.Text="text",e.Html="html",e.Word="word",e.Json="json",e.Markdown="markdown",e.Csv="csv",e.Excel="excel",e.Powerpoint="powerpoint",e.Archive="archive",e.Image="image",e.Audio="audio",e.Video="video",e))(F||{}),_=(e=>(e.Clip="clip",e.Talk="talk",e))(_||{});function Y(e){return e.presenter.type===_.Clip?{videoType:_.Clip,driver_id:e.presenter.driver_id,presenter_id:e.presenter.presenter_id}:{videoType:_.Talk,source_url:e.presenter.source_url}}function q(e,i,n,t){return new Promise(async(r,a)=>{const o=await z(Y(e),{...i,callbacks:{...i.callbacks,onConnectionStateChange:async g=>{var c,m;if(g==="connected")try{t||(t=await n.newChat(e.id)),r({chat:t,streamingManager:o})}catch(d){console.error(d),a(new Error("Cannot create new chat"))}else g==="failed"&&a(new Error("Cannot create connection"));(m=(c=i.callbacks).onConnectionStateChange)==null||m.call(c,g)},onMessage:(g,c)=>{var m,d;g===R.ChatAnswer&&(console.log("ChatAnswer",g,c),(d=(m=i.callbacks).onChatEvents)==null||d.call(m,k.Answer,{content:c,event:k.Answer}))}}})})}function Z(e,i,n){return M(i,n||h).getById(e)}async function V(e,i){var p,v;const n=i.baseURL||h,t=i.wsURL||D,r=new AbortController,a=M(i.auth,n),o=E(i.auth,n),g=b(i.auth,n),c=typeof e=="string"?await a.getById(e):e;(v=(p=i.callbacks)==null?void 0:p.onAgentReady)==null||v.call(p,c);const m=await T(i.auth,t,i.callbacks.onChatEvents);let{chat:d,streamingManager:f}=await q(c,i,a);return{agent:c,chatId:d.id,async reconnectToChat(){const{streamingManager:s}=await q(c,i,a,d);f=s},terminate(){return r.abort(),m.terminate(),f.terminate()},chat(s){return a.chat(c.id,d.id,{sessionId:f.sessionId,streamId:f.streamId,messages:s},{signal:r.signal})},rate(s,w){return w?o.update(w,s):o.create(s)},deleteRate(s){return o.delete(s)},speak(s){function w(){if(s.type==="text")return{type:"text",provider:s.provider,input:s.input,ssml:s.ssml||!1};if(s.type==="audio")return{type:"audio",audio_url:s.audio_url};throw new Error("Invalid payload")}return f.speak({script:w()})},async getStarterMessages(){var s;return(s=c.knowledge)!=null&&s.id?g.getKnowledge(c.knowledge.id).then(w=>(w==null?void 0:w.starter_message)||[]):[]}}}function ee(e,i){const n=y(e,i);return{createStream(t){return n.post("/clips/streams",{driver_id:t.driver_id,presenter_id:t.presenter_id,compatibility_mode:t.compatibility_mode})},startConnection(t,r,a){return n.post(`/clips/streams/${t}/sdp`,{session_id:a,answer:r})},addIceCandidate(t,r,a){return n.post(`/clips/streams/${t}/ice`,{session_id:a,...r})},sendStreamRequest(t,r,a){return n.post(`/clips/streams/${t}`,{session_id:r,...a})},close(t,r){return n.delete(`/clips/streams/${t}`,{session_id:r})}}}function te(e,i){const n=y(e,i);return{createStream(t,r){return n.post("/talks/streams",{source_url:t.source_url,driver_url:t.driver_url,face:t.face,config:t.config},r)},startConnection(t,r,a,o){return n.post(`/talks/streams/${t}/sdp`,{session_id:a,answer:r},o)},addIceCandidate(t,r,a,o){return n.post(`/talks/streams/${t}/ice`,{session_id:a,...r},o)},sendStreamRequest(t,r,a,o){return n.post(`/talks/streams/${t}`,{session_id:r,...a},o)},close(t,r,a){return n.delete(`/talks/streams/${t}`,{session_id:r},a)}}}function ne(e,i){return e.map((n,t)=>t===0?i?{index:t,timestamp:n.timestamp,bytesReceived:n.bytesReceived-i.bytesReceived,packetsReceived:n.packetsReceived-i.packetsReceived,packetsLost:n.packetsLost-i.packetsLost,jitter:n.jitter,frameWidth:n.frameWidth,frameHeight:n.frameHeight,frameRate:n.frameRate}:{index:t,timestamp:n.timestamp,bytesReceived:n.bytesReceived,packetsReceived:n.packetsReceived,packetsLost:n.packetsLost,jitter:n.jitter,frameWidth:n.frameWidth,frameHeight:n.frameHeight,frameRate:n.frameRate}:{index:t,timestamp:n.timestamp,bytesReceived:n.bytesReceived-e[t-1].bytesReceived,packetsReceived:n.packetsReceived-e[t-1].packetsReceived,packetsLost:n.packetsLost-e[t-1].packetsLost,jitter:n.jitter,frameWidth:n.frameWidth,frameHeight:n.frameHeight,frameRate:n.frameRate})}let N=!1;const C=(e,i)=>N&&console.log(e,i),re=(window.RTCPeerConnection||window.webkitRTCPeerConnection||window.mozRTCPeerConnection).bind(window);function ae(e,i){let n=[],t=0,r=0,a;return setInterval(()=>{e.getStats().then(g=>{g.forEach(c=>{if(c.type==="inbound-rtp"&&c.kind==="video"){if(r=n.length-1,c&&n[r]){const m=c.bytesReceived,d=n[r].bytesReceived;let f=a;a=m-d>0;let p;if(f!==a){if(a)t=n.length;else{const v=n.slice(t),s=t===0?void 0:n[t-1];p=ne(v,s),p=p.sort((w,I)=>I.packetsLost-w.packetsLost).slice(0,5)}i==null||i(a?A.Start:A.Stop,p)}}n.push(c)}})})},500)}async function z(e,{debug:i=!1,callbacks:n,auth:t,baseURL:r=h}){N=i;const{startConnection:a,sendStreamRequest:o,close:g,createStream:c,addIceCandidate:m}=e.videoType===_.Clip?ee(t,r):te(t,r),{id:d,offer:f,ice_servers:p,session_id:v}=await c(e),s=new re({iceServers:p}),w=s.createDataChannel("JanusDataChannel");if(!v)throw new Error("Could not create session_id");const I=ae(s,n.onVideoStateChange);s.onicecandidate=u=>{C("peerConnection.onicecandidate",u),u.candidate&&u.candidate.sdpMid&&u.candidate.sdpMLineIndex!==null&&m(d,{candidate:u.candidate.candidate,sdpMid:u.candidate.sdpMid,sdpMLineIndex:u.candidate.sdpMLineIndex},v)},s.oniceconnectionstatechange=()=>{var u;C("peerConnection.oniceconnectionstatechange => "+s.iceConnectionState),(u=n.onConnectionStateChange)==null||u.call(n,s.iceConnectionState)},s.ontrack=u=>{var S;C("peerConnection.ontrack",u),(S=n.onSrcObjectReady)==null||S.call(n,u.streams[0])},w.onmessage=u=>{var S,P;if(w.readyState==="open"){const[$,L]=u.data.split(":");$===R.StreamStarted?console.log("StreamStarted",$,L):$===R.StreamDone?console.log("StreamDone"):$===R.StreamFailed?((S=n.onVideoStateChange)==null||S.call(n,A.Stop,{event:$,data:L}),clearInterval(I),console.log("StreamFailed")):(P=n.onMessage)==null||P.call(n,$,decodeURIComponent(L))}},await s.setRemoteDescription(f),C("set remote description OK");const J=await s.createAnswer();return C("create answer OK"),await s.setLocalDescription(J),C("set local description OK"),await a(d,J,v),C("start connection OK"),{speak(u){return o(d,v,u)},async terminate(){var u,S;d&&(s&&(s.close(),s.oniceconnectionstatechange=null,s.onnegotiationneeded=null,s.onicecandidate=null,s.ontrack=null),await g(d,v).catch(P=>{}),(u=n.onConnectionStateChange)==null||u.call(n,"closed"),(S=n.onVideoStateChange)==null||S.call(n,A.Stop),clearInterval(I))},sessionId:v,streamId:d}}l.ChatMode=B,l.ChatProgress=k,l.DocumentType=F,l.KnowledgeType=U,l.Providers=O,l.RateState=j,l.SocketManager=T,l.StreamEvents=R,l.Subject=H,l.VoiceAccess=W,l.createAgentManager=V,l.createAgentsApi=M,l.createClient=y,l.createKnowledgeApi=b,l.createRatingsApi=E,l.createStreamingManager=z,l.getAgent=Z,Object.defineProperty(l,Symbol.toStringTag,{value:"Module"})});
|
|
1
|
+
(function(l,h){typeof exports=="object"&&typeof module<"u"?h(exports):typeof define=="function"&&define.amd?define(["exports"],h):(l=typeof globalThis<"u"?globalThis:l||self,h(l.index={}))})(this,function(l){"use strict";const h="https://api.d-id.com",D="wss://notifications.d-id.com";function G(){let e=window.localStorage.getItem("did_external_key_id");return e||(e=Math.random().toString(16).slice(2),window.localStorage.setItem("did_external_key_id",e)),e}function K(e){if(e.type==="bearer")return`Bearer ${e.token}`;if(e.type==="basic")return`Basic ${btoa(`${e.username}:${e.password}`)}`;if(e.type==="key")return`Client-Key ${e.clientKey}.${G()}`;throw new Error(`Unknown auth type: ${e}`)}function y(e,a=h){const n=async(t,r)=>{const i=await fetch(a+(t!=null&&t.startsWith("/")?t:`/${t}`),{...r,headers:{...r==null?void 0:r.headers,Authorization:K(e),"Content-Type":"application/json"}});if(!i.ok){let o=await i.text().catch(()=>"Failed to fetch");throw new Error(o)}return i.json()};return{get(t,r){return n(t,{...r,method:"GET"})},post(t,r,i){return n(t,{...i,body:JSON.stringify(r),method:"POST"})},delete(t,r,i){return n(t,{...i,body:JSON.stringify(r),method:"DELETE"})},patch(t,r,i){return n(t,{...i,body:JSON.stringify(r),method:"PATCH"})}}}function M(e,a=h){const n=y(e,`${a}/agents`);return{create(t,r){return n.post("/",t,r)},getAgents(t,r){return n.get(`/${t?`?tag=${t}`:""}`,r).then(i=>i??[])},getById(t,r){return n.get(`/${t}`,r)},delete(t,r){return n.delete(`/${t}`,void 0,r)},update(t,r,i){return n.patch(`/${t}`,r,i)},newChat(t,r){return n.post(`/${t}/chat`,void 0,r)},chat(t,r,i,o){return n.post(`/${t}/chat/${r}`,i,o)}}}function b(e,a=h){const n=y(e,`${a}/knowledge`);return{createKnowledge(t,r){return n.post("/",t,r)},getKnowledgeBase(t){return n.get("/",t)},getKnowledge(t,r){return n.get(`/${t}`,r)},deleteKnowledge(t,r){return n.delete(`/${t}`,void 0,r)},createDocument(t,r,i){return n.post(`/${t}/documents`,r,i)},deleteDocument(t,r,i){return n.delete(`/${t}/documents/${r}`,void 0,i)},getDocuments(t,r){return n.get(`/${t}/documents`,r)},getDocument(t,r,i){return n.get(`/${t}/documents/${r}`,i)},getRecords(t,r,i){return n.get(`/${t}/documents/${r}/records`,i)},query(t,r,i){return n.post(`/${t}/query`,{query:r},i)}}}function E(e,a=h){const n=y(e,`${a}/chats/ratings`);return{create(t,r){return n.post("/",t,r)},getByKnowledge(t,r){return n.get(`/${t}`,r).then(i=>i??[])},update(t,r,i){return n.patch(`/${t}`,r,i)},delete(t,r){return n.delete(`/${t}`,r)}}}const Q=e=>new Promise(a=>setTimeout(a,e));function x(e){return new Promise((a,n)=>{const{callbacks:t,host:r,auth:i}=e,{onMessage:o=null,onOpen:g=null,onClose:c=null,onError:m=null}=t||{},d=new WebSocket(`${r}?authorization=${K(i)}`);d.onmessage=o,d.onclose=c,d.onerror=f=>{console.error(f),m==null||m(f),n(f)},d.onopen=f=>{g==null||g(f),a(d)}})}async function X(e){const{retries:a=1}=e;let n=null;for(let t=0;(n==null?void 0:n.readyState)!==WebSocket.OPEN;t++)try{n=await x(e)}catch(r){if(t===a)throw r;await Q(t*500)}return n}async function T(e,a,n){const t=n?[n]:[],r=await X({auth:e,host:a,callbacks:{onMessage:i=>{const o=JSON.parse(i.data);t.forEach(g=>g(o.event,o))}}});return{socket:r,terminate:()=>r.close(),subscribeToEvents:i=>t.push(i)}}var O=(e=>(e.Amazon="amazon",e.Microsoft="microsoft",e.Afflorithmics="afflorithmics",e.Elevenlabs="elevenlabs",e))(O||{}),W=(e=>(e.Public="public",e.Premium="premium",e.Private="private",e))(W||{}),R=(e=>(e.Start="START",e.Stop="STOP",e))(R||{}),$=(e=>(e.ChatAnswer="chat/answer",e.ChatPartial="chat/partial",e.StreamDone="stream/done",e.StreamStarted="stream/started",e.StreamFailed="stream/error",e))($||{}),j=(e=>(e.Unrated="Unrated",e.Positive="Positive",e.Negative="Negative",e))(j||{}),B=(e=>(e.Functional="Functional",e.TextOnly="TextOnly",e.Maintenance="Maintenance",e))(B||{}),k=(e=>(e.Embed="embed",e.Query="query",e.Partial="partial",e.Answer="answer",e.Complete="done",e))(k||{}),H=(e=>(e.KnowledgeProcessing="knowledge/processing",e.KnowledgeIndexing="knowledge/indexing",e.KnowledgeFailed="knowledge/error",e.KnowledgeDone="knowledge/done",e))(H||{}),U=(e=>(e.Knowledge="knowledge",e.Document="document",e.Record="record",e))(U||{}),F=(e=>(e.Pdf="pdf",e.Text="text",e.Html="html",e.Word="word",e.Json="json",e.Markdown="markdown",e.Csv="csv",e.Excel="excel",e.Powerpoint="powerpoint",e.Archive="archive",e.Image="image",e.Audio="audio",e.Video="video",e))(F||{}),_=(e=>(e.Clip="clip",e.Talk="talk",e))(_||{});function Y(e){return e.presenter.type===_.Clip?{videoType:_.Clip,driver_id:e.presenter.driver_id,presenter_id:e.presenter.presenter_id}:{videoType:_.Talk,source_url:e.presenter.source_url}}function q(e,a,n,t){return new Promise(async(r,i)=>{const o=await z(Y(e),{...a,callbacks:{...a.callbacks,onConnectionStateChange:async g=>{var c,m;if(g==="connected")try{t||(t=await n.newChat(e.id)),r({chat:t,streamingManager:o})}catch(d){console.error(d),i(new Error("Cannot create new chat"))}else g==="failed"&&i(new Error("Cannot create connection"));(m=(c=a.callbacks).onConnectionStateChange)==null||m.call(c,g)},onMessage:(g,c)=>{var m,d;g===$.ChatAnswer&&(console.log("ChatAnswer",g,c),(d=(m=a.callbacks).onChatEvents)==null||d.call(m,k.Answer,{content:c,event:k.Answer}))}}})})}function Z(e,a,n){return M(a,n||h).getById(e)}async function V(e,a){var p,v;const n=a.baseURL||h,t=a.wsURL||D,r=new AbortController,i=M(a.auth,n),o=E(a.auth,n),g=b(a.auth,n),c=typeof e=="string"?await i.getById(e):e;(v=(p=a.callbacks)==null?void 0:p.onAgentReady)==null||v.call(p,c);const m=await T(a.auth,t,a.callbacks.onChatEvents);let{chat:d,streamingManager:f}=await q(c,a,i);return{agent:c,chatId:d.id,async reconnectToChat(){const{streamingManager:s}=await q(c,a,i,d);f=s},terminate(){return r.abort(),m.terminate(),f.terminate()},chat(s){return i.chat(c.id,d.id,{sessionId:f.sessionId,streamId:f.streamId,messages:s},{signal:r.signal})},rate(s,w){return w?o.update(w,s):o.create(s)},deleteRate(s){return o.delete(s)},speak(s){function w(){if(s.type==="text")return{type:"text",provider:s.provider,input:s.input,ssml:s.ssml||!1};if(s.type==="audio")return{type:"audio",audio_url:s.audio_url};throw new Error("Invalid payload")}return f.speak({script:w()})},async getStarterMessages(){var s;return(s=c.knowledge)!=null&&s.id?g.getKnowledge(c.knowledge.id).then(w=>(w==null?void 0:w.starter_message)||[]):[]}}}function ee(e,a){const n=y(e,a);return{createStream(t){return n.post("/clips/streams",{driver_id:t.driver_id,presenter_id:t.presenter_id,compatibility_mode:t.compatibility_mode})},startConnection(t,r,i){return n.post(`/clips/streams/${t}/sdp`,{session_id:i,answer:r})},addIceCandidate(t,r,i){return n.post(`/clips/streams/${t}/ice`,{session_id:i,...r})},sendStreamRequest(t,r,i){return n.post(`/clips/streams/${t}`,{session_id:r,...i})},close(t,r){return n.delete(`/clips/streams/${t}`,{session_id:r})}}}function te(e,a){const n=y(e,a);return{createStream(t,r){return n.post("/talks/streams",{source_url:t.source_url,driver_url:t.driver_url,face:t.face,config:t.config},r)},startConnection(t,r,i,o){return n.post(`/talks/streams/${t}/sdp`,{session_id:i,answer:r},o)},addIceCandidate(t,r,i,o){return n.post(`/talks/streams/${t}/ice`,{session_id:i,...r},o)},sendStreamRequest(t,r,i,o){return n.post(`/talks/streams/${t}`,{session_id:r,...i},o)},close(t,r,i){return n.delete(`/talks/streams/${t}`,{session_id:r},i)}}}function ne(e,a){return e.map((n,t)=>t===0?a?{index:t,timestamp:n.timestamp,bytesReceived:n.bytesReceived-a.bytesReceived,packetsReceived:n.packetsReceived-a.packetsReceived,packetsLost:n.packetsLost-a.packetsLost,jitter:n.jitter,frameWidth:n.frameWidth,frameHeight:n.frameHeight,framesPerSecond:n.framesPerSecond}:{index:t,timestamp:n.timestamp,bytesReceived:n.bytesReceived,packetsReceived:n.packetsReceived,packetsLost:n.packetsLost,jitter:n.jitter,frameWidth:n.frameWidth,frameHeight:n.frameHeight,framesPerSecond:n.framesPerSecond}:{index:t,timestamp:n.timestamp,bytesReceived:n.bytesReceived-e[t-1].bytesReceived,packetsReceived:n.packetsReceived-e[t-1].packetsReceived,packetsLost:n.packetsLost-e[t-1].packetsLost,jitter:n.jitter,frameWidth:n.frameWidth,frameHeight:n.frameHeight,framesPerSecond:n.framesPerSecond})}let N=!1;const C=(e,a)=>N&&console.log(e,a),re=(window.RTCPeerConnection||window.webkitRTCPeerConnection||window.mozRTCPeerConnection).bind(window);function ie(e,a){let n=[],t=0,r=0,i;return setInterval(()=>{e.getStats().then(g=>{g.forEach(c=>{if(c.type==="inbound-rtp"&&c.kind==="video"){if(r=n.length-1,c&&n[r]){const m=c.bytesReceived,d=n[r].bytesReceived;let f=i;i=m-d>0;let p;if(f!==i){if(i)t=n.length;else{const v=n.slice(t),s=t===0?void 0:n[t-1];p=ne(v,s),p=p.sort((w,I)=>I.packetsLost-w.packetsLost).slice(0,5)}a==null||a(i?R.Start:R.Stop,p)}}n.push(c)}})})},500)}async function z(e,{debug:a=!1,callbacks:n,auth:t,baseURL:r=h}){N=a;const{startConnection:i,sendStreamRequest:o,close:g,createStream:c,addIceCandidate:m}=e.videoType===_.Clip?ee(t,r):te(t,r),{id:d,offer:f,ice_servers:p,session_id:v}=await c(e),s=new re({iceServers:p}),w=s.createDataChannel("JanusDataChannel");if(!v)throw new Error("Could not create session_id");const I=ie(s,n.onVideoStateChange);s.onicecandidate=u=>{C("peerConnection.onicecandidate",u),u.candidate&&u.candidate.sdpMid&&u.candidate.sdpMLineIndex!==null&&m(d,{candidate:u.candidate.candidate,sdpMid:u.candidate.sdpMid,sdpMLineIndex:u.candidate.sdpMLineIndex},v)},s.oniceconnectionstatechange=()=>{var u;C("peerConnection.oniceconnectionstatechange => "+s.iceConnectionState),(u=n.onConnectionStateChange)==null||u.call(n,s.iceConnectionState)},s.ontrack=u=>{var S;C("peerConnection.ontrack",u),(S=n.onSrcObjectReady)==null||S.call(n,u.streams[0])},w.onmessage=u=>{var S,P;if(w.readyState==="open"){const[A,L]=u.data.split(":");A===$.StreamStarted?console.log("StreamStarted",A,L):A===$.StreamDone?console.log("StreamDone"):A===$.StreamFailed?((S=n.onVideoStateChange)==null||S.call(n,R.Stop,{event:A,data:L}),clearInterval(I),console.log("StreamFailed")):(P=n.onMessage)==null||P.call(n,A,decodeURIComponent(L))}},await s.setRemoteDescription(f),C("set remote description OK");const J=await s.createAnswer();return C("create answer OK"),await s.setLocalDescription(J),C("set local description OK"),await i(d,J,v),C("start connection OK"),{speak(u){return o(d,v,u)},async terminate(){var u,S;d&&(s&&(s.close(),s.oniceconnectionstatechange=null,s.onnegotiationneeded=null,s.onicecandidate=null,s.ontrack=null),await g(d,v).catch(P=>{}),(u=n.onConnectionStateChange)==null||u.call(n,"closed"),(S=n.onVideoStateChange)==null||S.call(n,R.Stop),clearInterval(I))},sessionId:v,streamId:d}}l.ChatMode=B,l.ChatProgress=k,l.DocumentType=F,l.KnowledgeType=U,l.Providers=O,l.RateState=j,l.SocketManager=T,l.StreamEvents=$,l.Subject=H,l.VoiceAccess=W,l.createAgentManager=V,l.createAgentsApi=M,l.createClient=y,l.createKnowledgeApi=b,l.createRatingsApi=E,l.createStreamingManager=z,l.getAgent=Z,Object.defineProperty(l,Symbol.toStringTag,{value:"Module"})});
|