@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.
Files changed (123) hide show
  1. package/README.md +6 -108
  2. package/android/build.gradle +3 -3
  3. package/dist/commonjs/api/api.js +6 -5
  4. package/dist/commonjs/api/api.js.map +1 -1
  5. package/dist/commonjs/components/Embed/EmbedButton.js +138 -345
  6. package/dist/commonjs/components/Embed/EmbedButton.js.map +1 -1
  7. package/dist/commonjs/components/Embed/EmbedVoice.js +16 -4
  8. package/dist/commonjs/components/Embed/EmbedVoice.js.map +1 -1
  9. package/dist/commonjs/context/EmbedProvider.js +638 -0
  10. package/dist/commonjs/context/EmbedProvider.js.map +1 -0
  11. package/dist/commonjs/events/agent-event-emitter.js +114 -0
  12. package/dist/commonjs/events/agent-event-emitter.js.map +1 -0
  13. package/dist/commonjs/events/embed.event.js +93 -79
  14. package/dist/commonjs/events/embed.event.js.map +1 -1
  15. package/dist/commonjs/events/embed.types.js +32 -0
  16. package/dist/commonjs/events/embed.types.js.map +1 -0
  17. package/dist/commonjs/events/embed.validators.js +36 -0
  18. package/dist/commonjs/events/embed.validators.js.map +1 -0
  19. package/dist/commonjs/events/index.js +47 -0
  20. package/dist/commonjs/events/index.js.map +1 -0
  21. package/dist/commonjs/hooks/EmbedButton.animations.js +181 -0
  22. package/dist/commonjs/hooks/EmbedButton.animations.js.map +1 -0
  23. package/dist/commonjs/hooks/EmbedButton.helpers.js +90 -0
  24. package/dist/commonjs/hooks/EmbedButton.helpers.js.map +1 -0
  25. package/dist/commonjs/hooks/EmbedButton.hooks.js +165 -0
  26. package/dist/commonjs/hooks/EmbedButton.hooks.js.map +1 -0
  27. package/dist/commonjs/hooks/initialize.js +65 -25
  28. package/dist/commonjs/hooks/initialize.js.map +1 -1
  29. package/dist/commonjs/hooks/voiceagent.js +1 -18
  30. package/dist/commonjs/hooks/voiceagent.js.map +1 -1
  31. package/dist/commonjs/index.js +16 -1
  32. package/dist/commonjs/index.js.map +1 -1
  33. package/dist/commonjs/index.types.js +1 -2
  34. package/dist/commonjs/index.types.js.map +1 -1
  35. package/dist/commonjs/utils/constant.js +99 -0
  36. package/dist/commonjs/utils/constant.js.map +1 -0
  37. package/dist/commonjs/utils/permision.js +48 -1
  38. package/dist/commonjs/utils/permision.js.map +1 -1
  39. package/dist/commonjs/utils/reanimated.helper.js +2 -3
  40. package/dist/commonjs/utils/reanimated.helper.js.map +1 -1
  41. package/dist/module/api/api.js +6 -6
  42. package/dist/module/api/api.js.map +1 -1
  43. package/dist/module/components/Embed/EmbedButton.js +140 -347
  44. package/dist/module/components/Embed/EmbedButton.js.map +1 -1
  45. package/dist/module/components/Embed/EmbedVoice.js +16 -4
  46. package/dist/module/components/Embed/EmbedVoice.js.map +1 -1
  47. package/dist/module/context/EmbedProvider.js +626 -0
  48. package/dist/module/context/EmbedProvider.js.map +1 -0
  49. package/dist/module/events/agent-event-emitter.js +109 -0
  50. package/dist/module/events/agent-event-emitter.js.map +1 -0
  51. package/dist/module/events/embed.event.js +82 -80
  52. package/dist/module/events/embed.event.js.map +1 -1
  53. package/dist/module/events/embed.types.js +33 -0
  54. package/dist/module/events/embed.types.js.map +1 -0
  55. package/dist/module/events/embed.validators.js +32 -0
  56. package/dist/module/events/embed.validators.js.map +1 -0
  57. package/dist/module/events/index.js +12 -0
  58. package/dist/module/events/index.js.map +1 -0
  59. package/dist/module/hooks/EmbedButton.animations.js +172 -0
  60. package/dist/module/hooks/EmbedButton.animations.js.map +1 -0
  61. package/dist/module/hooks/EmbedButton.helpers.js +80 -0
  62. package/dist/module/hooks/EmbedButton.helpers.js.map +1 -0
  63. package/dist/module/hooks/EmbedButton.hooks.js +160 -0
  64. package/dist/module/hooks/EmbedButton.hooks.js.map +1 -0
  65. package/dist/module/hooks/initialize.js +66 -26
  66. package/dist/module/hooks/initialize.js.map +1 -1
  67. package/dist/module/hooks/voiceagent.js +1 -17
  68. package/dist/module/hooks/voiceagent.js.map +1 -1
  69. package/dist/module/index.js +4 -2
  70. package/dist/module/index.js.map +1 -1
  71. package/dist/module/index.types.js +1 -2
  72. package/dist/module/index.types.js.map +1 -1
  73. package/dist/module/utils/constant.js +93 -0
  74. package/dist/module/utils/constant.js.map +1 -0
  75. package/dist/module/utils/permision.js +48 -1
  76. package/dist/module/utils/permision.js.map +1 -1
  77. package/dist/module/utils/reanimated.helper.js +2 -3
  78. package/dist/module/utils/reanimated.helper.js.map +1 -1
  79. package/dist/typescript/src/api/api.d.ts +4 -3
  80. package/dist/typescript/src/api/api.d.ts.map +1 -1
  81. package/dist/typescript/src/api/types/embed.api.types.d.ts +1 -1
  82. package/dist/typescript/src/api/types/embed.api.types.d.ts.map +1 -1
  83. package/dist/typescript/src/components/Embed/EmbedButton.d.ts +5 -25
  84. package/dist/typescript/src/components/Embed/EmbedButton.d.ts.map +1 -1
  85. package/dist/typescript/src/components/Embed/EmbedVoice.d.ts.map +1 -1
  86. package/dist/typescript/src/context/EmbedProvider.d.ts +306 -0
  87. package/dist/typescript/src/context/EmbedProvider.d.ts.map +1 -0
  88. package/dist/typescript/src/events/agent-event-emitter.d.ts +41 -0
  89. package/dist/typescript/src/events/agent-event-emitter.d.ts.map +1 -0
  90. package/dist/typescript/src/events/embed.event.d.ts +39 -21
  91. package/dist/typescript/src/events/embed.event.d.ts.map +1 -1
  92. package/dist/typescript/src/events/embed.types.d.ts +39 -0
  93. package/dist/typescript/src/events/embed.types.d.ts.map +1 -0
  94. package/dist/typescript/src/events/embed.validators.d.ts +17 -0
  95. package/dist/typescript/src/events/embed.validators.d.ts.map +1 -0
  96. package/dist/typescript/src/events/index.d.ts +10 -0
  97. package/dist/typescript/src/events/index.d.ts.map +1 -0
  98. package/dist/typescript/src/hooks/EmbedButton.animations.d.ts +38 -0
  99. package/dist/typescript/src/hooks/EmbedButton.animations.d.ts.map +1 -0
  100. package/dist/typescript/src/hooks/EmbedButton.helpers.d.ts +49 -0
  101. package/dist/typescript/src/hooks/EmbedButton.helpers.d.ts.map +1 -0
  102. package/dist/typescript/src/hooks/EmbedButton.hooks.d.ts +49 -0
  103. package/dist/typescript/src/hooks/EmbedButton.hooks.d.ts.map +1 -0
  104. package/dist/typescript/src/hooks/initialize.d.ts.map +1 -1
  105. package/dist/typescript/src/hooks/types/initialize.types.d.ts +1 -1
  106. package/dist/typescript/src/hooks/types/initialize.types.d.ts.map +1 -1
  107. package/dist/typescript/src/hooks/voiceagent.d.ts.map +1 -1
  108. package/dist/typescript/src/index.d.ts +10 -4
  109. package/dist/typescript/src/index.d.ts.map +1 -1
  110. package/dist/typescript/src/index.types.d.ts +2 -3
  111. package/dist/typescript/src/index.types.d.ts.map +1 -1
  112. package/dist/typescript/src/utils/constant.d.ts +46 -0
  113. package/dist/typescript/src/utils/constant.d.ts.map +1 -0
  114. package/dist/typescript/src/utils/permision.d.ts.map +1 -1
  115. package/dist/typescript/src/utils/reanimated.helper.d.ts.map +1 -1
  116. package/package.json +16 -8
  117. package/react-native.config.js +1 -0
  118. package/dist/commonjs/events/eventEmitter.js +0 -43
  119. package/dist/commonjs/events/eventEmitter.js.map +0 -1
  120. package/dist/module/events/eventEmitter.js +0 -39
  121. package/dist/module/events/eventEmitter.js.map +0 -1
  122. package/dist/typescript/src/events/eventEmitter.d.ts +0 -9
  123. 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":";;AAAA;AACA;AACA;AACA;;AAEA,SAASA,WAAW,EAAEC,SAAS,EAAEC,MAAM,EAAEC,QAAQ,QAAQ,OAAO;AAChE,SAASC,YAAY,QAAQ,uBAAoB;AACjD,SAASC,gBAAgB,QAAQ,uBAAoB;AAErD,SAASC,YAAY,QAAQ,0BAAuB;;AAEpD;AACA;AACA;AACA;AACA,OAAO,MAAMC,aAAa,GAAGA,CAAA,KAAM;EACjC,MAAM,CAACC,UAAU,EAAEC,aAAa,CAAC,GAAGN,QAAQ,CAAoB,IAAI,CAAC;EAErEF,SAAS,CAAC,MAAM;IACd,MAAMS,WAAW,GAAG,MAAAA,CAAA,KAAY;MAC9B,IAAI;QACF,MAAMC,IAAI,GAAG,MAAMP,YAAY,CAAC,cAAc,CAAC;QAC/CK,aAAa,CAACE,IAAI,EAAEC,SAAS,IAAI,IAAI,CAAC;MACxC,CAAC,CAAC,OAAOC,KAAK,EAAE;QACdC,OAAO,CAACD,KAAK,CAAC,8BAA8B,EAAEA,KAAK,CAAC;MACtD;IACF,CAAC;IAEDH,WAAW,CAAC,CAAC;EACf,CAAC,EAAE,EAAE,CAAC;EAEN,OAAOF,UAAU;AACnB,CAAC;;AAED;AACA;AACA;AACA;AACA,OAAO,MAAMO,eAAe,GAAIC,eAAuB,IAAK;EAC1D,MAAM,CAACC,YAAY,EAAEC,eAAe,CAAC,GAAGf,QAAQ,CAAC,CAAC,CAAC;EACnD,MAAMgB,QAAQ,GAAGjB,MAAM,CAAwB,IAAI,CAAC;EAEpDD,SAAS,CAAC,MAAM;IACd,IAAIe,eAAe,KAAK,WAAW,IAAI,CAACG,QAAQ,CAACC,OAAO,EAAE;MACxD;MACAD,QAAQ,CAACC,OAAO,GAAGC,WAAW,CAAC,MAAM;QACnCH,eAAe,CAAEI,IAAI,IAAKA,IAAI,GAAG,CAAC,CAAC;MACrC,CAAC,EAAE,IAAI,CAAC;IACV,CAAC,MAAM,IAAIN,eAAe,KAAK,WAAW,IAAIG,QAAQ,CAACC,OAAO,EAAE;MAC9D;MACAG,aAAa,CAACJ,QAAQ,CAACC,OAAO,CAAC;MAC/BD,QAAQ,CAACC,OAAO,GAAG,IAAI;IACzB;IAEA,OAAO,MAAM;MACX,IAAID,QAAQ,CAACC,OAAO,EAAE;QACpBG,aAAa,CAACJ,QAAQ,CAACC,OAAO,CAAC;QAC/BD,QAAQ,CAACC,OAAO,GAAG,IAAI;MACzB;IACF,CAAC;EACH,CAAC,EAAE,CAACJ,eAAe,CAAC,CAAC;EAErB,MAAMQ,aAAa,GAAGxB,WAAW,CAAC,MAAM;IACtCkB,eAAe,CAAC,CAAC,CAAC;IAClB,IAAIC,QAAQ,CAACC,OAAO,EAAE;MACpBG,aAAa,CAACJ,QAAQ,CAACC,OAAO,CAAC;MAC/BD,QAAQ,CAACC,OAAO,GAAG,IAAI;IACzB;EACF,CAAC,EAAE,EAAE,CAAC;EAEN,OAAO;IAAEH,YAAY;IAAEO;EAAc,CAAC;AACxC,CAAC;;AAED;AACA;AACA;AACA;;AASA,OAAO,MAAMC,qBAAqB,GAAGA,CAAC;EACpCjB,UAAU;EACVkB,MAAM;EACNC,SAAS;EACTC,cAAc;EACdC;AAC2B,CAAC,KAAK;EACjC,MAAM,CAACC,UAAU,EAAEC,aAAa,CAAC,GAAG5B,QAAQ,CAAC,KAAK,CAAC;EAEnDF,SAAS,CAAC,MAAM;IACd,MAAM+B,QAAQ,GAAGxB,UAAU,EAAEyB,oBAAoB;;IAEjD;IACA,IAAID,QAAQ,KAAK,YAAY,IAAIA,QAAQ,KAAK,cAAc,EAAE;MAC5D;IACF;;IAEA;IACA,MAAME,OAAO,GAAG5B,YAAY,CAACE,UAAU,EAAE2B,cAAc,CAAC;IAExD,MAAMC,KAAK,GAAGC,UAAU,CAAC,YAAY;MACnC,IAAIX,MAAM,EAAE;MAEZ,IAAIM,QAAQ,KAAK,YAAY,EAAE;QAC7B;QACA,IAAIxB,UAAU,EAAE8B,iBAAiB,EAAE;UACjCP,aAAa,CAAC,IAAI,CAAC;QACrB,CAAC,MAAM;UACLjB,OAAO,CAACyB,IAAI,CAAC,uDAAuD,CAAC;QACvE;MACF,CAAC,MAAM,IAAIP,QAAQ,KAAK,cAAc,EAAE;QACtC;QACAD,aAAa,CAAC,KAAK,CAAC;QAEpB,IAAI,CAACH,cAAc,IAAI,CAACD,SAAS,EAAE;UACjC,IAAI;YACF,MAAME,WAAW,CAAC,CAAC;UACrB,CAAC,CAAC,OAAOhB,KAAK,EAAE;YACdC,OAAO,CAACD,KAAK,CAAC,2BAA2B,EAAEA,KAAK,CAAC;UACnD;QACF;MACF;IACF,CAAC,EAAEqB,OAAO,CAAC;IAEX,OAAO,MAAMM,YAAY,CAACJ,KAAK,CAAC;EAClC,CAAC,EAAE,CACD5B,UAAU,EAAEyB,oBAAoB,EAChCzB,UAAU,EAAE2B,cAAc,EAC1B3B,UAAU,EAAE8B,iBAAiB,EAC7BZ,MAAM,EACNC,SAAS,EACTC,cAAc,EACdC,WAAW,CACZ,CAAC;EAEF,OAAO;IAAEC,UAAU;IAAEC;EAAc,CAAC;AACtC,CAAC;;AAED;AACA;AACA;AACA;;AAWA,OAAO,MAAMU,iBAAiB,GAAGA,CAAC;EAChCC,oBAAoB;EACpBC,OAAO;EACPC,OAAO;EACPC,SAAS;EACTC,UAAU;EACVtB,aAAa;EACbuB;AACuB,CAAC,KAAK;EAC7B,MAAMC,eAAe,GAAGhD,WAAW,CAAC,YAAY;IAC9C,MAAMK,gBAAgB,CAAC,CAAC;IACxBmB,aAAa,CAAC,CAAC;IACf,MAAMkB,oBAAoB,CAAC,CAAC;EAC9B,CAAC,EAAE,CAACA,oBAAoB,EAAElB,aAAa,CAAC,CAAC;EAEzC,MAAMyB,aAAa,GAAGjD,WAAW,CAAC,YAAY;IAC5C+C,SAAS,CAAC,KAAK,CAAC;IAChBvB,aAAa,CAAC,CAAC;IACf,MAAMmB,OAAO,CAAC,CAAC;EACjB,CAAC,EAAE,CAACA,OAAO,EAAEnB,aAAa,EAAEuB,SAAS,CAAC,CAAC;EAEvC,MAAMG,eAAe,GAAGlD,WAAW,CAAC,MAAM;IACxC,IAAI8C,UAAU,EAAE;MACdD,SAAS,CAAC,CAAC;IACb,CAAC,MAAM;MACLD,OAAO,CAAC,CAAC;IACX;EACF,CAAC,EAAE,CAACE,UAAU,EAAEF,OAAO,EAAEC,SAAS,CAAC,CAAC;EAEpC,OAAO;IACLG,eAAe;IACfC,aAAa;IACbC;EACF,CAAC;AACH,CAAC","ignoreList":[]}
@@ -8,70 +8,110 @@
8
8
  *
9
9
  * The initialization process:
10
10
  * 1. Validates required input parameters
11
- * 2. Stores API key securely in keychain
12
- * 3. Registers the device with provided details
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
- if (!embedUrl || typeof embedUrl !== 'string') {
34
- setError('embedUrl is required and must be a string');
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
- registerAgent();
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
- // Validate required parameters before proceeding
43
- validateInputs();
79
+ // Step 3: Determine embed URL
80
+ const resolvedEmbedUrl = embedUrl && typeof embedUrl === 'string' ? embedUrl : DEFAULT_EMBED_URL;
44
81
 
45
- // Store API key in keychain
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
- // Get the APIService instance and initialize it
88
+ // Step 5: Initialize API service
52
89
  const apiService = APIService.getInstance();
53
90
  await apiService.initialize();
54
- // Register new device with provided details
91
+
92
+ // Step 6: Register device with backend
55
93
  const registerResponse = await apiService.registerOnInitialize();
56
94
  if (!registerResponse.success) {
57
- setError(registerResponse.error || 'Device registration failed');
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
- return;
106
+ } finally {
107
+ initializingRef.current = false;
70
108
  }
71
- };
109
+ }, [apiKey, embedUrl, validateInputs]); // Dependencies for useCallback
72
110
 
73
- // Initialize immediately when hook is called
74
- initialize().catch(console.error);
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","validateInputs","initialize","apiService","getInstance","registerResponse","registerOnInitialize","success","data","err","console","log","Error","errorMessage","message","catch"],"sourceRoot":"../../../src","sources":["hooks/initialize.ts"],"mappings":";;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAASA,QAAQ,QAAQ,OAAO;AAChC,SAASC,UAAU,QAAQ,eAAY;AACvC,SAASC,YAAY,QAAQ,uBAAoB;AACjD,OAAOC,aAAa,MAAM,yBAAsB;AAMhD,OAAO,SAASC,aAAaA,CAAC;EAC5BC,MAAM;EACNC;AACkB,CAAC,EAAuB;EAC1C,MAAM,CAACC,aAAa,EAAEC,gBAAgB,CAAC,GAAGR,QAAQ,CAAC,KAAK,CAAC;EACzD,MAAM,CAACS,KAAK,EAAEC,QAAQ,CAAC,GAAGV,QAAQ,CAAgB,IAAI,CAAC;EACvD;AACF;AACA;AACA;EACE,MAAMW,cAAc,GAAGA,CAAA,KAAM;IAC3B,IAAI,CAACN,MAAM,IAAI,OAAOA,MAAM,KAAK,QAAQ,EAAE;MACzCK,QAAQ,CAAC,yCAAyC,CAAC;MACnD;IACF;IACA,IAAI,CAACJ,QAAQ,IAAI,OAAOA,QAAQ,KAAK,QAAQ,EAAE;MAC7CI,QAAQ,CAAC,2CAA2C,CAAC;MACrD;IACF;EACF,CAAC;EAED,MAAME,UAAU,GAAG,MAAAA,CAAA,KAA2B;IAC5C,IAAI;MACFT,aAAa,CAAC,CAAC;;MAEf;MACAQ,cAAc,CAAC,CAAC;;MAEhB;MACA,MAAMT,YAAY,CAAC;QACjBG,MAAM;QACNC;MACF,CAAC,CAAC;;MAEF;MACA,MAAMO,UAAU,GAAGZ,UAAU,CAACa,WAAW,CAAC,CAAC;MAC3C,MAAMD,UAAU,CAACD,UAAU,CAAC,CAAC;MAC7B;MACA,MAAMG,gBAAgB,GAAG,MAAMF,UAAU,CAACG,oBAAoB,CAAC,CAAC;MAEhE,IAAI,CAACD,gBAAgB,CAACE,OAAO,EAAE;QAC7BP,QAAQ,CAACK,gBAAgB,CAACN,KAAK,IAAI,4BAA4B,CAAC;QAChE;MACF;MACA,IAAIM,gBAAgB,CAACG,IAAI,EAAE;QACzB;QACAV,gBAAgB,CAAC,IAAI,CAAC;MACxB;IACF,CAAC,CAAC,OAAOW,GAAG,EAAE;MACZC,OAAO,CAACC,GAAG,CAAC,QAAQ,EAAEF,GAAG,CAAC;MAC1BC,OAAO,CAACC,GAAG,CAAC,sBAAsB,EAAEF,GAAG,YAAYG,KAAK,CAAC;MACzD,MAAMC,YAAY,GAChBJ,GAAG,YAAYG,KAAK,GAAGH,GAAG,CAACK,OAAO,GAAG,uBAAuB;MAC9Dd,QAAQ,CAACa,YAAY,CAAC;MACtB;IACF;EACF,CAAC;;EAED;EACAX,UAAU,CAAC,CAAC,CAACa,KAAK,CAACL,OAAO,CAACX,KAAK,CAAC;EACjC,OAAO;IAAEF,aAAa;IAAEE;EAAM,CAAC;AACjC","ignoreList":[]}
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","APIService","embed","AgentEvent","EventKeys","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","event","emit","AGENT_CONNECTED","timestamp","Date","now","metadata","AGENT_DISCONNECTED","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":[]}
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":[]}
@@ -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
- export { Embed, EmbedButton, EventKeys as EmbedEventKeys, useInitialize, AgentEvent };
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
@@ -1 +1 @@
1
- {"version":3,"names":["EmbedButton","Embed","EventKeys","AgentEvent","useInitialize","EmbedEventKeys"],"sourceRoot":"../../src","sources":["index.tsx"],"mappings":";;AAMA,SAASA,WAAW,QAAQ,mCAAgC;AAC5D,OAAOC,KAAK,IAAIC,SAAS,EAAEC,UAAU,QAAQ,yBAAsB;AACnE,SAASC,aAAa,QAAQ,uBAAoB;AAIlD,SACEH,KAAK,EACLD,WAAW,EACXE,SAAS,IAAIG,cAAc,EAC3BD,aAAa,EACbD,UAAU","ignoreList":[]}
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"] = "state_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;EAATA,SAAS;EAAA,OAATA,SAAS;AAAA","ignoreList":[]}
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":[]}