@apirtc/react-lib 1.2.1-rc.3 → 1.2.1

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.
@@ -5,9 +5,9 @@ import type { Conversation } from '@apirtc/apirtc';
5
5
  * @param autoStart boolean to automatically start transcription
6
6
  */
7
7
  export default function useTranscriptService(conversation: Conversation | undefined, autoStart: boolean | undefined): {
8
- transcriptService: import("@apizee/ia").TranscriptService | null;
8
+ transcriptService: import("@apirtc/ia").TranscriptService | null;
9
9
  hasStarted: boolean;
10
- transcripts: import("@apizee/ia").Transcript[];
10
+ transcripts: import("@apirtc/ia").Transcript[];
11
11
  startTranscriptService: () => Promise<void>;
12
12
  stopTranscriptService: () => Promise<void>;
13
13
  };
package/dist/esm/index.js CHANGED
@@ -1,2 +1,2 @@
1
- import e,{useRef as t,useEffect as o,useState as n,useCallback as i,useMemo as a}from"react";import{UserAgent as r,MediaDevice as s}from"@apirtc/apirtc";function c(n){const{autoPlay:i=!0}=n,a=t(null);return o((()=>{const e=a.current;if(e&&n.stream)return n.stream.attachToElement(e),()=>{e.src=""}}),[n.stream]),e.createElement("video",{id:n.stream.getId(),style:{maxWidth:"100%"},ref:a,autoPlay:i,muted:n.muted})}const l={},d="useCameraStream";function b(e,t=l,i){const[a,r]=n(),[s,c]=n(!1),[b,u]=n();return o((()=>{if(globalThis.apirtcReactLibLogLevel.isDebugEnabled&&console.debug(`${d}|useEffect`,e,t),e){const o=e.getUserAgent();c(!0),o.createStream(t).then((e=>{globalThis.apirtcReactLibLogLevel.isInfoEnabled&&console.info(`${d}|createStream`,t,e),r(e),u(void 0)})).catch((e=>{console.error(`${d}|createStream error`,t,e),r(void 0),i&&i(e),u(e)})).finally((()=>{c(!1)}))}else r(void 0),u(void 0)}),[e,t,i]),o((()=>{const e=a;if(e)return()=>{globalThis.apirtcReactLibLogLevel.isInfoEnabled&&console.info(`${d}|release stream`,e),e.release()}}),[a]),{stream:a,grabbing:s,error:b}}const u="useConversation";function g(e,t,a,r=!0,s){const[c,l]=n(),[d,b]=n(!1),[g,L]=n(!1),p=i(((e={})=>(globalThis.apirtcReactLibLogLevel.isDebugEnabled&&console.debug(`${u}|join`,c,e),new Promise(((t,o)=>{c?c.isJoined()?o(`${u}|join|conversation already joined`):(L(!0),c.join(e).then((()=>{b(!0),t()})).catch((e=>{o(e)})).finally((()=>{L(!1)}))):o(`${u}|join|conversation not defined`)})))),[c]),v=i((()=>(globalThis.apirtcReactLibLogLevel.isDebugEnabled&&console.debug(`${u}|leave`,c),new Promise(((e,t)=>{c?c.isJoined()?c.leave().then((()=>{b(!1),e()})).catch((e=>{t(e)})):t(`${u}|leave|conversation is not joined`):t(`${u}|leave|conversation not defined`)})))),[c]);return o((()=>{if(e&&t){globalThis.apirtcReactLibLogLevel.isDebugEnabled&&console.debug(`${u}|getOrCreateConversation`,t,a);const o=e.getOrCreateConversation(t,a);return l(o),()=>{globalThis.apirtcReactLibLogLevel.isDebugEnabled&&console.debug(`${u}|useEffect cleanup`,t,a),o.isJoined()?o.leave().then((()=>{})).catch((e=>{globalThis.apirtcReactLibLogLevel.isWarnEnabled&&console.warn(`${u}|useEffect conversation.leave()`,e)})).finally((()=>{o.destroy()})):o.destroy(),l(void 0),b(!1)}}}),[e,t,a]),o((()=>{if(c&&r){globalThis.apirtcReactLibLogLevel.isDebugEnabled&&console.debug(`${u}|useEffect`,c,r,s);const e=c,t=r;return t&&(L(!0),e.join(s).then((()=>{globalThis.apirtcReactLibLogLevel.isInfoEnabled&&console.info(`${u}|joined`,e),b(!0)})).catch((t=>{globalThis.apirtcReactLibLogLevel.isWarnEnabled&&console.warn(`${u}|useEffect conversation.join() error`,e,s,t)})).finally((()=>{L(!1)}))),()=>{globalThis.apirtcReactLibLogLevel.isDebugEnabled&&console.debug(`${u}|useEffect cleanup`,e,t),e.isJoined()&&e.leave().then((()=>{b(!1)})).catch((t=>{globalThis.apirtcReactLibLogLevel.isWarnEnabled&&console.warn(`${u}|useEffect conversation.leave() error`,e,t)}))}}}),[c,a,r,s]),{conversation:c,joining:g,joined:d,join:p,leave:v}}const L="useConversationContacts";function p(e,t,i){const[a,r]=n([]);return o((()=>{if(e){const o=o=>{globalThis.apirtcReactLibLogLevel.isDebugEnabled&&console.debug(`${L}|on:contactJoined:`,e.getName(),o),r((e=>[...e,o])),t&&t(o)};e.on("contactJoined",o);const n=t=>{globalThis.apirtcReactLibLogLevel.isDebugEnabled&&console.debug(`${L}|on:contactLeft:`,e.getName(),t),r((e=>e.filter((e=>e!==t)))),i&&i(t)};return e.on("contactLeft",n),()=>{e.removeListener("contactJoined",o),e.removeListener("contactLeft",n),r(new Array)}}}),[e,t,i]),{contacts:a}}const v="useConversationMessages";function f(e){const[t,a]=n([]);o((()=>{if(e){const t=t=>{globalThis.apirtcReactLibLogLevel.isDebugEnabled&&console.debug(`${v}|on:message:`,e.getName(),t),a((e=>[...e,t]))};return e.on("message",t),()=>{e.removeListener("message",t),a(new Array)}}}),[e]);return{messages:t,sendMessage:i(((t,o)=>new Promise(((n,i)=>{null==e||e.sendMessage(t).then((i=>{globalThis.apirtcReactLibLogLevel.isInfoEnabled&&console.info(`${v}|sentMessage`,e.getName(),i,t),a((e=>[...e,{content:t,sender:o,time:new Date}])),n()})).catch((e=>{globalThis.apirtcReactLibLogLevel.isWarnEnabled&&console.warn(`${v}|sendMessage error`,e),i(e)}))}))),[e])}}const h="useConversationModeration";function m(e,t,i){const[a,r]=n(new Set);return o((()=>{if(globalThis.apirtcReactLibLogLevel.isDebugEnabled&&console.debug(`${h}|useEffect conversation`,e),e){const o=e=>{globalThis.apirtcReactLibLogLevel.isInfoEnabled&&console.info(`${h}|on:contactJoinedWaitingRoom`,e),r((t=>new Set(t.add(e))))},n=e=>{globalThis.apirtcReactLibLogLevel.isInfoEnabled&&console.info(`${h}|on:contactLeftWaitingRoom`,e),r((t=>(t.delete(e),new Set(t))))},a=e=>{globalThis.apirtcReactLibLogLevel.isInfoEnabled&&console.info(`${h}|on:participantEjected`,e),!0===e.self?(globalThis.apirtcReactLibLogLevel.isInfoEnabled&&console.info(`${h}|Self participant was ejected`),i&&i()):t&&t(e.contact)};return e.on("contactJoinedWaitingRoom",o).on("contactLeftWaitingRoom",n).on("participantEjected",a),()=>{globalThis.apirtcReactLibLogLevel.isDebugEnabled&&console.debug(`${h}|conversation clear`,e),e.removeListener("contactJoinedWaitingRoom",o).removeListener("contactLeftWaitingRoom",n).removeListener("participantEjected",a),r(new Set)}}}),[e,t,i]),{candidates:a}}function E(e){return null!=e}const T=[],$="useConversationStreams";function R(e,a=T,r){globalThis.apirtcReactLibLogLevel.isDebugEnabled&&console.debug(`${$}|hook render|${null==e?void 0:e.getName()}`,a.map((e=>null==e?void 0:e.options)));const s=t([]),[c,l]=n(new Array),[d,b]=n(new Array),u=i(((t,o)=>new Promise(((n,i)=>{e&&(globalThis.apirtcReactLibLogLevel.isDebugEnabled&&console.debug(`${$}|publish|${e.getName()}`,t,o),e.publish(t,o).then((t=>{globalThis.apirtcReactLibLogLevel.isInfoEnabled&&console.info(`${$}|published|${e.getName()}`,t),l((e=>[...e,t])),n(t)})).catch((e=>{i(e)})))}))),[e]),g=i(((t,o)=>new Promise(((n,i)=>{e&&(globalThis.apirtcReactLibLogLevel.isDebugEnabled&&console.debug(`${$}|replacePublishedStream|${e.getName()}|${t.getId()} -> ${o.getId()}`),e.replacePublishedStream(t,o).then((o=>{globalThis.apirtcReactLibLogLevel.isInfoEnabled&&console.info(`${$}|stream replaced|${e.getName()}`,t,o),l((e=>{const n=e.indexOf(t);return n>=0&&e.splice(n,1,o),Array.from(e)})),n(o)})).catch((e=>{i(e)})))}))),[e]),L=i((t=>{e&&(globalThis.apirtcReactLibLogLevel.isDebugEnabled&&console.debug(`${$}|unpublish|${e.getName()}`,t.getId(),t),e.unpublish(t),l((e=>e.filter((e=>e!==t)))))}),[e]),p=i((()=>{const t=Math.max(s.current.length,a.length);globalThis.apirtcReactLibLogLevel.isDebugEnabled&&console.debug(`${$}|doHandlePublication`,a,JSON.stringify(s.current.map((e=>null==e?void 0:e.stream.getId()))),JSON.stringify(a.map((e=>null==e?void 0:e.stream.getId()))),t);const o=[...s.current],n=a.map((e=>e&&e.options?{stream:e.stream,options:Object.assign({},e.options)}:e));s.current.length=0,s.current.push(...n);const i=new Set(a.filter(E).map((e=>e.stream))),c=(e,t)=>{u(t.stream,t.options).catch((t=>{s.current.splice(e,1,null),r?r(t):globalThis.apirtcReactLibLogLevel.isWarnEnabled&&console.warn(`${$}|publish|error`,t)}))};for(let n=0;n<t;n++){const t=o[n],l=a[n];if(t&&l){const o=()=>{L(t.stream),c(n,l)};t.stream===l.stream?JSON.stringify(t.options)!==JSON.stringify(l.options)&&o():i.has(t.stream)?e&&!e.isPublishedStream(l.stream)&&c(n,l):e&&!e.isPublishedStream(l.stream)?JSON.stringify(t.options)===JSON.stringify(l.options)?g(t.stream,l.stream).catch((e=>{s.current.splice(n,1,null),r?r(e):globalThis.apirtcReactLibLogLevel.isWarnEnabled&&console.warn(`${$}|replacePublishedStream|error`,e)})):o():L(t.stream)}else t&&!l?i.has(t.stream)||L(t.stream):!t&&l&&e&&!e.isPublishedStream(l.stream)&&c(n,l)}}),[e,a,u,L,g,r]),v=i((()=>{e&&l((t=>(t.forEach((t=>{globalThis.apirtcReactLibLogLevel.isDebugEnabled&&console.debug(`${$}|unpublish|${e.getName()}`,t),e.unpublish(t)})),[]))),s.current.length=0}),[e]),f=i((()=>{e&&b((t=>(t.forEach((t=>{globalThis.apirtcReactLibLogLevel.isDebugEnabled&&console.debug(`${$}|unsubscribeToStream|${e.getName()}`,t),e.unsubscribeToStream(t.getId())})),[])))}),[e]),h=i((()=>{v(),f()}),[v,f]);return o((()=>{if(e){s.current.length=0;const t=t=>{globalThis.apirtcReactLibLogLevel.isInfoEnabled&&console.info(`${$}|on_streamAdded|${e.getName()}`,t),b((e=>[...e,t]))},o=t=>{globalThis.apirtcReactLibLogLevel.isInfoEnabled&&console.info(`${$}|on_streamRemoved|${e.getName()}`,t),b((e=>e.filter((e=>e!==t))))},n=t=>{globalThis.apirtcReactLibLogLevel.isDebugEnabled&&console.debug(`${$}|on_streamListChanged|${e.getName()}`,t);const o=String(t.streamId);!0===t.isRemote&&("added"===t.listEventType?e.subscribeToStream(o):"removed"===t.listEventType&&e.unsubscribeToStream(o))};return e.on("streamAdded",t),e.on("streamRemoved",o),e.on("streamListChanged",n),()=>{e.removeListener("streamListChanged",n),e.removeListener("streamRemoved",o),e.removeListener("streamAdded",t),h()}}}),[e,h]),o((()=>{if(e){globalThis.apirtcReactLibLogLevel.isDebugEnabled&&console.debug(`${$}|useEffect doHandlePublication|${e.getName()}`,a);const t=()=>{globalThis.apirtcReactLibLogLevel.isInfoEnabled&&console.info(`${$}|on_joined|${e.getName()}`),p()},o=()=>{globalThis.apirtcReactLibLogLevel.isInfoEnabled&&console.info(`${$}|on_left|${e.getName()}`),h()};return e.on("joined",t),e.on("left",o),e.isJoined()&&p(),()=>{e.removeListener("joined",t),e.removeListener("left",o)}}}),[e,a,p,h]),{publishedStreams:c,subscribedStreams:d,publish:u,unpublish:L,replacePublishedStream:g,unpublishAll:v,unsubscribeAll:f}}const S="usePresence";function y(e,i){const a=t(new Set),r=t(new Map),[s,c]=n(new Map);o((()=>{if(e){const e=a.current,t=r.current;return()=>{e.clear(),t.clear(),c(new Map)}}}),[e]);const l=e=>{var t;const o=null!==(t=r.current.get(e))&&void 0!==t?t:new Set;return r.current.has(e)||r.current.set(e,o),o};return o((()=>{if(globalThis.apirtcReactLibLogLevel.isDebugEnabled&&console.debug(`${S}|useEffect session, groups`,i),e){const t=e,o=new Set(i);o.forEach((e=>{a.current.has(e)||(globalThis.apirtcReactLibLogLevel.isInfoEnabled&&console.info(`${S}|subscribeToGroup`,e),a.current.add(e),t.subscribeToGroup(e))}));let n=!1;if(a.current.forEach((e=>{o.has(e)||(globalThis.apirtcReactLibLogLevel.isInfoEnabled&&console.info(`${S}|unsubscribeToGroup`,e),t.unsubscribeToGroup(e),a.current.delete(e),r.current.delete(e),n=!0)})),n&&c(new Map(r.current)),i.length>0){const e=e=>{globalThis.apirtcReactLibLogLevel.isDebugEnabled&&console.debug(`${S}|contactListUpdate`,e);let t=!1;for(const n of Object.keys(e.joinedGroup))if(o.has(n)){const o=l(n);for(const i of e.joinedGroup[n])o.add(i),t=!0}for(const n of Object.keys(e.leftGroup))if(o.has(n)){const o=l(n);for(const i of e.leftGroup[n])o.delete(i),t=!0,0===o.size&&r.current.delete(n)}for(const o of e.userDataChanged)for(const e of r.current.values())if(e.has(o)){t=!0;break}t&&c(new Map(r.current))};return t.on("contactListUpdate",e),()=>{t.removeListener("contactListUpdate",e)}}}}),[e,i]),{contactsByGroup:s}}const w="useSession";function I(e,t,i){const[a,s]=n(),[c,l]=n(!1);o((()=>{if(globalThis.apirtcReactLibLogLevel.isDebugEnabled&&console.debug(`${w}|useEffect credentials, options`,e,t),e)return d(e,t).catch((e=>{console.error(`${w}|connection failed`,e),s(void 0),i?i(e):globalThis.apirtcReactLibLogLevel.isWarnEnabled&&console.warn(`${w}|connect|error`,e)})),()=>{s(void 0),l(!1)}}),[e,t,i]),o((()=>{if(globalThis.apirtcReactLibLogLevel.isDebugEnabled&&console.debug(`${w}|useEffect session`,a),a){const e=a;return()=>{globalThis.apirtcReactLibLogLevel.isDebugEnabled&&console.debug(`${w}|useEffect session cleanup`,e),e.disconnect().then((()=>{globalThis.apirtcReactLibLogLevel.isInfoEnabled&&console.info(`${w}|disconnected`,e)})).catch((e=>{console.error(`${w}|disconnect`,e)}))}}}),[a]);const d=(e,t)=>new Promise(((o,n)=>{const i=t||{cloudUrl:"https://cloud.apirtc.com"};let a;if("object"==typeof(c=e)&&"username"in c)i.password=e.password,a=new r({uri:`apirtc:${e.username}`});else if(function(e){return"object"==typeof e&&"apiKey"in e}(e))a=new r({uri:`apiKey:${e.apiKey}`});else{if(!function(e){return"object"==typeof e&&"token"in e}(e))return void n("credentials not recognized");a=new r({uri:`token:${e.token}`})}var c;l(!0),a.register(i).then((e=>{globalThis.apirtcReactLibLogLevel.isInfoEnabled&&console.info(`${w}|connected`,e),s(e),o()})).catch((e=>{n(e)})).finally((()=>{l(!1)}))}));return{session:a,connecting:c,connect:d,disconnect:()=>{s(void 0)}}}const D="useStreamApplyAudioProcessor";function N(e,i,a){const r=t(),[s,c]=n(e),[l,d]=n(!1),[b,u]=n();return o((()=>()=>{r.current=void 0}),[e]),o((()=>{globalThis.apirtcReactLibLogLevel.isDebugEnabled&&console.debug(`${D}|useEffect`,e,i),c(e);const t=r.current||(null==e?void 0:e.audioAppliedFilter)||"none";return e&&i!==t&&(d(!0),e.applyAudioProcessor(i).then((e=>{c(e),r.current=i,u(void 0)})).catch((t=>{u(t),a?a(t):globalThis.apirtcReactLibLogLevel.isWarnEnabled&&console.warn(`${D}|useEffect`,e,i,t)})).finally((()=>{d(!1)}))),()=>{u(void 0)}}),[e,i,a]),{stream:s,applying:l,applied:r.current||(null==e?void 0:e.audioAppliedFilter)||"none",error:b}}const j="useStreamApplyVideoProcessor";function A(e,i,a,r){const s=t(),[c,l]=n(e),[d,b]=n(!1),[u,g]=n();return o((()=>()=>{s.current=void 0}),[e]),o((()=>{globalThis.apirtcReactLibLogLevel.isDebugEnabled&&console.debug(`${j}|useEffect`,e,i,a),l(e);const t=s.current||(null==e?void 0:e.videoAppliedFilter)||"none";return e&&i!==t&&(b(!0),e.applyVideoProcessor(i,a).then((e=>{l(e),s.current=i,g(void 0)})).catch((t=>{g(t),r?r(t):globalThis.apirtcReactLibLogLevel.isWarnEnabled&&console.warn(`${j}|useEffect`,e,i,a,t)})).finally((()=>{b(!1)}))),()=>{g(void 0)}}),[e,i,a,r]),{stream:c,applying:d,applied:s.current||(null==e?void 0:e.videoAppliedFilter)||"none",error:u}}const W="useUserMediaDevices",P=e=>{try{const t=localStorage.getItem(e),o=t?JSON.parse(t):null;return o?new s(o.id,o.type,o.label):void 0}catch(e){return void console.warn(`${W}|getMediaDeviceFromLocalStorage`,e)}},J=(e,t)=>{try{localStorage.setItem(e,t)}catch(e){}};function O(e,t){const i=a((()=>t?`${t}.audioIn`:void 0),[t]),r=a((()=>t?`${t}.audioOut`:void 0),[t]),s=a((()=>t?`${t}.videoIn`:void 0),[t]),[c,l]=n((()=>i?P(i):void 0)),[d,b]=n((()=>r?P(r):void 0)),[u,g]=n((()=>s?P(s):void 0)),[L,p]=n({audioinput:c?{[c.getId()]:c}:{},audiooutput:d?{[d.getId()]:d}:{},videoinput:u?{[u.getId()]:u}:{}});return o((()=>{if(e){const t=e.getUserAgent(),o=()=>{const e=t.getUserMediaDevices();globalThis.apirtcReactLibLogLevel.isDebugEnabled&&console.debug(`${W}|mediaDeviceChanged`,e),p(e),l((t=>t?e.audioinput[t.getId()]:void 0)),b((t=>t?e.audiooutput[t.getId()]:void 0)),g((t=>t?e.videoinput[t.getId()]:void 0))};return t.on("mediaDeviceChanged",o),()=>{t.removeListener("mediaDeviceChanged",o)}}}),[e]),o((()=>{c&&i&&(globalThis.apirtcReactLibLogLevel.isDebugEnabled&&console.debug(`${W}|Storing audioIn`,c),J(i,JSON.stringify({id:c.getId(),type:c.getType(),label:c.getLabel()})))}),[i,c]),o((()=>{d&&r&&(globalThis.apirtcReactLibLogLevel.isDebugEnabled&&console.debug(`${W}|Storing audioOut`,d),J(r,JSON.stringify({id:d.getId(),type:d.getType(),label:d.getLabel()})))}),[r,d]),o((()=>{u&&s&&(globalThis.apirtcReactLibLogLevel.isDebugEnabled&&console.debug(`${W}|Storing videoIn`,u),J(s,JSON.stringify({id:u.getId(),type:u.getType(),label:u.getLabel()})))}),[s,u]),{userMediaDevices:L,selectedAudioIn:c,selectedAudioInId:null==c?void 0:c.getId(),setSelectedAudioIn:l,selectedAudioOut:d,selectedAudioOutId:null==d?void 0:d.getId(),setSelectedAudioOut:b,selectedVideoIn:u,selectedVideoInId:null==u?void 0:u.getId(),setSelectedVideoIn:g}}function C(e,t,o,n){return new(o||(o=Promise))((function(i,a){function r(e){try{c(n.next(e))}catch(e){a(e)}}function s(e){try{c(n.throw(e))}catch(e){a(e)}}function c(e){var t;e.done?i(e.value):(t=e.value,t instanceof o?t:new o((function(e){e(t)}))).then(r,s)}c((n=n.apply(e,t||[])).next())}))}"function"==typeof SuppressedError&&SuppressedError;const M="useTranscriptService";function k(e,t){const[a,r]=n(null),[s,c]=n(!1),[l,d]=n([]);o((()=>{if(a)return;let e=!0;return import("@apizee/ia").then((({TranscriptService:t})=>{if(!e)return void(globalThis.apirtcReactLibLogLevel.isWarnEnabled&&console.warn(`${M}|instanciation aborted - component unmounted`));const o=new t;r(o)})),()=>{e=!1}}),[a]),o((()=>{if(!a)return void(globalThis.apirtcReactLibLogLevel.isWarnEnabled&&console.warn(`${M}|useEffect transcript listener skipped - transcriptService not ready`));const e=e=>{const{transcript:t}=e;globalThis.apirtcReactLibLogLevel.isDebugEnabled&&console.debug(`${M}|onTranscript`,t),d((e=>[...e,t]))};return a.addEventListener("transcript",e),()=>{a.removeEventListener("transcript",e),globalThis.apirtcReactLibLogLevel.isDebugEnabled&&console.debug(`${M}|useEffect cleanup`,"onTranscript")}}),[a]);const b=i((()=>C(this,void 0,void 0,(function*(){globalThis.apirtcReactLibLogLevel.isDebugEnabled&&console.debug(`${M}|startTranscriptService transcriptService, hasStarted`,a,s),a?s?globalThis.apirtcReactLibLogLevel.isWarnEnabled&&console.warn(`${M}|startTranscriptService aborted - already started`):e?yield a.start(e).then((()=>{console.log(`${M}|startTranscriptService - started`),c(!0)})).catch((e=>{console.error(`${M}|startTranscriptService - failed`,e)})):console.warn(`${M}|startTranscriptService aborted - conversation not provided`):globalThis.apirtcReactLibLogLevel.isWarnEnabled&&console.warn(`${M}|startTranscriptService aborted - transcriptService not initialized`)}))),[a,s,e]),u=i((()=>C(this,void 0,void 0,(function*(){a?e?yield a.stop(e).then((()=>{console.log(`${M}|stopTranscriptService - stopped`),c(!1)})).catch((e=>{console.error(`${M}|stopTranscriptService - failed`,e)})):console.warn(`${M}|stopTranscriptService aborted - conversation not provided`):globalThis.apirtcReactLibLogLevel.isWarnEnabled&&console.warn(`${M}|stopTranscriptService aborted - transcriptService not initialized`)}))),[a,e]);return o((()=>{globalThis.apirtcReactLibLogLevel.isDebugEnabled&&console.debug(`${M}|useEffect autoStartTranscriptService autoStart, conversation`,t,e),t?e?b():globalThis.apirtcReactLibLogLevel.isWarnEnabled&&console.warn(`${M}|useEffect - auto start transcription not possible if conversation not provided`):globalThis.apirtcReactLibLogLevel.isWarnEnabled&&console.warn(`${M}|useEffect autoStart skipped - autoStart=false`)}),[t,e,b]),{transcriptService:a,hasStarted:s,transcripts:l,startTranscriptService:b,stopTranscriptService:u}}const G={level:"info",isDebugEnabled:!1,isInfoEnabled:!0,isWarnEnabled:!0};function U(e){switch(e){case"debug":globalThis.apirtcReactLibLogLevel={level:"debug",isDebugEnabled:!0,isInfoEnabled:!0,isWarnEnabled:!0};break;case"info":default:globalThis.apirtcReactLibLogLevel=G;break;case"warn":globalThis.apirtcReactLibLogLevel={level:"warn",isDebugEnabled:!1,isInfoEnabled:!1,isWarnEnabled:!0};break;case"error":globalThis.apirtcReactLibLogLevel={level:"error",isDebugEnabled:!1,isInfoEnabled:!1,isWarnEnabled:!1}}return globalThis.apirtcReactLibLogLevel}globalThis.apirtcReactLibLogLevel=G,globalThis.setApirtcReactLibLogLevel=U;export{c as VideoStream,U as setLogLevel,b as useCameraStream,g as useConversation,p as useConversationContacts,f as useConversationMessages,m as useConversationModeration,R as useConversationStreams,y as usePresence,I as useSession,N as useStreamApplyAudioProcessor,A as useStreamApplyVideoProcessor,k as useTranscriptService,O as useUserMediaDevices};
1
+ import e,{useRef as t,useEffect as o,useState as n,useCallback as i,useMemo as a}from"react";import{UserAgent as r,MediaDevice as s}from"@apirtc/apirtc";function c(n){const{autoPlay:i=!0}=n,a=t(null);return o(()=>{const e=a.current;if(e&&n.stream)return n.stream.attachToElement(e),()=>{e.src=""}},[n.stream]),e.createElement("video",{id:n.stream.getId(),style:{maxWidth:"100%"},ref:a,autoPlay:i,muted:n.muted})}const l={},d="useCameraStream";function b(e,t=l,i){const[a,r]=n(),[s,c]=n(!1),[b,u]=n();return o(()=>{if(globalThis.apirtcReactLibLogLevel.isDebugEnabled&&console.debug(`${d}|useEffect`,e,t),e){const o=e.getUserAgent();c(!0),o.createStream(t).then(e=>{globalThis.apirtcReactLibLogLevel.isInfoEnabled&&console.info(`${d}|createStream`,t,e),r(e),u(void 0)}).catch(e=>{console.error(`${d}|createStream error`,t,e),r(void 0),i&&i(e),u(e)}).finally(()=>{c(!1)})}else r(void 0),u(void 0)},[e,t,i]),o(()=>{const e=a;if(e)return()=>{globalThis.apirtcReactLibLogLevel.isInfoEnabled&&console.info(`${d}|release stream`,e),e.release()}},[a]),{stream:a,grabbing:s,error:b}}const u="useConversation";function g(e,t,a,r=!0,s){const[c,l]=n(),[d,b]=n(!1),[g,L]=n(!1),p=i((e={})=>(globalThis.apirtcReactLibLogLevel.isDebugEnabled&&console.debug(`${u}|join`,c,e),new Promise((t,o)=>{c?c.isJoined()?o(`${u}|join|conversation already joined`):(L(!0),c.join(e).then(()=>{b(!0),t()}).catch(e=>{o(e)}).finally(()=>{L(!1)})):o(`${u}|join|conversation not defined`)})),[c]),v=i(()=>(globalThis.apirtcReactLibLogLevel.isDebugEnabled&&console.debug(`${u}|leave`,c),new Promise((e,t)=>{c?c.isJoined()?c.leave().then(()=>{b(!1),e()}).catch(e=>{t(e)}):t(`${u}|leave|conversation is not joined`):t(`${u}|leave|conversation not defined`)})),[c]);return o(()=>{if(e&&t){globalThis.apirtcReactLibLogLevel.isDebugEnabled&&console.debug(`${u}|getOrCreateConversation`,t,a);const o=e.getOrCreateConversation(t,a);return l(o),()=>{globalThis.apirtcReactLibLogLevel.isDebugEnabled&&console.debug(`${u}|useEffect cleanup`,t,a),o.isJoined()?o.leave().then(()=>{}).catch(e=>{globalThis.apirtcReactLibLogLevel.isWarnEnabled&&console.warn(`${u}|useEffect conversation.leave()`,e)}).finally(()=>{o.destroy()}):o.destroy(),l(void 0),b(!1)}}},[e,t,a]),o(()=>{if(c&&r){globalThis.apirtcReactLibLogLevel.isDebugEnabled&&console.debug(`${u}|useEffect`,c,r,s);const e=c,t=r;return t&&(L(!0),e.join(s).then(()=>{globalThis.apirtcReactLibLogLevel.isInfoEnabled&&console.info(`${u}|joined`,e),b(!0)}).catch(t=>{globalThis.apirtcReactLibLogLevel.isWarnEnabled&&console.warn(`${u}|useEffect conversation.join() error`,e,s,t)}).finally(()=>{L(!1)})),()=>{globalThis.apirtcReactLibLogLevel.isDebugEnabled&&console.debug(`${u}|useEffect cleanup`,e,t),e.isJoined()&&e.leave().then(()=>{b(!1)}).catch(t=>{globalThis.apirtcReactLibLogLevel.isWarnEnabled&&console.warn(`${u}|useEffect conversation.leave() error`,e,t)})}}},[c,a,r,s]),{conversation:c,joining:g,joined:d,join:p,leave:v}}const L="useConversationContacts";function p(e,t,i){const[a,r]=n([]);return o(()=>{if(e){const o=o=>{globalThis.apirtcReactLibLogLevel.isDebugEnabled&&console.debug(`${L}|on:contactJoined:`,e.getName(),o),r(e=>[...e,o]),t&&t(o)};e.on("contactJoined",o);const n=t=>{globalThis.apirtcReactLibLogLevel.isDebugEnabled&&console.debug(`${L}|on:contactLeft:`,e.getName(),t),r(e=>e.filter(e=>e!==t)),i&&i(t)};return e.on("contactLeft",n),()=>{e.removeListener("contactJoined",o),e.removeListener("contactLeft",n),r(new Array)}}},[e,t,i]),{contacts:a}}const v="useConversationMessages";function f(e){const[t,a]=n([]);o(()=>{if(e){const t=t=>{globalThis.apirtcReactLibLogLevel.isDebugEnabled&&console.debug(`${v}|on:message:`,e.getName(),t),a(e=>[...e,t])};return e.on("message",t),()=>{e.removeListener("message",t),a(new Array)}}},[e]);return{messages:t,sendMessage:i((t,o)=>new Promise((n,i)=>{null==e||e.sendMessage(t).then(i=>{globalThis.apirtcReactLibLogLevel.isInfoEnabled&&console.info(`${v}|sentMessage`,e.getName(),i,t),a(e=>[...e,{content:t,sender:o,time:new Date}]),n()}).catch(e=>{globalThis.apirtcReactLibLogLevel.isWarnEnabled&&console.warn(`${v}|sendMessage error`,e),i(e)})}),[e])}}const h="useConversationModeration";function m(e,t,i){const[a,r]=n(new Set);return o(()=>{if(globalThis.apirtcReactLibLogLevel.isDebugEnabled&&console.debug(`${h}|useEffect conversation`,e),e){const o=e=>{globalThis.apirtcReactLibLogLevel.isInfoEnabled&&console.info(`${h}|on:contactJoinedWaitingRoom`,e),r(t=>new Set(t.add(e)))},n=e=>{globalThis.apirtcReactLibLogLevel.isInfoEnabled&&console.info(`${h}|on:contactLeftWaitingRoom`,e),r(t=>(t.delete(e),new Set(t)))},a=e=>{globalThis.apirtcReactLibLogLevel.isInfoEnabled&&console.info(`${h}|on:participantEjected`,e),!0===e.self?(globalThis.apirtcReactLibLogLevel.isInfoEnabled&&console.info(`${h}|Self participant was ejected`),i&&i()):t&&t(e.contact)};return e.on("contactJoinedWaitingRoom",o).on("contactLeftWaitingRoom",n).on("participantEjected",a),()=>{globalThis.apirtcReactLibLogLevel.isDebugEnabled&&console.debug(`${h}|conversation clear`,e),e.removeListener("contactJoinedWaitingRoom",o).removeListener("contactLeftWaitingRoom",n).removeListener("participantEjected",a),r(new Set)}}},[e,t,i]),{candidates:a}}function E(e){return null!=e}const T=[],$="useConversationStreams";function R(e,a=T,r){globalThis.apirtcReactLibLogLevel.isDebugEnabled&&console.debug(`${$}|hook render|${null==e?void 0:e.getName()}`,a.map(e=>null==e?void 0:e.options));const s=t([]),[c,l]=n(new Array),[d,b]=n(new Array),u=i((t,o)=>new Promise((n,i)=>{e&&(globalThis.apirtcReactLibLogLevel.isDebugEnabled&&console.debug(`${$}|publish|${e.getName()}`,t,o),e.publish(t,o).then(t=>{globalThis.apirtcReactLibLogLevel.isInfoEnabled&&console.info(`${$}|published|${e.getName()}`,t),l(e=>[...e,t]),n(t)}).catch(e=>{i(e)}))}),[e]),g=i((t,o)=>new Promise((n,i)=>{e&&(globalThis.apirtcReactLibLogLevel.isDebugEnabled&&console.debug(`${$}|replacePublishedStream|${e.getName()}|${t.getId()} -> ${o.getId()}`),e.replacePublishedStream(t,o).then(o=>{globalThis.apirtcReactLibLogLevel.isInfoEnabled&&console.info(`${$}|stream replaced|${e.getName()}`,t,o),l(e=>{const n=e.indexOf(t);return n>=0&&e.splice(n,1,o),Array.from(e)}),n(o)}).catch(e=>{i(e)}))}),[e]),L=i(t=>{e&&(globalThis.apirtcReactLibLogLevel.isDebugEnabled&&console.debug(`${$}|unpublish|${e.getName()}`,t.getId(),t),e.unpublish(t),l(e=>e.filter(e=>e!==t)))},[e]),p=i(()=>{const t=Math.max(s.current.length,a.length);globalThis.apirtcReactLibLogLevel.isDebugEnabled&&console.debug(`${$}|doHandlePublication`,a,JSON.stringify(s.current.map(e=>null==e?void 0:e.stream.getId())),JSON.stringify(a.map(e=>null==e?void 0:e.stream.getId())),t);const o=[...s.current],n=a.map(e=>e&&e.options?{stream:e.stream,options:Object.assign({},e.options)}:e);s.current.length=0,s.current.push(...n);const i=new Set(a.filter(E).map(e=>e.stream)),c=(e,t)=>{u(t.stream,t.options).catch(t=>{s.current.splice(e,1,null),r?r(t):globalThis.apirtcReactLibLogLevel.isWarnEnabled&&console.warn(`${$}|publish|error`,t)})};for(let n=0;n<t;n++){const t=o[n],l=a[n];if(t&&l){const o=()=>{L(t.stream),c(n,l)};t.stream===l.stream?JSON.stringify(t.options)!==JSON.stringify(l.options)&&o():i.has(t.stream)?e&&!e.isPublishedStream(l.stream)&&c(n,l):e&&!e.isPublishedStream(l.stream)?JSON.stringify(t.options)===JSON.stringify(l.options)?g(t.stream,l.stream).catch(e=>{s.current.splice(n,1,null),r?r(e):globalThis.apirtcReactLibLogLevel.isWarnEnabled&&console.warn(`${$}|replacePublishedStream|error`,e)}):o():L(t.stream)}else t&&!l?i.has(t.stream)||L(t.stream):!t&&l&&e&&!e.isPublishedStream(l.stream)&&c(n,l)}},[e,a,u,L,g,r]),v=i(()=>{e&&l(t=>(t.forEach(t=>{globalThis.apirtcReactLibLogLevel.isDebugEnabled&&console.debug(`${$}|unpublish|${e.getName()}`,t),e.unpublish(t)}),[])),s.current.length=0},[e]),f=i(()=>{e&&b(t=>(t.forEach(t=>{globalThis.apirtcReactLibLogLevel.isDebugEnabled&&console.debug(`${$}|unsubscribeToStream|${e.getName()}`,t),e.unsubscribeToStream(t.getId())}),[]))},[e]),h=i(()=>{v(),f()},[v,f]);return o(()=>{if(e){s.current.length=0;const t=t=>{globalThis.apirtcReactLibLogLevel.isInfoEnabled&&console.info(`${$}|on_streamAdded|${e.getName()}`,t),b(e=>[...e,t])},o=t=>{globalThis.apirtcReactLibLogLevel.isInfoEnabled&&console.info(`${$}|on_streamRemoved|${e.getName()}`,t),b(e=>e.filter(e=>e!==t))},n=t=>{globalThis.apirtcReactLibLogLevel.isDebugEnabled&&console.debug(`${$}|on_streamListChanged|${e.getName()}`,t);const o=String(t.streamId);!0===t.isRemote&&("added"===t.listEventType?e.subscribeToStream(o):"removed"===t.listEventType&&e.unsubscribeToStream(o))};return e.on("streamAdded",t),e.on("streamRemoved",o),e.on("streamListChanged",n),()=>{e.removeListener("streamListChanged",n),e.removeListener("streamRemoved",o),e.removeListener("streamAdded",t),h()}}},[e,h]),o(()=>{if(e){globalThis.apirtcReactLibLogLevel.isDebugEnabled&&console.debug(`${$}|useEffect doHandlePublication|${e.getName()}`,a);const t=()=>{globalThis.apirtcReactLibLogLevel.isInfoEnabled&&console.info(`${$}|on_joined|${e.getName()}`),p()},o=()=>{globalThis.apirtcReactLibLogLevel.isInfoEnabled&&console.info(`${$}|on_left|${e.getName()}`),h()};return e.on("joined",t),e.on("left",o),e.isJoined()&&p(),()=>{e.removeListener("joined",t),e.removeListener("left",o)}}},[e,a,p,h]),{publishedStreams:c,subscribedStreams:d,publish:u,unpublish:L,replacePublishedStream:g,unpublishAll:v,unsubscribeAll:f}}const S="usePresence";function y(e,i){const a=t(new Set),r=t(new Map),[s,c]=n(new Map);o(()=>{if(e){const e=a.current,t=r.current;return()=>{e.clear(),t.clear(),c(new Map)}}},[e]);const l=e=>{var t;const o=null!==(t=r.current.get(e))&&void 0!==t?t:new Set;return r.current.has(e)||r.current.set(e,o),o};return o(()=>{if(globalThis.apirtcReactLibLogLevel.isDebugEnabled&&console.debug(`${S}|useEffect session, groups`,i),e){const t=e,o=new Set(i);o.forEach(e=>{a.current.has(e)||(globalThis.apirtcReactLibLogLevel.isInfoEnabled&&console.info(`${S}|subscribeToGroup`,e),a.current.add(e),t.subscribeToGroup(e))});let n=!1;if(a.current.forEach(e=>{o.has(e)||(globalThis.apirtcReactLibLogLevel.isInfoEnabled&&console.info(`${S}|unsubscribeToGroup`,e),t.unsubscribeToGroup(e),a.current.delete(e),r.current.delete(e),n=!0)}),n&&c(new Map(r.current)),i.length>0){const e=e=>{globalThis.apirtcReactLibLogLevel.isDebugEnabled&&console.debug(`${S}|contactListUpdate`,e);let t=!1;for(const n of Object.keys(e.joinedGroup))if(o.has(n)){const o=l(n);for(const i of e.joinedGroup[n])o.add(i),t=!0}for(const n of Object.keys(e.leftGroup))if(o.has(n)){const o=l(n);for(const i of e.leftGroup[n])o.delete(i),t=!0,0===o.size&&r.current.delete(n)}for(const o of e.userDataChanged)for(const e of r.current.values())if(e.has(o)){t=!0;break}t&&c(new Map(r.current))};return t.on("contactListUpdate",e),()=>{t.removeListener("contactListUpdate",e)}}}},[e,i]),{contactsByGroup:s}}const w="useSession";function I(e,t,i){const[a,s]=n(),[c,l]=n(!1);o(()=>{if(globalThis.apirtcReactLibLogLevel.isDebugEnabled&&console.debug(`${w}|useEffect credentials, options`,e,t),e)return d(e,t).catch(e=>{console.error(`${w}|connection failed`,e),s(void 0),i?i(e):globalThis.apirtcReactLibLogLevel.isWarnEnabled&&console.warn(`${w}|connect|error`,e)}),()=>{s(void 0),l(!1)}},[e,t,i]),o(()=>{if(globalThis.apirtcReactLibLogLevel.isDebugEnabled&&console.debug(`${w}|useEffect session`,a),a){const e=a;return()=>{globalThis.apirtcReactLibLogLevel.isDebugEnabled&&console.debug(`${w}|useEffect session cleanup`,e),e.disconnect().then(()=>{globalThis.apirtcReactLibLogLevel.isInfoEnabled&&console.info(`${w}|disconnected`,e)}).catch(e=>{console.error(`${w}|disconnect`,e)})}}},[a]);const d=(e,t)=>new Promise((o,n)=>{const i=t||{cloudUrl:"https://cloud.apirtc.com"};let a;if("object"==typeof(c=e)&&"username"in c)i.password=e.password,a=new r({uri:`apirtc:${e.username}`});else if(function(e){return"object"==typeof e&&"apiKey"in e}(e))a=new r({uri:`apiKey:${e.apiKey}`});else{if(!function(e){return"object"==typeof e&&"token"in e}(e))return void n("credentials not recognized");a=new r({uri:`token:${e.token}`})}var c;l(!0),a.register(i).then(e=>{globalThis.apirtcReactLibLogLevel.isInfoEnabled&&console.info(`${w}|connected`,e),s(e),o()}).catch(e=>{n(e)}).finally(()=>{l(!1)})});return{session:a,connecting:c,connect:d,disconnect:()=>{s(void 0)}}}const D="useStreamApplyAudioProcessor";function N(e,i,a){const r=t(),[s,c]=n(e),[l,d]=n(!1),[b,u]=n();return o(()=>()=>{r.current=void 0},[e]),o(()=>{globalThis.apirtcReactLibLogLevel.isDebugEnabled&&console.debug(`${D}|useEffect`,e,i),c(e);const t=r.current||(null==e?void 0:e.audioAppliedFilter)||"none";return e&&i!==t&&(d(!0),e.applyAudioProcessor(i).then(e=>{c(e),r.current=i,u(void 0)}).catch(t=>{u(t),a?a(t):globalThis.apirtcReactLibLogLevel.isWarnEnabled&&console.warn(`${D}|useEffect`,e,i,t)}).finally(()=>{d(!1)})),()=>{u(void 0)}},[e,i,a]),{stream:s,applying:l,applied:r.current||(null==e?void 0:e.audioAppliedFilter)||"none",error:b}}const j="useStreamApplyVideoProcessor";function A(e,i,a,r){const s=t(),[c,l]=n(e),[d,b]=n(!1),[u,g]=n();return o(()=>()=>{s.current=void 0},[e]),o(()=>{globalThis.apirtcReactLibLogLevel.isDebugEnabled&&console.debug(`${j}|useEffect`,e,i,a),l(e);const t=s.current||(null==e?void 0:e.videoAppliedFilter)||"none";return e&&i!==t&&(b(!0),e.applyVideoProcessor(i,a).then(e=>{l(e),s.current=i,g(void 0)}).catch(t=>{g(t),r?r(t):globalThis.apirtcReactLibLogLevel.isWarnEnabled&&console.warn(`${j}|useEffect`,e,i,a,t)}).finally(()=>{b(!1)})),()=>{g(void 0)}},[e,i,a,r]),{stream:c,applying:d,applied:s.current||(null==e?void 0:e.videoAppliedFilter)||"none",error:u}}const W="useUserMediaDevices",P=e=>{try{const t=localStorage.getItem(e),o=t?JSON.parse(t):null;return o?new s(o.id,o.type,o.label):void 0}catch(e){return void console.warn(`${W}|getMediaDeviceFromLocalStorage`,e)}},J=(e,t)=>{try{localStorage.setItem(e,t)}catch(e){}};function O(e,t){const i=a(()=>t?`${t}.audioIn`:void 0,[t]),r=a(()=>t?`${t}.audioOut`:void 0,[t]),s=a(()=>t?`${t}.videoIn`:void 0,[t]),[c,l]=n(()=>i?P(i):void 0),[d,b]=n(()=>r?P(r):void 0),[u,g]=n(()=>s?P(s):void 0),[L,p]=n({audioinput:c?{[c.getId()]:c}:{},audiooutput:d?{[d.getId()]:d}:{},videoinput:u?{[u.getId()]:u}:{}});return o(()=>{if(e){const t=e.getUserAgent(),o=()=>{const e=t.getUserMediaDevices();globalThis.apirtcReactLibLogLevel.isDebugEnabled&&console.debug(`${W}|mediaDeviceChanged`,e),p(e),l(t=>t?e.audioinput[t.getId()]:void 0),b(t=>t?e.audiooutput[t.getId()]:void 0),g(t=>t?e.videoinput[t.getId()]:void 0)};return t.on("mediaDeviceChanged",o),()=>{t.removeListener("mediaDeviceChanged",o)}}},[e]),o(()=>{c&&i&&(globalThis.apirtcReactLibLogLevel.isDebugEnabled&&console.debug(`${W}|Storing audioIn`,c),J(i,JSON.stringify({id:c.getId(),type:c.getType(),label:c.getLabel()})))},[i,c]),o(()=>{d&&r&&(globalThis.apirtcReactLibLogLevel.isDebugEnabled&&console.debug(`${W}|Storing audioOut`,d),J(r,JSON.stringify({id:d.getId(),type:d.getType(),label:d.getLabel()})))},[r,d]),o(()=>{u&&s&&(globalThis.apirtcReactLibLogLevel.isDebugEnabled&&console.debug(`${W}|Storing videoIn`,u),J(s,JSON.stringify({id:u.getId(),type:u.getType(),label:u.getLabel()})))},[s,u]),{userMediaDevices:L,selectedAudioIn:c,selectedAudioInId:null==c?void 0:c.getId(),setSelectedAudioIn:l,selectedAudioOut:d,selectedAudioOutId:null==d?void 0:d.getId(),setSelectedAudioOut:b,selectedVideoIn:u,selectedVideoInId:null==u?void 0:u.getId(),setSelectedVideoIn:g}}function C(e,t,o,n){return new(o||(o=Promise))(function(i,a){function r(e){try{c(n.next(e))}catch(e){a(e)}}function s(e){try{c(n.throw(e))}catch(e){a(e)}}function c(e){var t;e.done?i(e.value):(t=e.value,t instanceof o?t:new o(function(e){e(t)})).then(r,s)}c((n=n.apply(e,t||[])).next())})}"function"==typeof SuppressedError&&SuppressedError;const M="useTranscriptService";function k(e,t){const[a,r]=n(null),[s,c]=n(!1),[l,d]=n([]);o(()=>{if(a)return;let e=!0;return import("@apirtc/ia").then(({TranscriptService:t})=>{if(!e)return void(globalThis.apirtcReactLibLogLevel.isWarnEnabled&&console.warn(`${M}|instanciation aborted - component unmounted`));const o=new t;r(o)}),()=>{e=!1}},[a]),o(()=>{if(!a)return void(globalThis.apirtcReactLibLogLevel.isWarnEnabled&&console.warn(`${M}|useEffect transcript listener skipped - transcriptService not ready`));const e=e=>{const{transcript:t}=e;globalThis.apirtcReactLibLogLevel.isDebugEnabled&&console.debug(`${M}|onTranscript`,t),d(e=>[...e,t])};return a.addEventListener("transcript",e),()=>{a.removeEventListener("transcript",e),globalThis.apirtcReactLibLogLevel.isDebugEnabled&&console.debug(`${M}|useEffect cleanup`,"onTranscript")}},[a]);const b=i(()=>C(this,void 0,void 0,function*(){globalThis.apirtcReactLibLogLevel.isDebugEnabled&&console.debug(`${M}|startTranscriptService transcriptService, hasStarted`,a,s),a?s?globalThis.apirtcReactLibLogLevel.isWarnEnabled&&console.warn(`${M}|startTranscriptService aborted - already started`):e?yield a.start(e).then(()=>{console.log(`${M}|startTranscriptService - started`),c(!0)}).catch(e=>{console.error(`${M}|startTranscriptService - failed`,e)}):console.warn(`${M}|startTranscriptService aborted - conversation not provided`):globalThis.apirtcReactLibLogLevel.isWarnEnabled&&console.warn(`${M}|startTranscriptService aborted - transcriptService not initialized`)}),[a,s,e]),u=i(()=>C(this,void 0,void 0,function*(){a?e?yield a.stop(e).then(()=>{console.log(`${M}|stopTranscriptService - stopped`),c(!1)}).catch(e=>{console.error(`${M}|stopTranscriptService - failed`,e)}):console.warn(`${M}|stopTranscriptService aborted - conversation not provided`):globalThis.apirtcReactLibLogLevel.isWarnEnabled&&console.warn(`${M}|stopTranscriptService aborted - transcriptService not initialized`)}),[a,e]);return o(()=>{globalThis.apirtcReactLibLogLevel.isDebugEnabled&&console.debug(`${M}|useEffect autoStartTranscriptService autoStart, conversation`,t,e),t?e?b():globalThis.apirtcReactLibLogLevel.isWarnEnabled&&console.warn(`${M}|useEffect - auto start transcription not possible if conversation not provided`):globalThis.apirtcReactLibLogLevel.isWarnEnabled&&console.warn(`${M}|useEffect autoStart skipped - autoStart=false`)},[t,e,b]),{transcriptService:a,hasStarted:s,transcripts:l,startTranscriptService:b,stopTranscriptService:u}}const G={level:"info",isDebugEnabled:!1,isInfoEnabled:!0,isWarnEnabled:!0};function U(e){switch(e){case"debug":globalThis.apirtcReactLibLogLevel={level:"debug",isDebugEnabled:!0,isInfoEnabled:!0,isWarnEnabled:!0};break;case"info":default:globalThis.apirtcReactLibLogLevel=G;break;case"warn":globalThis.apirtcReactLibLogLevel={level:"warn",isDebugEnabled:!1,isInfoEnabled:!1,isWarnEnabled:!0};break;case"error":globalThis.apirtcReactLibLogLevel={level:"error",isDebugEnabled:!1,isInfoEnabled:!1,isWarnEnabled:!1}}return globalThis.apirtcReactLibLogLevel}globalThis.apirtcReactLibLogLevel=G,globalThis.setApirtcReactLibLogLevel=U;export{c as VideoStream,U as setLogLevel,b as useCameraStream,g as useConversation,p as useConversationContacts,f as useConversationMessages,m as useConversationModeration,R as useConversationStreams,y as usePresence,I as useSession,N as useStreamApplyAudioProcessor,A as useStreamApplyVideoProcessor,k as useTranscriptService,O as useUserMediaDevices};
2
2
  //# sourceMappingURL=index.js.map