@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.
- package/README.md +79 -0
- package/build/devtools.d.ts +11 -0
- package/build/devtools.d.ts.map +1 -0
- package/build/devtools.js +13 -0
- package/build/devtools.js.map +1 -0
- package/build/engine.d.ts +261 -0
- package/build/engine.d.ts.map +1 -0
- package/build/engine.js +170 -0
- package/build/engine.js.map +1 -0
- package/build/facades/dev.d.ts +58 -0
- package/build/facades/dev.d.ts.map +1 -0
- package/build/facades/dev.js +189 -0
- package/build/facades/dev.js.map +1 -0
- package/build/facades/display.d.ts +21 -0
- package/build/facades/display.d.ts.map +1 -0
- package/build/facades/display.js +17 -0
- package/build/facades/display.js.map +1 -0
- package/build/facades/displayMirror.d.ts +15 -0
- package/build/facades/displayMirror.d.ts.map +1 -0
- package/build/facades/displayMirror.js +29 -0
- package/build/facades/displayMirror.js.map +1 -0
- package/build/facades/gallery.d.ts +62 -0
- package/build/facades/gallery.d.ts.map +1 -0
- package/build/facades/gallery.js +61 -0
- package/build/facades/gallery.js.map +1 -0
- package/build/facades/glasses.d.ts +141 -0
- package/build/facades/glasses.d.ts.map +1 -0
- package/build/facades/glasses.js +199 -0
- package/build/facades/glasses.js.map +1 -0
- package/build/facades/glassesSettings.d.ts +13 -0
- package/build/facades/glassesSettings.d.ts.map +1 -0
- package/build/facades/glassesSettings.js +54 -0
- package/build/facades/glassesSettings.js.map +1 -0
- package/build/facades/glassesWifi.d.ts +25 -0
- package/build/facades/glassesWifi.d.ts.map +1 -0
- package/build/facades/glassesWifi.js +57 -0
- package/build/facades/glassesWifi.js.map +1 -0
- package/build/facades/miniapps.d.ts +43 -0
- package/build/facades/miniapps.d.ts.map +1 -0
- package/build/facades/miniapps.js +49 -0
- package/build/facades/miniapps.js.map +1 -0
- package/build/facades/notifications.d.ts +13 -0
- package/build/facades/notifications.d.ts.map +1 -0
- package/build/facades/notifications.js +12 -0
- package/build/facades/notifications.js.map +1 -0
- package/build/facades/ota.d.ts +103 -0
- package/build/facades/ota.d.ts.map +1 -0
- package/build/facades/ota.js +156 -0
- package/build/facades/ota.js.map +1 -0
- package/build/facades/pairing.d.ts +114 -0
- package/build/facades/pairing.d.ts.map +1 -0
- package/build/facades/pairing.js +275 -0
- package/build/facades/pairing.js.map +1 -0
- package/build/facades/permissions.d.ts +33 -0
- package/build/facades/permissions.d.ts.map +1 -0
- package/build/facades/permissions.js +155 -0
- package/build/facades/permissions.js.map +1 -0
- package/build/facades/phoneNotifications.d.ts +21 -0
- package/build/facades/phoneNotifications.d.ts.map +1 -0
- package/build/facades/phoneNotifications.js +51 -0
- package/build/facades/phoneNotifications.js.map +1 -0
- package/build/facades/reports.d.ts +36 -0
- package/build/facades/reports.d.ts.map +1 -0
- package/build/facades/reports.js +134 -0
- package/build/facades/reports.js.map +1 -0
- package/build/facades/session.d.ts +21 -0
- package/build/facades/session.d.ts.map +1 -0
- package/build/facades/session.js +52 -0
- package/build/facades/session.js.map +1 -0
- package/build/facades/settings.d.ts +37 -0
- package/build/facades/settings.d.ts.map +1 -0
- package/build/facades/settings.js +55 -0
- package/build/facades/settings.js.map +1 -0
- package/build/facades/speech.d.ts +30 -0
- package/build/facades/speech.d.ts.map +1 -0
- package/build/facades/speech.js +37 -0
- package/build/facades/speech.js.map +1 -0
- package/build/index.d.ts +43 -0
- package/build/index.d.ts.map +1 -0
- package/build/index.js +45 -0
- package/build/index.js.map +1 -0
- package/build/internal.d.ts +67 -0
- package/build/internal.d.ts.map +1 -0
- package/build/internal.js +90 -0
- package/build/internal.js.map +1 -0
- package/build/runtime/bootstrap.d.ts +83 -0
- package/build/runtime/bootstrap.d.ts.map +1 -0
- package/build/runtime/bootstrap.js +56 -0
- package/build/runtime/bootstrap.js.map +1 -0
- package/build/runtime/config.d.ts +146 -0
- package/build/runtime/config.d.ts.map +1 -0
- package/build/runtime/config.js +18 -0
- package/build/runtime/config.js.map +1 -0
- package/build/runtime/streamConfig.d.ts +4 -0
- package/build/runtime/streamConfig.d.ts.map +1 -0
- package/build/runtime/streamConfig.js +38 -0
- package/build/runtime/streamConfig.js.map +1 -0
- package/build/services/AppRegistry.d.ts +269 -0
- package/build/services/AppRegistry.d.ts.map +1 -0
- package/build/services/AppRegistry.js +1079 -0
- package/build/services/AppRegistry.js.map +1 -0
- package/build/services/AudioCloudUplink.d.ts +9 -0
- package/build/services/AudioCloudUplink.d.ts.map +1 -0
- package/build/services/AudioCloudUplink.js +48 -0
- package/build/services/AudioCloudUplink.js.map +1 -0
- package/build/services/AudioPlaybackService.d.ts +175 -0
- package/build/services/AudioPlaybackService.d.ts.map +1 -0
- package/build/services/AudioPlaybackService.js +705 -0
- package/build/services/AudioPlaybackService.js.map +1 -0
- package/build/services/AutomaticReportResult.d.ts +20 -0
- package/build/services/AutomaticReportResult.d.ts.map +1 -0
- package/build/services/AutomaticReportResult.js +29 -0
- package/build/services/AutomaticReportResult.js.map +1 -0
- package/build/services/BlobStore.d.ts +91 -0
- package/build/services/BlobStore.d.ts.map +1 -0
- package/build/services/BlobStore.js +668 -0
- package/build/services/BlobStore.js.map +1 -0
- package/build/services/CaptionsTesterReportService.d.ts +4 -0
- package/build/services/CaptionsTesterReportService.d.ts.map +1 -0
- package/build/services/CaptionsTesterReportService.js +80 -0
- package/build/services/CaptionsTesterReportService.js.map +1 -0
- package/build/services/CloudAudioSubscriptionSync.d.ts +24 -0
- package/build/services/CloudAudioSubscriptionSync.d.ts.map +1 -0
- package/build/services/CloudAudioSubscriptionSync.js +39 -0
- package/build/services/CloudAudioSubscriptionSync.js.map +1 -0
- package/build/services/CloudClientService.d.ts +143 -0
- package/build/services/CloudClientService.d.ts.map +1 -0
- package/build/services/CloudClientService.js +644 -0
- package/build/services/CloudClientService.js.map +1 -0
- package/build/services/CloudTranscriptE2EMetrics.d.ts +4 -0
- package/build/services/CloudTranscriptE2EMetrics.d.ts.map +1 -0
- package/build/services/CloudTranscriptE2EMetrics.js +24 -0
- package/build/services/CloudTranscriptE2EMetrics.js.map +1 -0
- package/build/services/ConnectionCoordinator.d.ts +51 -0
- package/build/services/ConnectionCoordinator.d.ts.map +1 -0
- package/build/services/ConnectionCoordinator.js +34 -0
- package/build/services/ConnectionCoordinator.js.map +1 -0
- package/build/services/DevServerBridge.d.ts +63 -0
- package/build/services/DevServerBridge.d.ts.map +1 -0
- package/build/services/DevServerBridge.js +294 -0
- package/build/services/DevServerBridge.js.map +1 -0
- package/build/services/DeviceEventRouter.d.ts +3 -0
- package/build/services/DeviceEventRouter.d.ts.map +1 -0
- package/build/services/DeviceEventRouter.js +190 -0
- package/build/services/DeviceEventRouter.js.map +1 -0
- package/build/services/DeviceStoreHydration.d.ts +38 -0
- package/build/services/DeviceStoreHydration.d.ts.map +1 -0
- package/build/services/DeviceStoreHydration.js +124 -0
- package/build/services/DeviceStoreHydration.js.map +1 -0
- package/build/services/DisplayProcessor.d.ts +223 -0
- package/build/services/DisplayProcessor.d.ts.map +1 -0
- package/build/services/DisplayProcessor.js +552 -0
- package/build/services/DisplayProcessor.js.map +1 -0
- package/build/services/GlassesReadiness.d.ts +41 -0
- package/build/services/GlassesReadiness.d.ts.map +1 -0
- package/build/services/GlassesReadiness.js +82 -0
- package/build/services/GlassesReadiness.js.map +1 -0
- package/build/services/GlassesSettingsSync.d.ts +33 -0
- package/build/services/GlassesSettingsSync.d.ts.map +1 -0
- package/build/services/GlassesSettingsSync.js +121 -0
- package/build/services/GlassesSettingsSync.js.map +1 -0
- package/build/services/GlassesStatusProjection.d.ts +3 -0
- package/build/services/GlassesStatusProjection.d.ts.map +1 -0
- package/build/services/GlassesStatusProjection.js +65 -0
- package/build/services/GlassesStatusProjection.js.map +1 -0
- package/build/services/HeadingService.d.ts +27 -0
- package/build/services/HeadingService.d.ts.map +1 -0
- package/build/services/HeadingService.js +96 -0
- package/build/services/HeadingService.js.map +1 -0
- package/build/services/LocalDisplayManager.d.ts +139 -0
- package/build/services/LocalDisplayManager.d.ts.map +1 -0
- package/build/services/LocalDisplayManager.js +579 -0
- package/build/services/LocalDisplayManager.js.map +1 -0
- package/build/services/LocalMiniappRuntime.d.ts +439 -0
- package/build/services/LocalMiniappRuntime.d.ts.map +1 -0
- package/build/services/LocalMiniappRuntime.js +3695 -0
- package/build/services/LocalMiniappRuntime.js.map +1 -0
- package/build/services/LocalSttFallbackCoordinator.d.ts +57 -0
- package/build/services/LocalSttFallbackCoordinator.d.ts.map +1 -0
- package/build/services/LocalSttFallbackCoordinator.js +137 -0
- package/build/services/LocalSttFallbackCoordinator.js.map +1 -0
- package/build/services/MentraJSCrashController.d.ts +97 -0
- package/build/services/MentraJSCrashController.d.ts.map +1 -0
- package/build/services/MentraJSCrashController.js +138 -0
- package/build/services/MentraJSCrashController.js.map +1 -0
- package/build/services/MentraJSCrashloopReportService.d.ts +9 -0
- package/build/services/MentraJSCrashloopReportService.d.ts.map +1 -0
- package/build/services/MentraJSCrashloopReportService.js +54 -0
- package/build/services/MentraJSCrashloopReportService.js.map +1 -0
- package/build/services/MentraJSLogPipeline.d.ts +87 -0
- package/build/services/MentraJSLogPipeline.d.ts.map +1 -0
- package/build/services/MentraJSLogPipeline.js +137 -0
- package/build/services/MentraJSLogPipeline.js.map +1 -0
- package/build/services/MentraJSRouter.d.ts +203 -0
- package/build/services/MentraJSRouter.d.ts.map +1 -0
- package/build/services/MentraJSRouter.js +480 -0
- package/build/services/MentraJSRouter.js.map +1 -0
- package/build/services/MentraUIRouter.d.ts +137 -0
- package/build/services/MentraUIRouter.d.ts.map +1 -0
- package/build/services/MentraUIRouter.js +210 -0
- package/build/services/MentraUIRouter.js.map +1 -0
- package/build/services/MicStateCoordinator.d.ts +37 -0
- package/build/services/MicStateCoordinator.d.ts.map +1 -0
- package/build/services/MicStateCoordinator.js +81 -0
- package/build/services/MicStateCoordinator.js.map +1 -0
- package/build/services/MiniappEngine.d.ts +31 -0
- package/build/services/MiniappEngine.d.ts.map +1 -0
- package/build/services/MiniappEngine.js +119 -0
- package/build/services/MiniappEngine.js.map +1 -0
- package/build/services/MiniappLauncher.d.ts +129 -0
- package/build/services/MiniappLauncher.d.ts.map +1 -0
- package/build/services/MiniappLauncher.js +291 -0
- package/build/services/MiniappLauncher.js.map +1 -0
- package/build/services/MiniappRunningRegistry.d.ts +24 -0
- package/build/services/MiniappRunningRegistry.d.ts.map +1 -0
- package/build/services/MiniappRunningRegistry.js +52 -0
- package/build/services/MiniappRunningRegistry.js.map +1 -0
- package/build/services/NativeHttpResponse.d.ts +3 -0
- package/build/services/NativeHttpResponse.d.ts.map +1 -0
- package/build/services/NativeHttpResponse.js +6 -0
- package/build/services/NativeHttpResponse.js.map +1 -0
- package/build/services/NavigationHandlers.d.ts +90 -0
- package/build/services/NavigationHandlers.d.ts.map +1 -0
- package/build/services/NavigationHandlers.js +379 -0
- package/build/services/NavigationHandlers.js.map +1 -0
- package/build/services/NavigationService.d.ts +254 -0
- package/build/services/NavigationService.d.ts.map +1 -0
- package/build/services/NavigationService.js +553 -0
- package/build/services/NavigationService.js.map +1 -0
- package/build/services/NotificationsEmitter.d.ts +28 -0
- package/build/services/NotificationsEmitter.d.ts.map +1 -0
- package/build/services/NotificationsEmitter.js +22 -0
- package/build/services/NotificationsEmitter.js.map +1 -0
- package/build/services/OfflineSpeechModelService.d.ts +33 -0
- package/build/services/OfflineSpeechModelService.d.ts.map +1 -0
- package/build/services/OfflineSpeechModelService.js +136 -0
- package/build/services/OfflineSpeechModelService.js.map +1 -0
- package/build/services/OtaInstallCoordinator.d.ts +195 -0
- package/build/services/OtaInstallCoordinator.d.ts.map +1 -0
- package/build/services/OtaInstallCoordinator.js +1047 -0
- package/build/services/OtaInstallCoordinator.js.map +1 -0
- package/build/services/OtaService.d.ts +3 -0
- package/build/services/OtaService.d.ts.map +1 -0
- package/build/services/OtaService.js +65 -0
- package/build/services/OtaService.js.map +1 -0
- package/build/services/OtaUpdateCheckService.d.ts +65 -0
- package/build/services/OtaUpdateCheckService.d.ts.map +1 -0
- package/build/services/OtaUpdateCheckService.js +260 -0
- package/build/services/OtaUpdateCheckService.js.map +1 -0
- package/build/services/PairingIdentity.d.ts +80 -0
- package/build/services/PairingIdentity.d.ts.map +1 -0
- package/build/services/PairingIdentity.js +145 -0
- package/build/services/PairingIdentity.js.map +1 -0
- package/build/services/PhoneCalendarHelpers.d.ts +32 -0
- package/build/services/PhoneCalendarHelpers.d.ts.map +1 -0
- package/build/services/PhoneCalendarHelpers.js +157 -0
- package/build/services/PhoneCalendarHelpers.js.map +1 -0
- package/build/services/PhoneCalendarService.d.ts +5 -0
- package/build/services/PhoneCalendarService.d.ts.map +1 -0
- package/build/services/PhoneCalendarService.js +24 -0
- package/build/services/PhoneCalendarService.js.map +1 -0
- package/build/services/PhoneCameraFovCoordinator.d.ts +28 -0
- package/build/services/PhoneCameraFovCoordinator.d.ts.map +1 -0
- package/build/services/PhoneCameraFovCoordinator.js +180 -0
- package/build/services/PhoneCameraFovCoordinator.js.map +1 -0
- package/build/services/PhoneLocationService.d.ts +36 -0
- package/build/services/PhoneLocationService.d.ts.map +1 -0
- package/build/services/PhoneLocationService.js +115 -0
- package/build/services/PhoneLocationService.js.map +1 -0
- package/build/services/PhoneNotificationsSync.d.ts +3 -0
- package/build/services/PhoneNotificationsSync.d.ts.map +1 -0
- package/build/services/PhoneNotificationsSync.js +35 -0
- package/build/services/PhoneNotificationsSync.js.map +1 -0
- package/build/services/PhonePhotoCoordinator.d.ts +103 -0
- package/build/services/PhonePhotoCoordinator.d.ts.map +1 -0
- package/build/services/PhonePhotoCoordinator.js +326 -0
- package/build/services/PhonePhotoCoordinator.js.map +1 -0
- package/build/services/PhoneStreamCoordinator.d.ts +168 -0
- package/build/services/PhoneStreamCoordinator.d.ts.map +1 -0
- package/build/services/PhoneStreamCoordinator.js +632 -0
- package/build/services/PhoneStreamCoordinator.js.map +1 -0
- package/build/services/PhoneVideoCoordinator.d.ts +50 -0
- package/build/services/PhoneVideoCoordinator.d.ts.map +1 -0
- package/build/services/PhoneVideoCoordinator.js +147 -0
- package/build/services/PhoneVideoCoordinator.js.map +1 -0
- package/build/services/STTModelManager.d.ts +65 -0
- package/build/services/STTModelManager.d.ts.map +1 -0
- package/build/services/STTModelManager.js +292 -0
- package/build/services/STTModelManager.js.map +1 -0
- package/build/services/SceneRenderer.d.ts +90 -0
- package/build/services/SceneRenderer.d.ts.map +1 -0
- package/build/services/SceneRenderer.js +248 -0
- package/build/services/SceneRenderer.js.map +1 -0
- package/build/services/SentenceTtsPipeline.d.ts +31 -0
- package/build/services/SentenceTtsPipeline.d.ts.map +1 -0
- package/build/services/SentenceTtsPipeline.js +67 -0
- package/build/services/SentenceTtsPipeline.js.map +1 -0
- package/build/services/StreamLifecycleController.d.ts +67 -0
- package/build/services/StreamLifecycleController.d.ts.map +1 -0
- package/build/services/StreamLifecycleController.js +152 -0
- package/build/services/StreamLifecycleController.js.map +1 -0
- package/build/services/TTSModelManager.d.ts +90 -0
- package/build/services/TTSModelManager.d.ts.map +1 -0
- package/build/services/TTSModelManager.js +366 -0
- package/build/services/TTSModelManager.js.map +1 -0
- package/build/services/TranscriptionRouting.d.ts +12 -0
- package/build/services/TranscriptionRouting.d.ts.map +1 -0
- package/build/services/TranscriptionRouting.js +24 -0
- package/build/services/TranscriptionRouting.js.map +1 -0
- package/build/services/WebviewBridge.d.ts +22 -0
- package/build/services/WebviewBridge.d.ts.map +1 -0
- package/build/services/WebviewBridge.js +47 -0
- package/build/services/WebviewBridge.js.map +1 -0
- package/build/services/asg/GalleryMediaIntegrityReportService.d.ts +17 -0
- package/build/services/asg/GalleryMediaIntegrityReportService.d.ts.map +1 -0
- package/build/services/asg/GalleryMediaIntegrityReportService.js +43 -0
- package/build/services/asg/GalleryMediaIntegrityReportService.js.map +1 -0
- package/build/services/asg/asgCameraApi.d.ts +205 -0
- package/build/services/asg/asgCameraApi.d.ts.map +1 -0
- package/build/services/asg/asgCameraApi.js +1410 -0
- package/build/services/asg/asgCameraApi.js.map +1 -0
- package/build/services/asg/cameraRollExportCoordinator.d.ts +60 -0
- package/build/services/asg/cameraRollExportCoordinator.d.ts.map +1 -0
- package/build/services/asg/cameraRollExportCoordinator.js +618 -0
- package/build/services/asg/cameraRollExportCoordinator.js.map +1 -0
- package/build/services/asg/cameraRollExportLedger.d.ts +44 -0
- package/build/services/asg/cameraRollExportLedger.d.ts.map +1 -0
- package/build/services/asg/cameraRollExportLedger.js +78 -0
- package/build/services/asg/cameraRollExportLedger.js.map +1 -0
- package/build/services/asg/galleryMediaValidation.d.ts +29 -0
- package/build/services/asg/galleryMediaValidation.d.ts.map +1 -0
- package/build/services/asg/galleryMediaValidation.js +149 -0
- package/build/services/asg/galleryMediaValidation.js.map +1 -0
- package/build/services/asg/galleryNotices.d.ts +33 -0
- package/build/services/asg/galleryNotices.d.ts.map +1 -0
- package/build/services/asg/galleryNotices.js +29 -0
- package/build/services/asg/galleryNotices.js.map +1 -0
- package/build/services/asg/galleryPathMigration.d.ts +3 -0
- package/build/services/asg/galleryPathMigration.d.ts.map +1 -0
- package/build/services/asg/galleryPathMigration.js +26 -0
- package/build/services/asg/galleryPathMigration.js.map +1 -0
- package/build/services/asg/gallerySettingsService.d.ts +20 -0
- package/build/services/asg/gallerySettingsService.d.ts.map +1 -0
- package/build/services/asg/gallerySettingsService.js +53 -0
- package/build/services/asg/gallerySettingsService.js.map +1 -0
- package/build/services/asg/gallerySyncNotifications.d.ts +56 -0
- package/build/services/asg/gallerySyncNotifications.d.ts.map +1 -0
- package/build/services/asg/gallerySyncNotifications.js +198 -0
- package/build/services/asg/gallerySyncNotifications.js.map +1 -0
- package/build/services/asg/gallerySyncService.d.ts +137 -0
- package/build/services/asg/gallerySyncService.d.ts.map +1 -0
- package/build/services/asg/gallerySyncService.js +1933 -0
- package/build/services/asg/gallerySyncService.js.map +1 -0
- package/build/services/asg/galleryTransferLedger.d.ts +58 -0
- package/build/services/asg/galleryTransferLedger.d.ts.map +1 -0
- package/build/services/asg/galleryTransferLedger.js +225 -0
- package/build/services/asg/galleryTransferLedger.js.map +1 -0
- package/build/services/asg/localNetworkTransport.d.ts +15 -0
- package/build/services/asg/localNetworkTransport.d.ts.map +1 -0
- package/build/services/asg/localNetworkTransport.js +144 -0
- package/build/services/asg/localNetworkTransport.js.map +1 -0
- package/build/services/asg/localStorageService.d.ts +146 -0
- package/build/services/asg/localStorageService.d.ts.map +1 -0
- package/build/services/asg/localStorageService.js +572 -0
- package/build/services/asg/localStorageService.js.map +1 -0
- package/build/services/asg/mediaProcessingQueue.d.ts +70 -0
- package/build/services/asg/mediaProcessingQueue.d.ts.map +1 -0
- package/build/services/asg/mediaProcessingQueue.js +451 -0
- package/build/services/asg/mediaProcessingQueue.js.map +1 -0
- package/build/services/asgOtaVersionUrl.d.ts +2 -0
- package/build/services/asgOtaVersionUrl.d.ts.map +1 -0
- package/build/services/asgOtaVersionUrl.js +36 -0
- package/build/services/asgOtaVersionUrl.js.map +1 -0
- package/build/services/blobPaths.d.ts +31 -0
- package/build/services/blobPaths.d.ts.map +1 -0
- package/build/services/blobPaths.js +86 -0
- package/build/services/blobPaths.js.map +1 -0
- package/build/services/cloudStreamApi.d.ts +59 -0
- package/build/services/cloudStreamApi.d.ts.map +1 -0
- package/build/services/cloudStreamApi.js +81 -0
- package/build/services/cloudStreamApi.js.map +1 -0
- package/build/services/gallerySyncClock.d.ts +17 -0
- package/build/services/gallerySyncClock.d.ts.map +1 -0
- package/build/services/gallerySyncClock.js +21 -0
- package/build/services/gallerySyncClock.js.map +1 -0
- package/build/services/glassesClockSync.d.ts +20 -0
- package/build/services/glassesClockSync.d.ts.map +1 -0
- package/build/services/glassesClockSync.js +97 -0
- package/build/services/glassesClockSync.js.map +1 -0
- package/build/services/manifestVersionGate.d.ts +28 -0
- package/build/services/manifestVersionGate.d.ts.map +1 -0
- package/build/services/manifestVersionGate.js +41 -0
- package/build/services/manifestVersionGate.js.map +1 -0
- package/build/services/mentraUiShim.d.ts +38 -0
- package/build/services/mentraUiShim.d.ts.map +1 -0
- package/build/services/mentraUiShim.js +360 -0
- package/build/services/mentraUiShim.js.map +1 -0
- package/build/services/navigation/roadNameResolver.d.ts +67 -0
- package/build/services/navigation/roadNameResolver.d.ts.map +1 -0
- package/build/services/navigation/roadNameResolver.js +96 -0
- package/build/services/navigation/roadNameResolver.js.map +1 -0
- package/build/services/navigation/routesApiCodec.d.ts +38 -0
- package/build/services/navigation/routesApiCodec.d.ts.map +1 -0
- package/build/services/navigation/routesApiCodec.js +68 -0
- package/build/services/navigation/routesApiCodec.js.map +1 -0
- package/build/services/otaDisplayState.d.ts +42 -0
- package/build/services/otaDisplayState.d.ts.map +1 -0
- package/build/services/otaDisplayState.js +92 -0
- package/build/services/otaDisplayState.js.map +1 -0
- package/build/services/otaInstallPolicy.d.ts +81 -0
- package/build/services/otaInstallPolicy.d.ts.map +1 -0
- package/build/services/otaInstallPolicy.js +96 -0
- package/build/services/otaInstallPolicy.js.map +1 -0
- package/build/services/otaLegacyMapping.d.ts +22 -0
- package/build/services/otaLegacyMapping.d.ts.map +1 -0
- package/build/services/otaLegacyMapping.js +56 -0
- package/build/services/otaLegacyMapping.js.map +1 -0
- package/build/services/slimStreamStatus.d.ts +7 -0
- package/build/services/slimStreamStatus.d.ts.map +1 -0
- package/build/services/slimStreamStatus.js +26 -0
- package/build/services/slimStreamStatus.js.map +1 -0
- package/build/stores/apps.d.ts +104 -0
- package/build/stores/apps.d.ts.map +1 -0
- package/build/stores/apps.js +492 -0
- package/build/stores/apps.js.map +1 -0
- package/build/stores/bluetoothSettingKeys.d.ts +4 -0
- package/build/stores/bluetoothSettingKeys.d.ts.map +1 -0
- package/build/stores/bluetoothSettingKeys.js +31 -0
- package/build/stores/bluetoothSettingKeys.js.map +1 -0
- package/build/stores/cloudClientStatus.d.ts +9 -0
- package/build/stores/cloudClientStatus.d.ts.map +1 -0
- package/build/stores/cloudClientStatus.js +24 -0
- package/build/stores/cloudClientStatus.js.map +1 -0
- package/build/stores/connection.d.ts +22 -0
- package/build/stores/connection.d.ts.map +1 -0
- package/build/stores/connection.js +43 -0
- package/build/stores/connection.js.map +1 -0
- package/build/stores/core.d.ts +15 -0
- package/build/stores/core.d.ts.map +1 -0
- package/build/stores/core.js +21 -0
- package/build/stores/core.js.map +1 -0
- package/build/stores/display.d.ts +24 -0
- package/build/stores/display.d.ts.map +1 -0
- package/build/stores/display.js +96 -0
- package/build/stores/display.js.map +1 -0
- package/build/stores/gallerySync.d.ts +101 -0
- package/build/stores/gallerySync.d.ts.map +1 -0
- package/build/stores/gallerySync.js +217 -0
- package/build/stores/gallerySync.js.map +1 -0
- package/build/stores/glasses.d.ts +62 -0
- package/build/stores/glasses.d.ts.map +1 -0
- package/build/stores/glasses.js +203 -0
- package/build/stores/glasses.js.map +1 -0
- package/build/stores/settings.d.ts +37 -0
- package/build/stores/settings.d.ts.map +1 -0
- package/build/stores/settings.js +922 -0
- package/build/stores/settings.js.map +1 -0
- package/build/types/applet.d.ts +96 -0
- package/build/types/applet.d.ts.map +1 -0
- package/build/types/applet.js +5 -0
- package/build/types/applet.js.map +1 -0
- package/build/types/asg.d.ts +53 -0
- package/build/types/asg.d.ts.map +1 -0
- package/build/types/asg.js +2 -0
- package/build/types/asg.js.map +1 -0
- package/build/types/capabilities/even-realities-g1.d.ts +12 -0
- package/build/types/capabilities/even-realities-g1.d.ts.map +1 -0
- package/build/types/capabilities/even-realities-g1.js +55 -0
- package/build/types/capabilities/even-realities-g1.js.map +1 -0
- package/build/types/capabilities/even-realities-g2.d.ts +12 -0
- package/build/types/capabilities/even-realities-g2.d.ts.map +1 -0
- package/build/types/capabilities/even-realities-g2.js +75 -0
- package/build/types/capabilities/even-realities-g2.js.map +1 -0
- package/build/types/capabilities/mentra-display.d.ts +12 -0
- package/build/types/capabilities/mentra-display.d.ts.map +1 -0
- package/build/types/capabilities/mentra-display.js +63 -0
- package/build/types/capabilities/mentra-display.js.map +1 -0
- package/build/types/capabilities/mentra-live.d.ts +12 -0
- package/build/types/capabilities/mentra-live.d.ts.map +1 -0
- package/build/types/capabilities/mentra-live.js +92 -0
- package/build/types/capabilities/mentra-live.js.map +1 -0
- package/build/types/capabilities/none.d.ts +13 -0
- package/build/types/capabilities/none.d.ts.map +1 -0
- package/build/types/capabilities/none.js +65 -0
- package/build/types/capabilities/none.js.map +1 -0
- package/build/types/capabilities/simulated-glasses.d.ts +13 -0
- package/build/types/capabilities/simulated-glasses.d.ts.map +1 -0
- package/build/types/capabilities/simulated-glasses.js +65 -0
- package/build/types/capabilities/simulated-glasses.js.map +1 -0
- package/build/types/capabilities/vuzix-z100.d.ts +12 -0
- package/build/types/capabilities/vuzix-z100.d.ts.map +1 -0
- package/build/types/capabilities/vuzix-z100.js +52 -0
- package/build/types/capabilities/vuzix-z100.js.map +1 -0
- package/build/types/enums.d.ts +40 -0
- package/build/types/enums.d.ts.map +1 -0
- package/build/types/enums.js +44 -0
- package/build/types/enums.js.map +1 -0
- package/build/types/hardware.d.ts +160 -0
- package/build/types/hardware.d.ts.map +1 -0
- package/build/types/hardware.js +36 -0
- package/build/types/hardware.js.map +1 -0
- package/build/types/index.d.ts +11 -0
- package/build/types/index.d.ts.map +1 -0
- package/build/types/index.js +10 -0
- package/build/types/index.js.map +1 -0
- package/build/utils/GlobalEventEmitter.d.ts +10 -0
- package/build/utils/GlobalEventEmitter.d.ts.map +1 -0
- package/build/utils/GlobalEventEmitter.js +13 -0
- package/build/utils/GlobalEventEmitter.js.map +1 -0
- package/build/utils/cloudClient/RnUdpAdapter.d.ts +3 -0
- package/build/utils/cloudClient/RnUdpAdapter.d.ts.map +1 -0
- package/build/utils/cloudClient/RnUdpAdapter.js +41 -0
- package/build/utils/cloudClient/RnUdpAdapter.js.map +1 -0
- package/build/utils/cloudClient/cloudSecureStore.d.ts +3 -0
- package/build/utils/cloudClient/cloudSecureStore.d.ts.map +1 -0
- package/build/utils/cloudClient/cloudSecureStore.js +26 -0
- package/build/utils/cloudClient/cloudSecureStore.js.map +1 -0
- package/build/utils/debouncedPatch.d.ts +6 -0
- package/build/utils/debouncedPatch.d.ts.map +1 -0
- package/build/utils/debouncedPatch.js +25 -0
- package/build/utils/debouncedPatch.js.map +1 -0
- package/build/utils/devLogging.d.ts +26 -0
- package/build/utils/devLogging.d.ts.map +1 -0
- package/build/utils/devLogging.js +116 -0
- package/build/utils/devLogging.js.map +1 -0
- package/build/utils/devMiniappLaunch.d.ts +44 -0
- package/build/utils/devMiniappLaunch.d.ts.map +1 -0
- package/build/utils/devMiniappLaunch.js +52 -0
- package/build/utils/devMiniappLaunch.js.map +1 -0
- package/build/utils/diagnosticContext.d.ts +3 -0
- package/build/utils/diagnosticContext.d.ts.map +1 -0
- package/build/utils/diagnosticContext.js +119 -0
- package/build/utils/diagnosticContext.js.map +1 -0
- package/build/utils/display/composer/ColumnComposer.d.ts +131 -0
- package/build/utils/display/composer/ColumnComposer.d.ts.map +1 -0
- package/build/utils/display/composer/ColumnComposer.js +204 -0
- package/build/utils/display/composer/ColumnComposer.js.map +1 -0
- package/build/utils/display/composer/index.d.ts +9 -0
- package/build/utils/display/composer/index.d.ts.map +1 -0
- package/build/utils/display/composer/index.js +9 -0
- package/build/utils/display/composer/index.js.map +1 -0
- package/build/utils/display/helpers/DisplayHelpers.d.ts +165 -0
- package/build/utils/display/helpers/DisplayHelpers.d.ts.map +1 -0
- package/build/utils/display/helpers/DisplayHelpers.js +312 -0
- package/build/utils/display/helpers/DisplayHelpers.js.map +1 -0
- package/build/utils/display/helpers/ScrollView.d.ts +183 -0
- package/build/utils/display/helpers/ScrollView.d.ts.map +1 -0
- package/build/utils/display/helpers/ScrollView.js +257 -0
- package/build/utils/display/helpers/ScrollView.js.map +1 -0
- package/build/utils/display/helpers/index.d.ts +11 -0
- package/build/utils/display/helpers/index.d.ts.map +1 -0
- package/build/utils/display/helpers/index.js +10 -0
- package/build/utils/display/helpers/index.js.map +1 -0
- package/build/utils/display/index.d.ts +174 -0
- package/build/utils/display/index.d.ts.map +1 -0
- package/build/utils/display/index.js +185 -0
- package/build/utils/display/index.js.map +1 -0
- package/build/utils/display/measurer/TextMeasurer.d.ts +160 -0
- package/build/utils/display/measurer/TextMeasurer.d.ts.map +1 -0
- package/build/utils/display/measurer/TextMeasurer.js +273 -0
- package/build/utils/display/measurer/TextMeasurer.js.map +1 -0
- package/build/utils/display/measurer/index.d.ts +10 -0
- package/build/utils/display/measurer/index.d.ts.map +1 -0
- package/build/utils/display/measurer/index.js +11 -0
- package/build/utils/display/measurer/index.js.map +1 -0
- package/build/utils/display/measurer/script-detection.d.ts +53 -0
- package/build/utils/display/measurer/script-detection.d.ts.map +1 -0
- package/build/utils/display/measurer/script-detection.js +184 -0
- package/build/utils/display/measurer/script-detection.js.map +1 -0
- package/build/utils/display/profiles/g1.d.ts +33 -0
- package/build/utils/display/profiles/g1.d.ts.map +1 -0
- package/build/utils/display/profiles/g1.js +213 -0
- package/build/utils/display/profiles/g1.js.map +1 -0
- package/build/utils/display/profiles/g2.d.ts +13 -0
- package/build/utils/display/profiles/g2.d.ts.map +1 -0
- package/build/utils/display/profiles/g2.js +34 -0
- package/build/utils/display/profiles/g2.js.map +1 -0
- package/build/utils/display/profiles/index.d.ts +12 -0
- package/build/utils/display/profiles/index.d.ts.map +1 -0
- package/build/utils/display/profiles/index.js +15 -0
- package/build/utils/display/profiles/index.js.map +1 -0
- package/build/utils/display/profiles/nex.d.ts +10 -0
- package/build/utils/display/profiles/nex.d.ts.map +1 -0
- package/build/utils/display/profiles/nex.js +150 -0
- package/build/utils/display/profiles/nex.js.map +1 -0
- package/build/utils/display/profiles/types.d.ts +103 -0
- package/build/utils/display/profiles/types.d.ts.map +1 -0
- package/build/utils/display/profiles/types.js +2 -0
- package/build/utils/display/profiles/types.js.map +1 -0
- package/build/utils/display/profiles/z100.d.ts +33 -0
- package/build/utils/display/profiles/z100.d.ts.map +1 -0
- package/build/utils/display/profiles/z100.js +182 -0
- package/build/utils/display/profiles/z100.js.map +1 -0
- package/build/utils/display/scene/degrade.d.ts +25 -0
- package/build/utils/display/scene/degrade.d.ts.map +1 -0
- package/build/utils/display/scene/degrade.js +64 -0
- package/build/utils/display/scene/degrade.js.map +1 -0
- package/build/utils/display/scene/differ.d.ts +38 -0
- package/build/utils/display/scene/differ.d.ts.map +1 -0
- package/build/utils/display/scene/differ.js +107 -0
- package/build/utils/display/scene/differ.js.map +1 -0
- package/build/utils/display/scene/index.d.ts +10 -0
- package/build/utils/display/scene/index.d.ts.map +1 -0
- package/build/utils/display/scene/index.js +6 -0
- package/build/utils/display/scene/index.js.map +1 -0
- package/build/utils/display/scene/process.d.ts +35 -0
- package/build/utils/display/scene/process.d.ts.map +1 -0
- package/build/utils/display/scene/process.js +187 -0
- package/build/utils/display/scene/process.js.map +1 -0
- package/build/utils/display/scene/store.d.ts +48 -0
- package/build/utils/display/scene/store.d.ts.map +1 -0
- package/build/utils/display/scene/store.js +0 -0
- package/build/utils/display/scene/store.js.map +1 -0
- package/build/utils/display/scene/types.d.ts +120 -0
- package/build/utils/display/scene/types.d.ts.map +1 -0
- package/build/utils/display/scene/types.js +0 -0
- package/build/utils/display/scene/types.js.map +1 -0
- package/build/utils/display/wrapper/TextWrapper.d.ts +102 -0
- package/build/utils/display/wrapper/TextWrapper.d.ts.map +1 -0
- package/build/utils/display/wrapper/TextWrapper.js +471 -0
- package/build/utils/display/wrapper/TextWrapper.js.map +1 -0
- package/build/utils/display/wrapper/index.d.ts +12 -0
- package/build/utils/display/wrapper/index.d.ts.map +1 -0
- package/build/utils/display/wrapper/index.js +12 -0
- package/build/utils/display/wrapper/index.js.map +1 -0
- package/build/utils/display/wrapper/types.d.ts +75 -0
- package/build/utils/display/wrapper/types.d.ts.map +1 -0
- package/build/utils/display/wrapper/types.js +11 -0
- package/build/utils/display/wrapper/types.js.map +1 -0
- package/build/utils/e2eMetrics.d.ts +6 -0
- package/build/utils/e2eMetrics.d.ts.map +1 -0
- package/build/utils/e2eMetrics.js +27 -0
- package/build/utils/e2eMetrics.js.map +1 -0
- package/build/utils/hardware/hardware.d.ts +42 -0
- package/build/utils/hardware/hardware.d.ts.map +1 -0
- package/build/utils/hardware/hardware.js +127 -0
- package/build/utils/hardware/hardware.js.map +1 -0
- package/build/utils/hardware/index.d.ts +2 -0
- package/build/utils/hardware/index.d.ts.map +1 -0
- package/build/utils/hardware/index.js +2 -0
- package/build/utils/hardware/index.js.map +1 -0
- package/build/utils/miniappGlobals.d.ts +60 -0
- package/build/utils/miniappGlobals.d.ts.map +1 -0
- package/build/utils/miniappGlobals.js +224 -0
- package/build/utils/miniappGlobals.js.map +1 -0
- package/build/utils/permissions/MediaLibraryPermissions.d.ts +45 -0
- package/build/utils/permissions/MediaLibraryPermissions.d.ts.map +1 -0
- package/build/utils/permissions/MediaLibraryPermissions.js +145 -0
- package/build/utils/permissions/MediaLibraryPermissions.js.map +1 -0
- package/build/utils/permissions/galleryDisplayName.d.ts +8 -0
- package/build/utils/permissions/galleryDisplayName.d.ts.map +1 -0
- package/build/utils/permissions/galleryDisplayName.js +25 -0
- package/build/utils/permissions/galleryDisplayName.js.map +1 -0
- package/build/utils/storage/index.d.ts +3 -0
- package/build/utils/storage/index.d.ts.map +1 -0
- package/build/utils/storage/index.js +3 -0
- package/build/utils/storage/index.js.map +1 -0
- package/build/utils/storage/storage.d.ts +24 -0
- package/build/utils/storage/storage.d.ts.map +1 -0
- package/build/utils/storage/storage.js +85 -0
- package/build/utils/storage/storage.js.map +1 -0
- package/build/utils/storage/zip.d.ts +3 -0
- package/build/utils/storage/zip.d.ts.map +1 -0
- package/build/utils/storage/zip.js +14 -0
- package/build/utils/storage/zip.js.map +1 -0
- package/build/utils/timers/index.d.ts +3 -0
- package/build/utils/timers/index.d.ts.map +1 -0
- package/build/utils/timers/index.js +3 -0
- package/build/utils/timers/index.js.map +1 -0
- package/build/utils/timers/timers.d.ts +9 -0
- package/build/utils/timers/timers.d.ts.map +1 -0
- package/build/utils/timers/timers.js +105 -0
- package/build/utils/timers/timers.js.map +1 -0
- package/package.json +120 -0
- package/src/devtools.ts +13 -0
- package/src/engine.ts +173 -0
- package/src/facades/dev.ts +198 -0
- package/src/facades/display.ts +17 -0
- package/src/facades/displayMirror.ts +33 -0
- package/src/facades/gallery.ts +69 -0
- package/src/facades/glasses.ts +206 -0
- package/src/facades/glassesSettings.ts +56 -0
- package/src/facades/glassesWifi.ts +68 -0
- package/src/facades/miniapps.ts +55 -0
- package/src/facades/notifications.ts +15 -0
- package/src/facades/ota.ts +174 -0
- package/src/facades/pairing.ts +329 -0
- package/src/facades/permissions.ts +165 -0
- package/src/facades/phoneNotifications.ts +50 -0
- package/src/facades/reports.ts +185 -0
- package/src/facades/session.ts +55 -0
- package/src/facades/settings.ts +57 -0
- package/src/facades/speech.ts +38 -0
- package/src/index.ts +191 -0
- package/src/internal.ts +159 -0
- package/src/runtime/bootstrap.ts +118 -0
- package/src/runtime/config.ts +147 -0
- package/src/runtime/streamConfig.ts +34 -0
- package/src/services/AppRegistry.ts +1190 -0
- package/src/services/AudioCloudUplink.ts +50 -0
- package/src/services/AudioPlaybackService.ts +813 -0
- package/src/services/AutomaticReportResult.ts +48 -0
- package/src/services/BlobStore.ts +746 -0
- package/src/services/CaptionsTesterReportService.ts +107 -0
- package/src/services/CloudAudioSubscriptionSync.ts +41 -0
- package/src/services/CloudClientService.ts +689 -0
- package/src/services/CloudTranscriptE2EMetrics.ts +27 -0
- package/src/services/ConnectionCoordinator.ts +65 -0
- package/src/services/DevServerBridge.ts +332 -0
- package/src/services/DeviceEventRouter.ts +238 -0
- package/src/services/DeviceStoreHydration.ts +130 -0
- package/src/services/DisplayProcessor.ts +775 -0
- package/src/services/GlassesReadiness.ts +103 -0
- package/src/services/GlassesSettingsSync.ts +134 -0
- package/src/services/GlassesStatusProjection.ts +73 -0
- package/src/services/HeadingService.ts +98 -0
- package/src/services/LocalDisplayManager.ts +703 -0
- package/src/services/LocalMiniappRuntime.ts +4213 -0
- package/src/services/LocalSttFallbackCoordinator.ts +147 -0
- package/src/services/MentraJSCrashController.ts +189 -0
- package/src/services/MentraJSCrashloopReportService.ts +66 -0
- package/src/services/MentraJSLogPipeline.ts +166 -0
- package/src/services/MentraJSRouter.ts +557 -0
- package/src/services/MentraUIRouter.ts +244 -0
- package/src/services/MicStateCoordinator.ts +94 -0
- package/src/services/MiniappEngine.ts +143 -0
- package/src/services/MiniappLauncher.ts +340 -0
- package/src/services/MiniappRunningRegistry.ts +57 -0
- package/src/services/NativeHttpResponse.ts +6 -0
- package/src/services/NavigationHandlers.ts +423 -0
- package/src/services/NavigationService.ts +731 -0
- package/src/services/NotificationsEmitter.ts +48 -0
- package/src/services/OfflineSpeechModelService.ts +168 -0
- package/src/services/OtaInstallCoordinator.ts +1205 -0
- package/src/services/OtaService.ts +83 -0
- package/src/services/OtaUpdateCheckService.ts +386 -0
- package/src/services/PairingIdentity.ts +154 -0
- package/src/services/PhoneCalendarHelpers.ts +212 -0
- package/src/services/PhoneCalendarService.ts +42 -0
- package/src/services/PhoneCameraFovCoordinator.ts +195 -0
- package/src/services/PhoneLocationService.ts +122 -0
- package/src/services/PhoneNotificationsSync.ts +44 -0
- package/src/services/PhonePhotoCoordinator.ts +409 -0
- package/src/services/PhoneStreamCoordinator.ts +777 -0
- package/src/services/PhoneVideoCoordinator.ts +189 -0
- package/src/services/STTModelManager.ts +360 -0
- package/src/services/SceneRenderer.ts +292 -0
- package/src/services/SentenceTtsPipeline.ts +106 -0
- package/src/services/StreamLifecycleController.ts +213 -0
- package/src/services/TTSModelManager.ts +466 -0
- package/src/services/TranscriptionRouting.ts +37 -0
- package/src/services/WebviewBridge.ts +50 -0
- package/src/services/asg/GalleryMediaIntegrityReportService.ts +70 -0
- package/src/services/asg/asgCameraApi.ts +1695 -0
- package/src/services/asg/cameraRollExportCoordinator.ts +627 -0
- package/src/services/asg/cameraRollExportLedger.ts +122 -0
- package/src/services/asg/galleryMediaValidation.ts +183 -0
- package/src/services/asg/galleryNotices.ts +61 -0
- package/src/services/asg/galleryPathMigration.ts +22 -0
- package/src/services/asg/gallerySettingsService.ts +68 -0
- package/src/services/asg/gallerySyncNotifications.ts +236 -0
- package/src/services/asg/gallerySyncService.ts +2269 -0
- package/src/services/asg/galleryTransferLedger.ts +312 -0
- package/src/services/asg/localNetworkTransport.ts +173 -0
- package/src/services/asg/localStorageService.ts +652 -0
- package/src/services/asg/mediaProcessingQueue.ts +518 -0
- package/src/services/asgOtaVersionUrl.ts +41 -0
- package/src/services/blobPaths.ts +86 -0
- package/src/services/cloudStreamApi.ts +154 -0
- package/src/services/gallerySyncClock.ts +39 -0
- package/src/services/glassesClockSync.ts +115 -0
- package/src/services/manifestVersionGate.ts +43 -0
- package/src/services/mentraUiShim.ts +366 -0
- package/src/services/navigation/roadNameResolver.ts +112 -0
- package/src/services/navigation/routesApiCodec.ts +69 -0
- package/src/services/otaDisplayState.ts +115 -0
- package/src/services/otaInstallPolicy.ts +106 -0
- package/src/services/otaLegacyMapping.ts +71 -0
- package/src/services/slimStreamStatus.ts +28 -0
- package/src/stores/apps.ts +614 -0
- package/src/stores/bluetoothSettingKeys.ts +36 -0
- package/src/stores/cloudClientStatus.ts +37 -0
- package/src/stores/connection.ts +69 -0
- package/src/stores/core.ts +32 -0
- package/src/stores/display.ts +121 -0
- package/src/stores/gallerySync.ts +380 -0
- package/src/stores/glasses.ts +309 -0
- package/src/stores/settings.ts +1001 -0
- package/src/types/applet.ts +112 -0
- package/src/types/asg.ts +58 -0
- package/src/types/capabilities/even-realities-g1.ts +67 -0
- package/src/types/capabilities/even-realities-g2.ts +88 -0
- package/src/types/capabilities/mentra-display.ts +75 -0
- package/src/types/capabilities/mentra-live.ts +103 -0
- package/src/types/capabilities/none.ts +76 -0
- package/src/types/capabilities/simulated-glasses.ts +76 -0
- package/src/types/capabilities/vuzix-z100.ts +64 -0
- package/src/types/enums.ts +43 -0
- package/src/types/hardware.ts +203 -0
- package/src/types/index.ts +37 -0
- package/src/utils/GlobalEventEmitter.ts +14 -0
- package/src/utils/cloudClient/RnUdpAdapter.ts +47 -0
- package/src/utils/cloudClient/cloudSecureStore.ts +28 -0
- package/src/utils/debouncedPatch.ts +28 -0
- package/src/utils/devLogging.ts +140 -0
- package/src/utils/devMiniappLaunch.ts +68 -0
- package/src/utils/diagnosticContext.ts +155 -0
- package/src/utils/display/composer/ColumnComposer.ts +285 -0
- package/src/utils/display/composer/index.ts +15 -0
- package/src/utils/display/helpers/DisplayHelpers.ts +413 -0
- package/src/utils/display/helpers/ScrollView.ts +337 -0
- package/src/utils/display/helpers/index.ts +14 -0
- package/src/utils/display/index.ts +273 -0
- package/src/utils/display/measurer/TextMeasurer.ts +346 -0
- package/src/utils/display/measurer/index.ts +21 -0
- package/src/utils/display/measurer/script-detection.ts +218 -0
- package/src/utils/display/profiles/g1.ts +236 -0
- package/src/utils/display/profiles/g2.ts +39 -0
- package/src/utils/display/profiles/index.ts +28 -0
- package/src/utils/display/profiles/nex.ts +166 -0
- package/src/utils/display/profiles/types.ts +132 -0
- package/src/utils/display/profiles/z100.ts +198 -0
- package/src/utils/display/scene/degrade.ts +80 -0
- package/src/utils/display/scene/differ.ts +128 -0
- package/src/utils/display/scene/index.ts +21 -0
- package/src/utils/display/scene/process.ts +214 -0
- package/src/utils/display/scene/store.ts +0 -0
- package/src/utils/display/scene/types.ts +0 -0
- package/src/utils/display/wrapper/TextWrapper.ts +546 -0
- package/src/utils/display/wrapper/index.ts +15 -0
- package/src/utils/display/wrapper/types.ts +102 -0
- package/src/utils/e2eMetrics.ts +30 -0
- package/src/utils/hardware/hardware.ts +166 -0
- package/src/utils/hardware/index.ts +1 -0
- package/src/utils/miniappGlobals.ts +260 -0
- package/src/utils/permissions/MediaLibraryPermissions.ts +161 -0
- package/src/utils/permissions/galleryDisplayName.ts +28 -0
- package/src/utils/storage/index.ts +2 -0
- package/src/utils/storage/storage.ts +101 -0
- package/src/utils/storage/zip.ts +13 -0
- package/src/utils/timers/index.ts +2 -0
- package/src/utils/timers/timers.ts +139 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MentraJSLogPipeline.d.ts","sourceRoot":"","sources":["../../src/services/MentraJSLogPipeline.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAIH;;;;;;;;;;;;;GAaG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAmBrD;AAED;;;;;GAKG;AACH,MAAM,WAAW,eAAe;IAC9B,uDAAuD;IACvD,eAAe,CAAC,EAAE,MAAM,CAAA;IACxB,oCAAoC;IACpC,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,gCAAgC;IAChC,GAAG,CAAC,EAAE,MAAM,MAAM,CAAA;CACnB;AASD,qBAAa,mBAAmB;IAC9B,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAQ;IACxC,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAQ;IACvC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAc;IAClC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAwC;gBAEpD,IAAI,GAAE,eAAoB;IAMtC;;;;;;;OAOG;IACH,OAAO,CAAC,WAAW,EAAE,MAAM,GAAG;QAAC,OAAO,EAAE,IAAI,CAAA;KAAC,GAAG;QAAC,OAAO,EAAE,KAAK,CAAC;QAAC,aAAa,CAAC,EAAE,MAAM,CAAA;KAAC;IA4BxF,oCAAoC;IACpC,aAAa,IAAI,IAAI;CAGtB;AAED;;;GAGG;AACH,qBAAa,qBAAqB;IAChC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAQ;IACjC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAmC;gBAE/C,kBAAkB,SAAM;IAIpC,IAAI,CAAC,WAAW,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI;IAU7C,QAAQ,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,EAAE;IAIvC,KAAK,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI;CAGjC"}
|
|
@@ -0,0 +1,137 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* MentraJSLogPipeline — the three log-side utilities that
|
|
3
|
+
* MentraJSRouter's `__log` handler runs every miniapp log line through:
|
|
4
|
+
*
|
|
5
|
+
* 1. redactSecrets — walks a value (string / array / object) and
|
|
6
|
+
* replaces anything matching the secret-key regex
|
|
7
|
+
* (token|password|secret|auth|bearer|key|api[_-]?key) with
|
|
8
|
+
* "[REDACTED]". Conservative: over-redaction is preferable to
|
|
9
|
+
* leaking a real secret into Sentry breadcrumbs.
|
|
10
|
+
*
|
|
11
|
+
* 2. MentraJSLogThrottle — token-bucket rate limiter, 100 lines/min
|
|
12
|
+
* sustained with a 500-line burst, per miniapp. Excess is dropped
|
|
13
|
+
* and surfaced once as a `[throttled N]` summary. Stops a
|
|
14
|
+
* misbehaving miniapp from drowning the host's log stream.
|
|
15
|
+
*
|
|
16
|
+
* 3. MentraJSLogRingBuffer — fixed-size circular buffer (default 200)
|
|
17
|
+
* holding the most recent log lines per miniapp. Dumped into the
|
|
18
|
+
* crash report so post-mortem tooling sees the miniapp's last words.
|
|
19
|
+
*
|
|
20
|
+
* All three are pure (no React Native imports) and unit-tested in
|
|
21
|
+
* MentraJSLogPipeline.test.ts.
|
|
22
|
+
*/
|
|
23
|
+
const SECRET_KEY_PATTERN = /\b(token|password|secret|auth|bearer|key|api[_-]?key)\b/i;
|
|
24
|
+
/**
|
|
25
|
+
* Redact obvious secret-like strings from a log line. Walks the JSON
|
|
26
|
+
* argument list, replacing any value that looks like a secret with
|
|
27
|
+
* `[REDACTED]`. Conservative — false negatives are fine, false positives
|
|
28
|
+
* are bad (devs lose visibility into their own data).
|
|
29
|
+
*
|
|
30
|
+
* Heuristics:
|
|
31
|
+
* 1. Top-level strings matching SECRET_KEY_PATTERN get the entire value
|
|
32
|
+
* redacted (e.g. `console.log("token=abc123")` → `[REDACTED]`).
|
|
33
|
+
* 2. Object keys matching the pattern get their values replaced.
|
|
34
|
+
* 3. Arrays are walked element-by-element.
|
|
35
|
+
*
|
|
36
|
+
* Returns a new structure — never mutates the input.
|
|
37
|
+
*/
|
|
38
|
+
export function redactSecrets(value) {
|
|
39
|
+
if (typeof value === "string") {
|
|
40
|
+
return SECRET_KEY_PATTERN.test(value) ? "[REDACTED]" : value;
|
|
41
|
+
}
|
|
42
|
+
if (Array.isArray(value)) {
|
|
43
|
+
return value.map((v) => redactSecrets(v));
|
|
44
|
+
}
|
|
45
|
+
if (value && typeof value === "object") {
|
|
46
|
+
const out = {};
|
|
47
|
+
for (const [k, v] of Object.entries(value)) {
|
|
48
|
+
if (SECRET_KEY_PATTERN.test(k)) {
|
|
49
|
+
out[k] = "[REDACTED]";
|
|
50
|
+
}
|
|
51
|
+
else {
|
|
52
|
+
out[k] = redactSecrets(v);
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
return out;
|
|
56
|
+
}
|
|
57
|
+
return value;
|
|
58
|
+
}
|
|
59
|
+
export class MentraJSLogThrottle {
|
|
60
|
+
tokensPerSecond;
|
|
61
|
+
bucketCapacity;
|
|
62
|
+
now;
|
|
63
|
+
buckets = new Map();
|
|
64
|
+
constructor(opts = {}) {
|
|
65
|
+
this.tokensPerSecond = opts.tokensPerSecond ?? 100 / 60;
|
|
66
|
+
this.bucketCapacity = opts.bucketCapacity ?? 500;
|
|
67
|
+
this.now = opts.now ?? (() => Date.now());
|
|
68
|
+
}
|
|
69
|
+
/**
|
|
70
|
+
* Try to consume one token for the named package. Returns either:
|
|
71
|
+
* - `{allowed: true}` — caller emits the original log line.
|
|
72
|
+
* - `{allowed: false, throttledLine}` — caller may emit the
|
|
73
|
+
* synthetic throttled line (the first drop in each window).
|
|
74
|
+
* If `throttledLine` is undefined the caller drops silently
|
|
75
|
+
* (subsequent drops in the same window).
|
|
76
|
+
*/
|
|
77
|
+
consume(packageName) {
|
|
78
|
+
const at = this.now();
|
|
79
|
+
let bucket = this.buckets.get(packageName);
|
|
80
|
+
if (!bucket) {
|
|
81
|
+
bucket = {
|
|
82
|
+
tokens: this.bucketCapacity,
|
|
83
|
+
lastRefillAtMs: at,
|
|
84
|
+
pendingDrops: 0,
|
|
85
|
+
};
|
|
86
|
+
this.buckets.set(packageName, bucket);
|
|
87
|
+
}
|
|
88
|
+
else {
|
|
89
|
+
const elapsedSec = (at - bucket.lastRefillAtMs) / 1000;
|
|
90
|
+
bucket.tokens = Math.min(this.bucketCapacity, bucket.tokens + elapsedSec * this.tokensPerSecond);
|
|
91
|
+
bucket.lastRefillAtMs = at;
|
|
92
|
+
}
|
|
93
|
+
if (bucket.tokens >= 1) {
|
|
94
|
+
bucket.tokens -= 1;
|
|
95
|
+
if (bucket.pendingDrops > 0) {
|
|
96
|
+
const dropped = bucket.pendingDrops;
|
|
97
|
+
bucket.pendingDrops = 0;
|
|
98
|
+
return { allowed: false, throttledLine: `[throttled ${dropped}]` };
|
|
99
|
+
}
|
|
100
|
+
return { allowed: true };
|
|
101
|
+
}
|
|
102
|
+
bucket.pendingDrops += 1;
|
|
103
|
+
return { allowed: false };
|
|
104
|
+
}
|
|
105
|
+
/** Test/dev — reset all buckets. */
|
|
106
|
+
resetForTests() {
|
|
107
|
+
this.buckets.clear();
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
/**
|
|
111
|
+
* In-memory ring buffer holding the last N lines per package. Useful as a
|
|
112
|
+
* "last words" context attached to crash reports.
|
|
113
|
+
*/
|
|
114
|
+
export class MentraJSLogRingBuffer {
|
|
115
|
+
capacity;
|
|
116
|
+
buffers = new Map();
|
|
117
|
+
constructor(capacityPerPackage = 200) {
|
|
118
|
+
this.capacity = capacityPerPackage;
|
|
119
|
+
}
|
|
120
|
+
push(packageName, line) {
|
|
121
|
+
let buf = this.buffers.get(packageName);
|
|
122
|
+
if (!buf) {
|
|
123
|
+
buf = [];
|
|
124
|
+
this.buffers.set(packageName, buf);
|
|
125
|
+
}
|
|
126
|
+
buf.push(line);
|
|
127
|
+
if (buf.length > this.capacity)
|
|
128
|
+
buf.shift();
|
|
129
|
+
}
|
|
130
|
+
snapshot(packageName) {
|
|
131
|
+
return [...(this.buffers.get(packageName) ?? [])];
|
|
132
|
+
}
|
|
133
|
+
clear(packageName) {
|
|
134
|
+
this.buffers.delete(packageName);
|
|
135
|
+
}
|
|
136
|
+
}
|
|
137
|
+
//# sourceMappingURL=MentraJSLogPipeline.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MentraJSLogPipeline.js","sourceRoot":"","sources":["../../src/services/MentraJSLogPipeline.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * MentraJSLogPipeline — the three log-side utilities that\n * MentraJSRouter's `__log` handler runs every miniapp log line through:\n *\n * 1. redactSecrets — walks a value (string / array / object) and\n * replaces anything matching the secret-key regex\n * (token|password|secret|auth|bearer|key|api[_-]?key) with\n * \"[REDACTED]\". Conservative: over-redaction is preferable to\n * leaking a real secret into Sentry breadcrumbs.\n *\n * 2. MentraJSLogThrottle — token-bucket rate limiter, 100 lines/min\n * sustained with a 500-line burst, per miniapp. Excess is dropped\n * and surfaced once as a `[throttled N]` summary. Stops a\n * misbehaving miniapp from drowning the host's log stream.\n *\n * 3. MentraJSLogRingBuffer — fixed-size circular buffer (default 200)\n * holding the most recent log lines per miniapp. Dumped into the\n * crash report so post-mortem tooling sees the miniapp's last words.\n *\n * All three are pure (no React Native imports) and unit-tested in\n * MentraJSLogPipeline.test.ts.\n */\n\nconst SECRET_KEY_PATTERN = /\\b(token|password|secret|auth|bearer|key|api[_-]?key)\\b/i\n\n/**\n * Redact obvious secret-like strings from a log line. Walks the JSON\n * argument list, replacing any value that looks like a secret with\n * `[REDACTED]`. Conservative — false negatives are fine, false positives\n * are bad (devs lose visibility into their own data).\n *\n * Heuristics:\n * 1. Top-level strings matching SECRET_KEY_PATTERN get the entire value\n * redacted (e.g. `console.log(\"token=abc123\")` → `[REDACTED]`).\n * 2. Object keys matching the pattern get their values replaced.\n * 3. Arrays are walked element-by-element.\n *\n * Returns a new structure — never mutates the input.\n */\nexport function redactSecrets(value: unknown): unknown {\n if (typeof value === \"string\") {\n return SECRET_KEY_PATTERN.test(value) ? \"[REDACTED]\" : value\n }\n if (Array.isArray(value)) {\n return value.map((v) => redactSecrets(v))\n }\n if (value && typeof value === \"object\") {\n const out: Record<string, unknown> = {}\n for (const [k, v] of Object.entries(value as Record<string, unknown>)) {\n if (SECRET_KEY_PATTERN.test(k)) {\n out[k] = \"[REDACTED]\"\n } else {\n out[k] = redactSecrets(v)\n }\n }\n return out\n }\n return value\n}\n\n/**\n * Token bucket throttler. Per-package: 100 logs/min sustained with a 500\n * burst. Excess lines are dropped; the first drop in each refill window\n * emits a `[throttled N]` synthetic line so the dev knows messages\n * were lost.\n */\nexport interface ThrottleOptions {\n /** Tokens added per second. Default 100/60 = ~1.67. */\n tokensPerSecond?: number\n /** Bucket capacity. Default 500. */\n bucketCapacity?: number\n /** Clock override for tests. */\n now?: () => number\n}\n\ninterface PackageBucket {\n tokens: number\n lastRefillAtMs: number\n /** Drops accumulated since the last `[throttled N]` synthetic line. */\n pendingDrops: number\n}\n\nexport class MentraJSLogThrottle {\n private readonly tokensPerSecond: number\n private readonly bucketCapacity: number\n private readonly now: () => number\n private readonly buckets: Map<string, PackageBucket> = new Map()\n\n constructor(opts: ThrottleOptions = {}) {\n this.tokensPerSecond = opts.tokensPerSecond ?? 100 / 60\n this.bucketCapacity = opts.bucketCapacity ?? 500\n this.now = opts.now ?? (() => Date.now())\n }\n\n /**\n * Try to consume one token for the named package. Returns either:\n * - `{allowed: true}` — caller emits the original log line.\n * - `{allowed: false, throttledLine}` — caller may emit the\n * synthetic throttled line (the first drop in each window).\n * If `throttledLine` is undefined the caller drops silently\n * (subsequent drops in the same window).\n */\n consume(packageName: string): {allowed: true} | {allowed: false; throttledLine?: string} {\n const at = this.now()\n let bucket = this.buckets.get(packageName)\n if (!bucket) {\n bucket = {\n tokens: this.bucketCapacity,\n lastRefillAtMs: at,\n pendingDrops: 0,\n }\n this.buckets.set(packageName, bucket)\n } else {\n const elapsedSec = (at - bucket.lastRefillAtMs) / 1000\n bucket.tokens = Math.min(this.bucketCapacity, bucket.tokens + elapsedSec * this.tokensPerSecond)\n bucket.lastRefillAtMs = at\n }\n if (bucket.tokens >= 1) {\n bucket.tokens -= 1\n if (bucket.pendingDrops > 0) {\n const dropped = bucket.pendingDrops\n bucket.pendingDrops = 0\n return {allowed: false, throttledLine: `[throttled ${dropped}]`}\n }\n return {allowed: true}\n }\n bucket.pendingDrops += 1\n return {allowed: false}\n }\n\n /** Test/dev — reset all buckets. */\n resetForTests(): void {\n this.buckets.clear()\n }\n}\n\n/**\n * In-memory ring buffer holding the last N lines per package. Useful as a\n * \"last words\" context attached to crash reports.\n */\nexport class MentraJSLogRingBuffer {\n private readonly capacity: number\n private readonly buffers: Map<string, string[]> = new Map()\n\n constructor(capacityPerPackage = 200) {\n this.capacity = capacityPerPackage\n }\n\n push(packageName: string, line: string): void {\n let buf = this.buffers.get(packageName)\n if (!buf) {\n buf = []\n this.buffers.set(packageName, buf)\n }\n buf.push(line)\n if (buf.length > this.capacity) buf.shift()\n }\n\n snapshot(packageName: string): string[] {\n return [...(this.buffers.get(packageName) ?? [])]\n }\n\n clear(packageName: string): void {\n this.buffers.delete(packageName)\n }\n}\n"]}
|
|
@@ -0,0 +1,203 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @fileoverview MentraJSRouter — RN-side host that bridges the per-miniapp
|
|
3
|
+
* JS contexts (iOS-JSC and Android-QuickJS via Zipline) into the existing
|
|
4
|
+
* {@link LocalMiniappRuntime} handler set.
|
|
5
|
+
*
|
|
6
|
+
* Rather than re-implement the 33 dispatch arms inline, the router
|
|
7
|
+
* consumes Crust's `mentrajs_message` Expo event and forwards its
|
|
8
|
+
* `__bridge.send(raw)` payloads to {@link LocalMiniappRuntime.handleRawMessage}.
|
|
9
|
+
* The SDK envelope shape (`{type: "DISPLAY", ...}` etc.) is unchanged from
|
|
10
|
+
* the WebView path, so every existing handler runs verbatim. What changes
|
|
11
|
+
* is the *transport*:
|
|
12
|
+
*
|
|
13
|
+
* - **Inbound** (background JS → host): `__dispatch("__bridge", "send",
|
|
14
|
+
* [rawJsonString])` → `mentrajs_message` event → router →
|
|
15
|
+
* `LocalMiniappRuntime.handleRawMessage(packageName, raw)`.
|
|
16
|
+
* - **Outbound** (host → background JS): every package registered with
|
|
17
|
+
* the router gets a `sendMessage(raw)` fn that calls
|
|
18
|
+
* `Crust.mentraJsDispatchToJs(packageName, {kind: "bridge", raw})`.
|
|
19
|
+
* The polyfill's `__deliver` recognises `kind === "bridge"` and calls
|
|
20
|
+
* `__mentraDeliverBridgeRaw(raw)`, which routes into the SDK's
|
|
21
|
+
* {@link DispatchTransport.onMessage} handler.
|
|
22
|
+
*
|
|
23
|
+
* Host-side handler bodies (display fan-out, mic state, transcription,
|
|
24
|
+
* navigation, etc.) live untouched in `LocalMiniappRuntime.ts`.
|
|
25
|
+
*
|
|
26
|
+
* Cloud-message routing (`phone_stream_status`, `phone_managed_stream_status`)
|
|
27
|
+
* goes straight through `LocalMiniappRuntime.handleCloudMessage` — nothing
|
|
28
|
+
* for the router to do; the responses arrive inside an envelope whose
|
|
29
|
+
* `sendMessage` was already registered via the same path here.
|
|
30
|
+
*
|
|
31
|
+
* The router also bridges native error / log / unhandled-rejection
|
|
32
|
+
* events (`iface: "__log"`, `iface: "__error"`) into the standard
|
|
33
|
+
* `console.*` + Sentry breadcrumb pipeline so miniapp telemetry is
|
|
34
|
+
* visible without bringing up a separate sink.
|
|
35
|
+
*/
|
|
36
|
+
import type { EventSubscription } from "expo-modules-core";
|
|
37
|
+
import type localMiniappRuntime from "./LocalMiniappRuntime";
|
|
38
|
+
import type { InstalledMiniappManifest } from "./LocalMiniappRuntime";
|
|
39
|
+
import type { MentraJSCrashController } from "./MentraJSCrashController";
|
|
40
|
+
import { MentraJSLogRingBuffer, MentraJSLogThrottle } from "./MentraJSLogPipeline";
|
|
41
|
+
import type { MentraUIRouter } from "./MentraUIRouter";
|
|
42
|
+
/** The runtime's runtime instance type — the singleton exported from
|
|
43
|
+
* LocalMiniappRuntime.ts (the file's `export default` is the instance,
|
|
44
|
+
* not the class).
|
|
45
|
+
*/
|
|
46
|
+
type LocalMiniappRuntime = typeof localMiniappRuntime;
|
|
47
|
+
/**
|
|
48
|
+
* Minimal subset of the Crust native module the router uses. Keeping the
|
|
49
|
+
* binding loose lets us mock the module in unit tests without bringing
|
|
50
|
+
* the whole Expo module surface along.
|
|
51
|
+
*/
|
|
52
|
+
export interface MentraJSCrustBinding {
|
|
53
|
+
mentraJsDispatchToJs(packageName: string, envelope: Record<string, unknown>): Promise<void> | void;
|
|
54
|
+
mentraJsSetManifest(packageName: string, permissions: string[]): Promise<void> | void;
|
|
55
|
+
mentraJsLoadPolyfillBundle?: () => string;
|
|
56
|
+
mentraJsSpawn?: (packageName: string, polyfill: string, miniappJs: string) => Promise<boolean> | boolean;
|
|
57
|
+
mentraJsKill?: (packageName: string) => Promise<void> | void;
|
|
58
|
+
mentraJsAlivePackages?: () => string[];
|
|
59
|
+
addListener: (event: string, handler: (payload: Record<string, unknown>) => void) => EventSubscription;
|
|
60
|
+
}
|
|
61
|
+
export interface OutboundMessagePayload {
|
|
62
|
+
packageName: string;
|
|
63
|
+
iface: string;
|
|
64
|
+
method: string;
|
|
65
|
+
argsJson?: string;
|
|
66
|
+
args?: unknown[];
|
|
67
|
+
reqId?: string;
|
|
68
|
+
[extra: string]: unknown;
|
|
69
|
+
}
|
|
70
|
+
export type RouterLogger = {
|
|
71
|
+
log: (message: string, payload?: unknown) => void;
|
|
72
|
+
warn: (message: string, payload?: unknown) => void;
|
|
73
|
+
error: (message: string, payload?: unknown) => void;
|
|
74
|
+
};
|
|
75
|
+
export declare class MentraJSRouter {
|
|
76
|
+
private readonly runtime;
|
|
77
|
+
private readonly crust;
|
|
78
|
+
private readonly logger;
|
|
79
|
+
private subscription;
|
|
80
|
+
private readonly registered;
|
|
81
|
+
/** Cached spawn arguments so the crash controller can respawn after a backoff. */
|
|
82
|
+
private readonly spawnCache;
|
|
83
|
+
/** Active respawn timers (so unregister() can cancel a pending respawn). */
|
|
84
|
+
private readonly respawnTimers;
|
|
85
|
+
/**
|
|
86
|
+
* Optional crash controller. When wired, every `__error` frame from a
|
|
87
|
+
* JSContext drives the state machine; an Outcome with
|
|
88
|
+
* scheduleRespawnAfterMs queues a setTimeout that re-spawns the
|
|
89
|
+
* miniapp's last-known JS source after the backoff delay.
|
|
90
|
+
*/
|
|
91
|
+
crashController: MentraJSCrashController | null;
|
|
92
|
+
/** Hook called when a package transitions to CRASHLOOP_DISABLED. */
|
|
93
|
+
onCrashloop: ((packageName: string, reason: string) => void) | null;
|
|
94
|
+
/** Hook called on the 2nd-within-window crash (toast UX). */
|
|
95
|
+
onRestartToast: ((packageName: string, reason: string) => void) | null;
|
|
96
|
+
/**
|
|
97
|
+
* Logging plumbing. Every `__log` frame passes through `redactSecrets`
|
|
98
|
+
* (token/password/etc. scrubbed), then the throttle (100/min sustained
|
|
99
|
+
* per pkg, 500 burst), then lands in the ring buffer + the host
|
|
100
|
+
* logger. The ring buffer holds the last 200 lines/pkg so a crash
|
|
101
|
+
* report can attach "last words" context.
|
|
102
|
+
*
|
|
103
|
+
* Replace with new instances in tests; production code uses the
|
|
104
|
+
* defaults.
|
|
105
|
+
*/
|
|
106
|
+
logThrottle: MentraJSLogThrottle;
|
|
107
|
+
logRing: MentraJSLogRingBuffer;
|
|
108
|
+
/**
|
|
109
|
+
* Optional UI router — when wired, `__bridge.send` envelopes whose
|
|
110
|
+
* inner payload type is `UI_SEND` get routed to the bound WebView
|
|
111
|
+
* instead of through LocalMiniappRuntime. Two-layer miniapps set
|
|
112
|
+
* this; legacy single-bundle WebView miniapps don't and the bridge
|
|
113
|
+
* frames pass through unchanged.
|
|
114
|
+
*/
|
|
115
|
+
uiRouter: MentraUIRouter | null;
|
|
116
|
+
constructor(runtime: LocalMiniappRuntime, crust: MentraJSCrustBinding, logger?: RouterLogger);
|
|
117
|
+
/**
|
|
118
|
+
* Subscribe to Crust's `mentrajs_message` event. Idempotent — calling
|
|
119
|
+
* start() twice attaches a single listener.
|
|
120
|
+
*/
|
|
121
|
+
start(): void;
|
|
122
|
+
/**
|
|
123
|
+
* Detach the Crust subscription. The router can be restarted later
|
|
124
|
+
* with start(); registrations survive (the runtime's app map is the
|
|
125
|
+
* source of truth).
|
|
126
|
+
*/
|
|
127
|
+
stop(): void;
|
|
128
|
+
/**
|
|
129
|
+
* Register a JSContext with the runtime so its handlers can fire
|
|
130
|
+
* `sendMessage(raw)` against the right context. The router builds a
|
|
131
|
+
* `sendMessage` that calls `Crust.mentraJsDispatchToJs(packageName,
|
|
132
|
+
* {kind: "bridge", raw})`; the polyfill's `__deliver` then hands the
|
|
133
|
+
* envelope to `DispatchTransport.onMessage` inside the miniapp.
|
|
134
|
+
*
|
|
135
|
+
* Mirrors `MiniappHost.registerRuntime` on the WebView side. Callers
|
|
136
|
+
* (e.g. {@link spawnAndRegister} below, or the host's miniapp launch
|
|
137
|
+
* pipeline) should call this once per spawn.
|
|
138
|
+
*/
|
|
139
|
+
registerApp(packageName: string, installedManifest?: InstalledMiniappManifest): void;
|
|
140
|
+
/**
|
|
141
|
+
* Convenience: spawn a JSContext via Crust, register the app, and
|
|
142
|
+
* set its declared permissions. Returns true on successful spawn.
|
|
143
|
+
*
|
|
144
|
+
* The host's miniapp launch path
|
|
145
|
+
* (`mobile/src/services/miniapps/launchLocalMiniapp.ts`) calls this
|
|
146
|
+
* once per JSContext mount.
|
|
147
|
+
*/
|
|
148
|
+
spawnAndRegister(packageName: string, miniappJs: string, options?: {
|
|
149
|
+
permissions?: string[];
|
|
150
|
+
installedManifest?: InstalledMiniappManifest;
|
|
151
|
+
}): Promise<boolean>;
|
|
152
|
+
/**
|
|
153
|
+
* Crash-controller integration. Called from the `__error` frame
|
|
154
|
+
* handler. The controller returns an outcome that tells us whether
|
|
155
|
+
* to respawn (with delay) or leave the context dead.
|
|
156
|
+
*/
|
|
157
|
+
private handleCrash;
|
|
158
|
+
private summarizeReason;
|
|
159
|
+
/**
|
|
160
|
+
* Tear down a JSContext and unregister from the runtime. Synchronous
|
|
161
|
+
* teardown — the spec drops the 50ms WILL_DISCONNECT grace window
|
|
162
|
+
* because there's no transport handshake to flush in the JSC world.
|
|
163
|
+
*/
|
|
164
|
+
unregister(packageName: string): Promise<void>;
|
|
165
|
+
/** List packages the router has registered. */
|
|
166
|
+
registeredPackages(): string[];
|
|
167
|
+
/**
|
|
168
|
+
* Validate that a reused background JSContext is still responsive when its
|
|
169
|
+
* WebView comes foreground. The runtime owns the ping/timeout mechanics; the
|
|
170
|
+
* router gates this to registered packages and keeps LocalMiniappView from
|
|
171
|
+
* reaching into runtime internals.
|
|
172
|
+
*/
|
|
173
|
+
probeForegroundLiveness(packageName: string, reason?: string): void;
|
|
174
|
+
private handleOutbound;
|
|
175
|
+
/**
|
|
176
|
+
* The wire format for `__bridge.send` is `argsJson = JSON.stringify([raw])`
|
|
177
|
+
* — a single-element array containing the original raw envelope. The
|
|
178
|
+
* dispatcher passes the parsed array through as either:
|
|
179
|
+
* - `msg.args` when the dispatcher unpacked (Android path that turns
|
|
180
|
+
* `argsJson` into a List on the way to RN), or
|
|
181
|
+
* - `msg.argsJson` (iOS path that ships the string verbatim).
|
|
182
|
+
* Cover both shapes here.
|
|
183
|
+
*/
|
|
184
|
+
/**
|
|
185
|
+
* Parse a raw bridge envelope just enough to peek at the inner
|
|
186
|
+
* payload's `type` field. Used by the UI_SEND interception path.
|
|
187
|
+
* Returns null if the envelope isn't a valid bridge frame.
|
|
188
|
+
*/
|
|
189
|
+
private peekBridgePayloadType;
|
|
190
|
+
private coerceArgsToBridgeRaw;
|
|
191
|
+
private tryParseArgs;
|
|
192
|
+
/**
|
|
193
|
+
* Push a `kind="bridge"` envelope into the named JSContext's
|
|
194
|
+
* `globalThis.__deliver`. Used both by the per-app `sendMessage`
|
|
195
|
+
* registered via {@link registerApp} and by ad-hoc callers (e.g.
|
|
196
|
+
* cloud-relayed stream-status responses route through
|
|
197
|
+
* `LocalMiniappRuntime.handleCloudMessage`, which then calls the
|
|
198
|
+
* `app.sendMessage(serialized)` registered above).
|
|
199
|
+
*/
|
|
200
|
+
private dispatchBridgeRaw;
|
|
201
|
+
}
|
|
202
|
+
export {};
|
|
203
|
+
//# sourceMappingURL=MentraJSRouter.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MentraJSRouter.d.ts","sourceRoot":"","sources":["../../src/services/MentraJSRouter.ts"],"names":[],"mappings":"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"}
|