@revrag-ai/embed-react-native 1.0.16 → 1.0.18
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/README.md +6 -108
- package/android/build.gradle +3 -3
- package/dist/commonjs/api/api.js +6 -5
- package/dist/commonjs/api/api.js.map +1 -1
- package/dist/commonjs/components/Embed/EmbedButton.js +138 -345
- package/dist/commonjs/components/Embed/EmbedButton.js.map +1 -1
- package/dist/commonjs/components/Embed/EmbedVoice.js +16 -4
- package/dist/commonjs/components/Embed/EmbedVoice.js.map +1 -1
- package/dist/commonjs/context/EmbedProvider.js +638 -0
- package/dist/commonjs/context/EmbedProvider.js.map +1 -0
- package/dist/commonjs/events/agent-event-emitter.js +114 -0
- package/dist/commonjs/events/agent-event-emitter.js.map +1 -0
- package/dist/commonjs/events/embed.event.js +93 -79
- package/dist/commonjs/events/embed.event.js.map +1 -1
- package/dist/commonjs/events/embed.types.js +32 -0
- package/dist/commonjs/events/embed.types.js.map +1 -0
- package/dist/commonjs/events/embed.validators.js +36 -0
- package/dist/commonjs/events/embed.validators.js.map +1 -0
- package/dist/commonjs/events/index.js +47 -0
- package/dist/commonjs/events/index.js.map +1 -0
- package/dist/commonjs/hooks/EmbedButton.animations.js +181 -0
- package/dist/commonjs/hooks/EmbedButton.animations.js.map +1 -0
- package/dist/commonjs/hooks/EmbedButton.helpers.js +90 -0
- package/dist/commonjs/hooks/EmbedButton.helpers.js.map +1 -0
- package/dist/commonjs/hooks/EmbedButton.hooks.js +165 -0
- package/dist/commonjs/hooks/EmbedButton.hooks.js.map +1 -0
- package/dist/commonjs/hooks/initialize.js +65 -25
- package/dist/commonjs/hooks/initialize.js.map +1 -1
- package/dist/commonjs/hooks/voiceagent.js +1 -18
- package/dist/commonjs/hooks/voiceagent.js.map +1 -1
- package/dist/commonjs/index.js +16 -1
- package/dist/commonjs/index.js.map +1 -1
- package/dist/commonjs/index.types.js +1 -2
- package/dist/commonjs/index.types.js.map +1 -1
- package/dist/commonjs/utils/constant.js +99 -0
- package/dist/commonjs/utils/constant.js.map +1 -0
- package/dist/commonjs/utils/permision.js +48 -1
- package/dist/commonjs/utils/permision.js.map +1 -1
- package/dist/commonjs/utils/reanimated.helper.js +2 -3
- package/dist/commonjs/utils/reanimated.helper.js.map +1 -1
- package/dist/module/api/api.js +6 -6
- package/dist/module/api/api.js.map +1 -1
- package/dist/module/components/Embed/EmbedButton.js +140 -347
- package/dist/module/components/Embed/EmbedButton.js.map +1 -1
- package/dist/module/components/Embed/EmbedVoice.js +16 -4
- package/dist/module/components/Embed/EmbedVoice.js.map +1 -1
- package/dist/module/context/EmbedProvider.js +626 -0
- package/dist/module/context/EmbedProvider.js.map +1 -0
- package/dist/module/events/agent-event-emitter.js +109 -0
- package/dist/module/events/agent-event-emitter.js.map +1 -0
- package/dist/module/events/embed.event.js +82 -80
- package/dist/module/events/embed.event.js.map +1 -1
- package/dist/module/events/embed.types.js +33 -0
- package/dist/module/events/embed.types.js.map +1 -0
- package/dist/module/events/embed.validators.js +32 -0
- package/dist/module/events/embed.validators.js.map +1 -0
- package/dist/module/events/index.js +12 -0
- package/dist/module/events/index.js.map +1 -0
- package/dist/module/hooks/EmbedButton.animations.js +172 -0
- package/dist/module/hooks/EmbedButton.animations.js.map +1 -0
- package/dist/module/hooks/EmbedButton.helpers.js +80 -0
- package/dist/module/hooks/EmbedButton.helpers.js.map +1 -0
- package/dist/module/hooks/EmbedButton.hooks.js +160 -0
- package/dist/module/hooks/EmbedButton.hooks.js.map +1 -0
- package/dist/module/hooks/initialize.js +66 -26
- package/dist/module/hooks/initialize.js.map +1 -1
- package/dist/module/hooks/voiceagent.js +1 -17
- package/dist/module/hooks/voiceagent.js.map +1 -1
- package/dist/module/index.js +4 -2
- package/dist/module/index.js.map +1 -1
- package/dist/module/index.types.js +1 -2
- package/dist/module/index.types.js.map +1 -1
- package/dist/module/utils/constant.js +93 -0
- package/dist/module/utils/constant.js.map +1 -0
- package/dist/module/utils/permision.js +48 -1
- package/dist/module/utils/permision.js.map +1 -1
- package/dist/module/utils/reanimated.helper.js +2 -3
- package/dist/module/utils/reanimated.helper.js.map +1 -1
- package/dist/typescript/src/api/api.d.ts +4 -3
- package/dist/typescript/src/api/api.d.ts.map +1 -1
- package/dist/typescript/src/api/types/embed.api.types.d.ts +1 -1
- package/dist/typescript/src/api/types/embed.api.types.d.ts.map +1 -1
- package/dist/typescript/src/components/Embed/EmbedButton.d.ts +5 -25
- package/dist/typescript/src/components/Embed/EmbedButton.d.ts.map +1 -1
- package/dist/typescript/src/components/Embed/EmbedVoice.d.ts.map +1 -1
- package/dist/typescript/src/context/EmbedProvider.d.ts +306 -0
- package/dist/typescript/src/context/EmbedProvider.d.ts.map +1 -0
- package/dist/typescript/src/events/agent-event-emitter.d.ts +41 -0
- package/dist/typescript/src/events/agent-event-emitter.d.ts.map +1 -0
- package/dist/typescript/src/events/embed.event.d.ts +39 -21
- package/dist/typescript/src/events/embed.event.d.ts.map +1 -1
- package/dist/typescript/src/events/embed.types.d.ts +39 -0
- package/dist/typescript/src/events/embed.types.d.ts.map +1 -0
- package/dist/typescript/src/events/embed.validators.d.ts +17 -0
- package/dist/typescript/src/events/embed.validators.d.ts.map +1 -0
- package/dist/typescript/src/events/index.d.ts +10 -0
- package/dist/typescript/src/events/index.d.ts.map +1 -0
- package/dist/typescript/src/hooks/EmbedButton.animations.d.ts +38 -0
- package/dist/typescript/src/hooks/EmbedButton.animations.d.ts.map +1 -0
- package/dist/typescript/src/hooks/EmbedButton.helpers.d.ts +49 -0
- package/dist/typescript/src/hooks/EmbedButton.helpers.d.ts.map +1 -0
- package/dist/typescript/src/hooks/EmbedButton.hooks.d.ts +49 -0
- package/dist/typescript/src/hooks/EmbedButton.hooks.d.ts.map +1 -0
- package/dist/typescript/src/hooks/initialize.d.ts.map +1 -1
- package/dist/typescript/src/hooks/types/initialize.types.d.ts +1 -1
- package/dist/typescript/src/hooks/types/initialize.types.d.ts.map +1 -1
- package/dist/typescript/src/hooks/voiceagent.d.ts.map +1 -1
- package/dist/typescript/src/index.d.ts +10 -4
- package/dist/typescript/src/index.d.ts.map +1 -1
- package/dist/typescript/src/index.types.d.ts +2 -3
- package/dist/typescript/src/index.types.d.ts.map +1 -1
- package/dist/typescript/src/utils/constant.d.ts +46 -0
- package/dist/typescript/src/utils/constant.d.ts.map +1 -0
- package/dist/typescript/src/utils/permision.d.ts.map +1 -1
- package/dist/typescript/src/utils/reanimated.helper.d.ts.map +1 -1
- package/package.json +16 -8
- package/react-native.config.js +1 -0
- package/dist/commonjs/events/eventEmitter.js +0 -43
- package/dist/commonjs/events/eventEmitter.js.map +0 -1
- package/dist/module/events/eventEmitter.js +0 -39
- package/dist/module/events/eventEmitter.js.map +0 -1
- package/dist/typescript/src/events/eventEmitter.d.ts +0 -9
- package/dist/typescript/src/events/eventEmitter.d.ts.map +0 -1
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* @file EmbedButton.helpers.ts
|
|
5
|
+
* @description Helper functions and utilities for the EmbedButton component
|
|
6
|
+
*/
|
|
7
|
+
|
|
8
|
+
import { Dimensions } from 'react-native';
|
|
9
|
+
|
|
10
|
+
// ==================== CONSTANTS ====================
|
|
11
|
+
export const {
|
|
12
|
+
width: SCREEN_WIDTH,
|
|
13
|
+
height: SCREEN_HEIGHT
|
|
14
|
+
} = Dimensions.get('window');
|
|
15
|
+
export const BUTTON_DIMENSIONS = {
|
|
16
|
+
WIDTH: 60,
|
|
17
|
+
HEIGHT: 60,
|
|
18
|
+
EXPANDED_WIDTH: SCREEN_WIDTH * 0.9
|
|
19
|
+
};
|
|
20
|
+
export const ICON_URLS = {
|
|
21
|
+
MIC_ON: 'https://revrag-dev.s3.ap-south-1.amazonaws.com/Avatars/Mute+button.png',
|
|
22
|
+
MIC_OFF: 'https://revrag-dev.s3.ap-south-1.amazonaws.com/Avatars/unmute.png',
|
|
23
|
+
END_CALL: 'https://revrag-dev.s3.ap-south-1.amazonaws.com/Avatars/end+button.png',
|
|
24
|
+
AMPLIFY_ANIMATION: 'https://revrag-dev.s3.ap-south-1.amazonaws.com/Avatars/amplify.json'
|
|
25
|
+
};
|
|
26
|
+
export const DEFAULT_GRADIENT_COLORS = ['#1E0844', '#B391F3'];
|
|
27
|
+
export const DEFAULT_POPUP_DELAY_MS = 15000;
|
|
28
|
+
|
|
29
|
+
// ==================== TYPES ====================
|
|
30
|
+
|
|
31
|
+
// ==================== HELPER FUNCTIONS ====================
|
|
32
|
+
|
|
33
|
+
/**
|
|
34
|
+
* Safely parse delay value to ensure it's a valid number
|
|
35
|
+
*/
|
|
36
|
+
export const parseDelayMs = delay => {
|
|
37
|
+
if (typeof delay === 'number') {
|
|
38
|
+
return delay;
|
|
39
|
+
}
|
|
40
|
+
const parsed = Number(delay);
|
|
41
|
+
return Number.isFinite(parsed) ? parsed : DEFAULT_POPUP_DELAY_MS;
|
|
42
|
+
};
|
|
43
|
+
|
|
44
|
+
/**
|
|
45
|
+
* Format seconds to MM:SS format
|
|
46
|
+
*/
|
|
47
|
+
export const formatDuration = seconds => {
|
|
48
|
+
const minutes = Math.floor(seconds / 60);
|
|
49
|
+
const remainingSeconds = seconds % 60;
|
|
50
|
+
return `${minutes.toString().padStart(2, '0')}:${remainingSeconds.toString().padStart(2, '0')}`;
|
|
51
|
+
};
|
|
52
|
+
|
|
53
|
+
/**
|
|
54
|
+
* Calculate the max X position for button drag constraints
|
|
55
|
+
*/
|
|
56
|
+
export const calculateMaxX = isOpen => {
|
|
57
|
+
'worklet';
|
|
58
|
+
|
|
59
|
+
const width = isOpen ? BUTTON_DIMENSIONS.EXPANDED_WIDTH : BUTTON_DIMENSIONS.WIDTH;
|
|
60
|
+
return SCREEN_WIDTH - width - 35;
|
|
61
|
+
};
|
|
62
|
+
|
|
63
|
+
/**
|
|
64
|
+
* Calculate the max Y position for button drag constraints
|
|
65
|
+
*/
|
|
66
|
+
export const calculateMaxY = () => {
|
|
67
|
+
'worklet';
|
|
68
|
+
|
|
69
|
+
return SCREEN_HEIGHT - 150;
|
|
70
|
+
};
|
|
71
|
+
|
|
72
|
+
/**
|
|
73
|
+
* Clamp a value between a min and max
|
|
74
|
+
*/
|
|
75
|
+
export const clamp = (value, min, max) => {
|
|
76
|
+
'worklet';
|
|
77
|
+
|
|
78
|
+
return Math.min(Math.max(value, min), max);
|
|
79
|
+
};
|
|
80
|
+
//# sourceMappingURL=EmbedButton.helpers.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["Dimensions","width","SCREEN_WIDTH","height","SCREEN_HEIGHT","get","BUTTON_DIMENSIONS","WIDTH","HEIGHT","EXPANDED_WIDTH","ICON_URLS","MIC_ON","MIC_OFF","END_CALL","AMPLIFY_ANIMATION","DEFAULT_GRADIENT_COLORS","DEFAULT_POPUP_DELAY_MS","parseDelayMs","delay","parsed","Number","isFinite","formatDuration","seconds","minutes","Math","floor","remainingSeconds","toString","padStart","calculateMaxX","isOpen","calculateMaxY","clamp","value","min","max"],"sourceRoot":"../../../src","sources":["hooks/EmbedButton.helpers.ts"],"mappings":";;AAAA;AACA;AACA;AACA;;AAEA,SAASA,UAAU,QAAQ,cAAc;;AAEzC;AACA,OAAO,MAAM;EAAEC,KAAK,EAAEC,YAAY;EAAEC,MAAM,EAAEC;AAAc,CAAC,GACzDJ,UAAU,CAACK,GAAG,CAAC,QAAQ,CAAC;AAE1B,OAAO,MAAMC,iBAAiB,GAAG;EAC/BC,KAAK,EAAE,EAAE;EACTC,MAAM,EAAE,EAAE;EACVC,cAAc,EAAEP,YAAY,GAAG;AACjC,CAAU;AAEV,OAAO,MAAMQ,SAAS,GAAG;EACvBC,MAAM,EACJ,wEAAwE;EAC1EC,OAAO,EAAE,mEAAmE;EAC5EC,QAAQ,EACN,uEAAuE;EACzEC,iBAAiB,EACf;AACJ,CAAU;AAEV,OAAO,MAAMC,uBAAuB,GAAG,CAAC,SAAS,EAAE,SAAS,CAAC;AAE7D,OAAO,MAAMC,sBAAsB,GAAG,KAAK;;AAE3C;;AAYA;;AAEA;AACA;AACA;AACA,OAAO,MAAMC,YAAY,GAAIC,KAAkC,IAAa;EAC1E,IAAI,OAAOA,KAAK,KAAK,QAAQ,EAAE;IAC7B,OAAOA,KAAK;EACd;EAEA,MAAMC,MAAM,GAAGC,MAAM,CAACF,KAAK,CAAC;EAC5B,OAAOE,MAAM,CAACC,QAAQ,CAACF,MAAM,CAAC,GAAGA,MAAM,GAAGH,sBAAsB;AAClE,CAAC;;AAED;AACA;AACA;AACA,OAAO,MAAMM,cAAc,GAAIC,OAAe,IAAa;EACzD,MAAMC,OAAO,GAAGC,IAAI,CAACC,KAAK,CAACH,OAAO,GAAG,EAAE,CAAC;EACxC,MAAMI,gBAAgB,GAAGJ,OAAO,GAAG,EAAE;EACrC,OAAO,GAAGC,OAAO,CAACI,QAAQ,CAAC,CAAC,CAACC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,IAAIF,gBAAgB,CAC9DC,QAAQ,CAAC,CAAC,CACVC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE;AACvB,CAAC;;AAED;AACA;AACA;AACA,OAAO,MAAMC,aAAa,GAAIC,MAAe,IAAa;EACxD,SAAS;;EACT,MAAM9B,KAAK,GAAG8B,MAAM,GAChBzB,iBAAiB,CAACG,cAAc,GAChCH,iBAAiB,CAACC,KAAK;EAC3B,OAAOL,YAAY,GAAGD,KAAK,GAAG,EAAE;AAClC,CAAC;;AAED;AACA;AACA;AACA,OAAO,MAAM+B,aAAa,GAAGA,CAAA,KAAc;EACzC,SAAS;;EACT,OAAO5B,aAAa,GAAG,GAAG;AAC5B,CAAC;;AAED;AACA;AACA;AACA,OAAO,MAAM6B,KAAK,GAAGA,CAACC,KAAa,EAAEC,GAAW,EAAEC,GAAW,KAAa;EACxE,SAAS;;EACT,OAAOX,IAAI,CAACU,GAAG,CAACV,IAAI,CAACW,GAAG,CAACF,KAAK,EAAEC,GAAG,CAAC,EAAEC,GAAG,CAAC;AAC5C,CAAC","ignoreList":[]}
|
|
@@ -0,0 +1,160 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* @file EmbedButton.hooks.ts
|
|
5
|
+
* @description Custom hooks for the EmbedButton component
|
|
6
|
+
*/
|
|
7
|
+
|
|
8
|
+
import { useCallback, useEffect, useRef, useState } from 'react';
|
|
9
|
+
import { getAgentData } from "../store/store.key.js";
|
|
10
|
+
import { checkPermissions } from "../utils/permision.js";
|
|
11
|
+
import { parseDelayMs } from "./EmbedButton.helpers.js";
|
|
12
|
+
|
|
13
|
+
// ==================== CONFIG DATA HOOK ====================
|
|
14
|
+
/**
|
|
15
|
+
* Hook to fetch and manage agent configuration data
|
|
16
|
+
*/
|
|
17
|
+
export const useConfigData = () => {
|
|
18
|
+
const [configData, setConfigData] = useState(null);
|
|
19
|
+
useEffect(() => {
|
|
20
|
+
const fetchConfig = async () => {
|
|
21
|
+
try {
|
|
22
|
+
const data = await getAgentData('@config_data');
|
|
23
|
+
setConfigData(data?.ui_config || null);
|
|
24
|
+
} catch (error) {
|
|
25
|
+
console.error('Failed to fetch config data:', error);
|
|
26
|
+
}
|
|
27
|
+
};
|
|
28
|
+
fetchConfig();
|
|
29
|
+
}, []);
|
|
30
|
+
return configData;
|
|
31
|
+
};
|
|
32
|
+
|
|
33
|
+
// ==================== CALL DURATION HOOK ====================
|
|
34
|
+
/**
|
|
35
|
+
* Hook to track call duration when connected
|
|
36
|
+
*/
|
|
37
|
+
export const useCallDuration = connectionState => {
|
|
38
|
+
const [callDuration, setCallDuration] = useState(0);
|
|
39
|
+
const timerRef = useRef(null);
|
|
40
|
+
useEffect(() => {
|
|
41
|
+
if (connectionState === 'connected' && !timerRef.current) {
|
|
42
|
+
// Start timer
|
|
43
|
+
timerRef.current = setInterval(() => {
|
|
44
|
+
setCallDuration(prev => prev + 1);
|
|
45
|
+
}, 1000);
|
|
46
|
+
} else if (connectionState !== 'connected' && timerRef.current) {
|
|
47
|
+
// Stop timer
|
|
48
|
+
clearInterval(timerRef.current);
|
|
49
|
+
timerRef.current = null;
|
|
50
|
+
}
|
|
51
|
+
return () => {
|
|
52
|
+
if (timerRef.current) {
|
|
53
|
+
clearInterval(timerRef.current);
|
|
54
|
+
timerRef.current = null;
|
|
55
|
+
}
|
|
56
|
+
};
|
|
57
|
+
}, [connectionState]);
|
|
58
|
+
const resetDuration = useCallback(() => {
|
|
59
|
+
setCallDuration(0);
|
|
60
|
+
if (timerRef.current) {
|
|
61
|
+
clearInterval(timerRef.current);
|
|
62
|
+
timerRef.current = null;
|
|
63
|
+
}
|
|
64
|
+
}, []);
|
|
65
|
+
return {
|
|
66
|
+
callDuration,
|
|
67
|
+
resetDuration
|
|
68
|
+
};
|
|
69
|
+
};
|
|
70
|
+
|
|
71
|
+
// ==================== INACTIVITY BEHAVIOR HOOK ====================
|
|
72
|
+
/**
|
|
73
|
+
* Hook to handle inactivity behavior (show_popup or auto_trigger)
|
|
74
|
+
*/
|
|
75
|
+
|
|
76
|
+
export const useInactivityBehavior = ({
|
|
77
|
+
configData,
|
|
78
|
+
isOpen,
|
|
79
|
+
isLoading,
|
|
80
|
+
hasActiveToken,
|
|
81
|
+
onStartCall
|
|
82
|
+
}) => {
|
|
83
|
+
const [isAutoOpen, setIsAutoOpen] = useState(false);
|
|
84
|
+
useEffect(() => {
|
|
85
|
+
const behavior = configData?.inactivity_behaviour;
|
|
86
|
+
|
|
87
|
+
// Only act when explicitly configured
|
|
88
|
+
if (behavior !== 'show_popup' && behavior !== 'auto_trigger') {
|
|
89
|
+
return;
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
// Parse delay with fallback
|
|
93
|
+
const delayMs = parseDelayMs(configData?.popup_delay_ms);
|
|
94
|
+
const timer = setTimeout(async () => {
|
|
95
|
+
if (isOpen) return;
|
|
96
|
+
if (behavior === 'show_popup') {
|
|
97
|
+
// Show popup notification
|
|
98
|
+
if (configData?.popup_description) {
|
|
99
|
+
setIsAutoOpen(true);
|
|
100
|
+
} else {
|
|
101
|
+
console.warn('Popup behavior configured but no description provided');
|
|
102
|
+
}
|
|
103
|
+
} else if (behavior === 'auto_trigger') {
|
|
104
|
+
// Auto-start the call
|
|
105
|
+
setIsAutoOpen(false);
|
|
106
|
+
if (!hasActiveToken && !isLoading) {
|
|
107
|
+
try {
|
|
108
|
+
await onStartCall();
|
|
109
|
+
} catch (error) {
|
|
110
|
+
console.error('Auto-trigger call failed:', error);
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
}, delayMs);
|
|
115
|
+
return () => clearTimeout(timer);
|
|
116
|
+
}, [configData?.inactivity_behaviour, configData?.popup_delay_ms, configData?.popup_description, isOpen, isLoading, hasActiveToken, onStartCall]);
|
|
117
|
+
return {
|
|
118
|
+
isAutoOpen,
|
|
119
|
+
setIsAutoOpen
|
|
120
|
+
};
|
|
121
|
+
};
|
|
122
|
+
|
|
123
|
+
// ==================== CALL MANAGEMENT HOOK ====================
|
|
124
|
+
/**
|
|
125
|
+
* Hook to manage call lifecycle (start, end, mute)
|
|
126
|
+
*/
|
|
127
|
+
|
|
128
|
+
export const useCallManagement = ({
|
|
129
|
+
initializeVoiceAgent,
|
|
130
|
+
endCall,
|
|
131
|
+
muteMic,
|
|
132
|
+
unmuteMic,
|
|
133
|
+
isMicMuted,
|
|
134
|
+
resetDuration,
|
|
135
|
+
setIsOpen
|
|
136
|
+
}) => {
|
|
137
|
+
const handleStartCall = useCallback(async () => {
|
|
138
|
+
await checkPermissions();
|
|
139
|
+
resetDuration();
|
|
140
|
+
await initializeVoiceAgent();
|
|
141
|
+
}, [initializeVoiceAgent, resetDuration]);
|
|
142
|
+
const handleEndCall = useCallback(async () => {
|
|
143
|
+
setIsOpen(false);
|
|
144
|
+
resetDuration();
|
|
145
|
+
await endCall();
|
|
146
|
+
}, [endCall, resetDuration, setIsOpen]);
|
|
147
|
+
const handleMicToggle = useCallback(() => {
|
|
148
|
+
if (isMicMuted) {
|
|
149
|
+
unmuteMic();
|
|
150
|
+
} else {
|
|
151
|
+
muteMic();
|
|
152
|
+
}
|
|
153
|
+
}, [isMicMuted, muteMic, unmuteMic]);
|
|
154
|
+
return {
|
|
155
|
+
handleStartCall,
|
|
156
|
+
handleEndCall,
|
|
157
|
+
handleMicToggle
|
|
158
|
+
};
|
|
159
|
+
};
|
|
160
|
+
//# sourceMappingURL=EmbedButton.hooks.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["useCallback","useEffect","useRef","useState","getAgentData","checkPermissions","parseDelayMs","useConfigData","configData","setConfigData","fetchConfig","data","ui_config","error","console","useCallDuration","connectionState","callDuration","setCallDuration","timerRef","current","setInterval","prev","clearInterval","resetDuration","useInactivityBehavior","isOpen","isLoading","hasActiveToken","onStartCall","isAutoOpen","setIsAutoOpen","behavior","inactivity_behaviour","delayMs","popup_delay_ms","timer","setTimeout","popup_description","warn","clearTimeout","useCallManagement","initializeVoiceAgent","endCall","muteMic","unmuteMic","isMicMuted","setIsOpen","handleStartCall","handleEndCall","handleMicToggle"],"sourceRoot":"../../../src","sources":["hooks/EmbedButton.hooks.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -8,70 +8,110 @@
|
|
|
8
8
|
*
|
|
9
9
|
* The initialization process:
|
|
10
10
|
* 1. Validates required input parameters
|
|
11
|
-
* 2.
|
|
12
|
-
* 3.
|
|
11
|
+
* 2. Initializes LiveKit
|
|
12
|
+
* 3. Stores API key securely in keychain
|
|
13
|
+
* 4. Registers the device with provided details
|
|
13
14
|
*/
|
|
14
|
-
import { useState } from 'react';
|
|
15
|
+
import { useEffect, useState, useRef, useCallback } from 'react';
|
|
15
16
|
import { APIService } from "../api/api.js";
|
|
16
17
|
import { setAgentData } from "../store/store.key.js";
|
|
17
18
|
import registerAgent from "./initialize.livekit.js";
|
|
19
|
+
import { DEFAULT_EMBED_URL } from "../utils/constant.js";
|
|
20
|
+
// Global flag to ensure LiveKit is only initialized once
|
|
21
|
+
let livekitInitialized = false;
|
|
22
|
+
let livekitInitializing = false;
|
|
18
23
|
export function useInitialize({
|
|
19
24
|
apiKey,
|
|
20
25
|
embedUrl
|
|
21
26
|
}) {
|
|
22
27
|
const [isInitialized, setIsInitialized] = useState(false);
|
|
23
28
|
const [error, setError] = useState(null);
|
|
29
|
+
const initializingRef = useRef(false);
|
|
30
|
+
/**
|
|
31
|
+
* Initialize LiveKit once globally
|
|
32
|
+
*/
|
|
33
|
+
const initializeLiveKit = async () => {
|
|
34
|
+
if (livekitInitialized || livekitInitializing) {
|
|
35
|
+
return;
|
|
36
|
+
}
|
|
37
|
+
try {
|
|
38
|
+
livekitInitializing = true;
|
|
39
|
+
await registerAgent();
|
|
40
|
+
livekitInitialized = true;
|
|
41
|
+
} catch (err) {
|
|
42
|
+
console.error('Failed to initialize LiveKit:', err);
|
|
43
|
+
throw new Error('LiveKit initialization failed');
|
|
44
|
+
} finally {
|
|
45
|
+
livekitInitializing = false;
|
|
46
|
+
}
|
|
47
|
+
};
|
|
48
|
+
|
|
24
49
|
/**
|
|
25
50
|
* Validates required initialization parameters
|
|
26
|
-
* @throws Error if any required parameter is missing or invalid
|
|
27
51
|
*/
|
|
28
|
-
const validateInputs = () => {
|
|
52
|
+
const validateInputs = useCallback(() => {
|
|
29
53
|
if (!apiKey || typeof apiKey !== 'string') {
|
|
30
54
|
setError('apiKey is required and must be a string');
|
|
31
|
-
return;
|
|
55
|
+
return false;
|
|
32
56
|
}
|
|
33
|
-
|
|
34
|
-
|
|
57
|
+
return true;
|
|
58
|
+
}, [apiKey]);
|
|
59
|
+
|
|
60
|
+
/**
|
|
61
|
+
* Main initialization function
|
|
62
|
+
*/
|
|
63
|
+
const initialize = useCallback(async () => {
|
|
64
|
+
// Prevent multiple simultaneous initializations
|
|
65
|
+
if (initializingRef.current) {
|
|
35
66
|
return;
|
|
36
67
|
}
|
|
37
|
-
};
|
|
38
|
-
const initialize = async () => {
|
|
39
68
|
try {
|
|
40
|
-
|
|
69
|
+
initializingRef.current = true;
|
|
70
|
+
|
|
71
|
+
// Step 1: Initialize LiveKit first (critical!)
|
|
72
|
+
await initializeLiveKit();
|
|
73
|
+
|
|
74
|
+
// Step 2: Validate required parameters
|
|
75
|
+
if (!validateInputs()) {
|
|
76
|
+
return;
|
|
77
|
+
}
|
|
41
78
|
|
|
42
|
-
//
|
|
43
|
-
|
|
79
|
+
// Step 3: Determine embed URL
|
|
80
|
+
const resolvedEmbedUrl = embedUrl && typeof embedUrl === 'string' ? embedUrl : DEFAULT_EMBED_URL;
|
|
44
81
|
|
|
45
|
-
// Store API key in
|
|
82
|
+
// Step 4: Store API key in secure storage
|
|
46
83
|
await setAgentData({
|
|
47
84
|
apiKey,
|
|
48
|
-
embedUrl
|
|
85
|
+
embedUrl: resolvedEmbedUrl
|
|
49
86
|
});
|
|
50
87
|
|
|
51
|
-
//
|
|
88
|
+
// Step 5: Initialize API service
|
|
52
89
|
const apiService = APIService.getInstance();
|
|
53
90
|
await apiService.initialize();
|
|
54
|
-
|
|
91
|
+
|
|
92
|
+
// Step 6: Register device with backend
|
|
55
93
|
const registerResponse = await apiService.registerOnInitialize();
|
|
56
94
|
if (!registerResponse.success) {
|
|
57
|
-
|
|
58
|
-
return;
|
|
95
|
+
throw new Error(registerResponse.error || 'Device registration failed');
|
|
59
96
|
}
|
|
97
|
+
|
|
98
|
+
// Success!
|
|
60
99
|
if (registerResponse.data) {
|
|
61
|
-
// todo: store config
|
|
62
100
|
setIsInitialized(true);
|
|
63
101
|
}
|
|
64
102
|
} catch (err) {
|
|
65
|
-
console.log('err---', err);
|
|
66
|
-
console.log('err instanceof Error', err instanceof Error);
|
|
67
103
|
const errorMessage = err instanceof Error ? err.message : 'Initialization failed';
|
|
104
|
+
console.error('Initialization error:', errorMessage);
|
|
68
105
|
setError(errorMessage);
|
|
69
|
-
|
|
106
|
+
} finally {
|
|
107
|
+
initializingRef.current = false;
|
|
70
108
|
}
|
|
71
|
-
};
|
|
109
|
+
}, [apiKey, embedUrl, validateInputs]); // Dependencies for useCallback
|
|
72
110
|
|
|
73
|
-
// Initialize
|
|
74
|
-
|
|
111
|
+
// Initialize once when component mounts
|
|
112
|
+
useEffect(() => {
|
|
113
|
+
initialize();
|
|
114
|
+
}, [initialize]);
|
|
75
115
|
return {
|
|
76
116
|
isInitialized,
|
|
77
117
|
error
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["useState","APIService","setAgentData","registerAgent","useInitialize","apiKey","embedUrl","isInitialized","setIsInitialized","error","setError","
|
|
1
|
+
{"version":3,"names":["useEffect","useState","useRef","useCallback","APIService","setAgentData","registerAgent","DEFAULT_EMBED_URL","livekitInitialized","livekitInitializing","useInitialize","apiKey","embedUrl","isInitialized","setIsInitialized","error","setError","initializingRef","initializeLiveKit","err","console","Error","validateInputs","initialize","current","resolvedEmbedUrl","apiService","getInstance","registerResponse","registerOnInitialize","success","data","errorMessage","message"],"sourceRoot":"../../../src","sources":["hooks/initialize.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -2,8 +2,8 @@
|
|
|
2
2
|
|
|
3
3
|
import { ConnectionState, Room } from 'livekit-client';
|
|
4
4
|
import { useEffect, useState } from 'react';
|
|
5
|
+
import { EventKeys } from "../events/embed.event.js";
|
|
5
6
|
import { APIService } from "../api/api.js";
|
|
6
|
-
import embed, { AgentEvent, EventKeys } from "../events/embed.event.js";
|
|
7
7
|
import { getAgentData } from "../store/store.key.js";
|
|
8
8
|
// Create a singleton instance of Room that persists across hook instances
|
|
9
9
|
// This ensures we don't create multiple Room instances that could conflict
|
|
@@ -89,14 +89,6 @@ export const useVoiceAgent = () => {
|
|
|
89
89
|
if (stableConnectionTimerId) {
|
|
90
90
|
clearTimeout(stableConnectionTimerId);
|
|
91
91
|
}
|
|
92
|
-
|
|
93
|
-
// Emit agent connected event
|
|
94
|
-
embed.event.emit(AgentEvent.AGENT_CONNECTED, {
|
|
95
|
-
timestamp: Date.now(),
|
|
96
|
-
metadata: {
|
|
97
|
-
connectionState: state
|
|
98
|
-
}
|
|
99
|
-
});
|
|
100
92
|
} else if (state === ConnectionState.Disconnected) {
|
|
101
93
|
// Mark connection as unstable
|
|
102
94
|
|
|
@@ -106,14 +98,6 @@ export const useVoiceAgent = () => {
|
|
|
106
98
|
stableConnectionTimerId = null;
|
|
107
99
|
}
|
|
108
100
|
|
|
109
|
-
// Emit agent disconnected event
|
|
110
|
-
embed.event.emit(AgentEvent.AGENT_DISCONNECTED, {
|
|
111
|
-
timestamp: Date.now(),
|
|
112
|
-
metadata: {
|
|
113
|
-
connectionState: state
|
|
114
|
-
}
|
|
115
|
-
});
|
|
116
|
-
|
|
117
101
|
// If disconnected unexpectedly and we have token details, don't automatically reconnect
|
|
118
102
|
// This prevents connection loops
|
|
119
103
|
if (tokenDetails && !isDisconnecting) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["ConnectionState","Room","useEffect","useState","
|
|
1
|
+
{"version":3,"names":["ConnectionState","Room","useEffect","useState","EventKeys","APIService","getAgentData","roomInstance","isConnecting","isDisconnecting","hasListeners","connectionAttempts","stableConnectionTimerId","MAX_CONNECTION_ATTEMPTS","getRoomInstance","adaptiveStream","dynacast","publishDefaults","simulcast","resetConnectionAttempts","clearTimeout","resetRoomState","state","Disconnected","disconnect","finally","e","useVoiceAgent","isLoading","setIsLoading","error","setError","tokenDetails","setTokenDetails","isMicMuted","setIsMicMuted","connectionState","setConnectionState","room","setupRoomListeners","handleConnectionChange","Connected","handleTrackSubscribed","track","kind","setVolume","on","Error","message","connectToRoom","Connecting","connect","server_url","token","autoSubscribe","err","includes","generateVoiceToken","userData","USER_DATA","apiService","getInstance","response","getTokenDetails","app_user_id","call_type","data","endCall","muteMic","localParticipant","setMicrophoneEnabled","unmuteMic","cleanup","getPopupDescription","initializeVoiceAgent","roomRef","current"],"sourceRoot":"../../../src","sources":["hooks/voiceagent.ts"],"mappings":"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","ignoreList":[]}
|
package/dist/module/index.js
CHANGED
|
@@ -1,7 +1,9 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
+
import EmbedProvider from "./context/EmbedProvider.js";
|
|
3
4
|
import { EmbedButton } from "./components/Embed/EmbedButton.js";
|
|
4
|
-
import Embed, { EventKeys, AgentEvent } from "./events/embed.event.js";
|
|
5
5
|
import { useInitialize } from "./hooks/initialize.js";
|
|
6
|
-
|
|
6
|
+
import Embed, { EventKeys, AgentEvent } from "./events/embed.event.js";
|
|
7
|
+
import { checkPermissions } from "./utils/permision.js";
|
|
8
|
+
export { EmbedButton, EmbedProvider, useInitialize, Embed, EventKeys as EmbedEventKeys, AgentEvent, checkPermissions };
|
|
7
9
|
//# sourceMappingURL=index.js.map
|
package/dist/module/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["EmbedButton","Embed","EventKeys","AgentEvent","
|
|
1
|
+
{"version":3,"names":["EmbedProvider","EmbedButton","useInitialize","Embed","EventKeys","AgentEvent","checkPermissions","EmbedEventKeys"],"sourceRoot":"../../src","sources":["index.tsx"],"mappings":";;AAAA,OAAOA,aAAa,MAAM,4BAAyB;AACnD,SAASC,WAAW,QAAQ,mCAAgC;AAC5D,SAASC,aAAa,QAAQ,uBAAoB;AAClD,OAAOC,KAAK,IAAIC,SAAS,EAAEC,UAAU,QAAQ,yBAAsB;AAOnE,SAASC,gBAAgB,QAAQ,sBAAmB;AAOpD,SACEL,WAAW,EACXD,aAAa,EACbE,aAAa,EACbC,KAAK,EACLC,SAAS,IAAIG,cAAc,EAC3BF,UAAU,EACVC,gBAAgB","ignoreList":[]}
|
|
@@ -16,8 +16,7 @@
|
|
|
16
16
|
// Event system declarations
|
|
17
17
|
export let EventKeys = /*#__PURE__*/function (EventKeys) {
|
|
18
18
|
EventKeys["USER_DATA"] = "user_data";
|
|
19
|
-
EventKeys["SCREEN_STATE"] = "
|
|
20
|
-
EventKeys["OFFER_STATE"] = "offer_state";
|
|
19
|
+
EventKeys["SCREEN_STATE"] = "state_data";
|
|
21
20
|
return EventKeys;
|
|
22
21
|
}({});
|
|
23
22
|
//# sourceMappingURL=index.types.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["EventKeys"],"sourceRoot":"../../src","sources":["index.types.ts"],"mappings":";;AAAA;AACA;AACA;AACA;;AAKA;;AAGA;;AA0BA;;AAMA;;AAyBA;AACA,WAAYA,SAAS,0BAATA,SAAS;EAATA,SAAS;EAATA,SAAS;
|
|
1
|
+
{"version":3,"names":["EventKeys"],"sourceRoot":"../../src","sources":["index.types.ts"],"mappings":";;AAAA;AACA;AACA;AACA;;AAKA;;AAGA;;AA0BA;;AAMA;;AAyBA;AACA,WAAYA,SAAS,0BAATA,SAAS;EAATA,SAAS;EAATA,SAAS;EAAA,OAATA,SAAS;AAAA","ignoreList":[]}
|
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
// SDK Constants
|
|
4
|
+
|
|
5
|
+
export const SDK_NAME = 'embed_react_native';
|
|
6
|
+
export const SDK_VERSION = '1.0.17';
|
|
7
|
+
export const SDK_PLATFORM = 'react_native';
|
|
8
|
+
export const DEFAULT_EMBED_URL = 'https://embed.revrag.ai';
|
|
9
|
+
|
|
10
|
+
/**
|
|
11
|
+
* Generate a random event ID
|
|
12
|
+
*/
|
|
13
|
+
export function generateEventId() {
|
|
14
|
+
return `event_${Date.now()}_${Math.random().toString(36).substr(2, 9)}`;
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* Build a standardized event payload for the SDK
|
|
18
|
+
*/
|
|
19
|
+
export function buildEventPayload(params) {
|
|
20
|
+
const {
|
|
21
|
+
eventKey,
|
|
22
|
+
app_user_id,
|
|
23
|
+
appUserId,
|
|
24
|
+
eventData,
|
|
25
|
+
data: incomingData,
|
|
26
|
+
sessionId,
|
|
27
|
+
session_id,
|
|
28
|
+
context,
|
|
29
|
+
screen,
|
|
30
|
+
flow,
|
|
31
|
+
app_version,
|
|
32
|
+
event_name,
|
|
33
|
+
...rest
|
|
34
|
+
} = params;
|
|
35
|
+
const resolvedAppUserId = typeof app_user_id === 'string' && app_user_id || typeof appUserId === 'string' && appUserId;
|
|
36
|
+
if (!resolvedAppUserId) {
|
|
37
|
+
throw new Error('app_user_id is required to build event payload');
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
// Start with any explicit data objects and merge remaining unknown keys
|
|
41
|
+
const data = {
|
|
42
|
+
...(incomingData ?? {}),
|
|
43
|
+
...(eventData ?? {})
|
|
44
|
+
};
|
|
45
|
+
|
|
46
|
+
// Extract event_name if present in data, remove it from data object
|
|
47
|
+
let resolvedEventName = '';
|
|
48
|
+
if (typeof event_name === 'string' && event_name) {
|
|
49
|
+
resolvedEventName = event_name;
|
|
50
|
+
} else if (typeof data.event_name === 'string' && data.event_name) {
|
|
51
|
+
resolvedEventName = data.event_name;
|
|
52
|
+
delete data.event_name;
|
|
53
|
+
}
|
|
54
|
+
Object.entries(rest).forEach(([key, value]) => {
|
|
55
|
+
if (value !== undefined) {
|
|
56
|
+
data[key] = value;
|
|
57
|
+
}
|
|
58
|
+
});
|
|
59
|
+
const payload = {
|
|
60
|
+
event_id: generateEventId(),
|
|
61
|
+
type: eventKey,
|
|
62
|
+
app_user_id: resolvedAppUserId,
|
|
63
|
+
timestamp: new Date().toISOString(),
|
|
64
|
+
event_name: resolvedEventName,
|
|
65
|
+
sdk: {
|
|
66
|
+
sdk_name: SDK_NAME,
|
|
67
|
+
sdk_version: SDK_VERSION,
|
|
68
|
+
platform: SDK_PLATFORM
|
|
69
|
+
},
|
|
70
|
+
data
|
|
71
|
+
};
|
|
72
|
+
const resolvedSessionId = typeof sessionId === 'string' && sessionId || typeof session_id === 'string' && session_id;
|
|
73
|
+
const resolvedAppVersion = typeof app_version === 'string' ? app_version : undefined;
|
|
74
|
+
if (resolvedSessionId) {
|
|
75
|
+
payload.session_id = resolvedSessionId;
|
|
76
|
+
}
|
|
77
|
+
if (context || screen || flow || resolvedAppVersion) {
|
|
78
|
+
payload.context = {
|
|
79
|
+
...(context ?? {}),
|
|
80
|
+
...(screen ? {
|
|
81
|
+
screen
|
|
82
|
+
} : {}),
|
|
83
|
+
...(flow ? {
|
|
84
|
+
flow
|
|
85
|
+
} : {}),
|
|
86
|
+
...(resolvedAppVersion ? {
|
|
87
|
+
app_version: resolvedAppVersion
|
|
88
|
+
} : {})
|
|
89
|
+
};
|
|
90
|
+
}
|
|
91
|
+
return payload;
|
|
92
|
+
}
|
|
93
|
+
//# sourceMappingURL=constant.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["SDK_NAME","SDK_VERSION","SDK_PLATFORM","DEFAULT_EMBED_URL","generateEventId","Date","now","Math","random","toString","substr","buildEventPayload","params","eventKey","app_user_id","appUserId","eventData","data","incomingData","sessionId","session_id","context","screen","flow","app_version","event_name","rest","resolvedAppUserId","Error","resolvedEventName","Object","entries","forEach","key","value","undefined","payload","event_id","type","timestamp","toISOString","sdk","sdk_name","sdk_version","platform","resolvedSessionId","resolvedAppVersion"],"sourceRoot":"../../../src","sources":["utils/constant.ts"],"mappings":"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","ignoreList":[]}
|