@mentra/engine 0.1.0-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 (842) hide show
  1. package/README.md +79 -0
  2. package/build/devtools.d.ts +11 -0
  3. package/build/devtools.d.ts.map +1 -0
  4. package/build/devtools.js +13 -0
  5. package/build/devtools.js.map +1 -0
  6. package/build/engine.d.ts +261 -0
  7. package/build/engine.d.ts.map +1 -0
  8. package/build/engine.js +170 -0
  9. package/build/engine.js.map +1 -0
  10. package/build/facades/dev.d.ts +58 -0
  11. package/build/facades/dev.d.ts.map +1 -0
  12. package/build/facades/dev.js +189 -0
  13. package/build/facades/dev.js.map +1 -0
  14. package/build/facades/display.d.ts +21 -0
  15. package/build/facades/display.d.ts.map +1 -0
  16. package/build/facades/display.js +17 -0
  17. package/build/facades/display.js.map +1 -0
  18. package/build/facades/displayMirror.d.ts +15 -0
  19. package/build/facades/displayMirror.d.ts.map +1 -0
  20. package/build/facades/displayMirror.js +29 -0
  21. package/build/facades/displayMirror.js.map +1 -0
  22. package/build/facades/gallery.d.ts +62 -0
  23. package/build/facades/gallery.d.ts.map +1 -0
  24. package/build/facades/gallery.js +61 -0
  25. package/build/facades/gallery.js.map +1 -0
  26. package/build/facades/glasses.d.ts +141 -0
  27. package/build/facades/glasses.d.ts.map +1 -0
  28. package/build/facades/glasses.js +199 -0
  29. package/build/facades/glasses.js.map +1 -0
  30. package/build/facades/glassesSettings.d.ts +13 -0
  31. package/build/facades/glassesSettings.d.ts.map +1 -0
  32. package/build/facades/glassesSettings.js +54 -0
  33. package/build/facades/glassesSettings.js.map +1 -0
  34. package/build/facades/glassesWifi.d.ts +25 -0
  35. package/build/facades/glassesWifi.d.ts.map +1 -0
  36. package/build/facades/glassesWifi.js +57 -0
  37. package/build/facades/glassesWifi.js.map +1 -0
  38. package/build/facades/miniapps.d.ts +43 -0
  39. package/build/facades/miniapps.d.ts.map +1 -0
  40. package/build/facades/miniapps.js +49 -0
  41. package/build/facades/miniapps.js.map +1 -0
  42. package/build/facades/notifications.d.ts +13 -0
  43. package/build/facades/notifications.d.ts.map +1 -0
  44. package/build/facades/notifications.js +12 -0
  45. package/build/facades/notifications.js.map +1 -0
  46. package/build/facades/ota.d.ts +103 -0
  47. package/build/facades/ota.d.ts.map +1 -0
  48. package/build/facades/ota.js +156 -0
  49. package/build/facades/ota.js.map +1 -0
  50. package/build/facades/pairing.d.ts +114 -0
  51. package/build/facades/pairing.d.ts.map +1 -0
  52. package/build/facades/pairing.js +275 -0
  53. package/build/facades/pairing.js.map +1 -0
  54. package/build/facades/permissions.d.ts +33 -0
  55. package/build/facades/permissions.d.ts.map +1 -0
  56. package/build/facades/permissions.js +155 -0
  57. package/build/facades/permissions.js.map +1 -0
  58. package/build/facades/phoneNotifications.d.ts +21 -0
  59. package/build/facades/phoneNotifications.d.ts.map +1 -0
  60. package/build/facades/phoneNotifications.js +51 -0
  61. package/build/facades/phoneNotifications.js.map +1 -0
  62. package/build/facades/reports.d.ts +36 -0
  63. package/build/facades/reports.d.ts.map +1 -0
  64. package/build/facades/reports.js +134 -0
  65. package/build/facades/reports.js.map +1 -0
  66. package/build/facades/session.d.ts +21 -0
  67. package/build/facades/session.d.ts.map +1 -0
  68. package/build/facades/session.js +52 -0
  69. package/build/facades/session.js.map +1 -0
  70. package/build/facades/settings.d.ts +37 -0
  71. package/build/facades/settings.d.ts.map +1 -0
  72. package/build/facades/settings.js +55 -0
  73. package/build/facades/settings.js.map +1 -0
  74. package/build/facades/speech.d.ts +30 -0
  75. package/build/facades/speech.d.ts.map +1 -0
  76. package/build/facades/speech.js +37 -0
  77. package/build/facades/speech.js.map +1 -0
  78. package/build/index.d.ts +43 -0
  79. package/build/index.d.ts.map +1 -0
  80. package/build/index.js +45 -0
  81. package/build/index.js.map +1 -0
  82. package/build/internal.d.ts +67 -0
  83. package/build/internal.d.ts.map +1 -0
  84. package/build/internal.js +90 -0
  85. package/build/internal.js.map +1 -0
  86. package/build/runtime/bootstrap.d.ts +83 -0
  87. package/build/runtime/bootstrap.d.ts.map +1 -0
  88. package/build/runtime/bootstrap.js +56 -0
  89. package/build/runtime/bootstrap.js.map +1 -0
  90. package/build/runtime/config.d.ts +146 -0
  91. package/build/runtime/config.d.ts.map +1 -0
  92. package/build/runtime/config.js +18 -0
  93. package/build/runtime/config.js.map +1 -0
  94. package/build/runtime/streamConfig.d.ts +4 -0
  95. package/build/runtime/streamConfig.d.ts.map +1 -0
  96. package/build/runtime/streamConfig.js +38 -0
  97. package/build/runtime/streamConfig.js.map +1 -0
  98. package/build/services/AppRegistry.d.ts +269 -0
  99. package/build/services/AppRegistry.d.ts.map +1 -0
  100. package/build/services/AppRegistry.js +1079 -0
  101. package/build/services/AppRegistry.js.map +1 -0
  102. package/build/services/AudioCloudUplink.d.ts +9 -0
  103. package/build/services/AudioCloudUplink.d.ts.map +1 -0
  104. package/build/services/AudioCloudUplink.js +48 -0
  105. package/build/services/AudioCloudUplink.js.map +1 -0
  106. package/build/services/AudioPlaybackService.d.ts +175 -0
  107. package/build/services/AudioPlaybackService.d.ts.map +1 -0
  108. package/build/services/AudioPlaybackService.js +705 -0
  109. package/build/services/AudioPlaybackService.js.map +1 -0
  110. package/build/services/AutomaticReportResult.d.ts +20 -0
  111. package/build/services/AutomaticReportResult.d.ts.map +1 -0
  112. package/build/services/AutomaticReportResult.js +29 -0
  113. package/build/services/AutomaticReportResult.js.map +1 -0
  114. package/build/services/BlobStore.d.ts +91 -0
  115. package/build/services/BlobStore.d.ts.map +1 -0
  116. package/build/services/BlobStore.js +668 -0
  117. package/build/services/BlobStore.js.map +1 -0
  118. package/build/services/CaptionsTesterReportService.d.ts +4 -0
  119. package/build/services/CaptionsTesterReportService.d.ts.map +1 -0
  120. package/build/services/CaptionsTesterReportService.js +80 -0
  121. package/build/services/CaptionsTesterReportService.js.map +1 -0
  122. package/build/services/CloudAudioSubscriptionSync.d.ts +24 -0
  123. package/build/services/CloudAudioSubscriptionSync.d.ts.map +1 -0
  124. package/build/services/CloudAudioSubscriptionSync.js +39 -0
  125. package/build/services/CloudAudioSubscriptionSync.js.map +1 -0
  126. package/build/services/CloudClientService.d.ts +143 -0
  127. package/build/services/CloudClientService.d.ts.map +1 -0
  128. package/build/services/CloudClientService.js +644 -0
  129. package/build/services/CloudClientService.js.map +1 -0
  130. package/build/services/CloudTranscriptE2EMetrics.d.ts +4 -0
  131. package/build/services/CloudTranscriptE2EMetrics.d.ts.map +1 -0
  132. package/build/services/CloudTranscriptE2EMetrics.js +24 -0
  133. package/build/services/CloudTranscriptE2EMetrics.js.map +1 -0
  134. package/build/services/ConnectionCoordinator.d.ts +51 -0
  135. package/build/services/ConnectionCoordinator.d.ts.map +1 -0
  136. package/build/services/ConnectionCoordinator.js +34 -0
  137. package/build/services/ConnectionCoordinator.js.map +1 -0
  138. package/build/services/DevServerBridge.d.ts +63 -0
  139. package/build/services/DevServerBridge.d.ts.map +1 -0
  140. package/build/services/DevServerBridge.js +294 -0
  141. package/build/services/DevServerBridge.js.map +1 -0
  142. package/build/services/DeviceEventRouter.d.ts +3 -0
  143. package/build/services/DeviceEventRouter.d.ts.map +1 -0
  144. package/build/services/DeviceEventRouter.js +190 -0
  145. package/build/services/DeviceEventRouter.js.map +1 -0
  146. package/build/services/DeviceStoreHydration.d.ts +38 -0
  147. package/build/services/DeviceStoreHydration.d.ts.map +1 -0
  148. package/build/services/DeviceStoreHydration.js +124 -0
  149. package/build/services/DeviceStoreHydration.js.map +1 -0
  150. package/build/services/DisplayProcessor.d.ts +223 -0
  151. package/build/services/DisplayProcessor.d.ts.map +1 -0
  152. package/build/services/DisplayProcessor.js +552 -0
  153. package/build/services/DisplayProcessor.js.map +1 -0
  154. package/build/services/GlassesReadiness.d.ts +41 -0
  155. package/build/services/GlassesReadiness.d.ts.map +1 -0
  156. package/build/services/GlassesReadiness.js +82 -0
  157. package/build/services/GlassesReadiness.js.map +1 -0
  158. package/build/services/GlassesSettingsSync.d.ts +33 -0
  159. package/build/services/GlassesSettingsSync.d.ts.map +1 -0
  160. package/build/services/GlassesSettingsSync.js +121 -0
  161. package/build/services/GlassesSettingsSync.js.map +1 -0
  162. package/build/services/GlassesStatusProjection.d.ts +3 -0
  163. package/build/services/GlassesStatusProjection.d.ts.map +1 -0
  164. package/build/services/GlassesStatusProjection.js +65 -0
  165. package/build/services/GlassesStatusProjection.js.map +1 -0
  166. package/build/services/HeadingService.d.ts +27 -0
  167. package/build/services/HeadingService.d.ts.map +1 -0
  168. package/build/services/HeadingService.js +96 -0
  169. package/build/services/HeadingService.js.map +1 -0
  170. package/build/services/LocalDisplayManager.d.ts +139 -0
  171. package/build/services/LocalDisplayManager.d.ts.map +1 -0
  172. package/build/services/LocalDisplayManager.js +579 -0
  173. package/build/services/LocalDisplayManager.js.map +1 -0
  174. package/build/services/LocalMiniappRuntime.d.ts +439 -0
  175. package/build/services/LocalMiniappRuntime.d.ts.map +1 -0
  176. package/build/services/LocalMiniappRuntime.js +3695 -0
  177. package/build/services/LocalMiniappRuntime.js.map +1 -0
  178. package/build/services/LocalSttFallbackCoordinator.d.ts +57 -0
  179. package/build/services/LocalSttFallbackCoordinator.d.ts.map +1 -0
  180. package/build/services/LocalSttFallbackCoordinator.js +137 -0
  181. package/build/services/LocalSttFallbackCoordinator.js.map +1 -0
  182. package/build/services/MentraJSCrashController.d.ts +97 -0
  183. package/build/services/MentraJSCrashController.d.ts.map +1 -0
  184. package/build/services/MentraJSCrashController.js +138 -0
  185. package/build/services/MentraJSCrashController.js.map +1 -0
  186. package/build/services/MentraJSCrashloopReportService.d.ts +9 -0
  187. package/build/services/MentraJSCrashloopReportService.d.ts.map +1 -0
  188. package/build/services/MentraJSCrashloopReportService.js +54 -0
  189. package/build/services/MentraJSCrashloopReportService.js.map +1 -0
  190. package/build/services/MentraJSLogPipeline.d.ts +87 -0
  191. package/build/services/MentraJSLogPipeline.d.ts.map +1 -0
  192. package/build/services/MentraJSLogPipeline.js +137 -0
  193. package/build/services/MentraJSLogPipeline.js.map +1 -0
  194. package/build/services/MentraJSRouter.d.ts +203 -0
  195. package/build/services/MentraJSRouter.d.ts.map +1 -0
  196. package/build/services/MentraJSRouter.js +480 -0
  197. package/build/services/MentraJSRouter.js.map +1 -0
  198. package/build/services/MentraUIRouter.d.ts +137 -0
  199. package/build/services/MentraUIRouter.d.ts.map +1 -0
  200. package/build/services/MentraUIRouter.js +210 -0
  201. package/build/services/MentraUIRouter.js.map +1 -0
  202. package/build/services/MicStateCoordinator.d.ts +37 -0
  203. package/build/services/MicStateCoordinator.d.ts.map +1 -0
  204. package/build/services/MicStateCoordinator.js +81 -0
  205. package/build/services/MicStateCoordinator.js.map +1 -0
  206. package/build/services/MiniappEngine.d.ts +31 -0
  207. package/build/services/MiniappEngine.d.ts.map +1 -0
  208. package/build/services/MiniappEngine.js +119 -0
  209. package/build/services/MiniappEngine.js.map +1 -0
  210. package/build/services/MiniappLauncher.d.ts +129 -0
  211. package/build/services/MiniappLauncher.d.ts.map +1 -0
  212. package/build/services/MiniappLauncher.js +291 -0
  213. package/build/services/MiniappLauncher.js.map +1 -0
  214. package/build/services/MiniappRunningRegistry.d.ts +24 -0
  215. package/build/services/MiniappRunningRegistry.d.ts.map +1 -0
  216. package/build/services/MiniappRunningRegistry.js +52 -0
  217. package/build/services/MiniappRunningRegistry.js.map +1 -0
  218. package/build/services/NativeHttpResponse.d.ts +3 -0
  219. package/build/services/NativeHttpResponse.d.ts.map +1 -0
  220. package/build/services/NativeHttpResponse.js +6 -0
  221. package/build/services/NativeHttpResponse.js.map +1 -0
  222. package/build/services/NavigationHandlers.d.ts +90 -0
  223. package/build/services/NavigationHandlers.d.ts.map +1 -0
  224. package/build/services/NavigationHandlers.js +379 -0
  225. package/build/services/NavigationHandlers.js.map +1 -0
  226. package/build/services/NavigationService.d.ts +254 -0
  227. package/build/services/NavigationService.d.ts.map +1 -0
  228. package/build/services/NavigationService.js +553 -0
  229. package/build/services/NavigationService.js.map +1 -0
  230. package/build/services/NotificationsEmitter.d.ts +28 -0
  231. package/build/services/NotificationsEmitter.d.ts.map +1 -0
  232. package/build/services/NotificationsEmitter.js +22 -0
  233. package/build/services/NotificationsEmitter.js.map +1 -0
  234. package/build/services/OfflineSpeechModelService.d.ts +33 -0
  235. package/build/services/OfflineSpeechModelService.d.ts.map +1 -0
  236. package/build/services/OfflineSpeechModelService.js +136 -0
  237. package/build/services/OfflineSpeechModelService.js.map +1 -0
  238. package/build/services/OtaInstallCoordinator.d.ts +195 -0
  239. package/build/services/OtaInstallCoordinator.d.ts.map +1 -0
  240. package/build/services/OtaInstallCoordinator.js +1047 -0
  241. package/build/services/OtaInstallCoordinator.js.map +1 -0
  242. package/build/services/OtaService.d.ts +3 -0
  243. package/build/services/OtaService.d.ts.map +1 -0
  244. package/build/services/OtaService.js +65 -0
  245. package/build/services/OtaService.js.map +1 -0
  246. package/build/services/OtaUpdateCheckService.d.ts +65 -0
  247. package/build/services/OtaUpdateCheckService.d.ts.map +1 -0
  248. package/build/services/OtaUpdateCheckService.js +260 -0
  249. package/build/services/OtaUpdateCheckService.js.map +1 -0
  250. package/build/services/PairingIdentity.d.ts +80 -0
  251. package/build/services/PairingIdentity.d.ts.map +1 -0
  252. package/build/services/PairingIdentity.js +145 -0
  253. package/build/services/PairingIdentity.js.map +1 -0
  254. package/build/services/PhoneCalendarHelpers.d.ts +32 -0
  255. package/build/services/PhoneCalendarHelpers.d.ts.map +1 -0
  256. package/build/services/PhoneCalendarHelpers.js +157 -0
  257. package/build/services/PhoneCalendarHelpers.js.map +1 -0
  258. package/build/services/PhoneCalendarService.d.ts +5 -0
  259. package/build/services/PhoneCalendarService.d.ts.map +1 -0
  260. package/build/services/PhoneCalendarService.js +24 -0
  261. package/build/services/PhoneCalendarService.js.map +1 -0
  262. package/build/services/PhoneCameraFovCoordinator.d.ts +28 -0
  263. package/build/services/PhoneCameraFovCoordinator.d.ts.map +1 -0
  264. package/build/services/PhoneCameraFovCoordinator.js +180 -0
  265. package/build/services/PhoneCameraFovCoordinator.js.map +1 -0
  266. package/build/services/PhoneLocationService.d.ts +36 -0
  267. package/build/services/PhoneLocationService.d.ts.map +1 -0
  268. package/build/services/PhoneLocationService.js +115 -0
  269. package/build/services/PhoneLocationService.js.map +1 -0
  270. package/build/services/PhoneNotificationsSync.d.ts +3 -0
  271. package/build/services/PhoneNotificationsSync.d.ts.map +1 -0
  272. package/build/services/PhoneNotificationsSync.js +35 -0
  273. package/build/services/PhoneNotificationsSync.js.map +1 -0
  274. package/build/services/PhonePhotoCoordinator.d.ts +103 -0
  275. package/build/services/PhonePhotoCoordinator.d.ts.map +1 -0
  276. package/build/services/PhonePhotoCoordinator.js +326 -0
  277. package/build/services/PhonePhotoCoordinator.js.map +1 -0
  278. package/build/services/PhoneStreamCoordinator.d.ts +168 -0
  279. package/build/services/PhoneStreamCoordinator.d.ts.map +1 -0
  280. package/build/services/PhoneStreamCoordinator.js +632 -0
  281. package/build/services/PhoneStreamCoordinator.js.map +1 -0
  282. package/build/services/PhoneVideoCoordinator.d.ts +50 -0
  283. package/build/services/PhoneVideoCoordinator.d.ts.map +1 -0
  284. package/build/services/PhoneVideoCoordinator.js +147 -0
  285. package/build/services/PhoneVideoCoordinator.js.map +1 -0
  286. package/build/services/STTModelManager.d.ts +65 -0
  287. package/build/services/STTModelManager.d.ts.map +1 -0
  288. package/build/services/STTModelManager.js +292 -0
  289. package/build/services/STTModelManager.js.map +1 -0
  290. package/build/services/SceneRenderer.d.ts +90 -0
  291. package/build/services/SceneRenderer.d.ts.map +1 -0
  292. package/build/services/SceneRenderer.js +248 -0
  293. package/build/services/SceneRenderer.js.map +1 -0
  294. package/build/services/SentenceTtsPipeline.d.ts +31 -0
  295. package/build/services/SentenceTtsPipeline.d.ts.map +1 -0
  296. package/build/services/SentenceTtsPipeline.js +67 -0
  297. package/build/services/SentenceTtsPipeline.js.map +1 -0
  298. package/build/services/StreamLifecycleController.d.ts +67 -0
  299. package/build/services/StreamLifecycleController.d.ts.map +1 -0
  300. package/build/services/StreamLifecycleController.js +152 -0
  301. package/build/services/StreamLifecycleController.js.map +1 -0
  302. package/build/services/TTSModelManager.d.ts +90 -0
  303. package/build/services/TTSModelManager.d.ts.map +1 -0
  304. package/build/services/TTSModelManager.js +366 -0
  305. package/build/services/TTSModelManager.js.map +1 -0
  306. package/build/services/TranscriptionRouting.d.ts +12 -0
  307. package/build/services/TranscriptionRouting.d.ts.map +1 -0
  308. package/build/services/TranscriptionRouting.js +24 -0
  309. package/build/services/TranscriptionRouting.js.map +1 -0
  310. package/build/services/WebviewBridge.d.ts +22 -0
  311. package/build/services/WebviewBridge.d.ts.map +1 -0
  312. package/build/services/WebviewBridge.js +47 -0
  313. package/build/services/WebviewBridge.js.map +1 -0
  314. package/build/services/asg/GalleryMediaIntegrityReportService.d.ts +17 -0
  315. package/build/services/asg/GalleryMediaIntegrityReportService.d.ts.map +1 -0
  316. package/build/services/asg/GalleryMediaIntegrityReportService.js +43 -0
  317. package/build/services/asg/GalleryMediaIntegrityReportService.js.map +1 -0
  318. package/build/services/asg/asgCameraApi.d.ts +205 -0
  319. package/build/services/asg/asgCameraApi.d.ts.map +1 -0
  320. package/build/services/asg/asgCameraApi.js +1410 -0
  321. package/build/services/asg/asgCameraApi.js.map +1 -0
  322. package/build/services/asg/cameraRollExportCoordinator.d.ts +60 -0
  323. package/build/services/asg/cameraRollExportCoordinator.d.ts.map +1 -0
  324. package/build/services/asg/cameraRollExportCoordinator.js +618 -0
  325. package/build/services/asg/cameraRollExportCoordinator.js.map +1 -0
  326. package/build/services/asg/cameraRollExportLedger.d.ts +44 -0
  327. package/build/services/asg/cameraRollExportLedger.d.ts.map +1 -0
  328. package/build/services/asg/cameraRollExportLedger.js +78 -0
  329. package/build/services/asg/cameraRollExportLedger.js.map +1 -0
  330. package/build/services/asg/galleryMediaValidation.d.ts +29 -0
  331. package/build/services/asg/galleryMediaValidation.d.ts.map +1 -0
  332. package/build/services/asg/galleryMediaValidation.js +149 -0
  333. package/build/services/asg/galleryMediaValidation.js.map +1 -0
  334. package/build/services/asg/galleryNotices.d.ts +33 -0
  335. package/build/services/asg/galleryNotices.d.ts.map +1 -0
  336. package/build/services/asg/galleryNotices.js +29 -0
  337. package/build/services/asg/galleryNotices.js.map +1 -0
  338. package/build/services/asg/galleryPathMigration.d.ts +3 -0
  339. package/build/services/asg/galleryPathMigration.d.ts.map +1 -0
  340. package/build/services/asg/galleryPathMigration.js +26 -0
  341. package/build/services/asg/galleryPathMigration.js.map +1 -0
  342. package/build/services/asg/gallerySettingsService.d.ts +20 -0
  343. package/build/services/asg/gallerySettingsService.d.ts.map +1 -0
  344. package/build/services/asg/gallerySettingsService.js +53 -0
  345. package/build/services/asg/gallerySettingsService.js.map +1 -0
  346. package/build/services/asg/gallerySyncNotifications.d.ts +56 -0
  347. package/build/services/asg/gallerySyncNotifications.d.ts.map +1 -0
  348. package/build/services/asg/gallerySyncNotifications.js +198 -0
  349. package/build/services/asg/gallerySyncNotifications.js.map +1 -0
  350. package/build/services/asg/gallerySyncService.d.ts +137 -0
  351. package/build/services/asg/gallerySyncService.d.ts.map +1 -0
  352. package/build/services/asg/gallerySyncService.js +1933 -0
  353. package/build/services/asg/gallerySyncService.js.map +1 -0
  354. package/build/services/asg/galleryTransferLedger.d.ts +58 -0
  355. package/build/services/asg/galleryTransferLedger.d.ts.map +1 -0
  356. package/build/services/asg/galleryTransferLedger.js +225 -0
  357. package/build/services/asg/galleryTransferLedger.js.map +1 -0
  358. package/build/services/asg/localNetworkTransport.d.ts +15 -0
  359. package/build/services/asg/localNetworkTransport.d.ts.map +1 -0
  360. package/build/services/asg/localNetworkTransport.js +144 -0
  361. package/build/services/asg/localNetworkTransport.js.map +1 -0
  362. package/build/services/asg/localStorageService.d.ts +146 -0
  363. package/build/services/asg/localStorageService.d.ts.map +1 -0
  364. package/build/services/asg/localStorageService.js +572 -0
  365. package/build/services/asg/localStorageService.js.map +1 -0
  366. package/build/services/asg/mediaProcessingQueue.d.ts +70 -0
  367. package/build/services/asg/mediaProcessingQueue.d.ts.map +1 -0
  368. package/build/services/asg/mediaProcessingQueue.js +451 -0
  369. package/build/services/asg/mediaProcessingQueue.js.map +1 -0
  370. package/build/services/asgOtaVersionUrl.d.ts +2 -0
  371. package/build/services/asgOtaVersionUrl.d.ts.map +1 -0
  372. package/build/services/asgOtaVersionUrl.js +36 -0
  373. package/build/services/asgOtaVersionUrl.js.map +1 -0
  374. package/build/services/blobPaths.d.ts +31 -0
  375. package/build/services/blobPaths.d.ts.map +1 -0
  376. package/build/services/blobPaths.js +86 -0
  377. package/build/services/blobPaths.js.map +1 -0
  378. package/build/services/cloudStreamApi.d.ts +59 -0
  379. package/build/services/cloudStreamApi.d.ts.map +1 -0
  380. package/build/services/cloudStreamApi.js +81 -0
  381. package/build/services/cloudStreamApi.js.map +1 -0
  382. package/build/services/gallerySyncClock.d.ts +17 -0
  383. package/build/services/gallerySyncClock.d.ts.map +1 -0
  384. package/build/services/gallerySyncClock.js +21 -0
  385. package/build/services/gallerySyncClock.js.map +1 -0
  386. package/build/services/glassesClockSync.d.ts +20 -0
  387. package/build/services/glassesClockSync.d.ts.map +1 -0
  388. package/build/services/glassesClockSync.js +97 -0
  389. package/build/services/glassesClockSync.js.map +1 -0
  390. package/build/services/manifestVersionGate.d.ts +28 -0
  391. package/build/services/manifestVersionGate.d.ts.map +1 -0
  392. package/build/services/manifestVersionGate.js +41 -0
  393. package/build/services/manifestVersionGate.js.map +1 -0
  394. package/build/services/mentraUiShim.d.ts +38 -0
  395. package/build/services/mentraUiShim.d.ts.map +1 -0
  396. package/build/services/mentraUiShim.js +360 -0
  397. package/build/services/mentraUiShim.js.map +1 -0
  398. package/build/services/navigation/roadNameResolver.d.ts +67 -0
  399. package/build/services/navigation/roadNameResolver.d.ts.map +1 -0
  400. package/build/services/navigation/roadNameResolver.js +96 -0
  401. package/build/services/navigation/roadNameResolver.js.map +1 -0
  402. package/build/services/navigation/routesApiCodec.d.ts +38 -0
  403. package/build/services/navigation/routesApiCodec.d.ts.map +1 -0
  404. package/build/services/navigation/routesApiCodec.js +68 -0
  405. package/build/services/navigation/routesApiCodec.js.map +1 -0
  406. package/build/services/otaDisplayState.d.ts +42 -0
  407. package/build/services/otaDisplayState.d.ts.map +1 -0
  408. package/build/services/otaDisplayState.js +92 -0
  409. package/build/services/otaDisplayState.js.map +1 -0
  410. package/build/services/otaInstallPolicy.d.ts +81 -0
  411. package/build/services/otaInstallPolicy.d.ts.map +1 -0
  412. package/build/services/otaInstallPolicy.js +96 -0
  413. package/build/services/otaInstallPolicy.js.map +1 -0
  414. package/build/services/otaLegacyMapping.d.ts +22 -0
  415. package/build/services/otaLegacyMapping.d.ts.map +1 -0
  416. package/build/services/otaLegacyMapping.js +56 -0
  417. package/build/services/otaLegacyMapping.js.map +1 -0
  418. package/build/services/slimStreamStatus.d.ts +7 -0
  419. package/build/services/slimStreamStatus.d.ts.map +1 -0
  420. package/build/services/slimStreamStatus.js +26 -0
  421. package/build/services/slimStreamStatus.js.map +1 -0
  422. package/build/stores/apps.d.ts +104 -0
  423. package/build/stores/apps.d.ts.map +1 -0
  424. package/build/stores/apps.js +492 -0
  425. package/build/stores/apps.js.map +1 -0
  426. package/build/stores/bluetoothSettingKeys.d.ts +4 -0
  427. package/build/stores/bluetoothSettingKeys.d.ts.map +1 -0
  428. package/build/stores/bluetoothSettingKeys.js +31 -0
  429. package/build/stores/bluetoothSettingKeys.js.map +1 -0
  430. package/build/stores/cloudClientStatus.d.ts +9 -0
  431. package/build/stores/cloudClientStatus.d.ts.map +1 -0
  432. package/build/stores/cloudClientStatus.js +24 -0
  433. package/build/stores/cloudClientStatus.js.map +1 -0
  434. package/build/stores/connection.d.ts +22 -0
  435. package/build/stores/connection.d.ts.map +1 -0
  436. package/build/stores/connection.js +43 -0
  437. package/build/stores/connection.js.map +1 -0
  438. package/build/stores/core.d.ts +15 -0
  439. package/build/stores/core.d.ts.map +1 -0
  440. package/build/stores/core.js +21 -0
  441. package/build/stores/core.js.map +1 -0
  442. package/build/stores/display.d.ts +24 -0
  443. package/build/stores/display.d.ts.map +1 -0
  444. package/build/stores/display.js +96 -0
  445. package/build/stores/display.js.map +1 -0
  446. package/build/stores/gallerySync.d.ts +101 -0
  447. package/build/stores/gallerySync.d.ts.map +1 -0
  448. package/build/stores/gallerySync.js +217 -0
  449. package/build/stores/gallerySync.js.map +1 -0
  450. package/build/stores/glasses.d.ts +62 -0
  451. package/build/stores/glasses.d.ts.map +1 -0
  452. package/build/stores/glasses.js +203 -0
  453. package/build/stores/glasses.js.map +1 -0
  454. package/build/stores/settings.d.ts +37 -0
  455. package/build/stores/settings.d.ts.map +1 -0
  456. package/build/stores/settings.js +922 -0
  457. package/build/stores/settings.js.map +1 -0
  458. package/build/types/applet.d.ts +96 -0
  459. package/build/types/applet.d.ts.map +1 -0
  460. package/build/types/applet.js +5 -0
  461. package/build/types/applet.js.map +1 -0
  462. package/build/types/asg.d.ts +53 -0
  463. package/build/types/asg.d.ts.map +1 -0
  464. package/build/types/asg.js +2 -0
  465. package/build/types/asg.js.map +1 -0
  466. package/build/types/capabilities/even-realities-g1.d.ts +12 -0
  467. package/build/types/capabilities/even-realities-g1.d.ts.map +1 -0
  468. package/build/types/capabilities/even-realities-g1.js +55 -0
  469. package/build/types/capabilities/even-realities-g1.js.map +1 -0
  470. package/build/types/capabilities/even-realities-g2.d.ts +12 -0
  471. package/build/types/capabilities/even-realities-g2.d.ts.map +1 -0
  472. package/build/types/capabilities/even-realities-g2.js +75 -0
  473. package/build/types/capabilities/even-realities-g2.js.map +1 -0
  474. package/build/types/capabilities/mentra-display.d.ts +12 -0
  475. package/build/types/capabilities/mentra-display.d.ts.map +1 -0
  476. package/build/types/capabilities/mentra-display.js +63 -0
  477. package/build/types/capabilities/mentra-display.js.map +1 -0
  478. package/build/types/capabilities/mentra-live.d.ts +12 -0
  479. package/build/types/capabilities/mentra-live.d.ts.map +1 -0
  480. package/build/types/capabilities/mentra-live.js +92 -0
  481. package/build/types/capabilities/mentra-live.js.map +1 -0
  482. package/build/types/capabilities/none.d.ts +13 -0
  483. package/build/types/capabilities/none.d.ts.map +1 -0
  484. package/build/types/capabilities/none.js +65 -0
  485. package/build/types/capabilities/none.js.map +1 -0
  486. package/build/types/capabilities/simulated-glasses.d.ts +13 -0
  487. package/build/types/capabilities/simulated-glasses.d.ts.map +1 -0
  488. package/build/types/capabilities/simulated-glasses.js +65 -0
  489. package/build/types/capabilities/simulated-glasses.js.map +1 -0
  490. package/build/types/capabilities/vuzix-z100.d.ts +12 -0
  491. package/build/types/capabilities/vuzix-z100.d.ts.map +1 -0
  492. package/build/types/capabilities/vuzix-z100.js +52 -0
  493. package/build/types/capabilities/vuzix-z100.js.map +1 -0
  494. package/build/types/enums.d.ts +40 -0
  495. package/build/types/enums.d.ts.map +1 -0
  496. package/build/types/enums.js +44 -0
  497. package/build/types/enums.js.map +1 -0
  498. package/build/types/hardware.d.ts +160 -0
  499. package/build/types/hardware.d.ts.map +1 -0
  500. package/build/types/hardware.js +36 -0
  501. package/build/types/hardware.js.map +1 -0
  502. package/build/types/index.d.ts +11 -0
  503. package/build/types/index.d.ts.map +1 -0
  504. package/build/types/index.js +10 -0
  505. package/build/types/index.js.map +1 -0
  506. package/build/utils/GlobalEventEmitter.d.ts +10 -0
  507. package/build/utils/GlobalEventEmitter.d.ts.map +1 -0
  508. package/build/utils/GlobalEventEmitter.js +13 -0
  509. package/build/utils/GlobalEventEmitter.js.map +1 -0
  510. package/build/utils/cloudClient/RnUdpAdapter.d.ts +3 -0
  511. package/build/utils/cloudClient/RnUdpAdapter.d.ts.map +1 -0
  512. package/build/utils/cloudClient/RnUdpAdapter.js +41 -0
  513. package/build/utils/cloudClient/RnUdpAdapter.js.map +1 -0
  514. package/build/utils/cloudClient/cloudSecureStore.d.ts +3 -0
  515. package/build/utils/cloudClient/cloudSecureStore.d.ts.map +1 -0
  516. package/build/utils/cloudClient/cloudSecureStore.js +26 -0
  517. package/build/utils/cloudClient/cloudSecureStore.js.map +1 -0
  518. package/build/utils/debouncedPatch.d.ts +6 -0
  519. package/build/utils/debouncedPatch.d.ts.map +1 -0
  520. package/build/utils/debouncedPatch.js +25 -0
  521. package/build/utils/debouncedPatch.js.map +1 -0
  522. package/build/utils/devLogging.d.ts +26 -0
  523. package/build/utils/devLogging.d.ts.map +1 -0
  524. package/build/utils/devLogging.js +116 -0
  525. package/build/utils/devLogging.js.map +1 -0
  526. package/build/utils/devMiniappLaunch.d.ts +44 -0
  527. package/build/utils/devMiniappLaunch.d.ts.map +1 -0
  528. package/build/utils/devMiniappLaunch.js +52 -0
  529. package/build/utils/devMiniappLaunch.js.map +1 -0
  530. package/build/utils/diagnosticContext.d.ts +3 -0
  531. package/build/utils/diagnosticContext.d.ts.map +1 -0
  532. package/build/utils/diagnosticContext.js +119 -0
  533. package/build/utils/diagnosticContext.js.map +1 -0
  534. package/build/utils/display/composer/ColumnComposer.d.ts +131 -0
  535. package/build/utils/display/composer/ColumnComposer.d.ts.map +1 -0
  536. package/build/utils/display/composer/ColumnComposer.js +204 -0
  537. package/build/utils/display/composer/ColumnComposer.js.map +1 -0
  538. package/build/utils/display/composer/index.d.ts +9 -0
  539. package/build/utils/display/composer/index.d.ts.map +1 -0
  540. package/build/utils/display/composer/index.js +9 -0
  541. package/build/utils/display/composer/index.js.map +1 -0
  542. package/build/utils/display/helpers/DisplayHelpers.d.ts +165 -0
  543. package/build/utils/display/helpers/DisplayHelpers.d.ts.map +1 -0
  544. package/build/utils/display/helpers/DisplayHelpers.js +312 -0
  545. package/build/utils/display/helpers/DisplayHelpers.js.map +1 -0
  546. package/build/utils/display/helpers/ScrollView.d.ts +183 -0
  547. package/build/utils/display/helpers/ScrollView.d.ts.map +1 -0
  548. package/build/utils/display/helpers/ScrollView.js +257 -0
  549. package/build/utils/display/helpers/ScrollView.js.map +1 -0
  550. package/build/utils/display/helpers/index.d.ts +11 -0
  551. package/build/utils/display/helpers/index.d.ts.map +1 -0
  552. package/build/utils/display/helpers/index.js +10 -0
  553. package/build/utils/display/helpers/index.js.map +1 -0
  554. package/build/utils/display/index.d.ts +174 -0
  555. package/build/utils/display/index.d.ts.map +1 -0
  556. package/build/utils/display/index.js +185 -0
  557. package/build/utils/display/index.js.map +1 -0
  558. package/build/utils/display/measurer/TextMeasurer.d.ts +160 -0
  559. package/build/utils/display/measurer/TextMeasurer.d.ts.map +1 -0
  560. package/build/utils/display/measurer/TextMeasurer.js +273 -0
  561. package/build/utils/display/measurer/TextMeasurer.js.map +1 -0
  562. package/build/utils/display/measurer/index.d.ts +10 -0
  563. package/build/utils/display/measurer/index.d.ts.map +1 -0
  564. package/build/utils/display/measurer/index.js +11 -0
  565. package/build/utils/display/measurer/index.js.map +1 -0
  566. package/build/utils/display/measurer/script-detection.d.ts +53 -0
  567. package/build/utils/display/measurer/script-detection.d.ts.map +1 -0
  568. package/build/utils/display/measurer/script-detection.js +184 -0
  569. package/build/utils/display/measurer/script-detection.js.map +1 -0
  570. package/build/utils/display/profiles/g1.d.ts +33 -0
  571. package/build/utils/display/profiles/g1.d.ts.map +1 -0
  572. package/build/utils/display/profiles/g1.js +213 -0
  573. package/build/utils/display/profiles/g1.js.map +1 -0
  574. package/build/utils/display/profiles/g2.d.ts +13 -0
  575. package/build/utils/display/profiles/g2.d.ts.map +1 -0
  576. package/build/utils/display/profiles/g2.js +34 -0
  577. package/build/utils/display/profiles/g2.js.map +1 -0
  578. package/build/utils/display/profiles/index.d.ts +12 -0
  579. package/build/utils/display/profiles/index.d.ts.map +1 -0
  580. package/build/utils/display/profiles/index.js +15 -0
  581. package/build/utils/display/profiles/index.js.map +1 -0
  582. package/build/utils/display/profiles/nex.d.ts +10 -0
  583. package/build/utils/display/profiles/nex.d.ts.map +1 -0
  584. package/build/utils/display/profiles/nex.js +150 -0
  585. package/build/utils/display/profiles/nex.js.map +1 -0
  586. package/build/utils/display/profiles/types.d.ts +103 -0
  587. package/build/utils/display/profiles/types.d.ts.map +1 -0
  588. package/build/utils/display/profiles/types.js +2 -0
  589. package/build/utils/display/profiles/types.js.map +1 -0
  590. package/build/utils/display/profiles/z100.d.ts +33 -0
  591. package/build/utils/display/profiles/z100.d.ts.map +1 -0
  592. package/build/utils/display/profiles/z100.js +182 -0
  593. package/build/utils/display/profiles/z100.js.map +1 -0
  594. package/build/utils/display/scene/degrade.d.ts +25 -0
  595. package/build/utils/display/scene/degrade.d.ts.map +1 -0
  596. package/build/utils/display/scene/degrade.js +64 -0
  597. package/build/utils/display/scene/degrade.js.map +1 -0
  598. package/build/utils/display/scene/differ.d.ts +38 -0
  599. package/build/utils/display/scene/differ.d.ts.map +1 -0
  600. package/build/utils/display/scene/differ.js +107 -0
  601. package/build/utils/display/scene/differ.js.map +1 -0
  602. package/build/utils/display/scene/index.d.ts +10 -0
  603. package/build/utils/display/scene/index.d.ts.map +1 -0
  604. package/build/utils/display/scene/index.js +6 -0
  605. package/build/utils/display/scene/index.js.map +1 -0
  606. package/build/utils/display/scene/process.d.ts +35 -0
  607. package/build/utils/display/scene/process.d.ts.map +1 -0
  608. package/build/utils/display/scene/process.js +187 -0
  609. package/build/utils/display/scene/process.js.map +1 -0
  610. package/build/utils/display/scene/store.d.ts +48 -0
  611. package/build/utils/display/scene/store.d.ts.map +1 -0
  612. package/build/utils/display/scene/store.js +0 -0
  613. package/build/utils/display/scene/store.js.map +1 -0
  614. package/build/utils/display/scene/types.d.ts +120 -0
  615. package/build/utils/display/scene/types.d.ts.map +1 -0
  616. package/build/utils/display/scene/types.js +0 -0
  617. package/build/utils/display/scene/types.js.map +1 -0
  618. package/build/utils/display/wrapper/TextWrapper.d.ts +102 -0
  619. package/build/utils/display/wrapper/TextWrapper.d.ts.map +1 -0
  620. package/build/utils/display/wrapper/TextWrapper.js +471 -0
  621. package/build/utils/display/wrapper/TextWrapper.js.map +1 -0
  622. package/build/utils/display/wrapper/index.d.ts +12 -0
  623. package/build/utils/display/wrapper/index.d.ts.map +1 -0
  624. package/build/utils/display/wrapper/index.js +12 -0
  625. package/build/utils/display/wrapper/index.js.map +1 -0
  626. package/build/utils/display/wrapper/types.d.ts +75 -0
  627. package/build/utils/display/wrapper/types.d.ts.map +1 -0
  628. package/build/utils/display/wrapper/types.js +11 -0
  629. package/build/utils/display/wrapper/types.js.map +1 -0
  630. package/build/utils/e2eMetrics.d.ts +6 -0
  631. package/build/utils/e2eMetrics.d.ts.map +1 -0
  632. package/build/utils/e2eMetrics.js +27 -0
  633. package/build/utils/e2eMetrics.js.map +1 -0
  634. package/build/utils/hardware/hardware.d.ts +42 -0
  635. package/build/utils/hardware/hardware.d.ts.map +1 -0
  636. package/build/utils/hardware/hardware.js +127 -0
  637. package/build/utils/hardware/hardware.js.map +1 -0
  638. package/build/utils/hardware/index.d.ts +2 -0
  639. package/build/utils/hardware/index.d.ts.map +1 -0
  640. package/build/utils/hardware/index.js +2 -0
  641. package/build/utils/hardware/index.js.map +1 -0
  642. package/build/utils/miniappGlobals.d.ts +60 -0
  643. package/build/utils/miniappGlobals.d.ts.map +1 -0
  644. package/build/utils/miniappGlobals.js +224 -0
  645. package/build/utils/miniappGlobals.js.map +1 -0
  646. package/build/utils/permissions/MediaLibraryPermissions.d.ts +45 -0
  647. package/build/utils/permissions/MediaLibraryPermissions.d.ts.map +1 -0
  648. package/build/utils/permissions/MediaLibraryPermissions.js +145 -0
  649. package/build/utils/permissions/MediaLibraryPermissions.js.map +1 -0
  650. package/build/utils/permissions/galleryDisplayName.d.ts +8 -0
  651. package/build/utils/permissions/galleryDisplayName.d.ts.map +1 -0
  652. package/build/utils/permissions/galleryDisplayName.js +25 -0
  653. package/build/utils/permissions/galleryDisplayName.js.map +1 -0
  654. package/build/utils/storage/index.d.ts +3 -0
  655. package/build/utils/storage/index.d.ts.map +1 -0
  656. package/build/utils/storage/index.js +3 -0
  657. package/build/utils/storage/index.js.map +1 -0
  658. package/build/utils/storage/storage.d.ts +24 -0
  659. package/build/utils/storage/storage.d.ts.map +1 -0
  660. package/build/utils/storage/storage.js +85 -0
  661. package/build/utils/storage/storage.js.map +1 -0
  662. package/build/utils/storage/zip.d.ts +3 -0
  663. package/build/utils/storage/zip.d.ts.map +1 -0
  664. package/build/utils/storage/zip.js +14 -0
  665. package/build/utils/storage/zip.js.map +1 -0
  666. package/build/utils/timers/index.d.ts +3 -0
  667. package/build/utils/timers/index.d.ts.map +1 -0
  668. package/build/utils/timers/index.js +3 -0
  669. package/build/utils/timers/index.js.map +1 -0
  670. package/build/utils/timers/timers.d.ts +9 -0
  671. package/build/utils/timers/timers.d.ts.map +1 -0
  672. package/build/utils/timers/timers.js +105 -0
  673. package/build/utils/timers/timers.js.map +1 -0
  674. package/package.json +120 -0
  675. package/src/devtools.ts +13 -0
  676. package/src/engine.ts +173 -0
  677. package/src/facades/dev.ts +198 -0
  678. package/src/facades/display.ts +17 -0
  679. package/src/facades/displayMirror.ts +33 -0
  680. package/src/facades/gallery.ts +69 -0
  681. package/src/facades/glasses.ts +206 -0
  682. package/src/facades/glassesSettings.ts +56 -0
  683. package/src/facades/glassesWifi.ts +68 -0
  684. package/src/facades/miniapps.ts +55 -0
  685. package/src/facades/notifications.ts +15 -0
  686. package/src/facades/ota.ts +174 -0
  687. package/src/facades/pairing.ts +329 -0
  688. package/src/facades/permissions.ts +165 -0
  689. package/src/facades/phoneNotifications.ts +50 -0
  690. package/src/facades/reports.ts +185 -0
  691. package/src/facades/session.ts +55 -0
  692. package/src/facades/settings.ts +57 -0
  693. package/src/facades/speech.ts +38 -0
  694. package/src/index.ts +191 -0
  695. package/src/internal.ts +159 -0
  696. package/src/runtime/bootstrap.ts +118 -0
  697. package/src/runtime/config.ts +147 -0
  698. package/src/runtime/streamConfig.ts +34 -0
  699. package/src/services/AppRegistry.ts +1190 -0
  700. package/src/services/AudioCloudUplink.ts +50 -0
  701. package/src/services/AudioPlaybackService.ts +813 -0
  702. package/src/services/AutomaticReportResult.ts +48 -0
  703. package/src/services/BlobStore.ts +746 -0
  704. package/src/services/CaptionsTesterReportService.ts +107 -0
  705. package/src/services/CloudAudioSubscriptionSync.ts +41 -0
  706. package/src/services/CloudClientService.ts +689 -0
  707. package/src/services/CloudTranscriptE2EMetrics.ts +27 -0
  708. package/src/services/ConnectionCoordinator.ts +65 -0
  709. package/src/services/DevServerBridge.ts +332 -0
  710. package/src/services/DeviceEventRouter.ts +238 -0
  711. package/src/services/DeviceStoreHydration.ts +130 -0
  712. package/src/services/DisplayProcessor.ts +775 -0
  713. package/src/services/GlassesReadiness.ts +103 -0
  714. package/src/services/GlassesSettingsSync.ts +134 -0
  715. package/src/services/GlassesStatusProjection.ts +73 -0
  716. package/src/services/HeadingService.ts +98 -0
  717. package/src/services/LocalDisplayManager.ts +703 -0
  718. package/src/services/LocalMiniappRuntime.ts +4213 -0
  719. package/src/services/LocalSttFallbackCoordinator.ts +147 -0
  720. package/src/services/MentraJSCrashController.ts +189 -0
  721. package/src/services/MentraJSCrashloopReportService.ts +66 -0
  722. package/src/services/MentraJSLogPipeline.ts +166 -0
  723. package/src/services/MentraJSRouter.ts +557 -0
  724. package/src/services/MentraUIRouter.ts +244 -0
  725. package/src/services/MicStateCoordinator.ts +94 -0
  726. package/src/services/MiniappEngine.ts +143 -0
  727. package/src/services/MiniappLauncher.ts +340 -0
  728. package/src/services/MiniappRunningRegistry.ts +57 -0
  729. package/src/services/NativeHttpResponse.ts +6 -0
  730. package/src/services/NavigationHandlers.ts +423 -0
  731. package/src/services/NavigationService.ts +731 -0
  732. package/src/services/NotificationsEmitter.ts +48 -0
  733. package/src/services/OfflineSpeechModelService.ts +168 -0
  734. package/src/services/OtaInstallCoordinator.ts +1205 -0
  735. package/src/services/OtaService.ts +83 -0
  736. package/src/services/OtaUpdateCheckService.ts +386 -0
  737. package/src/services/PairingIdentity.ts +154 -0
  738. package/src/services/PhoneCalendarHelpers.ts +212 -0
  739. package/src/services/PhoneCalendarService.ts +42 -0
  740. package/src/services/PhoneCameraFovCoordinator.ts +195 -0
  741. package/src/services/PhoneLocationService.ts +122 -0
  742. package/src/services/PhoneNotificationsSync.ts +44 -0
  743. package/src/services/PhonePhotoCoordinator.ts +409 -0
  744. package/src/services/PhoneStreamCoordinator.ts +777 -0
  745. package/src/services/PhoneVideoCoordinator.ts +189 -0
  746. package/src/services/STTModelManager.ts +360 -0
  747. package/src/services/SceneRenderer.ts +292 -0
  748. package/src/services/SentenceTtsPipeline.ts +106 -0
  749. package/src/services/StreamLifecycleController.ts +213 -0
  750. package/src/services/TTSModelManager.ts +466 -0
  751. package/src/services/TranscriptionRouting.ts +37 -0
  752. package/src/services/WebviewBridge.ts +50 -0
  753. package/src/services/asg/GalleryMediaIntegrityReportService.ts +70 -0
  754. package/src/services/asg/asgCameraApi.ts +1695 -0
  755. package/src/services/asg/cameraRollExportCoordinator.ts +627 -0
  756. package/src/services/asg/cameraRollExportLedger.ts +122 -0
  757. package/src/services/asg/galleryMediaValidation.ts +183 -0
  758. package/src/services/asg/galleryNotices.ts +61 -0
  759. package/src/services/asg/galleryPathMigration.ts +22 -0
  760. package/src/services/asg/gallerySettingsService.ts +68 -0
  761. package/src/services/asg/gallerySyncNotifications.ts +236 -0
  762. package/src/services/asg/gallerySyncService.ts +2269 -0
  763. package/src/services/asg/galleryTransferLedger.ts +312 -0
  764. package/src/services/asg/localNetworkTransport.ts +173 -0
  765. package/src/services/asg/localStorageService.ts +652 -0
  766. package/src/services/asg/mediaProcessingQueue.ts +518 -0
  767. package/src/services/asgOtaVersionUrl.ts +41 -0
  768. package/src/services/blobPaths.ts +86 -0
  769. package/src/services/cloudStreamApi.ts +154 -0
  770. package/src/services/gallerySyncClock.ts +39 -0
  771. package/src/services/glassesClockSync.ts +115 -0
  772. package/src/services/manifestVersionGate.ts +43 -0
  773. package/src/services/mentraUiShim.ts +366 -0
  774. package/src/services/navigation/roadNameResolver.ts +112 -0
  775. package/src/services/navigation/routesApiCodec.ts +69 -0
  776. package/src/services/otaDisplayState.ts +115 -0
  777. package/src/services/otaInstallPolicy.ts +106 -0
  778. package/src/services/otaLegacyMapping.ts +71 -0
  779. package/src/services/slimStreamStatus.ts +28 -0
  780. package/src/stores/apps.ts +614 -0
  781. package/src/stores/bluetoothSettingKeys.ts +36 -0
  782. package/src/stores/cloudClientStatus.ts +37 -0
  783. package/src/stores/connection.ts +69 -0
  784. package/src/stores/core.ts +32 -0
  785. package/src/stores/display.ts +121 -0
  786. package/src/stores/gallerySync.ts +380 -0
  787. package/src/stores/glasses.ts +309 -0
  788. package/src/stores/settings.ts +1001 -0
  789. package/src/types/applet.ts +112 -0
  790. package/src/types/asg.ts +58 -0
  791. package/src/types/capabilities/even-realities-g1.ts +67 -0
  792. package/src/types/capabilities/even-realities-g2.ts +88 -0
  793. package/src/types/capabilities/mentra-display.ts +75 -0
  794. package/src/types/capabilities/mentra-live.ts +103 -0
  795. package/src/types/capabilities/none.ts +76 -0
  796. package/src/types/capabilities/simulated-glasses.ts +76 -0
  797. package/src/types/capabilities/vuzix-z100.ts +64 -0
  798. package/src/types/enums.ts +43 -0
  799. package/src/types/hardware.ts +203 -0
  800. package/src/types/index.ts +37 -0
  801. package/src/utils/GlobalEventEmitter.ts +14 -0
  802. package/src/utils/cloudClient/RnUdpAdapter.ts +47 -0
  803. package/src/utils/cloudClient/cloudSecureStore.ts +28 -0
  804. package/src/utils/debouncedPatch.ts +28 -0
  805. package/src/utils/devLogging.ts +140 -0
  806. package/src/utils/devMiniappLaunch.ts +68 -0
  807. package/src/utils/diagnosticContext.ts +155 -0
  808. package/src/utils/display/composer/ColumnComposer.ts +285 -0
  809. package/src/utils/display/composer/index.ts +15 -0
  810. package/src/utils/display/helpers/DisplayHelpers.ts +413 -0
  811. package/src/utils/display/helpers/ScrollView.ts +337 -0
  812. package/src/utils/display/helpers/index.ts +14 -0
  813. package/src/utils/display/index.ts +273 -0
  814. package/src/utils/display/measurer/TextMeasurer.ts +346 -0
  815. package/src/utils/display/measurer/index.ts +21 -0
  816. package/src/utils/display/measurer/script-detection.ts +218 -0
  817. package/src/utils/display/profiles/g1.ts +236 -0
  818. package/src/utils/display/profiles/g2.ts +39 -0
  819. package/src/utils/display/profiles/index.ts +28 -0
  820. package/src/utils/display/profiles/nex.ts +166 -0
  821. package/src/utils/display/profiles/types.ts +132 -0
  822. package/src/utils/display/profiles/z100.ts +198 -0
  823. package/src/utils/display/scene/degrade.ts +80 -0
  824. package/src/utils/display/scene/differ.ts +128 -0
  825. package/src/utils/display/scene/index.ts +21 -0
  826. package/src/utils/display/scene/process.ts +214 -0
  827. package/src/utils/display/scene/store.ts +0 -0
  828. package/src/utils/display/scene/types.ts +0 -0
  829. package/src/utils/display/wrapper/TextWrapper.ts +546 -0
  830. package/src/utils/display/wrapper/index.ts +15 -0
  831. package/src/utils/display/wrapper/types.ts +102 -0
  832. package/src/utils/e2eMetrics.ts +30 -0
  833. package/src/utils/hardware/hardware.ts +166 -0
  834. package/src/utils/hardware/index.ts +1 -0
  835. package/src/utils/miniappGlobals.ts +260 -0
  836. package/src/utils/permissions/MediaLibraryPermissions.ts +161 -0
  837. package/src/utils/permissions/galleryDisplayName.ts +28 -0
  838. package/src/utils/storage/index.ts +2 -0
  839. package/src/utils/storage/storage.ts +101 -0
  840. package/src/utils/storage/zip.ts +13 -0
  841. package/src/utils/timers/index.ts +2 -0
  842. package/src/utils/timers/timers.ts +139 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hardware.js","sourceRoot":"","sources":["../../src/types/hardware.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,eAAe,EAAE,MAAM,kCAAkC,CAAC;AACnE,OAAO,EAAE,eAAe,EAAE,MAAM,kCAAkC,CAAC;AACnE,OAAO,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;AAC9D,OAAO,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAC;AACxD,OAAO,EAAE,gBAAgB,EAAE,MAAM,kCAAkC,CAAC;AACpE,OAAO,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAC;AACtD,OAAO,EAAE,IAAI,EAAE,MAAM,qBAAqB,CAAC;AAC3C,OAAO,EAAE,WAAW,EAA0C,MAAM,SAAS,CAAC;AAsK9E;;;;GAIG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAAiC;IACjE,CAAC,eAAe,CAAC,SAAS,CAAC,EAAE,eAAe;IAC5C,CAAC,eAAe,CAAC,SAAS,CAAC,EAAE,eAAe;IAC5C,CAAC,aAAa,CAAC,SAAS,CAAC,EAAE,aAAa;IACxC,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,UAAU;IAClC,CAAC,gBAAgB,CAAC,SAAS,CAAC,EAAE,gBAAgB;IAC9C,CAAC,SAAS,CAAC,SAAS,CAAC,EAAE,SAAS;IAChC,CAAC,WAAW,CAAC,KAAK,CAAC,EAAE,SAAS,EAAE,mDAAmD;IACnF,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,IAAI;CACvB,CAAC;AAEF,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,UAAuB,EAAgB,EAAE;IAC5E,MAAM,SAAS,GAAG,UAAoB,CAAC;IACvC,IAAI,CAAC,qBAAqB,CAAC,SAAS,CAAC,EAAE,CAAC;QACtC,OAAO,qBAAqB,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;IACjD,CAAC;IACD,OAAO,qBAAqB,CAAC,SAAS,CAAC,CAAC;AAC1C,CAAC,CAAC;AAEF,iCAAiC;AACjC,OAAO,EAAE,gBAAgB,EAAE,eAAe,EAAE,eAAe,EAAE,UAAU,EAAE,SAAS,EAAE,aAAa,EAAE,CAAC","sourcesContent":["/**\n * @mentra/types - Hardware capability types\n */\n\nimport { evenRealitiesG1 } from \"./capabilities/even-realities-g1\";\nimport { evenRealitiesG2 } from \"./capabilities/even-realities-g2\";\nimport { mentraDisplay } from \"./capabilities/mentra-display\";\nimport { mentraLive } from \"./capabilities/mentra-live\";\nimport { simulatedGlasses } from \"./capabilities/simulated-glasses\";\nimport { vuzixZ100 } from \"./capabilities/vuzix-z100\";\nimport { none } from \"./capabilities/none\";\nimport { DeviceTypes, HardwareRequirementLevel, HardwareType } from \"./enums\";\n\n/**\n * Hardware requirement for an app\n * Specifies what hardware components an app needs\n */\nexport interface HardwareRequirement {\n type: HardwareType;\n level: HardwareRequirementLevel;\n description?: string; // Why this hardware is needed\n}\n\n/**\n * Camera capabilities\n */\nexport interface CameraCapabilities {\n resolution?: { width: number; height: number };\n hasHDR?: boolean;\n hasFocus?: boolean;\n video: {\n canRecord: boolean;\n canStream: boolean;\n supportedStreamTypes?: string[];\n supportedResolutions?: { width: number; height: number }[];\n };\n}\n\n/**\n * Display capabilities\n */\nexport interface DisplayCapabilities {\n count?: number;\n isColor?: boolean;\n color?: string; // e.g., \"green\", \"full_color\", \"pallet\"\n canDisplayBitmap?: boolean;\n resolution?: { width: number; height: number };\n fieldOfView?: { horizontal?: number; vertical?: number };\n maxTextLines?: number;\n adjustBrightness?: boolean;\n\n // --- Scene display API (display.render()) — typed capabilities ---\n // Pure DATA the host scene pipeline acts on generically; a device without\n // canPosition renders scenes via the host degrade path instead.\n /** Public drawable canvas in px — the raw coordinate space for render() boxes. */\n width?: number;\n height?: number;\n /** True ⇒ the device renders positioned elements (containers / canvas components). */\n canPosition?: boolean;\n /** Element budgets. Rects share the text pool on container-based devices. */\n maxTextElements?: number;\n maxImageElements?: number;\n /** Per-image dimension cap (box-level), when the firmware has one. */\n maxImagePx?: { width: number; height: number };\n shapes?: \"rect\"[];\n intensityLevels?: number;\n partialUpdate?: boolean;\n}\n\n/**\n * Microphone capabilities\n */\nexport interface MicrophoneCapabilities {\n count?: number;\n hasVAD?: boolean; // Voice Activity Detection\n}\n\n/**\n * Speaker capabilities\n */\nexport interface SpeakerCapabilities {\n count?: number;\n isPrivate?: boolean; // e.g., bone conduction\n}\n\n/**\n * IMU (Inertial Measurement Unit) capabilities\n */\nexport interface IMUCapabilities {\n axisCount?: number;\n hasAccelerometer?: boolean;\n hasCompass?: boolean;\n hasGyroscope?: boolean;\n}\n\n/**\n * Button capabilities\n */\nexport interface ButtonCapabilities {\n count?: number;\n buttons?: {\n type: \"press\" | \"swipe1d\" | \"swipe2d\";\n events: string[]; // e.g., \"press\", \"double_press\", \"long_press\", \"swipe_up\", \"swipe_down\"\n isCapacitive?: boolean;\n }[];\n}\n\n/**\n * Light capabilities\n */\nexport interface LightCapabilities {\n count?: number;\n lights?: {\n id: string; // Unique identifier for the LED (e.g., \"privacy\", \"user_feedback\")\n purpose: \"privacy\" | \"user_feedback\" | \"general\"; // LED purpose/function\n isFullColor: boolean;\n color?: string; // e.g., \"white\", \"rgb\"\n position?: \"front_facing\" | \"user_facing\" | \"side\" | \"unknown\"; // LED physical position\n }[];\n}\n\n/**\n * Power capabilities\n */\nexport interface PowerCapabilities {\n hasExternalBattery: boolean; // e.g., a case or puck\n}\n\n/**\n * Device hardware capabilities\n * Complete information about what hardware a device has\n */\nexport interface Capabilities {\n modelName: string;\n\n // Camera capabilities\n hasCamera: boolean;\n camera: CameraCapabilities | null;\n\n // Display capabilities\n hasDisplay: boolean;\n display: DisplayCapabilities | null;\n\n // Microphone capabilities\n hasMicrophone: boolean;\n microphone: MicrophoneCapabilities | null;\n\n // Speaker capabilities\n hasSpeaker: boolean;\n speaker: SpeakerCapabilities | null;\n\n // IMU capabilities\n hasIMU: boolean;\n imu: IMUCapabilities | null;\n\n // Button capabilities\n hasButton: boolean;\n button: ButtonCapabilities | null;\n\n // Light capabilities\n hasLight: boolean;\n light: LightCapabilities | null;\n\n // Power capabilities\n power: PowerCapabilities;\n\n // WiFi capability\n hasWifi: boolean;\n\n // Native dashboard capability\n // True when the device renders its own dashboard in firmware (e.g. Even\n // Realities' built-in dashboard on G2). MentraOS does not manage or expose\n // dashboard settings for these devices. Absent/false means MentraOS owns the\n // dashboard.\n hasNativeDashboard?: boolean;\n}\n\n/**\n * Hardware capability profiles for supported glasses models\n * Key: model_name string (e.g., \"Even Realities G1\", \"Mentra Live\")\n * Value: Capabilities object defining device features\n */\nexport const HARDWARE_CAPABILITIES: Record<string, Capabilities> = {\n [evenRealitiesG1.modelName]: evenRealitiesG1,\n [evenRealitiesG2.modelName]: evenRealitiesG2,\n [mentraDisplay.modelName]: mentraDisplay,\n [mentraLive.modelName]: mentraLive,\n [simulatedGlasses.modelName]: simulatedGlasses,\n [vuzixZ100.modelName]: vuzixZ100,\n [DeviceTypes.MACH1]: vuzixZ100, // Mach1 uses same Vuzix Ultralite hardware as Z100\n [none.modelName]: none,\n};\n\nexport const getModelCapabilities = (deviceType: DeviceTypes): Capabilities => {\n const modelName = deviceType as string;\n if (!HARDWARE_CAPABILITIES[modelName]) {\n return HARDWARE_CAPABILITIES[DeviceTypes.NONE];\n }\n return HARDWARE_CAPABILITIES[modelName];\n};\n\n// export * from \"./capabilities\"\nexport { simulatedGlasses, evenRealitiesG1, evenRealitiesG2, mentraLive, vuzixZ100, mentraDisplay };\n"]}
@@ -0,0 +1,11 @@
1
+ /**
2
+ * Engine shared types — copied verbatim from @mentra/types so the module is
3
+ * self-contained. Keep these in sync with cloud/packages/types/src when the
4
+ * canonical types change. The capability profiles also live here under
5
+ * ./capabilities/.
6
+ */
7
+ export { HardwareType, HardwareRequirementLevel, DeviceTypes, ControllerTypes } from "./enums";
8
+ export type { HardwareRequirement, CameraCapabilities, DisplayCapabilities, MicrophoneCapabilities, SpeakerCapabilities, IMUCapabilities, ButtonCapabilities, LightCapabilities, PowerCapabilities, Capabilities, } from "./hardware";
9
+ export { HARDWARE_CAPABILITIES, getModelCapabilities, simulatedGlasses, evenRealitiesG1, evenRealitiesG2, mentraLive, vuzixZ100, mentraDisplay, } from "./hardware";
10
+ export type { AppletType, AppPermissionType, AppletPermission, AppletInterface, ClientApp } from "./applet";
11
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,EAAC,YAAY,EAAE,wBAAwB,EAAE,WAAW,EAAE,eAAe,EAAC,MAAM,SAAS,CAAA;AAG5F,YAAY,EACV,mBAAmB,EACnB,kBAAkB,EAClB,mBAAmB,EACnB,sBAAsB,EACtB,mBAAmB,EACnB,eAAe,EACf,kBAAkB,EAClB,iBAAiB,EACjB,iBAAiB,EACjB,YAAY,GACb,MAAM,YAAY,CAAA;AAEnB,OAAO,EACL,qBAAqB,EACrB,oBAAoB,EACpB,gBAAgB,EAChB,eAAe,EACf,eAAe,EACf,UAAU,EACV,SAAS,EACT,aAAa,GACd,MAAM,YAAY,CAAA;AAGnB,YAAY,EAAC,UAAU,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,eAAe,EAAE,SAAS,EAAC,MAAM,UAAU,CAAA"}
@@ -0,0 +1,10 @@
1
+ /**
2
+ * Engine shared types — copied verbatim from @mentra/types so the module is
3
+ * self-contained. Keep these in sync with cloud/packages/types/src when the
4
+ * canonical types change. The capability profiles also live here under
5
+ * ./capabilities/.
6
+ */
7
+ // Enums (runtime values)
8
+ export { HardwareType, HardwareRequirementLevel, DeviceTypes, ControllerTypes } from "./enums";
9
+ export { HARDWARE_CAPABILITIES, getModelCapabilities, simulatedGlasses, evenRealitiesG1, evenRealitiesG2, mentraLive, vuzixZ100, mentraDisplay, } from "./hardware";
10
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,yBAAyB;AACzB,OAAO,EAAC,YAAY,EAAE,wBAAwB,EAAE,WAAW,EAAE,eAAe,EAAC,MAAM,SAAS,CAAA;AAgB5F,OAAO,EACL,qBAAqB,EACrB,oBAAoB,EACpB,gBAAgB,EAChB,eAAe,EACf,eAAe,EACf,UAAU,EACV,SAAS,EACT,aAAa,GACd,MAAM,YAAY,CAAA","sourcesContent":["/**\n * Engine shared types — copied verbatim from @mentra/types so the module is\n * self-contained. Keep these in sync with cloud/packages/types/src when the\n * canonical types change. The capability profiles also live here under\n * ./capabilities/.\n */\n\n// Enums (runtime values)\nexport {HardwareType, HardwareRequirementLevel, DeviceTypes, ControllerTypes} from \"./enums\"\n\n// Hardware types\nexport type {\n HardwareRequirement,\n CameraCapabilities,\n DisplayCapabilities,\n MicrophoneCapabilities,\n SpeakerCapabilities,\n IMUCapabilities,\n ButtonCapabilities,\n LightCapabilities,\n PowerCapabilities,\n Capabilities,\n} from \"./hardware\"\n\nexport {\n HARDWARE_CAPABILITIES,\n getModelCapabilities,\n simulatedGlasses,\n evenRealitiesG1,\n evenRealitiesG2,\n mentraLive,\n vuzixZ100,\n mentraDisplay,\n} from \"./hardware\"\n\n// Applet types\nexport type {AppletType, AppPermissionType, AppletPermission, AppletInterface, ClientApp} from \"./applet\"\n"]}
@@ -0,0 +1,10 @@
1
+ /**
2
+ * Process-wide event bus — moved into engine so engine-owned services (RestComms)
3
+ * and the host share ONE emitter instance across the engine↔host boundary.
4
+ * Re-exported through the host's `@/utils/GlobalEventEmitter` shim.
5
+ *
6
+ * @deprecated Use BluetoothSDK subscriptions directly instead.
7
+ */
8
+ declare const GlobalEventEmitter: any;
9
+ export default GlobalEventEmitter;
10
+ //# sourceMappingURL=GlobalEventEmitter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"GlobalEventEmitter.d.ts","sourceRoot":"","sources":["../../src/utils/GlobalEventEmitter.ts"],"names":[],"mappings":"AAIA;;;;;;GAMG;AACH,QAAA,MAAM,kBAAkB,KAAqB,CAAA;AAE7C,eAAe,kBAAkB,CAAA"}
@@ -0,0 +1,13 @@
1
+ // @ts-nocheck — `events` (node builtin, RN-polyfilled) ships no types in engine's
2
+ // standalone build; the host build resolves them fine.
3
+ import { EventEmitter } from "events";
4
+ /**
5
+ * Process-wide event bus — moved into engine so engine-owned services (RestComms)
6
+ * and the host share ONE emitter instance across the engine↔host boundary.
7
+ * Re-exported through the host's `@/utils/GlobalEventEmitter` shim.
8
+ *
9
+ * @deprecated Use BluetoothSDK subscriptions directly instead.
10
+ */
11
+ const GlobalEventEmitter = new EventEmitter();
12
+ export default GlobalEventEmitter;
13
+ //# sourceMappingURL=GlobalEventEmitter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"GlobalEventEmitter.js","sourceRoot":"","sources":["../../src/utils/GlobalEventEmitter.ts"],"names":[],"mappings":"AAAA,kFAAkF;AAClF,uDAAuD;AACvD,OAAO,EAAC,YAAY,EAAC,MAAM,QAAQ,CAAA;AAEnC;;;;;;GAMG;AACH,MAAM,kBAAkB,GAAG,IAAI,YAAY,EAAE,CAAA;AAE7C,eAAe,kBAAkB,CAAA","sourcesContent":["// @ts-nocheck — `events` (node builtin, RN-polyfilled) ships no types in engine's\n// standalone build; the host build resolves them fine.\nimport {EventEmitter} from \"events\"\n\n/**\n * Process-wide event bus — moved into engine so engine-owned services (RestComms)\n * and the host share ONE emitter instance across the engine↔host boundary.\n * Re-exported through the host's `@/utils/GlobalEventEmitter` shim.\n *\n * @deprecated Use BluetoothSDK subscriptions directly instead.\n */\nconst GlobalEventEmitter = new EventEmitter()\n\nexport default GlobalEventEmitter\n"]}
@@ -0,0 +1,3 @@
1
+ import type { UdpSocketLike } from "@mentra/cloud-client";
2
+ export declare function createCloudUdpSocket(): UdpSocketLike;
3
+ //# sourceMappingURL=RnUdpAdapter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RnUdpAdapter.d.ts","sourceRoot":"","sources":["../../../src/utils/cloudClient/RnUdpAdapter.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAC,aAAa,EAAC,MAAM,sBAAsB,CAAA;AAOvD,wBAAgB,oBAAoB,IAAI,aAAa,CA8BpD"}
@@ -0,0 +1,41 @@
1
+ /**
2
+ * @fileoverview react-native-udp backed UdpSocketLike for @mentra/cloud-client.
3
+ *
4
+ * The cloud-client encrypts each audio frame in shared code (NaCl secretbox) and
5
+ * hands the raw bytes here; this adapter only owns the native dgram socket and
6
+ * sends them. Audio bytes never round-trip through extra JS here beyond the
7
+ * Buffer wrap the native module needs.
8
+ */
9
+ import dgram from "react-native-udp";
10
+ export function createCloudUdpSocket() {
11
+ const socket = dgram.createSocket({ type: "udp4" });
12
+ let onBytes = null;
13
+ socket.on("error", (err) => {
14
+ console.warn(`[cloud-client udp] socket error: ${err.message}`);
15
+ });
16
+ socket.on("message", (msg) => {
17
+ onBytes?.(new Uint8Array(msg));
18
+ });
19
+ // Bind to any available port so the socket is ready to send.
20
+ socket.bind(0);
21
+ return {
22
+ send(bytes, host, port) {
23
+ socket.send(bytes, 0, bytes.length, port, host, (err) => {
24
+ if (err)
25
+ console.warn(`[cloud-client udp] send failed: ${err.message}`);
26
+ });
27
+ },
28
+ onMessage(cb) {
29
+ onBytes = cb;
30
+ },
31
+ close() {
32
+ try {
33
+ socket.close();
34
+ }
35
+ catch {
36
+ /* already closed */
37
+ }
38
+ },
39
+ };
40
+ }
41
+ //# sourceMappingURL=RnUdpAdapter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RnUdpAdapter.js","sourceRoot":"","sources":["../../../src/utils/cloudClient/RnUdpAdapter.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,OAAO,KAAK,MAAM,kBAAkB,CAAA;AAQpC,MAAM,UAAU,oBAAoB;IAClC,MAAM,MAAM,GAAG,KAAK,CAAC,YAAY,CAAC,EAAC,IAAI,EAAE,MAAM,EAAC,CAAmB,CAAA;IACnE,IAAI,OAAO,GAAyC,IAAI,CAAA;IAExD,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,GAAU,EAAE,EAAE;QAChC,OAAO,CAAC,IAAI,CAAC,oCAAoC,GAAG,CAAC,OAAO,EAAE,CAAC,CAAA;IACjE,CAAC,CAAC,CAAA;IACF,MAAM,CAAC,EAAE,CAAC,SAAS,EAAE,CAAC,GAAe,EAAE,EAAE;QACvC,OAAO,EAAE,CAAC,IAAI,UAAU,CAAC,GAAG,CAAC,CAAC,CAAA;IAChC,CAAC,CAAC,CAAA;IACF,6DAA6D;IAC7D,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;IAEd,OAAO;QACL,IAAI,CAAC,KAAiB,EAAE,IAAY,EAAE,IAAY;YAChD,MAAM,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,EAAE,KAAK,CAAC,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,GAAW,EAAE,EAAE;gBAC9D,IAAI,GAAG;oBAAE,OAAO,CAAC,IAAI,CAAC,mCAAmC,GAAG,CAAC,OAAO,EAAE,CAAC,CAAA;YACzE,CAAC,CAAC,CAAA;QACJ,CAAC;QACD,SAAS,CAAC,EAA+B;YACvC,OAAO,GAAG,EAAE,CAAA;QACd,CAAC;QACD,KAAK;YACH,IAAI,CAAC;gBACH,MAAM,CAAC,KAAK,EAAE,CAAA;YAChB,CAAC;YAAC,MAAM,CAAC;gBACP,oBAAoB;YACtB,CAAC;QACH,CAAC;KACF,CAAA;AACH,CAAC","sourcesContent":["/**\n * @fileoverview react-native-udp backed UdpSocketLike for @mentra/cloud-client.\n *\n * The cloud-client encrypts each audio frame in shared code (NaCl secretbox) and\n * hands the raw bytes here; this adapter only owns the native dgram socket and\n * sends them. Audio bytes never round-trip through extra JS here beyond the\n * Buffer wrap the native module needs.\n */\nimport dgram from \"react-native-udp\"\nimport type {UdpSocketLike} from \"@mentra/cloud-client\"\n\ntype CloudUdpSocket = ReturnType<typeof dgram.createSocket> & {\n on(event: \"error\", cb: (err: Error) => void): void\n on(event: \"message\", cb: (msg: Uint8Array) => void): void\n}\n\nexport function createCloudUdpSocket(): UdpSocketLike {\n const socket = dgram.createSocket({type: \"udp4\"}) as CloudUdpSocket\n let onBytes: ((bytes: Uint8Array) => void) | null = null\n\n socket.on(\"error\", (err: Error) => {\n console.warn(`[cloud-client udp] socket error: ${err.message}`)\n })\n socket.on(\"message\", (msg: Uint8Array) => {\n onBytes?.(new Uint8Array(msg))\n })\n // Bind to any available port so the socket is ready to send.\n socket.bind(0)\n\n return {\n send(bytes: Uint8Array, host: string, port: number): void {\n socket.send(bytes, 0, bytes.length, port, host, (err?: Error) => {\n if (err) console.warn(`[cloud-client udp] send failed: ${err.message}`)\n })\n },\n onMessage(cb: (bytes: Uint8Array) => void): void {\n onBytes = cb\n },\n close(): void {\n try {\n socket.close()\n } catch {\n /* already closed */\n }\n },\n }\n}\n"]}
@@ -0,0 +1,3 @@
1
+ import type { KeyValueStore } from "@mentra/cloud-client";
2
+ export declare const cloudSecureStore: KeyValueStore;
3
+ //# sourceMappingURL=cloudSecureStore.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cloudSecureStore.d.ts","sourceRoot":"","sources":["../../../src/utils/cloudClient/cloudSecureStore.ts"],"names":[],"mappings":"AAYA,OAAO,KAAK,EAAC,aAAa,EAAC,MAAM,sBAAsB,CAAA;AAIvD,eAAO,MAAM,gBAAgB,EAAE,aAW9B,CAAA"}
@@ -0,0 +1,26 @@
1
+ /**
2
+ * MMKV-backed KeyValueStore for @mentra/cloud-client — moved into engine so
3
+ * engine owns the cloud-v2 credential storage (the v2 refresh token, so a
4
+ * relaunch does not force a new login). A dedicated MMKV instance keeps
5
+ * cloud-v2 credentials out of the app's general store. Re-exported through the
6
+ * host's `@/utils/cloudClient/MmkvSecureStore` shim.
7
+ *
8
+ * NOTE: MMKV is not hardware-backed. Before production handling of the
9
+ * long-lived refresh token, swap this for a Keychain/Keystore-backed store
10
+ * (react-native-keychain). It is fine for dev / simulator e2e.
11
+ */
12
+ import { createMMKV } from "react-native-mmkv";
13
+ const store = createMMKV({ id: "mentra-cloud-v2" });
14
+ export const cloudSecureStore = {
15
+ async get(key) {
16
+ return store.getString(key) ?? null;
17
+ },
18
+ async set(key, value) {
19
+ store.set(key, value);
20
+ },
21
+ async delete(key) {
22
+ // react-native-mmkv v4's instance method is `remove`, not `delete`.
23
+ store.remove(key);
24
+ },
25
+ };
26
+ //# sourceMappingURL=cloudSecureStore.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cloudSecureStore.js","sourceRoot":"","sources":["../../../src/utils/cloudClient/cloudSecureStore.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AACH,OAAO,EAAC,UAAU,EAAY,MAAM,mBAAmB,CAAA;AAGvD,MAAM,KAAK,GAAS,UAAU,CAAC,EAAC,EAAE,EAAE,iBAAiB,EAAC,CAAC,CAAA;AAEvD,MAAM,CAAC,MAAM,gBAAgB,GAAkB;IAC7C,KAAK,CAAC,GAAG,CAAC,GAAW;QACnB,OAAO,KAAK,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,IAAI,CAAA;IACrC,CAAC;IACD,KAAK,CAAC,GAAG,CAAC,GAAW,EAAE,KAAa;QAClC,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAA;IACvB,CAAC;IACD,KAAK,CAAC,MAAM,CAAC,GAAW;QACtB,oEAAoE;QACpE,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;IACnB,CAAC;CACF,CAAA","sourcesContent":["/**\n * MMKV-backed KeyValueStore for @mentra/cloud-client — moved into engine so\n * engine owns the cloud-v2 credential storage (the v2 refresh token, so a\n * relaunch does not force a new login). A dedicated MMKV instance keeps\n * cloud-v2 credentials out of the app's general store. Re-exported through the\n * host's `@/utils/cloudClient/MmkvSecureStore` shim.\n *\n * NOTE: MMKV is not hardware-backed. Before production handling of the\n * long-lived refresh token, swap this for a Keychain/Keystore-backed store\n * (react-native-keychain). It is fine for dev / simulator e2e.\n */\nimport {createMMKV, type MMKV} from \"react-native-mmkv\"\nimport type {KeyValueStore} from \"@mentra/cloud-client\"\n\nconst store: MMKV = createMMKV({id: \"mentra-cloud-v2\"})\n\nexport const cloudSecureStore: KeyValueStore = {\n async get(key: string): Promise<string | null> {\n return store.getString(key) ?? null\n },\n async set(key: string, value: string): Promise<void> {\n store.set(key, value)\n },\n async delete(key: string): Promise<void> {\n // react-native-mmkv v4's instance method is `remove`, not `delete`.\n store.remove(key)\n },\n}\n"]}
@@ -0,0 +1,6 @@
1
+ /**
2
+ * Merge partial patches and flush once after `delayMs` of quiet time.
3
+ * Uses global setTimeout so Jest fake timers can advance debounced writes.
4
+ */
5
+ export declare function createDebouncedPatchFlusher<T extends Record<string, unknown>>(flush: (patch: T) => void, delayMs: number): (patch: Partial<T>) => void;
6
+ //# sourceMappingURL=debouncedPatch.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"debouncedPatch.d.ts","sourceRoot":"","sources":["../../src/utils/debouncedPatch.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,wBAAgB,2BAA2B,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC3E,KAAK,EAAE,CAAC,KAAK,EAAE,CAAC,KAAK,IAAI,EACzB,OAAO,EAAE,MAAM,IASP,OAAO,OAAO,CAAC,CAAC,CAAC,UAY1B"}
@@ -0,0 +1,25 @@
1
+ /**
2
+ * Merge partial patches and flush once after `delayMs` of quiet time.
3
+ * Uses global setTimeout so Jest fake timers can advance debounced writes.
4
+ */
5
+ export function createDebouncedPatchFlusher(flush, delayMs) {
6
+ let pending = {};
7
+ let timer = null;
8
+ const schedule = (callback) => {
9
+ timer = setTimeout(callback, delayMs);
10
+ };
11
+ return (patch) => {
12
+ pending = { ...pending, ...patch };
13
+ if (timer != null) {
14
+ clearTimeout(timer);
15
+ }
16
+ schedule(() => {
17
+ timer = null;
18
+ const batch = pending;
19
+ pending = {};
20
+ if (Object.keys(batch).length > 0)
21
+ flush(batch);
22
+ });
23
+ };
24
+ }
25
+ //# sourceMappingURL=debouncedPatch.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"debouncedPatch.js","sourceRoot":"","sources":["../../src/utils/debouncedPatch.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,MAAM,UAAU,2BAA2B,CACzC,KAAyB,EACzB,OAAe;IAEf,IAAI,OAAO,GAAG,EAAO,CAAA;IACrB,IAAI,KAAK,GAAyC,IAAI,CAAA;IAEtD,MAAM,QAAQ,GAAG,CAAC,QAAoB,EAAE,EAAE;QACxC,KAAK,GAAG,UAAU,CAAC,QAAQ,EAAE,OAAO,CAAkC,CAAA;IACxE,CAAC,CAAA;IAED,OAAO,CAAC,KAAiB,EAAE,EAAE;QAC3B,OAAO,GAAG,EAAC,GAAG,OAAO,EAAE,GAAG,KAAK,EAAC,CAAA;QAChC,IAAI,KAAK,IAAI,IAAI,EAAE,CAAC;YAClB,YAAY,CAAC,KAAK,CAAC,CAAA;QACrB,CAAC;QACD,QAAQ,CAAC,GAAG,EAAE;YACZ,KAAK,GAAG,IAAI,CAAA;YACZ,MAAM,KAAK,GAAG,OAAO,CAAA;YACrB,OAAO,GAAG,EAAO,CAAA;YACjB,IAAI,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,GAAG,CAAC;gBAAE,KAAK,CAAC,KAAK,CAAC,CAAA;QACjD,CAAC,CAAC,CAAA;IACJ,CAAC,CAAA;AACH,CAAC","sourcesContent":["/**\n * Merge partial patches and flush once after `delayMs` of quiet time.\n * Uses global setTimeout so Jest fake timers can advance debounced writes.\n */\nexport function createDebouncedPatchFlusher<T extends Record<string, unknown>>(\n flush: (patch: T) => void,\n delayMs: number,\n) {\n let pending = {} as T\n let timer: ReturnType<typeof setTimeout> | null = null\n\n const schedule = (callback: () => void) => {\n timer = setTimeout(callback, delayMs) as ReturnType<typeof setTimeout>\n }\n\n return (patch: Partial<T>) => {\n pending = {...pending, ...patch}\n if (timer != null) {\n clearTimeout(timer)\n }\n schedule(() => {\n timer = null\n const batch = pending\n pending = {} as T\n if (Object.keys(batch).length > 0) flush(batch)\n })\n }\n}\n"]}
@@ -0,0 +1,26 @@
1
+ export interface LogEntry {
2
+ timestamp: number;
3
+ level: "debug" | "info" | "warn" | "error";
4
+ message: string;
5
+ source?: string;
6
+ metadata?: Record<string, unknown>;
7
+ }
8
+ declare class LogRingBuffer {
9
+ private logs;
10
+ private maxAgeMs;
11
+ private maxEntries;
12
+ private isIntercepting;
13
+ append(entry: Omit<LogEntry, "timestamp">): void;
14
+ getRecentLogs(): LogEntry[];
15
+ clear(): void;
16
+ getStats(): {
17
+ count: number;
18
+ oldestTimestamp: number | null;
19
+ newestTimestamp: number | null;
20
+ };
21
+ private prune;
22
+ startConsoleInterception(): void;
23
+ }
24
+ export declare const logBuffer: LogRingBuffer;
25
+ export default logBuffer;
26
+ //# sourceMappingURL=devLogging.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"devLogging.d.ts","sourceRoot":"","sources":["../../src/utils/devLogging.ts"],"names":[],"mappings":"AAGA,MAAM,WAAW,QAAQ;IACvB,SAAS,EAAE,MAAM,CAAA;IACjB,KAAK,EAAE,OAAO,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,CAAA;IAC1C,OAAO,EAAE,MAAM,CAAA;IACf,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CACnC;AAED,cAAM,aAAa;IACjB,OAAO,CAAC,IAAI,CAAiB;IAC7B,OAAO,CAAC,QAAQ,CAAiB;IACjC,OAAO,CAAC,UAAU,CAAQ;IAC1B,OAAO,CAAC,cAAc,CAAQ;IAE9B,MAAM,CAAC,KAAK,EAAE,IAAI,CAAC,QAAQ,EAAE,WAAW,CAAC;IAKzC,aAAa,IAAI,QAAQ,EAAE;IAK3B,KAAK;IAIL,QAAQ,IAAI;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,eAAe,EAAE,MAAM,GAAG,IAAI,CAAC;QAAC,eAAe,EAAE,MAAM,GAAG,IAAI,CAAA;KAAC;IAS3F,OAAO,CAAC,KAAK;IAQb,wBAAwB;CAwFzB;AAED,eAAO,MAAM,SAAS,eAAsB,CAAA;AAC5C,eAAe,SAAS,CAAA"}
@@ -0,0 +1,116 @@
1
+ import { LogBox } from "react-native";
2
+ import { configureReanimatedLogger, ReanimatedLogLevel } from "react-native-reanimated";
3
+ class LogRingBuffer {
4
+ logs = [];
5
+ maxAgeMs = 10 * 60 * 1000;
6
+ maxEntries = 10000;
7
+ isIntercepting = false;
8
+ append(entry) {
9
+ this.logs.push({ ...entry, timestamp: Date.now() });
10
+ this.prune();
11
+ }
12
+ getRecentLogs() {
13
+ this.prune();
14
+ return [...this.logs];
15
+ }
16
+ clear() {
17
+ this.logs = [];
18
+ }
19
+ getStats() {
20
+ this.prune();
21
+ return {
22
+ count: this.logs.length,
23
+ oldestTimestamp: this.logs.length > 0 ? this.logs[0].timestamp : null,
24
+ newestTimestamp: this.logs.length > 0 ? this.logs[this.logs.length - 1].timestamp : null,
25
+ };
26
+ }
27
+ prune() {
28
+ const cutoff = Date.now() - this.maxAgeMs;
29
+ this.logs = this.logs.filter((l) => l.timestamp > cutoff);
30
+ if (this.logs.length > this.maxEntries) {
31
+ this.logs = this.logs.slice(-this.maxEntries);
32
+ }
33
+ }
34
+ startConsoleInterception() {
35
+ if (this.isIntercepting)
36
+ return;
37
+ this.isIntercepting = true;
38
+ const ignoredLogs = [
39
+ /Failed to open debugger. Please check that the dev server is running and reload the app./,
40
+ /Require cycle:/,
41
+ /is missing the required default export./,
42
+ /Attempted to import the module/,
43
+ /The action 'RESET' with payload/,
44
+ /The action 'POP_TO_TOP' was not handled/,
45
+ /socket-0 binding/,
46
+ /socket-0 bound to/,
47
+ /Error while flushing PostHog/,
48
+ /backTitleFontFamily prop is not available on Android/,
49
+ /disableBackButtonMenu prop is not available on Android/,
50
+ /backTitleVisible prop is not available on Android/,
51
+ /topInsetEnabled prop is not available on Android/,
52
+ /largeTitleHideShadow prop is not available on Android/,
53
+ /largeTitleFontWeight prop is not available on Android/,
54
+ /userInterfaceStyle prop is not available on Android/,
55
+ /largeTitleFontFamily prop is not available on Android/,
56
+ /Points are coincident/,
57
+ ];
58
+ LogBox.ignoreLogs(ignoredLogs);
59
+ if (__DEV__) {
60
+ const withoutIgnored = (logger) => (...args) => {
61
+ const output = args.join(" ");
62
+ if (!ignoredLogs.some((log) => log.test(output))) {
63
+ logger(...args);
64
+ }
65
+ };
66
+ console.log = withoutIgnored(console.log);
67
+ console.info = withoutIgnored(console.info);
68
+ console.warn = withoutIgnored(console.warn);
69
+ console.error = withoutIgnored(console.error);
70
+ }
71
+ configureReanimatedLogger({
72
+ level: ReanimatedLogLevel.warn,
73
+ strict: false,
74
+ });
75
+ const originalConsole = {
76
+ log: console.log,
77
+ info: console.info,
78
+ warn: console.warn,
79
+ error: console.error,
80
+ debug: console.debug,
81
+ };
82
+ const appendToBuffer = this.append.bind(this);
83
+ const createInterceptor = (level, originalFn) => (...args) => {
84
+ originalFn.apply(console, args);
85
+ appendToBuffer({
86
+ level,
87
+ message: args
88
+ .map((a) => {
89
+ if (a === null)
90
+ return "null";
91
+ if (a === undefined)
92
+ return "undefined";
93
+ if (typeof a === "object") {
94
+ try {
95
+ return JSON.stringify(a);
96
+ }
97
+ catch {
98
+ return String(a);
99
+ }
100
+ }
101
+ return String(a);
102
+ })
103
+ .join(" "),
104
+ source: "console",
105
+ });
106
+ };
107
+ console.log = createInterceptor("info", originalConsole.log);
108
+ console.info = createInterceptor("info", originalConsole.info);
109
+ console.warn = createInterceptor("warn", originalConsole.warn);
110
+ console.error = createInterceptor("error", originalConsole.error);
111
+ console.debug = createInterceptor("debug", originalConsole.debug);
112
+ }
113
+ }
114
+ export const logBuffer = new LogRingBuffer();
115
+ export default logBuffer;
116
+ //# sourceMappingURL=devLogging.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"devLogging.js","sourceRoot":"","sources":["../../src/utils/devLogging.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,MAAM,EAAC,MAAM,cAAc,CAAA;AACnC,OAAO,EAAC,yBAAyB,EAAE,kBAAkB,EAAC,MAAM,yBAAyB,CAAA;AAUrF,MAAM,aAAa;IACT,IAAI,GAAe,EAAE,CAAA;IACrB,QAAQ,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAA;IACzB,UAAU,GAAG,KAAK,CAAA;IAClB,cAAc,GAAG,KAAK,CAAA;IAE9B,MAAM,CAAC,KAAkC;QACvC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,EAAC,GAAG,KAAK,EAAE,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE,EAAC,CAAC,CAAA;QACjD,IAAI,CAAC,KAAK,EAAE,CAAA;IACd,CAAC;IAED,aAAa;QACX,IAAI,CAAC,KAAK,EAAE,CAAA;QACZ,OAAO,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,CAAA;IACvB,CAAC;IAED,KAAK;QACH,IAAI,CAAC,IAAI,GAAG,EAAE,CAAA;IAChB,CAAC;IAED,QAAQ;QACN,IAAI,CAAC,KAAK,EAAE,CAAA;QACZ,OAAO;YACL,KAAK,EAAE,IAAI,CAAC,IAAI,CAAC,MAAM;YACvB,eAAe,EAAE,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI;YACrE,eAAe,EAAE,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI;SACzF,CAAA;IACH,CAAC;IAEO,KAAK;QACX,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,QAAQ,CAAA;QACzC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,GAAG,MAAM,CAAC,CAAA;QACzD,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC;YACvC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAA;QAC/C,CAAC;IACH,CAAC;IAED,wBAAwB;QACtB,IAAI,IAAI,CAAC,cAAc;YAAE,OAAM;QAC/B,IAAI,CAAC,cAAc,GAAG,IAAI,CAAA;QAE1B,MAAM,WAAW,GAAG;YAClB,0FAA0F;YAC1F,gBAAgB;YAChB,yCAAyC;YACzC,gCAAgC;YAChC,iCAAiC;YACjC,yCAAyC;YACzC,kBAAkB;YAClB,mBAAmB;YACnB,8BAA8B;YAC9B,sDAAsD;YACtD,wDAAwD;YACxD,mDAAmD;YACnD,kDAAkD;YAClD,uDAAuD;YACvD,uDAAuD;YACvD,qDAAqD;YACrD,uDAAuD;YACvD,uBAAuB;SACxB,CAAA;QAED,MAAM,CAAC,UAAU,CAAC,WAAW,CAAC,CAAA;QAE9B,IAAI,OAAO,EAAE,CAAC;YACZ,MAAM,cAAc,GAClB,CAAC,MAAoC,EAAE,EAAE,CACzC,CAAC,GAAG,IAAe,EAAE,EAAE;gBACrB,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;gBAC7B,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC;oBACjD,MAAM,CAAC,GAAG,IAAI,CAAC,CAAA;gBACjB,CAAC;YACH,CAAC,CAAA;YAEH,OAAO,CAAC,GAAG,GAAG,cAAc,CAAC,OAAO,CAAC,GAAG,CAAC,CAAA;YACzC,OAAO,CAAC,IAAI,GAAG,cAAc,CAAC,OAAO,CAAC,IAAI,CAAC,CAAA;YAC3C,OAAO,CAAC,IAAI,GAAG,cAAc,CAAC,OAAO,CAAC,IAAI,CAAC,CAAA;YAC3C,OAAO,CAAC,KAAK,GAAG,cAAc,CAAC,OAAO,CAAC,KAAK,CAAC,CAAA;QAC/C,CAAC;QAED,yBAAyB,CAAC;YACxB,KAAK,EAAE,kBAAkB,CAAC,IAAI;YAC9B,MAAM,EAAE,KAAK;SACd,CAAC,CAAA;QAEF,MAAM,eAAe,GAAG;YACtB,GAAG,EAAE,OAAO,CAAC,GAAG;YAChB,IAAI,EAAE,OAAO,CAAC,IAAI;YAClB,IAAI,EAAE,OAAO,CAAC,IAAI;YAClB,KAAK,EAAE,OAAO,CAAC,KAAK;YACpB,KAAK,EAAE,OAAO,CAAC,KAAK;SACrB,CAAA;QAED,MAAM,cAAc,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QAE7C,MAAM,iBAAiB,GACrB,CAAC,KAA0C,EAAE,UAAwC,EAAE,EAAE,CACzF,CAAC,GAAG,IAAe,EAAE,EAAE;YACrB,UAAU,CAAC,KAAK,CAAC,OAAO,EAAE,IAAI,CAAC,CAAA;YAC/B,cAAc,CAAC;gBACb,KAAK;gBACL,OAAO,EAAE,IAAI;qBACV,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;oBACT,IAAI,CAAC,KAAK,IAAI;wBAAE,OAAO,MAAM,CAAA;oBAC7B,IAAI,CAAC,KAAK,SAAS;wBAAE,OAAO,WAAW,CAAA;oBACvC,IAAI,OAAO,CAAC,KAAK,QAAQ,EAAE,CAAC;wBAC1B,IAAI,CAAC;4BACH,OAAO,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAA;wBAC1B,CAAC;wBAAC,MAAM,CAAC;4BACP,OAAO,MAAM,CAAC,CAAC,CAAC,CAAA;wBAClB,CAAC;oBACH,CAAC;oBACD,OAAO,MAAM,CAAC,CAAC,CAAC,CAAA;gBAClB,CAAC,CAAC;qBACD,IAAI,CAAC,GAAG,CAAC;gBACZ,MAAM,EAAE,SAAS;aAClB,CAAC,CAAA;QACJ,CAAC,CAAA;QAEH,OAAO,CAAC,GAAG,GAAG,iBAAiB,CAAC,MAAM,EAAE,eAAe,CAAC,GAAG,CAAC,CAAA;QAC5D,OAAO,CAAC,IAAI,GAAG,iBAAiB,CAAC,MAAM,EAAE,eAAe,CAAC,IAAI,CAAC,CAAA;QAC9D,OAAO,CAAC,IAAI,GAAG,iBAAiB,CAAC,MAAM,EAAE,eAAe,CAAC,IAAI,CAAC,CAAA;QAC9D,OAAO,CAAC,KAAK,GAAG,iBAAiB,CAAC,OAAO,EAAE,eAAe,CAAC,KAAK,CAAC,CAAA;QACjE,OAAO,CAAC,KAAK,GAAG,iBAAiB,CAAC,OAAO,EAAE,eAAe,CAAC,KAAK,CAAC,CAAA;IACnE,CAAC;CACF;AAED,MAAM,CAAC,MAAM,SAAS,GAAG,IAAI,aAAa,EAAE,CAAA;AAC5C,eAAe,SAAS,CAAA","sourcesContent":["import {LogBox} from \"react-native\"\nimport {configureReanimatedLogger, ReanimatedLogLevel} from \"react-native-reanimated\"\n\nexport interface LogEntry {\n timestamp: number\n level: \"debug\" | \"info\" | \"warn\" | \"error\"\n message: string\n source?: string\n metadata?: Record<string, unknown>\n}\n\nclass LogRingBuffer {\n private logs: LogEntry[] = []\n private maxAgeMs = 10 * 60 * 1000\n private maxEntries = 10000\n private isIntercepting = false\n\n append(entry: Omit<LogEntry, \"timestamp\">) {\n this.logs.push({...entry, timestamp: Date.now()})\n this.prune()\n }\n\n getRecentLogs(): LogEntry[] {\n this.prune()\n return [...this.logs]\n }\n\n clear() {\n this.logs = []\n }\n\n getStats(): {count: number; oldestTimestamp: number | null; newestTimestamp: number | null} {\n this.prune()\n return {\n count: this.logs.length,\n oldestTimestamp: this.logs.length > 0 ? this.logs[0].timestamp : null,\n newestTimestamp: this.logs.length > 0 ? this.logs[this.logs.length - 1].timestamp : null,\n }\n }\n\n private prune() {\n const cutoff = Date.now() - this.maxAgeMs\n this.logs = this.logs.filter((l) => l.timestamp > cutoff)\n if (this.logs.length > this.maxEntries) {\n this.logs = this.logs.slice(-this.maxEntries)\n }\n }\n\n startConsoleInterception() {\n if (this.isIntercepting) return\n this.isIntercepting = true\n\n const ignoredLogs = [\n /Failed to open debugger. Please check that the dev server is running and reload the app./,\n /Require cycle:/,\n /is missing the required default export./,\n /Attempted to import the module/,\n /The action 'RESET' with payload/,\n /The action 'POP_TO_TOP' was not handled/,\n /socket-0 binding/,\n /socket-0 bound to/,\n /Error while flushing PostHog/,\n /backTitleFontFamily prop is not available on Android/,\n /disableBackButtonMenu prop is not available on Android/,\n /backTitleVisible prop is not available on Android/,\n /topInsetEnabled prop is not available on Android/,\n /largeTitleHideShadow prop is not available on Android/,\n /largeTitleFontWeight prop is not available on Android/,\n /userInterfaceStyle prop is not available on Android/,\n /largeTitleFontFamily prop is not available on Android/,\n /Points are coincident/,\n ]\n\n LogBox.ignoreLogs(ignoredLogs)\n\n if (__DEV__) {\n const withoutIgnored =\n (logger: (...args: unknown[]) => void) =>\n (...args: unknown[]) => {\n const output = args.join(\" \")\n if (!ignoredLogs.some((log) => log.test(output))) {\n logger(...args)\n }\n }\n\n console.log = withoutIgnored(console.log)\n console.info = withoutIgnored(console.info)\n console.warn = withoutIgnored(console.warn)\n console.error = withoutIgnored(console.error)\n }\n\n configureReanimatedLogger({\n level: ReanimatedLogLevel.warn,\n strict: false,\n })\n\n const originalConsole = {\n log: console.log,\n info: console.info,\n warn: console.warn,\n error: console.error,\n debug: console.debug,\n }\n\n const appendToBuffer = this.append.bind(this)\n\n const createInterceptor =\n (level: \"debug\" | \"info\" | \"warn\" | \"error\", originalFn: (...args: unknown[]) => void) =>\n (...args: unknown[]) => {\n originalFn.apply(console, args)\n appendToBuffer({\n level,\n message: args\n .map((a) => {\n if (a === null) return \"null\"\n if (a === undefined) return \"undefined\"\n if (typeof a === \"object\") {\n try {\n return JSON.stringify(a)\n } catch {\n return String(a)\n }\n }\n return String(a)\n })\n .join(\" \"),\n source: \"console\",\n })\n }\n\n console.log = createInterceptor(\"info\", originalConsole.log)\n console.info = createInterceptor(\"info\", originalConsole.info)\n console.warn = createInterceptor(\"warn\", originalConsole.warn)\n console.error = createInterceptor(\"error\", originalConsole.error)\n console.debug = createInterceptor(\"debug\", originalConsole.debug)\n }\n}\n\nexport const logBuffer = new LogRingBuffer()\nexport default logBuffer\n"]}
@@ -0,0 +1,44 @@
1
+ /**
2
+ * decideDevLaunchRoute — pre-flight reachability + manifest fetch for dev
3
+ * miniapp launches.
4
+ *
5
+ * Every entry point that wants to launch a dev miniapp (home tile, QR
6
+ * scan, URL screen, dev-offline "Try again" button) calls this BEFORE
7
+ * navigating, so:
8
+ *
9
+ * 1. We land on the right destination in a single transition
10
+ * (live mount vs offline takeover) — no flash through /applet/local.
11
+ * 2. Callers that need the manifest (permission gate, name/icon read)
12
+ * get it in the same round trip — no second fetch.
13
+ *
14
+ * Pre-flighting at the call site keeps /applet/local a pure mount route.
15
+ */
16
+ export type DevManifest = {
17
+ packageName?: string;
18
+ name?: string;
19
+ /** First-found of `icon` / `iconUrl` / `logoUrl` (relative or absolute). */
20
+ icon?: string;
21
+ permissions?: unknown;
22
+ hardwareRequirements?: unknown;
23
+ [key: string]: unknown;
24
+ };
25
+ export type DevLaunchResult = {
26
+ decision: "live";
27
+ manifest: DevManifest;
28
+ } | {
29
+ decision: "offline";
30
+ manifest: null;
31
+ };
32
+ /**
33
+ * GET <devUrl>/miniapp.json with a hard timeout. Returns the parsed
34
+ * manifest on success ("live") or null ("offline").
35
+ *
36
+ * Side effect: on success, writes <packageName>_dev_last_reachable so
37
+ * the dev-offline screen can show "Last reached: N min ago" the next
38
+ * time the user lands there.
39
+ *
40
+ * The fetch doubles as the reachability probe AND the manifest source —
41
+ * one request per launch attempt instead of two.
42
+ */
43
+ export declare function decideDevLaunchRoute(packageName: string, devUrl: string): Promise<DevLaunchResult>;
44
+ //# sourceMappingURL=devMiniappLaunch.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"devMiniappLaunch.d.ts","sourceRoot":"","sources":["../../src/utils/devMiniappLaunch.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAMH,MAAM,MAAM,WAAW,GAAG;IACxB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,4EAA4E;IAC5E,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,WAAW,CAAC,EAAE,OAAO,CAAA;IACrB,oBAAoB,CAAC,EAAE,OAAO,CAAA;IAC9B,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAA;CACvB,CAAA;AAED,MAAM,MAAM,eAAe,GACvB;IAAC,QAAQ,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,WAAW,CAAA;CAAC,GACzC;IAAC,QAAQ,EAAE,SAAS,CAAC;IAAC,QAAQ,EAAE,IAAI,CAAA;CAAC,CAAA;AAEzC;;;;;;;;;;GAUG;AACH,wBAAsB,oBAAoB,CACxC,WAAW,EAAE,MAAM,EACnB,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,eAAe,CAAC,CAmB1B"}
@@ -0,0 +1,52 @@
1
+ /**
2
+ * decideDevLaunchRoute — pre-flight reachability + manifest fetch for dev
3
+ * miniapp launches.
4
+ *
5
+ * Every entry point that wants to launch a dev miniapp (home tile, QR
6
+ * scan, URL screen, dev-offline "Try again" button) calls this BEFORE
7
+ * navigating, so:
8
+ *
9
+ * 1. We land on the right destination in a single transition
10
+ * (live mount vs offline takeover) — no flash through /applet/local.
11
+ * 2. Callers that need the manifest (permission gate, name/icon read)
12
+ * get it in the same round trip — no second fetch.
13
+ *
14
+ * Pre-flighting at the call site keeps /applet/local a pure mount route.
15
+ */
16
+ import { storage } from "./storage/storage";
17
+ const REACHABILITY_TIMEOUT_MS = 1500;
18
+ /**
19
+ * GET <devUrl>/miniapp.json with a hard timeout. Returns the parsed
20
+ * manifest on success ("live") or null ("offline").
21
+ *
22
+ * Side effect: on success, writes <packageName>_dev_last_reachable so
23
+ * the dev-offline screen can show "Last reached: N min ago" the next
24
+ * time the user lands there.
25
+ *
26
+ * The fetch doubles as the reachability probe AND the manifest source —
27
+ * one request per launch attempt instead of two.
28
+ */
29
+ export async function decideDevLaunchRoute(packageName, devUrl) {
30
+ const controller = new AbortController();
31
+ const timer = setTimeout(() => controller.abort(), REACHABILITY_TIMEOUT_MS);
32
+ try {
33
+ const res = await fetch(`${devUrl.replace(/\/$/, "")}/miniapp.json`, {
34
+ method: "GET",
35
+ signal: controller.signal,
36
+ });
37
+ if (!res.ok)
38
+ return { decision: "offline", manifest: null };
39
+ const manifest = (await res.json());
40
+ if (packageName) {
41
+ storage.save(`${packageName}_dev_last_reachable`, Date.now());
42
+ }
43
+ return { decision: "live", manifest };
44
+ }
45
+ catch {
46
+ return { decision: "offline", manifest: null };
47
+ }
48
+ finally {
49
+ clearTimeout(timer);
50
+ }
51
+ }
52
+ //# sourceMappingURL=devMiniappLaunch.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"devMiniappLaunch.js","sourceRoot":"","sources":["../../src/utils/devMiniappLaunch.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EAAC,OAAO,EAAC,MAAM,mBAAmB,CAAA;AAEzC,MAAM,uBAAuB,GAAG,IAAI,CAAA;AAgBpC;;;;;;;;;;GAUG;AACH,MAAM,CAAC,KAAK,UAAU,oBAAoB,CACxC,WAAmB,EACnB,MAAc;IAEd,MAAM,UAAU,GAAG,IAAI,eAAe,EAAE,CAAA;IACxC,MAAM,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,UAAU,CAAC,KAAK,EAAE,EAAE,uBAAuB,CAAC,CAAA;IAC3E,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,GAAG,MAAM,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,eAAe,EAAE;YACnE,MAAM,EAAE,KAAK;YACb,MAAM,EAAE,UAAU,CAAC,MAAM;SAC1B,CAAC,CAAA;QACF,IAAI,CAAC,GAAG,CAAC,EAAE;YAAE,OAAO,EAAC,QAAQ,EAAE,SAAS,EAAE,QAAQ,EAAE,IAAI,EAAC,CAAA;QACzD,MAAM,QAAQ,GAAG,CAAC,MAAM,GAAG,CAAC,IAAI,EAAE,CAAgB,CAAA;QAClD,IAAI,WAAW,EAAE,CAAC;YAChB,OAAO,CAAC,IAAI,CAAC,GAAG,WAAW,qBAAqB,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC,CAAA;QAC/D,CAAC;QACD,OAAO,EAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAC,CAAA;IACrC,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAC,QAAQ,EAAE,SAAS,EAAE,QAAQ,EAAE,IAAI,EAAC,CAAA;IAC9C,CAAC;YAAS,CAAC;QACT,YAAY,CAAC,KAAK,CAAC,CAAA;IACrB,CAAC;AACH,CAAC","sourcesContent":["/**\n * decideDevLaunchRoute — pre-flight reachability + manifest fetch for dev\n * miniapp launches.\n *\n * Every entry point that wants to launch a dev miniapp (home tile, QR\n * scan, URL screen, dev-offline \"Try again\" button) calls this BEFORE\n * navigating, so:\n *\n * 1. We land on the right destination in a single transition\n * (live mount vs offline takeover) — no flash through /applet/local.\n * 2. Callers that need the manifest (permission gate, name/icon read)\n * get it in the same round trip — no second fetch.\n *\n * Pre-flighting at the call site keeps /applet/local a pure mount route.\n */\n\nimport {storage} from \"./storage/storage\"\n\nconst REACHABILITY_TIMEOUT_MS = 1500\n\nexport type DevManifest = {\n packageName?: string\n name?: string\n /** First-found of `icon` / `iconUrl` / `logoUrl` (relative or absolute). */\n icon?: string\n permissions?: unknown\n hardwareRequirements?: unknown\n [key: string]: unknown\n}\n\nexport type DevLaunchResult =\n | {decision: \"live\"; manifest: DevManifest}\n | {decision: \"offline\"; manifest: null}\n\n/**\n * GET <devUrl>/miniapp.json with a hard timeout. Returns the parsed\n * manifest on success (\"live\") or null (\"offline\").\n *\n * Side effect: on success, writes <packageName>_dev_last_reachable so\n * the dev-offline screen can show \"Last reached: N min ago\" the next\n * time the user lands there.\n *\n * The fetch doubles as the reachability probe AND the manifest source —\n * one request per launch attempt instead of two.\n */\nexport async function decideDevLaunchRoute(\n packageName: string,\n devUrl: string,\n): Promise<DevLaunchResult> {\n const controller = new AbortController()\n const timer = setTimeout(() => controller.abort(), REACHABILITY_TIMEOUT_MS)\n try {\n const res = await fetch(`${devUrl.replace(/\\/$/, \"\")}/miniapp.json`, {\n method: \"GET\",\n signal: controller.signal,\n })\n if (!res.ok) return {decision: \"offline\", manifest: null}\n const manifest = (await res.json()) as DevManifest\n if (packageName) {\n storage.save(`${packageName}_dev_last_reachable`, Date.now())\n }\n return {decision: \"live\", manifest}\n } catch {\n return {decision: \"offline\", manifest: null}\n } finally {\n clearTimeout(timer)\n }\n}\n"]}
@@ -0,0 +1,3 @@
1
+ import type { ReportContext } from "@mentra/cloud-client";
2
+ export declare function collectDiagnosticContext(extra?: Partial<ReportContext>): Promise<ReportContext>;
3
+ //# sourceMappingURL=diagnosticContext.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"diagnosticContext.d.ts","sourceRoot":"","sources":["../../src/utils/diagnosticContext.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAC,aAAa,EAAC,MAAM,sBAAsB,CAAA;AAyBvD,wBAAsB,wBAAwB,CAAC,KAAK,CAAC,EAAE,OAAO,CAAC,aAAa,CAAC,GAAG,OAAO,CAAC,aAAa,CAAC,CA6HrG"}