@glassly/engine 0.1.0-dev.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 +96 -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 +336 -0
- package/build/engine.d.ts.map +1 -0
- package/build/engine.js +198 -0
- package/build/engine.js.map +1 -0
- package/build/facades/dev.d.ts +69 -0
- package/build/facades/dev.d.ts.map +1 -0
- package/build/facades/dev.js +204 -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 +142 -0
- package/build/facades/glasses.d.ts.map +1 -0
- package/build/facades/glasses.js +214 -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 +55 -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/maps.d.ts +18 -0
- package/build/facades/maps.d.ts.map +1 -0
- package/build/facades/maps.js +13 -0
- package/build/facades/maps.js.map +1 -0
- package/build/facades/memory.d.ts +38 -0
- package/build/facades/memory.d.ts.map +1 -0
- package/build/facades/memory.js +33 -0
- package/build/facades/memory.js.map +1 -0
- package/build/facades/miniapps.d.ts +47 -0
- package/build/facades/miniapps.d.ts.map +1 -0
- package/build/facades/miniapps.js +54 -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 +106 -0
- package/build/facades/ota.d.ts.map +1 -0
- package/build/facades/ota.js +159 -0
- package/build/facades/ota.js.map +1 -0
- package/build/facades/pairing.d.ts +115 -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 +17 -0
- package/build/facades/phoneNotifications.d.ts.map +1 -0
- package/build/facades/phoneNotifications.js +41 -0
- package/build/facades/phoneNotifications.js.map +1 -0
- package/build/facades/providerKeys.d.ts +26 -0
- package/build/facades/providerKeys.d.ts.map +1 -0
- package/build/facades/providerKeys.js +26 -0
- package/build/facades/providerKeys.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/speakers.d.ts +41 -0
- package/build/facades/speakers.d.ts.map +1 -0
- package/build/facades/speakers.js +139 -0
- package/build/facades/speakers.js.map +1 -0
- package/build/facades/speech.d.ts +44 -0
- package/build/facades/speech.d.ts.map +1 -0
- package/build/facades/speech.js +46 -0
- package/build/facades/speech.js.map +1 -0
- package/build/index.d.ts +48 -0
- package/build/index.d.ts.map +1 -0
- package/build/index.js +49 -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 +115 -0
- package/build/runtime/bootstrap.d.ts.map +1 -0
- package/build/runtime/bootstrap.js +73 -0
- package/build/runtime/bootstrap.js.map +1 -0
- package/build/runtime/config.d.ts +152 -0
- package/build/runtime/config.d.ts.map +1 -0
- package/build/runtime/config.js +19 -0
- package/build/runtime/config.js.map +1 -0
- package/build/runtime/scanQrSeam.d.ts +7 -0
- package/build/runtime/scanQrSeam.d.ts.map +1 -0
- package/build/runtime/scanQrSeam.js +16 -0
- package/build/runtime/scanQrSeam.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/AiTierResolution.d.ts +61 -0
- package/build/services/AiTierResolution.d.ts.map +1 -0
- package/build/services/AiTierResolution.js +83 -0
- package/build/services/AiTierResolution.js.map +1 -0
- package/build/services/AppRegistry.d.ts +303 -0
- package/build/services/AppRegistry.d.ts.map +1 -0
- package/build/services/AppRegistry.js +1108 -0
- package/build/services/AppRegistry.js.map +1 -0
- package/build/services/AudioCloudUplink.d.ts +15 -0
- package/build/services/AudioCloudUplink.d.ts.map +1 -0
- package/build/services/AudioCloudUplink.js +54 -0
- package/build/services/AudioCloudUplink.js.map +1 -0
- package/build/services/AudioPlaybackService.d.ts +183 -0
- package/build/services/AudioPlaybackService.d.ts.map +1 -0
- package/build/services/AudioPlaybackService.js +750 -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 +106 -0
- package/build/services/BlobStore.d.ts.map +1 -0
- package/build/services/BlobStore.js +741 -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 +51 -0
- package/build/services/CloudAudioSubscriptionSync.js.map +1 -0
- package/build/services/CloudClientService.d.ts +293 -0
- package/build/services/CloudClientService.d.ts.map +1 -0
- package/build/services/CloudClientService.js +965 -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 +296 -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 +214 -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/ForegroundLocationPermission.d.ts +13 -0
- package/build/services/ForegroundLocationPermission.d.ts.map +1 -0
- package/build/services/ForegroundLocationPermission.js +12 -0
- package/build/services/ForegroundLocationPermission.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 +127 -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 +33 -0
- package/build/services/HeadingService.d.ts.map +1 -0
- package/build/services/HeadingService.js +123 -0
- package/build/services/HeadingService.js.map +1 -0
- package/build/services/HotspotOtaTransport.d.ts +29 -0
- package/build/services/HotspotOtaTransport.d.ts.map +1 -0
- package/build/services/HotspotOtaTransport.js +146 -0
- package/build/services/HotspotOtaTransport.js.map +1 -0
- package/build/services/HotspotShutdown.d.ts +17 -0
- package/build/services/HotspotShutdown.d.ts.map +1 -0
- package/build/services/HotspotShutdown.js +29 -0
- package/build/services/HotspotShutdown.js.map +1 -0
- package/build/services/JSCrashController.d.ts +97 -0
- package/build/services/JSCrashController.d.ts.map +1 -0
- package/build/services/JSCrashController.js +138 -0
- package/build/services/JSCrashController.js.map +1 -0
- package/build/services/JSCrashloopReportService.d.ts +9 -0
- package/build/services/JSCrashloopReportService.d.ts.map +1 -0
- package/build/services/JSCrashloopReportService.js +54 -0
- package/build/services/JSCrashloopReportService.js.map +1 -0
- package/build/services/JSLogPipeline.d.ts +87 -0
- package/build/services/JSLogPipeline.d.ts.map +1 -0
- package/build/services/JSLogPipeline.js +137 -0
- package/build/services/JSLogPipeline.js.map +1 -0
- package/build/services/JSRouter.d.ts +203 -0
- package/build/services/JSRouter.d.ts.map +1 -0
- package/build/services/JSRouter.js +482 -0
- package/build/services/JSRouter.js.map +1 -0
- package/build/services/LocalDisplayManager.d.ts +162 -0
- package/build/services/LocalDisplayManager.d.ts.map +1 -0
- package/build/services/LocalDisplayManager.js +687 -0
- package/build/services/LocalDisplayManager.js.map +1 -0
- package/build/services/LocalMiniappDataMigration.d.ts +46 -0
- package/build/services/LocalMiniappDataMigration.d.ts.map +1 -0
- package/build/services/LocalMiniappDataMigration.js +78 -0
- package/build/services/LocalMiniappDataMigration.js.map +1 -0
- package/build/services/LocalMiniappRuntime.d.ts +677 -0
- package/build/services/LocalMiniappRuntime.d.ts.map +1 -0
- package/build/services/LocalMiniappRuntime.js +5068 -0
- package/build/services/LocalMiniappRuntime.js.map +1 -0
- package/build/services/LocalMiniappStorage.d.ts +32 -0
- package/build/services/LocalMiniappStorage.d.ts.map +1 -0
- package/build/services/LocalMiniappStorage.js +66 -0
- package/build/services/LocalMiniappStorage.js.map +1 -0
- package/build/services/LocalMiniappUserIdentity.d.ts +41 -0
- package/build/services/LocalMiniappUserIdentity.d.ts.map +1 -0
- package/build/services/LocalMiniappUserIdentity.js +73 -0
- package/build/services/LocalMiniappUserIdentity.js.map +1 -0
- package/build/services/LocalSttFallbackCoordinator.d.ts +101 -0
- package/build/services/LocalSttFallbackCoordinator.d.ts.map +1 -0
- package/build/services/LocalSttFallbackCoordinator.js +210 -0
- package/build/services/LocalSttFallbackCoordinator.js.map +1 -0
- package/build/services/MapboxTokenService.d.ts +33 -0
- package/build/services/MapboxTokenService.d.ts.map +1 -0
- package/build/services/MapboxTokenService.js +115 -0
- package/build/services/MapboxTokenService.js.map +1 -0
- package/build/services/MemoryCapture.d.ts +40 -0
- package/build/services/MemoryCapture.d.ts.map +1 -0
- package/build/services/MemoryCapture.js +42 -0
- package/build/services/MemoryCapture.js.map +1 -0
- package/build/services/MemoryStore.d.ts +184 -0
- package/build/services/MemoryStore.d.ts.map +1 -0
- package/build/services/MemoryStore.js +541 -0
- package/build/services/MemoryStore.js.map +1 -0
- package/build/services/MicStateCoordinator.d.ts +78 -0
- package/build/services/MicStateCoordinator.d.ts.map +1 -0
- package/build/services/MicStateCoordinator.js +219 -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 +127 -0
- package/build/services/MiniappLauncher.d.ts.map +1 -0
- package/build/services/MiniappLauncher.js +309 -0
- package/build/services/MiniappLauncher.js.map +1 -0
- package/build/services/MiniappLiveness.d.ts +12 -0
- package/build/services/MiniappLiveness.d.ts.map +1 -0
- package/build/services/MiniappLiveness.js +16 -0
- package/build/services/MiniappLiveness.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/NativeNavigationService.d.ts +51 -0
- package/build/services/NativeNavigationService.d.ts.map +1 -0
- package/build/services/NativeNavigationService.js +154 -0
- package/build/services/NativeNavigationService.js.map +1 -0
- package/build/services/NavigationHandlers.d.ts +107 -0
- package/build/services/NavigationHandlers.d.ts.map +1 -0
- package/build/services/NavigationHandlers.js +479 -0
- package/build/services/NavigationHandlers.js.map +1 -0
- package/build/services/NavigationService.d.ts +283 -0
- package/build/services/NavigationService.d.ts.map +1 -0
- package/build/services/NavigationService.js +696 -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/OtaArtifactDownloader.d.ts +65 -0
- package/build/services/OtaArtifactDownloader.d.ts.map +1 -0
- package/build/services/OtaArtifactDownloader.js +226 -0
- package/build/services/OtaArtifactDownloader.js.map +1 -0
- package/build/services/OtaInstallCoordinator.d.ts +275 -0
- package/build/services/OtaInstallCoordinator.d.ts.map +1 -0
- package/build/services/OtaInstallCoordinator.js +1491 -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 +72 -0
- package/build/services/OtaService.js.map +1 -0
- package/build/services/OtaUpdateCheckService.d.ts +100 -0
- package/build/services/OtaUpdateCheckService.d.ts.map +1 -0
- package/build/services/OtaUpdateCheckService.js +380 -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 +45 -0
- package/build/services/PhoneCalendarService.js.map +1 -0
- package/build/services/PhoneCameraFovCoordinator.d.ts +30 -0
- package/build/services/PhoneCameraFovCoordinator.d.ts.map +1 -0
- package/build/services/PhoneCameraFovCoordinator.js +194 -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 +37 -0
- package/build/services/PhoneNotificationsSync.js.map +1 -0
- package/build/services/PhonePhotoCoordinator.d.ts +110 -0
- package/build/services/PhonePhotoCoordinator.d.ts.map +1 -0
- package/build/services/PhonePhotoCoordinator.js +344 -0
- package/build/services/PhonePhotoCoordinator.js.map +1 -0
- package/build/services/PhoneStreamCoordinator.d.ts +175 -0
- package/build/services/PhoneStreamCoordinator.d.ts.map +1 -0
- package/build/services/PhoneStreamCoordinator.js +740 -0
- package/build/services/PhoneStreamCoordinator.js.map +1 -0
- package/build/services/PhoneVideoCoordinator.d.ts +52 -0
- package/build/services/PhoneVideoCoordinator.d.ts.map +1 -0
- package/build/services/PhoneVideoCoordinator.js +157 -0
- package/build/services/PhoneVideoCoordinator.js.map +1 -0
- package/build/services/ProviderKeyValidation.d.ts +27 -0
- package/build/services/ProviderKeyValidation.d.ts.map +1 -0
- package/build/services/ProviderKeyValidation.js +42 -0
- package/build/services/ProviderKeyValidation.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 +366 -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 +274 -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/SpeakerIdModelManager.d.ts +36 -0
- package/build/services/SpeakerIdModelManager.d.ts.map +1 -0
- package/build/services/SpeakerIdModelManager.js +132 -0
- package/build/services/SpeakerIdModelManager.js.map +1 -0
- package/build/services/SpeakerIdSync.d.ts +14 -0
- package/build/services/SpeakerIdSync.d.ts.map +1 -0
- package/build/services/SpeakerIdSync.js +62 -0
- package/build/services/SpeakerIdSync.js.map +1 -0
- package/build/services/SpeakerLabelResolver.d.ts +80 -0
- package/build/services/SpeakerLabelResolver.d.ts.map +1 -0
- package/build/services/SpeakerLabelResolver.js +108 -0
- package/build/services/SpeakerLabelResolver.js.map +1 -0
- package/build/services/SpeakerProfileStore.d.ts +90 -0
- package/build/services/SpeakerProfileStore.d.ts.map +1 -0
- package/build/services/SpeakerProfileStore.js +213 -0
- package/build/services/SpeakerProfileStore.js.map +1 -0
- package/build/services/SpeakerSegmentResolver.d.ts +87 -0
- package/build/services/SpeakerSegmentResolver.d.ts.map +1 -0
- package/build/services/SpeakerSegmentResolver.js +137 -0
- package/build/services/SpeakerSegmentResolver.js.map +1 -0
- package/build/services/StreamLifecycleController.d.ts +63 -0
- package/build/services/StreamLifecycleController.d.ts.map +1 -0
- package/build/services/StreamLifecycleController.js +148 -0
- package/build/services/StreamLifecycleController.js.map +1 -0
- package/build/services/SupportProfileSync.d.ts +22 -0
- package/build/services/SupportProfileSync.d.ts.map +1 -0
- package/build/services/SupportProfileSync.js +213 -0
- package/build/services/SupportProfileSync.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 +22 -0
- package/build/services/TranscriptionRouting.d.ts.map +1 -0
- package/build/services/TranscriptionRouting.js +34 -0
- package/build/services/TranscriptionRouting.js.map +1 -0
- package/build/services/TtsTextSanitizer.d.ts +5 -0
- package/build/services/TtsTextSanitizer.d.ts.map +1 -0
- package/build/services/TtsTextSanitizer.js +61 -0
- package/build/services/TtsTextSanitizer.js.map +1 -0
- package/build/services/UIRouter.d.ts +137 -0
- package/build/services/UIRouter.d.ts.map +1 -0
- package/build/services/UIRouter.js +210 -0
- package/build/services/UIRouter.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/WifiAdbRequest.d.ts +17 -0
- package/build/services/WifiAdbRequest.d.ts.map +1 -0
- package/build/services/WifiAdbRequest.js +35 -0
- package/build/services/WifiAdbRequest.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 +208 -0
- package/build/services/asg/asgCameraApi.d.ts.map +1 -0
- package/build/services/asg/asgCameraApi.js +1480 -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 +1945 -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/audioPlaybackAssets.d.ts +8 -0
- package/build/services/audioPlaybackAssets.d.ts.map +1 -0
- package/build/services/audioPlaybackAssets.js +7 -0
- package/build/services/audioPlaybackAssets.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/effectiveCapabilities.d.ts +8 -0
- package/build/services/effectiveCapabilities.d.ts.map +1 -0
- package/build/services/effectiveCapabilities.js +23 -0
- package/build/services/effectiveCapabilities.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/manifestActions.d.ts +31 -0
- package/build/services/manifestActions.d.ts.map +1 -0
- package/build/services/manifestActions.js +54 -0
- package/build/services/manifestActions.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/memoryStoreInstance.d.ts +19 -0
- package/build/services/memoryStoreInstance.d.ts.map +1 -0
- package/build/services/memoryStoreInstance.js +65 -0
- package/build/services/memoryStoreInstance.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 +87 -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 +53 -0
- package/build/services/otaDisplayState.d.ts.map +1 -0
- package/build/services/otaDisplayState.js +114 -0
- package/build/services/otaDisplayState.js.map +1 -0
- package/build/services/otaInstallPolicy.d.ts +93 -0
- package/build/services/otaInstallPolicy.d.ts.map +1 -0
- package/build/services/otaInstallPolicy.js +117 -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/otaManifestUrl.d.ts +2 -0
- package/build/services/otaManifestUrl.d.ts.map +1 -0
- package/build/services/otaManifestUrl.js +46 -0
- package/build/services/otaManifestUrl.js.map +1 -0
- package/build/services/slimStreamStatus.d.ts +18 -0
- package/build/services/slimStreamStatus.d.ts.map +1 -0
- package/build/services/slimStreamStatus.js +36 -0
- package/build/services/slimStreamStatus.js.map +1 -0
- package/build/services/soniox/SonioxDirectService.d.ts +109 -0
- package/build/services/soniox/SonioxDirectService.d.ts.map +1 -0
- package/build/services/soniox/SonioxDirectService.js +449 -0
- package/build/services/soniox/SonioxDirectService.js.map +1 -0
- package/build/services/soniox/SonioxRealtimeClient.d.ts +121 -0
- package/build/services/soniox/SonioxRealtimeClient.d.ts.map +1 -0
- package/build/services/soniox/SonioxRealtimeClient.js +301 -0
- package/build/services/soniox/SonioxRealtimeClient.js.map +1 -0
- package/build/services/soniox/SonioxTokenAssembler.d.ts +98 -0
- package/build/services/soniox/SonioxTokenAssembler.d.ts.map +1 -0
- package/build/services/soniox/SonioxTokenAssembler.js +394 -0
- package/build/services/soniox/SonioxTokenAssembler.js.map +1 -0
- package/build/services/speakerProfileStoreInstance.d.ts +8 -0
- package/build/services/speakerProfileStoreInstance.d.ts.map +1 -0
- package/build/services/speakerProfileStoreInstance.js +24 -0
- package/build/services/speakerProfileStoreInstance.js.map +1 -0
- package/build/services/uiShim.d.ts +38 -0
- package/build/services/uiShim.d.ts.map +1 -0
- package/build/services/uiShim.js +369 -0
- package/build/services/uiShim.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 +503 -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 +33 -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 +103 -0
- package/build/stores/gallerySync.d.ts.map +1 -0
- package/build/stores/gallerySync.js +219 -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 +208 -0
- package/build/stores/glasses.js.map +1 -0
- package/build/stores/settings.d.ts +54 -0
- package/build/stores/settings.d.ts.map +1 -0
- package/build/stores/settings.js +1200 -0
- package/build/stores/settings.js.map +1 -0
- package/build/stores/transcriptionDebug.d.ts +25 -0
- package/build/stores/transcriptionDebug.d.ts.map +1 -0
- package/build/stores/transcriptionDebug.js +0 -0
- package/build/stores/transcriptionDebug.js.map +1 -0
- package/build/types/applet.d.ts +101 -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 +57 -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 +83 -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 +65 -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 +94 -0
- package/build/types/capabilities/mentra-live.js.map +1 -0
- package/build/types/capabilities/nimo.d.ts +13 -0
- package/build/types/capabilities/nimo.d.ts.map +1 -0
- package/build/types/capabilities/nimo.js +72 -0
- package/build/types/capabilities/nimo.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 +67 -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 +82 -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 +54 -0
- package/build/types/capabilities/vuzix-z100.js.map +1 -0
- package/build/types/enums.d.ts +22 -0
- package/build/types/enums.d.ts.map +1 -0
- package/build/types/enums.js +27 -0
- package/build/types/enums.js.map +1 -0
- package/build/types/hardware.d.ts +155 -0
- package/build/types/hardware.d.ts.map +1 -0
- package/build/types/hardware.js +52 -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 +11 -0
- package/build/utils/GlobalEventEmitter.d.ts.map +1 -0
- package/build/utils/GlobalEventEmitter.js +14 -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/configuredDevHost.d.ts +6 -0
- package/build/utils/configuredDevHost.d.ts.map +1 -0
- package/build/utils/configuredDevHost.js +19 -0
- package/build/utils/configuredDevHost.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 +55 -0
- package/build/utils/devMiniappLaunch.d.ts.map +1 -0
- package/build/utils/devMiniappLaunch.js +175 -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 +122 -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 +188 -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/anchor.d.ts +17 -0
- package/build/utils/display/scene/anchor.d.ts.map +1 -0
- package/build/utils/display/scene/anchor.js +33 -0
- package/build/utils/display/scene/anchor.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 +11 -0
- package/build/utils/display/scene/index.d.ts.map +1 -0
- package/build/utils/display/scene/index.js +7 -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 +201 -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 +139 -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 +131 -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/memory/search.d.ts +72 -0
- package/build/utils/memory/search.d.ts.map +1 -0
- package/build/utils/memory/search.js +178 -0
- package/build/utils/memory/search.js.map +1 -0
- package/build/utils/miniappDiagnostics.d.ts +64 -0
- package/build/utils/miniappDiagnostics.d.ts.map +1 -0
- package/build/utils/miniappDiagnostics.js +173 -0
- package/build/utils/miniappDiagnostics.js.map +1 -0
- package/build/utils/miniappGlobals.d.ts +59 -0
- package/build/utils/miniappGlobals.d.ts.map +1 -0
- package/build/utils/miniappGlobals.js +223 -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/speakerEmbedding.d.ts +8 -0
- package/build/utils/speakerEmbedding.d.ts.map +1 -0
- package/build/utils/speakerEmbedding.js +63 -0
- package/build/utils/speakerEmbedding.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 +142 -0
- package/build/utils/timers/timers.js.map +1 -0
- package/package.json +122 -0
- package/src/assets/silence.wav +0 -0
- package/src/devtools.ts +13 -0
- package/src/engine.ts +198 -0
- package/src/facades/dev.ts +213 -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 +219 -0
- package/src/facades/glassesSettings.ts +57 -0
- package/src/facades/glassesWifi.ts +68 -0
- package/src/facades/maps.ts +13 -0
- package/src/facades/memory.ts +46 -0
- package/src/facades/miniapps.ts +62 -0
- package/src/facades/notifications.ts +14 -0
- package/src/facades/ota.ts +177 -0
- package/src/facades/pairing.ts +329 -0
- package/src/facades/permissions.ts +165 -0
- package/src/facades/phoneNotifications.ts +41 -0
- package/src/facades/providerKeys.ts +31 -0
- package/src/facades/reports.ts +180 -0
- package/src/facades/session.ts +54 -0
- package/src/facades/settings.ts +57 -0
- package/src/facades/speakers.ts +152 -0
- package/src/facades/speech.ts +49 -0
- package/src/index.ts +214 -0
- package/src/internal.ts +155 -0
- package/src/runtime/bootstrap.ts +159 -0
- package/src/runtime/config.ts +155 -0
- package/src/runtime/scanQrSeam.ts +20 -0
- package/src/runtime/streamConfig.ts +34 -0
- package/src/services/AiTierResolution.ts +106 -0
- package/src/services/AppRegistry.ts +1245 -0
- package/src/services/AudioCloudUplink.ts +56 -0
- package/src/services/AudioPlaybackService.ts +873 -0
- package/src/services/AutomaticReportResult.ts +50 -0
- package/src/services/BlobStore.ts +823 -0
- package/src/services/CaptionsTesterReportService.ts +107 -0
- package/src/services/CloudAudioSubscriptionSync.ts +53 -0
- package/src/services/CloudClientService.ts +1031 -0
- package/src/services/CloudTranscriptE2EMetrics.ts +27 -0
- package/src/services/ConnectionCoordinator.ts +65 -0
- package/src/services/DevServerBridge.ts +334 -0
- package/src/services/DeviceEventRouter.ts +266 -0
- package/src/services/DeviceStoreHydration.ts +130 -0
- package/src/services/DisplayProcessor.ts +775 -0
- package/src/services/ForegroundLocationPermission.ts +24 -0
- package/src/services/GlassesReadiness.ts +103 -0
- package/src/services/GlassesSettingsSync.ts +140 -0
- package/src/services/GlassesStatusProjection.ts +73 -0
- package/src/services/HeadingService.ts +122 -0
- package/src/services/HotspotOtaTransport.ts +184 -0
- package/src/services/HotspotShutdown.ts +41 -0
- package/src/services/JSCrashController.ts +189 -0
- package/src/services/JSCrashloopReportService.ts +66 -0
- package/src/services/JSLogPipeline.ts +166 -0
- package/src/services/JSRouter.ts +555 -0
- package/src/services/LocalDisplayManager.ts +815 -0
- package/src/services/LocalMiniappDataMigration.ts +102 -0
- package/src/services/LocalMiniappRuntime.ts +5747 -0
- package/src/services/LocalMiniappStorage.ts +82 -0
- package/src/services/LocalMiniappUserIdentity.ts +79 -0
- package/src/services/LocalSttFallbackCoordinator.ts +247 -0
- package/src/services/MapboxTokenService.ts +118 -0
- package/src/services/MemoryCapture.ts +61 -0
- package/src/services/MemoryStore.ts +633 -0
- package/src/services/MicStateCoordinator.ts +259 -0
- package/src/services/MiniappEngine.ts +143 -0
- package/src/services/MiniappLauncher.ts +365 -0
- package/src/services/MiniappLiveness.ts +24 -0
- package/src/services/MiniappRunningRegistry.ts +57 -0
- package/src/services/NativeHttpResponse.ts +6 -0
- package/src/services/NativeNavigationService.ts +176 -0
- package/src/services/NavigationHandlers.ts +527 -0
- package/src/services/NavigationService.ts +926 -0
- package/src/services/NotificationsEmitter.ts +49 -0
- package/src/services/OfflineSpeechModelService.ts +168 -0
- package/src/services/OtaArtifactDownloader.ts +312 -0
- package/src/services/OtaInstallCoordinator.ts +1707 -0
- package/src/services/OtaService.ts +89 -0
- package/src/services/OtaUpdateCheckService.ts +550 -0
- package/src/services/PairingIdentity.ts +154 -0
- package/src/services/PhoneCalendarHelpers.ts +212 -0
- package/src/services/PhoneCalendarService.ts +61 -0
- package/src/services/PhoneCameraFovCoordinator.ts +210 -0
- package/src/services/PhoneLocationService.ts +120 -0
- package/src/services/PhoneNotificationsSync.ts +46 -0
- package/src/services/PhonePhotoCoordinator.ts +435 -0
- package/src/services/PhoneStreamCoordinator.ts +874 -0
- package/src/services/PhoneVideoCoordinator.ts +203 -0
- package/src/services/ProviderKeyValidation.ts +57 -0
- package/src/services/STTModelManager.ts +434 -0
- package/src/services/SceneRenderer.ts +320 -0
- package/src/services/SentenceTtsPipeline.ts +106 -0
- package/src/services/SpeakerIdModelManager.ts +151 -0
- package/src/services/SpeakerIdSync.ts +79 -0
- package/src/services/SpeakerLabelResolver.ts +140 -0
- package/src/services/SpeakerProfileStore.ts +265 -0
- package/src/services/SpeakerSegmentResolver.ts +194 -0
- package/src/services/StreamLifecycleController.ts +203 -0
- package/src/services/SupportProfileSync.ts +218 -0
- package/src/services/TTSModelManager.ts +466 -0
- package/src/services/TranscriptionRouting.ts +47 -0
- package/src/services/TtsTextSanitizer.ts +66 -0
- package/src/services/UIRouter.ts +250 -0
- package/src/services/WebviewBridge.ts +50 -0
- package/src/services/WifiAdbRequest.ts +53 -0
- package/src/services/asg/GalleryMediaIntegrityReportService.ts +72 -0
- package/src/services/asg/asgCameraApi.ts +1786 -0
- package/src/services/asg/cameraRollExportCoordinator.ts +627 -0
- package/src/services/asg/cameraRollExportLedger.ts +122 -0
- package/src/services/asg/galleryMediaValidation.ts +185 -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 +235 -0
- package/src/services/asg/gallerySyncService.ts +2278 -0
- package/src/services/asg/galleryTransferLedger.ts +312 -0
- package/src/services/asg/localNetworkTransport.ts +169 -0
- package/src/services/asg/localStorageService.ts +652 -0
- package/src/services/asg/mediaProcessingQueue.ts +518 -0
- package/src/services/audioPlaybackAssets.ts +8 -0
- package/src/services/blobPaths.ts +86 -0
- package/src/services/cloudStreamApi.ts +142 -0
- package/src/services/effectiveCapabilities.ts +27 -0
- package/src/services/gallerySyncClock.ts +39 -0
- package/src/services/glassesClockSync.ts +115 -0
- package/src/services/manifestActions.ts +80 -0
- package/src/services/manifestVersionGate.ts +43 -0
- package/src/services/memoryStoreInstance.ts +70 -0
- package/src/services/navigation/roadNameResolver.ts +103 -0
- package/src/services/navigation/routesApiCodec.ts +69 -0
- package/src/services/otaDisplayState.ts +156 -0
- package/src/services/otaInstallPolicy.ts +132 -0
- package/src/services/otaLegacyMapping.ts +71 -0
- package/src/services/otaManifestUrl.ts +53 -0
- package/src/services/slimStreamStatus.ts +39 -0
- package/src/services/soniox/SonioxDirectService.ts +517 -0
- package/src/services/soniox/SonioxRealtimeClient.ts +349 -0
- package/src/services/soniox/SonioxTokenAssembler.ts +451 -0
- package/src/services/speakerProfileStoreInstance.ts +25 -0
- package/src/services/uiShim.ts +375 -0
- package/src/stores/apps.ts +626 -0
- package/src/stores/bluetoothSettingKeys.ts +35 -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 +384 -0
- package/src/stores/glasses.ts +314 -0
- package/src/stores/settings.ts +1299 -0
- package/src/stores/transcriptionDebug.ts +0 -0
- package/src/types/applet.ts +121 -0
- package/src/types/asg.ts +58 -0
- package/src/types/capabilities/even-realities-g1.ts +70 -0
- package/src/types/capabilities/even-realities-g2.ts +98 -0
- package/src/types/capabilities/mentra-display.ts +78 -0
- package/src/types/capabilities/mentra-live.ts +106 -0
- package/src/types/capabilities/nimo.ts +84 -0
- package/src/types/capabilities/none.ts +79 -0
- package/src/types/capabilities/simulated-glasses.ts +95 -0
- package/src/types/capabilities/vuzix-z100.ts +67 -0
- package/src/types/enums.ts +27 -0
- package/src/types/hardware.ts +220 -0
- package/src/types/index.ts +38 -0
- package/src/utils/GlobalEventEmitter.ts +15 -0
- package/src/utils/cloudClient/RnUdpAdapter.ts +47 -0
- package/src/utils/cloudClient/cloudSecureStore.ts +28 -0
- package/src/utils/configuredDevHost.ts +17 -0
- package/src/utils/debouncedPatch.ts +28 -0
- package/src/utils/devLogging.ts +140 -0
- package/src/utils/devMiniappLaunch.ts +196 -0
- package/src/utils/diagnosticContext.ts +159 -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 +409 -0
- package/src/utils/display/helpers/ScrollView.ts +326 -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/anchor.ts +39 -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 +24 -0
- package/src/utils/display/scene/process.ts +228 -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 +171 -0
- package/src/utils/hardware/index.ts +1 -0
- package/src/utils/memory/search.ts +204 -0
- package/src/utils/miniappDiagnostics.ts +226 -0
- package/src/utils/miniappGlobals.ts +259 -0
- package/src/utils/permissions/MediaLibraryPermissions.ts +161 -0
- package/src/utils/permissions/galleryDisplayName.ts +28 -0
- package/src/utils/speakerEmbedding.ts +58 -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 +175 -0
|
@@ -0,0 +1,145 @@
|
|
|
1
|
+
import { Platform } from "react-native";
|
|
2
|
+
import { check, request, PERMISSIONS, RESULTS } from "react-native-permissions";
|
|
3
|
+
import CrustModule from "@glassly/crust";
|
|
4
|
+
import { deriveGalleryDisplayName } from "./galleryDisplayName";
|
|
5
|
+
/**
|
|
6
|
+
* MediaLibraryPermissions - Handles save-only permissions for camera roll
|
|
7
|
+
*
|
|
8
|
+
* Platform behavior:
|
|
9
|
+
* - iOS: Uses PHOTO_LIBRARY (read-write) so we can manage the Glassly album
|
|
10
|
+
* - Android 10+ (API 29+): No permission needed to save your own files to MediaStore
|
|
11
|
+
* - Android 9-: Uses WRITE_EXTERNAL_STORAGE (legacy)
|
|
12
|
+
*/
|
|
13
|
+
export class MediaLibraryPermissions {
|
|
14
|
+
/** Limited iOS access cannot see historical, unselected assets for duplicate reconciliation. */
|
|
15
|
+
static async hasLimitedAccess() {
|
|
16
|
+
if (Platform.OS !== "ios")
|
|
17
|
+
return false;
|
|
18
|
+
try {
|
|
19
|
+
return (await check(PERMISSIONS.IOS.PHOTO_LIBRARY)) === RESULTS.LIMITED;
|
|
20
|
+
}
|
|
21
|
+
catch (error) {
|
|
22
|
+
console.error("[MediaLibrary] Error checking limited-library access:", error);
|
|
23
|
+
// Conservatively block legacy reconciliation when the scope cannot be verified.
|
|
24
|
+
return true;
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* Check if we have permission to save to the camera roll
|
|
29
|
+
* Note: On Android 10+, this always returns true since no permission is needed
|
|
30
|
+
*/
|
|
31
|
+
static async checkPermission() {
|
|
32
|
+
try {
|
|
33
|
+
if (Platform.OS === "ios") {
|
|
34
|
+
const status = await check(PERMISSIONS.IOS.PHOTO_LIBRARY);
|
|
35
|
+
return status === RESULTS.GRANTED || status === RESULTS.LIMITED;
|
|
36
|
+
}
|
|
37
|
+
if (Platform.OS === "android") {
|
|
38
|
+
// Android 10+ (API 29+): No permission needed to save your own files
|
|
39
|
+
if (Platform.Version >= 29) {
|
|
40
|
+
return true;
|
|
41
|
+
}
|
|
42
|
+
// Android 9 and below: Check legacy write permission
|
|
43
|
+
const status = await check(PERMISSIONS.ANDROID.WRITE_EXTERNAL_STORAGE);
|
|
44
|
+
return status === RESULTS.GRANTED;
|
|
45
|
+
}
|
|
46
|
+
return false;
|
|
47
|
+
}
|
|
48
|
+
catch (error) {
|
|
49
|
+
console.error("[MediaLibrary] Error checking permission:", error);
|
|
50
|
+
// On error, assume we can try (Android 10+ doesn't need permission anyway)
|
|
51
|
+
return Platform.OS === "android" && Platform.Version >= 29;
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
/**
|
|
55
|
+
* Request permission to save to the camera roll
|
|
56
|
+
* Note: On Android 10+, this always returns true since no permission is needed
|
|
57
|
+
*/
|
|
58
|
+
static async requestPermission() {
|
|
59
|
+
try {
|
|
60
|
+
if (Platform.OS === "ios") {
|
|
61
|
+
const status = await request(PERMISSIONS.IOS.PHOTO_LIBRARY);
|
|
62
|
+
return status === RESULTS.GRANTED || status === RESULTS.LIMITED;
|
|
63
|
+
}
|
|
64
|
+
if (Platform.OS === "android") {
|
|
65
|
+
// Android 10+ (API 29+): No permission needed to save your own files
|
|
66
|
+
if (Platform.Version >= 29) {
|
|
67
|
+
return true;
|
|
68
|
+
}
|
|
69
|
+
// Android 9 and below: Request legacy write permission
|
|
70
|
+
const status = await request(PERMISSIONS.ANDROID.WRITE_EXTERNAL_STORAGE);
|
|
71
|
+
return status === RESULTS.GRANTED;
|
|
72
|
+
}
|
|
73
|
+
return false;
|
|
74
|
+
}
|
|
75
|
+
catch (error) {
|
|
76
|
+
console.error("[MediaLibrary] Error requesting permission:", error);
|
|
77
|
+
// On error, assume we can try (Android 10+ doesn't need permission anyway)
|
|
78
|
+
return Platform.OS === "android" && Platform.Version >= 29;
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
/**
|
|
82
|
+
* Save a file to the photo library in a glasses-specific location (Glassly album on iOS;
|
|
83
|
+
* Pictures/Glassly or Movies/Glassly on Android 10+).
|
|
84
|
+
* On Android 10+, this works without any permission.
|
|
85
|
+
*
|
|
86
|
+
* IMPORTANT: This method sets the DATE_TAKEN (Android) or creation date (iOS)
|
|
87
|
+
* metadata to the original capture time, so gallery apps show the correct date.
|
|
88
|
+
* Also saves files in chronological order for proper "date added" ordering.
|
|
89
|
+
*
|
|
90
|
+
* @param filePath - Path to the file to save
|
|
91
|
+
* @param creationTime - Optional creation/capture time in milliseconds (Unix timestamp)
|
|
92
|
+
*/
|
|
93
|
+
static async saveToLibrary(filePath, creationTime) {
|
|
94
|
+
return (await this.saveToLibraryWithReceipt(filePath, creationTime)).success;
|
|
95
|
+
}
|
|
96
|
+
/** Save and return the durable MediaStore/PhotoKit identifier used as the export receipt. */
|
|
97
|
+
static async saveToLibraryWithReceipt(filePath, creationTime) {
|
|
98
|
+
const platform = Platform.OS === "ios" || Platform.OS === "android" ? Platform.OS : "unknown";
|
|
99
|
+
try {
|
|
100
|
+
// On Android 10+, we can save without permission
|
|
101
|
+
// On iOS and older Android, check permission first
|
|
102
|
+
if (!(Platform.OS === "android" && Platform.Version >= 29)) {
|
|
103
|
+
const hasPermission = await this.checkPermission();
|
|
104
|
+
if (!hasPermission) {
|
|
105
|
+
// Try requesting permission one more time
|
|
106
|
+
const granted = await this.requestPermission();
|
|
107
|
+
if (!granted) {
|
|
108
|
+
console.warn("[MediaLibrary] No permission to save to library - photos saved to app storage only");
|
|
109
|
+
return { success: false, platform, error: "permission denied" };
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
// Remove file:// prefix if present
|
|
114
|
+
const cleanPath = filePath.replace("file://", "");
|
|
115
|
+
const displayName = deriveGalleryDisplayName(cleanPath);
|
|
116
|
+
// Use native module to save with proper DATE_TAKEN / creation date metadata
|
|
117
|
+
// This ensures gallery apps show the correct capture date, not the sync date
|
|
118
|
+
const result = await CrustModule.saveToGalleryWithDate(cleanPath, creationTime, displayName);
|
|
119
|
+
if (result.success) {
|
|
120
|
+
if (creationTime) {
|
|
121
|
+
const captureDate = new Date(creationTime);
|
|
122
|
+
console.log(`[MediaLibrary] Saved to camera roll with DATE_TAKEN: ${cleanPath} (captured: ${captureDate.toISOString()})`);
|
|
123
|
+
}
|
|
124
|
+
else {
|
|
125
|
+
console.log(`[MediaLibrary] Saved to camera roll: ${cleanPath}`);
|
|
126
|
+
}
|
|
127
|
+
return {
|
|
128
|
+
success: true,
|
|
129
|
+
platform,
|
|
130
|
+
uri: result.uri,
|
|
131
|
+
identifier: result.identifier,
|
|
132
|
+
};
|
|
133
|
+
}
|
|
134
|
+
else {
|
|
135
|
+
console.error(`[MediaLibrary] Failed to save to library: ${result.error}`);
|
|
136
|
+
return { success: false, platform, error: result.error || "native export failed" };
|
|
137
|
+
}
|
|
138
|
+
}
|
|
139
|
+
catch (error) {
|
|
140
|
+
console.error("[MediaLibrary] Error saving to library:", error);
|
|
141
|
+
return { success: false, platform, error: error instanceof Error ? error.message : String(error) };
|
|
142
|
+
}
|
|
143
|
+
}
|
|
144
|
+
}
|
|
145
|
+
//# sourceMappingURL=MediaLibraryPermissions.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MediaLibraryPermissions.js","sourceRoot":"","sources":["../../../src/utils/permissions/MediaLibraryPermissions.ts"],"names":[],"mappings":"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","sourcesContent":["import {Platform} from \"react-native\"\nimport {check, request, PERMISSIONS, RESULTS} from \"react-native-permissions\"\n\nimport CrustModule from \"@glassly/crust\"\n\nimport {deriveGalleryDisplayName} from \"./galleryDisplayName\"\n\nexport interface MediaLibrarySaveReceipt {\n success: boolean\n platform: \"ios\" | \"android\" | \"unknown\"\n uri?: string\n identifier?: string\n error?: string\n}\n\n/**\n * MediaLibraryPermissions - Handles save-only permissions for camera roll\n *\n * Platform behavior:\n * - iOS: Uses PHOTO_LIBRARY (read-write) so we can manage the Glassly album\n * - Android 10+ (API 29+): No permission needed to save your own files to MediaStore\n * - Android 9-: Uses WRITE_EXTERNAL_STORAGE (legacy)\n */\nexport class MediaLibraryPermissions {\n /** Limited iOS access cannot see historical, unselected assets for duplicate reconciliation. */\n static async hasLimitedAccess(): Promise<boolean> {\n if (Platform.OS !== \"ios\") return false\n try {\n return (await check(PERMISSIONS.IOS.PHOTO_LIBRARY)) === RESULTS.LIMITED\n } catch (error) {\n console.error(\"[MediaLibrary] Error checking limited-library access:\", error)\n // Conservatively block legacy reconciliation when the scope cannot be verified.\n return true\n }\n }\n\n /**\n * Check if we have permission to save to the camera roll\n * Note: On Android 10+, this always returns true since no permission is needed\n */\n static async checkPermission(): Promise<boolean> {\n try {\n if (Platform.OS === \"ios\") {\n const status = await check(PERMISSIONS.IOS.PHOTO_LIBRARY)\n return status === RESULTS.GRANTED || status === RESULTS.LIMITED\n }\n\n if (Platform.OS === \"android\") {\n // Android 10+ (API 29+): No permission needed to save your own files\n if (Platform.Version >= 29) {\n return true\n }\n // Android 9 and below: Check legacy write permission\n const status = await check(PERMISSIONS.ANDROID.WRITE_EXTERNAL_STORAGE)\n return status === RESULTS.GRANTED\n }\n\n return false\n } catch (error) {\n console.error(\"[MediaLibrary] Error checking permission:\", error)\n // On error, assume we can try (Android 10+ doesn't need permission anyway)\n return Platform.OS === \"android\" && Platform.Version >= 29\n }\n }\n\n /**\n * Request permission to save to the camera roll\n * Note: On Android 10+, this always returns true since no permission is needed\n */\n static async requestPermission(): Promise<boolean> {\n try {\n if (Platform.OS === \"ios\") {\n const status = await request(PERMISSIONS.IOS.PHOTO_LIBRARY)\n return status === RESULTS.GRANTED || status === RESULTS.LIMITED\n }\n\n if (Platform.OS === \"android\") {\n // Android 10+ (API 29+): No permission needed to save your own files\n if (Platform.Version >= 29) {\n return true\n }\n // Android 9 and below: Request legacy write permission\n const status = await request(PERMISSIONS.ANDROID.WRITE_EXTERNAL_STORAGE)\n return status === RESULTS.GRANTED\n }\n\n return false\n } catch (error) {\n console.error(\"[MediaLibrary] Error requesting permission:\", error)\n // On error, assume we can try (Android 10+ doesn't need permission anyway)\n return Platform.OS === \"android\" && Platform.Version >= 29\n }\n }\n\n /**\n * Save a file to the photo library in a glasses-specific location (Glassly album on iOS;\n * Pictures/Glassly or Movies/Glassly on Android 10+).\n * On Android 10+, this works without any permission.\n *\n * IMPORTANT: This method sets the DATE_TAKEN (Android) or creation date (iOS)\n * metadata to the original capture time, so gallery apps show the correct date.\n * Also saves files in chronological order for proper \"date added\" ordering.\n *\n * @param filePath - Path to the file to save\n * @param creationTime - Optional creation/capture time in milliseconds (Unix timestamp)\n */\n static async saveToLibrary(filePath: string, creationTime?: number): Promise<boolean> {\n return (await this.saveToLibraryWithReceipt(filePath, creationTime)).success\n }\n\n /** Save and return the durable MediaStore/PhotoKit identifier used as the export receipt. */\n static async saveToLibraryWithReceipt(filePath: string, creationTime?: number): Promise<MediaLibrarySaveReceipt> {\n const platform = Platform.OS === \"ios\" || Platform.OS === \"android\" ? Platform.OS : \"unknown\"\n try {\n // On Android 10+, we can save without permission\n // On iOS and older Android, check permission first\n if (!(Platform.OS === \"android\" && Platform.Version >= 29)) {\n const hasPermission = await this.checkPermission()\n if (!hasPermission) {\n // Try requesting permission one more time\n const granted = await this.requestPermission()\n if (!granted) {\n console.warn(\"[MediaLibrary] No permission to save to library - photos saved to app storage only\")\n return {success: false, platform, error: \"permission denied\"}\n }\n }\n }\n\n // Remove file:// prefix if present\n const cleanPath = filePath.replace(\"file://\", \"\")\n const displayName = deriveGalleryDisplayName(cleanPath)\n\n // Use native module to save with proper DATE_TAKEN / creation date metadata\n // This ensures gallery apps show the correct capture date, not the sync date\n const result = await CrustModule.saveToGalleryWithDate(cleanPath, creationTime, displayName)\n\n if (result.success) {\n if (creationTime) {\n const captureDate = new Date(creationTime)\n console.log(\n `[MediaLibrary] Saved to camera roll with DATE_TAKEN: ${cleanPath} (captured: ${captureDate.toISOString()})`,\n )\n } else {\n console.log(`[MediaLibrary] Saved to camera roll: ${cleanPath}`)\n }\n return {\n success: true,\n platform,\n uri: result.uri,\n identifier: result.identifier,\n }\n } else {\n console.error(`[MediaLibrary] Failed to save to library: ${result.error}`)\n return {success: false, platform, error: result.error || \"native export failed\"}\n }\n } catch (error) {\n console.error(\"[MediaLibrary] Error saving to library:\", error)\n return {success: false, platform, error: error instanceof Error ? error.message : String(error)}\n }\n }\n}\n"]}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Derive a unique MediaStore display name for camera-roll saves.
|
|
3
|
+
*
|
|
4
|
+
* Capture downloads use folder layout `IMG_xxx/base.jpg` (or `VID_xxx/base.mp4`).
|
|
5
|
+
* Using the leaf filename (`base.jpg`) causes MediaStore collisions on Android.
|
|
6
|
+
*/
|
|
7
|
+
export declare function deriveGalleryDisplayName(filePath: string): string;
|
|
8
|
+
//# sourceMappingURL=galleryDisplayName.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"galleryDisplayName.d.ts","sourceRoot":"","sources":["../../../src/utils/permissions/galleryDisplayName.ts"],"names":[],"mappings":"AAEA;;;;;GAKG;AACH,wBAAgB,wBAAwB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAmBjE"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
const CAPTURE_FOLDER_PATTERN = /^(IMG|VID)_/;
|
|
2
|
+
/**
|
|
3
|
+
* Derive a unique MediaStore display name for camera-roll saves.
|
|
4
|
+
*
|
|
5
|
+
* Capture downloads use folder layout `IMG_xxx/base.jpg` (or `VID_xxx/base.mp4`).
|
|
6
|
+
* Using the leaf filename (`base.jpg`) causes MediaStore collisions on Android.
|
|
7
|
+
*/
|
|
8
|
+
export function deriveGalleryDisplayName(filePath) {
|
|
9
|
+
const cleanPath = filePath.replace("file://", "");
|
|
10
|
+
const lastSlash = cleanPath.lastIndexOf("/");
|
|
11
|
+
if (lastSlash < 0) {
|
|
12
|
+
return cleanPath;
|
|
13
|
+
}
|
|
14
|
+
const fileName = cleanPath.substring(lastSlash + 1);
|
|
15
|
+
const parentDir = cleanPath.substring(0, lastSlash);
|
|
16
|
+
const parentSlash = parentDir.lastIndexOf("/");
|
|
17
|
+
const parentName = parentSlash < 0 ? parentDir : parentDir.substring(parentSlash + 1);
|
|
18
|
+
if (!CAPTURE_FOLDER_PATTERN.test(parentName)) {
|
|
19
|
+
return fileName;
|
|
20
|
+
}
|
|
21
|
+
const isVideo = /\.(mp4|mov|m4v|avi)(\.|$)/i.test(fileName);
|
|
22
|
+
const extension = isVideo ? "mp4" : "jpg";
|
|
23
|
+
return `${parentName}.${extension}`;
|
|
24
|
+
}
|
|
25
|
+
//# sourceMappingURL=galleryDisplayName.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"galleryDisplayName.js","sourceRoot":"","sources":["../../../src/utils/permissions/galleryDisplayName.ts"],"names":[],"mappings":"AAAA,MAAM,sBAAsB,GAAG,aAAa,CAAA;AAE5C;;;;;GAKG;AACH,MAAM,UAAU,wBAAwB,CAAC,QAAgB;IACvD,MAAM,SAAS,GAAG,QAAQ,CAAC,OAAO,CAAC,SAAS,EAAE,EAAE,CAAC,CAAA;IACjD,MAAM,SAAS,GAAG,SAAS,CAAC,WAAW,CAAC,GAAG,CAAC,CAAA;IAC5C,IAAI,SAAS,GAAG,CAAC,EAAE,CAAC;QAClB,OAAO,SAAS,CAAA;IAClB,CAAC;IAED,MAAM,QAAQ,GAAG,SAAS,CAAC,SAAS,CAAC,SAAS,GAAG,CAAC,CAAC,CAAA;IACnD,MAAM,SAAS,GAAG,SAAS,CAAC,SAAS,CAAC,CAAC,EAAE,SAAS,CAAC,CAAA;IACnD,MAAM,WAAW,GAAG,SAAS,CAAC,WAAW,CAAC,GAAG,CAAC,CAAA;IAC9C,MAAM,UAAU,GAAG,WAAW,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,SAAS,CAAC,WAAW,GAAG,CAAC,CAAC,CAAA;IAErF,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC;QAC7C,OAAO,QAAQ,CAAA;IACjB,CAAC;IAED,MAAM,OAAO,GAAG,4BAA4B,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;IAC3D,MAAM,SAAS,GAAG,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAA;IACzC,OAAO,GAAG,UAAU,IAAI,SAAS,EAAE,CAAA;AACrC,CAAC","sourcesContent":["const CAPTURE_FOLDER_PATTERN = /^(IMG|VID)_/\n\n/**\n * Derive a unique MediaStore display name for camera-roll saves.\n *\n * Capture downloads use folder layout `IMG_xxx/base.jpg` (or `VID_xxx/base.mp4`).\n * Using the leaf filename (`base.jpg`) causes MediaStore collisions on Android.\n */\nexport function deriveGalleryDisplayName(filePath: string): string {\n const cleanPath = filePath.replace(\"file://\", \"\")\n const lastSlash = cleanPath.lastIndexOf(\"/\")\n if (lastSlash < 0) {\n return cleanPath\n }\n\n const fileName = cleanPath.substring(lastSlash + 1)\n const parentDir = cleanPath.substring(0, lastSlash)\n const parentSlash = parentDir.lastIndexOf(\"/\")\n const parentName = parentSlash < 0 ? parentDir : parentDir.substring(parentSlash + 1)\n\n if (!CAPTURE_FOLDER_PATTERN.test(parentName)) {\n return fileName\n }\n\n const isVideo = /\\.(mp4|mov|m4v|avi)(\\.|$)/i.test(fileName)\n const extension = isVideo ? \"mp4\" : \"jpg\"\n return `${parentName}.${extension}`\n}\n"]}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
export declare function embeddingToBase64(embedding: Float32Array): string;
|
|
2
|
+
export declare function embeddingFromBase64(base64: string): Float32Array;
|
|
3
|
+
export declare function l2Normalize(v: Float32Array): Float32Array;
|
|
4
|
+
/** Cosine similarity. Returns 0 for mismatched dims or zero vectors. */
|
|
5
|
+
export declare function cosineSimilarity(a: Float32Array, b: Float32Array): number;
|
|
6
|
+
/** Element-wise mean of same-dim vectors, L2-normalized (profile centroid). */
|
|
7
|
+
export declare function meanEmbedding(vectors: Float32Array[]): Float32Array;
|
|
8
|
+
//# sourceMappingURL=speakerEmbedding.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"speakerEmbedding.d.ts","sourceRoot":"","sources":["../../src/utils/speakerEmbedding.ts"],"names":[],"mappings":"AAQA,wBAAgB,iBAAiB,CAAC,SAAS,EAAE,YAAY,GAAG,MAAM,CAEjE;AAED,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,MAAM,GAAG,YAAY,CAOhE;AAED,wBAAgB,WAAW,CAAC,CAAC,EAAE,YAAY,GAAG,YAAY,CAQzD;AAED,wEAAwE;AACxE,wBAAgB,gBAAgB,CAAC,CAAC,EAAE,YAAY,EAAE,CAAC,EAAE,YAAY,GAAG,MAAM,CAYzE;AAED,+EAA+E;AAC/E,wBAAgB,aAAa,CAAC,OAAO,EAAE,YAAY,EAAE,GAAG,YAAY,CAUnE"}
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Speaker-embedding vector math shared by the profile store (centroids) and
|
|
3
|
+
* the enrollment flow (consistency checks). Embeddings travel as base64
|
|
4
|
+
* Float32Array little-endian — the same encoding the native SpeakerIdEngine
|
|
5
|
+
* produces and consumes over the bridge.
|
|
6
|
+
*/
|
|
7
|
+
import { Buffer } from "buffer";
|
|
8
|
+
export function embeddingToBase64(embedding) {
|
|
9
|
+
return Buffer.from(new Uint8Array(embedding.buffer, embedding.byteOffset, embedding.byteLength)).toString("base64");
|
|
10
|
+
}
|
|
11
|
+
export function embeddingFromBase64(base64) {
|
|
12
|
+
const bytes = Buffer.from(base64, "base64");
|
|
13
|
+
// Copy into a fresh buffer: Buffer views can be offset into a shared pool,
|
|
14
|
+
// and Float32Array requires 4-byte alignment.
|
|
15
|
+
const copy = new Uint8Array(bytes.length);
|
|
16
|
+
copy.set(bytes);
|
|
17
|
+
return new Float32Array(copy.buffer, 0, Math.floor(copy.length / 4));
|
|
18
|
+
}
|
|
19
|
+
export function l2Normalize(v) {
|
|
20
|
+
let sum = 0;
|
|
21
|
+
for (let i = 0; i < v.length; i++)
|
|
22
|
+
sum += v[i] * v[i];
|
|
23
|
+
const norm = Math.sqrt(sum);
|
|
24
|
+
if (norm === 0)
|
|
25
|
+
return new Float32Array(v.length);
|
|
26
|
+
const out = new Float32Array(v.length);
|
|
27
|
+
for (let i = 0; i < v.length; i++)
|
|
28
|
+
out[i] = v[i] / norm;
|
|
29
|
+
return out;
|
|
30
|
+
}
|
|
31
|
+
/** Cosine similarity. Returns 0 for mismatched dims or zero vectors. */
|
|
32
|
+
export function cosineSimilarity(a, b) {
|
|
33
|
+
if (a.length !== b.length || a.length === 0)
|
|
34
|
+
return 0;
|
|
35
|
+
let dot = 0;
|
|
36
|
+
let na = 0;
|
|
37
|
+
let nb = 0;
|
|
38
|
+
for (let i = 0; i < a.length; i++) {
|
|
39
|
+
dot += a[i] * b[i];
|
|
40
|
+
na += a[i] * a[i];
|
|
41
|
+
nb += b[i] * b[i];
|
|
42
|
+
}
|
|
43
|
+
if (na === 0 || nb === 0)
|
|
44
|
+
return 0;
|
|
45
|
+
return dot / (Math.sqrt(na) * Math.sqrt(nb));
|
|
46
|
+
}
|
|
47
|
+
/** Element-wise mean of same-dim vectors, L2-normalized (profile centroid). */
|
|
48
|
+
export function meanEmbedding(vectors) {
|
|
49
|
+
if (vectors.length === 0)
|
|
50
|
+
return new Float32Array(0);
|
|
51
|
+
const dim = vectors[0].length;
|
|
52
|
+
const sum = new Float32Array(dim);
|
|
53
|
+
for (const v of vectors) {
|
|
54
|
+
if (v.length !== dim)
|
|
55
|
+
continue;
|
|
56
|
+
for (let i = 0; i < dim; i++)
|
|
57
|
+
sum[i] += v[i];
|
|
58
|
+
}
|
|
59
|
+
for (let i = 0; i < dim; i++)
|
|
60
|
+
sum[i] /= vectors.length;
|
|
61
|
+
return l2Normalize(sum);
|
|
62
|
+
}
|
|
63
|
+
//# sourceMappingURL=speakerEmbedding.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"speakerEmbedding.js","sourceRoot":"","sources":["../../src/utils/speakerEmbedding.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * Speaker-embedding vector math shared by the profile store (centroids) and\n * the enrollment flow (consistency checks). Embeddings travel as base64\n * Float32Array little-endian — the same encoding the native SpeakerIdEngine\n * produces and consumes over the bridge.\n */\nimport {Buffer} from \"buffer\"\n\nexport function embeddingToBase64(embedding: Float32Array): string {\n return Buffer.from(new Uint8Array(embedding.buffer, embedding.byteOffset, embedding.byteLength)).toString(\"base64\")\n}\n\nexport function embeddingFromBase64(base64: string): Float32Array {\n const bytes = Buffer.from(base64, \"base64\")\n // Copy into a fresh buffer: Buffer views can be offset into a shared pool,\n // and Float32Array requires 4-byte alignment.\n const copy = new Uint8Array(bytes.length)\n copy.set(bytes)\n return new Float32Array(copy.buffer, 0, Math.floor(copy.length / 4))\n}\n\nexport function l2Normalize(v: Float32Array): Float32Array {\n let sum = 0\n for (let i = 0; i < v.length; i++) sum += v[i] * v[i]\n const norm = Math.sqrt(sum)\n if (norm === 0) return new Float32Array(v.length)\n const out = new Float32Array(v.length)\n for (let i = 0; i < v.length; i++) out[i] = v[i] / norm\n return out\n}\n\n/** Cosine similarity. Returns 0 for mismatched dims or zero vectors. */\nexport function cosineSimilarity(a: Float32Array, b: Float32Array): number {\n if (a.length !== b.length || a.length === 0) return 0\n let dot = 0\n let na = 0\n let nb = 0\n for (let i = 0; i < a.length; i++) {\n dot += a[i] * b[i]\n na += a[i] * a[i]\n nb += b[i] * b[i]\n }\n if (na === 0 || nb === 0) return 0\n return dot / (Math.sqrt(na) * Math.sqrt(nb))\n}\n\n/** Element-wise mean of same-dim vectors, L2-normalized (profile centroid). */\nexport function meanEmbedding(vectors: Float32Array[]): Float32Array {\n if (vectors.length === 0) return new Float32Array(0)\n const dim = vectors[0].length\n const sum = new Float32Array(dim)\n for (const v of vectors) {\n if (v.length !== dim) continue\n for (let i = 0; i < dim; i++) sum[i] += v[i]\n }\n for (let i = 0; i < dim; i++) sum[i] /= vectors.length\n return l2Normalize(sum)\n}\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/utils/storage/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,OAAO,EAAE,yBAAyB,EAAC,MAAM,WAAW,CAAA;AAC5D,OAAO,EAAC,cAAc,EAAC,MAAM,OAAO,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/utils/storage/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,OAAO,EAAE,yBAAyB,EAAC,MAAM,WAAW,CAAA;AAC5D,OAAO,EAAC,cAAc,EAAC,MAAM,OAAO,CAAA","sourcesContent":["export {storage, StorageValueNotFoundError} from \"./storage\"\nexport {printDirectory} from \"./zip\"\n"]}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { Result } from "typesafe-ts";
|
|
2
|
+
/**
|
|
3
|
+
* Thrown by load() when the key has no stored value. Callers that treat a
|
|
4
|
+
* missing key as an expected state (e.g. first run) should branch on
|
|
5
|
+
* `instanceof StorageValueNotFoundError` rather than matching the message.
|
|
6
|
+
*/
|
|
7
|
+
export declare class StorageValueNotFoundError extends Error {
|
|
8
|
+
constructor(key: string);
|
|
9
|
+
}
|
|
10
|
+
declare class MMKVStorage {
|
|
11
|
+
private _store?;
|
|
12
|
+
private get store();
|
|
13
|
+
save(key: string, value: unknown): Result<void, Error>;
|
|
14
|
+
load<T>(key: string): Result<T, Error>;
|
|
15
|
+
private saveString;
|
|
16
|
+
getAllKeys(): string[];
|
|
17
|
+
removeMultiple(keys: string[]): Result<void, Error>;
|
|
18
|
+
loadSubKeys(key: string): Result<Record<string, unknown>, Error>;
|
|
19
|
+
remove(key: string): Result<void, Error>;
|
|
20
|
+
clearAll(): Result<void, Error>;
|
|
21
|
+
}
|
|
22
|
+
export declare const storage: MMKVStorage;
|
|
23
|
+
export {};
|
|
24
|
+
//# sourceMappingURL=storage.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"storage.d.ts","sourceRoot":"","sources":["../../../src/utils/storage/storage.ts"],"names":[],"mappings":"AAEA,OAAO,EAAgB,MAAM,EAAC,MAAM,aAAa,CAAA;AAEjD;;;;GAIG;AACH,qBAAa,yBAA0B,SAAQ,KAAK;gBACtC,GAAG,EAAE,MAAM;CAIxB;AAED,cAAM,WAAW;IACf,OAAO,CAAC,MAAM,CAAC,CAAM;IAErB,OAAO,KAAK,KAAK,GAKhB;IAEM,IAAI,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,GAAG,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC;IAItD,IAAI,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,CAAC,CAAC,EAAE,KAAK,CAAC;IAW7C,OAAO,CAAC,UAAU;IAKX,UAAU,IAAI,MAAM,EAAE;IAItB,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC;IAenD,WAAW,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,KAAK,CAAC;IAwBhE,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC;IAKxC,QAAQ,IAAI,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC;CAIvC;AAED,eAAO,MAAM,OAAO,aAAoB,CAAA"}
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
// @ts-nocheck
|
|
2
|
+
import { createMMKV } from "react-native-mmkv";
|
|
3
|
+
import { result as Res } from "typesafe-ts";
|
|
4
|
+
/**
|
|
5
|
+
* Thrown by load() when the key has no stored value. Callers that treat a
|
|
6
|
+
* missing key as an expected state (e.g. first run) should branch on
|
|
7
|
+
* `instanceof StorageValueNotFoundError` rather than matching the message.
|
|
8
|
+
*/
|
|
9
|
+
export class StorageValueNotFoundError extends Error {
|
|
10
|
+
constructor(key) {
|
|
11
|
+
super(`No value found for ${key}`);
|
|
12
|
+
this.name = "StorageValueNotFoundError";
|
|
13
|
+
}
|
|
14
|
+
}
|
|
15
|
+
class MMKVStorage {
|
|
16
|
+
_store;
|
|
17
|
+
get store() {
|
|
18
|
+
if (!this._store) {
|
|
19
|
+
this._store = createMMKV();
|
|
20
|
+
}
|
|
21
|
+
return this._store;
|
|
22
|
+
}
|
|
23
|
+
save(key, value) {
|
|
24
|
+
return this.saveString(key, JSON.stringify(value));
|
|
25
|
+
}
|
|
26
|
+
load(key) {
|
|
27
|
+
return Res.try(() => {
|
|
28
|
+
const loadedString = this.store.getString(key) ?? "";
|
|
29
|
+
if (loadedString === "") {
|
|
30
|
+
throw new StorageValueNotFoundError(key);
|
|
31
|
+
}
|
|
32
|
+
const value = JSON.parse(loadedString);
|
|
33
|
+
return value;
|
|
34
|
+
});
|
|
35
|
+
}
|
|
36
|
+
saveString(key, value) {
|
|
37
|
+
this.store.set(key, value);
|
|
38
|
+
return Res.ok(undefined);
|
|
39
|
+
}
|
|
40
|
+
getAllKeys() {
|
|
41
|
+
return this.store.getAllKeys();
|
|
42
|
+
}
|
|
43
|
+
removeMultiple(keys) {
|
|
44
|
+
let success = true;
|
|
45
|
+
for (const key of keys) {
|
|
46
|
+
const res = this.store.remove(key);
|
|
47
|
+
if (!res) {
|
|
48
|
+
success = false;
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
if (!success) {
|
|
52
|
+
console.error("Failed to remove one or more keys");
|
|
53
|
+
return Res.error(new Error("Failed to remove one or more keys"));
|
|
54
|
+
}
|
|
55
|
+
return Res.ok(undefined);
|
|
56
|
+
}
|
|
57
|
+
loadSubKeys(key) {
|
|
58
|
+
return Res.try(() => {
|
|
59
|
+
// return the key value pair of any keys that start with the given key and contain a colon:
|
|
60
|
+
const keys = this.store.getAllKeys();
|
|
61
|
+
const subKeys = keys.filter((k) => k.startsWith(key) && k.includes(":"));
|
|
62
|
+
if (subKeys.length === 0) {
|
|
63
|
+
throw new Error(`No subkeys found for ${key}`);
|
|
64
|
+
}
|
|
65
|
+
let subKeysObject = {};
|
|
66
|
+
for (const subKey of subKeys) {
|
|
67
|
+
const res = this.load(subKey);
|
|
68
|
+
if (res.is_ok()) {
|
|
69
|
+
subKeysObject[subKey] = res.value;
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
return subKeysObject;
|
|
73
|
+
});
|
|
74
|
+
}
|
|
75
|
+
remove(key) {
|
|
76
|
+
this.store.remove(key);
|
|
77
|
+
return Res.ok(undefined);
|
|
78
|
+
}
|
|
79
|
+
clearAll() {
|
|
80
|
+
this.store.clearAll();
|
|
81
|
+
return Res.ok(undefined);
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
export const storage = new MMKVStorage();
|
|
85
|
+
//# sourceMappingURL=storage.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"storage.js","sourceRoot":"","sources":["../../../src/utils/storage/storage.ts"],"names":[],"mappings":"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","sourcesContent":["// @ts-nocheck\nimport {createMMKV, type MMKV} from \"react-native-mmkv\"\nimport {result as Res, Result} from \"typesafe-ts\"\n\n/**\n * Thrown by load() when the key has no stored value. Callers that treat a\n * missing key as an expected state (e.g. first run) should branch on\n * `instanceof StorageValueNotFoundError` rather than matching the message.\n */\nexport class StorageValueNotFoundError extends Error {\n constructor(key: string) {\n super(`No value found for ${key}`)\n this.name = \"StorageValueNotFoundError\"\n }\n}\n\nclass MMKVStorage {\n private _store?: MMKV\n\n private get store(): MMKV {\n if (!this._store) {\n this._store = createMMKV()\n }\n return this._store\n }\n\n public save(key: string, value: unknown): Result<void, Error> {\n return this.saveString(key, JSON.stringify(value))\n }\n\n public load<T>(key: string): Result<T, Error> {\n return Res.try(() => {\n const loadedString = this.store.getString(key) ?? \"\"\n if (loadedString === \"\") {\n throw new StorageValueNotFoundError(key)\n }\n const value = JSON.parse(loadedString) as T\n return value\n })\n }\n\n private saveString(key: string, value: string): Result<void, Error> {\n this.store.set(key, value)\n return Res.ok(undefined)\n }\n\n public getAllKeys(): string[] {\n return this.store.getAllKeys()\n }\n\n public removeMultiple(keys: string[]): Result<void, Error> {\n let success = true\n for (const key of keys) {\n const res = this.store.remove(key)\n if (!res) {\n success = false\n }\n }\n if (!success) {\n console.error(\"Failed to remove one or more keys\")\n return Res.error(new Error(\"Failed to remove one or more keys\"))\n }\n return Res.ok(undefined)\n }\n\n public loadSubKeys(key: string): Result<Record<string, unknown>, Error> {\n return Res.try(() => {\n // return the key value pair of any keys that start with the given key and contain a colon:\n const keys = this.store.getAllKeys()\n\n const subKeys = keys.filter((k) => k.startsWith(key) && k.includes(\":\"))\n\n if (subKeys.length === 0) {\n throw new Error(`No subkeys found for ${key}`)\n }\n\n let subKeysObject: Record<string, unknown> = {}\n\n for (const subKey of subKeys) {\n const res = this.load(subKey)\n if (res.is_ok()) {\n subKeysObject[subKey] = res.value\n }\n }\n\n return subKeysObject\n })\n }\n\n public remove(key: string): Result<void, Error> {\n this.store.remove(key)\n return Res.ok(undefined)\n }\n\n public clearAll(): Result<void, Error> {\n this.store.clearAll()\n return Res.ok(undefined)\n }\n}\n\nexport const storage = new MMKVStorage()\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"zip.d.ts","sourceRoot":"","sources":["../../../src/utils/storage/zip.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,SAAS,EAAC,MAAM,kBAAkB,CAAA;AAE1C,wBAAgB,cAAc,CAAC,SAAS,EAAE,SAAS,EAAE,MAAM,GAAE,MAAU,QAUtE"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { Directory } from "expo-file-system";
|
|
2
|
+
export function printDirectory(directory, indent = 0) {
|
|
3
|
+
console.log(`${" ".repeat(indent)} + ${directory.name}`);
|
|
4
|
+
const contents = directory.list();
|
|
5
|
+
for (const item of contents) {
|
|
6
|
+
if (item instanceof Directory) {
|
|
7
|
+
printDirectory(item, indent + 2);
|
|
8
|
+
}
|
|
9
|
+
else {
|
|
10
|
+
console.log(`${" ".repeat(indent + 2)} - ${item.name} (${item.size} bytes)`);
|
|
11
|
+
}
|
|
12
|
+
}
|
|
13
|
+
}
|
|
14
|
+
//# sourceMappingURL=zip.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"zip.js","sourceRoot":"","sources":["../../../src/utils/storage/zip.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,SAAS,EAAC,MAAM,kBAAkB,CAAA;AAE1C,MAAM,UAAU,cAAc,CAAC,SAAoB,EAAE,SAAiB,CAAC;IACrE,OAAO,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,SAAS,CAAC,IAAI,EAAE,CAAC,CAAA;IACxD,MAAM,QAAQ,GAAG,SAAS,CAAC,IAAI,EAAE,CAAA;IACjC,KAAK,MAAM,IAAI,IAAI,QAAQ,EAAE,CAAC;QAC5B,IAAI,IAAI,YAAY,SAAS,EAAE,CAAC;YAC9B,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,CAAC,CAAC,CAAA;QAClC,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,MAAM,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC,IAAI,SAAS,CAAC,CAAA;QAC9E,CAAC;IACH,CAAC;AACH,CAAC","sourcesContent":["import {Directory} from \"expo-file-system\"\n\nexport function printDirectory(directory: Directory, indent: number = 0) {\n console.log(`${\" \".repeat(indent)} + ${directory.name}`)\n const contents = directory.list()\n for (const item of contents) {\n if (item instanceof Directory) {\n printDirectory(item, indent + 2)\n } else {\n console.log(`${\" \".repeat(indent + 2)} - ${item.name} (${item.size} bytes)`)\n }\n }\n}\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/utils/timers/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAC,MAAM,UAAU,CAAA;AACpD,OAAO,EAAC,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAC,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/utils/timers/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAC,MAAM,UAAU,CAAA;AACpD,OAAO,EAAC,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAC,CAAA","sourcesContent":["import {BgTimer, throttle, debounce} from \"./timers\"\nexport {BgTimer, throttle, debounce}\n"]}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
export declare class BgTimer {
|
|
2
|
+
static setInterval(callback: () => void, delay: number): number;
|
|
3
|
+
static clearInterval(intervalId: number): void;
|
|
4
|
+
static setTimeout(callback: () => void, delay: number): number;
|
|
5
|
+
static clearTimeout(timeoutId: number): void;
|
|
6
|
+
}
|
|
7
|
+
export declare function throttle<T extends (...args: any[]) => any>(fn: T, ms: number): (...args: Parameters<T>) => void;
|
|
8
|
+
export declare function debounce<T extends (...args: any[]) => any>(fn: T, ms: number): (...args: Parameters<T>) => void;
|
|
9
|
+
//# sourceMappingURL=timers.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"timers.d.ts","sourceRoot":"","sources":["../../../src/utils/timers/timers.ts"],"names":[],"mappings":"AAwHA,qBAAa,OAAO;IAClB,MAAM,CAAC,WAAW,CAAC,QAAQ,EAAE,MAAM,IAAI,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM;IAO/D,MAAM,CAAC,aAAa,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI;IAO9C,MAAM,CAAC,UAAU,CAAC,QAAQ,EAAE,MAAM,IAAI,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM;IAO9D,MAAM,CAAC,YAAY,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI;CAM7C;AAED,wBAAgB,QAAQ,CAAC,CAAC,SAAS,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,GAAG,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,MAAM,GAAG,CAAC,GAAG,IAAI,EAAE,UAAU,CAAC,CAAC,CAAC,KAAK,IAAI,CAU/G;AAED,wBAAgB,QAAQ,CAAC,CAAC,SAAS,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,GAAG,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,MAAM,GAAG,CAAC,GAAG,IAAI,EAAE,UAAU,CAAC,CAAC,CAAC,KAAK,IAAI,CAY/G"}
|