react-native-audio-browser 0.2.0-next.8 → 0.2.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/AudioBrowser.podspec +1 -1
- package/README.md +2 -180
- package/android/build.gradle +1 -17
- package/android/gradle.properties +1 -1
- package/android/src/main/AndroidManifest.xml +0 -15
- package/android/src/main/java/com/audiobrowser/AudioBrowser.kt +141 -401
- package/android/src/main/java/com/audiobrowser/Callbacks.kt +6 -4
- package/android/src/main/java/com/audiobrowser/Service.kt +18 -67
- package/android/src/main/java/com/audiobrowser/browser/BrowserManager.kt +178 -442
- package/android/src/main/java/com/audiobrowser/browser/JsonModels.kt +4 -41
- package/android/src/main/java/com/audiobrowser/browser/TrackLoadHandler.kt +4 -4
- package/android/src/main/java/com/audiobrowser/http/RequestConfigBuilder.kt +97 -109
- package/android/src/main/java/com/audiobrowser/model/PlaybackMetadata.kt +10 -6
- package/android/src/main/java/com/audiobrowser/model/PlayerSetupOptions.kt +8 -40
- package/android/src/main/java/com/audiobrowser/model/PlayerUpdateOptions.kt +46 -40
- package/android/src/main/java/com/audiobrowser/player/AutomaticBufferManager.kt +1 -4
- package/android/src/main/java/com/audiobrowser/player/DynamicLoadControl.kt +1 -18
- package/android/src/main/java/com/audiobrowser/player/MediaFactory.kt +3 -15
- package/android/src/main/java/com/audiobrowser/player/MediaSessionCallback.kt +134 -422
- package/android/src/main/java/com/audiobrowser/player/MediaSessionCommandManager.kt +404 -248
- package/android/src/main/java/com/audiobrowser/player/PlaybackProgressUpdateManager.kt +59 -0
- package/android/src/main/java/com/audiobrowser/player/PlaybackStateStore.kt +5 -25
- package/android/src/main/java/com/audiobrowser/player/Player.kt +582 -469
- package/android/src/main/java/com/audiobrowser/player/PlayerListener.kt +67 -190
- package/android/src/main/java/com/audiobrowser/player/RetryLoadErrorHandlingPolicy.kt +53 -118
- package/android/src/main/java/com/audiobrowser/player/SleepTimer.kt +3 -37
- package/android/src/main/java/com/audiobrowser/player/TransformingDataSource.kt +40 -85
- package/android/src/main/java/com/audiobrowser/util/BrowserPathHelper.kt +0 -24
- package/android/src/main/java/com/audiobrowser/util/CoilBitmapLoader.kt +300 -23
- package/android/src/main/java/com/audiobrowser/util/EqualizerManager.kt +23 -13
- package/android/src/main/java/com/audiobrowser/util/MediaExtrasBuilder.kt +2 -2
- package/android/src/main/java/com/audiobrowser/util/MetadataAdapter.kt +3 -4
- package/android/src/main/java/com/audiobrowser/util/PlayingStateFactory.kt +1 -2
- package/android/src/main/java/com/audiobrowser/util/RatingFactory.kt +72 -0
- package/android/src/main/java/com/audiobrowser/util/ResolvedTrackFactory.kt +36 -0
- package/android/src/main/java/com/audiobrowser/util/SvgArtworkRenderer.kt +111 -6
- package/android/src/main/java/com/audiobrowser/util/SystemVolumeMonitor.kt +8 -22
- package/android/src/main/java/com/audiobrowser/util/TrackFactory.kt +80 -112
- package/android/src/main/res/values/strings.xml +0 -4
- package/android/src/test/java/com/audiobrowser/browser/BrowserManagerTest.kt +0 -4
- package/android/src/test/java/com/audiobrowser/browser/SimpleRouterTest.kt +2 -1
- package/android/src/test/java/com/audiobrowser/http/RequestConfigBuilderTest.kt +0 -72
- package/android/src/test/java/com/audiobrowser/player/PlaybackProgressUpdateManagerTest.kt +146 -0
- package/ios/Browser/BrowserConfig.swift +11 -41
- package/ios/Browser/BrowserManager+URLResolution.swift +93 -213
- package/ios/Browser/BrowserManager.swift +110 -303
- package/ios/Browser/BrowserPathHelper.swift +3 -32
- package/ios/Browser/JsonModels.swift +66 -287
- package/ios/CarPlay/CarPlayArtworkResolver.swift +6 -6
- package/ios/CarPlay/CarPlayController.swift +149 -739
- package/ios/CarPlay/CarPlayImageLoader.swift +8 -57
- package/ios/CarPlay/CarPlayListItemFactory.swift +35 -44
- package/ios/CarPlay/CarPlayNowPlayingManager.swift +36 -180
- package/ios/CarPlay/RNABAudioBrowser.h +10 -15
- package/ios/CarPlay/RNABAudioBrowser.m +14 -15
- package/ios/CarPlay/RNABCarPlaySceneDelegate.m +0 -2
- package/ios/CarPlay/RNABMediaIntentHandler.swift +43 -53
- package/ios/CarPlay/Track+CarPlay.swift +63 -0
- package/ios/Extension/Capability+RemoteCommand.swift +9 -7
- package/ios/Extension/ChapterMetadata+AVFoundation.swift +1 -1
- package/ios/Extension/NavigationError+Conversion.swift +1 -8
- package/ios/Extension/ResolvedTrack+Copying.swift +4 -10
- package/ios/Extension/TimedMetadata+AVFoundation.swift +1 -1
- package/ios/Extension/Track+AVPlayer.swift +4 -4
- package/ios/Extension/Track+Copying.swift +3 -9
- package/ios/Extension/TrackMetadata+AVFoundation.swift +1 -1
- package/ios/HybridAudioBrowser.swift +173 -751
- package/ios/Model/NitroTypeStubs.swift +224 -299
- package/ios/Model/PlayerUpdateOptions.swift +23 -23
- package/ios/Model/RemoteCommand.swift +6 -24
- package/ios/Model/TrackPlayerError.swift +18 -82
- package/ios/NowPlayingInfo/NowPlayingInfoCenter.swift +9 -0
- package/ios/NowPlayingInfo/NowPlayingInfoController.swift +121 -99
- package/ios/Observer/PlayerItemNotificationObserver.swift +5 -45
- package/ios/Observer/PlayerItemPropertyObserver.swift +4 -27
- package/ios/Observer/PlayerTimeObserver.swift +53 -3
- package/ios/Option/SessionCategories.swift +11 -34
- package/ios/Player/LoadSeekCoordinator.swift +1 -16
- package/ios/Player/MediaLoader.swift +11 -31
- package/ios/Player/NowPlayingUpdater.swift +26 -119
- package/ios/Player/PlaybackCoordinator.swift +51 -285
- package/ios/Player/PlaybackCoordinatorCallbacks.swift +1 -6
- package/ios/Player/PlaybackEffectHandler.swift +9 -19
- package/ios/Player/PlaybackErrorHandler.swift +13 -97
- package/ios/Player/PlaybackProgressUpdateManager.swift +68 -0
- package/ios/Player/PlaybackStateMachine.swift +13 -18
- package/ios/Player/PlayingStateManager.swift +2 -3
- package/ios/Player/QueueManager.swift +61 -67
- package/ios/Player/RetryManager.swift +21 -98
- package/ios/Player/SleepTimerHandling.swift +0 -8
- package/ios/Player/SleepTimerManager.swift +11 -72
- package/ios/RemoteCommand/RemoteCommandController.swift +21 -40
- package/ios/Tests/BrowserPathHelperTests.swift +0 -28
- package/ios/Tests/CarPlayArtworkResolverTests.swift +39 -39
- package/ios/Tests/ChapterMetadataAVFoundationTests.swift +2 -2
- package/ios/Tests/LoadSeekCoordinatorTests.swift +7 -40
- package/ios/Tests/MediaLoaderTests.swift +20 -32
- package/ios/Tests/PlaybackCoordinatorTests.swift +13 -787
- package/ios/Tests/PlaybackErrorHandlerTests.swift +46 -380
- package/ios/Tests/PlaybackProgressUpdateManagerTests.swift +166 -0
- package/ios/Tests/PlaybackStateMachineTests.swift +8 -33
- package/ios/Tests/QueueManagerTests.swift +18 -149
- package/ios/Tests/ResolvedTrackCopyingTests.swift +8 -15
- package/ios/Tests/Support/TestTypes.swift +20 -61
- package/ios/Tests/TrackSelectorTests.swift +15 -15
- package/ios/TrackPlayer.swift +58 -380
- package/ios/TrackPlayerCallbacks.swift +44 -5
- package/ios/TrackSelector.swift +5 -5
- package/ios/Util/ArtworkImageFetcher.swift +2 -4
- package/ios/Util/NetworkMonitor.swift +3 -7
- package/ios/Util/OnceValue.swift +0 -34
- package/lib/commonjs/AudioBrowser.js +11 -0
- package/lib/commonjs/AudioBrowser.js.map +1 -1
- package/lib/commonjs/features/browser.js +158 -59
- package/lib/commonjs/features/browser.js.map +1 -1
- package/lib/commonjs/features/equalizer.js +1 -1
- package/lib/commonjs/features/errors.js +5 -37
- package/lib/commonjs/features/errors.js.map +1 -1
- package/lib/commonjs/features/favorites.js +1 -1
- package/lib/commonjs/features/index.js +0 -22
- package/lib/commonjs/features/index.js.map +1 -1
- package/lib/commonjs/features/metadata.js +3 -3
- package/lib/commonjs/features/metadata.js.map +1 -1
- package/lib/commonjs/features/network.js +1 -1
- package/lib/commonjs/features/nowPlaying.js +1 -36
- package/lib/commonjs/features/nowPlaying.js.map +1 -1
- package/lib/commonjs/features/output.js +23 -37
- package/lib/commonjs/features/output.js.map +1 -1
- package/lib/commonjs/features/playback/controls.js +0 -9
- package/lib/commonjs/features/playback/controls.js.map +1 -1
- package/lib/commonjs/features/playback/index.js +0 -11
- package/lib/commonjs/features/playback/index.js.map +1 -1
- package/lib/commonjs/features/playback/playWhenReady.js +1 -1
- package/lib/commonjs/features/playback/playing.js +1 -1
- package/lib/commonjs/features/playback/progress.js +13 -29
- package/lib/commonjs/features/playback/progress.js.map +1 -1
- package/lib/commonjs/features/playback/state.js +1 -1
- package/lib/commonjs/features/playback/volume.js +2 -2
- package/lib/commonjs/features/player/options.js +29 -79
- package/lib/commonjs/features/player/options.js.map +1 -1
- package/lib/commonjs/features/player/setup.js +3 -256
- package/lib/commonjs/features/player/setup.js.map +1 -1
- package/lib/commonjs/features/queue/activeTrack.js +1 -1
- package/lib/commonjs/features/queue/queue.js +5 -12
- package/lib/commonjs/features/queue/queue.js.map +1 -1
- package/lib/commonjs/features/queue/repeatMode.js +1 -1
- package/lib/commonjs/features/queue/shuffle.js +1 -1
- package/lib/commonjs/features/rating.js +2 -0
- package/lib/commonjs/features/rating.js.map +1 -0
- package/lib/commonjs/features/remoteControls.js +104 -14
- package/lib/commonjs/features/remoteControls.js.map +1 -1
- package/lib/commonjs/features/sleepTimer.js +5 -10
- package/lib/commonjs/features/sleepTimer.js.map +1 -1
- package/lib/commonjs/native.js +0 -5
- package/lib/commonjs/native.js.map +1 -1
- package/lib/commonjs/native.web.js +1 -4
- package/lib/commonjs/native.web.js.map +1 -1
- package/lib/commonjs/types/player.js +2 -0
- package/lib/commonjs/types/player.js.map +1 -0
- package/lib/commonjs/utils/LazyNativeEmitter.js +8 -8
- package/lib/commonjs/utils/LazyNativeEmitter.js.map +1 -1
- package/lib/commonjs/utils/NativeUpdatedValue.js +3 -0
- package/lib/commonjs/utils/NativeUpdatedValue.js.map +1 -1
- package/lib/commonjs/web/NativeAudioBrowser.js +124 -301
- package/lib/commonjs/web/NativeAudioBrowser.js.map +1 -1
- package/lib/commonjs/web/SimpleRouter.test.js +174 -0
- package/lib/commonjs/web/SimpleRouter.test.js.map +1 -0
- package/lib/commonjs/web/TrackPlayer/Player.js +26 -90
- package/lib/commonjs/web/TrackPlayer/Player.js.map +1 -1
- package/lib/commonjs/web/TrackPlayer/PlaylistPlayer.js +293 -0
- package/lib/commonjs/web/TrackPlayer/PlaylistPlayer.js.map +1 -0
- package/lib/commonjs/web/TrackPlayer/RepeatMode.js +1 -1
- package/lib/commonjs/web/TrackPlayer/RepeatMode.js.map +1 -1
- package/lib/commonjs/web/TrackPlayer/SleepTimer.js +3 -34
- package/lib/commonjs/web/TrackPlayer/SleepTimer.js.map +1 -1
- package/lib/commonjs/web/TrackPlayer/index.js +5 -13
- package/lib/commonjs/web/TrackPlayer/index.js.map +1 -1
- package/lib/commonjs/web/browser/BrowserManager.js +50 -176
- package/lib/commonjs/web/browser/BrowserManager.js.map +1 -1
- package/lib/commonjs/web/browser/NavigationErrorManager.js +1 -3
- package/lib/commonjs/web/browser/NavigationErrorManager.js.map +1 -1
- package/lib/commonjs/web/browser/SearchManager.js +9 -11
- package/lib/commonjs/web/browser/SearchManager.js.map +1 -1
- package/lib/commonjs/web/http/HttpClient.js +23 -4
- package/lib/commonjs/web/http/HttpClient.js.map +1 -1
- package/lib/commonjs/web/http/RequestConfigBuilder.js +58 -107
- package/lib/commonjs/web/http/RequestConfigBuilder.js.map +1 -1
- package/lib/commonjs/web/player/NowPlayingManager.js +5 -6
- package/lib/commonjs/web/player/NowPlayingManager.js.map +1 -1
- package/lib/commonjs/web/player/OptionsManager.js +17 -9
- package/lib/commonjs/web/player/OptionsManager.js.map +1 -1
- package/lib/module/AudioBrowser.js +1 -4
- package/lib/module/AudioBrowser.js.map +1 -1
- package/lib/module/features/browser.js +156 -53
- package/lib/module/features/browser.js.map +1 -1
- package/lib/module/features/equalizer.js +1 -1
- package/lib/module/features/errors.js +5 -37
- package/lib/module/features/errors.js.map +1 -1
- package/lib/module/features/favorites.js +1 -1
- package/lib/module/features/index.js +0 -2
- package/lib/module/features/index.js.map +1 -1
- package/lib/module/features/metadata.js +3 -3
- package/lib/module/features/metadata.js.map +1 -1
- package/lib/module/features/network.js +1 -1
- package/lib/module/features/nowPlaying.js +1 -34
- package/lib/module/features/nowPlaying.js.map +1 -1
- package/lib/module/features/output.js +19 -32
- package/lib/module/features/output.js.map +1 -1
- package/lib/module/features/playback/controls.js +0 -8
- package/lib/module/features/playback/controls.js.map +1 -1
- package/lib/module/features/playback/index.js +0 -1
- package/lib/module/features/playback/index.js.map +1 -1
- package/lib/module/features/playback/playWhenReady.js +1 -1
- package/lib/module/features/playback/playing.js +1 -1
- package/lib/module/features/playback/progress.js +13 -29
- package/lib/module/features/playback/progress.js.map +1 -1
- package/lib/module/features/playback/state.js +1 -1
- package/lib/module/features/playback/volume.js +2 -2
- package/lib/module/features/player/options.js +29 -79
- package/lib/module/features/player/options.js.map +1 -1
- package/lib/module/features/player/setup.js +3 -256
- package/lib/module/features/player/setup.js.map +1 -1
- package/lib/module/features/queue/activeTrack.js +1 -1
- package/lib/module/features/queue/queue.js +5 -12
- package/lib/module/features/queue/queue.js.map +1 -1
- package/lib/module/features/queue/repeatMode.js +1 -1
- package/lib/module/features/queue/shuffle.js +1 -1
- package/lib/module/features/rating.js +2 -0
- package/lib/module/features/rating.js.map +1 -0
- package/lib/module/features/remoteControls.js +103 -13
- package/lib/module/features/remoteControls.js.map +1 -1
- package/lib/module/features/sleepTimer.js +5 -10
- package/lib/module/features/sleepTimer.js.map +1 -1
- package/lib/module/native.js +0 -5
- package/lib/module/native.js.map +1 -1
- package/lib/module/native.web.js +1 -4
- package/lib/module/native.web.js.map +1 -1
- package/lib/module/types/player.js +2 -0
- package/lib/module/types/player.js.map +1 -0
- package/lib/module/utils/LazyNativeEmitter.js +8 -8
- package/lib/module/utils/LazyNativeEmitter.js.map +1 -1
- package/lib/module/utils/NativeUpdatedValue.js +3 -0
- package/lib/module/utils/NativeUpdatedValue.js.map +1 -1
- package/lib/module/web/NativeAudioBrowser.js +125 -302
- package/lib/module/web/NativeAudioBrowser.js.map +1 -1
- package/lib/module/web/SimpleRouter.test.js +174 -0
- package/lib/module/web/SimpleRouter.test.js.map +1 -0
- package/lib/module/web/TrackPlayer/Player.js +26 -90
- package/lib/module/web/TrackPlayer/Player.js.map +1 -1
- package/lib/module/web/TrackPlayer/PlaylistPlayer.js +288 -0
- package/lib/module/web/TrackPlayer/PlaylistPlayer.js.map +1 -0
- package/lib/module/web/TrackPlayer/RepeatMode.js +1 -1
- package/lib/module/web/TrackPlayer/RepeatMode.js.map +1 -1
- package/lib/module/web/TrackPlayer/SleepTimer.js +3 -34
- package/lib/module/web/TrackPlayer/SleepTimer.js.map +1 -1
- package/lib/module/web/TrackPlayer/index.js +1 -2
- package/lib/module/web/TrackPlayer/index.js.map +1 -1
- package/lib/module/web/browser/BrowserManager.js +50 -176
- package/lib/module/web/browser/BrowserManager.js.map +1 -1
- package/lib/module/web/browser/NavigationErrorManager.js +1 -3
- package/lib/module/web/browser/NavigationErrorManager.js.map +1 -1
- package/lib/module/web/browser/SearchManager.js +9 -11
- package/lib/module/web/browser/SearchManager.js.map +1 -1
- package/lib/module/web/http/HttpClient.js +23 -4
- package/lib/module/web/http/HttpClient.js.map +1 -1
- package/lib/module/web/http/RequestConfigBuilder.js +58 -107
- package/lib/module/web/http/RequestConfigBuilder.js.map +1 -1
- package/lib/module/web/player/NowPlayingManager.js +5 -7
- package/lib/module/web/player/NowPlayingManager.js.map +1 -1
- package/lib/module/web/player/OptionsManager.js +17 -9
- package/lib/module/web/player/OptionsManager.js.map +1 -1
- package/lib/typescript/src/AudioBrowser.d.ts +1 -0
- package/lib/typescript/src/AudioBrowser.d.ts.map +1 -1
- package/lib/typescript/src/features/browser.d.ts +1 -40
- package/lib/typescript/src/features/browser.d.ts.map +1 -1
- package/lib/typescript/src/features/equalizer.d.ts +1 -1
- package/lib/typescript/src/features/errors.d.ts +6 -61
- package/lib/typescript/src/features/errors.d.ts.map +1 -1
- package/lib/typescript/src/features/favorites.d.ts +1 -1
- package/lib/typescript/src/features/index.d.ts +0 -2
- package/lib/typescript/src/features/index.d.ts.map +1 -1
- package/lib/typescript/src/features/metadata.d.ts +7 -9
- package/lib/typescript/src/features/metadata.d.ts.map +1 -1
- package/lib/typescript/src/features/network.d.ts +1 -1
- package/lib/typescript/src/features/nowPlaying.d.ts +1 -28
- package/lib/typescript/src/features/nowPlaying.d.ts.map +1 -1
- package/lib/typescript/src/features/output.d.ts +18 -28
- package/lib/typescript/src/features/output.d.ts.map +1 -1
- package/lib/typescript/src/features/playback/controls.d.ts +0 -5
- package/lib/typescript/src/features/playback/controls.d.ts.map +1 -1
- package/lib/typescript/src/features/playback/index.d.ts +0 -1
- package/lib/typescript/src/features/playback/index.d.ts.map +1 -1
- package/lib/typescript/src/features/playback/playWhenReady.d.ts +1 -1
- package/lib/typescript/src/features/playback/playing.d.ts +1 -1
- package/lib/typescript/src/features/playback/progress.d.ts +1 -4
- package/lib/typescript/src/features/playback/progress.d.ts.map +1 -1
- package/lib/typescript/src/features/playback/state.d.ts +1 -1
- package/lib/typescript/src/features/playback/volume.d.ts +2 -2
- package/lib/typescript/src/features/player/options.d.ts +127 -176
- package/lib/typescript/src/features/player/options.d.ts.map +1 -1
- package/lib/typescript/src/features/player/setup.d.ts +167 -213
- package/lib/typescript/src/features/player/setup.d.ts.map +1 -1
- package/lib/typescript/src/features/queue/activeTrack.d.ts +1 -1
- package/lib/typescript/src/features/queue/queue.d.ts +4 -11
- package/lib/typescript/src/features/queue/queue.d.ts.map +1 -1
- package/lib/typescript/src/features/queue/repeatMode.d.ts +1 -1
- package/lib/typescript/src/features/queue/shuffle.d.ts +1 -1
- package/lib/typescript/src/features/rating.d.ts +14 -0
- package/lib/typescript/src/features/rating.d.ts.map +1 -0
- package/lib/typescript/src/features/remoteControls.d.ts +35 -23
- package/lib/typescript/src/features/remoteControls.d.ts.map +1 -1
- package/lib/typescript/src/features/sleepTimer.d.ts +4 -19
- package/lib/typescript/src/features/sleepTimer.d.ts.map +1 -1
- package/lib/typescript/src/index.d.ts.map +1 -1
- package/lib/typescript/src/native.d.ts +2 -1
- package/lib/typescript/src/native.d.ts.map +1 -1
- package/lib/typescript/src/native.web.d.ts +3 -0
- package/lib/typescript/src/native.web.d.ts.map +1 -0
- package/lib/typescript/src/specs/audio-browser.nitro.d.ts +225 -17
- package/lib/typescript/src/specs/audio-browser.nitro.d.ts.map +1 -1
- package/lib/typescript/src/types/browser-native.d.ts +3 -9
- package/lib/typescript/src/types/browser-native.d.ts.map +1 -1
- package/lib/typescript/src/types/browser-nodes.d.ts +13 -145
- package/lib/typescript/src/types/browser-nodes.d.ts.map +1 -1
- package/lib/typescript/src/types/browser.d.ts +85 -349
- package/lib/typescript/src/types/browser.d.ts.map +1 -1
- package/lib/typescript/src/types/player.d.ts +64 -0
- package/lib/typescript/src/types/player.d.ts.map +1 -0
- package/lib/typescript/src/utils/LazyNativeEmitter.d.ts +6 -8
- package/lib/typescript/src/utils/LazyNativeEmitter.d.ts.map +1 -1
- package/lib/typescript/src/utils/NativeUpdatedValue.d.ts +2 -0
- package/lib/typescript/src/utils/NativeUpdatedValue.d.ts.map +1 -1
- package/lib/typescript/src/utils/resolveAssetSource.d.ts.map +1 -1
- package/lib/typescript/src/web/NativeAudioBrowser.d.ts +188 -0
- package/lib/typescript/src/web/NativeAudioBrowser.d.ts.map +1 -0
- package/lib/typescript/src/web/SimpleRouter.d.ts +40 -0
- package/lib/typescript/src/web/SimpleRouter.d.ts.map +1 -0
- package/lib/typescript/src/web/SimpleRouter.test.d.ts +2 -0
- package/lib/typescript/src/web/SimpleRouter.test.d.ts.map +1 -0
- package/lib/typescript/src/web/TrackPlayer/Event.d.ts +11 -0
- package/lib/typescript/src/web/TrackPlayer/Event.d.ts.map +1 -0
- package/lib/typescript/src/web/TrackPlayer/Player.d.ts +59 -0
- package/lib/typescript/src/web/TrackPlayer/Player.d.ts.map +1 -0
- package/lib/typescript/src/web/TrackPlayer/PlaylistPlayer.d.ts +39 -0
- package/lib/typescript/src/web/TrackPlayer/PlaylistPlayer.d.ts.map +1 -0
- package/lib/typescript/src/web/TrackPlayer/RepeatMode.d.ts +6 -0
- package/lib/typescript/src/web/TrackPlayer/RepeatMode.d.ts.map +1 -0
- package/lib/typescript/src/web/TrackPlayer/SetupNotCalledError.d.ts +4 -0
- package/lib/typescript/src/web/TrackPlayer/SetupNotCalledError.d.ts.map +1 -0
- package/lib/typescript/src/web/TrackPlayer/SleepTimer.d.ts +34 -0
- package/lib/typescript/src/web/TrackPlayer/SleepTimer.d.ts.map +1 -0
- package/lib/typescript/src/web/TrackPlayer/State.d.ts +13 -0
- package/lib/typescript/src/web/TrackPlayer/State.d.ts.map +1 -0
- package/lib/typescript/src/web/TrackPlayer/index.d.ts +5 -0
- package/lib/typescript/src/web/TrackPlayer/index.d.ts.map +1 -0
- package/lib/typescript/src/web/browser/BrowserManager.d.ts +154 -0
- package/lib/typescript/src/web/browser/BrowserManager.d.ts.map +1 -0
- package/lib/typescript/src/web/browser/FavoriteManager.d.ts +42 -0
- package/lib/typescript/src/web/browser/FavoriteManager.d.ts.map +1 -0
- package/lib/typescript/src/web/browser/NavigationErrorManager.d.ts +40 -0
- package/lib/typescript/src/web/browser/NavigationErrorManager.d.ts.map +1 -0
- package/lib/typescript/src/web/browser/SearchManager.d.ts +22 -0
- package/lib/typescript/src/web/browser/SearchManager.d.ts.map +1 -0
- package/lib/typescript/src/web/http/HttpClient.d.ts +25 -0
- package/lib/typescript/src/web/http/HttpClient.d.ts.map +1 -0
- package/lib/typescript/src/web/http/RequestConfigBuilder.d.ts +98 -0
- package/lib/typescript/src/web/http/RequestConfigBuilder.d.ts.map +1 -0
- package/lib/typescript/src/web/player/NowPlayingManager.d.ts +34 -0
- package/lib/typescript/src/web/player/NowPlayingManager.d.ts.map +1 -0
- package/lib/typescript/src/web/player/OptionsManager.d.ts +32 -0
- package/lib/typescript/src/web/player/OptionsManager.d.ts.map +1 -0
- package/lib/typescript/src/web/util/BrowserPathHelper.d.ts +69 -0
- package/lib/typescript/src/web/util/BrowserPathHelper.d.ts.map +1 -0
- package/lib/typescript/src/web/util/shuffle.d.ts +8 -0
- package/lib/typescript/src/web/util/shuffle.d.ts.map +1 -0
- package/nitrogen/generated/android/AudioBrowser+autolinking.cmake +2 -4
- package/nitrogen/generated/android/AudioBrowserOnLoad.cpp +10 -24
- package/nitrogen/generated/android/c++/JAndroidAudioContentType.hpp +6 -6
- package/nitrogen/generated/android/c++/JAndroidOptions.hpp +20 -10
- package/nitrogen/generated/android/c++/JAndroidUpdateOptions.hpp +86 -0
- package/nitrogen/generated/android/c++/JArtworkRequestConfig.hpp +1 -33
- package/nitrogen/generated/android/c++/JBrowseResult.hpp +0 -5
- package/nitrogen/generated/android/c++/JCarPlayNowPlayingButton.hpp +3 -3
- package/nitrogen/generated/android/c++/JFavoriteChangedEvent.hpp +0 -6
- package/nitrogen/generated/android/c++/JFormattedNavigationError.hpp +2 -3
- package/nitrogen/generated/android/c++/JFunc_std__shared_ptr_Promise_std__shared_ptr_Promise_RequestConfig_____Track.hpp +0 -6
- package/nitrogen/generated/android/c++/JFunc_std__shared_ptr_Promise_std__shared_ptr_Promise_std__variant_ResolvedTrack__BrowseError______BrowserSourceCallbackParam.hpp +147 -0
- package/nitrogen/generated/android/c++/JFunc_std__shared_ptr_Promise_std__shared_ptr_Promise_std__vector_Track______SearchParams.hpp +0 -8
- package/nitrogen/generated/android/c++/JFunc_std__shared_ptr_Promise_std__shared_ptr_Promise_void_____TrackLoadEvent.hpp +0 -6
- package/nitrogen/generated/android/c++/JFunc_void_FavoriteChangedEvent.hpp +0 -6
- package/nitrogen/generated/android/c++/JFunc_void_IosOutput.hpp +80 -0
- package/nitrogen/generated/android/c++/JFunc_void_NowPlayingMetadata.hpp +10 -0
- package/nitrogen/generated/android/c++/JFunc_void_Options.hpp +9 -14
- package/nitrogen/generated/android/c++/JFunc_void_Playback.hpp +0 -2
- package/nitrogen/generated/android/c++/JFunc_void_PlaybackActiveTrackChangedEvent.hpp +0 -6
- package/nitrogen/generated/android/c++/JFunc_void_PlaybackErrorEvent.hpp +0 -2
- package/nitrogen/generated/android/c++/JFunc_void_RemoteSetRatingEvent.hpp +87 -0
- package/nitrogen/generated/android/c++/JFunc_void_bool.hpp +10 -10
- package/nitrogen/generated/android/c++/JFunc_void_std__optional_ResolvedTrack_.hpp +0 -6
- package/nitrogen/generated/android/c++/JFunc_void_std__vector_Track_.hpp +0 -6
- package/nitrogen/generated/android/c++/JHeartRating.hpp +57 -0
- package/nitrogen/generated/android/c++/JHybridAudioBrowserSpec.cpp +221 -245
- package/nitrogen/generated/android/c++/JHybridAudioBrowserSpec.hpp +22 -25
- package/nitrogen/generated/android/c++/JImageRowItem.hpp +3 -33
- package/nitrogen/generated/android/c++/{JOutput.hpp → JIosOutput.hpp} +15 -15
- package/nitrogen/generated/android/c++/JIosOutputType.hpp +85 -0
- package/nitrogen/generated/android/c++/JMediaRequestConfig.hpp +1 -33
- package/nitrogen/generated/android/c++/JNativeBrowserConfiguration.hpp +28 -61
- package/nitrogen/generated/android/c++/JNativeRouteEntry.hpp +9 -20
- package/nitrogen/generated/android/c++/JNativeUpdateOptions.hpp +24 -21
- package/nitrogen/generated/android/c++/JNavigationErrorType.hpp +0 -6
- package/nitrogen/generated/android/c++/JNitroAndroidUpdateOptions.hpp +20 -10
- package/nitrogen/generated/android/c++/{JRemoteButton.hpp → JNotificationButton.hpp} +20 -20
- package/nitrogen/generated/android/c++/JNotificationButtonLayout.hpp +94 -0
- package/nitrogen/generated/android/c++/JNowPlayingMetadata.hpp +17 -3
- package/nitrogen/generated/android/c++/JNowPlayingUpdate.hpp +3 -7
- package/nitrogen/generated/android/c++/JOptions.hpp +14 -19
- package/nitrogen/generated/android/c++/{JNativeAndroidSetupOptions.hpp → JPartialAndroidSetupPlayerOptions.hpp} +10 -10
- package/nitrogen/generated/android/c++/{JNativeIOSSetupOptions.hpp → JPartialIOSSetupPlayerOptions.hpp} +10 -10
- package/nitrogen/generated/android/c++/JPartialSetupPlayerOptions.hpp +96 -0
- package/nitrogen/generated/android/c++/JPercentageRating.hpp +57 -0
- package/nitrogen/generated/android/c++/JPlayback.hpp +0 -2
- package/nitrogen/generated/android/c++/JPlaybackActiveTrackChangedEvent.hpp +0 -6
- package/nitrogen/generated/android/c++/JPlaybackError.hpp +3 -18
- package/nitrogen/generated/android/c++/JPlaybackErrorEvent.hpp +0 -2
- package/nitrogen/generated/android/c++/JPlaybackState.hpp +3 -3
- package/nitrogen/generated/android/c++/JPlayerCapabilities.hpp +5 -11
- package/nitrogen/generated/android/c++/JRatingType.hpp +73 -0
- package/nitrogen/generated/android/c++/JRemoteSetRatingEvent.hpp +66 -0
- package/nitrogen/generated/android/c++/JResolvedTrack.hpp +5 -23
- package/nitrogen/generated/android/c++/JRetryConfig.hpp +7 -11
- package/nitrogen/generated/android/c++/JSearchMode.hpp +9 -27
- package/nitrogen/generated/android/c++/JSearchParams.hpp +3 -9
- package/nitrogen/generated/android/c++/JStarRating.hpp +57 -0
- package/nitrogen/generated/android/c++/{JGateEvent.hpp → JThumbsRating.hpp} +15 -16
- package/nitrogen/generated/android/c++/JTrack.hpp +5 -23
- package/nitrogen/generated/android/c++/JTrackLoadEvent.hpp +0 -6
- package/nitrogen/generated/android/c++/JTransformableRequestConfig.hpp +1 -14
- package/nitrogen/generated/android/c++/JUpdateOptions.hpp +105 -0
- package/nitrogen/generated/android/c++/JVariant_HeartRating_ThumbsRating_StarRating_PercentageRating.cpp +34 -0
- package/nitrogen/generated/android/c++/JVariant_HeartRating_ThumbsRating_StarRating_PercentageRating.hpp +105 -0
- package/nitrogen/generated/android/c++/JVariant_NullType_NotificationButtonLayout.cpp +26 -0
- package/nitrogen/generated/android/c++/JVariant_NullType_NotificationButtonLayout.hpp +75 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/AndroidAudioContentType.kt +4 -4
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/AndroidOptions.kt +9 -3
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/AndroidUpdateOptions.kt +50 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/ArtworkRequestConfig.kt +4 -10
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/CarPlayNowPlayingButton.kt +3 -3
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/FormattedNavigationError.kt +2 -2
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/{Func_std__shared_ptr_Promise_std__variant_ResolvedTrack__BrowseError__std__shared_ptr_Promise_std__variant_ResolvedTrack__BrowseError_______BrowserSourceCallbackParam.kt → Func_std__shared_ptr_Promise_std__shared_ptr_Promise_std__variant_ResolvedTrack__BrowseError______BrowserSourceCallbackParam.kt} +12 -12
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/{Func_void_Output.kt → Func_void_IosOutput.kt} +9 -9
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/{Func_void_GateEvent.kt → Func_void_RemoteSetRatingEvent.kt} +9 -9
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/Func_void_bool.kt +9 -9
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/{Gate.kt → HeartRating.kt} +6 -9
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/HybridAudioBrowserSpec.kt +109 -103
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/ImageRowItem.kt +3 -24
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/{Output.kt → IosOutput.kt} +6 -6
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/IosOutputType.kt +32 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/MediaRequestConfig.kt +4 -10
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/NativeBrowserConfiguration.kt +6 -18
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/NativeRouteEntry.kt +4 -4
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/NativeUpdateOptions.kt +6 -6
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/NavigationErrorType.kt +1 -3
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/NitroAndroidUpdateOptions.kt +9 -3
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/{FavoritesMatchMode.kt → NotificationButton.kt} +8 -5
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/NotificationButtonLayout.kt +50 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/NowPlayingMetadata.kt +6 -3
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/NowPlayingUpdate.kt +3 -6
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/Options.kt +3 -3
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/{NativeAndroidSetupOptions.kt → PartialAndroidSetupPlayerOptions.kt} +5 -5
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/{NativeIOSSetupOptions.kt → PartialIOSSetupPlayerOptions.kt} +5 -5
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/PartialSetupPlayerOptions.kt +47 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/{GateDecision.kt → PercentageRating.kt} +6 -9
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/PlaybackError.kt +3 -12
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/PlaybackState.kt +6 -6
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/PlayerCapabilities.kt +2 -2
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/{GateReason.kt → RatingType.kt} +10 -5
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/{ArtworkVariants.kt → RemoteSetRatingEvent.kt} +6 -9
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/ResolvedTrack.kt +3 -12
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/RetryConfig.kt +4 -7
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/SearchMode.kt +6 -12
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/SearchParams.kt +3 -6
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/{GateEvent.kt → StarRating.kt} +6 -6
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/{FavoriteConfig.kt → ThumbsRating.kt} +6 -6
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/Track.kt +3 -12
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/TransformableRequestConfig.kt +4 -7
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/UpdateOptions.kt +53 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/Variant_HeartRating_ThumbsRating_StarRating_PercentageRating.kt +77 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/{Variant_NullType_RemoteButtonLayout.kt → Variant_NullType_NotificationButtonLayout.kt} +9 -9
- package/nitrogen/generated/ios/AudioBrowser-Swift-Cxx-Bridge.cpp +28 -139
- package/nitrogen/generated/ios/AudioBrowser-Swift-Cxx-Bridge.hpp +489 -1125
- package/nitrogen/generated/ios/AudioBrowser-Swift-Cxx-Umbrella.hpp +45 -66
- package/nitrogen/generated/ios/c++/HybridAudioBrowserSpecSwift.hpp +118 -176
- package/nitrogen/generated/ios/swift/AndroidAudioContentType.swift +8 -8
- package/nitrogen/generated/ios/swift/AndroidOptions.swift +22 -12
- package/nitrogen/generated/ios/swift/AndroidUpdateOptions.swift +119 -0
- package/nitrogen/generated/ios/swift/ArtworkRequestConfig.swift +1 -95
- package/nitrogen/generated/ios/swift/CarPlayNowPlayingButton.swift +4 -4
- package/nitrogen/generated/ios/swift/FormattedNavigationError.swift +4 -17
- package/nitrogen/generated/ios/swift/Func_std__shared_ptr_Promise_std__shared_ptr_Promise_std__variant_ResolvedTrack__BrowseError______BrowserSourceCallbackParam.swift +68 -0
- package/nitrogen/generated/ios/swift/{Func_void_Output.swift → Func_void_IosOutput.swift} +10 -10
- package/nitrogen/generated/ios/swift/{Func_void_GateEvent.swift → Func_void_RemoteSetRatingEvent.swift} +10 -10
- package/nitrogen/generated/ios/swift/Func_void_bool.swift +5 -5
- package/nitrogen/generated/ios/swift/{Func_void_std__shared_ptr_Promise_GateDecision__.swift → Func_void_std__shared_ptr_Promise_std__variant_ResolvedTrack__BrowseError___.swift} +17 -17
- package/nitrogen/generated/ios/swift/HeartRating.swift +29 -0
- package/nitrogen/generated/ios/swift/HybridAudioBrowserSpec.swift +14 -20
- package/nitrogen/generated/ios/swift/HybridAudioBrowserSpec_cxx.swift +197 -230
- package/nitrogen/generated/ios/swift/ImageRowItem.swift +2 -121
- package/nitrogen/generated/ios/swift/{Output.swift → IosOutput.swift} +7 -7
- package/nitrogen/generated/ios/swift/IosOutputType.swift +76 -0
- package/nitrogen/generated/ios/swift/MediaRequestConfig.swift +1 -107
- package/nitrogen/generated/ios/swift/NativeBrowserConfiguration.swift +22 -161
- package/nitrogen/generated/ios/swift/NativeRouteEntry.swift +19 -19
- package/nitrogen/generated/ios/swift/NativeUpdateOptions.swift +25 -12
- package/nitrogen/generated/ios/swift/NavigationErrorType.swift +0 -8
- package/nitrogen/generated/ios/swift/NitroAndroidUpdateOptions.swift +41 -12
- package/nitrogen/generated/ios/swift/{RemoteButton.swift → NotificationButton.swift} +10 -10
- package/nitrogen/generated/ios/swift/NotificationButtonLayout.swift +92 -0
- package/nitrogen/generated/ios/swift/NowPlayingMetadata.swift +48 -1
- package/nitrogen/generated/ios/swift/NowPlayingUpdate.swift +1 -19
- package/nitrogen/generated/ios/swift/Options.swift +4 -10
- package/nitrogen/generated/ios/swift/{NativeAndroidSetupOptions.swift → PartialAndroidSetupPlayerOptions.swift} +5 -5
- package/nitrogen/generated/ios/swift/{NativeIOSSetupOptions.swift → PartialIOSSetupPlayerOptions.swift} +5 -5
- package/nitrogen/generated/ios/swift/PartialSetupPlayerOptions.swift +101 -0
- package/nitrogen/generated/ios/swift/PercentageRating.swift +29 -0
- package/nitrogen/generated/ios/swift/PlaybackError.swift +2 -43
- package/nitrogen/generated/ios/swift/PlaybackState.swift +4 -4
- package/nitrogen/generated/ios/swift/PlayerCapabilities.swift +8 -27
- package/nitrogen/generated/ios/swift/RatingType.swift +60 -0
- package/nitrogen/generated/ios/swift/RemoteSetRatingEvent.swift +58 -0
- package/nitrogen/generated/ios/swift/ResolvedTrack.swift +8 -74
- package/nitrogen/generated/ios/swift/RetryConfig.swift +4 -35
- package/nitrogen/generated/ios/swift/SearchMode.swift +12 -36
- package/nitrogen/generated/ios/swift/SearchParams.swift +2 -7
- package/nitrogen/generated/ios/swift/StarRating.swift +29 -0
- package/nitrogen/generated/ios/swift/ThumbsRating.swift +29 -0
- package/nitrogen/generated/ios/swift/Track.swift +8 -74
- package/nitrogen/generated/ios/swift/TransformableRequestConfig.swift +1 -60
- package/nitrogen/generated/ios/swift/UpdateOptions.swift +143 -0
- package/nitrogen/generated/ios/swift/Variant_HeartRating_ThumbsRating_StarRating_PercentageRating.swift +20 -0
- package/nitrogen/generated/ios/swift/{Variant_NullType_RemoteButtonLayout.swift → Variant_NullType_NotificationButtonLayout.swift} +3 -3
- package/nitrogen/generated/shared/c++/AndroidAudioContentType.hpp +10 -10
- package/nitrogen/generated/shared/c++/AndroidOptions.hpp +19 -8
- package/nitrogen/generated/shared/c++/AndroidUpdateOptions.hpp +109 -0
- package/nitrogen/generated/shared/c++/ArtworkRequestConfig.hpp +2 -10
- package/nitrogen/generated/shared/c++/CarPlayNowPlayingButton.hpp +6 -6
- package/nitrogen/generated/shared/c++/EqualizerSettings.hpp +2 -0
- package/nitrogen/generated/shared/c++/FormattedNavigationError.hpp +5 -6
- package/nitrogen/generated/shared/c++/{GateEvent.hpp → HeartRating.hpp} +17 -18
- package/nitrogen/generated/shared/c++/HybridAudioBrowserSpec.cpp +18 -21
- package/nitrogen/generated/shared/c++/HybridAudioBrowserSpec.hpp +35 -44
- package/nitrogen/generated/shared/c++/ImageRowItem.hpp +2 -33
- package/nitrogen/generated/shared/c++/{Output.hpp → IosOutput.hpp} +18 -18
- package/nitrogen/generated/shared/c++/IosOutputType.hpp +112 -0
- package/nitrogen/generated/shared/c++/MediaRequestConfig.hpp +2 -10
- package/nitrogen/generated/shared/c++/NativeBrowserConfiguration.hpp +15 -31
- package/nitrogen/generated/shared/c++/NativeRouteEntry.hpp +5 -5
- package/nitrogen/generated/shared/c++/NativeUpdateOptions.hpp +7 -9
- package/nitrogen/generated/shared/c++/NavigationErrorType.hpp +0 -8
- package/nitrogen/generated/shared/c++/NitroAndroidUpdateOptions.hpp +19 -8
- package/nitrogen/generated/shared/c++/{RemoteButton.hpp → NotificationButton.hpp} +25 -25
- package/nitrogen/generated/shared/c++/NotificationButtonLayout.hpp +102 -0
- package/nitrogen/generated/shared/c++/NowPlayingMetadata.hpp +19 -3
- package/nitrogen/generated/shared/c++/NowPlayingUpdate.hpp +2 -6
- package/nitrogen/generated/shared/c++/Options.hpp +8 -8
- package/nitrogen/generated/shared/c++/{NativeAndroidSetupOptions.hpp → PartialAndroidSetupPlayerOptions.hpp} +11 -11
- package/nitrogen/generated/shared/c++/{NativeIOSSetupOptions.hpp → PartialIOSSetupPlayerOptions.hpp} +11 -11
- package/nitrogen/generated/shared/c++/PartialSetupPlayerOptions.hpp +104 -0
- package/nitrogen/generated/shared/c++/{FavoriteConfig.hpp → PercentageRating.hpp} +17 -18
- package/nitrogen/generated/shared/c++/PlaybackError.hpp +3 -18
- package/nitrogen/generated/shared/c++/PlaybackState.hpp +9 -9
- package/nitrogen/generated/shared/c++/PlayerCapabilities.hpp +6 -9
- package/nitrogen/generated/shared/c++/RatingType.hpp +96 -0
- package/nitrogen/generated/shared/c++/RemoteSetRatingEvent.hpp +94 -0
- package/nitrogen/generated/shared/c++/ResolvedTrack.hpp +5 -24
- package/nitrogen/generated/shared/c++/RetryConfig.hpp +6 -10
- package/nitrogen/generated/shared/c++/SearchMode.hpp +15 -39
- package/nitrogen/generated/shared/c++/SearchParams.hpp +2 -9
- package/nitrogen/generated/shared/c++/{Gate.hpp → StarRating.hpp} +16 -21
- package/nitrogen/generated/shared/c++/{GateDecision.hpp → ThumbsRating.hpp} +17 -23
- package/nitrogen/generated/shared/c++/Track.hpp +5 -24
- package/nitrogen/generated/shared/c++/TransformableRequestConfig.hpp +2 -6
- package/nitrogen/generated/shared/c++/UpdateOptions.hpp +111 -0
- package/package.json +5 -12
- package/src/AudioBrowser.ts +1 -4
- package/src/features/browser.ts +201 -58
- package/src/features/equalizer.ts +1 -1
- package/src/features/errors.ts +5 -71
- package/src/features/favorites.ts +1 -1
- package/src/features/index.ts +0 -2
- package/src/features/metadata.ts +15 -9
- package/src/features/network.ts +1 -1
- package/src/features/nowPlaying.ts +1 -37
- package/src/features/output.ts +22 -35
- package/src/features/playback/controls.ts +0 -8
- package/src/features/playback/index.ts +0 -1
- package/src/features/playback/playWhenReady.ts +1 -1
- package/src/features/playback/playing.ts +1 -1
- package/src/features/playback/progress.ts +13 -32
- package/src/features/playback/state.ts +1 -1
- package/src/features/playback/volume.ts +2 -2
- package/src/features/player/options.ts +110 -217
- package/src/features/player/setup.ts +175 -397
- package/src/features/queue/activeTrack.ts +1 -1
- package/src/features/queue/queue.ts +6 -17
- package/src/features/queue/repeatMode.ts +1 -1
- package/src/features/queue/shuffle.ts +1 -1
- package/src/features/rating.ts +17 -0
- package/src/features/remoteControls.ts +115 -13
- package/src/features/sleepTimer.ts +5 -24
- package/src/native.ts +0 -5
- package/src/native.web.ts +1 -4
- package/src/specs/audio-browser.nitro.ts +41 -131
- package/src/types/browser-native.ts +6 -19
- package/src/types/browser-nodes.ts +13 -160
- package/src/types/browser.ts +89 -377
- package/src/types/player.ts +69 -0
- package/src/utils/LazyNativeEmitter.ts +8 -9
- package/src/utils/NativeUpdatedValue.ts +2 -0
- package/src/web/NativeAudioBrowser.ts +158 -365
- package/src/web/TrackPlayer/Player.ts +39 -113
- package/src/web/TrackPlayer/PlaylistPlayer.ts +346 -0
- package/src/web/TrackPlayer/RepeatMode.ts +1 -1
- package/src/web/TrackPlayer/SleepTimer.ts +3 -38
- package/src/web/TrackPlayer/index.ts +1 -2
- package/src/web/browser/BrowserManager.ts +62 -231
- package/src/web/browser/NavigationErrorManager.ts +1 -3
- package/src/web/browser/SearchManager.ts +15 -11
- package/src/web/http/HttpClient.ts +35 -5
- package/src/web/http/RequestConfigBuilder.ts +63 -120
- package/src/web/player/NowPlayingManager.ts +5 -6
- package/src/web/player/OptionsManager.ts +18 -12
- package/android/src/main/java/com/audiobrowser/browser/ArtworkResolutionRegistry.kt +0 -37
- package/android/src/main/java/com/audiobrowser/browser/BrowseArtworkRegistry.kt +0 -34
- package/android/src/main/java/com/audiobrowser/browser/BrowserUrlResolution.kt +0 -299
- package/android/src/main/java/com/audiobrowser/browser/JsonArtwork.kt +0 -79
- package/android/src/main/java/com/audiobrowser/browser/SectionScope.kt +0 -42
- package/android/src/main/java/com/audiobrowser/extension/ResolvedTrackExt.kt +0 -35
- package/android/src/main/java/com/audiobrowser/player/CapabilityControls.kt +0 -172
- package/android/src/main/java/com/audiobrowser/player/EqualizerController.kt +0 -153
- package/android/src/main/java/com/audiobrowser/player/InterceptingPlayer.kt +0 -141
- package/android/src/main/java/com/audiobrowser/player/NowPlayingUpdater.kt +0 -347
- package/android/src/main/java/com/audiobrowser/player/PlaybackErrorClassifier.kt +0 -129
- package/android/src/main/java/com/audiobrowser/player/PlaybackStateMachine.kt +0 -85
- package/android/src/main/java/com/audiobrowser/player/PlaybackTimer.kt +0 -56
- package/android/src/main/java/com/audiobrowser/player/PlayerCapabilitiesExt.kt +0 -20
- package/android/src/main/java/com/audiobrowser/player/PlayerEngineFactory.kt +0 -130
- package/android/src/main/java/com/audiobrowser/player/SleepTimerManager.kt +0 -80
- package/android/src/main/java/com/audiobrowser/player/StuckRecoveryPolicy.kt +0 -50
- package/android/src/main/java/com/audiobrowser/player/VolumeFader.kt +0 -81
- package/android/src/main/java/com/audiobrowser/tls/AiaCertChaser.kt +0 -141
- package/android/src/main/java/com/audiobrowser/tls/AiaChasingTrustManager.kt +0 -37
- package/android/src/main/java/com/audiobrowser/tls/AiaTls.kt +0 -41
- package/android/src/main/java/com/audiobrowser/tls/CachingCertificateFetcher.kt +0 -209
- package/android/src/main/java/com/audiobrowser/util/ArtworkContentProvider.kt +0 -161
- package/android/src/main/java/com/audiobrowser/util/ArtworkUris.kt +0 -28
- package/android/src/main/java/com/audiobrowser/util/ArtworkVariant.kt +0 -24
- package/android/src/main/java/com/audiobrowser/util/CoilArtworkLoader.kt +0 -49
- package/android/src/main/java/com/audiobrowser/util/CoilArtworkLoaderHolder.kt +0 -36
- package/android/src/main/java/com/audiobrowser/util/OutputMonitor.kt +0 -211
- package/android/src/main/java/com/audiobrowser/util/OutputSwitcher.kt +0 -58
- package/android/src/main/java/com/audiobrowser/util/RatingFavorites.kt +0 -14
- package/android/src/test/java/com/audiobrowser/TestFixtures.kt +0 -165
- package/android/src/test/java/com/audiobrowser/browser/ArtworkResolutionRegistryTest.kt +0 -46
- package/android/src/test/java/com/audiobrowser/browser/BrowseArtworkRegistryTest.kt +0 -39
- package/android/src/test/java/com/audiobrowser/browser/BrowserManagerBuildApiRequestTest.kt +0 -114
- package/android/src/test/java/com/audiobrowser/browser/BrowserManagerLayerResolutionTest.kt +0 -141
- package/android/src/test/java/com/audiobrowser/browser/BrowserUrlResolutionTest.kt +0 -177
- package/android/src/test/java/com/audiobrowser/browser/JsonArtworkTest.kt +0 -55
- package/android/src/test/java/com/audiobrowser/browser/SectionScopeTest.kt +0 -94
- package/android/src/test/java/com/audiobrowser/player/CapabilityControlsTest.kt +0 -203
- package/android/src/test/java/com/audiobrowser/player/DynamicLoadControlTest.kt +0 -56
- package/android/src/test/java/com/audiobrowser/player/EqualizerControllerTest.kt +0 -216
- package/android/src/test/java/com/audiobrowser/player/MediaSessionSlotMappingTest.kt +0 -45
- package/android/src/test/java/com/audiobrowser/player/NowPlayingUpdaterTest.kt +0 -442
- package/android/src/test/java/com/audiobrowser/player/PlaybackErrorClassifierTest.kt +0 -190
- package/android/src/test/java/com/audiobrowser/player/PlaybackStateMachineTest.kt +0 -198
- package/android/src/test/java/com/audiobrowser/player/PlaybackTimerTest.kt +0 -137
- package/android/src/test/java/com/audiobrowser/player/PlayerEngineFactoryTest.kt +0 -36
- package/android/src/test/java/com/audiobrowser/player/RetryLoadErrorHandlingPolicyTest.kt +0 -268
- package/android/src/test/java/com/audiobrowser/player/SessionErrorMaskTest.kt +0 -68
- package/android/src/test/java/com/audiobrowser/player/StuckRecoveryPolicyTest.kt +0 -40
- package/android/src/test/java/com/audiobrowser/player/TransformingDataSourceTest.kt +0 -193
- package/android/src/test/java/com/audiobrowser/tls/AiaCertChaserTest.kt +0 -107
- package/android/src/test/java/com/audiobrowser/tls/AiaChasingTrustManagerTest.kt +0 -73
- package/android/src/test/java/com/audiobrowser/tls/CachingCertificateFetcherTest.kt +0 -75
- package/android/src/test/java/com/audiobrowser/tls/CertFixtures.kt +0 -18
- package/android/src/test/java/com/audiobrowser/util/ArtworkContentProviderTest.kt +0 -163
- package/android/src/test/java/com/audiobrowser/util/ArtworkUrisTest.kt +0 -34
- package/android/src/test/java/com/audiobrowser/util/BrowserPathHelperTest.kt +0 -28
- package/android/src/test/java/com/audiobrowser/util/CoilArtworkLoaderHolderTest.kt +0 -53
- package/android/src/test/java/com/audiobrowser/util/CoilArtworkLoaderTest.kt +0 -58
- package/android/src/test/java/com/audiobrowser/util/FakeImageLoader.kt +0 -57
- package/android/src/test/java/com/audiobrowser/util/PlayingStateFactoryTest.kt +0 -40
- package/android/src/test/java/com/audiobrowser/util/RatingFavoritesTest.kt +0 -34
- package/android/src/test/java/com/audiobrowser/util/TrackFactoryBrowseTest.kt +0 -50
- package/android/src/test/java/com/audiobrowser/util/TrackFactoryMediaIdTest.kt +0 -63
- package/android/src/test/java/com/audiobrowser/util/TrackFactoryRatingTest.kt +0 -35
- package/android/src/test/resources/certs/isrg-root-x1.pem +0 -31
- package/android/src/test/resources/certs/letsencrypt-r13.der +0 -0
- package/android/src/test/resources/certs/letsencrypt-r13.pem +0 -29
- package/android/src/test/resources/certs/stationplaylist-leaf.pem +0 -34
- package/ios/Browser/MediaResolveComposer.swift +0 -114
- package/ios/Browser/SearchDrillIn.swift +0 -44
- package/ios/Browser/SectionScope.swift +0 -35
- package/ios/Browser/TabBarEntries.swift +0 -15
- package/ios/CarPlay/CPInterfaceController+Safe.swift +0 -126
- package/ios/CarPlay/ImageRowItem+CarPlay.swift +0 -19
- package/ios/CarPlay/RNABMediaAddHandler.swift +0 -75
- package/ios/CarPlay/RNABMediaAffinityHandler.swift +0 -69
- package/ios/Extension/PlayerCapabilities+Favorite.swift +0 -20
- package/ios/Extension/RequestConfig+Copying.swift +0 -31
- package/ios/Extension/Variant+Artwork.swift +0 -49
- package/ios/NowPlayingInfo/SilentAudioPrimer.swift +0 -73
- package/ios/Player/AirPlayStallJudgement.swift +0 -25
- package/ios/Player/EndOfTrackJudgement.swift +0 -32
- package/ios/Player/MediaIntentCriteria.swift +0 -139
- package/ios/Player/PersistedPlaybackState.swift +0 -11
- package/ios/Player/PlaybackStateStore.swift +0 -27
- package/ios/Player/PlaybackTimer.swift +0 -61
- package/ios/Player/VolumeFader.swift +0 -77
- package/ios/RemoteCommand/RemoteCommandCallbacks.swift +0 -47
- package/ios/Tests/AirPlayStallJudgementTests.swift +0 -52
- package/ios/Tests/EndOfTrackJudgementTests.swift +0 -35
- package/ios/Tests/JsonModelsTests.swift +0 -58
- package/ios/Tests/MediaIntentCriteriaTests.swift +0 -170
- package/ios/Tests/MediaLoaderAssetOptionsTests.swift +0 -46
- package/ios/Tests/MediaResolveTests.swift +0 -126
- package/ios/Tests/OnceValueTests.swift +0 -79
- package/ios/Tests/PlaybackStateStoreTests.swift +0 -48
- package/ios/Tests/PlaybackTimerTests.swift +0 -55
- package/ios/Tests/PlayingStateManagerTests.swift +0 -57
- package/ios/Tests/RemoteCommandControllerTests.swift +0 -156
- package/ios/Tests/RemoteCommandTests.swift +0 -67
- package/ios/Tests/RetryManagerTests.swift +0 -89
- package/ios/Tests/SearchDrillInTests.swift +0 -63
- package/ios/Tests/SectionScopeTests.swift +0 -82
- package/ios/Tests/SleepTimerManagerTests.swift +0 -107
- package/ios/Tests/Support/ManualSleepTimerScheduler.swift +0 -47
- package/ios/Tests/TabBarEntriesTests.swift +0 -71
- package/lib/commonjs/features/browser-config.js +0 -227
- package/lib/commonjs/features/browser-config.js.map +0 -1
- package/lib/commonjs/features/carConnection.js +0 -42
- package/lib/commonjs/features/carConnection.js.map +0 -1
- package/lib/commonjs/features/gate.js +0 -149
- package/lib/commonjs/features/gate.js.map +0 -1
- package/lib/commonjs/features/playback/trackPlaybackTime.js +0 -86
- package/lib/commonjs/features/playback/trackPlaybackTime.js.map +0 -1
- package/lib/commonjs/features/player/validateOptions.js +0 -24
- package/lib/commonjs/features/player/validateOptions.js.map +0 -1
- package/lib/commonjs/utils/artwork.js +0 -31
- package/lib/commonjs/utils/artwork.js.map +0 -1
- package/lib/commonjs/web/TrackPlayer/PlaybackStateMachine.js +0 -71
- package/lib/commonjs/web/TrackPlayer/PlaybackStateMachine.js.map +0 -1
- package/lib/commonjs/web/TrackPlayer/PlaybackTimer.js +0 -34
- package/lib/commonjs/web/TrackPlayer/PlaybackTimer.js.map +0 -1
- package/lib/commonjs/web/TrackPlayer/PlayingStateFactory.js +0 -21
- package/lib/commonjs/web/TrackPlayer/PlayingStateFactory.js.map +0 -1
- package/lib/commonjs/web/TrackPlayer/QueueManager.js +0 -273
- package/lib/commonjs/web/TrackPlayer/QueueManager.js.map +0 -1
- package/lib/commonjs/web/TrackPlayer/QueuePlayer.js +0 -158
- package/lib/commonjs/web/TrackPlayer/QueuePlayer.js.map +0 -1
- package/lib/commonjs/web/TrackPlayer/VolumeFader.js +0 -75
- package/lib/commonjs/web/TrackPlayer/VolumeFader.js.map +0 -1
- package/lib/commonjs/web/browser/assertBrowsePageShape.js +0 -22
- package/lib/commonjs/web/browser/assertBrowsePageShape.js.map +0 -1
- package/lib/commonjs/web/browser/classifyTrackNavigation.js +0 -41
- package/lib/commonjs/web/browser/classifyTrackNavigation.js.map +0 -1
- package/lib/commonjs/web/browser/parseSearchResponse.js +0 -20
- package/lib/commonjs/web/browser/parseSearchResponse.js.map +0 -1
- package/lib/commonjs/web/playbackErrorKind.js +0 -57
- package/lib/commonjs/web/playbackErrorKind.js.map +0 -1
- package/lib/commonjs/web/player/MediaSessionManager.js +0 -121
- package/lib/commonjs/web/player/MediaSessionManager.js.map +0 -1
- package/lib/commonjs/web/player/RemoteCommandController.js +0 -96
- package/lib/commonjs/web/player/RemoteCommandController.js.map +0 -1
- package/lib/module/features/browser-config.js +0 -221
- package/lib/module/features/browser-config.js.map +0 -1
- package/lib/module/features/carConnection.js +0 -37
- package/lib/module/features/carConnection.js.map +0 -1
- package/lib/module/features/gate.js +0 -144
- package/lib/module/features/gate.js.map +0 -1
- package/lib/module/features/playback/trackPlaybackTime.js +0 -83
- package/lib/module/features/playback/trackPlaybackTime.js.map +0 -1
- package/lib/module/features/player/validateOptions.js +0 -20
- package/lib/module/features/player/validateOptions.js.map +0 -1
- package/lib/module/utils/artwork.js +0 -26
- package/lib/module/utils/artwork.js.map +0 -1
- package/lib/module/web/TrackPlayer/PlaybackStateMachine.js +0 -67
- package/lib/module/web/TrackPlayer/PlaybackStateMachine.js.map +0 -1
- package/lib/module/web/TrackPlayer/PlaybackTimer.js +0 -29
- package/lib/module/web/TrackPlayer/PlaybackTimer.js.map +0 -1
- package/lib/module/web/TrackPlayer/PlayingStateFactory.js +0 -17
- package/lib/module/web/TrackPlayer/PlayingStateFactory.js.map +0 -1
- package/lib/module/web/TrackPlayer/QueueManager.js +0 -269
- package/lib/module/web/TrackPlayer/QueueManager.js.map +0 -1
- package/lib/module/web/TrackPlayer/QueuePlayer.js +0 -154
- package/lib/module/web/TrackPlayer/QueuePlayer.js.map +0 -1
- package/lib/module/web/TrackPlayer/VolumeFader.js +0 -70
- package/lib/module/web/TrackPlayer/VolumeFader.js.map +0 -1
- package/lib/module/web/browser/assertBrowsePageShape.js +0 -18
- package/lib/module/web/browser/assertBrowsePageShape.js.map +0 -1
- package/lib/module/web/browser/classifyTrackNavigation.js +0 -38
- package/lib/module/web/browser/classifyTrackNavigation.js.map +0 -1
- package/lib/module/web/browser/parseSearchResponse.js +0 -16
- package/lib/module/web/browser/parseSearchResponse.js.map +0 -1
- package/lib/module/web/playbackErrorKind.js +0 -52
- package/lib/module/web/playbackErrorKind.js.map +0 -1
- package/lib/module/web/player/MediaSessionManager.js +0 -116
- package/lib/module/web/player/MediaSessionManager.js.map +0 -1
- package/lib/module/web/player/RemoteCommandController.js +0 -92
- package/lib/module/web/player/RemoteCommandController.js.map +0 -1
- package/lib/typescript/src/features/browser-config.d.ts +0 -12
- package/lib/typescript/src/features/browser-config.d.ts.map +0 -1
- package/lib/typescript/src/features/carConnection.d.ts +0 -20
- package/lib/typescript/src/features/carConnection.d.ts.map +0 -1
- package/lib/typescript/src/features/gate.d.ts +0 -78
- package/lib/typescript/src/features/gate.d.ts.map +0 -1
- package/lib/typescript/src/features/playback/trackPlaybackTime.d.ts +0 -34
- package/lib/typescript/src/features/playback/trackPlaybackTime.d.ts.map +0 -1
- package/lib/typescript/src/features/player/validateOptions.d.ts +0 -2
- package/lib/typescript/src/features/player/validateOptions.d.ts.map +0 -1
- package/lib/typescript/src/utils/artwork.d.ts +0 -19
- package/lib/typescript/src/utils/artwork.d.ts.map +0 -1
- package/nitrogen/generated/android/c++/JArtworkVariants.hpp +0 -61
- package/nitrogen/generated/android/c++/JFavoriteConfig.hpp +0 -58
- package/nitrogen/generated/android/c++/JFavoritesMatchMode.hpp +0 -58
- package/nitrogen/generated/android/c++/JFormatNowPlayingParams.hpp +0 -100
- package/nitrogen/generated/android/c++/JFunc_std__shared_ptr_Promise_RequestConfig___MediaTransformParams.hpp +0 -112
- package/nitrogen/generated/android/c++/JFunc_std__shared_ptr_Promise_RequestConfig___RequestConfig_std__optional_std__unordered_map_std__string__std__string__.hpp +0 -121
- package/nitrogen/generated/android/c++/JFunc_std__shared_ptr_Promise_RequestConfig___Track.hpp +0 -123
- package/nitrogen/generated/android/c++/JFunc_std__shared_ptr_Promise_std__optional_NowPlayingUpdate____FormatNowPlayingParams.hpp +0 -133
- package/nitrogen/generated/android/c++/JFunc_std__shared_ptr_Promise_std__optional_std__string____Track.hpp +0 -121
- package/nitrogen/generated/android/c++/JFunc_std__shared_ptr_Promise_std__shared_ptr_Promise_GateDecision_____NativeGateRequest.hpp +0 -139
- package/nitrogen/generated/android/c++/JFunc_std__shared_ptr_Promise_std__shared_ptr_Promise_TransformableRequestConfig____.hpp +0 -134
- package/nitrogen/generated/android/c++/JFunc_std__shared_ptr_Promise_std__variant_ResolvedTrack__BrowseError__std__shared_ptr_Promise_std__variant_ResolvedTrack__BrowseError_______BrowserSourceCallbackParam.hpp +0 -131
- package/nitrogen/generated/android/c++/JFunc_void_GateEvent.hpp +0 -79
- package/nitrogen/generated/android/c++/JFunc_void_Output.hpp +0 -80
- package/nitrogen/generated/android/c++/JGate.hpp +0 -62
- package/nitrogen/generated/android/c++/JGateDecision.hpp +0 -64
- package/nitrogen/generated/android/c++/JGateReason.hpp +0 -58
- package/nitrogen/generated/android/c++/JIOSOptions.hpp +0 -95
- package/nitrogen/generated/android/c++/JMediaReference.hpp +0 -58
- package/nitrogen/generated/android/c++/JNativeGateRequest.hpp +0 -74
- package/nitrogen/generated/android/c++/JNativeSetupPlayerOptions.hpp +0 -182
- package/nitrogen/generated/android/c++/JNitroIOSUpdateOptions.hpp +0 -96
- package/nitrogen/generated/android/c++/JOutputType.hpp +0 -82
- package/nitrogen/generated/android/c++/JPlaybackErrorKind.hpp +0 -76
- package/nitrogen/generated/android/c++/JRemoteButtonLayout.hpp +0 -86
- package/nitrogen/generated/android/c++/JStallReason.hpp +0 -58
- package/nitrogen/generated/android/c++/JTrackRequest.hpp +0 -93
- package/nitrogen/generated/android/c++/JVariant_Boolean_FavoriteConfig.cpp +0 -26
- package/nitrogen/generated/android/c++/JVariant_Boolean_FavoriteConfig.hpp +0 -71
- package/nitrogen/generated/android/c++/JVariant_NullType_RemoteButtonLayout.cpp +0 -26
- package/nitrogen/generated/android/c++/JVariant_NullType_RemoteButtonLayout.hpp +0 -75
- package/nitrogen/generated/android/c++/JVariant_ResolvedTrack_BrowseError_Promise_BrowseResult_.cpp +0 -41
- package/nitrogen/generated/android/c++/JVariant_ResolvedTrack_BrowseError_Promise_BrowseResult_.hpp +0 -121
- package/nitrogen/generated/android/c++/JVariant_String_ArtworkVariants.cpp +0 -26
- package/nitrogen/generated/android/c++/JVariant_String_ArtworkVariants.hpp +0 -70
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/FormatNowPlayingParams.kt +0 -50
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/Func_std__shared_ptr_Promise_RequestConfig___MediaTransformParams.kt +0 -80
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/Func_std__shared_ptr_Promise_RequestConfig___RequestConfig_std__optional_std__unordered_map_std__string__std__string__.kt +0 -80
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/Func_std__shared_ptr_Promise_RequestConfig___Track.kt +0 -80
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/Func_std__shared_ptr_Promise_std__optional_NowPlayingUpdate____FormatNowPlayingParams.kt +0 -80
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/Func_std__shared_ptr_Promise_std__optional_std__string____Track.kt +0 -80
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/Func_std__shared_ptr_Promise_std__shared_ptr_Promise_GateDecision_____NativeGateRequest.kt +0 -80
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/Func_std__shared_ptr_Promise_std__shared_ptr_Promise_TransformableRequestConfig____.kt +0 -80
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/IOSOptions.kt +0 -44
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/MediaReference.kt +0 -23
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/NativeGateRequest.kt +0 -44
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/NativeSetupPlayerOptions.kt +0 -66
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/NitroIOSUpdateOptions.kt +0 -44
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/OutputType.kt +0 -31
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/PlaybackErrorKind.kt +0 -29
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/RemoteButton.kt +0 -26
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/RemoteButtonLayout.kt +0 -44
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/StallReason.kt +0 -23
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/TrackRequest.kt +0 -44
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/Variant_Boolean_FavoriteConfig.kt +0 -53
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/Variant_ResolvedTrack_BrowseError_Promise_BrowseResult_.kt +0 -65
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/Variant_String_ArtworkVariants.kt +0 -53
- package/nitrogen/generated/ios/swift/ArtworkVariants.swift +0 -34
- package/nitrogen/generated/ios/swift/FavoriteConfig.swift +0 -29
- package/nitrogen/generated/ios/swift/FavoritesMatchMode.swift +0 -40
- package/nitrogen/generated/ios/swift/FormatNowPlayingParams.swift +0 -67
- package/nitrogen/generated/ios/swift/Func_std__shared_ptr_Promise_RequestConfig___MediaTransformParams.swift +0 -54
- package/nitrogen/generated/ios/swift/Func_std__shared_ptr_Promise_RequestConfig___RequestConfig_std__optional_std__unordered_map_std__string__std__string__.swift +0 -69
- package/nitrogen/generated/ios/swift/Func_std__shared_ptr_Promise_RequestConfig___Track.swift +0 -54
- package/nitrogen/generated/ios/swift/Func_std__shared_ptr_Promise_std__optional_NowPlayingUpdate____FormatNowPlayingParams.swift +0 -60
- package/nitrogen/generated/ios/swift/Func_std__shared_ptr_Promise_std__optional_std__string____Track.swift +0 -60
- package/nitrogen/generated/ios/swift/Func_std__shared_ptr_Promise_std__shared_ptr_Promise_GateDecision_____NativeGateRequest.swift +0 -61
- package/nitrogen/generated/ios/swift/Func_std__shared_ptr_Promise_std__shared_ptr_Promise_TransformableRequestConfig____.swift +0 -61
- package/nitrogen/generated/ios/swift/Func_std__shared_ptr_Promise_std__variant_ResolvedTrack__BrowseError__std__shared_ptr_Promise_std__variant_ResolvedTrack__BrowseError_______BrowserSourceCallbackParam.swift +0 -77
- package/nitrogen/generated/ios/swift/Func_void_GateDecision.swift +0 -46
- package/nitrogen/generated/ios/swift/Func_void_TransformableRequestConfig.swift +0 -46
- package/nitrogen/generated/ios/swift/Func_void_std__optional_NowPlayingUpdate_.swift +0 -46
- package/nitrogen/generated/ios/swift/Func_void_std__optional_std__string_.swift +0 -53
- package/nitrogen/generated/ios/swift/Func_void_std__shared_ptr_Promise_TransformableRequestConfig__.swift +0 -66
- package/nitrogen/generated/ios/swift/Func_void_std__variant_ResolvedTrack__BrowseError__std__shared_ptr_Promise_std__variant_ResolvedTrack__BrowseError____.swift +0 -81
- package/nitrogen/generated/ios/swift/Gate.swift +0 -47
- package/nitrogen/generated/ios/swift/GateDecision.swift +0 -40
- package/nitrogen/generated/ios/swift/GateEvent.swift +0 -29
- package/nitrogen/generated/ios/swift/GateReason.swift +0 -40
- package/nitrogen/generated/ios/swift/IOSOptions.swift +0 -51
- package/nitrogen/generated/ios/swift/MediaReference.swift +0 -40
- package/nitrogen/generated/ios/swift/NativeGateRequest.swift +0 -58
- package/nitrogen/generated/ios/swift/NativeSetupPlayerOptions.swift +0 -206
- package/nitrogen/generated/ios/swift/NitroIOSUpdateOptions.swift +0 -90
- package/nitrogen/generated/ios/swift/OutputType.swift +0 -72
- package/nitrogen/generated/ios/swift/PlaybackErrorKind.swift +0 -64
- package/nitrogen/generated/ios/swift/RemoteButtonLayout.swift +0 -57
- package/nitrogen/generated/ios/swift/StallReason.swift +0 -40
- package/nitrogen/generated/ios/swift/TrackRequest.swift +0 -106
- package/nitrogen/generated/ios/swift/Variant_Bool_FavoriteConfig.swift +0 -18
- package/nitrogen/generated/ios/swift/Variant_ResolvedTrack_BrowseError_Promise_BrowseResult_.swift +0 -19
- package/nitrogen/generated/ios/swift/Variant_String_ArtworkVariants.swift +0 -18
- package/nitrogen/generated/shared/c++/ArtworkVariants.hpp +0 -87
- package/nitrogen/generated/shared/c++/FavoritesMatchMode.hpp +0 -76
- package/nitrogen/generated/shared/c++/FormatNowPlayingParams.hpp +0 -110
- package/nitrogen/generated/shared/c++/GateReason.hpp +0 -76
- package/nitrogen/generated/shared/c++/IOSOptions.hpp +0 -91
- package/nitrogen/generated/shared/c++/MediaReference.hpp +0 -76
- package/nitrogen/generated/shared/c++/NativeGateRequest.hpp +0 -97
- package/nitrogen/generated/shared/c++/NativeSetupPlayerOptions.hpp +0 -138
- package/nitrogen/generated/shared/c++/NitroIOSUpdateOptions.hpp +0 -92
- package/nitrogen/generated/shared/c++/OutputType.hpp +0 -108
- package/nitrogen/generated/shared/c++/PlaybackErrorKind.hpp +0 -100
- package/nitrogen/generated/shared/c++/RemoteButtonLayout.hpp +0 -94
- package/nitrogen/generated/shared/c++/StallReason.hpp +0 -76
- package/nitrogen/generated/shared/c++/TrackRequest.hpp +0 -93
- package/src/codegen-no-config-variant.test.ts +0 -70
- package/src/features/browser-config.test.ts +0 -110
- package/src/features/browser-config.ts +0 -293
- package/src/features/browser.test.ts +0 -19
- package/src/features/carConnection.ts +0 -36
- package/src/features/gate.test.ts +0 -72
- package/src/features/gate.ts +0 -155
- package/src/features/playback/trackPlaybackTime.test.ts +0 -80
- package/src/features/playback/trackPlaybackTime.ts +0 -101
- package/src/features/player/options.test.ts +0 -38
- package/src/features/player/setup.test.ts +0 -125
- package/src/features/player/validateOptions.ts +0 -22
- package/src/features/queue/queue.test.ts +0 -36
- package/src/public-surface.test.ts +0 -116
- package/src/utils/artwork.ts +0 -30
- package/src/web/NativeAudioBrowser.playWhenReady.test.ts +0 -301
- package/src/web/TrackPlayer/PlaybackStateMachine.test.ts +0 -139
- package/src/web/TrackPlayer/PlaybackStateMachine.ts +0 -82
- package/src/web/TrackPlayer/PlaybackTimer.test.ts +0 -67
- package/src/web/TrackPlayer/PlaybackTimer.ts +0 -33
- package/src/web/TrackPlayer/Player.dispatch.test.ts +0 -229
- package/src/web/TrackPlayer/Player.load.test.ts +0 -86
- package/src/web/TrackPlayer/PlayingStateFactory.test.ts +0 -51
- package/src/web/TrackPlayer/PlayingStateFactory.ts +0 -24
- package/src/web/TrackPlayer/QueueManager.test.ts +0 -289
- package/src/web/TrackPlayer/QueueManager.ts +0 -302
- package/src/web/TrackPlayer/QueuePlayer.ts +0 -188
- package/src/web/TrackPlayer/VolumeFader.ts +0 -74
- package/src/web/browser/__tests__/layer-resolver.test.ts +0 -69
- package/src/web/browser/assertBrowsePageShape.test.ts +0 -27
- package/src/web/browser/assertBrowsePageShape.ts +0 -27
- package/src/web/browser/classifyTrackNavigation.test.ts +0 -41
- package/src/web/browser/classifyTrackNavigation.ts +0 -35
- package/src/web/browser/parseSearchResponse.test.ts +0 -25
- package/src/web/browser/parseSearchResponse.ts +0 -15
- package/src/web/http/RequestConfigBuilder.test.ts +0 -59
- package/src/web/playbackErrorKind.test.ts +0 -55
- package/src/web/playbackErrorKind.ts +0 -56
- package/src/web/player/MediaSessionManager.test.ts +0 -220
- package/src/web/player/MediaSessionManager.ts +0 -151
- package/src/web/player/NowPlayingManager.test.ts +0 -46
- package/src/web/player/RemoteCommandController.test.ts +0 -171
- package/src/web/player/RemoteCommandController.ts +0 -166
|
@@ -48,95 +48,54 @@ export type BrowseError = {
|
|
|
48
48
|
* Can be either a ResolvedTrack (success) or BrowseError (failure).
|
|
49
49
|
*/
|
|
50
50
|
export type BrowseResult = ResolvedTrack | BrowseError;
|
|
51
|
-
export type BrowserSourceCallback = (param: BrowserSourceCallbackParam) =>
|
|
51
|
+
export type BrowserSourceCallback = (param: BrowserSourceCallbackParam) => Promise<BrowseResult>;
|
|
52
52
|
/**
|
|
53
|
-
* Search mode
|
|
54
|
-
*
|
|
55
|
-
* `
|
|
56
|
-
*
|
|
57
|
-
*
|
|
58
|
-
* - `
|
|
59
|
-
*
|
|
60
|
-
*
|
|
61
|
-
* - `song`: an individual track
|
|
62
|
-
* - `playlist`: a named playlist / mix
|
|
63
|
-
* - `station`: a live radio station / channel
|
|
64
|
-
* - `podcast`: a podcast (series, episode, or station)
|
|
65
|
-
* - `audiobook`: an audiobook
|
|
66
|
-
* - `news`: news content
|
|
67
|
-
* - `music`: the music vertical, as opposed to talk/podcasts/audiobooks
|
|
68
|
-
* ("play music" on iOS, via the music media type)
|
|
69
|
-
* - `music-video` / `movie` / `tv-show` / `tv-show-episode`: video kinds
|
|
70
|
-
* (an audio app cannot play these; surfaced so consumers may special-case —
|
|
71
|
-
* ignoring them degrades to an unstructured search)
|
|
72
|
-
*
|
|
73
|
-
* NOTE: there is intentionally no `genre`/`artist`/`album` member — those are
|
|
74
|
-
* filters, not result shapes. Read them from `SearchParams.genre`/`.artist`/
|
|
75
|
-
* `.album` directly.
|
|
53
|
+
* Search mode types for structured voice search.
|
|
54
|
+
*
|
|
55
|
+
* - `any`: Play any content - smart shuffle or last playlist (query will be empty string)
|
|
56
|
+
* - `genre`: Search by genre
|
|
57
|
+
* - `artist`: Search by artist
|
|
58
|
+
* - `album`: Search by album
|
|
59
|
+
* - `song`: Search by song/track title
|
|
60
|
+
* - `playlist`: Search by playlist name
|
|
76
61
|
*
|
|
77
62
|
* @see BrowserConfiguration.search
|
|
78
63
|
* @see SearchParams
|
|
79
64
|
*/
|
|
80
|
-
export type SearchMode = 'any' | '
|
|
81
|
-
/**
|
|
82
|
-
* The media-reference axis from a voice intent.
|
|
83
|
-
*
|
|
84
|
-
* - `my`: the user's own collection ("play my favorites") — routed to the
|
|
85
|
-
* `search` source so the consumer resolves it against their library.
|
|
86
|
-
* - `unknown`: no reference (the default; Android always emits this).
|
|
87
|
-
*
|
|
88
|
-
* NOTE: "currently playing" ("play this") is resolved natively (resume) and
|
|
89
|
-
* never reaches the consumer, so it is not a value here.
|
|
90
|
-
*/
|
|
91
|
-
export type MediaReference = 'my' | 'unknown';
|
|
65
|
+
export type SearchMode = 'any' | 'genre' | 'artist' | 'album' | 'song' | 'playlist';
|
|
92
66
|
/**
|
|
93
|
-
* Structured search parameters
|
|
94
|
-
*
|
|
95
|
-
*
|
|
96
|
-
* - "play something"
|
|
97
|
-
* - "play music"
|
|
98
|
-
* - "play jazz"
|
|
99
|
-
* - "play
|
|
100
|
-
* - "play
|
|
101
|
-
* - "play
|
|
102
|
-
* - "play my favorites" → reference='my', query=""
|
|
103
|
-
* - "play a jazz podcast" → mode='podcast', genre="jazz"
|
|
67
|
+
* Structured search parameters from voice commands.
|
|
68
|
+
*
|
|
69
|
+
* Voice commands are parsed by Android into structured parameters:
|
|
70
|
+
* - "play something" → mode=null, query="something"
|
|
71
|
+
* - "play music" → mode='any', query=""
|
|
72
|
+
* - "play jazz" → mode='genre', genre="jazz", query="jazz"
|
|
73
|
+
* - "play michael jackson" → mode='artist', artist="michael jackson", query="michael jackson"
|
|
74
|
+
* - "play thriller by michael jackson" → mode='album', album="thriller", artist="michael jackson"
|
|
75
|
+
* - "play billie jean" → mode='song', title="billie jean", query="billie jean"
|
|
104
76
|
*/
|
|
105
77
|
export interface SearchParams {
|
|
106
|
-
/**
|
|
78
|
+
/** The search mode indicating what type of search is being performed, or null for unstructured search */
|
|
107
79
|
mode?: SearchMode;
|
|
108
80
|
/**
|
|
109
81
|
* The original search query string (always present, but may be empty string "").
|
|
110
|
-
*
|
|
82
|
+
* When mode='any' with empty string query, return any content you think the user would like
|
|
111
83
|
* (e.g., recently played, favorites, or smart shuffle).
|
|
112
84
|
*/
|
|
113
85
|
query: string;
|
|
114
|
-
/** Genre
|
|
86
|
+
/** Genre name for genre-specific search */
|
|
115
87
|
genre?: string;
|
|
116
|
-
/** Artist
|
|
88
|
+
/** Artist name for artist/album/song search */
|
|
117
89
|
artist?: string;
|
|
118
|
-
/** Album
|
|
90
|
+
/** Album name for album-specific search */
|
|
119
91
|
album?: string;
|
|
120
|
-
/**
|
|
92
|
+
/** Song title for song-specific search */
|
|
121
93
|
title?: string;
|
|
122
|
-
/** Playlist name
|
|
94
|
+
/** Playlist name for playlist-specific search */
|
|
123
95
|
playlist?: string;
|
|
124
|
-
/**
|
|
125
|
-
* Media-reference axis. `'my'` = resolve against the user's own collection
|
|
126
|
-
* ("play my favorites"); `'unknown'` = no reference (the default). Android
|
|
127
|
-
* always emits `'unknown'`.
|
|
128
|
-
*
|
|
129
|
-
* Resolve it however your collection lives: a `SearchSourceCallback` can read
|
|
130
|
-
* `params.reference` and return the matching tracks directly, or — when using
|
|
131
|
-
* an HTTP `TransformableRequestConfig` — branch in `transform` on
|
|
132
|
-
* `request.query.reference === 'my'` to rewrite the request toward a
|
|
133
|
-
* favorites endpoint (e.g. injecting locally-stored identifiers into the body).
|
|
134
|
-
*/
|
|
135
|
-
reference: MediaReference;
|
|
136
96
|
}
|
|
137
97
|
export type SearchSourceCallback = (params: SearchParams) => Promise<Track[]>;
|
|
138
98
|
export type RequestConfigTransformer = (request: RequestConfig, routeParams?: Record<string, string>) => Promise<RequestConfig>;
|
|
139
|
-
export type RequestConfigTransformerSync = (request: RequestConfig, routeParams?: Record<string, string>) => RequestConfig;
|
|
140
99
|
export type HttpMethod = 'GET' | 'POST' | 'PUT' | 'DELETE' | 'PATCH' | 'HEAD' | 'OPTIONS';
|
|
141
100
|
export interface RequestConfig {
|
|
142
101
|
method?: HttpMethod;
|
|
@@ -225,7 +184,6 @@ export interface MediaTransformParams {
|
|
|
225
184
|
* ```
|
|
226
185
|
*/
|
|
227
186
|
export type MediaRequestConfigTransformer = (params: MediaTransformParams) => Promise<RequestConfig>;
|
|
228
|
-
export type MediaRequestConfigTransformerSync = (params: MediaTransformParams) => RequestConfig;
|
|
229
187
|
/**
|
|
230
188
|
* Request configuration that supports async transformation.
|
|
231
189
|
* Extends RequestConfig with a transform callback for dynamic request modification.
|
|
@@ -234,11 +192,6 @@ export type MediaRequestConfigTransformerSync = (params: MediaTransformParams) =
|
|
|
234
192
|
* before the request is made. This is useful for adding dynamic headers,
|
|
235
193
|
* signing URLs, or other request-time modifications.
|
|
236
194
|
*
|
|
237
|
-
* Note: when a layer provides a transform, the layer's other static fields
|
|
238
|
-
* are NOT merged — the transform receives the merged config from the layers
|
|
239
|
-
* below it, and its return value replaces that config entirely. Spread the
|
|
240
|
-
* incoming request (`{ ...request, ... }`) to keep its fields.
|
|
241
|
-
*
|
|
242
195
|
* @example
|
|
243
196
|
* ```typescript
|
|
244
197
|
* const config: TransformableRequestConfig = {
|
|
@@ -254,42 +207,8 @@ export type MediaRequestConfigTransformerSync = (params: MediaTransformParams) =
|
|
|
254
207
|
* ```
|
|
255
208
|
*/
|
|
256
209
|
export interface TransformableRequestConfig extends RequestConfig {
|
|
257
|
-
/** Async per-request transform. When both are set, runs BEFORE `transformSync`. */
|
|
258
210
|
transform?: RequestConfigTransformer;
|
|
259
|
-
/** Sync per-request transform (no Promise allocation). When both are set, runs AFTER `transform`. */
|
|
260
|
-
transformSync?: RequestConfigTransformerSync;
|
|
261
211
|
}
|
|
262
|
-
/**
|
|
263
|
-
* Lazily builds the config for a `request` or `browse` layer. Reach for it when
|
|
264
|
-
* the config depends on a value that changes now and then — a base URL, a
|
|
265
|
-
* locale — but not on every request.
|
|
266
|
-
*
|
|
267
|
-
* How it differs from a `transform`: **a resolver runs once and its result is
|
|
268
|
-
* cached**, then reused for every browse/search/media/artwork request — whereas a
|
|
269
|
-
* `transform` runs on *every* request. The resolver re-runs only when you call
|
|
270
|
-
* `invalidateAllContent()`, so call that after (say) an environment or locale
|
|
271
|
-
* switch to pick up the new value.
|
|
272
|
-
*
|
|
273
|
-
* Return the config directly — no `async`/Promise needed in the common case — or
|
|
274
|
-
* a `Promise` when you must await (e.g. fetching a token). The cached config
|
|
275
|
-
* flows through the normal layering, so its `query` merges additively and its
|
|
276
|
-
* `baseUrl` overrides, exactly like a static config; it may also include a
|
|
277
|
-
* `transform` if you additionally need genuine per-request logic.
|
|
278
|
-
*
|
|
279
|
-
* @example
|
|
280
|
-
* ```typescript
|
|
281
|
-
* configureBrowser({
|
|
282
|
-
* // Read once and cached; re-read after the next invalidateAllContent().
|
|
283
|
-
* request: () => ({ baseUrl: currentBaseUrl() }),
|
|
284
|
-
* // Browse-only locale param, merged into every browse request's query.
|
|
285
|
-
* browse: () => ({ query: { hl: currentLocale() } }),
|
|
286
|
-
* })
|
|
287
|
-
*
|
|
288
|
-
* // Async resolver (e.g. awaiting a token) — still runs once, then cached:
|
|
289
|
-
* request: async () => ({ headers: { authorization: await freshToken() } })
|
|
290
|
-
* ```
|
|
291
|
-
*/
|
|
292
|
-
export type RequestConfigResolver = () => TransformableRequestConfig | Promise<TransformableRequestConfig>;
|
|
293
212
|
/**
|
|
294
213
|
* Configuration for artwork image requests
|
|
295
214
|
*
|
|
@@ -415,13 +334,13 @@ export interface MediaRequestConfig extends TransformableRequestConfig {
|
|
|
415
334
|
*
|
|
416
335
|
* Called for each track to generate the final request configuration.
|
|
417
336
|
* Receives the full Track object, allowing URL generation based on
|
|
418
|
-
* track metadata (
|
|
337
|
+
* track metadata (artist, album, src, etc.).
|
|
419
338
|
*
|
|
420
339
|
* The returned config is merged with base configs, then passed to
|
|
421
340
|
* `transform` if provided.
|
|
422
341
|
*
|
|
423
342
|
* @param track - The track being requested
|
|
424
|
-
* @returns Request configuration for this specific track
|
|
343
|
+
* @returns Request configuration for this specific track
|
|
425
344
|
*
|
|
426
345
|
* @example
|
|
427
346
|
* ```typescript
|
|
@@ -431,17 +350,14 @@ export interface MediaRequestConfig extends TransformableRequestConfig {
|
|
|
431
350
|
* })
|
|
432
351
|
* ```
|
|
433
352
|
*/
|
|
434
|
-
/** Async per-track resolution. When both are set, runs (merged) BEFORE `resolveSync`. */
|
|
435
353
|
resolve?: (track: Track) => Promise<RequestConfig>;
|
|
436
|
-
/** Sync per-track resolution (no Promise allocation). When both are set, runs (merged) AFTER `resolve`. */
|
|
437
|
-
resolveSync?: (track: Track) => RequestConfig;
|
|
438
354
|
}
|
|
439
355
|
export interface ArtworkRequestConfig extends RequestConfig {
|
|
440
356
|
/**
|
|
441
357
|
* Per-track request resolution callback.
|
|
442
358
|
*
|
|
443
359
|
* Called for each track to generate the request configuration based on
|
|
444
|
-
* track metadata (
|
|
360
|
+
* track metadata (artist, album, src, etc.).
|
|
445
361
|
*
|
|
446
362
|
* The returned config is merged with base configs, then passed to
|
|
447
363
|
* `transform` if provided.
|
|
@@ -459,10 +375,7 @@ export interface ArtworkRequestConfig extends RequestConfig {
|
|
|
459
375
|
* }
|
|
460
376
|
* ```
|
|
461
377
|
*/
|
|
462
|
-
/** Async per-track resolution. When both are set, runs (merged) BEFORE `resolveSync`. */
|
|
463
378
|
resolve?: (track: Track) => Promise<RequestConfig>;
|
|
464
|
-
/** Sync per-track resolution (no Promise allocation). When both are set, runs (merged) AFTER `resolve`. */
|
|
465
|
-
resolveSync?: (track: Track) => RequestConfig;
|
|
466
379
|
/**
|
|
467
380
|
* Final transformation callback for media/artwork requests.
|
|
468
381
|
*
|
|
@@ -492,10 +405,7 @@ export interface ArtworkRequestConfig extends RequestConfig {
|
|
|
492
405
|
* }
|
|
493
406
|
* ```
|
|
494
407
|
*/
|
|
495
|
-
/** Async final transform. When both are set, runs BEFORE `transformSync`. */
|
|
496
408
|
transform?: MediaRequestConfigTransformer;
|
|
497
|
-
/** Sync final transform (no Promise allocation). When both are set, runs AFTER `transform`. */
|
|
498
|
-
transformSync?: MediaRequestConfigTransformerSync;
|
|
499
409
|
/**
|
|
500
410
|
* Query parameter names for automatic context injection from CarPlay/Android Auto.
|
|
501
411
|
*
|
|
@@ -521,19 +431,6 @@ export interface ArtworkRequestConfig extends RequestConfig {
|
|
|
521
431
|
*/
|
|
522
432
|
imageQueryParams?: ImageQueryParams;
|
|
523
433
|
}
|
|
524
|
-
/**
|
|
525
|
-
* Source for a browse container's contents.
|
|
526
|
-
*
|
|
527
|
-
* **Response shape (HTTP / `TransformableRequestConfig`):** the endpoint must
|
|
528
|
-
* return a single **page object** — a {@link ResolvedTrack}
|
|
529
|
-
* (`{ title, url?, children: Track[] }`). The `children` array holds the rows
|
|
530
|
-
* shown for the container; each child is a playable leaf (`src`) or a navigable
|
|
531
|
-
* sub-container (`url`). A callback / static `ResolvedTrack` returns the same
|
|
532
|
-
* page object directly.
|
|
533
|
-
*
|
|
534
|
-
* {@link SearchSource} and {@link TabsSource} HTTP endpoints return this same
|
|
535
|
-
* page shape; only the meaning of `children` differs (results / tabs).
|
|
536
|
-
*/
|
|
537
434
|
export type BrowserSource = ResolvedTrack | BrowserSourceCallback | TransformableRequestConfig;
|
|
538
435
|
export type RouteSource = BrowserSourceCallback | TransformableRequestConfig;
|
|
539
436
|
/**
|
|
@@ -558,107 +455,33 @@ export type RouteConfig = {
|
|
|
558
455
|
/** Override artwork config for this route. */
|
|
559
456
|
artwork?: ArtworkRequestConfig;
|
|
560
457
|
};
|
|
561
|
-
export type TabsSourceCallback = () =>
|
|
458
|
+
export type TabsSourceCallback = () => Promise<Track[]>;
|
|
562
459
|
/**
|
|
563
460
|
* Tab source configuration for navigation tabs.
|
|
564
461
|
*
|
|
565
|
-
* When using API configuration (TransformableRequestConfig), the request path
|
|
566
|
-
*
|
|
567
|
-
* `{ title?, children: Track[] }` whose `children` are the tabs — the same
|
|
568
|
-
* shape a browse endpoint returns. Callback/static sources provide `Track[]`
|
|
569
|
-
* directly.
|
|
462
|
+
* When using API configuration (TransformableRequestConfig), the request path defaults to '/'
|
|
463
|
+
* and should return an array of Track objects with urls representing the tabs.
|
|
570
464
|
*/
|
|
571
465
|
export type TabsSource = Track[] | TabsSourceCallback | TransformableRequestConfig;
|
|
572
466
|
/**
|
|
573
467
|
* Search source configuration for handling search requests.
|
|
574
468
|
*
|
|
575
|
-
* **Response shape (HTTP / `TransformableRequestConfig`):** the endpoint must
|
|
576
|
-
* return a page object — `{ title?, children: Track[] }` — whose `children`
|
|
577
|
-
* are the result rows, the same shape a browse endpoint returns. (The web
|
|
578
|
-
* implementation additionally accepts a bare `Track[]` for back-compat;
|
|
579
|
-
* iOS/Android do not.) Callback sources return `Track[]` directly.
|
|
580
|
-
*
|
|
581
469
|
* @see BrowserConfiguration.search
|
|
582
470
|
*/
|
|
583
471
|
export type SearchSource = SearchSourceCallback | TransformableRequestConfig;
|
|
584
|
-
/**
|
|
585
|
-
* How ids passed to `setFavorites` are matched against a
|
|
586
|
-
* track's `src` to hydrate its `favorited` flag.
|
|
587
|
-
*
|
|
588
|
-
* - `'exact'`: the id must equal `src`.
|
|
589
|
-
* - `'partial'`: the id matches if it appears as a complete path segment within
|
|
590
|
-
* `src` (delimited by `/`, `?`, `#`, or the string boundaries). Useful when
|
|
591
|
-
* favorites are stored as a stable identifier that is embedded in — but not
|
|
592
|
-
* equal to — the playable `src` URL.
|
|
593
|
-
*
|
|
594
|
-
* @example
|
|
595
|
-
* ```text
|
|
596
|
-
* setFavorites(['abc123']) + track.src = '/stream/jazz-fm/abc123'
|
|
597
|
-
*
|
|
598
|
-
* 'exact' 'abc123' === '/stream/jazz-fm/abc123' → not favorited
|
|
599
|
-
* 'partial' 'abc123' is the last segment of the src → favorited
|
|
600
|
-
*
|
|
601
|
-
* setFavorites(['https://cdn.example.com/jazz-fm/abc123.mp3'])
|
|
602
|
-
*
|
|
603
|
-
* 'exact' id === src → favorited
|
|
604
|
-
* 'partial' id is a full segment of src → favorited
|
|
605
|
-
* ```
|
|
606
|
-
*/
|
|
607
|
-
export type FavoritesMatchMode = 'exact' | 'partial';
|
|
608
|
-
/**
|
|
609
|
-
* Object form of the `favorite` capability — enables favoriting with an explicit
|
|
610
|
-
* {@link FavoritesMatchMode}. (A bare `true` is shorthand for `{ match: 'exact' }`.)
|
|
611
|
-
*/
|
|
612
|
-
export interface FavoriteConfig {
|
|
613
|
-
match: FavoritesMatchMode;
|
|
614
|
-
}
|
|
615
472
|
export type BrowserConfiguration = {
|
|
616
473
|
/**
|
|
617
|
-
* Initial navigation path. Setting this triggers initial navigation to the
|
|
618
|
-
* specified path. When unset, the first tab's URL is used; when there are
|
|
619
|
-
* no tabs either, `/`.
|
|
474
|
+
* Initial navigation path. Setting this triggers initial navigation to the specified path.
|
|
620
475
|
*/
|
|
621
476
|
path?: string | undefined;
|
|
622
477
|
/**
|
|
623
|
-
* Shared request settings applied to
|
|
624
|
-
*
|
|
625
|
-
* route — so request → `<kind>` → route. Specific configs override these
|
|
626
|
-
* defaults.
|
|
627
|
-
*
|
|
628
|
-
* Either a static {@link TransformableRequestConfig} (its optional `transform`
|
|
629
|
-
* runs per request), or a {@link RequestConfigResolver} thunk resolved once per
|
|
630
|
-
* content generation and re-resolved on `invalidateAllContent()`. Reach for the
|
|
631
|
-
* resolver when a value changes rarely (a base URL, an auth host) so it is read
|
|
632
|
-
* once per generation and merged natively — rather than recomputed on every
|
|
633
|
-
* browse/search/media/artwork request via a `transform`.
|
|
634
|
-
*/
|
|
635
|
-
request?: TransformableRequestConfig | RequestConfigResolver;
|
|
636
|
-
/**
|
|
637
|
-
* Request shaping applied to every browse request (all routes, including the
|
|
638
|
-
* implicit default), layered between `request` and the matched route:
|
|
639
|
-
* `request` → `browse` → route. This is the browse-kind analogue of `media`
|
|
640
|
-
* and `artwork` — the place for browse-only concerns (e.g. a content-type
|
|
641
|
-
* marker query, or a locale param) that should not leak onto media/artwork.
|
|
642
|
-
*
|
|
643
|
-
* A browse path with no matching `routes` entry is fetched using
|
|
644
|
-
* `request` + `browse` applied to the path, so this also defines the default
|
|
645
|
-
* browse behaviour. Register a `routes['*']` entry only to override that
|
|
646
|
-
* default with a callback / static / bespoke config.
|
|
647
|
-
*
|
|
648
|
-
* Like `request`, this may be a static {@link TransformableRequestConfig} or a
|
|
649
|
-
* {@link RequestConfigResolver} thunk (resolved once per content generation) —
|
|
650
|
-
* e.g. a locale query param that only changes when `invalidateAllContent()` is
|
|
651
|
-
* called. A resolver's `query` is merged additively into each browse request's
|
|
652
|
-
* query, exactly as a static `query` would be.
|
|
653
|
-
*/
|
|
654
|
-
browse?: TransformableRequestConfig | RequestConfigResolver;
|
|
655
|
-
/**
|
|
656
|
-
* Media/audio stream request configuration.
|
|
657
|
-
*
|
|
658
|
-
* Unlike `request`/`browse`, this does not accept a resolver thunk. For
|
|
659
|
-
* values that change at runtime, use the shared `request` resolver (it
|
|
660
|
-
* applies to media requests too), a per-track `resolve`, or a `transform`.
|
|
478
|
+
* Shared request settings applied to all HTTP requests (browse, search, media, artwork).
|
|
479
|
+
* Specific configs override these defaults.
|
|
661
480
|
*/
|
|
481
|
+
request?: TransformableRequestConfig;
|
|
482
|
+
/** Default browse source when no matching route is found. */
|
|
483
|
+
browse?: BrowserSource;
|
|
484
|
+
/** Media/audio stream request configuration. */
|
|
662
485
|
media?: MediaRequestConfig;
|
|
663
486
|
/**
|
|
664
487
|
* Configuration for artwork/image requests.
|
|
@@ -668,9 +491,8 @@ export type BrowserConfiguration = {
|
|
|
668
491
|
* Artwork URLs are transformed when tracks are processed (before being passed to media controllers
|
|
669
492
|
* like Android Auto). This is different from media requests which are transformed at playback time.
|
|
670
493
|
*
|
|
671
|
-
*
|
|
672
|
-
*
|
|
673
|
-
* `artworkSource` (which carries the headers for React Native's `<Image>`).
|
|
494
|
+
* Note: Since media controllers load images directly from URLs, HTTP headers cannot be applied
|
|
495
|
+
* to artwork requests. Use query parameters for authentication tokens if your CDN supports it.
|
|
674
496
|
*
|
|
675
497
|
* @example
|
|
676
498
|
* ```typescript
|
|
@@ -691,79 +513,39 @@ export type BrowserConfiguration = {
|
|
|
691
513
|
* ```
|
|
692
514
|
*/
|
|
693
515
|
artwork?: ArtworkRequestConfig;
|
|
694
|
-
/**
|
|
695
|
-
* Artwork configuration for the NOW-PLAYING surface only (lock screen / CarPlay /
|
|
696
|
-
* Android Auto now-playing) — distinct from `artwork`, which configures browse-list
|
|
697
|
-
* thumbnails. When set, the now-playing artwork is resolved from THIS config instead of
|
|
698
|
-
* `artwork`; browse lists never read it, so they're unaffected. When unset, now-playing
|
|
699
|
-
* falls back to `artwork` / the track's own `artwork`.
|
|
700
|
-
*
|
|
701
|
-
* Being a full `RequestConfig`, it supports `path`, `query`, and `headers`. The token
|
|
702
|
-
* `{id}` in any of those values is replaced with the track's `id` during resolution, and
|
|
703
|
-
* the result flows through the shared `request` layer (so a relative path gets `baseUrl`
|
|
704
|
-
* prepended). For logic that can't be expressed as a template, use `resolve(track)`.
|
|
705
|
-
*
|
|
706
|
-
* The `{id}` templating is specific to `nowPlayingArtwork` — static values
|
|
707
|
-
* in other configs are not templated. Not implemented by the web
|
|
708
|
-
* implementation.
|
|
709
|
-
*
|
|
710
|
-
* @example
|
|
711
|
-
* // 302-redirect endpoint keyed by the track id:
|
|
712
|
-
* nowPlayingArtwork: { path: '/artwork/{id}' }
|
|
713
|
-
*/
|
|
714
|
-
nowPlayingArtwork?: ArtworkRequestConfig;
|
|
715
516
|
/**
|
|
716
517
|
* Configuration for search functionality.
|
|
717
518
|
* Enables search capabilities in the media browser, typically accessed through voice commands or search UI.
|
|
718
519
|
*
|
|
719
|
-
* See the [Search guide](https://audiobrowser.dev/guide/search) for a walkthrough of
|
|
720
|
-
* modes, filters, the `reference` axis, and mixed audio/video.
|
|
721
|
-
*
|
|
722
520
|
* Optional - if not provided, search functionality will be disabled.
|
|
723
521
|
* Required for Android Auto/CarPlay voice search integration with support for structured voice commands.
|
|
724
522
|
*
|
|
725
523
|
* Search receives structured parameters from voice commands like:
|
|
726
|
-
* - "play
|
|
727
|
-
* - "play
|
|
728
|
-
* - "play
|
|
729
|
-
* - "play
|
|
730
|
-
* - "play
|
|
731
|
-
* - "play my favorites" → reference='my', query=""
|
|
524
|
+
* - "play music" → mode='any', query=""
|
|
525
|
+
* - "play jazz" → mode='genre', genre="jazz", query="jazz"
|
|
526
|
+
* - "play michael jackson" → mode='artist', artist="michael jackson", query="michael jackson"
|
|
527
|
+
* - "play thriller by michael jackson" → mode='album', album="thriller", artist="michael jackson"
|
|
528
|
+
* - "play billie jean" → mode='song', title="billie jean", query="billie jean"
|
|
732
529
|
*
|
|
733
530
|
* Can be either:
|
|
734
|
-
* - SearchSourceCallback: Receives SearchParams with query
|
|
735
|
-
*
|
|
736
|
-
* - TransformableRequestConfig: API endpoint where search parameters are automatically added to request.query:
|
|
531
|
+
* - SearchSourceCallback: Receives SearchParams with query, and optional mode/artist/album/genre/title/playlist fields
|
|
532
|
+
* - TransformableRequestConfig: API endpoint where all search parameters are automatically added to request.query:
|
|
737
533
|
* - q: search query string (always present)
|
|
738
|
-
* - mode:
|
|
739
|
-
*
|
|
740
|
-
* - reference: 'my' when the user asked for their own collection ("play my
|
|
741
|
-
* favorites"); omitted otherwise
|
|
742
|
-
* - artist, album, genre, title, playlist: filters, included when present
|
|
743
|
-
*
|
|
744
|
-
* These query-param keys are fixed (not configurable). If your endpoint
|
|
745
|
-
* expects different names, rename them in `transform` — it receives the params
|
|
746
|
-
* already on `request.query`, e.g. `query: { search: request.query?.q }`.
|
|
747
|
-
*
|
|
748
|
-
* Response shape: the endpoint must return a page object
|
|
749
|
-
* `{ children: Track[] }` — see {@link SearchSource}.
|
|
534
|
+
* - mode: search mode (any/genre/artist/album/song/playlist) - omitted for unstructured search
|
|
535
|
+
* - artist, album, genre, title, playlist: included when present
|
|
750
536
|
*
|
|
751
537
|
* @example
|
|
752
538
|
* ```typescript
|
|
753
539
|
* // Callback approach - direct access to structured parameters
|
|
754
540
|
* search: async (params) => {
|
|
755
|
-
* //
|
|
756
|
-
* if (params.
|
|
757
|
-
*
|
|
758
|
-
*
|
|
541
|
+
* // Use structured fields for precise searches
|
|
542
|
+
* if (params.mode === 'artist' && params.artist) {
|
|
543
|
+
* return await db.query('SELECT * FROM tracks WHERE artist = ?', [params.artist]);
|
|
544
|
+
* }
|
|
545
|
+
* if (params.mode === 'album' && params.album && params.artist) {
|
|
759
546
|
* return await db.query('SELECT * FROM tracks WHERE album = ? AND artist = ?',
|
|
760
547
|
* [params.album, params.artist]);
|
|
761
548
|
* }
|
|
762
|
-
* if (params.artist) {
|
|
763
|
-
* return await db.query('SELECT * FROM tracks WHERE artist = ?', [params.artist]);
|
|
764
|
-
* }
|
|
765
|
-
* // `mode` is the container vertical — narrow by it when present
|
|
766
|
-
* if (params.mode === 'podcast') return await searchPodcasts(params.query);
|
|
767
549
|
* // Fall back to full-text search
|
|
768
550
|
* return await searchByQuery(params.query);
|
|
769
551
|
* }
|
|
@@ -771,11 +553,11 @@ export type BrowserConfiguration = {
|
|
|
771
553
|
* // API configuration - parameters automatically added to query string
|
|
772
554
|
* search: {
|
|
773
555
|
* baseUrl: 'https://api.example.com/search',
|
|
774
|
-
* // GET /search?q=
|
|
556
|
+
* // GET /search?q=thriller&mode=album&album=thriller&artist=michael+jackson&limit=20
|
|
775
557
|
* transform(request) {
|
|
776
558
|
* return {
|
|
777
559
|
* ...request,
|
|
778
|
-
* query: { ...request.query, limit:
|
|
560
|
+
* query: { ...request.query, limit: 20 }
|
|
779
561
|
* };
|
|
780
562
|
* }
|
|
781
563
|
* }
|
|
@@ -793,47 +575,20 @@ export type BrowserConfiguration = {
|
|
|
793
575
|
*/
|
|
794
576
|
tabs?: TabsSource;
|
|
795
577
|
/**
|
|
796
|
-
* Route-specific configurations. Maps URL
|
|
797
|
-
*
|
|
798
|
-
* ## Matching
|
|
578
|
+
* Route-specific configurations. Maps URL paths to browse sources.
|
|
579
|
+
* Routes match by prefix, most specific (most slashes) wins.
|
|
799
580
|
*
|
|
800
|
-
*
|
|
801
|
-
* `/artists/123`. Segments may be:
|
|
802
|
-
* - a constant: `/favorites`
|
|
803
|
-
* - a parameter: `/albums/{id}` — captured into `routeParams.id` and passed
|
|
804
|
-
* to callbacks and transforms
|
|
805
|
-
* - a single-segment wildcard: `*`
|
|
806
|
-
* - a tail wildcard: `/files/**` — matches any depth; the remainder is
|
|
807
|
-
* captured into `routeParams.tail`
|
|
808
|
-
*
|
|
809
|
-
* When several patterns match, the most specific wins
|
|
810
|
-
* (constants > parameters > wildcards > tail wildcard).
|
|
811
|
-
*
|
|
812
|
-
* ## Defaults and reserved keys
|
|
813
|
-
*
|
|
814
|
-
* A path matching no route is fetched over HTTP via the `request` →
|
|
815
|
-
* `browse` layers with the path applied — most APIs only need explicit
|
|
816
|
-
* routes for exceptions. The special key `'*'` overrides that default with
|
|
817
|
-
* its own source. Keys starting with `__` are reserved for internal use.
|
|
818
|
-
*
|
|
819
|
-
* Note: a static `path` on a route's request config does not rewrite the
|
|
820
|
-
* request path (the navigated path is used); remap paths in a `transform`,
|
|
821
|
-
* which receives `routeParams` as its second argument.
|
|
822
|
-
*
|
|
823
|
-
* Values can be a `BrowserSource` (callback, request config, or static page
|
|
824
|
-
* object) or a `RouteConfig` with per-route `media`/`artwork` overrides.
|
|
581
|
+
* Can be a simple `BrowserSource` or extended `RouteConfig` with media/artwork overrides.
|
|
825
582
|
*
|
|
826
583
|
* @example
|
|
827
584
|
* ```typescript
|
|
828
585
|
* routes: {
|
|
829
|
-
* '/favorites': async () =>
|
|
830
|
-
* '/
|
|
586
|
+
* '/favorites': async () => getFavorites(),
|
|
587
|
+
* '/artists': { baseUrl: 'https://music-api.com' },
|
|
831
588
|
* '/premium': {
|
|
832
|
-
* browse: { baseUrl: 'https://premium-api.
|
|
833
|
-
* artwork: { baseUrl: 'https://premium-images.
|
|
834
|
-
* }
|
|
835
|
-
* // Custom default for anything no other route matches:
|
|
836
|
-
* '*': { baseUrl: 'https://api.example.com' }
|
|
589
|
+
* browse: { baseUrl: 'https://premium-api.com' },
|
|
590
|
+
* artwork: { baseUrl: 'https://premium-images.cdn.com' }
|
|
591
|
+
* }
|
|
837
592
|
* }
|
|
838
593
|
* ```
|
|
839
594
|
*/
|
|
@@ -867,40 +622,30 @@ export type BrowserConfiguration = {
|
|
|
867
622
|
*/
|
|
868
623
|
androidControllerOfflineError?: boolean;
|
|
869
624
|
/**
|
|
870
|
-
*
|
|
871
|
-
* content is still loading — browse destinations while they resolve, and the
|
|
872
|
-
* startup screen while tabs load. Supply your app's localized "Loading…"
|
|
873
|
-
* string. On iOS 18.4+ the system loading spinner is shown instead.
|
|
625
|
+
* Enable the "Up Next" button on the CarPlay Now Playing screen.
|
|
874
626
|
*
|
|
875
|
-
* When
|
|
876
|
-
*
|
|
627
|
+
* When enabled, tapping "Up Next" shows the current playback queue,
|
|
628
|
+
* allowing users to see upcoming tracks and jump to a specific position.
|
|
877
629
|
*
|
|
878
|
-
*
|
|
879
|
-
* ```typescript
|
|
880
|
-
* carPlayLoadingTitle: t('loading')
|
|
881
|
-
* ```
|
|
630
|
+
* The button is automatically hidden when the queue has only one track.
|
|
882
631
|
*
|
|
632
|
+
* @default true
|
|
883
633
|
* @platform ios
|
|
884
634
|
*/
|
|
885
|
-
|
|
635
|
+
carPlayUpNextButton?: boolean;
|
|
886
636
|
/**
|
|
887
|
-
*
|
|
888
|
-
*
|
|
889
|
-
* to navigate the CarPlay browse stack there, or `undefined` if the tap was
|
|
890
|
-
* handled (or should do nothing).
|
|
891
|
-
*
|
|
892
|
-
* The album line is tappable whenever the active track has an `albumUrl`
|
|
893
|
-
* or this callback is configured.
|
|
637
|
+
* Configure up to 5 buttons on the CarPlay Now Playing screen. These buttons
|
|
638
|
+
* are arranged using the array order from left to right.
|
|
894
639
|
*
|
|
895
640
|
* @example
|
|
896
641
|
* ```typescript
|
|
897
|
-
*
|
|
898
|
-
* track.album ? `/album/${slugify(track.album)}` : undefined
|
|
642
|
+
* carPlayNowPlayingButtons: ['repeat']
|
|
899
643
|
* ```
|
|
900
644
|
*
|
|
645
|
+
* @default []
|
|
901
646
|
* @platform ios
|
|
902
647
|
*/
|
|
903
|
-
|
|
648
|
+
carPlayNowPlayingButtons?: CarPlayNowPlayingButton[];
|
|
904
649
|
/**
|
|
905
650
|
* Callback to customize error messages for navigation errors.
|
|
906
651
|
* Used by CarPlay and available via `useFormattedNavigationError()` for app UI.
|
|
@@ -909,15 +654,12 @@ export type BrowserConfiguration = {
|
|
|
909
654
|
*
|
|
910
655
|
* @example
|
|
911
656
|
* ```typescript
|
|
912
|
-
* formatNavigationError: (
|
|
913
|
-
*
|
|
914
|
-
*
|
|
915
|
-
*
|
|
916
|
-
*
|
|
917
|
-
*
|
|
918
|
-
* }
|
|
919
|
-
* return defaultFormatted
|
|
920
|
-
* }
|
|
657
|
+
* formatNavigationError: (error) => ({
|
|
658
|
+
* title: t(`error.${error.code}`),
|
|
659
|
+
* message: error.code === 'http-error'
|
|
660
|
+
* ? t('error.httpMessage', { status: error.statusCode })
|
|
661
|
+
* : error.message
|
|
662
|
+
* })
|
|
921
663
|
* ```
|
|
922
664
|
*/
|
|
923
665
|
formatNavigationError?: FormatNavigationErrorCallback;
|
|
@@ -956,12 +698,11 @@ export type FormattedNavigationError = {
|
|
|
956
698
|
*/
|
|
957
699
|
title: string;
|
|
958
700
|
/**
|
|
959
|
-
*
|
|
960
|
-
* the browse error/empty view. Omit it to show a title only.
|
|
701
|
+
* Message body shown below the title in the error action sheet.
|
|
961
702
|
*
|
|
962
|
-
* Default value: `error.message`
|
|
703
|
+
* Default value: `error.message`
|
|
963
704
|
*/
|
|
964
|
-
message
|
|
705
|
+
message: string;
|
|
965
706
|
};
|
|
966
707
|
/**
|
|
967
708
|
* Parameters passed to the formatNavigationError callback.
|
|
@@ -998,9 +739,4 @@ export type FormatNavigationErrorParams = {
|
|
|
998
739
|
* ```
|
|
999
740
|
*/
|
|
1000
741
|
export type FormatNavigationErrorCallback = (params: FormatNavigationErrorParams) => FormattedNavigationError | undefined;
|
|
1001
|
-
/**
|
|
1002
|
-
* Maps the tapped active track to a browse path for the CarPlay album line,
|
|
1003
|
-
* or `undefined` to do nothing. See `resolveAlbumUrl`.
|
|
1004
|
-
*/
|
|
1005
|
-
export type ResolveAlbumUrlCallback = (track: Track) => string | undefined;
|
|
1006
742
|
//# sourceMappingURL=browser.d.ts.map
|