@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,53 @@
1
+ import { storage } from "../../utils/storage/storage";
2
+ export class GallerySettingsService {
3
+ static instance;
4
+ SETTINGS_KEY = "gallery_settings";
5
+ DEFAULT_SETTINGS = {
6
+ autoSaveToCameraRoll: true, // Default ON
7
+ autoSaveDisableWarningShown: false,
8
+ imageProcessingEnabled: true, // Lens coefficients calibrated from chessboard photos
9
+ };
10
+ constructor() { }
11
+ static getInstance() {
12
+ if (!GallerySettingsService.instance) {
13
+ GallerySettingsService.instance = new GallerySettingsService();
14
+ }
15
+ return GallerySettingsService.instance;
16
+ }
17
+ async getSettings() {
18
+ const res = storage.load(this.SETTINGS_KEY);
19
+ if (res.is_error()) {
20
+ // Not an error - just means settings haven't been saved yet (first use)
21
+ // Return defaults silently
22
+ return this.DEFAULT_SETTINGS;
23
+ }
24
+ const stored = res.value;
25
+ return { ...this.DEFAULT_SETTINGS, ...stored };
26
+ }
27
+ async updateSettings(settings) {
28
+ const current = await this.getSettings();
29
+ const updated = { ...current, ...settings };
30
+ const res = await storage.save(this.SETTINGS_KEY, updated);
31
+ if (res.is_error()) {
32
+ console.error("[GallerySettings] Error saving settings:", res.error);
33
+ throw res.error;
34
+ }
35
+ console.log("[GallerySettings] Settings updated:", updated);
36
+ }
37
+ async getAutoSaveToCameraRoll() {
38
+ const settings = await this.getSettings();
39
+ return settings.autoSaveToCameraRoll;
40
+ }
41
+ async setAutoSaveToCameraRoll(enabled) {
42
+ await this.updateSettings({ autoSaveToCameraRoll: enabled });
43
+ }
44
+ async getImageProcessingEnabled() {
45
+ const settings = await this.getSettings();
46
+ return settings.imageProcessingEnabled;
47
+ }
48
+ async setImageProcessingEnabled(enabled) {
49
+ await this.updateSettings({ imageProcessingEnabled: enabled });
50
+ }
51
+ }
52
+ export const gallerySettingsService = GallerySettingsService.getInstance();
53
+ //# sourceMappingURL=gallerySettingsService.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"gallerySettingsService.js","sourceRoot":"","sources":["../../../src/services/asg/gallerySettingsService.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,OAAO,EAAC,MAAM,6BAA6B,CAAA;AAQnD,MAAM,OAAO,sBAAsB;IACzB,MAAM,CAAC,QAAQ,CAAwB;IAC9B,YAAY,GAAG,kBAAkB,CAAA;IACjC,gBAAgB,GAAoB;QACnD,oBAAoB,EAAE,IAAI,EAAE,aAAa;QACzC,2BAA2B,EAAE,KAAK;QAClC,sBAAsB,EAAE,IAAI,EAAE,sDAAsD;KACrF,CAAA;IAED,gBAAuB,CAAC;IAExB,MAAM,CAAC,WAAW;QAChB,IAAI,CAAC,sBAAsB,CAAC,QAAQ,EAAE,CAAC;YACrC,sBAAsB,CAAC,QAAQ,GAAG,IAAI,sBAAsB,EAAE,CAAA;QAChE,CAAC;QACD,OAAO,sBAAsB,CAAC,QAAQ,CAAA;IACxC,CAAC;IAED,KAAK,CAAC,WAAW;QACf,MAAM,GAAG,GAAG,OAAO,CAAC,IAAI,CAAkB,IAAI,CAAC,YAAY,CAAC,CAAA;QAC5D,IAAI,GAAG,CAAC,QAAQ,EAAE,EAAE,CAAC;YACnB,wEAAwE;YACxE,2BAA2B;YAC3B,OAAO,IAAI,CAAC,gBAAgB,CAAA;QAC9B,CAAC;QACD,MAAM,MAAM,GAAG,GAAG,CAAC,KAAK,CAAA;QACxB,OAAO,EAAC,GAAG,IAAI,CAAC,gBAAgB,EAAE,GAAG,MAAM,EAAC,CAAA;IAC9C,CAAC;IAED,KAAK,CAAC,cAAc,CAAC,QAAkC;QACrD,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,WAAW,EAAE,CAAA;QACxC,MAAM,OAAO,GAAG,EAAC,GAAG,OAAO,EAAE,GAAG,QAAQ,EAAC,CAAA;QACzC,MAAM,GAAG,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,OAAO,CAAC,CAAA;QAC1D,IAAI,GAAG,CAAC,QAAQ,EAAE,EAAE,CAAC;YACnB,OAAO,CAAC,KAAK,CAAC,0CAA0C,EAAE,GAAG,CAAC,KAAK,CAAC,CAAA;YACpE,MAAM,GAAG,CAAC,KAAK,CAAA;QACjB,CAAC;QACD,OAAO,CAAC,GAAG,CAAC,qCAAqC,EAAE,OAAO,CAAC,CAAA;IAC7D,CAAC;IAED,KAAK,CAAC,uBAAuB;QAC3B,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,WAAW,EAAE,CAAA;QACzC,OAAO,QAAQ,CAAC,oBAAoB,CAAA;IACtC,CAAC;IAED,KAAK,CAAC,uBAAuB,CAAC,OAAgB;QAC5C,MAAM,IAAI,CAAC,cAAc,CAAC,EAAC,oBAAoB,EAAE,OAAO,EAAC,CAAC,CAAA;IAC5D,CAAC;IAED,KAAK,CAAC,yBAAyB;QAC7B,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,WAAW,EAAE,CAAA;QACzC,OAAO,QAAQ,CAAC,sBAAsB,CAAA;IACxC,CAAC;IAED,KAAK,CAAC,yBAAyB,CAAC,OAAgB;QAC9C,MAAM,IAAI,CAAC,cAAc,CAAC,EAAC,sBAAsB,EAAE,OAAO,EAAC,CAAC,CAAA;IAC9D,CAAC;CACF;AAED,MAAM,CAAC,MAAM,sBAAsB,GAAG,sBAAsB,CAAC,WAAW,EAAE,CAAA","sourcesContent":["import {storage} from \"../../utils/storage/storage\"\n\nexport interface GallerySettings {\n autoSaveToCameraRoll: boolean\n autoSaveDisableWarningShown: boolean\n imageProcessingEnabled: boolean\n}\n\nexport class GallerySettingsService {\n private static instance: GallerySettingsService\n private readonly SETTINGS_KEY = \"gallery_settings\"\n private readonly DEFAULT_SETTINGS: GallerySettings = {\n autoSaveToCameraRoll: true, // Default ON\n autoSaveDisableWarningShown: false,\n imageProcessingEnabled: true, // Lens coefficients calibrated from chessboard photos\n }\n\n private constructor() {}\n\n static getInstance(): GallerySettingsService {\n if (!GallerySettingsService.instance) {\n GallerySettingsService.instance = new GallerySettingsService()\n }\n return GallerySettingsService.instance\n }\n\n async getSettings(): Promise<GallerySettings> {\n const res = storage.load<GallerySettings>(this.SETTINGS_KEY)\n if (res.is_error()) {\n // Not an error - just means settings haven't been saved yet (first use)\n // Return defaults silently\n return this.DEFAULT_SETTINGS\n }\n const stored = res.value\n return {...this.DEFAULT_SETTINGS, ...stored}\n }\n\n async updateSettings(settings: Partial<GallerySettings>): Promise<void> {\n const current = await this.getSettings()\n const updated = {...current, ...settings}\n const res = await storage.save(this.SETTINGS_KEY, updated)\n if (res.is_error()) {\n console.error(\"[GallerySettings] Error saving settings:\", res.error)\n throw res.error\n }\n console.log(\"[GallerySettings] Settings updated:\", updated)\n }\n\n async getAutoSaveToCameraRoll(): Promise<boolean> {\n const settings = await this.getSettings()\n return settings.autoSaveToCameraRoll\n }\n\n async setAutoSaveToCameraRoll(enabled: boolean): Promise<void> {\n await this.updateSettings({autoSaveToCameraRoll: enabled})\n }\n\n async getImageProcessingEnabled(): Promise<boolean> {\n const settings = await this.getSettings()\n return settings.imageProcessingEnabled\n }\n\n async setImageProcessingEnabled(enabled: boolean): Promise<void> {\n await this.updateSettings({imageProcessingEnabled: enabled})\n }\n}\n\nexport const gallerySettingsService = GallerySettingsService.getInstance()\n"]}
@@ -0,0 +1,56 @@
1
+ /**
2
+ * Gallery Sync Notifications
3
+ * Manages system notifications for gallery sync progress
4
+ *
5
+ * Platform differences:
6
+ * - Android: Supports ongoing/sticky notifications that update silently
7
+ * - iOS: Each notification update shows a banner, so we throttle updates
8
+ * and only show start/complete notifications to avoid spam
9
+ */
10
+ declare class GallerySyncNotifications {
11
+ private static instance;
12
+ private notificationActive;
13
+ private lastUpdateTime;
14
+ private constructor();
15
+ static getInstance(): GallerySyncNotifications;
16
+ /**
17
+ * Initialize notification channel (Android only)
18
+ */
19
+ private ensureChannel;
20
+ /**
21
+ * Request notification permissions
22
+ */
23
+ requestPermissions(): Promise<boolean>;
24
+ /**
25
+ * Show initial sync notification
26
+ */
27
+ showSyncStarted(totalFiles: number): Promise<void>;
28
+ /**
29
+ * Update sync progress notification
30
+ * On iOS, updates are throttled to avoid spamming the user with banner notifications
31
+ */
32
+ updateProgress(currentFile: number, totalFiles: number, _fileName: string, fileProgress: number): Promise<void>;
33
+ /**
34
+ * Show sync complete notification
35
+ */
36
+ showSyncComplete(downloadedCount: number, failedCount?: number): Promise<void>;
37
+ /**
38
+ * Show sync error notification
39
+ */
40
+ showSyncError(errorMessage: string): Promise<void>;
41
+ /**
42
+ * Show sync cancelled notification
43
+ */
44
+ showSyncCancelled(): Promise<void>;
45
+ /**
46
+ * Dismiss sync notification
47
+ */
48
+ dismiss(): Promise<void>;
49
+ /**
50
+ * Check if sync notification is currently active
51
+ */
52
+ isActive(): boolean;
53
+ }
54
+ export declare const gallerySyncNotifications: GallerySyncNotifications;
55
+ export {};
56
+ //# sourceMappingURL=gallerySyncNotifications.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"gallerySyncNotifications.d.ts","sourceRoot":"","sources":["../../../src/services/asg/gallerySyncNotifications.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAoBH,cAAM,wBAAwB;IAC5B,OAAO,CAAC,MAAM,CAAC,QAAQ,CAA0B;IACjD,OAAO,CAAC,kBAAkB,CAAQ;IAClC,OAAO,CAAC,cAAc,CAAI;IAE1B,OAAO;IAEP,MAAM,CAAC,WAAW,IAAI,wBAAwB;IAO9C;;OAEG;YACW,aAAa;IAmB3B;;OAEG;IACG,kBAAkB,IAAI,OAAO,CAAC,OAAO,CAAC;IAY5C;;OAEG;IACG,eAAe,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAyBxD;;;OAGG;IACG,cAAc,CAClB,WAAW,EAAE,MAAM,EACnB,UAAU,EAAE,MAAM,EAClB,SAAS,EAAE,MAAM,EACjB,YAAY,EAAE,MAAM,GACnB,OAAO,CAAC,IAAI,CAAC;IAkChB;;OAEG;IACG,gBAAgB,CAAC,eAAe,EAAE,MAAM,EAAE,WAAW,GAAE,MAAU,GAAG,OAAO,CAAC,IAAI,CAAC;IA2BvF;;OAEG;IACG,aAAa,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAsBxD;;OAEG;IACG,iBAAiB,IAAI,OAAO,CAAC,IAAI,CAAC;IAMxC;;OAEG;IACG,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAU9B;;OAEG;IACH,QAAQ,IAAI,OAAO;CAGpB;AAED,eAAO,MAAM,wBAAwB,0BAAyC,CAAA"}
@@ -0,0 +1,198 @@
1
+ /**
2
+ * Gallery Sync Notifications
3
+ * Manages system notifications for gallery sync progress
4
+ *
5
+ * Platform differences:
6
+ * - Android: Supports ongoing/sticky notifications that update silently
7
+ * - iOS: Each notification update shows a banner, so we throttle updates
8
+ * and only show start/complete notifications to avoid spam
9
+ */
10
+ // import * as Notifications from "expo-notifications"
11
+ import { Platform } from "react-native";
12
+ // iOS throttling - only update every N seconds to avoid banner spam
13
+ const IOS_UPDATE_THROTTLE_MS = 10000; // 10 seconds between updates on iOS
14
+ // Configure notification handler
15
+ // Notifications.setNotificationHandler({
16
+ // handleNotification: async () => ({
17
+ // shouldShowAlert: true,
18
+ // shouldPlaySound: false,
19
+ // shouldSetBadge: false,
20
+ // // On iOS, minimize banner popups for progress updates
21
+ // shouldShowBanner: Platform.OS === "android",
22
+ // shouldShowList: true,
23
+ // }),
24
+ // })
25
+ class GallerySyncNotifications {
26
+ static instance;
27
+ notificationActive = false;
28
+ lastUpdateTime = 0; // For iOS throttling
29
+ constructor() { }
30
+ static getInstance() {
31
+ if (!GallerySyncNotifications.instance) {
32
+ GallerySyncNotifications.instance = new GallerySyncNotifications();
33
+ }
34
+ return GallerySyncNotifications.instance;
35
+ }
36
+ /**
37
+ * Initialize notification channel (Android only)
38
+ */
39
+ async ensureChannel() {
40
+ // if (this.channelCreated) return
41
+ // if (Platform.OS === "android") {
42
+ // await Notifications.setNotificationChannelAsync(CHANNEL_ID, {
43
+ // name: "Gallery Sync",
44
+ // description: "Shows progress when syncing photos from your glasses",
45
+ // importance: Notifications.AndroidImportance.LOW, // Low = no sound, shows in shade
46
+ // vibrationPattern: [0], // No vibration
47
+ // lightColor: "#4A90D9",
48
+ // lockscreenVisibility: Notifications.AndroidNotificationVisibility.PUBLIC,
49
+ // bypassDnd: false,
50
+ // enableLights: false,
51
+ // enableVibrate: false,
52
+ // showBadge: false,
53
+ // })
54
+ // }
55
+ }
56
+ /**
57
+ * Request notification permissions
58
+ */
59
+ async requestPermissions() {
60
+ // const {status: existingStatus} = await Notifications.getPermissionsAsync()
61
+ // if (existingStatus === "granted") {
62
+ // return true
63
+ // }
64
+ // const {status} = await Notifications.requestPermissionsAsync()
65
+ // return status === "granted"
66
+ return true; // Always return true when notifications disabled
67
+ }
68
+ /**
69
+ * Show initial sync notification
70
+ */
71
+ async showSyncStarted(totalFiles) {
72
+ await this.ensureChannel();
73
+ const hasPermission = await this.requestPermissions();
74
+ if (!hasPermission) {
75
+ console.log("[SyncNotifications] No notification permission, skipping");
76
+ return;
77
+ }
78
+ // await Notifications.scheduleNotificationAsync({
79
+ // identifier: SYNC_NOTIFICATION_ID,
80
+ // content: {
81
+ // title: "Syncing photos from glasses",
82
+ // body: `Preparing to download ${totalFiles} ${totalFiles === 1 ? "file" : "files"}...`,
83
+ // data: {type: "gallery-sync"},
84
+ // sticky: Platform.OS === "android", // Ongoing notification on Android
85
+ // },
86
+ // trigger: null, // Show immediately
87
+ // })
88
+ this.notificationActive = true;
89
+ this.lastUpdateTime = Date.now(); // Reset throttle timer
90
+ console.log(`[SyncNotifications] Started sync notification for ${totalFiles} files (notifications disabled)`);
91
+ }
92
+ /**
93
+ * Update sync progress notification
94
+ * On iOS, updates are throttled to avoid spamming the user with banner notifications
95
+ */
96
+ async updateProgress(currentFile, totalFiles, _fileName, fileProgress) {
97
+ if (!this.notificationActive)
98
+ return;
99
+ // On iOS, throttle updates to avoid banner spam
100
+ // iOS doesn't support silent notification updates like Android's ongoing notifications
101
+ if (Platform.OS === "ios") {
102
+ const now = Date.now();
103
+ const timeSinceLastUpdate = now - this.lastUpdateTime;
104
+ // Only update if enough time has passed OR if this is the last file completing
105
+ const isLastFileCompleting = currentFile === totalFiles && fileProgress >= 99;
106
+ if (timeSinceLastUpdate < IOS_UPDATE_THROTTLE_MS && !isLastFileCompleting) {
107
+ return; // Skip this update on iOS to avoid banner spam
108
+ }
109
+ this.lastUpdateTime = now;
110
+ }
111
+ await this.ensureChannel();
112
+ // Notifications are disabled; the overall-progress + body computation that fed
113
+ // scheduleNotificationAsync (below, commented) is omitted to keep this a no-op.
114
+ // await Notifications.scheduleNotificationAsync({
115
+ // identifier: SYNC_NOTIFICATION_ID,
116
+ // content: {
117
+ // title: "Syncing photos from glasses",
118
+ // body,
119
+ // data: {type: "gallery-sync", progress: overallProgress},
120
+ // sticky: Platform.OS === "android", // Keep notification visible on Android
121
+ // },
122
+ // trigger: null,
123
+ // })
124
+ }
125
+ /**
126
+ * Show sync complete notification
127
+ */
128
+ async showSyncComplete(downloadedCount, failedCount = 0) {
129
+ await this.ensureChannel();
130
+ // Notifications are disabled; the title/body computation that fed
131
+ // scheduleNotificationAsync (below, commented) is omitted to keep this a no-op.
132
+ // await Notifications.scheduleNotificationAsync({
133
+ // identifier: SYNC_NOTIFICATION_ID,
134
+ // content: {
135
+ // title,
136
+ // body,
137
+ // data: {type: "gallery-sync-complete"},
138
+ // },
139
+ // trigger: null,
140
+ // })
141
+ this.notificationActive = false;
142
+ console.log(`[SyncNotifications] Sync complete: ${downloadedCount} downloaded, ${failedCount} failed (notifications disabled)`);
143
+ // Auto-dismiss after 5 seconds
144
+ // setTimeout(() => {
145
+ // this.dismiss()
146
+ // }, 5000)
147
+ }
148
+ /**
149
+ * Show sync error notification
150
+ */
151
+ async showSyncError(errorMessage) {
152
+ await this.ensureChannel();
153
+ // await Notifications.scheduleNotificationAsync({
154
+ // identifier: SYNC_NOTIFICATION_ID,
155
+ // content: {
156
+ // title: "Sync failed",
157
+ // body: errorMessage,
158
+ // data: {type: "gallery-sync-error"},
159
+ // },
160
+ // trigger: null,
161
+ // })
162
+ this.notificationActive = false;
163
+ console.log(`[SyncNotifications] Sync error: ${errorMessage} (notifications disabled)`);
164
+ // Auto-dismiss after 5 seconds
165
+ // setTimeout(() => {
166
+ // this.dismiss()
167
+ // }, 5000)
168
+ }
169
+ /**
170
+ * Show sync cancelled notification
171
+ */
172
+ async showSyncCancelled() {
173
+ await this.dismiss();
174
+ this.notificationActive = false;
175
+ console.log("[SyncNotifications] Sync cancelled, notification dismissed");
176
+ }
177
+ /**
178
+ * Dismiss sync notification
179
+ */
180
+ async dismiss() {
181
+ try {
182
+ // await Notifications.dismissNotificationAsync(SYNC_NOTIFICATION_ID)
183
+ this.notificationActive = false;
184
+ }
185
+ catch (error) {
186
+ // Notification may already be dismissed
187
+ console.log("[SyncNotifications] Error dismissing notification:", error);
188
+ }
189
+ }
190
+ /**
191
+ * Check if sync notification is currently active
192
+ */
193
+ isActive() {
194
+ return this.notificationActive;
195
+ }
196
+ }
197
+ export const gallerySyncNotifications = GallerySyncNotifications.getInstance();
198
+ //# sourceMappingURL=gallerySyncNotifications.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"gallerySyncNotifications.js","sourceRoot":"","sources":["../../../src/services/asg/gallerySyncNotifications.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * Gallery Sync Notifications\n * Manages system notifications for gallery sync progress\n *\n * Platform differences:\n * - Android: Supports ongoing/sticky notifications that update silently\n * - iOS: Each notification update shows a banner, so we throttle updates\n * and only show start/complete notifications to avoid spam\n */\n\n// import * as Notifications from \"expo-notifications\"\nimport {Platform} from \"react-native\"\n\n// iOS throttling - only update every N seconds to avoid banner spam\nconst IOS_UPDATE_THROTTLE_MS = 10000 // 10 seconds between updates on iOS\n\n// Configure notification handler\n// Notifications.setNotificationHandler({\n// handleNotification: async () => ({\n// shouldShowAlert: true,\n// shouldPlaySound: false,\n// shouldSetBadge: false,\n// // On iOS, minimize banner popups for progress updates\n// shouldShowBanner: Platform.OS === \"android\",\n// shouldShowList: true,\n// }),\n// })\n\nclass GallerySyncNotifications {\n private static instance: GallerySyncNotifications\n private notificationActive = false\n private lastUpdateTime = 0 // For iOS throttling\n\n private constructor() {}\n\n static getInstance(): GallerySyncNotifications {\n if (!GallerySyncNotifications.instance) {\n GallerySyncNotifications.instance = new GallerySyncNotifications()\n }\n return GallerySyncNotifications.instance\n }\n\n /**\n * Initialize notification channel (Android only)\n */\n private async ensureChannel(): Promise<void> {\n // if (this.channelCreated) return\n\n // if (Platform.OS === \"android\") {\n // await Notifications.setNotificationChannelAsync(CHANNEL_ID, {\n // name: \"Gallery Sync\",\n // description: \"Shows progress when syncing photos from your glasses\",\n // importance: Notifications.AndroidImportance.LOW, // Low = no sound, shows in shade\n // vibrationPattern: [0], // No vibration\n // lightColor: \"#4A90D9\",\n // lockscreenVisibility: Notifications.AndroidNotificationVisibility.PUBLIC,\n // bypassDnd: false,\n // enableLights: false,\n // enableVibrate: false,\n // showBadge: false,\n // })\n // }\n }\n\n /**\n * Request notification permissions\n */\n async requestPermissions(): Promise<boolean> {\n // const {status: existingStatus} = await Notifications.getPermissionsAsync()\n\n // if (existingStatus === \"granted\") {\n // return true\n // }\n\n // const {status} = await Notifications.requestPermissionsAsync()\n // return status === \"granted\"\n return true // Always return true when notifications disabled\n }\n\n /**\n * Show initial sync notification\n */\n async showSyncStarted(totalFiles: number): Promise<void> {\n await this.ensureChannel()\n\n const hasPermission = await this.requestPermissions()\n if (!hasPermission) {\n console.log(\"[SyncNotifications] No notification permission, skipping\")\n return\n }\n\n // await Notifications.scheduleNotificationAsync({\n // identifier: SYNC_NOTIFICATION_ID,\n // content: {\n // title: \"Syncing photos from glasses\",\n // body: `Preparing to download ${totalFiles} ${totalFiles === 1 ? \"file\" : \"files\"}...`,\n // data: {type: \"gallery-sync\"},\n // sticky: Platform.OS === \"android\", // Ongoing notification on Android\n // },\n // trigger: null, // Show immediately\n // })\n\n this.notificationActive = true\n this.lastUpdateTime = Date.now() // Reset throttle timer\n console.log(`[SyncNotifications] Started sync notification for ${totalFiles} files (notifications disabled)`)\n }\n\n /**\n * Update sync progress notification\n * On iOS, updates are throttled to avoid spamming the user with banner notifications\n */\n async updateProgress(\n currentFile: number,\n totalFiles: number,\n _fileName: string,\n fileProgress: number,\n ): Promise<void> {\n if (!this.notificationActive) return\n\n // On iOS, throttle updates to avoid banner spam\n // iOS doesn't support silent notification updates like Android's ongoing notifications\n if (Platform.OS === \"ios\") {\n const now = Date.now()\n const timeSinceLastUpdate = now - this.lastUpdateTime\n\n // Only update if enough time has passed OR if this is the last file completing\n const isLastFileCompleting = currentFile === totalFiles && fileProgress >= 99\n if (timeSinceLastUpdate < IOS_UPDATE_THROTTLE_MS && !isLastFileCompleting) {\n return // Skip this update on iOS to avoid banner spam\n }\n this.lastUpdateTime = now\n }\n\n await this.ensureChannel()\n\n // Notifications are disabled; the overall-progress + body computation that fed\n // scheduleNotificationAsync (below, commented) is omitted to keep this a no-op.\n\n // await Notifications.scheduleNotificationAsync({\n // identifier: SYNC_NOTIFICATION_ID,\n // content: {\n // title: \"Syncing photos from glasses\",\n // body,\n // data: {type: \"gallery-sync\", progress: overallProgress},\n // sticky: Platform.OS === \"android\", // Keep notification visible on Android\n // },\n // trigger: null,\n // })\n }\n\n /**\n * Show sync complete notification\n */\n async showSyncComplete(downloadedCount: number, failedCount: number = 0): Promise<void> {\n await this.ensureChannel()\n\n // Notifications are disabled; the title/body computation that fed\n // scheduleNotificationAsync (below, commented) is omitted to keep this a no-op.\n\n // await Notifications.scheduleNotificationAsync({\n // identifier: SYNC_NOTIFICATION_ID,\n // content: {\n // title,\n // body,\n // data: {type: \"gallery-sync-complete\"},\n // },\n // trigger: null,\n // })\n\n this.notificationActive = false\n console.log(\n `[SyncNotifications] Sync complete: ${downloadedCount} downloaded, ${failedCount} failed (notifications disabled)`,\n )\n\n // Auto-dismiss after 5 seconds\n // setTimeout(() => {\n // this.dismiss()\n // }, 5000)\n }\n\n /**\n * Show sync error notification\n */\n async showSyncError(errorMessage: string): Promise<void> {\n await this.ensureChannel()\n\n // await Notifications.scheduleNotificationAsync({\n // identifier: SYNC_NOTIFICATION_ID,\n // content: {\n // title: \"Sync failed\",\n // body: errorMessage,\n // data: {type: \"gallery-sync-error\"},\n // },\n // trigger: null,\n // })\n\n this.notificationActive = false\n console.log(`[SyncNotifications] Sync error: ${errorMessage} (notifications disabled)`)\n\n // Auto-dismiss after 5 seconds\n // setTimeout(() => {\n // this.dismiss()\n // }, 5000)\n }\n\n /**\n * Show sync cancelled notification\n */\n async showSyncCancelled(): Promise<void> {\n await this.dismiss()\n this.notificationActive = false\n console.log(\"[SyncNotifications] Sync cancelled, notification dismissed\")\n }\n\n /**\n * Dismiss sync notification\n */\n async dismiss(): Promise<void> {\n try {\n // await Notifications.dismissNotificationAsync(SYNC_NOTIFICATION_ID)\n this.notificationActive = false\n } catch (error) {\n // Notification may already be dismissed\n console.log(\"[SyncNotifications] Error dismissing notification:\", error)\n }\n }\n\n /**\n * Check if sync notification is currently active\n */\n isActive(): boolean {\n return this.notificationActive\n }\n}\n\nexport const gallerySyncNotifications = GallerySyncNotifications.getInstance()\n"]}
@@ -0,0 +1,137 @@
1
+ /**
2
+ * Gallery Sync Service
3
+ * Orchestrates gallery sync independently of UI lifecycle
4
+ */
5
+ declare class GallerySyncService {
6
+ private static instance;
7
+ private hotspotListenerRegistered;
8
+ private hotspotConnectionTimeout;
9
+ private hotspotRequestTimeout;
10
+ private abortController;
11
+ private isInitialized;
12
+ private glassesStoreUnsubscribe;
13
+ private appStateSubscription;
14
+ private waitingForWifiRetry;
15
+ private lastFullSyncRetryKey;
16
+ private wifiSettingsOpenedAt;
17
+ private syncStartPromise;
18
+ private startAborted;
19
+ private constructor();
20
+ static getInstance(): GallerySyncService;
21
+ /**
22
+ * Initialize the service - register event listeners
23
+ */
24
+ initialize(): void;
25
+ /**
26
+ * Cleanup - remove event listeners
27
+ */
28
+ cleanup(): void;
29
+ /**
30
+ * Handle glasses disconnection during sync
31
+ */
32
+ private handleGlassesDisconnected;
33
+ /**
34
+ * Handle app state changes to auto-retry sync when user returns from settings
35
+ */
36
+ private handleAppStateChange;
37
+ /**
38
+ * Handle gallery status from glasses
39
+ */
40
+ private handleGalleryStatus;
41
+ /**
42
+ * Handle hotspot status change event
43
+ */
44
+ private handleHotspotStatusChange;
45
+ /**
46
+ * Handle hotspot error event
47
+ */
48
+ private handleHotspotError;
49
+ /**
50
+ * Start the sync process
51
+ */
52
+ startSync(): Promise<void>;
53
+ /**
54
+ * Native location-services (GPS on/off) check, raced against a timeout so a hung
55
+ * CrustModule call can't freeze the sync pre-flight. Mirrors the host's former
56
+ * PermissionsUtils.isLocationServicesEnabled exactly: on timeout assume enabled
57
+ * (proceed); on any other native error assume disabled (block + prompt). Android-only
58
+ * callers; iOS doesn't need location for BLE since iOS 13.
59
+ */
60
+ private isLocationServicesEnabled;
61
+ /**
62
+ * Mirrors the host's old PermissionsUtils.isBluetoothEnabled exactly: poll
63
+ * BleManager for up to 500ms while the adapter reports "unknown"; assume
64
+ * enabled on a timeout (a slow adapter must not block the sync) and disabled
65
+ * on a check error.
66
+ */
67
+ private isBluetoothAdapterEnabled;
68
+ private shouldAbortPreFlight;
69
+ private runStartSync;
70
+ /**
71
+ * Show explanation dialog before WiFi connection (first time only)
72
+ * Returns true if user wants to proceed, false if cancelled
73
+ */
74
+ private showWifiJoinExplanation;
75
+ /**
76
+ * Connect to hotspot WiFi with retry logic (unified for both platforms)
77
+ * Both iOS and Android benefit from retries:
78
+ * - iOS: Library throws "internal error" before user responds to system dialog
79
+ * - Android: Hotspot needs time to initialize, especially when glasses WiFi was cold
80
+ */
81
+ private connectToHotspotWifi;
82
+ private fetchSyncManifest;
83
+ /**
84
+ * Resolve sync manifest: detect skew, optionally fix clock, retry full sync when needed.
85
+ */
86
+ private resolveSyncManifest;
87
+ /**
88
+ * Start downloading files
89
+ */
90
+ private startFileDownload;
91
+ /**
92
+ * Execute the actual file download.
93
+ * Used for old asg_client firmware that doesn't send api_version=2 / captures.
94
+ * NOTE: The sidecar/bracket filtering within is likely dead code — old firmware
95
+ * only produces flat photos/videos with no sidecars or HDR brackets.
96
+ */
97
+ private executeDownload;
98
+ /**
99
+ * Execute capture-aware download (api_version=2).
100
+ * Downloads captures as groups, runs HDR merge, saves single metadata entry per capture.
101
+ */
102
+ private executeCaptureDownload;
103
+ /**
104
+ * Handle sync completion
105
+ */
106
+ private onSyncComplete;
107
+ /**
108
+ * Cancel the current sync
109
+ */
110
+ cancelSync(): Promise<void>;
111
+ /**
112
+ * Close the hotspot
113
+ */
114
+ private closeHotspot;
115
+ /**
116
+ * Check for resumable sync on app start
117
+ */
118
+ checkForResumableSync(): Promise<boolean>;
119
+ /**
120
+ * Resume a previously interrupted sync
121
+ */
122
+ resumeSync(): Promise<void>;
123
+ /**
124
+ * Query glasses for gallery status
125
+ */
126
+ queryGlassesGalleryStatus(): Promise<void>;
127
+ /** True while pre-flight startSync work is in flight (before sync state transitions). */
128
+ isSyncStarting(): boolean;
129
+ /**
130
+ * Check if sync is currently in progress (hotspot/WiFi/download phases).
131
+ * Does not include pre-flight — use isSyncStarting() for that.
132
+ */
133
+ isSyncing(): boolean;
134
+ }
135
+ export declare const gallerySyncService: GallerySyncService;
136
+ export {};
137
+ //# sourceMappingURL=gallerySyncService.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"gallerySyncService.d.ts","sourceRoot":"","sources":["../../../src/services/asg/gallerySyncService.ts"],"names":[],"mappings":"AAAA;;;GAGG;AA6DH,cAAM,kBAAkB;IACtB,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAoB;IAC3C,OAAO,CAAC,yBAAyB,CAAQ;IACzC,OAAO,CAAC,wBAAwB,CAAsB;IACtD,OAAO,CAAC,qBAAqB,CAAsB;IACnD,OAAO,CAAC,eAAe,CAA+B;IACtD,OAAO,CAAC,aAAa,CAAQ;IAC7B,OAAO,CAAC,uBAAuB,CAA4B;IAC3D,OAAO,CAAC,oBAAoB,CAA4D;IACxF,OAAO,CAAC,mBAAmB,CAAQ;IAInC,OAAO,CAAC,oBAAoB,CAAsB;IAClD,OAAO,CAAC,oBAAoB,CAAsB;IAClD,OAAO,CAAC,gBAAgB,CAA6B;IACrD,OAAO,CAAC,YAAY,CAAQ;IAE5B,OAAO;IAEP,MAAM,CAAC,WAAW,IAAI,kBAAkB;IAOxC;;OAEG;IACH,UAAU,IAAI,IAAI;IA8BlB;;OAEG;IACH,OAAO,IAAI,IAAI;IAmCf;;OAEG;IACH,OAAO,CAAC,yBAAyB,CAoChC;IAED;;OAEG;IACH,OAAO,CAAC,oBAAoB,CAqE3B;IAED;;OAEG;IACH,OAAO,CAAC,mBAAmB,CAK1B;IAED;;OAEG;IACH,OAAO,CAAC,yBAAyB,CA8DhC;IAED;;OAEG;IACH,OAAO,CAAC,kBAAkB,CAYzB;IAED;;OAEG;IACG,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC;IAYhC;;;;;;OAMG;YACW,yBAAyB;IAqBvC;;;;;OAKG;YACW,yBAAyB;IAkBvC,OAAO,CAAC,oBAAoB;YAWd,YAAY;IAiX1B;;;OAGG;YACW,uBAAuB;IA8BrC;;;;;OAKG;YACW,oBAAoB;YAwbpB,iBAAiB;IAqC/B;;OAEG;YACW,mBAAmB;IA+CjC;;OAEG;YACW,iBAAiB;IAqK/B;;;;;OAKG;YACW,eAAe;IAkR7B;;;OAGG;YACW,sBAAsB;IAyMpC;;OAEG;YACW,cAAc;IAqG5B;;OAEG;IACG,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAgCjC;;OAEG;YACW,YAAY;IAe1B;;OAEG;IACG,qBAAqB,IAAI,OAAO,CAAC,OAAO,CAAC;IAY/C;;OAEG;IACG,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IA2BjC;;OAEG;IACG,yBAAyB,IAAI,OAAO,CAAC,IAAI,CAAC;IAQhD,yFAAyF;IACzF,cAAc,IAAI,OAAO;IAIzB;;;OAGG;IACH,SAAS,IAAI,OAAO;CAMrB;AAED,eAAO,MAAM,kBAAkB,oBAAmC,CAAA"}