@d-id/client-sdk 1.0.19-beta.1 → 1.0.19-beta.2

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 CHANGED
@@ -1,5 +1,5 @@
1
- const C = "https://api.d-id.com", J = "wss://notifications.d-id.com";
2
- function x(e) {
1
+ const C = "https://api.d-id.com", B = "wss://notifications.d-id.com";
2
+ function U(e) {
3
3
  if (e.type === "bearer")
4
4
  return `Bearer ${e.token}`;
5
5
  if (e.type === "basic")
@@ -14,7 +14,7 @@ function y(e, i = C) {
14
14
  ...n,
15
15
  headers: {
16
16
  ...n == null ? void 0 : n.headers,
17
- Authorization: x(e),
17
+ Authorization: U(e),
18
18
  "Content-Type": "application/json"
19
19
  }
20
20
  });
@@ -54,7 +54,7 @@ function y(e, i = C) {
54
54
  }
55
55
  };
56
56
  }
57
- function T(e, i = C) {
57
+ function J(e, i = C) {
58
58
  const r = y(e, `${i}/agents`);
59
59
  return {
60
60
  create(t, n) {
@@ -80,7 +80,7 @@ function T(e, i = C) {
80
80
  }
81
81
  };
82
82
  }
83
- function D(e, i = C) {
83
+ function F(e, i = C) {
84
84
  const r = y(e, `${i}/knowledge`);
85
85
  return {
86
86
  createKnowledge(t, n) {
@@ -117,7 +117,7 @@ function D(e, i = C) {
117
117
  }
118
118
  };
119
119
  }
120
- function F(e, i = C) {
120
+ function D(e, i = C) {
121
121
  const r = y(e, `${i}/chats/ratings`);
122
122
  return {
123
123
  create(t, n) {
@@ -146,7 +146,7 @@ function G(e) {
146
146
  onOpen: u = null,
147
147
  onClose: m = null,
148
148
  onError: f = null
149
- } = t || {}, g = new WebSocket(`${n}?authorization=${x(a)}`);
149
+ } = t || {}, g = new WebSocket(`${n}?authorization=${U(a)}`);
150
150
  g.onmessage = s, g.onclose = m, g.onerror = (d) => {
151
151
  console.log(d), f == null || f(d), r(d);
152
152
  }, g.onopen = (d) => {
@@ -186,8 +186,8 @@ async function X(e, i, r) {
186
186
  subscribeToEvents: (a) => t.push(a)
187
187
  };
188
188
  }
189
- var Y = /* @__PURE__ */ ((e) => (e.Amazon = "amazon", e.Microsoft = "microsoft", e.Afflorithmics = "afflorithmics", e.Elevenlabs = "elevenlabs", e))(Y || {}), Z = /* @__PURE__ */ ((e) => (e.Public = "public", e.Premium = "premium", e.Private = "private", e))(Z || {}), _ = /* @__PURE__ */ ((e) => (e.Start = "START", e.Stop = "STOP", e))(_ || {}), A = /* @__PURE__ */ ((e) => (e.ChatAnswer = "chat/answer", e.ChatPartial = "chat/partial", e.StreamDone = "stream/done", e.StreamStarted = "stream/started", e))(A || {}), O = /* @__PURE__ */ ((e) => (e.Unrated = "Unrated", e.Positive = "Positive", e.Negative = "Negative", e))(O || {}), K = /* @__PURE__ */ ((e) => (e.Embed = "embed", e.Query = "query", e.Partial = "partial", e.Answer = "answer", e.Complete = "done", e))(K || {}), j = /* @__PURE__ */ ((e) => (e.KnowledgeProcessing = "knowledge/processing", e.KnowledgeIndexing = "knowledge/indexing", e.KnowledgeFailed = "knowledge/error", e.KnowledgeDone = "knowledge/done", e))(j || {}), ee = /* @__PURE__ */ ((e) => (e.Knowledge = "knowledge", e.Document = "document", e.Record = "record", e))(ee || {}), te = /* @__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))(te || {}), R = /* @__PURE__ */ ((e) => (e.Clip = "clip", e.Talk = "talk", e))(R || {});
190
- function ne(e) {
189
+ var Y = /* @__PURE__ */ ((e) => (e.Amazon = "amazon", e.Microsoft = "microsoft", e.Afflorithmics = "afflorithmics", e.Elevenlabs = "elevenlabs", e))(Y || {}), Z = /* @__PURE__ */ ((e) => (e.Public = "public", e.Premium = "premium", e.Private = "private", e))(Z || {}), _ = /* @__PURE__ */ ((e) => (e.Start = "START", e.Stop = "STOP", e))(_ || {}), A = /* @__PURE__ */ ((e) => (e.ChatAnswer = "chat/answer", e.ChatPartial = "chat/partial", e.StreamDone = "stream/done", e.StreamStarted = "stream/started", e))(A || {}), O = /* @__PURE__ */ ((e) => (e.Unrated = "Unrated", e.Positive = "Positive", e.Negative = "Negative", e))(O || {}), j = /* @__PURE__ */ ((e) => (e.Functional = "Functional", e.TextOnly = "TextOnly", e.Maintainance = "Maintainance", e))(j || {}), K = /* @__PURE__ */ ((e) => (e.Embed = "embed", e.Query = "query", e.Partial = "partial", e.Answer = "answer", e.Complete = "done", e))(K || {}), ee = /* @__PURE__ */ ((e) => (e.KnowledgeProcessing = "knowledge/processing", e.KnowledgeIndexing = "knowledge/indexing", e.KnowledgeFailed = "knowledge/error", e.KnowledgeDone = "knowledge/done", e))(ee || {}), te = /* @__PURE__ */ ((e) => (e.Knowledge = "knowledge", e.Document = "document", e.Record = "record", e))(te || {}), ne = /* @__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))(ne || {}), R = /* @__PURE__ */ ((e) => (e.Clip = "clip", e.Talk = "talk", e))(R || {});
190
+ function re(e) {
191
191
  return e.presenter.type === R.Clip ? {
192
192
  videoType: R.Clip,
193
193
  driver_id: e.presenter.driver_id,
@@ -197,9 +197,9 @@ function ne(e) {
197
197
  source_url: e.presenter.source_url
198
198
  };
199
199
  }
200
- function U(e, i, r, t) {
200
+ function H(e, i, r, t) {
201
201
  return new Promise(async (n, a) => {
202
- const s = await oe(ne(e), {
202
+ const s = await ce(re(e), {
203
203
  ...i,
204
204
  callbacks: {
205
205
  ...i.callbacks,
@@ -222,18 +222,18 @@ function U(e, i, r, t) {
222
222
  });
223
223
  });
224
224
  }
225
- async function ce(e, i) {
226
- const r = i.baseURL || C, t = i.wsURL || J, n = new AbortController(), a = T(i.auth, r), s = F(i.auth, r), u = D(i.auth, r), m = await a.getById(e), f = await X(i.auth, t, i.callbacks.onChatEvents);
225
+ async function de(e, i) {
226
+ const r = i.baseURL || C, t = i.wsURL || B, n = new AbortController(), a = J(i.auth, r), s = D(i.auth, r), u = F(i.auth, r), m = await a.getById(e), f = await X(i.auth, t, i.callbacks.onChatEvents);
227
227
  let {
228
228
  chat: g,
229
229
  streamingManager: d
230
- } = await U(m, i, a);
230
+ } = await H(m, i, a);
231
231
  return {
232
232
  agent: m,
233
233
  async reconnectToChat() {
234
234
  const {
235
235
  streamingManager: c
236
- } = await U(m, i, a, g);
236
+ } = await H(m, i, a, g);
237
237
  d = c;
238
238
  },
239
239
  terminate() {
@@ -273,11 +273,11 @@ async function ce(e, i) {
273
273
  },
274
274
  getStarterMessages() {
275
275
  var c, p;
276
- return (c = m.knowledge) != null && c.id ? u.getKnowledge((p = m.knowledge) == null ? void 0 : p.id).then((h) => (h == null ? void 0 : h.starter_message) || []) : Promise.resolve([]);
276
+ return (c = m.knowledge) != null && c.id ? u.getKnowledge((p = m.knowledge) == null ? void 0 : p.id).then((w) => (w == null ? void 0 : w.starter_message) || []) : Promise.resolve([]);
277
277
  }
278
278
  };
279
279
  }
280
- function re(e, i) {
280
+ function ae(e, i) {
281
281
  const r = y(e, i);
282
282
  return {
283
283
  createStream(t) {
@@ -312,7 +312,7 @@ function re(e, i) {
312
312
  }
313
313
  };
314
314
  }
315
- function ae(e, i) {
315
+ function ie(e, i) {
316
316
  const r = y(e, i);
317
317
  return {
318
318
  createStream(t, n) {
@@ -348,7 +348,7 @@ function ae(e, i) {
348
348
  }
349
349
  };
350
350
  }
351
- function ie(e, i) {
351
+ function se(e, i) {
352
352
  return e.map((r, t) => t === 0 ? i ? {
353
353
  index: t,
354
354
  timestamp: r.timestamp,
@@ -381,15 +381,15 @@ function ie(e, i) {
381
381
  frameRate: r.frameRate
382
382
  });
383
383
  }
384
- let q = !1;
385
- const v = (e, i) => q && console.log(e, i), se = (window.RTCPeerConnection || window.webkitRTCPeerConnection || window.mozRTCPeerConnection).bind(window);
386
- async function oe(e, {
384
+ let T = !1;
385
+ const v = (e, i) => T && console.log(e, i), oe = (window.RTCPeerConnection || window.webkitRTCPeerConnection || window.mozRTCPeerConnection).bind(window);
386
+ async function ce(e, {
387
387
  debug: i = !1,
388
388
  callbacks: r,
389
389
  auth: t,
390
390
  baseURL: n = C
391
391
  }) {
392
- q = i;
392
+ T = i;
393
393
  const a = {
394
394
  ...r
395
395
  }, {
@@ -398,33 +398,33 @@ async function oe(e, {
398
398
  close: m,
399
399
  createStream: f,
400
400
  addIceCandidate: g
401
- } = e.videoType === R.Clip ? re(t, n) : ae(t, n), {
401
+ } = e.videoType === R.Clip ? ae(t, n) : ie(t, n), {
402
402
  id: d,
403
403
  offer: c,
404
404
  ice_servers: p,
405
- session_id: h
406
- } = await f(e), l = new se({
405
+ session_id: w
406
+ } = await f(e), l = new oe({
407
407
  iceServers: p
408
408
  }), b = l.createDataChannel("JanusDataChannel"), k = [];
409
409
  let $ = 0, E;
410
- if (!h)
410
+ if (!w)
411
411
  throw new Error("Could not create session_id");
412
412
  l.onicecandidate = (o) => {
413
413
  v("peerConnection.onicecandidate", o), o.candidate && o.candidate.sdpMid && o.candidate.sdpMLineIndex !== null && g(d, {
414
414
  candidate: o.candidate.candidate,
415
415
  sdpMid: o.candidate.sdpMid,
416
416
  sdpMLineIndex: o.candidate.sdpMLineIndex
417
- }, h);
417
+ }, w);
418
418
  }, l.oniceconnectionstatechange = () => {
419
419
  var o;
420
420
  v("peerConnection.oniceconnectionstatechange => " + l.iceConnectionState), (o = a.onConnectionStateChange) == null || o.call(a, l.iceConnectionState);
421
421
  }, l.ontrack = (o) => {
422
- var w;
423
- v("peerConnection.ontrack", o), (w = a.onSrcObjectReady) == null || w.call(a, o.streams[0]);
422
+ var h;
423
+ v("peerConnection.ontrack", o), (h = a.onSrcObjectReady) == null || h.call(a, o.streams[0]);
424
424
  }, b.onmessage = (o) => {
425
- var w, I, H;
425
+ var h, I, x;
426
426
  if (b.readyState === "open") {
427
- const [M, N] = o.data.split(":");
427
+ const [M, q] = o.data.split(":");
428
428
  if (M === A.StreamStarted)
429
429
  $ = k.length, E = setInterval(() => {
430
430
  l.getStats().then((L) => {
@@ -432,39 +432,39 @@ async function oe(e, {
432
432
  S.type === "inbound-rtp" && S.kind === "video" && k.push(S);
433
433
  });
434
434
  });
435
- }, 1e3), (w = a.onVideoStateChange) == null || w.call(a, _.Start);
435
+ }, 1e3), (h = a.onVideoStateChange) == null || h.call(a, _.Start);
436
436
  else if (M === A.StreamDone) {
437
437
  clearInterval(E);
438
438
  const P = k.slice($);
439
439
  if (P) {
440
- const L = $ === 0 ? void 0 : k[$ - 1], S = ie(P, L);
441
- $ = k.length, (I = a.onVideoStateChange) == null || I.call(a, _.Stop, S.sort((z, B) => B.packetsLost - z.packetsLost).slice(0, 5));
440
+ const L = $ === 0 ? void 0 : k[$ - 1], S = se(P, L);
441
+ $ = k.length, (I = a.onVideoStateChange) == null || I.call(a, _.Stop, S.sort((N, z) => z.packetsLost - N.packetsLost).slice(0, 5));
442
442
  }
443
443
  } else
444
- (H = a.onMessage) == null || H.call(a, M, decodeURIComponent(N));
444
+ (x = a.onMessage) == null || x.call(a, M, decodeURIComponent(q));
445
445
  }
446
446
  }, await l.setRemoteDescription(c), v("set remote description OK");
447
447
  const W = await l.createAnswer();
448
- return v("create answer OK"), await l.setLocalDescription(W), v("set local description OK"), await s(d, W, h), v("start connection OK"), {
448
+ return v("create answer OK"), await l.setLocalDescription(W), v("set local description OK"), await s(d, W, w), v("start connection OK"), {
449
449
  /**
450
450
  * Method to send request to server to get clip or talk depend on you payload
451
451
  * @param payload
452
452
  */
453
453
  speak(o) {
454
- return u(d, h, o);
454
+ return u(d, w, o);
455
455
  },
456
456
  /**
457
457
  * Method to close RTC connection
458
458
  */
459
459
  async terminate() {
460
- var o, w;
461
- d && (l && (l.close(), l.oniceconnectionstatechange = null, l.onnegotiationneeded = null, l.onicecandidate = null, l.ontrack = null), await m(d, h).catch((I) => {
462
- }), (o = a.onConnectionStateChange) == null || o.call(a, "closed"), (w = a.onVideoStateChange) == null || w.call(a, _.Stop));
460
+ var o, h;
461
+ d && (l && (l.close(), l.oniceconnectionstatechange = null, l.onnegotiationneeded = null, l.onicecandidate = null, l.ontrack = null), await m(d, w).catch((I) => {
462
+ }), (o = a.onConnectionStateChange) == null || o.call(a, "closed"), (h = a.onVideoStateChange) == null || h.call(a, _.Stop));
463
463
  },
464
464
  /**
465
465
  * Session identifier information, should be returned in the body of all streaming requests
466
466
  */
467
- sessionId: h,
467
+ sessionId: w,
468
468
  /**
469
469
  * Id of current RTC stream
470
470
  */
@@ -474,26 +474,27 @@ async function oe(e, {
474
474
  * @param eventName
475
475
  * @param callback
476
476
  */
477
- onCallback(o, w) {
478
- a[o] = w;
477
+ onCallback(o, h) {
478
+ a[o] = h;
479
479
  }
480
480
  };
481
481
  }
482
482
  export {
483
+ j as ChatMode,
483
484
  K as ChatProgress,
484
- te as DocumentType,
485
- ee as KnowledgeType,
485
+ ne as DocumentType,
486
+ te as KnowledgeType,
486
487
  Y as Providers,
487
488
  O as RateState,
488
489
  X as SocketManager,
489
490
  A as StreamEvents,
490
- j as Subject,
491
+ ee as Subject,
491
492
  Z as VoiceAccess,
492
- ce as createAgentManager,
493
- T as createAgentsApi,
493
+ de as createAgentManager,
494
+ J as createAgentsApi,
494
495
  y as createClient,
495
- D as createKnowledgeApi,
496
- F as createRatingsApi,
497
- oe as createStreamingManager,
498
- ne as getAgentStreamArgs
496
+ F as createKnowledgeApi,
497
+ D as createRatingsApi,
498
+ ce as createStreamingManager,
499
+ re as getAgentStreamArgs
499
500
  };
@@ -1 +1 @@
1
- (function(c,p){typeof exports=="object"&&typeof module<"u"?p(exports):typeof define=="function"&&define.amd?define(["exports"],p):(c=typeof globalThis<"u"?globalThis:c||self,p(c.index={}))})(this,function(c){"use strict";const p="https://api.d-id.com",O="wss://notifications.d-id.com";function E(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}`;throw new Error(`Unknown auth type: ${e}`)}function k(e,i=p){const a=async(t,n)=>{const r=await fetch(i+(t!=null&&t.startsWith("/")?t:`/${t}`),{...n,headers:{...n==null?void 0:n.headers,Authorization:E(e),"Content-Type":"application/json"}});if(!r.ok){let s=await r.text().catch(()=>"Failed to fetch");throw new Error(s)}return r.json()};return{get(t,n){return a(t,{...n,method:"GET"})},post(t,n,r){return a(t,{...r,body:JSON.stringify(n),method:"POST"})},delete(t,n,r){return a(t,{...r,body:JSON.stringify(n),method:"DELETE"})},patch(t,n,r){return a(t,{...r,body:JSON.stringify(n),method:"PATCH"})}}}function T(e,i=p){const a=k(e,`${i}/agents`);return{create(t,n){return a.post("/",t,n)},getAgents(t,n){return a.get(`/${t?`?tag=${t}`:""}`,n).then(r=>r??[])},getById(t,n){return a.get(`/${t}`,n)},delete(t,n){return a.delete(`/${t}`,void 0,n)},update(t,n,r){return a.patch(`/${t}`,n,r)},newChat(t,n){return a.post(`/${t}/chat`,void 0,n)},chat(t,n,r,s){return a.post(`/${t}/chat/${n}`,r,s)}}}function W(e,i=p){const a=k(e,`${i}/knowledge`);return{createKnowledge(t,n){return a.post("/",t,n)},getKnowledgeBase(t){return a.get("/",t)},getKnowledge(t,n){return a.get(`/${t}`,n)},deleteKnowledge(t,n){return a.delete(`/${t}`,void 0,n)},createDocument(t,n,r){return a.post(`/${t}/documents`,n,r)},deleteDocument(t,n,r){return a.delete(`/${t}/documents/${n}`,void 0,r)},getDocuments(t,n){return a.get(`/${t}/documents`,n)},getDocument(t,n,r){return a.get(`/${t}/documents/${n}`,r)},getRecords(t,n,r){return a.get(`/${t}/documents/${n}/records`,r)},query(t,n,r){return a.post(`/${t}/query`,{query:n},r)}}}function H(e,i=p){const a=k(e,`${i}/chats/ratings`);return{create(t,n){return a.post("/",t,n)},getByKnowledge(t,n){return a.get(`/${t}`,n).then(r=>r??[])},update(t,n,r){return a.patch(`/${t}`,n,r)},delete(t,n){return a.delete(`/${t}`,n)}}}const x=e=>new Promise(i=>setTimeout(i,e));function ee(e){return new Promise((i,a)=>{const{callbacks:t,host:n,auth:r}=e,{onMessage:s=null,onOpen:m=null,onClose:g=null,onError:h=null}=t||{},f=new WebSocket(`${n}?authorization=${E(r)}`);f.onmessage=s,f.onclose=g,f.onerror=l=>{console.log(l),h==null||h(l),a(l)},f.onopen=l=>{m==null||m(l),i(f)}})}async function te(e){const{retries:i=1}=e;let a=null;for(let t=0;(a==null?void 0:a.readyState)!==WebSocket.OPEN;t++)try{a=await ee(e)}catch(n){if(t===i)throw n;await x(t*500)}return a}async function U(e,i,a){const t=a?[a]:[],n=await te({auth:e,host:i,callbacks:{onMessage:r=>{const s=JSON.parse(r.data);t.forEach(m=>m(s.event,s))}}});return{socket:n,terminate:()=>n.close(),subscribeToEvents:r=>t.push(r)}}var q=(e=>(e.Amazon="amazon",e.Microsoft="microsoft",e.Afflorithmics="afflorithmics",e.Elevenlabs="elevenlabs",e))(q||{}),N=(e=>(e.Public="public",e.Premium="premium",e.Private="private",e))(N||{}),M=(e=>(e.Start="START",e.Stop="STOP",e))(M||{}),R=(e=>(e.ChatAnswer="chat/answer",e.ChatPartial="chat/partial",e.StreamDone="stream/done",e.StreamStarted="stream/started",e))(R||{}),z=(e=>(e.Unrated="Unrated",e.Positive="Positive",e.Negative="Negative",e))(z||{}),I=(e=>(e.Embed="embed",e.Query="query",e.Partial="partial",e.Answer="answer",e.Complete="done",e))(I||{}),B=(e=>(e.KnowledgeProcessing="knowledge/processing",e.KnowledgeIndexing="knowledge/indexing",e.KnowledgeFailed="knowledge/error",e.KnowledgeDone="knowledge/done",e))(B||{}),J=(e=>(e.Knowledge="knowledge",e.Document="document",e.Record="record",e))(J||{}),D=(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))(D||{}),$=(e=>(e.Clip="clip",e.Talk="talk",e))($||{});function F(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 V(e,i,a,t){return new Promise(async(n,r)=>{const s=await Q(F(e),{...i,callbacks:{...i.callbacks,onConnectionStateChange:async m=>{var g,h;m==="connected"?(t||(t=await a.newChat(e.id)),n({chat:t,streamingManager:s})):m==="failed"&&r(new Error("Cannot create connection")),(h=(g=i.callbacks).onConnectionStateChange)==null||h.call(g,m)},onMessage:(m,g)=>{var h,f;m===R.ChatPartial&&((f=(h=i.callbacks).onChatEvents)==null||f.call(h,I.Partial,{content:g,event:I.Partial}))}}})})}async function ne(e,i){const a=i.baseURL||p,t=i.wsURL||O,n=new AbortController,r=T(i.auth,a),s=H(i.auth,a),m=W(i.auth,a),g=await r.getById(e),h=await U(i.auth,t,i.callbacks.onChatEvents);let{chat:f,streamingManager:l}=await V(g,i,r);return{agent:g,async reconnectToChat(){const{streamingManager:d}=await V(g,i,r,f);l=d},terminate(){return n.abort(),h.terminate(),l.terminate()},chatId:f.id,chat(d){return r.chat(e,f.id,{sessionId:l.sessionId,streamId:l.streamId,messages:d},{signal:n.signal})},rate(d,w){return w?s.update(w,d):s.create(d)},deleteRate(d){return s.delete(d)},speak(d){let w;return d.type==="text"?w={script:{type:"text",provider:d.provider,input:d.input,ssml:d.ssml||!1}}:d.type==="audio"&&(w={script:{type:"audio",audio_url:d.audio_url}}),l.speak(w)},getStarterMessages(){var d,w;return(d=g.knowledge)!=null&&d.id?m.getKnowledge((w=g.knowledge)==null?void 0:w.id).then(v=>(v==null?void 0:v.starter_message)||[]):Promise.resolve([])}}}function ae(e,i){const a=k(e,i);return{createStream(t){return a.post("/clips/streams",{driver_id:t.driver_id,presenter_id:t.presenter_id,compatibility_mode:t.compatibility_mode})},startConnection(t,n,r){return a.post(`/clips/streams/${t}/sdp`,{session_id:r,answer:n})},addIceCandidate(t,n,r){return a.post(`/clips/streams/${t}/ice`,{session_id:r,...n})},sendStreamRequest(t,n,r){return a.post(`/clips/streams/${t}`,{session_id:n,...r})},close(t,n){return a.delete(`/clips/streams/${t}`,{session_id:n})}}}function re(e,i){const a=k(e,i);return{createStream(t,n){return a.post("/talks/streams",{source_url:t.source_url,driver_url:t.driver_url,face:t.face,config:t.config},n)},startConnection(t,n,r,s){return a.post(`/talks/streams/${t}/sdp`,{session_id:r,answer:n},s)},addIceCandidate(t,n,r,s){return a.post(`/talks/streams/${t}/ice`,{session_id:r,...n},s)},sendStreamRequest(t,n,r,s){return a.post(`/talks/streams/${t}`,{session_id:n,...r},s)},close(t,n,r){return a.delete(`/talks/streams/${t}`,{session_id:n},r)}}}function ie(e,i){return e.map((a,t)=>t===0?i?{index:t,timestamp:a.timestamp,bytesReceived:a.bytesReceived-i.bytesReceived,packetsReceived:a.packetsReceived-i.packetsReceived,packetsLost:a.packetsLost-i.packetsLost,jitter:a.jitter,frameWidth:a.frameWidth,frameHeight:a.frameHeight,frameRate:a.frameRate}:{index:t,timestamp:a.timestamp,bytesReceived:a.bytesReceived,packetsReceived:a.packetsReceived,packetsLost:a.packetsLost,jitter:a.jitter,frameWidth:a.frameWidth,frameHeight:a.frameHeight,frameRate:a.frameRate}:{index:t,timestamp:a.timestamp,bytesReceived:a.bytesReceived-e[t-1].bytesReceived,packetsReceived:a.packetsReceived-e[t-1].packetsReceived,packetsLost:a.packetsLost-e[t-1].packetsLost,jitter:a.jitter,frameWidth:a.frameWidth,frameHeight:a.frameHeight,frameRate:a.frameRate})}let G=!1;const S=(e,i)=>G&&console.log(e,i),se=(window.RTCPeerConnection||window.webkitRTCPeerConnection||window.mozRTCPeerConnection).bind(window);async function Q(e,{debug:i=!1,callbacks:a,auth:t,baseURL:n=p}){G=i;const r={...a},{startConnection:s,sendStreamRequest:m,close:g,createStream:h,addIceCandidate:f}=e.videoType===$.Clip?ae(t,n):re(t,n),{id:l,offer:d,ice_servers:w,session_id:v}=await h(e),u=new se({iceServers:w}),X=u.createDataChannel("JanusDataChannel"),y=[];let A=0,Y;if(!v)throw new Error("Could not create session_id");u.onicecandidate=o=>{S("peerConnection.onicecandidate",o),o.candidate&&o.candidate.sdpMid&&o.candidate.sdpMLineIndex!==null&&f(l,{candidate:o.candidate.candidate,sdpMid:o.candidate.sdpMid,sdpMLineIndex:o.candidate.sdpMLineIndex},v)},u.oniceconnectionstatechange=()=>{var o;S("peerConnection.oniceconnectionstatechange => "+u.iceConnectionState),(o=r.onConnectionStateChange)==null||o.call(r,u.iceConnectionState)},u.ontrack=o=>{var C;S("peerConnection.ontrack",o),(C=r.onSrcObjectReady)==null||C.call(r,o.streams[0])},X.onmessage=o=>{var C,P,j;if(X.readyState==="open"){const[b,oe]=o.data.split(":");if(b===R.StreamStarted)A=y.length,Y=setInterval(()=>{u.getStats().then(L=>{L.forEach(_=>{_.type==="inbound-rtp"&&_.kind==="video"&&y.push(_)})})},1e3),(C=r.onVideoStateChange)==null||C.call(r,M.Start);else if(b===R.StreamDone){clearInterval(Y);const K=y.slice(A);if(K){const L=A===0?void 0:y[A-1],_=ie(K,L);A=y.length,(P=r.onVideoStateChange)==null||P.call(r,M.Stop,_.sort((ce,de)=>de.packetsLost-ce.packetsLost).slice(0,5))}}else(j=r.onMessage)==null||j.call(r,b,decodeURIComponent(oe))}},await u.setRemoteDescription(d),S("set remote description OK");const Z=await u.createAnswer();return S("create answer OK"),await u.setLocalDescription(Z),S("set local description OK"),await s(l,Z,v),S("start connection OK"),{speak(o){return m(l,v,o)},async terminate(){var o,C;l&&(u&&(u.close(),u.oniceconnectionstatechange=null,u.onnegotiationneeded=null,u.onicecandidate=null,u.ontrack=null),await g(l,v).catch(P=>{}),(o=r.onConnectionStateChange)==null||o.call(r,"closed"),(C=r.onVideoStateChange)==null||C.call(r,M.Stop))},sessionId:v,streamId:l,onCallback(o,C){r[o]=C}}}c.ChatProgress=I,c.DocumentType=D,c.KnowledgeType=J,c.Providers=q,c.RateState=z,c.SocketManager=U,c.StreamEvents=R,c.Subject=B,c.VoiceAccess=N,c.createAgentManager=ne,c.createAgentsApi=T,c.createClient=k,c.createKnowledgeApi=W,c.createRatingsApi=H,c.createStreamingManager=Q,c.getAgentStreamArgs=F,Object.defineProperty(c,Symbol.toStringTag,{value:"Module"})});
1
+ (function(s,p){typeof exports=="object"&&typeof module<"u"?p(exports):typeof define=="function"&&define.amd?define(["exports"],p):(s=typeof globalThis<"u"?globalThis:s||self,p(s.index={}))})(this,function(s){"use strict";const p="https://api.d-id.com",x="wss://notifications.d-id.com";function E(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}`;throw new Error(`Unknown auth type: ${e}`)}function k(e,i=p){const a=async(t,n)=>{const r=await fetch(i+(t!=null&&t.startsWith("/")?t:`/${t}`),{...n,headers:{...n==null?void 0:n.headers,Authorization:E(e),"Content-Type":"application/json"}});if(!r.ok){let c=await r.text().catch(()=>"Failed to fetch");throw new Error(c)}return r.json()};return{get(t,n){return a(t,{...n,method:"GET"})},post(t,n,r){return a(t,{...r,body:JSON.stringify(n),method:"POST"})},delete(t,n,r){return a(t,{...r,body:JSON.stringify(n),method:"DELETE"})},patch(t,n,r){return a(t,{...r,body:JSON.stringify(n),method:"PATCH"})}}}function T(e,i=p){const a=k(e,`${i}/agents`);return{create(t,n){return a.post("/",t,n)},getAgents(t,n){return a.get(`/${t?`?tag=${t}`:""}`,n).then(r=>r??[])},getById(t,n){return a.get(`/${t}`,n)},delete(t,n){return a.delete(`/${t}`,void 0,n)},update(t,n,r){return a.patch(`/${t}`,n,r)},newChat(t,n){return a.post(`/${t}/chat`,void 0,n)},chat(t,n,r,c){return a.post(`/${t}/chat/${n}`,r,c)}}}function W(e,i=p){const a=k(e,`${i}/knowledge`);return{createKnowledge(t,n){return a.post("/",t,n)},getKnowledgeBase(t){return a.get("/",t)},getKnowledge(t,n){return a.get(`/${t}`,n)},deleteKnowledge(t,n){return a.delete(`/${t}`,void 0,n)},createDocument(t,n,r){return a.post(`/${t}/documents`,n,r)},deleteDocument(t,n,r){return a.delete(`/${t}/documents/${n}`,void 0,r)},getDocuments(t,n){return a.get(`/${t}/documents`,n)},getDocument(t,n,r){return a.get(`/${t}/documents/${n}`,r)},getRecords(t,n,r){return a.get(`/${t}/documents/${n}/records`,r)},query(t,n,r){return a.post(`/${t}/query`,{query:n},r)}}}function H(e,i=p){const a=k(e,`${i}/chats/ratings`);return{create(t,n){return a.post("/",t,n)},getByKnowledge(t,n){return a.get(`/${t}`,n).then(r=>r??[])},update(t,n,r){return a.patch(`/${t}`,n,r)},delete(t,n){return a.delete(`/${t}`,n)}}}const ee=e=>new Promise(i=>setTimeout(i,e));function te(e){return new Promise((i,a)=>{const{callbacks:t,host:n,auth:r}=e,{onMessage:c=null,onOpen:m=null,onClose:g=null,onError:h=null}=t||{},f=new WebSocket(`${n}?authorization=${E(r)}`);f.onmessage=c,f.onclose=g,f.onerror=l=>{console.log(l),h==null||h(l),a(l)},f.onopen=l=>{m==null||m(l),i(f)}})}async function ne(e){const{retries:i=1}=e;let a=null;for(let t=0;(a==null?void 0:a.readyState)!==WebSocket.OPEN;t++)try{a=await te(e)}catch(n){if(t===i)throw n;await ee(t*500)}return a}async function U(e,i,a){const t=a?[a]:[],n=await ne({auth:e,host:i,callbacks:{onMessage:r=>{const c=JSON.parse(r.data);t.forEach(m=>m(c.event,c))}}});return{socket:n,terminate:()=>n.close(),subscribeToEvents:r=>t.push(r)}}var q=(e=>(e.Amazon="amazon",e.Microsoft="microsoft",e.Afflorithmics="afflorithmics",e.Elevenlabs="elevenlabs",e))(q||{}),N=(e=>(e.Public="public",e.Premium="premium",e.Private="private",e))(N||{}),M=(e=>(e.Start="START",e.Stop="STOP",e))(M||{}),R=(e=>(e.ChatAnswer="chat/answer",e.ChatPartial="chat/partial",e.StreamDone="stream/done",e.StreamStarted="stream/started",e))(R||{}),z=(e=>(e.Unrated="Unrated",e.Positive="Positive",e.Negative="Negative",e))(z||{}),B=(e=>(e.Functional="Functional",e.TextOnly="TextOnly",e.Maintainance="Maintainance",e))(B||{}),I=(e=>(e.Embed="embed",e.Query="query",e.Partial="partial",e.Answer="answer",e.Complete="done",e))(I||{}),J=(e=>(e.KnowledgeProcessing="knowledge/processing",e.KnowledgeIndexing="knowledge/indexing",e.KnowledgeFailed="knowledge/error",e.KnowledgeDone="knowledge/done",e))(J||{}),F=(e=>(e.Knowledge="knowledge",e.Document="document",e.Record="record",e))(F||{}),D=(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))(D||{}),$=(e=>(e.Clip="clip",e.Talk="talk",e))($||{});function V(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 G(e,i,a,t){return new Promise(async(n,r)=>{const c=await X(V(e),{...i,callbacks:{...i.callbacks,onConnectionStateChange:async m=>{var g,h;m==="connected"?(t||(t=await a.newChat(e.id)),n({chat:t,streamingManager:c})):m==="failed"&&r(new Error("Cannot create connection")),(h=(g=i.callbacks).onConnectionStateChange)==null||h.call(g,m)},onMessage:(m,g)=>{var h,f;m===R.ChatPartial&&((f=(h=i.callbacks).onChatEvents)==null||f.call(h,I.Partial,{content:g,event:I.Partial}))}}})})}async function ae(e,i){const a=i.baseURL||p,t=i.wsURL||x,n=new AbortController,r=T(i.auth,a),c=H(i.auth,a),m=W(i.auth,a),g=await r.getById(e),h=await U(i.auth,t,i.callbacks.onChatEvents);let{chat:f,streamingManager:l}=await G(g,i,r);return{agent:g,async reconnectToChat(){const{streamingManager:d}=await G(g,i,r,f);l=d},terminate(){return n.abort(),h.terminate(),l.terminate()},chatId:f.id,chat(d){return r.chat(e,f.id,{sessionId:l.sessionId,streamId:l.streamId,messages:d},{signal:n.signal})},rate(d,w){return w?c.update(w,d):c.create(d)},deleteRate(d){return c.delete(d)},speak(d){let w;return d.type==="text"?w={script:{type:"text",provider:d.provider,input:d.input,ssml:d.ssml||!1}}:d.type==="audio"&&(w={script:{type:"audio",audio_url:d.audio_url}}),l.speak(w)},getStarterMessages(){var d,w;return(d=g.knowledge)!=null&&d.id?m.getKnowledge((w=g.knowledge)==null?void 0:w.id).then(v=>(v==null?void 0:v.starter_message)||[]):Promise.resolve([])}}}function re(e,i){const a=k(e,i);return{createStream(t){return a.post("/clips/streams",{driver_id:t.driver_id,presenter_id:t.presenter_id,compatibility_mode:t.compatibility_mode})},startConnection(t,n,r){return a.post(`/clips/streams/${t}/sdp`,{session_id:r,answer:n})},addIceCandidate(t,n,r){return a.post(`/clips/streams/${t}/ice`,{session_id:r,...n})},sendStreamRequest(t,n,r){return a.post(`/clips/streams/${t}`,{session_id:n,...r})},close(t,n){return a.delete(`/clips/streams/${t}`,{session_id:n})}}}function ie(e,i){const a=k(e,i);return{createStream(t,n){return a.post("/talks/streams",{source_url:t.source_url,driver_url:t.driver_url,face:t.face,config:t.config},n)},startConnection(t,n,r,c){return a.post(`/talks/streams/${t}/sdp`,{session_id:r,answer:n},c)},addIceCandidate(t,n,r,c){return a.post(`/talks/streams/${t}/ice`,{session_id:r,...n},c)},sendStreamRequest(t,n,r,c){return a.post(`/talks/streams/${t}`,{session_id:n,...r},c)},close(t,n,r){return a.delete(`/talks/streams/${t}`,{session_id:n},r)}}}function se(e,i){return e.map((a,t)=>t===0?i?{index:t,timestamp:a.timestamp,bytesReceived:a.bytesReceived-i.bytesReceived,packetsReceived:a.packetsReceived-i.packetsReceived,packetsLost:a.packetsLost-i.packetsLost,jitter:a.jitter,frameWidth:a.frameWidth,frameHeight:a.frameHeight,frameRate:a.frameRate}:{index:t,timestamp:a.timestamp,bytesReceived:a.bytesReceived,packetsReceived:a.packetsReceived,packetsLost:a.packetsLost,jitter:a.jitter,frameWidth:a.frameWidth,frameHeight:a.frameHeight,frameRate:a.frameRate}:{index:t,timestamp:a.timestamp,bytesReceived:a.bytesReceived-e[t-1].bytesReceived,packetsReceived:a.packetsReceived-e[t-1].packetsReceived,packetsLost:a.packetsLost-e[t-1].packetsLost,jitter:a.jitter,frameWidth:a.frameWidth,frameHeight:a.frameHeight,frameRate:a.frameRate})}let Q=!1;const S=(e,i)=>Q&&console.log(e,i),ce=(window.RTCPeerConnection||window.webkitRTCPeerConnection||window.mozRTCPeerConnection).bind(window);async function X(e,{debug:i=!1,callbacks:a,auth:t,baseURL:n=p}){Q=i;const r={...a},{startConnection:c,sendStreamRequest:m,close:g,createStream:h,addIceCandidate:f}=e.videoType===$.Clip?re(t,n):ie(t,n),{id:l,offer:d,ice_servers:w,session_id:v}=await h(e),u=new ce({iceServers:w}),Y=u.createDataChannel("JanusDataChannel"),y=[];let A=0,Z;if(!v)throw new Error("Could not create session_id");u.onicecandidate=o=>{S("peerConnection.onicecandidate",o),o.candidate&&o.candidate.sdpMid&&o.candidate.sdpMLineIndex!==null&&f(l,{candidate:o.candidate.candidate,sdpMid:o.candidate.sdpMid,sdpMLineIndex:o.candidate.sdpMLineIndex},v)},u.oniceconnectionstatechange=()=>{var o;S("peerConnection.oniceconnectionstatechange => "+u.iceConnectionState),(o=r.onConnectionStateChange)==null||o.call(r,u.iceConnectionState)},u.ontrack=o=>{var C;S("peerConnection.ontrack",o),(C=r.onSrcObjectReady)==null||C.call(r,o.streams[0])},Y.onmessage=o=>{var C,P,j;if(Y.readyState==="open"){const[b,oe]=o.data.split(":");if(b===R.StreamStarted)A=y.length,Z=setInterval(()=>{u.getStats().then(L=>{L.forEach(_=>{_.type==="inbound-rtp"&&_.kind==="video"&&y.push(_)})})},1e3),(C=r.onVideoStateChange)==null||C.call(r,M.Start);else if(b===R.StreamDone){clearInterval(Z);const K=y.slice(A);if(K){const L=A===0?void 0:y[A-1],_=se(K,L);A=y.length,(P=r.onVideoStateChange)==null||P.call(r,M.Stop,_.sort((de,le)=>le.packetsLost-de.packetsLost).slice(0,5))}}else(j=r.onMessage)==null||j.call(r,b,decodeURIComponent(oe))}},await u.setRemoteDescription(d),S("set remote description OK");const O=await u.createAnswer();return S("create answer OK"),await u.setLocalDescription(O),S("set local description OK"),await c(l,O,v),S("start connection OK"),{speak(o){return m(l,v,o)},async terminate(){var o,C;l&&(u&&(u.close(),u.oniceconnectionstatechange=null,u.onnegotiationneeded=null,u.onicecandidate=null,u.ontrack=null),await g(l,v).catch(P=>{}),(o=r.onConnectionStateChange)==null||o.call(r,"closed"),(C=r.onVideoStateChange)==null||C.call(r,M.Stop))},sessionId:v,streamId:l,onCallback(o,C){r[o]=C}}}s.ChatMode=B,s.ChatProgress=I,s.DocumentType=D,s.KnowledgeType=F,s.Providers=q,s.RateState=z,s.SocketManager=U,s.StreamEvents=R,s.Subject=J,s.VoiceAccess=N,s.createAgentManager=ae,s.createAgentsApi=T,s.createClient=k,s.createKnowledgeApi=W,s.createRatingsApi=H,s.createStreamingManager=X,s.getAgentStreamArgs=V,Object.defineProperty(s,Symbol.toStringTag,{value:"Module"})});
@@ -36,10 +36,16 @@ export interface IRetrivalMetadata {
36
36
  knowledge_id: string;
37
37
  source_url: string;
38
38
  }
39
+ export declare enum ChatMode {
40
+ Functional = "Functional",
41
+ TextOnly = "TextOnly",
42
+ Maintainance = "Maintainance"
43
+ }
39
44
  export interface ChatResponse {
40
45
  result?: string;
41
46
  documentIds?: string[];
42
47
  matches?: IRetrivalMetadata[];
48
+ chatMode?: ChatMode;
43
49
  }
44
50
  export interface Chat {
45
51
  id: string;
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@d-id/client-sdk",
3
3
  "private": false,
4
- "version": "1.0.19-beta.1",
4
+ "version": "1.0.19-beta.2",
5
5
  "type": "module",
6
6
  "description": "d-id client sdk",
7
7
  "repository": {