@elevenlabs/react 0.4.2 → 0.4.5
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.d.ts +6 -1
- package/dist/lib.cjs +1 -1
- package/dist/lib.cjs.map +1 -1
- package/dist/lib.modern.js +1 -1
- package/dist/lib.modern.js.map +1 -1
- package/dist/lib.module.js +1 -1
- package/dist/lib.module.js.map +1 -1
- package/dist/lib.umd.js +1 -1
- package/dist/lib.umd.js.map +1 -1
- package/dist/version.d.ts +1 -1
- package/package.json +2 -2
package/dist/index.d.ts
CHANGED
|
@@ -1,7 +1,12 @@
|
|
|
1
1
|
import { SessionConfig, Callbacks, Status, ClientToolsConfig, InputConfig } from "@elevenlabs/client";
|
|
2
|
+
export type Location = "us" | "global" | "eu-residency" | "in-residency";
|
|
3
|
+
export declare function parseLocation(location?: string): Location;
|
|
4
|
+
export declare function getOriginForLocation(location: Location): string;
|
|
2
5
|
export type { Role, Mode, Status, SessionConfig, DisconnectionDetails, Language, } from "@elevenlabs/client";
|
|
3
6
|
export { postOverallFeedback } from "@elevenlabs/client";
|
|
4
|
-
export type HookOptions = Partial<SessionConfig & HookCallbacks & ClientToolsConfig & InputConfig
|
|
7
|
+
export type HookOptions = Partial<SessionConfig & HookCallbacks & ClientToolsConfig & InputConfig & {
|
|
8
|
+
serverLocation?: Location | string;
|
|
9
|
+
}>;
|
|
5
10
|
export type ControlledState = {
|
|
6
11
|
micMuted?: boolean;
|
|
7
12
|
volume?: number;
|
package/dist/lib.cjs
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
var
|
|
1
|
+
var n=require("react"),e=require("@elevenlabs/client");function r(){return r=Object.assign?Object.assign.bind():function(n){for(var e=1;e<arguments.length;e++){var r=arguments[e];for(var t in r)({}).hasOwnProperty.call(r,t)&&(n[t]=r[t])}return n},r.apply(null,arguments)}var t=["micMuted","volume","serverLocation"];function u(n){switch(void 0===n&&(n="us"),n){case"eu-residency":case"in-residency":case"us":case"global":return n;default:return console.warn("[ConversationalAI] Invalid server-location: "+n+'. Defaulting to "us"'),"us"}}function l(n){return{us:"wss://api.elevenlabs.io","eu-residency":"wss://api.eu.residency.elevenlabs.io","in-residency":"wss://api.in.residency.elevenlabs.io",global:"wss://api.elevenlabs.io"}[n]}Object.defineProperty(exports,"postOverallFeedback",{enumerable:!0,get:function(){return e.postOverallFeedback}}),exports.getOriginForLocation=l,exports.parseLocation=u,exports.useConversation=function(o){void 0===o&&(o={});var i=o.micMuted,s=o.volume,c=o.serverLocation,a=function(n,e){if(null==n)return{};var r={};for(var t in n)if({}.hasOwnProperty.call(n,t)){if(-1!==e.indexOf(t))continue;r[t]=n[t]}return r}(o,t),d=n.useRef(null),v=n.useRef(null),f=n.useState("disconnected"),g=f[0],p=f[1],m=n.useState(!1),b=m[0],y=m[1],h=n.useState("listening"),C=h[0],M=h[1];return n.useEffect(function(){var n;void 0!==i&&(null==d||null==(n=d.current)||n.setMicMuted(i))},[i]),n.useEffect(function(){var n;void 0!==s&&(null==d||null==(n=d.current)||n.setVolume({volume:s}))},[s]),n.useEffect(function(){return function(){var n;null==(n=d.current)||n.endSession()}},[]),{startSession:function(n){try{var t,o,f=function(t){return o?t:function(t,o){try{var f=(I=l(u((null==n?void 0:n.serverLocation)||c)),v.current=e.Conversation.startSession(r({},null!=a?a:{},null!=n?n:{},{origin:I,overrides:r({},null!=(g=null==a?void 0:a.overrides)?g:{},null!=(m=null==n?void 0:n.overrides)?m:{},{client:r({},null!=(b=null==a||null==(h=a.overrides)?void 0:h.client)?b:{},null!=(C=null==n||null==(O=n.overrides)?void 0:O.client)?C:{},{source:(null==n||null==(S=n.overrides)||null==(S=S.client)?void 0:S.source)||(null==a||null==(F=a.overrides)||null==(F=F.client)?void 0:F.source)||"react_sdk",version:(null==n||null==(P=n.overrides)||null==(P=P.client)?void 0:P.version)||(null==a||null==(D=a.overrides)||null==(D=D.client)?void 0:D.version)||"0.4.5"})}),onConnect:(null==n?void 0:n.onConnect)||(null==a?void 0:a.onConnect),onDisconnect:(null==n?void 0:n.onDisconnect)||(null==a?void 0:a.onDisconnect),onError:(null==n?void 0:n.onError)||(null==a?void 0:a.onError),onMessage:(null==n?void 0:n.onMessage)||(null==a?void 0:a.onMessage),onAudio:(null==n?void 0:n.onAudio)||(null==a?void 0:a.onAudio),onDebug:(null==n?void 0:n.onDebug)||(null==a?void 0:a.onDebug),onUnhandledClientToolCall:(null==n?void 0:n.onUnhandledClientToolCall)||(null==a?void 0:a.onUnhandledClientToolCall),onModeChange:function(n){M(n.mode)},onStatusChange:function(n){p(n.status)},onCanSendFeedbackChange:function(n){y(n.canSendFeedback)}})),Promise.resolve(v.current).then(function(n){return d.current=n,void 0!==i&&d.current.setMicMuted(i),void 0!==s&&d.current.setVolume({volume:s}),d.current.getId()}))}catch(n){return o(!0,n)}var g,m,b,h,C,O,S,F,P,D,I;return f&&f.then?f.then(o.bind(null,!1),o.bind(null,!0)):o(!1,f)}(0,function(n,e){if(v.current=null,n)throw e;return e})};if(null!=(t=d.current)&&t.isOpen())return Promise.resolve(d.current.getId());var g=function(){if(v.current)return Promise.resolve(v.current).then(function(n){var e=n.getId();return o=1,e})}();return Promise.resolve(g&&g.then?g.then(f):f(g))}catch(n){return Promise.reject(n)}},endSession:function(){try{var n=d.current;return d.current=null,Promise.resolve(null==n?void 0:n.endSession()).then(function(){})}catch(n){return Promise.reject(n)}},setVolume:function(n){var e;null==(e=d.current)||e.setVolume({volume:n.volume})},getInputByteFrequencyData:function(){var n;return null==(n=d.current)?void 0:n.getInputByteFrequencyData()},getOutputByteFrequencyData:function(){var n;return null==(n=d.current)?void 0:n.getOutputByteFrequencyData()},getInputVolume:function(){var n,e;return null!=(n=null==(e=d.current)?void 0:e.getInputVolume())?n:0},getOutputVolume:function(){var n,e;return null!=(n=null==(e=d.current)?void 0:e.getOutputVolume())?n:0},sendFeedback:function(n){var e;null==(e=d.current)||e.sendFeedback(n)},getId:function(){var n;return null==(n=d.current)?void 0:n.getId()},sendContextualUpdate:function(n){var e;null==(e=d.current)||e.sendContextualUpdate(n)},sendUserMessage:function(n){var e;null==(e=d.current)||e.sendUserMessage(n)},sendUserActivity:function(){var n;null==(n=d.current)||n.sendUserActivity()},sendMCPToolApprovalResult:function(n,e){var r;null==(r=d.current)||r.sendMCPToolApprovalResult(n,e)},status:g,canSendFeedback:b,micMuted:i,isSpeaking:"speaking"===C}};
|
|
2
2
|
//# sourceMappingURL=lib.cjs.map
|
package/dist/lib.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lib.cjs","sources":["../src/version.ts","../src/index.ts"],"sourcesContent":["// This file is auto-generated during build\nexport const PACKAGE_VERSION = \"0.4.2\";\n","import { useEffect, useRef, useState } from \"react\";\nimport {\n Conversation,\n Mode,\n SessionConfig,\n Callbacks,\n Options,\n Status,\n ClientToolsConfig,\n InputConfig,\n} from \"@elevenlabs/client\";\n\nimport { PACKAGE_VERSION } from \"./version\";\n\nexport type {\n Role,\n Mode,\n Status,\n SessionConfig,\n DisconnectionDetails,\n Language,\n} from \"@elevenlabs/client\";\nexport { postOverallFeedback } from \"@elevenlabs/client\";\n\nexport type HookOptions = Partial<\n SessionConfig & HookCallbacks & ClientToolsConfig & InputConfig\n>;\nexport type ControlledState = {\n micMuted?: boolean;\n volume?: number;\n};\nexport type HookCallbacks = Pick<\n Callbacks,\n | \"onConnect\"\n | \"onDisconnect\"\n | \"onError\"\n | \"onMessage\"\n | \"onAudio\"\n | \"onDebug\"\n | \"onUnhandledClientToolCall\"\n>;\n\nexport function useConversation<T extends HookOptions & ControlledState>(\n props: T = {} as T\n) {\n const { micMuted, volume, ...defaultOptions } = props;\n const conversationRef = useRef<Conversation | null>(null);\n const lockRef = useRef<Promise<Conversation> | null>(null);\n const [status, setStatus] = useState<Status>(\"disconnected\");\n const [canSendFeedback, setCanSendFeedback] = useState(false);\n const [mode, setMode] = useState<Mode>(\"listening\");\n\n useEffect(() => {\n if (micMuted !== undefined) {\n conversationRef?.current?.setMicMuted(micMuted);\n }\n }, [micMuted]);\n\n useEffect(() => {\n if (volume !== undefined) {\n conversationRef?.current?.setVolume({ volume });\n }\n }, [volume]);\n\n useEffect(() => {\n return () => {\n conversationRef.current?.endSession();\n };\n }, []);\n\n return {\n startSession: (async (options?: HookOptions) => {\n if (conversationRef.current?.isOpen()) {\n return conversationRef.current.getId();\n }\n\n if (lockRef.current) {\n const conversation = await lockRef.current;\n return conversation.getId();\n }\n\n try {\n lockRef.current = Conversation.startSession({\n ...(defaultOptions ?? {}),\n ...(options ?? {}),\n overrides: {\n ...(defaultOptions?.overrides ?? {}),\n ...(options?.overrides ?? {}),\n client: {\n ...(defaultOptions?.overrides?.client ?? {}),\n ...(options?.overrides?.client ?? {}),\n source:\n options?.overrides?.client?.source ||\n defaultOptions?.overrides?.client?.source ||\n \"react_sdk\",\n version:\n options?.overrides?.client?.version ||\n defaultOptions?.overrides?.client?.version ||\n PACKAGE_VERSION,\n },\n },\n onModeChange: ({ mode }) => {\n setMode(mode);\n },\n onStatusChange: ({ status }) => {\n setStatus(status);\n },\n onCanSendFeedbackChange: ({ canSendFeedback }) => {\n setCanSendFeedback(canSendFeedback);\n },\n } as Options);\n\n conversationRef.current = await lockRef.current;\n // Persist controlled state between sessions\n if (micMuted !== undefined) {\n conversationRef.current.setMicMuted(micMuted);\n }\n if (volume !== undefined) {\n conversationRef.current.setVolume({ volume });\n }\n\n return conversationRef.current.getId();\n } finally {\n lockRef.current = null;\n }\n }) as T extends SessionConfig\n ? (options?: HookOptions) => Promise<string>\n : (options: SessionConfig & HookOptions) => Promise<string>,\n endSession: async () => {\n const conversation = conversationRef.current;\n conversationRef.current = null;\n await conversation?.endSession();\n },\n setVolume: ({ volume }: { volume: number }) => {\n conversationRef.current?.setVolume({ volume });\n },\n getInputByteFrequencyData: () => {\n return conversationRef.current?.getInputByteFrequencyData();\n },\n getOutputByteFrequencyData: () => {\n return conversationRef.current?.getOutputByteFrequencyData();\n },\n getInputVolume: () => {\n return conversationRef.current?.getInputVolume() ?? 0;\n },\n getOutputVolume: () => {\n return conversationRef.current?.getOutputVolume() ?? 0;\n },\n sendFeedback: (like: boolean) => {\n conversationRef.current?.sendFeedback(like);\n },\n getId: () => {\n return conversationRef.current?.getId();\n },\n sendContextualUpdate: (text: string) => {\n conversationRef.current?.sendContextualUpdate(text);\n },\n sendUserMessage: (text: string) => {\n conversationRef.current?.sendUserMessage(text);\n },\n sendUserActivity: () => {\n conversationRef.current?.sendUserActivity();\n },\n sendMCPToolApprovalResult: (toolCallId: string, isApproved: boolean) => {\n conversationRef.current?.sendMCPToolApprovalResult(\n toolCallId,\n isApproved\n );\n },\n status,\n canSendFeedback,\n micMuted,\n isSpeaking: mode === \"speaking\",\n };\n}\n\n// const con = useConversation({agentId: \"\"})\n"],"names":["props","micMuted","volume","defaultOptions","_objectWithoutPropertiesLoose","_excluded","conversationRef","useRef","lockRef","_useState","useState","status","setStatus","_useState2","canSendFeedback","setCanSendFeedback","_useState3","mode","setMode","useEffect","_conversationRef$curr","undefined","current","setMicMuted","_conversationRef$curr2","setVolume","_conversationRef$curr3","endSession","startSession","options","_conversationRef$curr4","_exit","_temp2","_result","Conversation","_extends","overrides","_defaultOptions$overr","_options$overrides","client","_defaultOptions$overr2","_defaultOptions$overr3","_options$overrides$cl","_options$overrides2","source","_options$overrides3","_defaultOptions$overr4","version","_options$overrides4","_defaultOptions$overr5","onModeChange","_ref","onStatusChange","_ref2","onCanSendFeedbackChange","_ref3","Promise","resolve","then","_lockRef$current","getId","_finallyRethrows","_wasThrown","_result2","isOpen","_temp","conversation","_conversation$getId","e","reject","_ref4","_conversationRef$curr5","getInputByteFrequencyData","_conversationRef$curr6","getOutputByteFrequencyData","_conversationRef$curr7","getInputVolume","_conversationRef$curr8","_conversationRef$curr9","getOutputVolume","_conversationRef$curr0","_conversationRef$curr1","sendFeedback","like","_conversationRef$curr10","_conversationRef$curr11","sendContextualUpdate","text","_conversationRef$curr12","sendUserMessage","_conversationRef$curr13","sendUserActivity","_conversationRef$curr14","sendMCPToolApprovalResult","toolCallId","isApproved","_conversationRef$curr15","isSpeaking"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"lib.cjs","sources":["../src/version.ts","../src/index.ts"],"sourcesContent":["// This file is auto-generated during build\nexport const PACKAGE_VERSION = \"0.4.5\";\n","import { useEffect, useRef, useState } from \"react\";\nimport {\n Conversation,\n Mode,\n SessionConfig,\n Callbacks,\n Options,\n Status,\n ClientToolsConfig,\n InputConfig,\n} from \"@elevenlabs/client\";\n\nimport { PACKAGE_VERSION } from \"./version\";\n\nexport type Location = \"us\" | \"global\" | \"eu-residency\" | \"in-residency\";\n\nexport function parseLocation(location: string = \"us\"): Location {\n switch (location) {\n case \"eu-residency\":\n case \"in-residency\":\n case \"us\":\n case \"global\":\n return location;\n default:\n console.warn(\n `[ConversationalAI] Invalid server-location: ${location}. Defaulting to \"us\"`\n );\n return \"us\";\n }\n}\n\nexport function getOriginForLocation(location: Location): string {\n const originMap: Record<Location, string> = {\n us: \"wss://api.elevenlabs.io\",\n \"eu-residency\": \"wss://api.eu.residency.elevenlabs.io\",\n \"in-residency\": \"wss://api.in.residency.elevenlabs.io\",\n global: \"wss://api.elevenlabs.io\",\n };\n\n return originMap[location];\n}\n\nexport type {\n Role,\n Mode,\n Status,\n SessionConfig,\n DisconnectionDetails,\n Language,\n} from \"@elevenlabs/client\";\nexport { postOverallFeedback } from \"@elevenlabs/client\";\n\nexport type HookOptions = Partial<\n SessionConfig &\n HookCallbacks &\n ClientToolsConfig &\n InputConfig & {\n serverLocation?: Location | string;\n }\n>;\nexport type ControlledState = {\n micMuted?: boolean;\n volume?: number;\n};\nexport type HookCallbacks = Pick<\n Callbacks,\n | \"onConnect\"\n | \"onDisconnect\"\n | \"onError\"\n | \"onMessage\"\n | \"onAudio\"\n | \"onDebug\"\n | \"onUnhandledClientToolCall\"\n>;\n\nexport function useConversation<T extends HookOptions & ControlledState>(\n props: T = {} as T\n) {\n const { micMuted, volume, serverLocation, ...defaultOptions } = props;\n const conversationRef = useRef<Conversation | null>(null);\n const lockRef = useRef<Promise<Conversation> | null>(null);\n const [status, setStatus] = useState<Status>(\"disconnected\");\n const [canSendFeedback, setCanSendFeedback] = useState(false);\n const [mode, setMode] = useState<Mode>(\"listening\");\n\n useEffect(() => {\n if (micMuted !== undefined) {\n conversationRef?.current?.setMicMuted(micMuted);\n }\n }, [micMuted]);\n\n useEffect(() => {\n if (volume !== undefined) {\n conversationRef?.current?.setVolume({ volume });\n }\n }, [volume]);\n\n useEffect(() => {\n return () => {\n conversationRef.current?.endSession();\n };\n }, []);\n\n return {\n startSession: (async (options?: HookOptions) => {\n if (conversationRef.current?.isOpen()) {\n return conversationRef.current.getId();\n }\n\n if (lockRef.current) {\n const conversation = await lockRef.current;\n return conversation.getId();\n }\n\n try {\n const resolvedServerLocation = parseLocation(\n options?.serverLocation || serverLocation\n );\n const origin = getOriginForLocation(resolvedServerLocation);\n\n lockRef.current = Conversation.startSession({\n ...(defaultOptions ?? {}),\n ...(options ?? {}),\n origin,\n overrides: {\n ...(defaultOptions?.overrides ?? {}),\n ...(options?.overrides ?? {}),\n client: {\n ...(defaultOptions?.overrides?.client ?? {}),\n ...(options?.overrides?.client ?? {}),\n source:\n options?.overrides?.client?.source ||\n defaultOptions?.overrides?.client?.source ||\n \"react_sdk\",\n version:\n options?.overrides?.client?.version ||\n defaultOptions?.overrides?.client?.version ||\n PACKAGE_VERSION,\n },\n },\n // Pass through user-provided callbacks\n onConnect: options?.onConnect || defaultOptions?.onConnect,\n onDisconnect: options?.onDisconnect || defaultOptions?.onDisconnect,\n onError: options?.onError || defaultOptions?.onError,\n onMessage: options?.onMessage || defaultOptions?.onMessage,\n onAudio: options?.onAudio || defaultOptions?.onAudio,\n onDebug: options?.onDebug || defaultOptions?.onDebug,\n onUnhandledClientToolCall:\n options?.onUnhandledClientToolCall ||\n defaultOptions?.onUnhandledClientToolCall,\n onModeChange: ({ mode }) => {\n setMode(mode);\n },\n onStatusChange: ({ status }) => {\n setStatus(status);\n },\n onCanSendFeedbackChange: ({ canSendFeedback }) => {\n setCanSendFeedback(canSendFeedback);\n },\n } as Options);\n\n conversationRef.current = await lockRef.current;\n // Persist controlled state between sessions\n if (micMuted !== undefined) {\n conversationRef.current.setMicMuted(micMuted);\n }\n if (volume !== undefined) {\n conversationRef.current.setVolume({ volume });\n }\n\n return conversationRef.current.getId();\n } finally {\n lockRef.current = null;\n }\n }) as T extends SessionConfig\n ? (options?: HookOptions) => Promise<string>\n : (options: SessionConfig & HookOptions) => Promise<string>,\n endSession: async () => {\n const conversation = conversationRef.current;\n conversationRef.current = null;\n await conversation?.endSession();\n },\n setVolume: ({ volume }: { volume: number }) => {\n conversationRef.current?.setVolume({ volume });\n },\n getInputByteFrequencyData: () => {\n return conversationRef.current?.getInputByteFrequencyData();\n },\n getOutputByteFrequencyData: () => {\n return conversationRef.current?.getOutputByteFrequencyData();\n },\n getInputVolume: () => {\n return conversationRef.current?.getInputVolume() ?? 0;\n },\n getOutputVolume: () => {\n return conversationRef.current?.getOutputVolume() ?? 0;\n },\n sendFeedback: (like: boolean) => {\n conversationRef.current?.sendFeedback(like);\n },\n getId: () => {\n return conversationRef.current?.getId();\n },\n sendContextualUpdate: (text: string) => {\n conversationRef.current?.sendContextualUpdate(text);\n },\n sendUserMessage: (text: string) => {\n conversationRef.current?.sendUserMessage(text);\n },\n sendUserActivity: () => {\n conversationRef.current?.sendUserActivity();\n },\n sendMCPToolApprovalResult: (toolCallId: string, isApproved: boolean) => {\n conversationRef.current?.sendMCPToolApprovalResult(\n toolCallId,\n isApproved\n );\n },\n status,\n canSendFeedback,\n micMuted,\n isSpeaking: mode === \"speaking\",\n };\n}\n\n// const con = useConversation({agentId: \"\"})\n"],"names":["parseLocation","location","console","warn","getOriginForLocation","us","global","props","micMuted","volume","serverLocation","defaultOptions","_objectWithoutPropertiesLoose","_excluded","conversationRef","useRef","lockRef","_useState","useState","status","setStatus","_useState2","canSendFeedback","setCanSendFeedback","_useState3","mode","setMode","useEffect","_conversationRef$curr","undefined","current","setMicMuted","_conversationRef$curr2","setVolume","_conversationRef$curr3","endSession","startSession","options","_conversationRef$curr4","_exit","_temp2","_result","origin","Conversation","_extends","overrides","_defaultOptions$overr","_options$overrides","client","_defaultOptions$overr2","_defaultOptions$overr3","_options$overrides$cl","_options$overrides2","source","_options$overrides3","_defaultOptions$overr4","version","_options$overrides4","_defaultOptions$overr5","onConnect","onDisconnect","onError","onMessage","onAudio","onDebug","onUnhandledClientToolCall","onModeChange","_ref","onStatusChange","_ref2","onCanSendFeedbackChange","_ref3","Promise","resolve","then","_lockRef$current","getId","_finallyRethrows","_wasThrown","_result2","isOpen","_temp","conversation","_conversation$getId","e","reject","_ref4","_conversationRef$curr5","getInputByteFrequencyData","_conversationRef$curr6","getOutputByteFrequencyData","_conversationRef$curr7","getInputVolume","_conversationRef$curr8","_conversationRef$curr9","getOutputVolume","_conversationRef$curr0","_conversationRef$curr1","sendFeedback","like","_conversationRef$curr10","_conversationRef$curr11","sendContextualUpdate","text","_conversationRef$curr12","sendUserMessage","_conversationRef$curr13","sendUserActivity","_conversationRef$curr14","sendMCPToolApprovalResult","toolCallId","isApproved","_conversationRef$curr15","isSpeaking"],"mappings":"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"}
|
package/dist/lib.modern.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{useRef as e,useState as n,useEffect as
|
|
1
|
+
import{useRef as e,useState as n,useEffect as l}from"react";import{Conversation as r}from"@elevenlabs/client";export{postOverallFeedback}from"@elevenlabs/client";function u(){return u=Object.assign?Object.assign.bind():function(e){for(var n=1;n<arguments.length;n++){var l=arguments[n];for(var r in l)({}).hasOwnProperty.call(l,r)&&(e[r]=l[r])}return e},u.apply(null,arguments)}const t=["micMuted","volume","serverLocation"];function o(e="us"){switch(e){case"eu-residency":case"in-residency":case"us":case"global":return e;default:return console.warn(`[ConversationalAI] Invalid server-location: ${e}. Defaulting to "us"`),"us"}}function i(e){return{us:"wss://api.elevenlabs.io","eu-residency":"wss://api.eu.residency.elevenlabs.io","in-residency":"wss://api.in.residency.elevenlabs.io",global:"wss://api.elevenlabs.io"}[e]}function s(s={}){const{micMuted:a,volume:c,serverLocation:d}=s,v=function(e,n){if(null==e)return{};var l={};for(var r in e)if({}.hasOwnProperty.call(e,r)){if(-1!==n.indexOf(r))continue;l[r]=e[r]}return l}(s,t),g=e(null),p=e(null),[m,y]=n("disconnected"),[f,b]=n(!1),[C,M]=n("listening");return l(()=>{var e;void 0!==a&&(null==g||null==(e=g.current)||e.setMicMuted(a))},[a]),l(()=>{var e;void 0!==c&&(null==g||null==(e=g.current)||e.setVolume({volume:c}))},[c]),l(()=>()=>{var e;null==(e=g.current)||e.endSession()},[]),{startSession:async e=>{var n;if(null!=(n=g.current)&&n.isOpen())return g.current.getId();if(p.current)return(await p.current).getId();try{var l,t,s,m,f,C,w,D,I,O;const n=i(o((null==e?void 0:e.serverLocation)||d));return p.current=r.startSession(u({},null!=v?v:{},null!=e?e:{},{origin:n,overrides:u({},null!=(l=null==v?void 0:v.overrides)?l:{},null!=(t=null==e?void 0:e.overrides)?t:{},{client:u({},null!=(s=null==v||null==(m=v.overrides)?void 0:m.client)?s:{},null!=(f=null==e||null==(C=e.overrides)?void 0:C.client)?f:{},{source:(null==e||null==(w=e.overrides)||null==(w=w.client)?void 0:w.source)||(null==v||null==(D=v.overrides)||null==(D=D.client)?void 0:D.source)||"react_sdk",version:(null==e||null==(I=e.overrides)||null==(I=I.client)?void 0:I.version)||(null==v||null==(O=v.overrides)||null==(O=O.client)?void 0:O.version)||"0.4.5"})}),onConnect:(null==e?void 0:e.onConnect)||(null==v?void 0:v.onConnect),onDisconnect:(null==e?void 0:e.onDisconnect)||(null==v?void 0:v.onDisconnect),onError:(null==e?void 0:e.onError)||(null==v?void 0:v.onError),onMessage:(null==e?void 0:e.onMessage)||(null==v?void 0:v.onMessage),onAudio:(null==e?void 0:e.onAudio)||(null==v?void 0:v.onAudio),onDebug:(null==e?void 0:e.onDebug)||(null==v?void 0:v.onDebug),onUnhandledClientToolCall:(null==e?void 0:e.onUnhandledClientToolCall)||(null==v?void 0:v.onUnhandledClientToolCall),onModeChange:({mode:e})=>{M(e)},onStatusChange:({status:e})=>{y(e)},onCanSendFeedbackChange:({canSendFeedback:e})=>{b(e)}})),g.current=await p.current,void 0!==a&&g.current.setMicMuted(a),void 0!==c&&g.current.setVolume({volume:c}),g.current.getId()}finally{p.current=null}},endSession:async()=>{const e=g.current;g.current=null,await(null==e?void 0:e.endSession())},setVolume:({volume:e})=>{var n;null==(n=g.current)||n.setVolume({volume:e})},getInputByteFrequencyData:()=>{var e;return null==(e=g.current)?void 0:e.getInputByteFrequencyData()},getOutputByteFrequencyData:()=>{var e;return null==(e=g.current)?void 0:e.getOutputByteFrequencyData()},getInputVolume:()=>{var e,n;return null!=(e=null==(n=g.current)?void 0:n.getInputVolume())?e:0},getOutputVolume:()=>{var e,n;return null!=(e=null==(n=g.current)?void 0:n.getOutputVolume())?e:0},sendFeedback:e=>{var n;null==(n=g.current)||n.sendFeedback(e)},getId:()=>{var e;return null==(e=g.current)?void 0:e.getId()},sendContextualUpdate:e=>{var n;null==(n=g.current)||n.sendContextualUpdate(e)},sendUserMessage:e=>{var n;null==(n=g.current)||n.sendUserMessage(e)},sendUserActivity:()=>{var e;null==(e=g.current)||e.sendUserActivity()},sendMCPToolApprovalResult:(e,n)=>{var l;null==(l=g.current)||l.sendMCPToolApprovalResult(e,n)},status:m,canSendFeedback:f,micMuted:a,isSpeaking:"speaking"===C}}export{i as getOriginForLocation,o as parseLocation,s as useConversation};
|
|
2
2
|
//# sourceMappingURL=lib.modern.js.map
|
package/dist/lib.modern.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lib.modern.js","sources":["../src/version.ts","../src/index.ts"],"sourcesContent":["// This file is auto-generated during build\nexport const PACKAGE_VERSION = \"0.4.2\";\n","import { useEffect, useRef, useState } from \"react\";\nimport {\n Conversation,\n Mode,\n SessionConfig,\n Callbacks,\n Options,\n Status,\n ClientToolsConfig,\n InputConfig,\n} from \"@elevenlabs/client\";\n\nimport { PACKAGE_VERSION } from \"./version\";\n\nexport type {\n Role,\n Mode,\n Status,\n SessionConfig,\n DisconnectionDetails,\n Language,\n} from \"@elevenlabs/client\";\nexport { postOverallFeedback } from \"@elevenlabs/client\";\n\nexport type HookOptions = Partial<\n SessionConfig & HookCallbacks & ClientToolsConfig & InputConfig\n>;\nexport type ControlledState = {\n micMuted?: boolean;\n volume?: number;\n};\nexport type HookCallbacks = Pick<\n Callbacks,\n | \"onConnect\"\n | \"onDisconnect\"\n | \"onError\"\n | \"onMessage\"\n | \"onAudio\"\n | \"onDebug\"\n | \"onUnhandledClientToolCall\"\n>;\n\nexport function useConversation<T extends HookOptions & ControlledState>(\n props: T = {} as T\n) {\n const { micMuted, volume, ...defaultOptions } = props;\n const conversationRef = useRef<Conversation | null>(null);\n const lockRef = useRef<Promise<Conversation> | null>(null);\n const [status, setStatus] = useState<Status>(\"disconnected\");\n const [canSendFeedback, setCanSendFeedback] = useState(false);\n const [mode, setMode] = useState<Mode>(\"listening\");\n\n useEffect(() => {\n if (micMuted !== undefined) {\n conversationRef?.current?.setMicMuted(micMuted);\n }\n }, [micMuted]);\n\n useEffect(() => {\n if (volume !== undefined) {\n conversationRef?.current?.setVolume({ volume });\n }\n }, [volume]);\n\n useEffect(() => {\n return () => {\n conversationRef.current?.endSession();\n };\n }, []);\n\n return {\n startSession: (async (options?: HookOptions) => {\n if (conversationRef.current?.isOpen()) {\n return conversationRef.current.getId();\n }\n\n if (lockRef.current) {\n const conversation = await lockRef.current;\n return conversation.getId();\n }\n\n try {\n lockRef.current = Conversation.startSession({\n ...(defaultOptions ?? {}),\n ...(options ?? {}),\n overrides: {\n ...(defaultOptions?.overrides ?? {}),\n ...(options?.overrides ?? {}),\n client: {\n ...(defaultOptions?.overrides?.client ?? {}),\n ...(options?.overrides?.client ?? {}),\n source:\n options?.overrides?.client?.source ||\n defaultOptions?.overrides?.client?.source ||\n \"react_sdk\",\n version:\n options?.overrides?.client?.version ||\n defaultOptions?.overrides?.client?.version ||\n PACKAGE_VERSION,\n },\n },\n onModeChange: ({ mode }) => {\n setMode(mode);\n },\n onStatusChange: ({ status }) => {\n setStatus(status);\n },\n onCanSendFeedbackChange: ({ canSendFeedback }) => {\n setCanSendFeedback(canSendFeedback);\n },\n } as Options);\n\n conversationRef.current = await lockRef.current;\n // Persist controlled state between sessions\n if (micMuted !== undefined) {\n conversationRef.current.setMicMuted(micMuted);\n }\n if (volume !== undefined) {\n conversationRef.current.setVolume({ volume });\n }\n\n return conversationRef.current.getId();\n } finally {\n lockRef.current = null;\n }\n }) as T extends SessionConfig\n ? (options?: HookOptions) => Promise<string>\n : (options: SessionConfig & HookOptions) => Promise<string>,\n endSession: async () => {\n const conversation = conversationRef.current;\n conversationRef.current = null;\n await conversation?.endSession();\n },\n setVolume: ({ volume }: { volume: number }) => {\n conversationRef.current?.setVolume({ volume });\n },\n getInputByteFrequencyData: () => {\n return conversationRef.current?.getInputByteFrequencyData();\n },\n getOutputByteFrequencyData: () => {\n return conversationRef.current?.getOutputByteFrequencyData();\n },\n getInputVolume: () => {\n return conversationRef.current?.getInputVolume() ?? 0;\n },\n getOutputVolume: () => {\n return conversationRef.current?.getOutputVolume() ?? 0;\n },\n sendFeedback: (like: boolean) => {\n conversationRef.current?.sendFeedback(like);\n },\n getId: () => {\n return conversationRef.current?.getId();\n },\n sendContextualUpdate: (text: string) => {\n conversationRef.current?.sendContextualUpdate(text);\n },\n sendUserMessage: (text: string) => {\n conversationRef.current?.sendUserMessage(text);\n },\n sendUserActivity: () => {\n conversationRef.current?.sendUserActivity();\n },\n sendMCPToolApprovalResult: (toolCallId: string, isApproved: boolean) => {\n conversationRef.current?.sendMCPToolApprovalResult(\n toolCallId,\n isApproved\n );\n },\n status,\n canSendFeedback,\n micMuted,\n isSpeaking: mode === \"speaking\",\n };\n}\n\n// const con = useConversation({agentId: \"\"})\n"],"names":["useConversation","props","micMuted","volume","defaultOptions","_objectWithoutPropertiesLoose","_excluded","conversationRef","useRef","lockRef","status","setStatus","useState","canSendFeedback","setCanSendFeedback","mode","setMode","useEffect","_conversationRef$curr","undefined","current","setMicMuted","_conversationRef$curr2","setVolume","_conversationRef$curr3","endSession","startSession","async","_conversationRef$curr4","isOpen","getId","_defaultOptions$overr","_options$overrides","_defaultOptions$overr2","_defaultOptions$overr3","_options$overrides$cl","_options$overrides2","_options$overrides3","_defaultOptions$overr4","_options$overrides4","_defaultOptions$overr5","Conversation","_extends","options","overrides","client","source","version","onModeChange","onStatusChange","onCanSendFeedbackChange","conversation","_conversationRef$curr5","getInputByteFrequencyData","_conversationRef$curr6","getOutputByteFrequencyData","_conversationRef$curr7","getInputVolume","_conversationRef$curr8","_conversationRef$curr9","getOutputVolume","_conversationRef$curr0","_conversationRef$curr1","sendFeedback","like","_conversationRef$curr10","_conversationRef$curr11","sendContextualUpdate","text","_conversationRef$curr12","sendUserMessage","_conversationRef$curr13","sendUserActivity","_conversationRef$curr14","sendMCPToolApprovalResult","toolCallId","isApproved","_conversationRef$curr15","isSpeaking"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"lib.modern.js","sources":["../src/version.ts","../src/index.ts"],"sourcesContent":["// This file is auto-generated during build\nexport const PACKAGE_VERSION = \"0.4.5\";\n","import { useEffect, useRef, useState } from \"react\";\nimport {\n Conversation,\n Mode,\n SessionConfig,\n Callbacks,\n Options,\n Status,\n ClientToolsConfig,\n InputConfig,\n} from \"@elevenlabs/client\";\n\nimport { PACKAGE_VERSION } from \"./version\";\n\nexport type Location = \"us\" | \"global\" | \"eu-residency\" | \"in-residency\";\n\nexport function parseLocation(location: string = \"us\"): Location {\n switch (location) {\n case \"eu-residency\":\n case \"in-residency\":\n case \"us\":\n case \"global\":\n return location;\n default:\n console.warn(\n `[ConversationalAI] Invalid server-location: ${location}. Defaulting to \"us\"`\n );\n return \"us\";\n }\n}\n\nexport function getOriginForLocation(location: Location): string {\n const originMap: Record<Location, string> = {\n us: \"wss://api.elevenlabs.io\",\n \"eu-residency\": \"wss://api.eu.residency.elevenlabs.io\",\n \"in-residency\": \"wss://api.in.residency.elevenlabs.io\",\n global: \"wss://api.elevenlabs.io\",\n };\n\n return originMap[location];\n}\n\nexport type {\n Role,\n Mode,\n Status,\n SessionConfig,\n DisconnectionDetails,\n Language,\n} from \"@elevenlabs/client\";\nexport { postOverallFeedback } from \"@elevenlabs/client\";\n\nexport type HookOptions = Partial<\n SessionConfig &\n HookCallbacks &\n ClientToolsConfig &\n InputConfig & {\n serverLocation?: Location | string;\n }\n>;\nexport type ControlledState = {\n micMuted?: boolean;\n volume?: number;\n};\nexport type HookCallbacks = Pick<\n Callbacks,\n | \"onConnect\"\n | \"onDisconnect\"\n | \"onError\"\n | \"onMessage\"\n | \"onAudio\"\n | \"onDebug\"\n | \"onUnhandledClientToolCall\"\n>;\n\nexport function useConversation<T extends HookOptions & ControlledState>(\n props: T = {} as T\n) {\n const { micMuted, volume, serverLocation, ...defaultOptions } = props;\n const conversationRef = useRef<Conversation | null>(null);\n const lockRef = useRef<Promise<Conversation> | null>(null);\n const [status, setStatus] = useState<Status>(\"disconnected\");\n const [canSendFeedback, setCanSendFeedback] = useState(false);\n const [mode, setMode] = useState<Mode>(\"listening\");\n\n useEffect(() => {\n if (micMuted !== undefined) {\n conversationRef?.current?.setMicMuted(micMuted);\n }\n }, [micMuted]);\n\n useEffect(() => {\n if (volume !== undefined) {\n conversationRef?.current?.setVolume({ volume });\n }\n }, [volume]);\n\n useEffect(() => {\n return () => {\n conversationRef.current?.endSession();\n };\n }, []);\n\n return {\n startSession: (async (options?: HookOptions) => {\n if (conversationRef.current?.isOpen()) {\n return conversationRef.current.getId();\n }\n\n if (lockRef.current) {\n const conversation = await lockRef.current;\n return conversation.getId();\n }\n\n try {\n const resolvedServerLocation = parseLocation(\n options?.serverLocation || serverLocation\n );\n const origin = getOriginForLocation(resolvedServerLocation);\n\n lockRef.current = Conversation.startSession({\n ...(defaultOptions ?? {}),\n ...(options ?? {}),\n origin,\n overrides: {\n ...(defaultOptions?.overrides ?? {}),\n ...(options?.overrides ?? {}),\n client: {\n ...(defaultOptions?.overrides?.client ?? {}),\n ...(options?.overrides?.client ?? {}),\n source:\n options?.overrides?.client?.source ||\n defaultOptions?.overrides?.client?.source ||\n \"react_sdk\",\n version:\n options?.overrides?.client?.version ||\n defaultOptions?.overrides?.client?.version ||\n PACKAGE_VERSION,\n },\n },\n // Pass through user-provided callbacks\n onConnect: options?.onConnect || defaultOptions?.onConnect,\n onDisconnect: options?.onDisconnect || defaultOptions?.onDisconnect,\n onError: options?.onError || defaultOptions?.onError,\n onMessage: options?.onMessage || defaultOptions?.onMessage,\n onAudio: options?.onAudio || defaultOptions?.onAudio,\n onDebug: options?.onDebug || defaultOptions?.onDebug,\n onUnhandledClientToolCall:\n options?.onUnhandledClientToolCall ||\n defaultOptions?.onUnhandledClientToolCall,\n onModeChange: ({ mode }) => {\n setMode(mode);\n },\n onStatusChange: ({ status }) => {\n setStatus(status);\n },\n onCanSendFeedbackChange: ({ canSendFeedback }) => {\n setCanSendFeedback(canSendFeedback);\n },\n } as Options);\n\n conversationRef.current = await lockRef.current;\n // Persist controlled state between sessions\n if (micMuted !== undefined) {\n conversationRef.current.setMicMuted(micMuted);\n }\n if (volume !== undefined) {\n conversationRef.current.setVolume({ volume });\n }\n\n return conversationRef.current.getId();\n } finally {\n lockRef.current = null;\n }\n }) as T extends SessionConfig\n ? (options?: HookOptions) => Promise<string>\n : (options: SessionConfig & HookOptions) => Promise<string>,\n endSession: async () => {\n const conversation = conversationRef.current;\n conversationRef.current = null;\n await conversation?.endSession();\n },\n setVolume: ({ volume }: { volume: number }) => {\n conversationRef.current?.setVolume({ volume });\n },\n getInputByteFrequencyData: () => {\n return conversationRef.current?.getInputByteFrequencyData();\n },\n getOutputByteFrequencyData: () => {\n return conversationRef.current?.getOutputByteFrequencyData();\n },\n getInputVolume: () => {\n return conversationRef.current?.getInputVolume() ?? 0;\n },\n getOutputVolume: () => {\n return conversationRef.current?.getOutputVolume() ?? 0;\n },\n sendFeedback: (like: boolean) => {\n conversationRef.current?.sendFeedback(like);\n },\n getId: () => {\n return conversationRef.current?.getId();\n },\n sendContextualUpdate: (text: string) => {\n conversationRef.current?.sendContextualUpdate(text);\n },\n sendUserMessage: (text: string) => {\n conversationRef.current?.sendUserMessage(text);\n },\n sendUserActivity: () => {\n conversationRef.current?.sendUserActivity();\n },\n sendMCPToolApprovalResult: (toolCallId: string, isApproved: boolean) => {\n conversationRef.current?.sendMCPToolApprovalResult(\n toolCallId,\n isApproved\n );\n },\n status,\n canSendFeedback,\n micMuted,\n isSpeaking: mode === \"speaking\",\n };\n}\n\n// const con = useConversation({agentId: \"\"})\n"],"names":["_excluded","parseLocation","location","console","warn","getOriginForLocation","us","global","useConversation","props","micMuted","volume","serverLocation","defaultOptions","_objectWithoutPropertiesLoose","conversationRef","useRef","lockRef","status","setStatus","useState","canSendFeedback","setCanSendFeedback","mode","setMode","useEffect","_conversationRef$curr","undefined","current","setMicMuted","_conversationRef$curr2","setVolume","_conversationRef$curr3","endSession","startSession","async","_conversationRef$curr4","isOpen","getId","_defaultOptions$overr","_options$overrides","_defaultOptions$overr2","_defaultOptions$overr3","_options$overrides$cl","_options$overrides2","_options$overrides3","_defaultOptions$overr4","_options$overrides4","_defaultOptions$overr5","origin","options","Conversation","_extends","overrides","client","source","version","onConnect","onDisconnect","onError","onMessage","onAudio","onDebug","onUnhandledClientToolCall","onModeChange","onStatusChange","onCanSendFeedbackChange","conversation","_conversationRef$curr5","getInputByteFrequencyData","_conversationRef$curr6","getOutputByteFrequencyData","_conversationRef$curr7","getInputVolume","_conversationRef$curr8","_conversationRef$curr9","getOutputVolume","_conversationRef$curr0","_conversationRef$curr1","sendFeedback","like","_conversationRef$curr10","_conversationRef$curr11","sendContextualUpdate","text","_conversationRef$curr12","sendUserMessage","_conversationRef$curr13","sendUserActivity","_conversationRef$curr14","sendMCPToolApprovalResult","toolCallId","isApproved","_conversationRef$curr15","isSpeaking"],"mappings":"0XACa,MCDbA,EAAA,CAAA,WAAA,SAAA,kBAgBgB,SAAAC,EAAcC,EAAmB,MAC/C,OAAQA,GACN,IAAK,eACL,IAAK,eACL,IAAK,KACL,IAAK,SACH,OAAOA,EACT,QAIE,OAHAC,QAAQC,KACN,+CAA+CF,yBAE1C,KAEb,CAEM,SAAUG,EAAqBH,GAQnC,MAP4C,CAC1CI,GAAI,0BACJ,eAAgB,uCAChB,eAAgB,uCAChBC,OAAQ,2BAGOL,EACnB,CAmCgB,SAAAM,EACdC,EAAW,CAAO,GAElB,MAAMC,SAAEA,EAAQC,OAAEA,EAAMC,eAAEA,GAAsCH,EAAnBI,6IAAcC,CAAKL,EAAKT,GAC/De,EAAkBC,EAA4B,MAC9CC,EAAUD,EAAqC,OAC9CE,EAAQC,GAAaC,EAAiB,iBACtCC,EAAiBC,GAAsBF,GAAS,IAChDG,EAAMC,GAAWJ,EAAe,aAoBvC,OAlBAK,EAAU,KACoB,IAAAC,OAAXC,IAAbjB,IACagB,MAAfX,GAAAW,OAAeA,EAAfX,EAAiBa,UAAjBF,EAA0BG,YAAYnB,KAEvC,CAACA,IAEJe,EAAU,KACkB,IAAAK,OAAXH,IAAXhB,IACamB,MAAff,GAAAe,OAAeA,EAAff,EAAiBa,UAAjBE,EAA0BC,UAAU,CAAEpB,aAEvC,CAACA,IAEJc,EAAU,IACD,KAAKO,IAAAA,EACVA,OAAAA,EAAAjB,EAAgBa,UAAhBI,EAAyBC,cAE1B,IAEI,CACLC,aAAeC,UAAgC,IAAAC,EAC7C,UAAAA,EAAIrB,EAAgBa,UAAhBQ,EAAyBC,SAC3B,OAAOtB,EAAgBa,QAAQU,QAGjC,GAAIrB,EAAQW,QAEV,aAD2BX,EAAQW,SACfU,QAGtB,IAAIC,IAAAA,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EACF,MAGMC,EAAS5C,EAHgBJ,GACtB,MAAPiD,OAAO,EAAPA,EAAStC,iBAAkBA,IAsD7B,OAlDAK,EAAQW,QAAUuB,EAAajB,aAAYkB,EACrCvC,CAAAA,EAAAA,MAAAA,EAAAA,EAAkB,CAAE,EACpBqC,MAAAA,EAAAA,EAAW,CAAA,EAAE,CACjBD,SACAI,UAASD,EAAA,CAAA,EACsBb,OADtBA,EACH1B,MAAAA,OAAAA,EAAAA,EAAgBwC,WAASd,EAAI,CAAE,EACbC,OADaA,EACxB,MAAPU,OAAO,EAAPA,EAASG,WAASb,EAAI,CAAE,EAAA,CAC5Bc,OAAMF,EAAA,GACiCX,OADjCA,EACc,MAAd5B,GAAA6B,OAAcA,EAAd7B,EAAgBwC,gBAAhBX,EAAAA,EAA2BY,QAAMb,EAAI,CAAE,EACbE,OADaA,EAChCC,MAAPM,GAAAN,OAAOA,EAAPM,EAASG,gBAATT,EAAAA,EAAoBU,QAAMX,EAAI,CAAA,EAAE,CACpCY,QACS,MAAPL,GAAkB,OAAXL,EAAPK,EAASG,YAAiB,OAARR,EAAlBA,EAAoBS,aAAM,EAA1BT,EAA4BU,UACdT,MAAdjC,GAAyBiC,OAAXA,EAAdjC,EAAgBwC,mBAASP,EAAzBA,EAA2BQ,eAA3BR,EAAmCS,SACnC,YACFC,SACS,MAAPN,GAAkB,OAAXH,EAAPG,EAASG,YAATN,OAAkBA,EAAlBA,EAAoBO,aAApBP,EAAAA,EAA4BS,WACdR,MAAdnC,UAAcmC,EAAdnC,EAAgBwC,YAAiB,OAARL,EAAzBA,EAA2BM,aAAM,EAAjCN,EAAmCQ,UDvIpB,YC4IrBC,WAAkB,MAAPP,OAAO,EAAPA,EAASO,aAA2B,MAAd5C,OAAc,EAAdA,EAAgB4C,WACjDC,oBAAcR,SAAAA,EAASQ,gBAA8B,MAAd7C,OAAc,EAAdA,EAAgB6C,cACvDC,SAAST,MAAAA,OAAAA,EAAAA,EAASS,WAAyB,MAAd9C,OAAc,EAAdA,EAAgB8C,SAC7CC,WAAWV,MAAAA,OAAAA,EAAAA,EAASU,aAA2B,MAAd/C,OAAc,EAAdA,EAAgB+C,WACjDC,SAASX,MAAAA,OAAAA,EAAAA,EAASW,iBAAWhD,SAAAA,EAAgBgD,SAC7CC,SAASZ,MAAAA,OAAAA,EAAAA,EAASY,WAAWjD,MAAAA,OAAAA,EAAAA,EAAgBiD,SAC7CC,2BACEb,MAAAA,OAAAA,EAAAA,EAASa,6BACTlD,MAAAA,OAAAA,EAAAA,EAAgBkD,2BAClBC,aAAcA,EAAGzC,WACfC,EAAQD,IAEV0C,eAAgBA,EAAG/C,aACjBC,EAAUD,IAEZgD,wBAAyBA,EAAG7C,sBAC1BC,EAAmBD,OAIvBN,EAAgBa,cAAgBX,EAAQW,aAEvBD,IAAbjB,GACFK,EAAgBa,QAAQC,YAAYnB,QAEvBiB,IAAXhB,GACFI,EAAgBa,QAAQG,UAAU,CAAEpB,WAG/BI,EAAgBa,QAAQU,OACjC,CAAC,QACCrB,EAAQW,QAAU,IACpB,GAIFK,WAAYE,UACV,MAAMgC,EAAepD,EAAgBa,QACrCb,EAAgBa,QAAU,WACpBuC,MAAAA,OAAAA,EAAAA,EAAclC,eAEtBF,UAAWA,EAAGpB,aAAgC,IAAAyD,SAC5CA,EAAArD,EAAgBa,UAAhBwC,EAAyBrC,UAAU,CAAEpB,YAEvC0D,0BAA2BA,KAAKC,IAAAA,EAC9B,OAAOA,OAAPA,EAAOvD,EAAgBa,cAAhB0C,EAAAA,EAAyBD,6BAElCE,2BAA4BA,KAAK,IAAAC,EAC/B,OAAOA,OAAPA,EAAOzD,EAAgBa,cAAhB4C,EAAAA,EAAyBD,8BAElCE,eAAgBA,KAAK,IAAAC,EAAAC,EACnB,OAAgD,OAAhDD,EAA8B,OAA9BC,EAAO5D,EAAgBa,cAAO,EAAvB+C,EAAyBF,kBAAgBC,EAAI,GAEtDE,gBAAiBA,KAAKC,IAAAA,EAAAC,EACpB,OAAiDD,OAAjDA,EAA8B,OAA9BC,EAAO/D,EAAgBa,cAAO,EAAvBkD,EAAyBF,mBAAiBC,EAAI,GAEvDE,aAAeC,IAAiBC,IAAAA,EAC9BA,OAAAA,EAAAlE,EAAgBa,UAAhBqD,EAAyBF,aAAaC,IAExC1C,MAAOA,KAAK4C,IAAAA,EACV,OAA8B,OAA9BA,EAAOnE,EAAgBa,cAAO,EAAvBsD,EAAyB5C,SAElC6C,qBAAuBC,IAAgBC,IAAAA,EACd,OAAvBA,EAAAtE,EAAgBa,UAAhByD,EAAyBF,qBAAqBC,IAEhDE,gBAAkBF,IAAgB,IAAAG,EACT,OAAvBA,EAAAxE,EAAgBa,UAAhB2D,EAAyBD,gBAAgBF,IAE3CI,iBAAkBA,KAAKC,IAAAA,EACrBA,OAAAA,EAAA1E,EAAgBa,UAAhB6D,EAAyBD,oBAE3BE,0BAA2BA,CAACC,EAAoBC,KAAuBC,IAAAA,EAC9C,OAAvBA,EAAA9E,EAAgBa,UAAhBiE,EAAyBH,0BACvBC,EACAC,IAGJ1E,SACAG,kBACAX,WACAoF,WAAqB,aAATvE,EAEhB"}
|
package/dist/lib.module.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{useRef as n,useState as e,useEffect as r}from"react";import{Conversation as
|
|
1
|
+
import{useRef as n,useState as e,useEffect as r}from"react";import{Conversation as l}from"@elevenlabs/client";export{postOverallFeedback}from"@elevenlabs/client";function u(){return u=Object.assign?Object.assign.bind():function(n){for(var e=1;e<arguments.length;e++){var r=arguments[e];for(var l in r)({}).hasOwnProperty.call(r,l)&&(n[l]=r[l])}return n},u.apply(null,arguments)}var t=["micMuted","volume","serverLocation"];function o(n){switch(void 0===n&&(n="us"),n){case"eu-residency":case"in-residency":case"us":case"global":return n;default:return console.warn("[ConversationalAI] Invalid server-location: "+n+'. Defaulting to "us"'),"us"}}function i(n){return{us:"wss://api.elevenlabs.io","eu-residency":"wss://api.eu.residency.elevenlabs.io","in-residency":"wss://api.in.residency.elevenlabs.io",global:"wss://api.elevenlabs.io"}[n]}function c(c){void 0===c&&(c={});var s=c.micMuted,a=c.volume,d=c.serverLocation,v=function(n,e){if(null==n)return{};var r={};for(var l in n)if({}.hasOwnProperty.call(n,l)){if(-1!==e.indexOf(l))continue;r[l]=n[l]}return r}(c,t),f=n(null),g=n(null),m=e("disconnected"),p=m[0],b=m[1],y=e(!1),h=y[0],C=y[1],M=e("listening"),D=M[0],I=M[1];return r(function(){var n;void 0!==s&&(null==f||null==(n=f.current)||n.setMicMuted(s))},[s]),r(function(){var n;void 0!==a&&(null==f||null==(n=f.current)||n.setVolume({volume:a}))},[a]),r(function(){return function(){var n;null==(n=f.current)||n.endSession()}},[]),{startSession:function(n){try{var e,r,t=function(e){return r?e:function(e,r){try{var t=(S=i(o((null==n?void 0:n.serverLocation)||d)),g.current=l.startSession(u({},null!=v?v:{},null!=n?n:{},{origin:S,overrides:u({},null!=(c=null==v?void 0:v.overrides)?c:{},null!=(m=null==n?void 0:n.overrides)?m:{},{client:u({},null!=(p=null==v||null==(y=v.overrides)?void 0:y.client)?p:{},null!=(h=null==n||null==(M=n.overrides)?void 0:M.client)?h:{},{source:(null==n||null==(D=n.overrides)||null==(D=D.client)?void 0:D.source)||(null==v||null==(O=v.overrides)||null==(O=O.client)?void 0:O.source)||"react_sdk",version:(null==n||null==(P=n.overrides)||null==(P=P.client)?void 0:P.version)||(null==v||null==(F=v.overrides)||null==(F=F.client)?void 0:F.version)||"0.4.5"})}),onConnect:(null==n?void 0:n.onConnect)||(null==v?void 0:v.onConnect),onDisconnect:(null==n?void 0:n.onDisconnect)||(null==v?void 0:v.onDisconnect),onError:(null==n?void 0:n.onError)||(null==v?void 0:v.onError),onMessage:(null==n?void 0:n.onMessage)||(null==v?void 0:v.onMessage),onAudio:(null==n?void 0:n.onAudio)||(null==v?void 0:v.onAudio),onDebug:(null==n?void 0:n.onDebug)||(null==v?void 0:v.onDebug),onUnhandledClientToolCall:(null==n?void 0:n.onUnhandledClientToolCall)||(null==v?void 0:v.onUnhandledClientToolCall),onModeChange:function(n){I(n.mode)},onStatusChange:function(n){b(n.status)},onCanSendFeedbackChange:function(n){C(n.canSendFeedback)}})),Promise.resolve(g.current).then(function(n){return f.current=n,void 0!==s&&f.current.setMicMuted(s),void 0!==a&&f.current.setVolume({volume:a}),f.current.getId()}))}catch(n){return r(!0,n)}var c,m,p,y,h,M,D,O,P,F,S;return t&&t.then?t.then(r.bind(null,!1),r.bind(null,!0)):r(!1,t)}(0,function(n,e){if(g.current=null,n)throw e;return e})};if(null!=(e=f.current)&&e.isOpen())return Promise.resolve(f.current.getId());var c=function(){if(g.current)return Promise.resolve(g.current).then(function(n){var e=n.getId();return r=1,e})}();return Promise.resolve(c&&c.then?c.then(t):t(c))}catch(n){return Promise.reject(n)}},endSession:function(){try{var n=f.current;return f.current=null,Promise.resolve(null==n?void 0:n.endSession()).then(function(){})}catch(n){return Promise.reject(n)}},setVolume:function(n){var e;null==(e=f.current)||e.setVolume({volume:n.volume})},getInputByteFrequencyData:function(){var n;return null==(n=f.current)?void 0:n.getInputByteFrequencyData()},getOutputByteFrequencyData:function(){var n;return null==(n=f.current)?void 0:n.getOutputByteFrequencyData()},getInputVolume:function(){var n,e;return null!=(n=null==(e=f.current)?void 0:e.getInputVolume())?n:0},getOutputVolume:function(){var n,e;return null!=(n=null==(e=f.current)?void 0:e.getOutputVolume())?n:0},sendFeedback:function(n){var e;null==(e=f.current)||e.sendFeedback(n)},getId:function(){var n;return null==(n=f.current)?void 0:n.getId()},sendContextualUpdate:function(n){var e;null==(e=f.current)||e.sendContextualUpdate(n)},sendUserMessage:function(n){var e;null==(e=f.current)||e.sendUserMessage(n)},sendUserActivity:function(){var n;null==(n=f.current)||n.sendUserActivity()},sendMCPToolApprovalResult:function(n,e){var r;null==(r=f.current)||r.sendMCPToolApprovalResult(n,e)},status:p,canSendFeedback:h,micMuted:s,isSpeaking:"speaking"===D}}export{i as getOriginForLocation,o as parseLocation,c as useConversation};
|
|
2
2
|
//# sourceMappingURL=lib.module.js.map
|
package/dist/lib.module.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lib.module.js","sources":["../src/version.ts","../src/index.ts"],"sourcesContent":["// This file is auto-generated during build\nexport const PACKAGE_VERSION = \"0.4.2\";\n","import { useEffect, useRef, useState } from \"react\";\nimport {\n Conversation,\n Mode,\n SessionConfig,\n Callbacks,\n Options,\n Status,\n ClientToolsConfig,\n InputConfig,\n} from \"@elevenlabs/client\";\n\nimport { PACKAGE_VERSION } from \"./version\";\n\nexport type {\n Role,\n Mode,\n Status,\n SessionConfig,\n DisconnectionDetails,\n Language,\n} from \"@elevenlabs/client\";\nexport { postOverallFeedback } from \"@elevenlabs/client\";\n\nexport type HookOptions = Partial<\n SessionConfig & HookCallbacks & ClientToolsConfig & InputConfig\n>;\nexport type ControlledState = {\n micMuted?: boolean;\n volume?: number;\n};\nexport type HookCallbacks = Pick<\n Callbacks,\n | \"onConnect\"\n | \"onDisconnect\"\n | \"onError\"\n | \"onMessage\"\n | \"onAudio\"\n | \"onDebug\"\n | \"onUnhandledClientToolCall\"\n>;\n\nexport function useConversation<T extends HookOptions & ControlledState>(\n props: T = {} as T\n) {\n const { micMuted, volume, ...defaultOptions } = props;\n const conversationRef = useRef<Conversation | null>(null);\n const lockRef = useRef<Promise<Conversation> | null>(null);\n const [status, setStatus] = useState<Status>(\"disconnected\");\n const [canSendFeedback, setCanSendFeedback] = useState(false);\n const [mode, setMode] = useState<Mode>(\"listening\");\n\n useEffect(() => {\n if (micMuted !== undefined) {\n conversationRef?.current?.setMicMuted(micMuted);\n }\n }, [micMuted]);\n\n useEffect(() => {\n if (volume !== undefined) {\n conversationRef?.current?.setVolume({ volume });\n }\n }, [volume]);\n\n useEffect(() => {\n return () => {\n conversationRef.current?.endSession();\n };\n }, []);\n\n return {\n startSession: (async (options?: HookOptions) => {\n if (conversationRef.current?.isOpen()) {\n return conversationRef.current.getId();\n }\n\n if (lockRef.current) {\n const conversation = await lockRef.current;\n return conversation.getId();\n }\n\n try {\n lockRef.current = Conversation.startSession({\n ...(defaultOptions ?? {}),\n ...(options ?? {}),\n overrides: {\n ...(defaultOptions?.overrides ?? {}),\n ...(options?.overrides ?? {}),\n client: {\n ...(defaultOptions?.overrides?.client ?? {}),\n ...(options?.overrides?.client ?? {}),\n source:\n options?.overrides?.client?.source ||\n defaultOptions?.overrides?.client?.source ||\n \"react_sdk\",\n version:\n options?.overrides?.client?.version ||\n defaultOptions?.overrides?.client?.version ||\n PACKAGE_VERSION,\n },\n },\n onModeChange: ({ mode }) => {\n setMode(mode);\n },\n onStatusChange: ({ status }) => {\n setStatus(status);\n },\n onCanSendFeedbackChange: ({ canSendFeedback }) => {\n setCanSendFeedback(canSendFeedback);\n },\n } as Options);\n\n conversationRef.current = await lockRef.current;\n // Persist controlled state between sessions\n if (micMuted !== undefined) {\n conversationRef.current.setMicMuted(micMuted);\n }\n if (volume !== undefined) {\n conversationRef.current.setVolume({ volume });\n }\n\n return conversationRef.current.getId();\n } finally {\n lockRef.current = null;\n }\n }) as T extends SessionConfig\n ? (options?: HookOptions) => Promise<string>\n : (options: SessionConfig & HookOptions) => Promise<string>,\n endSession: async () => {\n const conversation = conversationRef.current;\n conversationRef.current = null;\n await conversation?.endSession();\n },\n setVolume: ({ volume }: { volume: number }) => {\n conversationRef.current?.setVolume({ volume });\n },\n getInputByteFrequencyData: () => {\n return conversationRef.current?.getInputByteFrequencyData();\n },\n getOutputByteFrequencyData: () => {\n return conversationRef.current?.getOutputByteFrequencyData();\n },\n getInputVolume: () => {\n return conversationRef.current?.getInputVolume() ?? 0;\n },\n getOutputVolume: () => {\n return conversationRef.current?.getOutputVolume() ?? 0;\n },\n sendFeedback: (like: boolean) => {\n conversationRef.current?.sendFeedback(like);\n },\n getId: () => {\n return conversationRef.current?.getId();\n },\n sendContextualUpdate: (text: string) => {\n conversationRef.current?.sendContextualUpdate(text);\n },\n sendUserMessage: (text: string) => {\n conversationRef.current?.sendUserMessage(text);\n },\n sendUserActivity: () => {\n conversationRef.current?.sendUserActivity();\n },\n sendMCPToolApprovalResult: (toolCallId: string, isApproved: boolean) => {\n conversationRef.current?.sendMCPToolApprovalResult(\n toolCallId,\n isApproved\n );\n },\n status,\n canSendFeedback,\n micMuted,\n isSpeaking: mode === \"speaking\",\n };\n}\n\n// const con = useConversation({agentId: \"\"})\n"],"names":["useConversation","props","micMuted","volume","defaultOptions","_objectWithoutPropertiesLoose","_excluded","conversationRef","useRef","lockRef","_useState","useState","status","setStatus","_useState2","canSendFeedback","setCanSendFeedback","_useState3","mode","setMode","useEffect","_conversationRef$curr","undefined","current","setMicMuted","_conversationRef$curr2","setVolume","_conversationRef$curr3","endSession","startSession","options","_conversationRef$curr4","_exit","_temp2","_result","Conversation","_extends","overrides","_defaultOptions$overr","_options$overrides","client","_defaultOptions$overr2","_defaultOptions$overr3","_options$overrides$cl","_options$overrides2","source","_options$overrides3","_defaultOptions$overr4","version","_options$overrides4","_defaultOptions$overr5","onModeChange","_ref","onStatusChange","_ref2","onCanSendFeedbackChange","_ref3","Promise","resolve","then","_lockRef$current","getId","_finallyRethrows","_wasThrown","_result2","isOpen","_temp","conversation","_conversation$getId","e","reject","_ref4","_conversationRef$curr5","getInputByteFrequencyData","_conversationRef$curr6","getOutputByteFrequencyData","_conversationRef$curr7","getInputVolume","_conversationRef$curr8","_conversationRef$curr9","getOutputVolume","_conversationRef$curr0","_conversationRef$curr1","sendFeedback","like","_conversationRef$curr10","_conversationRef$curr11","sendContextualUpdate","text","_conversationRef$curr12","sendUserMessage","_conversationRef$curr13","sendUserActivity","_conversationRef$curr14","sendMCPToolApprovalResult","toolCallId","isApproved","_conversationRef$curr15","isSpeaking"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"lib.module.js","sources":["../src/version.ts","../src/index.ts"],"sourcesContent":["// This file is auto-generated during build\nexport const PACKAGE_VERSION = \"0.4.5\";\n","import { useEffect, useRef, useState } from \"react\";\nimport {\n Conversation,\n Mode,\n SessionConfig,\n Callbacks,\n Options,\n Status,\n ClientToolsConfig,\n InputConfig,\n} from \"@elevenlabs/client\";\n\nimport { PACKAGE_VERSION } from \"./version\";\n\nexport type Location = \"us\" | \"global\" | \"eu-residency\" | \"in-residency\";\n\nexport function parseLocation(location: string = \"us\"): Location {\n switch (location) {\n case \"eu-residency\":\n case \"in-residency\":\n case \"us\":\n case \"global\":\n return location;\n default:\n console.warn(\n `[ConversationalAI] Invalid server-location: ${location}. Defaulting to \"us\"`\n );\n return \"us\";\n }\n}\n\nexport function getOriginForLocation(location: Location): string {\n const originMap: Record<Location, string> = {\n us: \"wss://api.elevenlabs.io\",\n \"eu-residency\": \"wss://api.eu.residency.elevenlabs.io\",\n \"in-residency\": \"wss://api.in.residency.elevenlabs.io\",\n global: \"wss://api.elevenlabs.io\",\n };\n\n return originMap[location];\n}\n\nexport type {\n Role,\n Mode,\n Status,\n SessionConfig,\n DisconnectionDetails,\n Language,\n} from \"@elevenlabs/client\";\nexport { postOverallFeedback } from \"@elevenlabs/client\";\n\nexport type HookOptions = Partial<\n SessionConfig &\n HookCallbacks &\n ClientToolsConfig &\n InputConfig & {\n serverLocation?: Location | string;\n }\n>;\nexport type ControlledState = {\n micMuted?: boolean;\n volume?: number;\n};\nexport type HookCallbacks = Pick<\n Callbacks,\n | \"onConnect\"\n | \"onDisconnect\"\n | \"onError\"\n | \"onMessage\"\n | \"onAudio\"\n | \"onDebug\"\n | \"onUnhandledClientToolCall\"\n>;\n\nexport function useConversation<T extends HookOptions & ControlledState>(\n props: T = {} as T\n) {\n const { micMuted, volume, serverLocation, ...defaultOptions } = props;\n const conversationRef = useRef<Conversation | null>(null);\n const lockRef = useRef<Promise<Conversation> | null>(null);\n const [status, setStatus] = useState<Status>(\"disconnected\");\n const [canSendFeedback, setCanSendFeedback] = useState(false);\n const [mode, setMode] = useState<Mode>(\"listening\");\n\n useEffect(() => {\n if (micMuted !== undefined) {\n conversationRef?.current?.setMicMuted(micMuted);\n }\n }, [micMuted]);\n\n useEffect(() => {\n if (volume !== undefined) {\n conversationRef?.current?.setVolume({ volume });\n }\n }, [volume]);\n\n useEffect(() => {\n return () => {\n conversationRef.current?.endSession();\n };\n }, []);\n\n return {\n startSession: (async (options?: HookOptions) => {\n if (conversationRef.current?.isOpen()) {\n return conversationRef.current.getId();\n }\n\n if (lockRef.current) {\n const conversation = await lockRef.current;\n return conversation.getId();\n }\n\n try {\n const resolvedServerLocation = parseLocation(\n options?.serverLocation || serverLocation\n );\n const origin = getOriginForLocation(resolvedServerLocation);\n\n lockRef.current = Conversation.startSession({\n ...(defaultOptions ?? {}),\n ...(options ?? {}),\n origin,\n overrides: {\n ...(defaultOptions?.overrides ?? {}),\n ...(options?.overrides ?? {}),\n client: {\n ...(defaultOptions?.overrides?.client ?? {}),\n ...(options?.overrides?.client ?? {}),\n source:\n options?.overrides?.client?.source ||\n defaultOptions?.overrides?.client?.source ||\n \"react_sdk\",\n version:\n options?.overrides?.client?.version ||\n defaultOptions?.overrides?.client?.version ||\n PACKAGE_VERSION,\n },\n },\n // Pass through user-provided callbacks\n onConnect: options?.onConnect || defaultOptions?.onConnect,\n onDisconnect: options?.onDisconnect || defaultOptions?.onDisconnect,\n onError: options?.onError || defaultOptions?.onError,\n onMessage: options?.onMessage || defaultOptions?.onMessage,\n onAudio: options?.onAudio || defaultOptions?.onAudio,\n onDebug: options?.onDebug || defaultOptions?.onDebug,\n onUnhandledClientToolCall:\n options?.onUnhandledClientToolCall ||\n defaultOptions?.onUnhandledClientToolCall,\n onModeChange: ({ mode }) => {\n setMode(mode);\n },\n onStatusChange: ({ status }) => {\n setStatus(status);\n },\n onCanSendFeedbackChange: ({ canSendFeedback }) => {\n setCanSendFeedback(canSendFeedback);\n },\n } as Options);\n\n conversationRef.current = await lockRef.current;\n // Persist controlled state between sessions\n if (micMuted !== undefined) {\n conversationRef.current.setMicMuted(micMuted);\n }\n if (volume !== undefined) {\n conversationRef.current.setVolume({ volume });\n }\n\n return conversationRef.current.getId();\n } finally {\n lockRef.current = null;\n }\n }) as T extends SessionConfig\n ? (options?: HookOptions) => Promise<string>\n : (options: SessionConfig & HookOptions) => Promise<string>,\n endSession: async () => {\n const conversation = conversationRef.current;\n conversationRef.current = null;\n await conversation?.endSession();\n },\n setVolume: ({ volume }: { volume: number }) => {\n conversationRef.current?.setVolume({ volume });\n },\n getInputByteFrequencyData: () => {\n return conversationRef.current?.getInputByteFrequencyData();\n },\n getOutputByteFrequencyData: () => {\n return conversationRef.current?.getOutputByteFrequencyData();\n },\n getInputVolume: () => {\n return conversationRef.current?.getInputVolume() ?? 0;\n },\n getOutputVolume: () => {\n return conversationRef.current?.getOutputVolume() ?? 0;\n },\n sendFeedback: (like: boolean) => {\n conversationRef.current?.sendFeedback(like);\n },\n getId: () => {\n return conversationRef.current?.getId();\n },\n sendContextualUpdate: (text: string) => {\n conversationRef.current?.sendContextualUpdate(text);\n },\n sendUserMessage: (text: string) => {\n conversationRef.current?.sendUserMessage(text);\n },\n sendUserActivity: () => {\n conversationRef.current?.sendUserActivity();\n },\n sendMCPToolApprovalResult: (toolCallId: string, isApproved: boolean) => {\n conversationRef.current?.sendMCPToolApprovalResult(\n toolCallId,\n isApproved\n );\n },\n status,\n canSendFeedback,\n micMuted,\n isSpeaking: mode === \"speaking\",\n };\n}\n\n// const con = useConversation({agentId: \"\"})\n"],"names":["parseLocation","location","console","warn","getOriginForLocation","us","global","useConversation","props","micMuted","volume","serverLocation","defaultOptions","_objectWithoutPropertiesLoose","_excluded","conversationRef","useRef","lockRef","_useState","useState","status","setStatus","_useState2","canSendFeedback","setCanSendFeedback","_useState3","mode","setMode","useEffect","_conversationRef$curr","undefined","current","setMicMuted","_conversationRef$curr2","setVolume","_conversationRef$curr3","endSession","startSession","options","_conversationRef$curr4","_exit","_temp2","_result","origin","Conversation","_extends","overrides","_defaultOptions$overr","_options$overrides","client","_defaultOptions$overr2","_defaultOptions$overr3","_options$overrides$cl","_options$overrides2","source","_options$overrides3","_defaultOptions$overr4","version","_options$overrides4","_defaultOptions$overr5","onConnect","onDisconnect","onError","onMessage","onAudio","onDebug","onUnhandledClientToolCall","onModeChange","_ref","onStatusChange","_ref2","onCanSendFeedbackChange","_ref3","Promise","resolve","then","_lockRef$current","getId","_finallyRethrows","_wasThrown","_result2","isOpen","_temp","conversation","_conversation$getId","e","reject","_ref4","_conversationRef$curr5","getInputByteFrequencyData","_conversationRef$curr6","getOutputByteFrequencyData","_conversationRef$curr7","getInputVolume","_conversationRef$curr8","_conversationRef$curr9","getOutputVolume","_conversationRef$curr0","_conversationRef$curr1","sendFeedback","like","_conversationRef$curr10","_conversationRef$curr11","sendContextualUpdate","text","_conversationRef$curr12","sendUserMessage","_conversationRef$curr13","sendUserActivity","_conversationRef$curr14","sendMCPToolApprovalResult","toolCallId","isApproved","_conversationRef$curr15","isSpeaking"],"mappings":"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"}
|
package/dist/lib.umd.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
!function(e,n){"object"==typeof exports&&"undefined"!=typeof module?n(exports,require("react"),require("@elevenlabs/client")):"function"==typeof define&&define.amd?define(["exports","react","@elevenlabs/client"],n):n((e||self).react={},e.react,e.client)}(this,function(e,n,
|
|
1
|
+
!function(e,n){"object"==typeof exports&&"undefined"!=typeof module?n(exports,require("react"),require("@elevenlabs/client")):"function"==typeof define&&define.amd?define(["exports","react","@elevenlabs/client"],n):n((e||self).react={},e.react,e.client)}(this,function(e,n,r){function t(){return t=Object.assign?Object.assign.bind():function(e){for(var n=1;n<arguments.length;n++){var r=arguments[n];for(var t in r)({}).hasOwnProperty.call(r,t)&&(e[t]=r[t])}return e},t.apply(null,arguments)}var u=["micMuted","volume","serverLocation"];function l(e){switch(void 0===e&&(e="us"),e){case"eu-residency":case"in-residency":case"us":case"global":return e;default:return console.warn("[ConversationalAI] Invalid server-location: "+e+'. Defaulting to "us"'),"us"}}function o(e){return{us:"wss://api.elevenlabs.io","eu-residency":"wss://api.eu.residency.elevenlabs.io","in-residency":"wss://api.in.residency.elevenlabs.io",global:"wss://api.elevenlabs.io"}[e]}Object.defineProperty(e,"postOverallFeedback",{enumerable:!0,get:function(){return r.postOverallFeedback}}),e.getOriginForLocation=o,e.parseLocation=l,e.useConversation=function(e){void 0===e&&(e={});var i=e.micMuted,c=e.volume,s=e.serverLocation,a=function(e,n){if(null==e)return{};var r={};for(var t in e)if({}.hasOwnProperty.call(e,t)){if(-1!==n.indexOf(t))continue;r[t]=e[t]}return r}(e,u),d=n.useRef(null),v=n.useRef(null),f=n.useState("disconnected"),g=f[0],p=f[1],b=n.useState(!1),m=b[0],y=b[1],h=n.useState("listening"),C=h[0],M=h[1];return n.useEffect(function(){var e;void 0!==i&&(null==d||null==(e=d.current)||e.setMicMuted(i))},[i]),n.useEffect(function(){var e;void 0!==c&&(null==d||null==(e=d.current)||e.setVolume({volume:c}))},[c]),n.useEffect(function(){return function(){var e;null==(e=d.current)||e.endSession()}},[]),{startSession:function(e){try{var n,u,f=function(n){return u?n:function(n,u){try{var f=(I=o(l((null==e?void 0:e.serverLocation)||s)),v.current=r.Conversation.startSession(t({},null!=a?a:{},null!=e?e:{},{origin:I,overrides:t({},null!=(g=null==a?void 0:a.overrides)?g:{},null!=(b=null==e?void 0:e.overrides)?b:{},{client:t({},null!=(m=null==a||null==(h=a.overrides)?void 0:h.client)?m:{},null!=(C=null==e||null==(O=e.overrides)?void 0:O.client)?C:{},{source:(null==e||null==(S=e.overrides)||null==(S=S.client)?void 0:S.source)||(null==a||null==(F=a.overrides)||null==(F=F.client)?void 0:F.source)||"react_sdk",version:(null==e||null==(P=e.overrides)||null==(P=P.client)?void 0:P.version)||(null==a||null==(D=a.overrides)||null==(D=D.client)?void 0:D.version)||"0.4.5"})}),onConnect:(null==e?void 0:e.onConnect)||(null==a?void 0:a.onConnect),onDisconnect:(null==e?void 0:e.onDisconnect)||(null==a?void 0:a.onDisconnect),onError:(null==e?void 0:e.onError)||(null==a?void 0:a.onError),onMessage:(null==e?void 0:e.onMessage)||(null==a?void 0:a.onMessage),onAudio:(null==e?void 0:e.onAudio)||(null==a?void 0:a.onAudio),onDebug:(null==e?void 0:e.onDebug)||(null==a?void 0:a.onDebug),onUnhandledClientToolCall:(null==e?void 0:e.onUnhandledClientToolCall)||(null==a?void 0:a.onUnhandledClientToolCall),onModeChange:function(e){M(e.mode)},onStatusChange:function(e){p(e.status)},onCanSendFeedbackChange:function(e){y(e.canSendFeedback)}})),Promise.resolve(v.current).then(function(e){return d.current=e,void 0!==i&&d.current.setMicMuted(i),void 0!==c&&d.current.setVolume({volume:c}),d.current.getId()}))}catch(e){return u(!0,e)}var g,b,m,h,C,O,S,F,P,D,I;return f&&f.then?f.then(u.bind(null,!1),u.bind(null,!0)):u(!1,f)}(0,function(e,n){if(v.current=null,e)throw n;return n})};if(null!=(n=d.current)&&n.isOpen())return Promise.resolve(d.current.getId());var g=function(){if(v.current)return Promise.resolve(v.current).then(function(e){var n=e.getId();return u=1,n})}();return Promise.resolve(g&&g.then?g.then(f):f(g))}catch(e){return Promise.reject(e)}},endSession:function(){try{var e=d.current;return d.current=null,Promise.resolve(null==e?void 0:e.endSession()).then(function(){})}catch(e){return Promise.reject(e)}},setVolume:function(e){var n;null==(n=d.current)||n.setVolume({volume:e.volume})},getInputByteFrequencyData:function(){var e;return null==(e=d.current)?void 0:e.getInputByteFrequencyData()},getOutputByteFrequencyData:function(){var e;return null==(e=d.current)?void 0:e.getOutputByteFrequencyData()},getInputVolume:function(){var e,n;return null!=(e=null==(n=d.current)?void 0:n.getInputVolume())?e:0},getOutputVolume:function(){var e,n;return null!=(e=null==(n=d.current)?void 0:n.getOutputVolume())?e:0},sendFeedback:function(e){var n;null==(n=d.current)||n.sendFeedback(e)},getId:function(){var e;return null==(e=d.current)?void 0:e.getId()},sendContextualUpdate:function(e){var n;null==(n=d.current)||n.sendContextualUpdate(e)},sendUserMessage:function(e){var n;null==(n=d.current)||n.sendUserMessage(e)},sendUserActivity:function(){var e;null==(e=d.current)||e.sendUserActivity()},sendMCPToolApprovalResult:function(e,n){var r;null==(r=d.current)||r.sendMCPToolApprovalResult(e,n)},status:g,canSendFeedback:m,micMuted:i,isSpeaking:"speaking"===C}}});
|
|
2
2
|
//# sourceMappingURL=lib.umd.js.map
|
package/dist/lib.umd.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lib.umd.js","sources":["../src/version.ts","../src/index.ts"],"sourcesContent":["// This file is auto-generated during build\nexport const PACKAGE_VERSION = \"0.4.2\";\n","import { useEffect, useRef, useState } from \"react\";\nimport {\n Conversation,\n Mode,\n SessionConfig,\n Callbacks,\n Options,\n Status,\n ClientToolsConfig,\n InputConfig,\n} from \"@elevenlabs/client\";\n\nimport { PACKAGE_VERSION } from \"./version\";\n\nexport type {\n Role,\n Mode,\n Status,\n SessionConfig,\n DisconnectionDetails,\n Language,\n} from \"@elevenlabs/client\";\nexport { postOverallFeedback } from \"@elevenlabs/client\";\n\nexport type HookOptions = Partial<\n SessionConfig & HookCallbacks & ClientToolsConfig & InputConfig\n>;\nexport type ControlledState = {\n micMuted?: boolean;\n volume?: number;\n};\nexport type HookCallbacks = Pick<\n Callbacks,\n | \"onConnect\"\n | \"onDisconnect\"\n | \"onError\"\n | \"onMessage\"\n | \"onAudio\"\n | \"onDebug\"\n | \"onUnhandledClientToolCall\"\n>;\n\nexport function useConversation<T extends HookOptions & ControlledState>(\n props: T = {} as T\n) {\n const { micMuted, volume, ...defaultOptions } = props;\n const conversationRef = useRef<Conversation | null>(null);\n const lockRef = useRef<Promise<Conversation> | null>(null);\n const [status, setStatus] = useState<Status>(\"disconnected\");\n const [canSendFeedback, setCanSendFeedback] = useState(false);\n const [mode, setMode] = useState<Mode>(\"listening\");\n\n useEffect(() => {\n if (micMuted !== undefined) {\n conversationRef?.current?.setMicMuted(micMuted);\n }\n }, [micMuted]);\n\n useEffect(() => {\n if (volume !== undefined) {\n conversationRef?.current?.setVolume({ volume });\n }\n }, [volume]);\n\n useEffect(() => {\n return () => {\n conversationRef.current?.endSession();\n };\n }, []);\n\n return {\n startSession: (async (options?: HookOptions) => {\n if (conversationRef.current?.isOpen()) {\n return conversationRef.current.getId();\n }\n\n if (lockRef.current) {\n const conversation = await lockRef.current;\n return conversation.getId();\n }\n\n try {\n lockRef.current = Conversation.startSession({\n ...(defaultOptions ?? {}),\n ...(options ?? {}),\n overrides: {\n ...(defaultOptions?.overrides ?? {}),\n ...(options?.overrides ?? {}),\n client: {\n ...(defaultOptions?.overrides?.client ?? {}),\n ...(options?.overrides?.client ?? {}),\n source:\n options?.overrides?.client?.source ||\n defaultOptions?.overrides?.client?.source ||\n \"react_sdk\",\n version:\n options?.overrides?.client?.version ||\n defaultOptions?.overrides?.client?.version ||\n PACKAGE_VERSION,\n },\n },\n onModeChange: ({ mode }) => {\n setMode(mode);\n },\n onStatusChange: ({ status }) => {\n setStatus(status);\n },\n onCanSendFeedbackChange: ({ canSendFeedback }) => {\n setCanSendFeedback(canSendFeedback);\n },\n } as Options);\n\n conversationRef.current = await lockRef.current;\n // Persist controlled state between sessions\n if (micMuted !== undefined) {\n conversationRef.current.setMicMuted(micMuted);\n }\n if (volume !== undefined) {\n conversationRef.current.setVolume({ volume });\n }\n\n return conversationRef.current.getId();\n } finally {\n lockRef.current = null;\n }\n }) as T extends SessionConfig\n ? (options?: HookOptions) => Promise<string>\n : (options: SessionConfig & HookOptions) => Promise<string>,\n endSession: async () => {\n const conversation = conversationRef.current;\n conversationRef.current = null;\n await conversation?.endSession();\n },\n setVolume: ({ volume }: { volume: number }) => {\n conversationRef.current?.setVolume({ volume });\n },\n getInputByteFrequencyData: () => {\n return conversationRef.current?.getInputByteFrequencyData();\n },\n getOutputByteFrequencyData: () => {\n return conversationRef.current?.getOutputByteFrequencyData();\n },\n getInputVolume: () => {\n return conversationRef.current?.getInputVolume() ?? 0;\n },\n getOutputVolume: () => {\n return conversationRef.current?.getOutputVolume() ?? 0;\n },\n sendFeedback: (like: boolean) => {\n conversationRef.current?.sendFeedback(like);\n },\n getId: () => {\n return conversationRef.current?.getId();\n },\n sendContextualUpdate: (text: string) => {\n conversationRef.current?.sendContextualUpdate(text);\n },\n sendUserMessage: (text: string) => {\n conversationRef.current?.sendUserMessage(text);\n },\n sendUserActivity: () => {\n conversationRef.current?.sendUserActivity();\n },\n sendMCPToolApprovalResult: (toolCallId: string, isApproved: boolean) => {\n conversationRef.current?.sendMCPToolApprovalResult(\n toolCallId,\n isApproved\n );\n },\n status,\n canSendFeedback,\n micMuted,\n isSpeaking: mode === \"speaking\",\n };\n}\n\n// const con = useConversation({agentId: \"\"})\n"],"names":["props","micMuted","volume","defaultOptions","_objectWithoutPropertiesLoose","_excluded","conversationRef","useRef","lockRef","_useState","useState","status","setStatus","_useState2","canSendFeedback","setCanSendFeedback","_useState3","mode","setMode","useEffect","_conversationRef$curr","undefined","current","setMicMuted","_conversationRef$curr2","setVolume","_conversationRef$curr3","endSession","startSession","options","_conversationRef$curr4","_exit","_temp2","_result","Conversation","_extends","overrides","_defaultOptions$overr","_options$overrides","client","_defaultOptions$overr2","_defaultOptions$overr3","_options$overrides$cl","_options$overrides2","source","_options$overrides3","_defaultOptions$overr4","version","_options$overrides4","_defaultOptions$overr5","onModeChange","_ref","onStatusChange","_ref2","onCanSendFeedbackChange","_ref3","Promise","resolve","then","_lockRef$current","getId","_finallyRethrows","_wasThrown","_result2","isOpen","_temp","conversation","_conversation$getId","e","reject","_ref4","_conversationRef$curr5","getInputByteFrequencyData","_conversationRef$curr6","getOutputByteFrequencyData","_conversationRef$curr7","getInputVolume","_conversationRef$curr8","_conversationRef$curr9","getOutputVolume","_conversationRef$curr0","_conversationRef$curr1","sendFeedback","like","_conversationRef$curr10","_conversationRef$curr11","sendContextualUpdate","text","_conversationRef$curr12","sendUserMessage","_conversationRef$curr13","sendUserActivity","_conversationRef$curr14","sendMCPToolApprovalResult","toolCallId","isApproved","_conversationRef$curr15","isSpeaking"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"lib.umd.js","sources":["../src/version.ts","../src/index.ts"],"sourcesContent":["// This file is auto-generated during build\nexport const PACKAGE_VERSION = \"0.4.5\";\n","import { useEffect, useRef, useState } from \"react\";\nimport {\n Conversation,\n Mode,\n SessionConfig,\n Callbacks,\n Options,\n Status,\n ClientToolsConfig,\n InputConfig,\n} from \"@elevenlabs/client\";\n\nimport { PACKAGE_VERSION } from \"./version\";\n\nexport type Location = \"us\" | \"global\" | \"eu-residency\" | \"in-residency\";\n\nexport function parseLocation(location: string = \"us\"): Location {\n switch (location) {\n case \"eu-residency\":\n case \"in-residency\":\n case \"us\":\n case \"global\":\n return location;\n default:\n console.warn(\n `[ConversationalAI] Invalid server-location: ${location}. Defaulting to \"us\"`\n );\n return \"us\";\n }\n}\n\nexport function getOriginForLocation(location: Location): string {\n const originMap: Record<Location, string> = {\n us: \"wss://api.elevenlabs.io\",\n \"eu-residency\": \"wss://api.eu.residency.elevenlabs.io\",\n \"in-residency\": \"wss://api.in.residency.elevenlabs.io\",\n global: \"wss://api.elevenlabs.io\",\n };\n\n return originMap[location];\n}\n\nexport type {\n Role,\n Mode,\n Status,\n SessionConfig,\n DisconnectionDetails,\n Language,\n} from \"@elevenlabs/client\";\nexport { postOverallFeedback } from \"@elevenlabs/client\";\n\nexport type HookOptions = Partial<\n SessionConfig &\n HookCallbacks &\n ClientToolsConfig &\n InputConfig & {\n serverLocation?: Location | string;\n }\n>;\nexport type ControlledState = {\n micMuted?: boolean;\n volume?: number;\n};\nexport type HookCallbacks = Pick<\n Callbacks,\n | \"onConnect\"\n | \"onDisconnect\"\n | \"onError\"\n | \"onMessage\"\n | \"onAudio\"\n | \"onDebug\"\n | \"onUnhandledClientToolCall\"\n>;\n\nexport function useConversation<T extends HookOptions & ControlledState>(\n props: T = {} as T\n) {\n const { micMuted, volume, serverLocation, ...defaultOptions } = props;\n const conversationRef = useRef<Conversation | null>(null);\n const lockRef = useRef<Promise<Conversation> | null>(null);\n const [status, setStatus] = useState<Status>(\"disconnected\");\n const [canSendFeedback, setCanSendFeedback] = useState(false);\n const [mode, setMode] = useState<Mode>(\"listening\");\n\n useEffect(() => {\n if (micMuted !== undefined) {\n conversationRef?.current?.setMicMuted(micMuted);\n }\n }, [micMuted]);\n\n useEffect(() => {\n if (volume !== undefined) {\n conversationRef?.current?.setVolume({ volume });\n }\n }, [volume]);\n\n useEffect(() => {\n return () => {\n conversationRef.current?.endSession();\n };\n }, []);\n\n return {\n startSession: (async (options?: HookOptions) => {\n if (conversationRef.current?.isOpen()) {\n return conversationRef.current.getId();\n }\n\n if (lockRef.current) {\n const conversation = await lockRef.current;\n return conversation.getId();\n }\n\n try {\n const resolvedServerLocation = parseLocation(\n options?.serverLocation || serverLocation\n );\n const origin = getOriginForLocation(resolvedServerLocation);\n\n lockRef.current = Conversation.startSession({\n ...(defaultOptions ?? {}),\n ...(options ?? {}),\n origin,\n overrides: {\n ...(defaultOptions?.overrides ?? {}),\n ...(options?.overrides ?? {}),\n client: {\n ...(defaultOptions?.overrides?.client ?? {}),\n ...(options?.overrides?.client ?? {}),\n source:\n options?.overrides?.client?.source ||\n defaultOptions?.overrides?.client?.source ||\n \"react_sdk\",\n version:\n options?.overrides?.client?.version ||\n defaultOptions?.overrides?.client?.version ||\n PACKAGE_VERSION,\n },\n },\n // Pass through user-provided callbacks\n onConnect: options?.onConnect || defaultOptions?.onConnect,\n onDisconnect: options?.onDisconnect || defaultOptions?.onDisconnect,\n onError: options?.onError || defaultOptions?.onError,\n onMessage: options?.onMessage || defaultOptions?.onMessage,\n onAudio: options?.onAudio || defaultOptions?.onAudio,\n onDebug: options?.onDebug || defaultOptions?.onDebug,\n onUnhandledClientToolCall:\n options?.onUnhandledClientToolCall ||\n defaultOptions?.onUnhandledClientToolCall,\n onModeChange: ({ mode }) => {\n setMode(mode);\n },\n onStatusChange: ({ status }) => {\n setStatus(status);\n },\n onCanSendFeedbackChange: ({ canSendFeedback }) => {\n setCanSendFeedback(canSendFeedback);\n },\n } as Options);\n\n conversationRef.current = await lockRef.current;\n // Persist controlled state between sessions\n if (micMuted !== undefined) {\n conversationRef.current.setMicMuted(micMuted);\n }\n if (volume !== undefined) {\n conversationRef.current.setVolume({ volume });\n }\n\n return conversationRef.current.getId();\n } finally {\n lockRef.current = null;\n }\n }) as T extends SessionConfig\n ? (options?: HookOptions) => Promise<string>\n : (options: SessionConfig & HookOptions) => Promise<string>,\n endSession: async () => {\n const conversation = conversationRef.current;\n conversationRef.current = null;\n await conversation?.endSession();\n },\n setVolume: ({ volume }: { volume: number }) => {\n conversationRef.current?.setVolume({ volume });\n },\n getInputByteFrequencyData: () => {\n return conversationRef.current?.getInputByteFrequencyData();\n },\n getOutputByteFrequencyData: () => {\n return conversationRef.current?.getOutputByteFrequencyData();\n },\n getInputVolume: () => {\n return conversationRef.current?.getInputVolume() ?? 0;\n },\n getOutputVolume: () => {\n return conversationRef.current?.getOutputVolume() ?? 0;\n },\n sendFeedback: (like: boolean) => {\n conversationRef.current?.sendFeedback(like);\n },\n getId: () => {\n return conversationRef.current?.getId();\n },\n sendContextualUpdate: (text: string) => {\n conversationRef.current?.sendContextualUpdate(text);\n },\n sendUserMessage: (text: string) => {\n conversationRef.current?.sendUserMessage(text);\n },\n sendUserActivity: () => {\n conversationRef.current?.sendUserActivity();\n },\n sendMCPToolApprovalResult: (toolCallId: string, isApproved: boolean) => {\n conversationRef.current?.sendMCPToolApprovalResult(\n toolCallId,\n isApproved\n );\n },\n status,\n canSendFeedback,\n micMuted,\n isSpeaking: mode === \"speaking\",\n };\n}\n\n// const con = useConversation({agentId: \"\"})\n"],"names":["parseLocation","location","console","warn","getOriginForLocation","us","global","props","micMuted","volume","serverLocation","defaultOptions","_objectWithoutPropertiesLoose","_excluded","conversationRef","useRef","lockRef","_useState","useState","status","setStatus","_useState2","canSendFeedback","setCanSendFeedback","_useState3","mode","setMode","useEffect","_conversationRef$curr","undefined","current","setMicMuted","_conversationRef$curr2","setVolume","_conversationRef$curr3","endSession","startSession","options","_conversationRef$curr4","_exit","_temp2","_result","origin","Conversation","_extends","overrides","_defaultOptions$overr","_options$overrides","client","_defaultOptions$overr2","_defaultOptions$overr3","_options$overrides$cl","_options$overrides2","source","_options$overrides3","_defaultOptions$overr4","version","_options$overrides4","_defaultOptions$overr5","onConnect","onDisconnect","onError","onMessage","onAudio","onDebug","onUnhandledClientToolCall","onModeChange","_ref","onStatusChange","_ref2","onCanSendFeedbackChange","_ref3","Promise","resolve","then","_lockRef$current","getId","_finallyRethrows","_wasThrown","_result2","isOpen","_temp","conversation","_conversation$getId","e","reject","_ref4","_conversationRef$curr5","getInputByteFrequencyData","_conversationRef$curr6","getOutputByteFrequencyData","_conversationRef$curr7","getInputVolume","_conversationRef$curr8","_conversationRef$curr9","getOutputVolume","_conversationRef$curr0","_conversationRef$curr1","sendFeedback","like","_conversationRef$curr10","_conversationRef$curr11","sendContextualUpdate","text","_conversationRef$curr12","sendUserMessage","_conversationRef$curr13","sendUserActivity","_conversationRef$curr14","sendMCPToolApprovalResult","toolCallId","isApproved","_conversationRef$curr15","isSpeaking"],"mappings":"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"}
|
package/dist/version.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export declare const PACKAGE_VERSION = "0.4.
|
|
1
|
+
export declare const PACKAGE_VERSION = "0.4.5";
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@elevenlabs/react",
|
|
3
|
-
"version": "0.4.
|
|
3
|
+
"version": "0.4.5",
|
|
4
4
|
"description": "ElevenLabs React Library",
|
|
5
5
|
"main": "./dist/lib.umd.js",
|
|
6
6
|
"module": "./dist/lib.module.js",
|
|
@@ -19,7 +19,7 @@
|
|
|
19
19
|
"author": "ElevenLabs",
|
|
20
20
|
"license": "MIT",
|
|
21
21
|
"dependencies": {
|
|
22
|
-
"@elevenlabs/client": "0.4.
|
|
22
|
+
"@elevenlabs/client": "0.4.4"
|
|
23
23
|
},
|
|
24
24
|
"peerDependencies": {
|
|
25
25
|
"react": ">=16.8.0"
|