@convai/web-sdk 0.3.1-beta.2 → 0.3.2-beta.0

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 (287) hide show
  1. package/README.md +535 -1077
  2. package/dist/core/AudioManager.d.ts.map +1 -0
  3. package/dist/core/AudioManager.js +262 -0
  4. package/dist/core/AudioManager.js.map +1 -0
  5. package/dist/core/BlendshapeQueue.d.ts +128 -0
  6. package/dist/core/BlendshapeQueue.d.ts.map +1 -0
  7. package/dist/core/BlendshapeQueue.js +229 -0
  8. package/dist/core/BlendshapeQueue.js.map +1 -0
  9. package/dist/{types/core → core}/ConvaiClient.d.ts +19 -15
  10. package/dist/core/ConvaiClient.d.ts.map +1 -0
  11. package/dist/core/ConvaiClient.js +623 -0
  12. package/dist/core/ConvaiClient.js.map +1 -0
  13. package/dist/core/EventEmitter.d.ts.map +1 -0
  14. package/dist/core/EventEmitter.js +68 -0
  15. package/dist/core/EventEmitter.js.map +1 -0
  16. package/dist/{types/core → core}/MessageHandler.d.ts +7 -0
  17. package/dist/core/MessageHandler.d.ts.map +1 -0
  18. package/dist/core/MessageHandler.js +333 -0
  19. package/dist/core/MessageHandler.js.map +1 -0
  20. package/dist/core/ScreenShareManager.d.ts.map +1 -0
  21. package/dist/core/ScreenShareManager.js +207 -0
  22. package/dist/core/ScreenShareManager.js.map +1 -0
  23. package/dist/core/VideoManager.d.ts.map +1 -0
  24. package/dist/core/VideoManager.js +205 -0
  25. package/dist/core/VideoManager.js.map +1 -0
  26. package/dist/{types/core → core}/index.d.ts +2 -0
  27. package/dist/core/index.d.ts.map +1 -0
  28. package/dist/core/index.js +14 -1970
  29. package/dist/core/index.js.map +1 -0
  30. package/dist/{types/core → core}/types.d.ts +12 -21
  31. package/dist/core/types.d.ts.map +1 -0
  32. package/dist/core/types.js +2 -0
  33. package/dist/core/types.js.map +1 -0
  34. package/dist/dev.d.ts.map +1 -0
  35. package/dist/dev.js +12 -0
  36. package/dist/dev.js.map +1 -0
  37. package/dist/index.d.ts +4 -0
  38. package/dist/index.d.ts.map +1 -0
  39. package/dist/index.js +6 -0
  40. package/dist/index.js.map +1 -0
  41. package/dist/lipsync-helpers/arkitBlendshapeHelpers.d.ts.map +1 -0
  42. package/dist/lipsync-helpers/arkitBlendshapeHelpers.js +201 -0
  43. package/dist/lipsync-helpers/arkitBlendshapeHelpers.js.map +1 -0
  44. package/dist/lipsync-helpers/arkitOrder61.d.ts.map +1 -0
  45. package/dist/lipsync-helpers/arkitOrder61.js +287 -0
  46. package/dist/lipsync-helpers/arkitOrder61.js.map +1 -0
  47. package/dist/lipsync-helpers/arkitPhonemeReference.d.ts.map +1 -0
  48. package/dist/lipsync-helpers/arkitPhonemeReference.js +362 -0
  49. package/dist/lipsync-helpers/arkitPhonemeReference.js.map +1 -0
  50. package/dist/{types/lipsync-helpers → lipsync-helpers}/index.d.ts +1 -0
  51. package/dist/lipsync-helpers/index.d.ts.map +1 -0
  52. package/dist/lipsync-helpers/index.js +20 -1165
  53. package/dist/lipsync-helpers/index.js.map +1 -0
  54. package/dist/lipsync-helpers/metahumanOrder251.d.ts +115 -0
  55. package/dist/lipsync-helpers/metahumanOrder251.d.ts.map +1 -0
  56. package/dist/lipsync-helpers/metahumanOrder251.js +432 -0
  57. package/dist/lipsync-helpers/metahumanOrder251.js.map +1 -0
  58. package/dist/lipsync-helpers/neurosyncBlendshapeMapper.d.ts.map +1 -0
  59. package/dist/lipsync-helpers/neurosyncBlendshapeMapper.js +315 -0
  60. package/dist/lipsync-helpers/neurosyncBlendshapeMapper.js.map +1 -0
  61. package/dist/react/components/ConvaiWidget.d.ts.map +1 -0
  62. package/dist/react/components/ConvaiWidget.js +505 -0
  63. package/dist/react/components/ConvaiWidget.js.map +1 -0
  64. package/dist/react/components/index.d.ts.map +1 -0
  65. package/dist/react/components/index.js +3 -0
  66. package/dist/react/components/index.js.map +1 -0
  67. package/dist/react/components/rtc-widget/components/AudioSettingsPanel.d.ts.map +1 -0
  68. package/dist/react/components/rtc-widget/components/AudioSettingsPanel.js +316 -0
  69. package/dist/react/components/rtc-widget/components/AudioSettingsPanel.js.map +1 -0
  70. package/dist/react/components/rtc-widget/components/AudioVisualizer.d.ts.map +1 -0
  71. package/dist/react/components/rtc-widget/components/AudioVisualizer.js +259 -0
  72. package/dist/react/components/rtc-widget/components/AudioVisualizer.js.map +1 -0
  73. package/dist/react/components/rtc-widget/components/ConviMessage.d.ts.map +1 -0
  74. package/dist/react/components/rtc-widget/components/ConviMessage.js +14 -0
  75. package/dist/react/components/rtc-widget/components/ConviMessage.js.map +1 -0
  76. package/dist/react/components/rtc-widget/components/FloatingVideo.d.ts.map +1 -0
  77. package/dist/react/components/rtc-widget/components/FloatingVideo.js +122 -0
  78. package/dist/react/components/rtc-widget/components/FloatingVideo.js.map +1 -0
  79. package/dist/react/components/rtc-widget/components/MarkdownRenderer.d.ts.map +1 -0
  80. package/dist/react/components/rtc-widget/components/MarkdownRenderer.js +68 -0
  81. package/dist/react/components/rtc-widget/components/MarkdownRenderer.js.map +1 -0
  82. package/dist/react/components/rtc-widget/components/MessageBubble.d.ts.map +1 -0
  83. package/dist/react/components/rtc-widget/components/MessageBubble.js +23 -0
  84. package/dist/react/components/rtc-widget/components/MessageBubble.js.map +1 -0
  85. package/dist/react/components/rtc-widget/components/MessageList.d.ts.map +1 -0
  86. package/dist/react/components/rtc-widget/components/MessageList.js +89 -0
  87. package/dist/react/components/rtc-widget/components/MessageList.js.map +1 -0
  88. package/dist/react/components/rtc-widget/components/UserMessage.d.ts.map +1 -0
  89. package/dist/react/components/rtc-widget/components/UserMessage.js +15 -0
  90. package/dist/react/components/rtc-widget/components/UserMessage.js.map +1 -0
  91. package/dist/react/components/rtc-widget/components/conviComponents/ConviButton.d.ts.map +1 -0
  92. package/dist/react/components/rtc-widget/components/conviComponents/ConviButton.js +15 -0
  93. package/dist/react/components/rtc-widget/components/conviComponents/ConviButton.js.map +1 -0
  94. package/dist/react/components/rtc-widget/components/conviComponents/ConviFooter.d.ts.map +1 -0
  95. package/dist/react/components/rtc-widget/components/conviComponents/ConviFooter.js +172 -0
  96. package/dist/react/components/rtc-widget/components/conviComponents/ConviFooter.js.map +1 -0
  97. package/dist/react/components/rtc-widget/components/conviComponents/ConviHeader.d.ts.map +1 -0
  98. package/dist/react/components/rtc-widget/components/conviComponents/ConviHeader.js +66 -0
  99. package/dist/react/components/rtc-widget/components/conviComponents/ConviHeader.js.map +1 -0
  100. package/dist/react/components/rtc-widget/components/conviComponents/SettingsTray.d.ts.map +1 -0
  101. package/dist/react/components/rtc-widget/components/conviComponents/SettingsTray.js +68 -0
  102. package/dist/react/components/rtc-widget/components/conviComponents/SettingsTray.js.map +1 -0
  103. package/dist/react/components/rtc-widget/components/conviComponents/VoiceModeOverlay.d.ts.map +1 -0
  104. package/dist/react/components/rtc-widget/components/conviComponents/VoiceModeOverlay.js +255 -0
  105. package/dist/react/components/rtc-widget/components/conviComponents/VoiceModeOverlay.js.map +1 -0
  106. package/dist/react/components/rtc-widget/components/conviComponents/index.d.ts.map +1 -0
  107. package/dist/react/components/rtc-widget/components/conviComponents/index.js +6 -0
  108. package/dist/react/components/rtc-widget/components/conviComponents/index.js.map +1 -0
  109. package/dist/react/components/rtc-widget/components/index.d.ts.map +1 -0
  110. package/dist/react/components/rtc-widget/components/index.js +15 -0
  111. package/dist/react/components/rtc-widget/components/index.js.map +1 -0
  112. package/dist/react/components/rtc-widget/index.d.ts.map +1 -0
  113. package/dist/react/components/rtc-widget/index.js +9 -0
  114. package/dist/react/components/rtc-widget/index.js.map +1 -0
  115. package/dist/react/components/rtc-widget/styles/framerConfig.d.ts.map +1 -0
  116. package/dist/react/components/rtc-widget/styles/framerConfig.js +73 -0
  117. package/dist/react/components/rtc-widget/styles/framerConfig.js.map +1 -0
  118. package/dist/react/components/rtc-widget/styles/icons.d.ts.map +1 -0
  119. package/dist/react/components/rtc-widget/styles/icons.js +257 -0
  120. package/dist/react/components/rtc-widget/styles/icons.js.map +1 -0
  121. package/dist/react/components/rtc-widget/styles/index.d.ts.map +1 -0
  122. package/dist/react/components/rtc-widget/styles/index.js +9 -0
  123. package/dist/react/components/rtc-widget/styles/index.js.map +1 -0
  124. package/dist/react/components/rtc-widget/styles/styledComponents.d.ts.map +1 -0
  125. package/dist/react/components/rtc-widget/styles/styledComponents.js +663 -0
  126. package/dist/react/components/rtc-widget/styles/styledComponents.js.map +1 -0
  127. package/dist/react/components/rtc-widget/styles/theme.d.ts.map +1 -0
  128. package/dist/react/components/rtc-widget/styles/theme.js +290 -0
  129. package/dist/react/components/rtc-widget/styles/theme.js.map +1 -0
  130. package/dist/react/components/rtc-widget/types/index.d.ts.map +1 -0
  131. package/dist/react/components/rtc-widget/types/index.js +2 -0
  132. package/dist/react/components/rtc-widget/types/index.js.map +1 -0
  133. package/dist/react/hooks/index.d.ts.map +1 -0
  134. package/dist/react/hooks/index.js +6 -0
  135. package/dist/react/hooks/index.js.map +1 -0
  136. package/dist/react/hooks/useCharacterInfo.d.ts.map +1 -0
  137. package/dist/react/hooks/useCharacterInfo.js +60 -0
  138. package/dist/react/hooks/useCharacterInfo.js.map +1 -0
  139. package/dist/react/hooks/useConvaiClient.d.ts +35 -0
  140. package/dist/react/hooks/useConvaiClient.d.ts.map +1 -0
  141. package/dist/react/hooks/useConvaiClient.js +183 -0
  142. package/dist/react/hooks/useConvaiClient.js.map +1 -0
  143. package/dist/react/hooks/useLocalCameraTrack.d.ts.map +1 -0
  144. package/dist/react/hooks/useLocalCameraTrack.js +34 -0
  145. package/dist/react/hooks/useLocalCameraTrack.js.map +1 -0
  146. package/dist/{types/react → react}/index.d.ts +0 -2
  147. package/dist/react/index.d.ts.map +1 -0
  148. package/dist/react/index.js +13 -0
  149. package/dist/react/index.js.map +1 -0
  150. package/dist/types/index.d.ts +260 -1
  151. package/dist/types/index.d.ts.map +1 -1
  152. package/dist/types/index.js +2 -0
  153. package/dist/types/index.js.map +1 -0
  154. package/dist/utils/LatencyMonitor.d.ts.map +1 -0
  155. package/dist/utils/LatencyMonitor.js +136 -0
  156. package/dist/utils/LatencyMonitor.js.map +1 -0
  157. package/dist/utils/logger.d.ts.map +1 -0
  158. package/dist/utils/logger.js +96 -0
  159. package/dist/utils/logger.js.map +1 -0
  160. package/dist/utils/speakerManagement.d.ts.map +1 -0
  161. package/dist/utils/speakerManagement.js +64 -0
  162. package/dist/utils/speakerManagement.js.map +1 -0
  163. package/dist/{types/vanilla → vanilla}/AudioRenderer.d.ts +5 -0
  164. package/dist/vanilla/AudioRenderer.d.ts.map +1 -0
  165. package/dist/vanilla/AudioRenderer.js +135 -0
  166. package/dist/vanilla/AudioRenderer.js.map +1 -0
  167. package/dist/vanilla/ConvaiWidget.d.ts.map +1 -0
  168. package/dist/vanilla/ConvaiWidget.js +1786 -0
  169. package/dist/vanilla/ConvaiWidget.js.map +1 -0
  170. package/dist/vanilla/icons.d.ts.map +1 -0
  171. package/dist/vanilla/icons.js +222 -0
  172. package/dist/vanilla/icons.js.map +1 -0
  173. package/dist/{types/vanilla → vanilla}/index.d.ts +1 -3
  174. package/dist/vanilla/index.d.ts.map +1 -0
  175. package/dist/vanilla/index.js +20 -5507
  176. package/dist/vanilla/index.js.map +1 -0
  177. package/dist/vanilla/styles.d.ts.map +1 -0
  178. package/dist/vanilla/styles.js +287 -0
  179. package/dist/vanilla/styles.js.map +1 -0
  180. package/dist/vanilla/types.d.ts +43 -0
  181. package/dist/vanilla/types.d.ts.map +1 -0
  182. package/dist/vanilla/types.js +2 -0
  183. package/dist/vanilla/types.js.map +1 -0
  184. package/package.json +33 -38
  185. package/CHANGELOG.md +0 -165
  186. package/dist/core/index.cjs +0 -1977
  187. package/dist/lipsync-helpers/index.cjs +0 -1195
  188. package/dist/types/core/AudioManager.d.ts.map +0 -1
  189. package/dist/types/core/ConvaiClient.d.ts.map +0 -1
  190. package/dist/types/core/EventEmitter.d.ts.map +0 -1
  191. package/dist/types/core/MessageHandler.d.ts.map +0 -1
  192. package/dist/types/core/ScreenShareManager.d.ts.map +0 -1
  193. package/dist/types/core/VideoManager.d.ts.map +0 -1
  194. package/dist/types/core/index.d.ts.map +0 -1
  195. package/dist/types/core/types.d.ts.map +0 -1
  196. package/dist/types/dev.d.ts.map +0 -1
  197. package/dist/types/lipsync-helpers/arkitBlendshapeHelpers.d.ts.map +0 -1
  198. package/dist/types/lipsync-helpers/arkitOrder61.d.ts.map +0 -1
  199. package/dist/types/lipsync-helpers/arkitPhonemeReference.d.ts.map +0 -1
  200. package/dist/types/lipsync-helpers/index.d.ts.map +0 -1
  201. package/dist/types/lipsync-helpers/neurosyncBlendshapeMapper.d.ts.map +0 -1
  202. package/dist/types/react/components/ConvaiWidget.d.ts.map +0 -1
  203. package/dist/types/react/components/index.d.ts.map +0 -1
  204. package/dist/types/react/components/rtc-widget/components/AudioSettingsPanel.d.ts.map +0 -1
  205. package/dist/types/react/components/rtc-widget/components/AudioVisualizer.d.ts.map +0 -1
  206. package/dist/types/react/components/rtc-widget/components/ConviMessage.d.ts.map +0 -1
  207. package/dist/types/react/components/rtc-widget/components/FloatingVideo.d.ts.map +0 -1
  208. package/dist/types/react/components/rtc-widget/components/MarkdownRenderer.d.ts.map +0 -1
  209. package/dist/types/react/components/rtc-widget/components/MessageBubble.d.ts.map +0 -1
  210. package/dist/types/react/components/rtc-widget/components/MessageList.d.ts.map +0 -1
  211. package/dist/types/react/components/rtc-widget/components/UserMessage.d.ts.map +0 -1
  212. package/dist/types/react/components/rtc-widget/components/conviComponents/ConviButton.d.ts.map +0 -1
  213. package/dist/types/react/components/rtc-widget/components/conviComponents/ConviFooter.d.ts.map +0 -1
  214. package/dist/types/react/components/rtc-widget/components/conviComponents/ConviHeader.d.ts.map +0 -1
  215. package/dist/types/react/components/rtc-widget/components/conviComponents/SettingsTray.d.ts.map +0 -1
  216. package/dist/types/react/components/rtc-widget/components/conviComponents/VoiceModeOverlay.d.ts.map +0 -1
  217. package/dist/types/react/components/rtc-widget/components/conviComponents/index.d.ts.map +0 -1
  218. package/dist/types/react/components/rtc-widget/components/index.d.ts.map +0 -1
  219. package/dist/types/react/components/rtc-widget/index.d.ts.map +0 -1
  220. package/dist/types/react/components/rtc-widget/styles/framerConfig.d.ts.map +0 -1
  221. package/dist/types/react/components/rtc-widget/styles/icons.d.ts.map +0 -1
  222. package/dist/types/react/components/rtc-widget/styles/index.d.ts.map +0 -1
  223. package/dist/types/react/components/rtc-widget/styles/styledComponents.d.ts.map +0 -1
  224. package/dist/types/react/components/rtc-widget/styles/theme.d.ts.map +0 -1
  225. package/dist/types/react/components/rtc-widget/types/index.d.ts.map +0 -1
  226. package/dist/types/react/hooks/index.d.ts.map +0 -1
  227. package/dist/types/react/hooks/useCharacterInfo.d.ts.map +0 -1
  228. package/dist/types/react/hooks/useConvaiClient.d.ts +0 -141
  229. package/dist/types/react/hooks/useConvaiClient.d.ts.map +0 -1
  230. package/dist/types/react/hooks/useLocalCameraTrack.d.ts.map +0 -1
  231. package/dist/types/react/index.d.ts.map +0 -1
  232. package/dist/types/types/index.d.ts +0 -261
  233. package/dist/types/types/index.d.ts.map +0 -1
  234. package/dist/types/utils/LatencyMonitor.d.ts.map +0 -1
  235. package/dist/types/utils/logger.d.ts.map +0 -1
  236. package/dist/types/utils/speakerManagement.d.ts.map +0 -1
  237. package/dist/types/vanilla/AudioRenderer.d.ts.map +0 -1
  238. package/dist/types/vanilla/ConvaiWidget.d.ts.map +0 -1
  239. package/dist/types/vanilla/icons.d.ts.map +0 -1
  240. package/dist/types/vanilla/index.d.ts.map +0 -1
  241. package/dist/types/vanilla/styles.d.ts.map +0 -1
  242. package/dist/types/vanilla/types.d.ts +0 -106
  243. package/dist/types/vanilla/types.d.ts.map +0 -1
  244. package/dist/umd/convai.umd.js +0 -1
  245. package/dist/vanilla/index.cjs +0 -5557
  246. /package/dist/{types/core → core}/AudioManager.d.ts +0 -0
  247. /package/dist/{types/core → core}/EventEmitter.d.ts +0 -0
  248. /package/dist/{types/core → core}/ScreenShareManager.d.ts +0 -0
  249. /package/dist/{types/core → core}/VideoManager.d.ts +0 -0
  250. /package/dist/{types/dev.d.ts → dev.d.ts} +0 -0
  251. /package/dist/{types/lipsync-helpers → lipsync-helpers}/arkitBlendshapeHelpers.d.ts +0 -0
  252. /package/dist/{types/lipsync-helpers → lipsync-helpers}/arkitOrder61.d.ts +0 -0
  253. /package/dist/{types/lipsync-helpers → lipsync-helpers}/arkitPhonemeReference.d.ts +0 -0
  254. /package/dist/{types/lipsync-helpers → lipsync-helpers}/neurosyncBlendshapeMapper.d.ts +0 -0
  255. /package/dist/{types/react → react}/components/ConvaiWidget.d.ts +0 -0
  256. /package/dist/{types/react → react}/components/index.d.ts +0 -0
  257. /package/dist/{types/react → react}/components/rtc-widget/components/AudioSettingsPanel.d.ts +0 -0
  258. /package/dist/{types/react → react}/components/rtc-widget/components/AudioVisualizer.d.ts +0 -0
  259. /package/dist/{types/react → react}/components/rtc-widget/components/ConviMessage.d.ts +0 -0
  260. /package/dist/{types/react → react}/components/rtc-widget/components/FloatingVideo.d.ts +0 -0
  261. /package/dist/{types/react → react}/components/rtc-widget/components/MarkdownRenderer.d.ts +0 -0
  262. /package/dist/{types/react → react}/components/rtc-widget/components/MessageBubble.d.ts +0 -0
  263. /package/dist/{types/react → react}/components/rtc-widget/components/MessageList.d.ts +0 -0
  264. /package/dist/{types/react → react}/components/rtc-widget/components/UserMessage.d.ts +0 -0
  265. /package/dist/{types/react → react}/components/rtc-widget/components/conviComponents/ConviButton.d.ts +0 -0
  266. /package/dist/{types/react → react}/components/rtc-widget/components/conviComponents/ConviFooter.d.ts +0 -0
  267. /package/dist/{types/react → react}/components/rtc-widget/components/conviComponents/ConviHeader.d.ts +0 -0
  268. /package/dist/{types/react → react}/components/rtc-widget/components/conviComponents/SettingsTray.d.ts +0 -0
  269. /package/dist/{types/react → react}/components/rtc-widget/components/conviComponents/VoiceModeOverlay.d.ts +0 -0
  270. /package/dist/{types/react → react}/components/rtc-widget/components/conviComponents/index.d.ts +0 -0
  271. /package/dist/{types/react → react}/components/rtc-widget/components/index.d.ts +0 -0
  272. /package/dist/{types/react → react}/components/rtc-widget/index.d.ts +0 -0
  273. /package/dist/{types/react → react}/components/rtc-widget/styles/framerConfig.d.ts +0 -0
  274. /package/dist/{types/react → react}/components/rtc-widget/styles/icons.d.ts +0 -0
  275. /package/dist/{types/react → react}/components/rtc-widget/styles/index.d.ts +0 -0
  276. /package/dist/{types/react → react}/components/rtc-widget/styles/styledComponents.d.ts +0 -0
  277. /package/dist/{types/react → react}/components/rtc-widget/styles/theme.d.ts +0 -0
  278. /package/dist/{types/react → react}/components/rtc-widget/types/index.d.ts +0 -0
  279. /package/dist/{types/react → react}/hooks/index.d.ts +0 -0
  280. /package/dist/{types/react → react}/hooks/useCharacterInfo.d.ts +0 -0
  281. /package/dist/{types/react → react}/hooks/useLocalCameraTrack.d.ts +0 -0
  282. /package/dist/{types/utils → utils}/LatencyMonitor.d.ts +0 -0
  283. /package/dist/{types/utils → utils}/logger.d.ts +0 -0
  284. /package/dist/{types/utils → utils}/speakerManagement.d.ts +0 -0
  285. /package/dist/{types/vanilla → vanilla}/ConvaiWidget.d.ts +0 -0
  286. /package/dist/{types/vanilla → vanilla}/icons.d.ts +0 -0
  287. /package/dist/{types/vanilla → vanilla}/styles.d.ts +0 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/core/index.ts"],"names":[],"mappings":"AAAA,cAAc;AACd,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAE9C,4CAA4C;AAC5C,cAAc,SAAS,CAAC;AAKxB,gCAAgC;AAChC,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAElD,+BAA+B;AAC/B,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAKpD,qCAAqC;AACrC,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC"}
@@ -1,5 +1,6 @@
1
1
  import { Room } from 'livekit-client';
2
2
  import { LatencyMonitor } from '../utils/LatencyMonitor';
3
+ import { BlendshapeQueue } from './BlendshapeQueue';
3
4
  /**
4
5
  * Audio processing settings for the microphone input.
5
6
  * These settings help optimize the audio quality and reduce interruptions.
@@ -280,21 +281,8 @@ export interface IConvaiClient {
280
281
  readonly screenShareControls: ScreenShareControls;
281
282
  /** Latency monitoring (dev tool) */
282
283
  readonly latencyMonitor: LatencyMonitor;
283
- /**
284
- * Whether the user's microphone is currently muted.
285
- * Convenience property - equivalent to audioControls.isAudioMuted
286
- */
287
- readonly isAudioMuted: boolean;
288
- /**
289
- * Whether the user's video is currently enabled.
290
- * Convenience property - equivalent to videoControls.isVideoEnabled
291
- */
292
- readonly isVideoEnabled: boolean;
293
- /**
294
- * Whether screen sharing is currently active.
295
- * Convenience property - equivalent to screenShareControls.isScreenShareActive
296
- */
297
- readonly isScreenShareActive: boolean;
284
+ /** Blendshape queue for time-based lipsync synchronization */
285
+ readonly blendshapeQueue: BlendshapeQueue;
298
286
  /**
299
287
  * Connect to a Convai character.
300
288
  */
@@ -337,6 +325,15 @@ export interface IConvaiClient {
337
325
  * When disabled, character responses won't be spoken aloud.
338
326
  */
339
327
  toggleTts: (enabled: boolean) => void;
328
+ /**
329
+ * Add a post-processor to modify blendshape frames during playback
330
+ * @param processor - Function that processes blendshape frames
331
+ */
332
+ addLipsyncPostProcessor: (processor: import('./BlendshapeQueue').BlendshapePostProcessor) => void;
333
+ /** Remove a post-processor */
334
+ removeLipsyncPostProcessor: (processor: import('./BlendshapeQueue').BlendshapePostProcessor) => void;
335
+ /** Clear all post-processors */
336
+ clearLipsyncPostProcessors: () => void;
340
337
  /**
341
338
  * Subscribe to an event
342
339
  * @param event Event name ('stateChange', 'message', 'connect', 'disconnect', 'error')
@@ -350,11 +347,5 @@ export interface IConvaiClient {
350
347
  * @param callback Callback function to remove
351
348
  */
352
349
  off: (event: string, callback: (...args: any[]) => void) => void;
353
- /**
354
- * Emit an event
355
- * @param event Event name
356
- * @param args Event arguments
357
- */
358
- emit: (event: string, ...args: any[]) => void;
359
350
  }
360
351
  //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/core/types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/core/types.ts"],"names":[],"mappings":""}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dev.d.ts","sourceRoot":"","sources":["../src/dev.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAGH,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AACxD,YAAY,EAAE,kBAAkB,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC"}
package/dist/dev.js ADDED
@@ -0,0 +1,12 @@
1
+ /**
2
+ * Development-only exports
3
+ *
4
+ * This module contains tools and utilities for development and debugging.
5
+ * Import from '@convai/web-sdk/dev' to access these features.
6
+ *
7
+ * @packageDocumentation
8
+ * @module dev
9
+ */
10
+ // Export LatencyMonitor for development/debugging
11
+ export { LatencyMonitor } from "./utils/LatencyMonitor";
12
+ //# sourceMappingURL=dev.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dev.js","sourceRoot":"","sources":["../src/dev.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,kDAAkD;AAClD,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC"}
@@ -0,0 +1,4 @@
1
+ export * from './react';
2
+ export type { LatencyMonitor, LatencyMeasurement, LatencyStats } from "./utils/LatencyMonitor";
3
+ export * from './lipsync-helpers';
4
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAEA,cAAc,SAAS,CAAC;AAGxB,YAAY,EAAE,cAAc,EAAE,kBAAkB,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAG/F,cAAc,mBAAmB,CAAC"}
package/dist/index.js ADDED
@@ -0,0 +1,6 @@
1
+ // Default export: React version for backward compatibility
2
+ // Existing users can continue using: import { useConvaiClient } from '@convai/web-sdk';
3
+ export * from './react';
4
+ // Export lipsync helpers
5
+ export * from './lipsync-helpers';
6
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,2DAA2D;AAC3D,wFAAwF;AACxF,cAAc,SAAS,CAAC;AAKxB,yBAAyB;AACzB,cAAc,mBAAmB,CAAC"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"arkitBlendshapeHelpers.d.ts","sourceRoot":"","sources":["../../src/lipsync-helpers/arkitBlendshapeHelpers.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH;;GAEG;AACH,eAAO,MAAM,sBAAsB,EAAE,SAAS,MAAM,EAqD1C,CAAC;AAEX;;;GAGG;AACH,eAAO,MAAM,oBAAoB,EAAE,SAAS,MAAM,EASxC,CAAC;AAEX;;;;GAIG;AACH,wBAAgB,0BAA0B,CACxC,MAAM,EAAE,MAAM,EAAE,GACf,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAqBxB;AAED;;;;;GAKG;AACH,wBAAgB,yBAAyB,CACvC,MAAM,EAAE,MAAM,EAAE,EAChB,SAAS,GAAE,MAAa,GACvB,KAAK,CAAC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC,CAiCvD;AAED;;;;;GAKG;AACH,wBAAgB,uBAAuB,CACrC,MAAM,EAAE,MAAM,EAAE,EAChB,IAAI,EAAE,MAAM,GACX,MAAM,CAeR;AAED;;;;;GAKG;AACH,wBAAgB,gCAAgC,CAC9C,MAAM,EAAE,MAAM,EAAE,EAChB,SAAS,GAAE,MAAa,EACxB,UAAU,GAAE,MAAW,GACtB;IACD,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC/B,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;CACrB,CAgBA;AAED;;;GAGG;AACH,eAAO,MAAM,uBAAuB;;;;;CAK1B,CAAC;AAEX;;;;GAIG;AACH,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG;IACvD,GAAG,EAAE,MAAM,CAAC;IACZ,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,cAAc,EAAE,MAAM,CAAC;IACvB,cAAc,EAAE,MAAM,CAAC;IACvB,cAAc,EAAE,MAAM,CAAC;IACvB,eAAe,EAAE,MAAM,CAAC;IACxB,gBAAgB,EAAE,MAAM,CAAC;IACzB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,SAAS,EAAE,MAAM,CAAC;CACnB,CAcA"}
@@ -0,0 +1,201 @@
1
+ /**
2
+ * ARKit Blendshape Helpers
3
+ * Utilities for working with ARKit blendshape arrays (52-60 elements)
4
+ *
5
+ * ARKit Standard: 52 blendshapes (indices 0-51)
6
+ * ARKit Extended: Up to 60 blendshapes with additional facial features
7
+ */
8
+ /**
9
+ * ARKit Standard Blendshape Names (indices 0-51)
10
+ */
11
+ export const ARKIT_BLENDSHAPE_NAMES = [
12
+ "browDownLeft", // 0
13
+ "browDownRight", // 1
14
+ "browInnerUp", // 2
15
+ "browOuterUpLeft", // 3
16
+ "browOuterUpRight", // 4
17
+ "cheekPuff", // 5
18
+ "cheekSquintLeft", // 6
19
+ "cheekSquintRight", // 7
20
+ "eyeBlinkLeft", // 8
21
+ "eyeBlinkRight", // 9
22
+ "eyeLookDownLeft", // 10
23
+ "eyeLookDownRight", // 11
24
+ "eyeLookInLeft", // 12
25
+ "eyeLookInRight", // 13
26
+ "eyeLookOutLeft", // 14
27
+ "eyeLookOutRight", // 15
28
+ "eyeLookUpLeft", // 16
29
+ "eyeLookUpRight", // 17
30
+ "eyeSquintLeft", // 18
31
+ "eyeSquintRight", // 19
32
+ "eyeWideLeft", // 20
33
+ "eyeWideRight", // 21
34
+ "jawForward", // 22
35
+ "jawLeft", // 23
36
+ "jawOpen", // 24 🔑 KEY for mouth opening
37
+ "jawRight", // 25
38
+ "mouthClose", // 26 🔑 KEY for mouth closing
39
+ "mouthDimpleLeft", // 27
40
+ "mouthDimpleRight", // 28
41
+ "mouthFrownLeft", // 29
42
+ "mouthFrownRight", // 30
43
+ "mouthFunnel", // 31 🔑 KEY for "O" sounds
44
+ "mouthLeft", // 32
45
+ "mouthLowerDownLeft", // 33
46
+ "mouthLowerDownRight", // 34
47
+ "mouthPressLeft", // 35
48
+ "mouthPressRight", // 36
49
+ "mouthPucker", // 37 🔑 KEY for "U" sounds
50
+ "mouthRight", // 38
51
+ "mouthRollLower", // 39
52
+ "mouthRollUpper", // 40
53
+ "mouthShrugLower", // 41
54
+ "mouthShrugUpper", // 42
55
+ "mouthSmileLeft", // 43 🔑 KEY for "ee" sounds
56
+ "mouthSmileRight", // 44 🔑 KEY for "ee" sounds
57
+ "mouthStretchLeft", // 45 🔑 KEY for wide mouth
58
+ "mouthStretchRight", // 46 🔑 KEY for wide mouth
59
+ "mouthUpperUpLeft", // 47
60
+ "mouthUpperUpRight", // 48
61
+ "noseSneerLeft", // 49
62
+ "noseSneerRight", // 50
63
+ "tongueOut", // 51 🔑 KEY for "th" sounds
64
+ ];
65
+ /**
66
+ * Extended blendshapes (indices 52-59) - if provided
67
+ * These are optional extensions beyond standard ARKit
68
+ */
69
+ export const ARKIT_EXTENDED_NAMES = [
70
+ "eyeDilation", // 52 - Pupil dilation
71
+ "eyeConstriction", // 53 - Pupil constriction
72
+ "mouthShrug", // 54 - Combined mouth shrug
73
+ "lipSuckUpper", // 55 - Upper lip suck
74
+ "lipSuckLower", // 56 - Lower lip suck
75
+ "lipFunnel", // 57 - Lip funnel position
76
+ "lipPress", // 58 - Lip press together
77
+ "reserved", // 59 - Reserved for future use
78
+ ];
79
+ /**
80
+ * Map ARKit blendshape array to named object (ARKit standard only: 0-51)
81
+ * @param values - Array of blendshape values (length 52-60)
82
+ * @returns Object with blendshape names as keys
83
+ */
84
+ export function mapARKitBlendshapesToNames(values) {
85
+ const mapped = {};
86
+ // Map standard ARKit blendshapes (0-51)
87
+ for (let i = 0; i < Math.min(values.length, ARKIT_BLENDSHAPE_NAMES.length); i++) {
88
+ mapped[ARKIT_BLENDSHAPE_NAMES[i]] = values[i];
89
+ }
90
+ // Map extended blendshapes if available (52+)
91
+ if (values.length > 52) {
92
+ const extendedStart = 52;
93
+ for (let i = 0; i < Math.min(values.length - extendedStart, ARKIT_EXTENDED_NAMES.length); i++) {
94
+ mapped[ARKIT_EXTENDED_NAMES[i]] = values[extendedStart + i];
95
+ }
96
+ }
97
+ return mapped;
98
+ }
99
+ /**
100
+ * Get only active blendshapes (above threshold)
101
+ * @param values - Array of blendshape values
102
+ * @param threshold - Minimum value to consider "active" (default: 0.01)
103
+ * @returns Sorted array of active blendshapes
104
+ */
105
+ export function getActiveARKitBlendshapes(values, threshold = 0.01) {
106
+ const active = [];
107
+ // Check standard ARKit blendshapes
108
+ for (let i = 0; i < Math.min(values.length, ARKIT_BLENDSHAPE_NAMES.length); i++) {
109
+ if (Math.abs(values[i]) > threshold) {
110
+ active.push({
111
+ name: ARKIT_BLENDSHAPE_NAMES[i],
112
+ value: values[i],
113
+ index: i,
114
+ });
115
+ }
116
+ }
117
+ // Check extended blendshapes
118
+ if (values.length > 52) {
119
+ for (let i = 52; i < Math.min(values.length, 52 + ARKIT_EXTENDED_NAMES.length); i++) {
120
+ if (Math.abs(values[i]) > threshold) {
121
+ active.push({
122
+ name: ARKIT_EXTENDED_NAMES[i - 52],
123
+ value: values[i],
124
+ index: i,
125
+ });
126
+ }
127
+ }
128
+ }
129
+ // Sort by absolute value (descending)
130
+ return active.sort((a, b) => Math.abs(b.value) - Math.abs(a.value));
131
+ }
132
+ /**
133
+ * Get specific blendshape value by name
134
+ * @param values - Array of blendshape values
135
+ * @param name - Name of the blendshape
136
+ * @returns The value, or 0 if not found
137
+ */
138
+ export function getARKitBlendshapeValue(values, name) {
139
+ const index = ARKIT_BLENDSHAPE_NAMES.indexOf(name);
140
+ if (index !== -1 && index < values.length) {
141
+ return values[index];
142
+ }
143
+ const extendedIndex = ARKIT_EXTENDED_NAMES.indexOf(name);
144
+ if (extendedIndex !== -1) {
145
+ const actualIndex = 52 + extendedIndex;
146
+ if (actualIndex < values.length) {
147
+ return values[actualIndex];
148
+ }
149
+ }
150
+ return 0;
151
+ }
152
+ /**
153
+ * Format ARKit blendshapes for logging
154
+ * @param values - Array of blendshape values
155
+ * @param threshold - Only show values above this (default: 0.01)
156
+ * @param maxEntries - Maximum entries to show (default: 20)
157
+ */
158
+ export function formatARKitBlendshapesForLogging(values, threshold = 0.01, maxEntries = 20) {
159
+ const active = getActiveARKitBlendshapes(values, threshold)
160
+ .slice(0, maxEntries)
161
+ .reduce((acc, item) => {
162
+ acc[item.name] = Number(item.value.toFixed(4));
163
+ return acc;
164
+ }, {});
165
+ return {
166
+ active,
167
+ total: values.length,
168
+ activeCount: Object.keys(active).length,
169
+ };
170
+ }
171
+ /**
172
+ * Get the most important facial features for speech
173
+ * These are the key blendshapes for lip-sync
174
+ */
175
+ export const KEY_LIPSYNC_BLENDSHAPES = {
176
+ jaw: [24], // jawOpen
177
+ lips: [26, 31, 37, 39, 40], // mouthClose, mouthFunnel, mouthPucker, mouthRollLower, mouthRollUpper
178
+ smile: [43, 44, 45, 46], // mouthSmile*, mouthStretch*
179
+ tongue: [51], // tongueOut
180
+ };
181
+ /**
182
+ * Extract only lip-sync relevant blendshapes
183
+ * @param values - Full blendshape array
184
+ * @returns Object with categorized lip-sync blendshapes
185
+ */
186
+ export function getLipSyncBlendshapes(values) {
187
+ return {
188
+ jaw: values[24] || 0,
189
+ mouthClose: values[26] || 0,
190
+ mouthFunnel: values[31] || 0,
191
+ mouthPucker: values[37] || 0,
192
+ mouthRollLower: values[39] || 0,
193
+ mouthRollUpper: values[40] || 0,
194
+ mouthSmileLeft: values[43] || 0,
195
+ mouthSmileRight: values[44] || 0,
196
+ mouthStretchLeft: values[45] || 0,
197
+ mouthStretchRight: values[46] || 0,
198
+ tongueOut: values[51] || 0,
199
+ };
200
+ }
201
+ //# sourceMappingURL=arkitBlendshapeHelpers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"arkitBlendshapeHelpers.js","sourceRoot":"","sources":["../../src/lipsync-helpers/arkitBlendshapeHelpers.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"arkitOrder61.d.ts","sourceRoot":"","sources":["../../src/lipsync-helpers/arkitOrder61.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH;;;GAGG;AACH,eAAO,MAAM,cAAc,EAAE,SAAS,MAAM,EA8DlC,CAAC;AAEX;;;GAGG;AACH,eAAO,MAAM,oBAAoB,EAAE,SAAS,MAAM,EAqDxC,CAAC;AAoBX;;;;GAIG;AACH,wBAAgB,wBAAwB,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,MAAM,EAAE,CAWrE;AAED;;;;GAIG;AACH,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAW5E;AAED;;;;;GAKG;AACH,wBAAgB,6BAA6B,CAC3C,QAAQ,EAAE,MAAM,EAAE,EAClB,IAAI,EAAE,MAAM,GACX,MAAM,CASR;AAED;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG;IACnD,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;CACd,CAMA;AAED;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG;IACnD,IAAI,EAAE;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC;IACnD,KAAK,EAAE;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC;CACrD,CAaA;AAED;;;GAGG;AACH,wBAAgB,2BAA2B,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG;IAC/D,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,cAAc,EAAE,MAAM,CAAC;IACvB,eAAe,EAAE,MAAM,CAAC;IACxB,gBAAgB,EAAE,MAAM,CAAC;IACzB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,cAAc,EAAE,MAAM,CAAC;IACvB,cAAc,EAAE,MAAM,CAAC;IACvB,SAAS,EAAE,MAAM,CAAC;CACnB,CAcA;AAED;;;;;GAKG;AACH,wBAAgB,+BAA+B,CAC7C,QAAQ,EAAE,MAAM,EAAE,EAClB,SAAS,GAAE,MAAa,GACvB,KAAK,CAAC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC,CAiBvD;AAED;;;;;GAKG;AACH,wBAAgB,uBAAuB,CACrC,QAAQ,EAAE,MAAM,EAAE,EAClB,SAAS,GAAE,MAAa,EACxB,UAAU,GAAE,MAAW,GACtB;IACD,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC/B,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,CAAC,EAAE;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC;IAC5D,YAAY,CAAC,EAAE;QACb,IAAI,EAAE;YAAE,GAAG,EAAE,MAAM,CAAC;YAAC,KAAK,EAAE,MAAM,CAAC;YAAC,IAAI,EAAE,MAAM,CAAA;SAAE,CAAC;QACnD,KAAK,EAAE;YAAE,GAAG,EAAE,MAAM,CAAC;YAAC,KAAK,EAAE,MAAM,CAAC;YAAC,IAAI,EAAE,MAAM,CAAA;SAAE,CAAC;KACrD,CAAC;CACH,CAkBA"}
@@ -0,0 +1,287 @@
1
+ /**
2
+ * ARKit 61-Element Custom Order Mapper
3
+ * Maps the custom 61-element ARKit blendshape array to standard ARKit indices
4
+ *
5
+ * This ordering includes:
6
+ * - 52 standard ARKit facial blendshapes (in custom order)
7
+ * - 9 additional values for head and eye rotations
8
+ */
9
+ /**
10
+ * Custom ARKit 61-element ordering
11
+ * This is the order in which blendshapes are received from the server
12
+ */
13
+ export const ARKIT_ORDER_61 = [
14
+ "EyeBlinkLeft", // 0
15
+ "EyeLookDownLeft", // 1
16
+ "EyeLookInLeft", // 2
17
+ "EyeLookOutLeft", // 3
18
+ "EyeLookUpLeft", // 4
19
+ "EyeSquintLeft", // 5
20
+ "EyeWideLeft", // 6
21
+ "EyeBlinkRight", // 7
22
+ "EyeLookDownRight", // 8
23
+ "EyeLookInRight", // 9
24
+ "EyeLookOutRight", // 10
25
+ "EyeLookUpRight", // 11
26
+ "EyeSquintRight", // 12
27
+ "EyeWideRight", // 13
28
+ "JawForward", // 14
29
+ "JawRight", // 15
30
+ "JawLeft", // 16
31
+ "JawOpen", // 17 🔑 KEY for mouth opening
32
+ "MouthClose", // 18 🔑 KEY for mouth closing
33
+ "MouthFunnel", // 19 🔑 KEY for "O" sounds
34
+ "MouthPucker", // 20 🔑 KEY for "U" sounds
35
+ "MouthRight", // 21
36
+ "MouthLeft", // 22
37
+ "MouthSmileLeft", // 23 🔑 KEY for "ee" sounds
38
+ "MouthSmileRight", // 24 🔑 KEY for "ee" sounds
39
+ "MouthFrownLeft", // 25
40
+ "MouthFrownRight", // 26
41
+ "MouthDimpleLeft", // 27
42
+ "MouthDimpleRight", // 28
43
+ "MouthStretchLeft", // 29 🔑 KEY for wide mouth
44
+ "MouthStretchRight", // 30 🔑 KEY for wide mouth
45
+ "MouthRollLower", // 31
46
+ "MouthRollUpper", // 32
47
+ "MouthShrugLower", // 33
48
+ "MouthShrugUpper", // 34
49
+ "MouthPressLeft", // 35
50
+ "MouthPressRight", // 36
51
+ "MouthLowerDownLeft", // 37
52
+ "MouthLowerDownRight", // 38
53
+ "MouthUpperUpLeft", // 39
54
+ "MouthUpperUpRight", // 40
55
+ "BrowDownLeft", // 41
56
+ "BrowDownRight", // 42
57
+ "BrowInnerUp", // 43
58
+ "BrowOuterUpLeft", // 44
59
+ "BrowOuterUpRight", // 45
60
+ "CheekPuff", // 46
61
+ "CheekSquintLeft", // 47
62
+ "CheekSquintRight", // 48
63
+ "NoseSneerLeft", // 49
64
+ "NoseSneerRight", // 50
65
+ "TongueOut", // 51 🔑 KEY for "th" sounds
66
+ "HeadYaw", // 52 - Head rotation left/right
67
+ "HeadPitch", // 53 - Head rotation up/down
68
+ "HeadRoll", // 54 - Head rotation tilt
69
+ "LeftEyeYaw", // 55 - Left eye rotation left/right
70
+ "LeftEyePitch", // 56 - Left eye rotation up/down
71
+ "LeftEyeRoll", // 57 - Left eye rotation roll
72
+ "RightEyeYaw", // 58 - Right eye rotation left/right
73
+ "RightEyePitch", // 59 - Right eye rotation up/down
74
+ "RightEyeRoll", // 60 - Right eye rotation roll
75
+ ];
76
+ /**
77
+ * Standard ARKit blendshape order (52 elements)
78
+ * This is Apple's official ordering
79
+ */
80
+ export const STANDARD_ARKIT_ORDER = [
81
+ "BrowDownLeft", // 0
82
+ "BrowDownRight", // 1
83
+ "BrowInnerUp", // 2
84
+ "BrowOuterUpLeft", // 3
85
+ "BrowOuterUpRight", // 4
86
+ "CheekPuff", // 5
87
+ "CheekSquintLeft", // 6
88
+ "CheekSquintRight", // 7
89
+ "EyeBlinkLeft", // 8
90
+ "EyeBlinkRight", // 9
91
+ "EyeLookDownLeft", // 10
92
+ "EyeLookDownRight", // 11
93
+ "EyeLookInLeft", // 12
94
+ "EyeLookInRight", // 13
95
+ "EyeLookOutLeft", // 14
96
+ "EyeLookOutRight", // 15
97
+ "EyeLookUpLeft", // 16
98
+ "EyeLookUpRight", // 17
99
+ "EyeSquintLeft", // 18
100
+ "EyeSquintRight", // 19
101
+ "EyeWideLeft", // 20
102
+ "EyeWideRight", // 21
103
+ "JawForward", // 22
104
+ "JawLeft", // 23
105
+ "JawOpen", // 24
106
+ "JawRight", // 25
107
+ "MouthClose", // 26
108
+ "MouthDimpleLeft", // 27
109
+ "MouthDimpleRight", // 28
110
+ "MouthFrownLeft", // 29
111
+ "MouthFrownRight", // 30
112
+ "MouthFunnel", // 31
113
+ "MouthLeft", // 32
114
+ "MouthLowerDownLeft", // 33
115
+ "MouthLowerDownRight", // 34
116
+ "MouthPressLeft", // 35
117
+ "MouthPressRight", // 36
118
+ "MouthPucker", // 37
119
+ "MouthRight", // 38
120
+ "MouthRollLower", // 39
121
+ "MouthRollUpper", // 40
122
+ "MouthShrugLower", // 41
123
+ "MouthShrugUpper", // 42
124
+ "MouthSmileLeft", // 43
125
+ "MouthSmileRight", // 44
126
+ "MouthStretchLeft", // 45
127
+ "MouthStretchRight", // 46
128
+ "MouthUpperUpLeft", // 47
129
+ "MouthUpperUpRight", // 48
130
+ "NoseSneerLeft", // 49
131
+ "NoseSneerRight", // 50
132
+ "TongueOut", // 51
133
+ ];
134
+ /**
135
+ * Mapping from custom 61-order indices to standard ARKit indices
136
+ * Maps ARKIT_ORDER_61[i] -> STANDARD_ARKIT_ORDER[j]
137
+ */
138
+ const ORDER_61_TO_STANDARD_MAP = new Map();
139
+ // Build the mapping at module initialization
140
+ for (let i = 0; i < ARKIT_ORDER_61.length; i++) {
141
+ const name = ARKIT_ORDER_61[i];
142
+ // Only map the first 52 (standard ARKit blendshapes)
143
+ if (i < 52) {
144
+ const standardIndex = STANDARD_ARKIT_ORDER.indexOf(name);
145
+ if (standardIndex !== -1) {
146
+ ORDER_61_TO_STANDARD_MAP.set(i, standardIndex);
147
+ }
148
+ }
149
+ }
150
+ /**
151
+ * Convert 61-element custom order array to standard 52-element ARKit array
152
+ * @param values61 - 61-element array in custom order
153
+ * @returns 52-element array in standard ARKit order
154
+ */
155
+ export function convertOrder61ToStandard(values61) {
156
+ const standardArray = new Array(52).fill(0);
157
+ for (let i = 0; i < Math.min(52, values61.length); i++) {
158
+ const standardIndex = ORDER_61_TO_STANDARD_MAP.get(i);
159
+ if (standardIndex !== undefined) {
160
+ standardArray[standardIndex] = values61[i];
161
+ }
162
+ }
163
+ return standardArray;
164
+ }
165
+ /**
166
+ * Map 61-element array to named object (all 61 values)
167
+ * @param values61 - 61-element array in custom order
168
+ * @returns Object with blendshape/rotation names as keys
169
+ */
170
+ export function mapOrder61ToNames(values61) {
171
+ const mapped = {};
172
+ for (let i = 0; i < Math.min(values61.length, ARKIT_ORDER_61.length); i++) {
173
+ // Convert to camelCase (lowercase first letter)
174
+ const name = ARKIT_ORDER_61[i];
175
+ const camelCaseName = name.charAt(0).toLowerCase() + name.slice(1);
176
+ mapped[camelCaseName] = values61[i];
177
+ }
178
+ return mapped;
179
+ }
180
+ /**
181
+ * Get specific blendshape value by name from 61-element array
182
+ * @param values61 - 61-element array in custom order
183
+ * @param name - Name of the blendshape (case-insensitive)
184
+ * @returns The value, or 0 if not found
185
+ */
186
+ export function getBlendshapeValueFromOrder61(values61, name) {
187
+ const upperName = name.charAt(0).toUpperCase() + name.slice(1);
188
+ const index = ARKIT_ORDER_61.indexOf(upperName);
189
+ if (index !== -1 && index < values61.length) {
190
+ return values61[index];
191
+ }
192
+ return 0;
193
+ }
194
+ /**
195
+ * Extract head rotation values from 61-element array
196
+ * @param values61 - 61-element array in custom order
197
+ * @returns Object with head rotation values (yaw, pitch, roll)
198
+ */
199
+ export function getHeadRotation(values61) {
200
+ return {
201
+ yaw: values61[52] || 0,
202
+ pitch: values61[53] || 0,
203
+ roll: values61[54] || 0,
204
+ };
205
+ }
206
+ /**
207
+ * Extract eye rotation values from 61-element array
208
+ * @param values61 - 61-element array in custom order
209
+ * @returns Object with left and right eye rotation values
210
+ */
211
+ export function getEyeRotations(values61) {
212
+ return {
213
+ left: {
214
+ yaw: values61[55] || 0,
215
+ pitch: values61[56] || 0,
216
+ roll: values61[57] || 0,
217
+ },
218
+ right: {
219
+ yaw: values61[58] || 0,
220
+ pitch: values61[59] || 0,
221
+ roll: values61[60] || 0,
222
+ },
223
+ };
224
+ }
225
+ /**
226
+ * Get key lip-sync blendshapes from 61-element array
227
+ * These are the most important values for facial animation
228
+ */
229
+ export function getLipSyncValuesFromOrder61(values61) {
230
+ return {
231
+ jawOpen: values61[17] || 0,
232
+ mouthClose: values61[18] || 0,
233
+ mouthFunnel: values61[19] || 0,
234
+ mouthPucker: values61[20] || 0,
235
+ mouthSmileLeft: values61[23] || 0,
236
+ mouthSmileRight: values61[24] || 0,
237
+ mouthStretchLeft: values61[29] || 0,
238
+ mouthStretchRight: values61[30] || 0,
239
+ mouthRollLower: values61[31] || 0,
240
+ mouthRollUpper: values61[32] || 0,
241
+ tongueOut: values61[51] || 0,
242
+ };
243
+ }
244
+ /**
245
+ * Get active blendshapes from 61-element array (above threshold)
246
+ * @param values61 - 61-element array in custom order
247
+ * @param threshold - Minimum value to consider "active" (default: 0.01)
248
+ * @returns Sorted array of active blendshapes
249
+ */
250
+ export function getActiveBlendshapesFromOrder61(values61, threshold = 0.01) {
251
+ const active = [];
252
+ for (let i = 0; i < Math.min(values61.length, ARKIT_ORDER_61.length); i++) {
253
+ if (Math.abs(values61[i]) > threshold) {
254
+ const name = ARKIT_ORDER_61[i];
255
+ const camelCaseName = name.charAt(0).toLowerCase() + name.slice(1);
256
+ active.push({
257
+ name: camelCaseName,
258
+ value: values61[i],
259
+ index: i,
260
+ });
261
+ }
262
+ }
263
+ // Sort by absolute value (descending)
264
+ return active.sort((a, b) => Math.abs(b.value) - Math.abs(a.value));
265
+ }
266
+ /**
267
+ * Format 61-element array for logging
268
+ * @param values61 - 61-element array in custom order
269
+ * @param threshold - Only show values above this (default: 0.01)
270
+ * @param maxEntries - Maximum entries to show (default: 20)
271
+ */
272
+ export function formatOrder61ForLogging(values61, threshold = 0.01, maxEntries = 20) {
273
+ const active = getActiveBlendshapesFromOrder61(values61, threshold)
274
+ .slice(0, maxEntries)
275
+ .reduce((acc, item) => {
276
+ acc[item.name] = Number(item.value.toFixed(4));
277
+ return acc;
278
+ }, {});
279
+ return {
280
+ active,
281
+ total: values61.length,
282
+ activeCount: Object.keys(active).length,
283
+ headRotation: getHeadRotation(values61),
284
+ eyeRotations: getEyeRotations(values61),
285
+ };
286
+ }
287
+ //# sourceMappingURL=arkitOrder61.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"arkitOrder61.js","sourceRoot":"","sources":["../../src/lipsync-helpers/arkitOrder61.ts"],"names":[],"mappings":"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"}