react-native-audio-browser 0.0.1 → 0.1.0-next.2
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 +45 -0
- package/LICENSE +21 -0
- package/README.md +3 -1
- package/android/CMakeLists.txt +32 -0
- package/android/build.gradle +214 -0
- package/android/fix-prefab.gradle +51 -0
- package/android/gradle.properties +6 -0
- package/android/src/main/AndroidManifest.xml +36 -0
- package/android/src/main/cpp/cpp-adapter.cpp +9 -0
- package/android/src/main/java/com/audiobrowser/AudioBrowser.kt +1197 -0
- package/android/src/main/java/com/audiobrowser/AudioBrowserPackage.kt +21 -0
- package/android/src/main/java/com/audiobrowser/Callbacks.kt +92 -0
- package/android/src/main/java/com/audiobrowser/HeadlessTaskService.kt +59 -0
- package/android/src/main/java/com/audiobrowser/Service.kt +334 -0
- package/android/src/main/java/com/audiobrowser/browser/BrowserManager.kt +1174 -0
- package/android/src/main/java/com/audiobrowser/browser/JsonModels.kt +134 -0
- package/android/src/main/java/com/audiobrowser/browser/RouteMatch.kt +9 -0
- package/android/src/main/java/com/audiobrowser/browser/SimpleRouter.kt +154 -0
- package/android/src/main/java/com/audiobrowser/browser/TrackLoadHandler.kt +45 -0
- package/android/src/main/java/com/audiobrowser/extension/EnumExtensions.kt +5 -0
- package/android/src/main/java/com/audiobrowser/extension/NumberExt.kt +13 -0
- package/android/src/main/java/com/audiobrowser/http/HttpClient.kt +171 -0
- package/android/src/main/java/com/audiobrowser/http/RequestConfigBuilder.kt +251 -0
- package/android/src/main/java/com/audiobrowser/model/PlaybackMetadata.kt +80 -0
- package/android/src/main/java/com/audiobrowser/model/PlayerSetupOptions.kt +101 -0
- package/android/src/main/java/com/audiobrowser/model/PlayerUpdateOptions.kt +125 -0
- package/android/src/main/java/com/audiobrowser/player/AutomaticBufferManager.kt +256 -0
- package/android/src/main/java/com/audiobrowser/player/DynamicLoadControl.kt +162 -0
- package/android/src/main/java/com/audiobrowser/player/MediaFactory.kt +117 -0
- package/android/src/main/java/com/audiobrowser/player/MediaSessionCallback.kt +596 -0
- package/android/src/main/java/com/audiobrowser/player/MediaSessionCommandManager.kt +578 -0
- package/android/src/main/java/com/audiobrowser/player/PlaybackProgressUpdateManager.kt +59 -0
- package/android/src/main/java/com/audiobrowser/player/PlaybackStateStore.kt +246 -0
- package/android/src/main/java/com/audiobrowser/player/Player.kt +1510 -0
- package/android/src/main/java/com/audiobrowser/player/PlayerListener.kt +230 -0
- package/android/src/main/java/com/audiobrowser/player/RetryLoadErrorHandlingPolicy.kt +191 -0
- package/android/src/main/java/com/audiobrowser/player/SleepTimer.kt +80 -0
- package/android/src/main/java/com/audiobrowser/player/TransformingDataSource.kt +147 -0
- package/android/src/main/java/com/audiobrowser/util/AndroidAudioContentTypeFactory.kt +17 -0
- package/android/src/main/java/com/audiobrowser/util/BatteryOptimizationHelper.kt +95 -0
- package/android/src/main/java/com/audiobrowser/util/BatteryWarningStore.kt +38 -0
- package/android/src/main/java/com/audiobrowser/util/BrowserPathHelper.kt +155 -0
- package/android/src/main/java/com/audiobrowser/util/CoilBitmapLoader.kt +390 -0
- package/android/src/main/java/com/audiobrowser/util/EqualizerManager.kt +197 -0
- package/android/src/main/java/com/audiobrowser/util/MediaExtrasBuilder.kt +75 -0
- package/android/src/main/java/com/audiobrowser/util/MetadataAdapter.kt +97 -0
- package/android/src/main/java/com/audiobrowser/util/NetworkConnectivityMonitor.kt +121 -0
- package/android/src/main/java/com/audiobrowser/util/PlayingStateFactory.kt +25 -0
- package/android/src/main/java/com/audiobrowser/util/RatingFactory.kt +72 -0
- package/android/src/main/java/com/audiobrowser/util/RepeatModeFactory.kt +22 -0
- package/android/src/main/java/com/audiobrowser/util/ResolvedTrackFactory.kt +36 -0
- package/android/src/main/java/com/audiobrowser/util/SvgArtworkRenderer.kt +130 -0
- package/android/src/main/java/com/audiobrowser/util/SystemVolumeMonitor.kt +50 -0
- package/android/src/main/java/com/audiobrowser/util/TrackFactory.kt +125 -0
- package/android/src/main/res/values/strings.xml +6 -0
- package/android/src/test/java/com/audiobrowser/browser/BrowserManagerTest.kt +63 -0
- package/android/src/test/java/com/audiobrowser/browser/SimpleBrowserTest.kt +38 -0
- package/android/src/test/java/com/audiobrowser/browser/SimpleRouterTest.kt +165 -0
- package/android/src/test/java/com/audiobrowser/http/RequestConfigBuilderTest.kt +240 -0
- package/android/src/test/java/com/audiobrowser/player/PlaybackProgressUpdateManagerTest.kt +146 -0
- package/android/src/test/resources/robolectric.properties +1 -0
- package/ios/Bridge.h +8 -0
- package/ios/Browser/BrowserConfig.swift +111 -0
- package/ios/Browser/BrowserManager+URLResolution.swift +260 -0
- package/ios/Browser/BrowserManager.swift +630 -0
- package/ios/Browser/BrowserPathHelper.swift +190 -0
- package/ios/Browser/JsonModels.swift +202 -0
- package/ios/Browser/SimpleRouter.swift +184 -0
- package/ios/CarPlay/CarPlayArtworkResolver.swift +107 -0
- package/ios/CarPlay/CarPlayController.swift +771 -0
- package/ios/CarPlay/CarPlayImageLoader.swift +180 -0
- package/ios/CarPlay/CarPlayListItemFactory.swift +209 -0
- package/ios/CarPlay/CarPlayNowPlayingManager.swift +302 -0
- package/ios/CarPlay/RNABAudioBrowser.h +23 -0
- package/ios/CarPlay/RNABAudioBrowser.m +22 -0
- package/ios/CarPlay/RNABCarPlaySceneDelegate.h +15 -0
- package/ios/CarPlay/RNABCarPlaySceneDelegate.m +59 -0
- package/ios/CarPlay/RNABMediaIntentHandler.swift +60 -0
- package/ios/CarPlay/Track+CarPlay.swift +63 -0
- package/ios/Extension/Capability+RemoteCommand.swift +76 -0
- package/ios/Extension/ChapterMetadata+AVFoundation.swift +40 -0
- package/ios/Extension/CxxVectorConformances.swift +20 -0
- package/ios/Extension/NavigationError+Conversion.swift +49 -0
- package/ios/Extension/ResolvedTrack+Copying.swift +59 -0
- package/ios/Extension/TimedMetadata+AVFoundation.swift +129 -0
- package/ios/Extension/Track+AVPlayer.swift +33 -0
- package/ios/Extension/Track+Copying.swift +53 -0
- package/ios/Extension/TrackMetadata+AVFoundation.swift +131 -0
- package/ios/Http/HttpClient.swift +237 -0
- package/ios/HybridAudioBrowser.swift +1292 -0
- package/ios/Model/MediaURL.swift +67 -0
- package/ios/Model/NitroTypeStubs.swift +228 -0
- package/ios/Model/PlayerUpdateOptions.swift +116 -0
- package/ios/Model/RemoteCommand.swift +71 -0
- package/ios/Model/SourceType.swift +6 -0
- package/ios/Model/TrackPlayerError.swift +73 -0
- package/ios/NowPlayingInfo/MediaItemProperty.swift +78 -0
- package/ios/NowPlayingInfo/NowPlayingInfoCenter.swift +9 -0
- package/ios/NowPlayingInfo/NowPlayingInfoController.swift +191 -0
- package/ios/NowPlayingInfo/NowPlayingInfoKeyValue.swift +6 -0
- package/ios/NowPlayingInfo/NowPlayingInfoProperty.swift +220 -0
- package/ios/Observer/PlayerItemNotificationObserver.swift +79 -0
- package/ios/Observer/PlayerItemPropertyObserver.swift +110 -0
- package/ios/Observer/PlayerStateObserver.swift +50 -0
- package/ios/Observer/PlayerTimeObserver.swift +105 -0
- package/ios/Option/PitchAlgorithms.swift +17 -0
- package/ios/Option/SessionCategories.swift +100 -0
- package/ios/Option/TimeEventFrequency.swift +18 -0
- package/ios/PlaybackEvent.swift +15 -0
- package/ios/Player/LoadSeekCoordinator.swift +84 -0
- package/ios/Player/MediaLoader.swift +197 -0
- package/ios/Player/MediaLoaderDelegate.swift +11 -0
- package/ios/Player/NowPlayingUpdater.swift +106 -0
- package/ios/Player/PlaybackCoordinator.swift +520 -0
- package/ios/Player/PlaybackCoordinatorCallbacks.swift +19 -0
- package/ios/Player/PlaybackEffectHandler.swift +44 -0
- package/ios/Player/PlaybackErrorHandler.swift +91 -0
- package/ios/Player/PlaybackProgressUpdateManager.swift +68 -0
- package/ios/Player/PlaybackStateMachine.swift +31 -0
- package/ios/Player/PlayerStatusTypes.swift +9 -0
- package/ios/Player/PlayingStateManager.swift +32 -0
- package/ios/Player/QueueManager.swift +320 -0
- package/ios/Player/RetryManager.swift +246 -0
- package/ios/Player/SeekCompletionHandler.swift +3 -0
- package/ios/Player/ShuffleOrder.swift +191 -0
- package/ios/Player/SleepTimerHandling.swift +7 -0
- package/ios/Player/SleepTimerManager.swift +131 -0
- package/ios/RemoteCommand/RemoteCommandController.swift +406 -0
- package/ios/Support/RNTrackPlayer-Bridging-Header.h +7 -0
- package/ios/Tests/BrowserPathHelperTests.swift +110 -0
- package/ios/Tests/CarPlayArtworkResolverTests.swift +413 -0
- package/ios/Tests/ChapterMetadataAVFoundationTests.swift +88 -0
- package/ios/Tests/EmitterTests.swift +122 -0
- package/ios/Tests/LoadSeekCoordinatorTests.swift +294 -0
- package/ios/Tests/MediaLoaderTests.swift +228 -0
- package/ios/Tests/PlaybackCoordinatorTests.swift +486 -0
- package/ios/Tests/PlaybackErrorHandlerTests.swift +213 -0
- package/ios/Tests/PlaybackProgressUpdateManagerTests.swift +166 -0
- package/ios/Tests/PlaybackStateMachineTests.swift +137 -0
- package/ios/Tests/QueueManagerTests.swift +880 -0
- package/ios/Tests/ResolvedTrackCopyingTests.swift +245 -0
- package/ios/Tests/SimpleRouterTests.swift +139 -0
- package/ios/Tests/Support/TestTypes.swift +180 -0
- package/ios/Tests/TimedMetadataAVFoundationTests.swift +152 -0
- package/ios/Tests/TrackMetadataAVFoundationTests.swift +176 -0
- package/ios/Tests/TrackSelectorTests.swift +268 -0
- package/ios/TrackPlayer.swift +692 -0
- package/ios/TrackPlayerCallbacks.swift +92 -0
- package/ios/TrackSelector.swift +141 -0
- package/ios/Util/ArtworkImageFetcher.swift +35 -0
- package/ios/Util/Emitter.swift +68 -0
- package/ios/Util/LRUCache.swift +182 -0
- package/ios/Util/MetadataAdapter.swift +131 -0
- package/ios/Util/NetworkMonitor.swift +65 -0
- package/ios/Util/OnceValue.swift +70 -0
- package/ios/Util/SFSymbolRenderer.swift +142 -0
- package/ios/Util/SVGProcessor.swift +56 -0
- package/lib/commonjs/AudioBrowser.js +50 -0
- package/lib/commonjs/AudioBrowser.js.map +1 -0
- package/lib/commonjs/features/battery.js +154 -0
- package/lib/commonjs/features/battery.js.map +1 -0
- package/lib/commonjs/features/browser.js +272 -0
- package/lib/commonjs/features/browser.js.map +1 -0
- package/lib/commonjs/features/equalizer.js +69 -0
- package/lib/commonjs/features/equalizer.js.map +1 -0
- package/lib/commonjs/features/errors.js +165 -0
- package/lib/commonjs/features/errors.js.map +1 -0
- package/lib/commonjs/features/favorites.js +101 -0
- package/lib/commonjs/features/favorites.js.map +1 -0
- package/lib/commonjs/features/index.js +160 -0
- package/lib/commonjs/features/index.js.map +1 -0
- package/lib/commonjs/features/metadata.js +54 -0
- package/lib/commonjs/features/metadata.js.map +1 -0
- package/lib/commonjs/features/network.js +40 -0
- package/lib/commonjs/features/network.js.map +1 -0
- package/lib/commonjs/features/nowPlaying.js +61 -0
- package/lib/commonjs/features/nowPlaying.js.map +1 -0
- package/lib/commonjs/features/output.js +54 -0
- package/lib/commonjs/features/output.js.map +1 -0
- package/lib/commonjs/features/playback/controls.js +79 -0
- package/lib/commonjs/features/playback/controls.js.map +1 -0
- package/lib/commonjs/features/playback/index.js +83 -0
- package/lib/commonjs/features/playback/index.js.map +1 -0
- package/lib/commonjs/features/playback/playWhenReady.js +55 -0
- package/lib/commonjs/features/playback/playWhenReady.js.map +1 -0
- package/lib/commonjs/features/playback/playing.js +41 -0
- package/lib/commonjs/features/playback/playing.js.map +1 -0
- package/lib/commonjs/features/playback/progress.js +104 -0
- package/lib/commonjs/features/playback/progress.js.map +1 -0
- package/lib/commonjs/features/playback/rate.js +29 -0
- package/lib/commonjs/features/playback/rate.js.map +1 -0
- package/lib/commonjs/features/playback/state.js +62 -0
- package/lib/commonjs/features/playback/state.js.map +1 -0
- package/lib/commonjs/features/playback/volume.js +68 -0
- package/lib/commonjs/features/playback/volume.js.map +1 -0
- package/lib/commonjs/features/player/index.js +28 -0
- package/lib/commonjs/features/player/index.js.map +1 -0
- package/lib/commonjs/features/player/options.js +182 -0
- package/lib/commonjs/features/player/options.js.map +1 -0
- package/lib/commonjs/features/player/setup.js +143 -0
- package/lib/commonjs/features/player/setup.js.map +1 -0
- package/lib/commonjs/features/queue/activeTrack.js +52 -0
- package/lib/commonjs/features/queue/activeTrack.js.map +1 -0
- package/lib/commonjs/features/queue/index.js +50 -0
- package/lib/commonjs/features/queue/index.js.map +1 -0
- package/lib/commonjs/features/queue/queue.js +177 -0
- package/lib/commonjs/features/queue/queue.js.map +1 -0
- package/lib/commonjs/features/queue/repeatMode.js +58 -0
- package/lib/commonjs/features/queue/repeatMode.js.map +1 -0
- package/lib/commonjs/features/queue/shuffle.js +57 -0
- package/lib/commonjs/features/queue/shuffle.js.map +1 -0
- package/lib/commonjs/features/rating.js +2 -0
- package/lib/commonjs/features/rating.js.map +1 -0
- package/lib/commonjs/features/remoteControls.js +286 -0
- package/lib/commonjs/features/remoteControls.js.map +1 -0
- package/lib/commonjs/features/sleepTimer.js +164 -0
- package/lib/commonjs/features/sleepTimer.js.map +1 -0
- package/lib/commonjs/index.js +22 -0
- package/lib/commonjs/index.js.map +1 -0
- package/lib/commonjs/native.js +9 -0
- package/lib/commonjs/native.js.map +1 -0
- package/lib/commonjs/native.web.js +10 -0
- package/lib/commonjs/native.web.js.map +1 -0
- package/lib/commonjs/package.json +1 -0
- package/lib/commonjs/specs/audio-browser.nitro.js +6 -0
- package/lib/commonjs/specs/audio-browser.nitro.js.map +1 -0
- package/lib/commonjs/types/browser-native.js +6 -0
- package/lib/commonjs/types/browser-native.js.map +1 -0
- package/lib/commonjs/types/browser-nodes.js +6 -0
- package/lib/commonjs/types/browser-nodes.js.map +1 -0
- package/lib/commonjs/types/browser.js +6 -0
- package/lib/commonjs/types/browser.js.map +1 -0
- package/lib/commonjs/types/index.js +28 -0
- package/lib/commonjs/types/index.js.map +1 -0
- package/lib/commonjs/types/player.js +2 -0
- package/lib/commonjs/types/player.js.map +1 -0
- package/lib/commonjs/utils/LazyNativeEmitter.js +58 -0
- package/lib/commonjs/utils/LazyNativeEmitter.js.map +1 -0
- package/lib/commonjs/utils/NativeUpdatedValue.js +59 -0
- package/lib/commonjs/utils/NativeUpdatedValue.js.map +1 -0
- package/lib/commonjs/utils/resolveAssetSource.js +11 -0
- package/lib/commonjs/utils/resolveAssetSource.js.map +1 -0
- package/lib/commonjs/utils/useDebug.js +221 -0
- package/lib/commonjs/utils/useDebug.js.map +1 -0
- package/lib/commonjs/utils/useNativeUpdatedValue.js +44 -0
- package/lib/commonjs/utils/useNativeUpdatedValue.js.map +1 -0
- package/lib/commonjs/utils/validation.js +23 -0
- package/lib/commonjs/utils/validation.js.map +1 -0
- package/lib/commonjs/web/NativeAudioBrowser.js +731 -0
- package/lib/commonjs/web/NativeAudioBrowser.js.map +1 -0
- package/lib/commonjs/web/SimpleRouter.js +146 -0
- package/lib/commonjs/web/SimpleRouter.js.map +1 -0
- package/lib/commonjs/web/SimpleRouter.test.js +174 -0
- package/lib/commonjs/web/SimpleRouter.test.js.map +1 -0
- package/lib/commonjs/web/TrackPlayer/Event.js +19 -0
- package/lib/commonjs/web/TrackPlayer/Event.js.map +1 -0
- package/lib/commonjs/web/TrackPlayer/Player.js +301 -0
- package/lib/commonjs/web/TrackPlayer/Player.js.map +1 -0
- 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 +12 -0
- package/lib/commonjs/web/TrackPlayer/RepeatMode.js.map +1 -0
- package/lib/commonjs/web/TrackPlayer/SetupNotCalledError.js +13 -0
- package/lib/commonjs/web/TrackPlayer/SetupNotCalledError.js.map +1 -0
- package/lib/commonjs/web/TrackPlayer/SleepTimer.js +75 -0
- package/lib/commonjs/web/TrackPlayer/SleepTimer.js.map +1 -0
- package/lib/commonjs/web/TrackPlayer/State.js +18 -0
- package/lib/commonjs/web/TrackPlayer/State.js.map +1 -0
- package/lib/commonjs/web/TrackPlayer/index.js +52 -0
- package/lib/commonjs/web/TrackPlayer/index.js.map +1 -0
- package/lib/commonjs/web/browser/BrowserManager.js +587 -0
- package/lib/commonjs/web/browser/BrowserManager.js.map +1 -0
- package/lib/commonjs/web/browser/FavoriteManager.js +80 -0
- package/lib/commonjs/web/browser/FavoriteManager.js.map +1 -0
- package/lib/commonjs/web/browser/NavigationErrorManager.js +106 -0
- package/lib/commonjs/web/browser/NavigationErrorManager.js.map +1 -0
- package/lib/commonjs/web/browser/SearchManager.js +80 -0
- package/lib/commonjs/web/browser/SearchManager.js.map +1 -0
- package/lib/commonjs/web/http/HttpClient.js +94 -0
- package/lib/commonjs/web/http/HttpClient.js.map +1 -0
- package/lib/commonjs/web/http/RequestConfigBuilder.js +294 -0
- package/lib/commonjs/web/http/RequestConfigBuilder.js.map +1 -0
- package/lib/commonjs/web/player/NowPlayingManager.js +79 -0
- package/lib/commonjs/web/player/NowPlayingManager.js.map +1 -0
- package/lib/commonjs/web/player/OptionsManager.js +88 -0
- package/lib/commonjs/web/player/OptionsManager.js.map +1 -0
- package/lib/commonjs/web/util/BrowserPathHelper.js +138 -0
- package/lib/commonjs/web/util/BrowserPathHelper.js.map +1 -0
- package/lib/commonjs/web/util/shuffle.js +21 -0
- package/lib/commonjs/web/util/shuffle.js.map +1 -0
- package/lib/module/AudioBrowser.js +7 -0
- package/lib/module/AudioBrowser.js.map +1 -0
- package/lib/module/features/battery.js +144 -0
- package/lib/module/features/battery.js.map +1 -0
- package/lib/module/features/browser.js +258 -0
- package/lib/module/features/browser.js.map +1 -0
- package/lib/module/features/equalizer.js +60 -0
- package/lib/module/features/equalizer.js.map +1 -0
- package/lib/module/features/errors.js +156 -0
- package/lib/module/features/errors.js.map +1 -0
- package/lib/module/features/favorites.js +95 -0
- package/lib/module/features/favorites.js.map +1 -0
- package/lib/module/features/index.js +26 -0
- package/lib/module/features/index.js.map +1 -0
- package/lib/module/features/metadata.js +51 -0
- package/lib/module/features/metadata.js.map +1 -0
- package/lib/module/features/network.js +35 -0
- package/lib/module/features/network.js.map +1 -0
- package/lib/module/features/nowPlaying.js +55 -0
- package/lib/module/features/nowPlaying.js.map +1 -0
- package/lib/module/features/output.js +47 -0
- package/lib/module/features/output.js.map +1 -0
- package/lib/module/features/playback/controls.js +69 -0
- package/lib/module/features/playback/controls.js.map +1 -0
- package/lib/module/features/playback/index.js +10 -0
- package/lib/module/features/playback/index.js.map +1 -0
- package/lib/module/features/playback/playWhenReady.js +49 -0
- package/lib/module/features/playback/playWhenReady.js.map +1 -0
- package/lib/module/features/playback/playing.js +36 -0
- package/lib/module/features/playback/playing.js.map +1 -0
- package/lib/module/features/playback/progress.js +98 -0
- package/lib/module/features/playback/progress.js.map +1 -0
- package/lib/module/features/playback/rate.js +25 -0
- package/lib/module/features/playback/rate.js.map +1 -0
- package/lib/module/features/playback/state.js +57 -0
- package/lib/module/features/playback/state.js.map +1 -0
- package/lib/module/features/playback/volume.js +60 -0
- package/lib/module/features/playback/volume.js.map +1 -0
- package/lib/module/features/player/index.js +5 -0
- package/lib/module/features/player/index.js.map +1 -0
- package/lib/module/features/player/options.js +176 -0
- package/lib/module/features/player/options.js.map +1 -0
- package/lib/module/features/player/setup.js +140 -0
- package/lib/module/features/player/setup.js.map +1 -0
- package/lib/module/features/queue/activeTrack.js +46 -0
- package/lib/module/features/queue/activeTrack.js.map +1 -0
- package/lib/module/features/queue/index.js +7 -0
- package/lib/module/features/queue/index.js.map +1 -0
- package/lib/module/features/queue/queue.js +162 -0
- package/lib/module/features/queue/queue.js.map +1 -0
- package/lib/module/features/queue/repeatMode.js +52 -0
- package/lib/module/features/queue/repeatMode.js.map +1 -0
- package/lib/module/features/queue/shuffle.js +50 -0
- package/lib/module/features/queue/shuffle.js.map +1 -0
- package/lib/module/features/rating.js +2 -0
- package/lib/module/features/rating.js.map +1 -0
- package/lib/module/features/remoteControls.js +275 -0
- package/lib/module/features/remoteControls.js.map +1 -0
- package/lib/module/features/sleepTimer.js +155 -0
- package/lib/module/features/sleepTimer.js.map +1 -0
- package/lib/module/index.js +6 -0
- package/lib/module/index.js.map +1 -0
- package/lib/module/native.js +5 -0
- package/lib/module/native.js.map +1 -0
- package/lib/module/native.web.js +7 -0
- package/lib/module/native.web.js.map +1 -0
- package/lib/module/package.json +1 -0
- package/lib/module/specs/audio-browser.nitro.js +4 -0
- package/lib/module/specs/audio-browser.nitro.js.map +1 -0
- package/lib/module/types/browser-native.js +4 -0
- package/lib/module/types/browser-native.js.map +1 -0
- package/lib/module/types/browser-nodes.js +4 -0
- package/lib/module/types/browser-nodes.js.map +1 -0
- package/lib/module/types/browser.js +4 -0
- package/lib/module/types/browser.js.map +1 -0
- package/lib/module/types/index.js +5 -0
- package/lib/module/types/index.js.map +1 -0
- package/lib/module/types/player.js +2 -0
- package/lib/module/types/player.js.map +1 -0
- package/lib/module/utils/LazyNativeEmitter.js +53 -0
- package/lib/module/utils/LazyNativeEmitter.js.map +1 -0
- package/lib/module/utils/NativeUpdatedValue.js +54 -0
- package/lib/module/utils/NativeUpdatedValue.js.map +1 -0
- package/lib/module/utils/resolveAssetSource.js +7 -0
- package/lib/module/utils/resolveAssetSource.js.map +1 -0
- package/lib/module/utils/useDebug.js +218 -0
- package/lib/module/utils/useDebug.js.map +1 -0
- package/lib/module/utils/useNativeUpdatedValue.js +40 -0
- package/lib/module/utils/useNativeUpdatedValue.js.map +1 -0
- package/lib/module/utils/validation.js +18 -0
- package/lib/module/utils/validation.js.map +1 -0
- package/lib/module/web/NativeAudioBrowser.js +727 -0
- package/lib/module/web/NativeAudioBrowser.js.map +1 -0
- package/lib/module/web/SimpleRouter.js +141 -0
- package/lib/module/web/SimpleRouter.js.map +1 -0
- package/lib/module/web/SimpleRouter.test.js +174 -0
- package/lib/module/web/SimpleRouter.test.js.map +1 -0
- package/lib/module/web/TrackPlayer/Event.js +15 -0
- package/lib/module/web/TrackPlayer/Event.js.map +1 -0
- package/lib/module/web/TrackPlayer/Player.js +296 -0
- package/lib/module/web/TrackPlayer/Player.js.map +1 -0
- 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 +8 -0
- package/lib/module/web/TrackPlayer/RepeatMode.js.map +1 -0
- package/lib/module/web/TrackPlayer/SetupNotCalledError.js +8 -0
- package/lib/module/web/TrackPlayer/SetupNotCalledError.js.map +1 -0
- package/lib/module/web/TrackPlayer/SleepTimer.js +70 -0
- package/lib/module/web/TrackPlayer/SleepTimer.js.map +1 -0
- package/lib/module/web/TrackPlayer/State.js +14 -0
- package/lib/module/web/TrackPlayer/State.js.map +1 -0
- package/lib/module/web/TrackPlayer/index.js +7 -0
- package/lib/module/web/TrackPlayer/index.js.map +1 -0
- package/lib/module/web/browser/BrowserManager.js +583 -0
- package/lib/module/web/browser/BrowserManager.js.map +1 -0
- package/lib/module/web/browser/FavoriteManager.js +75 -0
- package/lib/module/web/browser/FavoriteManager.js.map +1 -0
- package/lib/module/web/browser/NavigationErrorManager.js +101 -0
- package/lib/module/web/browser/NavigationErrorManager.js.map +1 -0
- package/lib/module/web/browser/SearchManager.js +76 -0
- package/lib/module/web/browser/SearchManager.js.map +1 -0
- package/lib/module/web/http/HttpClient.js +89 -0
- package/lib/module/web/http/HttpClient.js.map +1 -0
- package/lib/module/web/http/RequestConfigBuilder.js +291 -0
- package/lib/module/web/http/RequestConfigBuilder.js.map +1 -0
- package/lib/module/web/player/NowPlayingManager.js +74 -0
- package/lib/module/web/player/NowPlayingManager.js.map +1 -0
- package/lib/module/web/player/OptionsManager.js +83 -0
- package/lib/module/web/player/OptionsManager.js.map +1 -0
- package/lib/module/web/util/BrowserPathHelper.js +134 -0
- package/lib/module/web/util/BrowserPathHelper.js.map +1 -0
- package/lib/module/web/util/shuffle.js +17 -0
- package/lib/module/web/util/shuffle.js.map +1 -0
- package/lib/typescript/src/AudioBrowser.d.ts +5 -0
- package/lib/typescript/src/AudioBrowser.d.ts.map +1 -0
- package/lib/typescript/src/features/battery.d.ts +112 -0
- package/lib/typescript/src/features/battery.d.ts.map +1 -0
- package/lib/typescript/src/features/browser.d.ts +68 -0
- package/lib/typescript/src/features/browser.d.ts.map +1 -0
- package/lib/typescript/src/features/equalizer.d.ts +35 -0
- package/lib/typescript/src/features/equalizer.d.ts.map +1 -0
- package/lib/typescript/src/features/errors.d.ts +136 -0
- package/lib/typescript/src/features/errors.d.ts.map +1 -0
- package/lib/typescript/src/features/favorites.d.ts +84 -0
- package/lib/typescript/src/features/favorites.d.ts.map +1 -0
- package/lib/typescript/src/features/index.d.ts +23 -0
- package/lib/typescript/src/features/index.d.ts.map +1 -0
- package/lib/typescript/src/features/metadata.d.ts +103 -0
- package/lib/typescript/src/features/metadata.d.ts.map +1 -0
- package/lib/typescript/src/features/network.d.ts +18 -0
- package/lib/typescript/src/features/network.d.ts.map +1 -0
- package/lib/typescript/src/features/nowPlaying.d.ts +36 -0
- package/lib/typescript/src/features/nowPlaying.d.ts.map +1 -0
- package/lib/typescript/src/features/output.d.ts +28 -0
- package/lib/typescript/src/features/output.d.ts.map +1 -0
- package/lib/typescript/src/features/playback/controls.d.ts +40 -0
- package/lib/typescript/src/features/playback/controls.d.ts.map +1 -0
- package/lib/typescript/src/features/playback/index.d.ts +8 -0
- package/lib/typescript/src/features/playback/index.d.ts.map +1 -0
- package/lib/typescript/src/features/playback/playWhenReady.d.ts +30 -0
- package/lib/typescript/src/features/playback/playWhenReady.d.ts.map +1 -0
- package/lib/typescript/src/features/playback/playing.d.ts +21 -0
- package/lib/typescript/src/features/playback/playing.d.ts.map +1 -0
- package/lib/typescript/src/features/playback/progress.d.ts +51 -0
- package/lib/typescript/src/features/playback/progress.d.ts.map +1 -0
- package/lib/typescript/src/features/playback/rate.d.ts +12 -0
- package/lib/typescript/src/features/playback/rate.d.ts.map +1 -0
- package/lib/typescript/src/features/playback/state.d.ts +43 -0
- package/lib/typescript/src/features/playback/state.d.ts.map +1 -0
- package/lib/typescript/src/features/playback/volume.d.ts +32 -0
- package/lib/typescript/src/features/playback/volume.d.ts.map +1 -0
- package/lib/typescript/src/features/player/index.d.ts +3 -0
- package/lib/typescript/src/features/player/index.d.ts.map +1 -0
- package/lib/typescript/src/features/player/options.d.ts +413 -0
- package/lib/typescript/src/features/player/options.d.ts.map +1 -0
- package/lib/typescript/src/features/player/setup.d.ts +471 -0
- package/lib/typescript/src/features/player/setup.d.ts.map +1 -0
- package/lib/typescript/src/features/queue/activeTrack.d.ts +38 -0
- package/lib/typescript/src/features/queue/activeTrack.d.ts.map +1 -0
- package/lib/typescript/src/features/queue/index.d.ts +5 -0
- package/lib/typescript/src/features/queue/index.d.ts.map +1 -0
- package/lib/typescript/src/features/queue/queue.d.ts +111 -0
- package/lib/typescript/src/features/queue/queue.d.ts.map +1 -0
- package/lib/typescript/src/features/queue/repeatMode.d.ts +34 -0
- package/lib/typescript/src/features/queue/repeatMode.d.ts.map +1 -0
- package/lib/typescript/src/features/queue/shuffle.d.ts +27 -0
- package/lib/typescript/src/features/queue/shuffle.d.ts.map +1 -0
- 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 +164 -0
- package/lib/typescript/src/features/remoteControls.d.ts.map +1 -0
- package/lib/typescript/src/features/sleepTimer.d.ts +80 -0
- package/lib/typescript/src/features/sleepTimer.d.ts.map +1 -0
- package/lib/typescript/src/index.d.ts +4 -0
- package/lib/typescript/src/index.d.ts.map +1 -0
- package/lib/typescript/src/native.d.ts +3 -0
- package/lib/typescript/src/native.d.ts.map +1 -0
- 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 +242 -0
- package/lib/typescript/src/specs/audio-browser.nitro.d.ts.map +1 -0
- package/lib/typescript/src/types/browser-native.d.ts +40 -0
- package/lib/typescript/src/types/browser-native.d.ts.map +1 -0
- package/lib/typescript/src/types/browser-nodes.d.ts +198 -0
- package/lib/typescript/src/types/browser-nodes.d.ts.map +1 -0
- package/lib/typescript/src/types/browser.d.ts +742 -0
- package/lib/typescript/src/types/browser.d.ts.map +1 -0
- package/lib/typescript/src/types/index.d.ts +3 -0
- package/lib/typescript/src/types/index.d.ts.map +1 -0
- 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 +35 -0
- package/lib/typescript/src/utils/LazyNativeEmitter.d.ts.map +1 -0
- package/lib/typescript/src/utils/NativeUpdatedValue.d.ts +39 -0
- package/lib/typescript/src/utils/NativeUpdatedValue.d.ts.map +1 -0
- package/lib/typescript/src/utils/resolveAssetSource.d.ts +4 -0
- package/lib/typescript/src/utils/resolveAssetSource.d.ts.map +1 -0
- package/lib/typescript/src/utils/useDebug.d.ts +65 -0
- package/lib/typescript/src/utils/useDebug.d.ts.map +1 -0
- package/lib/typescript/src/utils/useNativeUpdatedValue.d.ts +14 -0
- package/lib/typescript/src/utils/useNativeUpdatedValue.d.ts.map +1 -0
- package/lib/typescript/src/utils/validation.d.ts +3 -0
- package/lib/typescript/src/utils/validation.d.ts.map +1 -0
- 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/nitro.json +24 -0
- package/nitrogen/generated/.gitattributes +1 -0
- package/nitrogen/generated/android/AudioBrowser+autolinking.cmake +88 -0
- package/nitrogen/generated/android/AudioBrowser+autolinking.gradle +27 -0
- package/nitrogen/generated/android/AudioBrowserOnLoad.cpp +136 -0
- package/nitrogen/generated/android/AudioBrowserOnLoad.hpp +34 -0
- package/nitrogen/generated/android/c++/JAndroidAudioContentType.hpp +67 -0
- package/nitrogen/generated/android/c++/JAndroidAudioOffloadSettings.hpp +61 -0
- package/nitrogen/generated/android/c++/JAndroidOptions.hpp +86 -0
- package/nitrogen/generated/android/c++/JAndroidPlayerWakeMode.hpp +61 -0
- package/nitrogen/generated/android/c++/JAndroidUpdateOptions.hpp +86 -0
- package/nitrogen/generated/android/c++/JAppKilledPlaybackBehavior.hpp +61 -0
- package/nitrogen/generated/android/c++/JArtworkRequestConfig.hpp +166 -0
- package/nitrogen/generated/android/c++/JBatteryOptimizationStatus.hpp +61 -0
- package/nitrogen/generated/android/c++/JBatteryOptimizationStatusChangedEvent.hpp +58 -0
- package/nitrogen/generated/android/c++/JBatteryWarningPendingChangedEvent.hpp +57 -0
- package/nitrogen/generated/android/c++/JBrowseError.hpp +57 -0
- package/nitrogen/generated/android/c++/JBrowseResult.cpp +26 -0
- package/nitrogen/generated/android/c++/JBrowseResult.hpp +87 -0
- package/nitrogen/generated/android/c++/JBrowserSourceCallbackParam.hpp +76 -0
- package/nitrogen/generated/android/c++/JCarPlayNowPlayingButton.hpp +64 -0
- package/nitrogen/generated/android/c++/JCarPlaySiriListButtonPosition.hpp +58 -0
- package/nitrogen/generated/android/c++/JChapterMetadata.hpp +70 -0
- package/nitrogen/generated/android/c++/JEqualizerSettings.hpp +125 -0
- package/nitrogen/generated/android/c++/JFavoriteChangedEvent.hpp +74 -0
- package/nitrogen/generated/android/c++/JFormatNavigationErrorParams.hpp +72 -0
- package/nitrogen/generated/android/c++/JFormattedNavigationError.hpp +61 -0
- package/nitrogen/generated/android/c++/JFunc_std__shared_ptr_Promise_std__optional_FormattedNavigationError____FormatNavigationErrorParams.hpp +111 -0
- package/nitrogen/generated/android/c++/JFunc_std__shared_ptr_Promise_std__shared_ptr_Promise_RequestConfig_____MediaTransformParams.hpp +134 -0
- package/nitrogen/generated/android/c++/JFunc_std__shared_ptr_Promise_std__shared_ptr_Promise_RequestConfig_____RequestConfig_std__optional_std__unordered_map_std__string__std__string__.hpp +143 -0
- package/nitrogen/generated/android/c++/JFunc_std__shared_ptr_Promise_std__shared_ptr_Promise_RequestConfig_____Track.hpp +139 -0
- 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 +159 -0
- package/nitrogen/generated/android/c++/JFunc_std__shared_ptr_Promise_std__shared_ptr_Promise_void_____TrackLoadEvent.hpp +139 -0
- package/nitrogen/generated/android/c++/JFunc_void.hpp +75 -0
- package/nitrogen/generated/android/c++/JFunc_void_BatteryOptimizationStatusChangedEvent.hpp +79 -0
- package/nitrogen/generated/android/c++/JFunc_void_BatteryWarningPendingChangedEvent.hpp +77 -0
- package/nitrogen/generated/android/c++/JFunc_void_EqualizerSettings.hpp +80 -0
- package/nitrogen/generated/android/c++/JFunc_void_FavoriteChangedEvent.hpp +91 -0
- package/nitrogen/generated/android/c++/JFunc_void_IosOutput.hpp +80 -0
- package/nitrogen/generated/android/c++/JFunc_void_NavigationErrorEvent.hpp +83 -0
- package/nitrogen/generated/android/c++/JFunc_void_NowPlayingMetadata.hpp +89 -0
- package/nitrogen/generated/android/c++/JFunc_void_Options.hpp +98 -0
- package/nitrogen/generated/android/c++/JFunc_void_Playback.hpp +83 -0
- package/nitrogen/generated/android/c++/JFunc_void_PlaybackActiveTrackChangedEvent.hpp +91 -0
- package/nitrogen/generated/android/c++/JFunc_void_PlaybackErrorEvent.hpp +81 -0
- package/nitrogen/generated/android/c++/JFunc_void_PlaybackPlayWhenReadyChangedEvent.hpp +77 -0
- package/nitrogen/generated/android/c++/JFunc_void_PlaybackProgressUpdatedEvent.hpp +77 -0
- package/nitrogen/generated/android/c++/JFunc_void_PlaybackQueueEndedEvent.hpp +77 -0
- package/nitrogen/generated/android/c++/JFunc_void_PlayingState.hpp +77 -0
- package/nitrogen/generated/android/c++/JFunc_void_RemoteJumpBackwardEvent.hpp +77 -0
- package/nitrogen/generated/android/c++/JFunc_void_RemoteJumpForwardEvent.hpp +77 -0
- package/nitrogen/generated/android/c++/JFunc_void_RemotePlayIdEvent.hpp +79 -0
- package/nitrogen/generated/android/c++/JFunc_void_RemotePlaySearchEvent.hpp +78 -0
- package/nitrogen/generated/android/c++/JFunc_void_RemoteSeekEvent.hpp +77 -0
- package/nitrogen/generated/android/c++/JFunc_void_RemoteSetRatingEvent.hpp +87 -0
- package/nitrogen/generated/android/c++/JFunc_void_RemoteSkipEvent.hpp +77 -0
- package/nitrogen/generated/android/c++/JFunc_void_RepeatModeChangedEvent.hpp +79 -0
- package/nitrogen/generated/android/c++/JFunc_void_TimedMetadata.hpp +79 -0
- package/nitrogen/generated/android/c++/JFunc_void_TrackMetadata.hpp +79 -0
- package/nitrogen/generated/android/c++/JFunc_void_bool.hpp +75 -0
- package/nitrogen/generated/android/c++/JFunc_void_double.hpp +75 -0
- package/nitrogen/generated/android/c++/JFunc_void_std__optional_FormattedNavigationError_.hpp +79 -0
- package/nitrogen/generated/android/c++/JFunc_void_std__optional_ResolvedTrack_.hpp +93 -0
- package/nitrogen/generated/android/c++/JFunc_void_std__optional_std__variant_nitro__NullType__SleepTimerTime__SleepTimerEndOfTrack__.hpp +84 -0
- package/nitrogen/generated/android/c++/JFunc_void_std__string.hpp +76 -0
- package/nitrogen/generated/android/c++/JFunc_void_std__vector_ChapterMetadata_.hpp +98 -0
- package/nitrogen/generated/android/c++/JFunc_void_std__vector_Track_.hpp +107 -0
- package/nitrogen/generated/android/c++/JHeartRating.hpp +57 -0
- package/nitrogen/generated/android/c++/JHttpMethod.hpp +73 -0
- package/nitrogen/generated/android/c++/JHybridAudioBrowserSpec.cpp +1835 -0
- package/nitrogen/generated/android/c++/JHybridAudioBrowserSpec.hpp +248 -0
- package/nitrogen/generated/android/c++/JIOSCategory.hpp +70 -0
- package/nitrogen/generated/android/c++/JIOSCategoryMode.hpp +79 -0
- package/nitrogen/generated/android/c++/JIOSCategoryOptions.hpp +73 -0
- package/nitrogen/generated/android/c++/JIOSCategoryPolicy.hpp +61 -0
- package/nitrogen/generated/android/c++/JImageContext.hpp +61 -0
- package/nitrogen/generated/android/c++/JImageQueryParams.hpp +62 -0
- package/nitrogen/generated/android/c++/JImageRowItem.hpp +75 -0
- package/nitrogen/generated/android/c++/JImageSource.hpp +86 -0
- package/nitrogen/generated/android/c++/JIosOutput.hpp +67 -0
- package/nitrogen/generated/android/c++/JIosOutputType.hpp +85 -0
- package/nitrogen/generated/android/c++/JMediaRequestConfig.hpp +156 -0
- package/nitrogen/generated/android/c++/JMediaTransformParams.hpp +69 -0
- package/nitrogen/generated/android/c++/JNativeBrowserConfiguration.hpp +216 -0
- package/nitrogen/generated/android/c++/JNativeRouteEntry.hpp +151 -0
- package/nitrogen/generated/android/c++/JNativeUpdateOptions.hpp +105 -0
- package/nitrogen/generated/android/c++/JNavigationError.hpp +72 -0
- package/nitrogen/generated/android/c++/JNavigationErrorEvent.hpp +62 -0
- package/nitrogen/generated/android/c++/JNavigationErrorType.hpp +67 -0
- package/nitrogen/generated/android/c++/JNitroAndroidUpdateOptions.hpp +86 -0
- package/nitrogen/generated/android/c++/JNotificationButton.hpp +67 -0
- package/nitrogen/generated/android/c++/JNotificationButtonLayout.hpp +94 -0
- package/nitrogen/generated/android/c++/JNowPlayingMetadata.hpp +104 -0
- package/nitrogen/generated/android/c++/JNowPlayingUpdate.hpp +62 -0
- package/nitrogen/generated/android/c++/JOptions.hpp +97 -0
- package/nitrogen/generated/android/c++/JPartialAndroidSetupPlayerOptions.hpp +104 -0
- package/nitrogen/generated/android/c++/JPartialIOSSetupPlayerOptions.hpp +100 -0
- 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 +66 -0
- package/nitrogen/generated/android/c++/JPlaybackActiveTrackChangedEvent.hpp +86 -0
- package/nitrogen/generated/android/c++/JPlaybackError.hpp +61 -0
- package/nitrogen/generated/android/c++/JPlaybackErrorEvent.hpp +60 -0
- package/nitrogen/generated/android/c++/JPlaybackPlayWhenReadyChangedEvent.hpp +57 -0
- package/nitrogen/generated/android/c++/JPlaybackProgressUpdatedEvent.hpp +69 -0
- package/nitrogen/generated/android/c++/JPlaybackQueueEndedEvent.hpp +61 -0
- package/nitrogen/generated/android/c++/JPlaybackState.hpp +79 -0
- package/nitrogen/generated/android/c++/JPlayerCapabilities.hpp +101 -0
- package/nitrogen/generated/android/c++/JPlayingState.hpp +61 -0
- package/nitrogen/generated/android/c++/JProgress.hpp +65 -0
- package/nitrogen/generated/android/c++/JRatingType.hpp +73 -0
- package/nitrogen/generated/android/c++/JRemoteJumpBackwardEvent.hpp +57 -0
- package/nitrogen/generated/android/c++/JRemoteJumpForwardEvent.hpp +57 -0
- package/nitrogen/generated/android/c++/JRemotePlayIdEvent.hpp +62 -0
- package/nitrogen/generated/android/c++/JRemotePlaySearchEvent.hpp +57 -0
- package/nitrogen/generated/android/c++/JRemoteSeekEvent.hpp +57 -0
- package/nitrogen/generated/android/c++/JRemoteSetRatingEvent.hpp +66 -0
- package/nitrogen/generated/android/c++/JRemoteSkipEvent.hpp +57 -0
- package/nitrogen/generated/android/c++/JRepeatMode.hpp +61 -0
- package/nitrogen/generated/android/c++/JRepeatModeChangedEvent.hpp +58 -0
- package/nitrogen/generated/android/c++/JRequestConfig.hpp +115 -0
- package/nitrogen/generated/android/c++/JResolvedTrack.hpp +184 -0
- package/nitrogen/generated/android/c++/JRetryConfig.hpp +61 -0
- package/nitrogen/generated/android/c++/JSearchMode.hpp +70 -0
- package/nitrogen/generated/android/c++/JSearchParams.hpp +84 -0
- package/nitrogen/generated/android/c++/JSleepTimer.cpp +30 -0
- package/nitrogen/generated/android/c++/JSleepTimer.hpp +88 -0
- package/nitrogen/generated/android/c++/JSleepTimerEndOfTrack.hpp +57 -0
- package/nitrogen/generated/android/c++/JSleepTimerTime.hpp +57 -0
- package/nitrogen/generated/android/c++/JStarRating.hpp +57 -0
- package/nitrogen/generated/android/c++/JThumbsRating.hpp +57 -0
- package/nitrogen/generated/android/c++/JTimedMetadata.hpp +74 -0
- package/nitrogen/generated/android/c++/JTrack.hpp +154 -0
- package/nitrogen/generated/android/c++/JTrackLoadEvent.hpp +96 -0
- package/nitrogen/generated/android/c++/JTrackMetadata.hpp +118 -0
- package/nitrogen/generated/android/c++/JTrackStyle.hpp +58 -0
- package/nitrogen/generated/android/c++/JTransformableRequestConfig.hpp +134 -0
- package/nitrogen/generated/android/c++/JUpdateOptions.hpp +105 -0
- package/nitrogen/generated/android/c++/JVariant_Boolean_AndroidAudioOffloadSettings.cpp +26 -0
- package/nitrogen/generated/android/c++/JVariant_Boolean_AndroidAudioOffloadSettings.hpp +70 -0
- package/nitrogen/generated/android/c++/JVariant_Boolean_RetryConfig.cpp +26 -0
- package/nitrogen/generated/android/c++/JVariant_Boolean_RetryConfig.hpp +70 -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_Double.cpp +26 -0
- package/nitrogen/generated/android/c++/JVariant_NullType_Double.hpp +69 -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 +26 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/AndroidAudioOffloadSettings.kt +41 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/AndroidOptions.kt +50 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/AndroidPlayerWakeMode.kt +24 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/AndroidUpdateOptions.kt +50 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/AppKilledPlaybackBehavior.kt +24 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/ArtworkRequestConfig.kt +72 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/AudioBrowserOnLoad.kt +35 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/BatteryOptimizationStatus.kt +24 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/BatteryOptimizationStatusChangedEvent.kt +38 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/BatteryWarningPendingChangedEvent.kt +38 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/BrowseError.kt +38 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/BrowseResult.kt +53 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/BrowserSourceCallbackParam.kt +41 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/CarPlayNowPlayingButton.kt +25 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/CarPlaySiriListButtonPosition.kt +23 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/ChapterMetadata.kt +47 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/EqualizerSettings.kt +59 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/FavoriteChangedEvent.kt +41 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/FormatNavigationErrorParams.kt +44 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/FormattedNavigationError.kt +41 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/Func_std__shared_ptr_Promise_std__optional_FormattedNavigationError____FormatNavigationErrorParams.kt +80 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/Func_std__shared_ptr_Promise_std__shared_ptr_Promise_RequestConfig_____MediaTransformParams.kt +80 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/Func_std__shared_ptr_Promise_std__shared_ptr_Promise_RequestConfig_____RequestConfig_std__optional_std__unordered_map_std__string__std__string__.kt +80 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/Func_std__shared_ptr_Promise_std__shared_ptr_Promise_RequestConfig_____Track.kt +80 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/Func_std__shared_ptr_Promise_std__shared_ptr_Promise_std__variant_ResolvedTrack__BrowseError______BrowserSourceCallbackParam.kt +80 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/Func_std__shared_ptr_Promise_std__shared_ptr_Promise_std__vector_Track______SearchParams.kt +80 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/Func_std__shared_ptr_Promise_std__shared_ptr_Promise_void_____TrackLoadEvent.kt +80 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/Func_void.kt +80 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/Func_void_BatteryOptimizationStatusChangedEvent.kt +80 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/Func_void_BatteryWarningPendingChangedEvent.kt +80 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/Func_void_EqualizerSettings.kt +80 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/Func_void_FavoriteChangedEvent.kt +80 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/Func_void_IosOutput.kt +80 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/Func_void_NavigationErrorEvent.kt +80 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/Func_void_NowPlayingMetadata.kt +80 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/Func_void_Options.kt +80 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/Func_void_Playback.kt +80 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/Func_void_PlaybackActiveTrackChangedEvent.kt +80 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/Func_void_PlaybackErrorEvent.kt +80 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/Func_void_PlaybackPlayWhenReadyChangedEvent.kt +80 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/Func_void_PlaybackProgressUpdatedEvent.kt +80 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/Func_void_PlaybackQueueEndedEvent.kt +80 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/Func_void_PlayingState.kt +80 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/Func_void_RemoteJumpBackwardEvent.kt +80 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/Func_void_RemoteJumpForwardEvent.kt +80 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/Func_void_RemotePlayIdEvent.kt +80 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/Func_void_RemotePlaySearchEvent.kt +80 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/Func_void_RemoteSeekEvent.kt +80 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/Func_void_RemoteSetRatingEvent.kt +80 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/Func_void_RemoteSkipEvent.kt +80 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/Func_void_RepeatModeChangedEvent.kt +80 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/Func_void_TimedMetadata.kt +80 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/Func_void_TrackMetadata.kt +80 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/Func_void_bool.kt +80 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/Func_void_double.kt +80 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/Func_void_std__optional_FormattedNavigationError_.kt +80 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/Func_void_std__optional_ResolvedTrack_.kt +80 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/Func_void_std__optional_std__variant_nitro__NullType__SleepTimerTime__SleepTimerEndOfTrack__.kt +80 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/Func_void_std__string.kt +80 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/Func_void_std__vector_ChapterMetadata_.kt +80 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/Func_void_std__vector_Track_.kt +80 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/HeartRating.kt +38 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/HttpMethod.kt +28 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/HybridAudioBrowserSpec.kt +1134 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/IOSCategory.kt +27 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/IOSCategoryMode.kt +30 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/IOSCategoryOptions.kt +28 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/IOSCategoryPolicy.kt +24 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/ImageContext.kt +41 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/ImageQueryParams.kt +41 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/ImageRowItem.kt +47 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/ImageSource.kt +47 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/IosOutput.kt +44 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/IosOutputType.kt +32 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/MediaRequestConfig.kt +69 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/MediaTransformParams.kt +41 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/NativeBrowserConfiguration.kt +72 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/NativeRouteEntry.kt +63 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/NativeUpdateOptions.kt +53 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/NavigationError.kt +47 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/NavigationErrorEvent.kt +38 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/NavigationErrorType.kt +26 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/NitroAndroidUpdateOptions.kt +50 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/NotificationButton.kt +26 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/NotificationButtonLayout.kt +50 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/NowPlayingMetadata.kt +65 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/NowPlayingUpdate.kt +41 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/Options.kt +53 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/PartialAndroidSetupPlayerOptions.kt +65 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/PartialIOSSetupPlayerOptions.kt +50 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/PartialSetupPlayerOptions.kt +47 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/PercentageRating.kt +38 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/Playback.kt +41 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/PlaybackActiveTrackChangedEvent.kt +50 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/PlaybackError.kt +41 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/PlaybackErrorEvent.kt +38 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/PlaybackPlayWhenReadyChangedEvent.kt +38 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/PlaybackProgressUpdatedEvent.kt +47 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/PlaybackQueueEndedEvent.kt +41 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/PlaybackState.kt +30 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/PlayerCapabilities.kt +71 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/PlayingState.kt +41 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/Progress.kt +44 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/RatingType.kt +28 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/RemoteJumpBackwardEvent.kt +38 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/RemoteJumpForwardEvent.kt +38 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/RemotePlayIdEvent.kt +41 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/RemotePlaySearchEvent.kt +38 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/RemoteSeekEvent.kt +38 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/RemoteSetRatingEvent.kt +38 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/RemoteSkipEvent.kt +38 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/RepeatMode.kt +24 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/RepeatModeChangedEvent.kt +38 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/RequestConfig.kt +59 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/ResolvedTrack.kt +95 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/RetryConfig.kt +41 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/SearchMode.kt +27 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/SearchParams.kt +56 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/SleepTimer.kt +65 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/SleepTimerEndOfTrack.kt +38 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/SleepTimerTime.kt +38 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/StarRating.kt +38 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/ThumbsRating.kt +38 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/TimedMetadata.kt +50 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/Track.kt +89 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/TrackLoadEvent.kt +44 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/TrackMetadata.kt +83 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/TrackStyle.kt +23 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/TransformableRequestConfig.kt +66 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/UpdateOptions.kt +53 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/Variant_Boolean_AndroidAudioOffloadSettings.kt +53 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/Variant_Boolean_RetryConfig.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_Double.kt +53 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/Variant_NullType_NotificationButtonLayout.kt +53 -0
- package/nitrogen/generated/ios/AudioBrowser+autolinking.rb +60 -0
- package/nitrogen/generated/ios/AudioBrowser-Swift-Cxx-Bridge.cpp +424 -0
- package/nitrogen/generated/ios/AudioBrowser-Swift-Cxx-Bridge.hpp +2959 -0
- package/nitrogen/generated/ios/AudioBrowser-Swift-Cxx-Umbrella.hpp +309 -0
- package/nitrogen/generated/ios/AudioBrowserAutolinking.mm +33 -0
- package/nitrogen/generated/ios/AudioBrowserAutolinking.swift +26 -0
- package/nitrogen/generated/ios/c++/HybridAudioBrowserSpecSwift.cpp +11 -0
- package/nitrogen/generated/ios/c++/HybridAudioBrowserSpecSwift.hpp +1214 -0
- package/nitrogen/generated/ios/swift/AndroidAudioContentType.swift +52 -0
- package/nitrogen/generated/ios/swift/AndroidAudioOffloadSettings.swift +60 -0
- package/nitrogen/generated/ios/swift/AndroidOptions.swift +81 -0
- package/nitrogen/generated/ios/swift/AndroidPlayerWakeMode.swift +44 -0
- package/nitrogen/generated/ios/swift/AndroidUpdateOptions.swift +119 -0
- package/nitrogen/generated/ios/swift/AppKilledPlaybackBehavior.swift +44 -0
- package/nitrogen/generated/ios/swift/ArtworkRequestConfig.swift +294 -0
- package/nitrogen/generated/ios/swift/BatteryOptimizationStatus.swift +44 -0
- package/nitrogen/generated/ios/swift/BatteryOptimizationStatusChangedEvent.swift +29 -0
- package/nitrogen/generated/ios/swift/BatteryWarningPendingChangedEvent.swift +29 -0
- package/nitrogen/generated/ios/swift/BrowseError.swift +29 -0
- package/nitrogen/generated/ios/swift/BrowseResult.swift +18 -0
- package/nitrogen/generated/ios/swift/BrowserSourceCallbackParam.swift +61 -0
- package/nitrogen/generated/ios/swift/CarPlayNowPlayingButton.swift +48 -0
- package/nitrogen/generated/ios/swift/CarPlaySiriListButtonPosition.swift +40 -0
- package/nitrogen/generated/ios/swift/ChapterMetadata.swift +70 -0
- package/nitrogen/generated/ios/swift/EqualizerSettings.swift +95 -0
- package/nitrogen/generated/ios/swift/FavoriteChangedEvent.swift +34 -0
- package/nitrogen/generated/ios/swift/FormatNavigationErrorParams.swift +39 -0
- package/nitrogen/generated/ios/swift/FormattedNavigationError.swift +34 -0
- package/nitrogen/generated/ios/swift/Func_std__shared_ptr_Promise_std__optional_FormattedNavigationError____FormatNavigationErrorParams.swift +60 -0
- package/nitrogen/generated/ios/swift/Func_std__shared_ptr_Promise_std__shared_ptr_Promise_RequestConfig_____MediaTransformParams.swift +61 -0
- package/nitrogen/generated/ios/swift/Func_std__shared_ptr_Promise_std__shared_ptr_Promise_RequestConfig_____RequestConfig_std__optional_std__unordered_map_std__string__std__string__.swift +76 -0
- package/nitrogen/generated/ios/swift/Func_std__shared_ptr_Promise_std__shared_ptr_Promise_RequestConfig_____Track.swift +61 -0
- 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_std__shared_ptr_Promise_std__shared_ptr_Promise_std__vector_Track______SearchParams.swift +67 -0
- package/nitrogen/generated/ios/swift/Func_std__shared_ptr_Promise_std__shared_ptr_Promise_void_____TrackLoadEvent.swift +61 -0
- package/nitrogen/generated/ios/swift/Func_void.swift +46 -0
- package/nitrogen/generated/ios/swift/Func_void_BatteryOptimizationStatusChangedEvent.swift +46 -0
- package/nitrogen/generated/ios/swift/Func_void_BatteryWarningPendingChangedEvent.swift +46 -0
- package/nitrogen/generated/ios/swift/Func_void_EqualizerSettings.swift +46 -0
- package/nitrogen/generated/ios/swift/Func_void_FavoriteChangedEvent.swift +46 -0
- package/nitrogen/generated/ios/swift/Func_void_IosOutput.swift +46 -0
- package/nitrogen/generated/ios/swift/Func_void_NavigationErrorEvent.swift +46 -0
- package/nitrogen/generated/ios/swift/Func_void_NowPlayingMetadata.swift +46 -0
- package/nitrogen/generated/ios/swift/Func_void_Options.swift +46 -0
- package/nitrogen/generated/ios/swift/Func_void_Playback.swift +46 -0
- package/nitrogen/generated/ios/swift/Func_void_PlaybackActiveTrackChangedEvent.swift +46 -0
- package/nitrogen/generated/ios/swift/Func_void_PlaybackErrorEvent.swift +46 -0
- package/nitrogen/generated/ios/swift/Func_void_PlaybackPlayWhenReadyChangedEvent.swift +46 -0
- package/nitrogen/generated/ios/swift/Func_void_PlaybackProgressUpdatedEvent.swift +46 -0
- package/nitrogen/generated/ios/swift/Func_void_PlaybackQueueEndedEvent.swift +46 -0
- package/nitrogen/generated/ios/swift/Func_void_PlayingState.swift +46 -0
- package/nitrogen/generated/ios/swift/Func_void_RemoteJumpBackwardEvent.swift +46 -0
- package/nitrogen/generated/ios/swift/Func_void_RemoteJumpForwardEvent.swift +46 -0
- package/nitrogen/generated/ios/swift/Func_void_RemotePlayIdEvent.swift +46 -0
- package/nitrogen/generated/ios/swift/Func_void_RemotePlaySearchEvent.swift +46 -0
- package/nitrogen/generated/ios/swift/Func_void_RemoteSeekEvent.swift +46 -0
- package/nitrogen/generated/ios/swift/Func_void_RemoteSetRatingEvent.swift +46 -0
- package/nitrogen/generated/ios/swift/Func_void_RemoteSkipEvent.swift +46 -0
- package/nitrogen/generated/ios/swift/Func_void_RepeatModeChangedEvent.swift +46 -0
- package/nitrogen/generated/ios/swift/Func_void_RequestConfig.swift +46 -0
- package/nitrogen/generated/ios/swift/Func_void_TimedMetadata.swift +46 -0
- package/nitrogen/generated/ios/swift/Func_void_TrackMetadata.swift +46 -0
- package/nitrogen/generated/ios/swift/Func_void_bool.swift +46 -0
- package/nitrogen/generated/ios/swift/Func_void_double.swift +46 -0
- package/nitrogen/generated/ios/swift/Func_void_std__exception_ptr.swift +46 -0
- package/nitrogen/generated/ios/swift/Func_void_std__optional_FormattedNavigationError_.swift +46 -0
- package/nitrogen/generated/ios/swift/Func_void_std__optional_ResolvedTrack_.swift +46 -0
- package/nitrogen/generated/ios/swift/Func_void_std__optional_std__variant_nitro__NullType__SleepTimerTime__SleepTimerEndOfTrack__.swift +68 -0
- package/nitrogen/generated/ios/swift/Func_void_std__shared_ptr_Promise_RequestConfig__.swift +66 -0
- package/nitrogen/generated/ios/swift/Func_void_std__shared_ptr_Promise_std__variant_ResolvedTrack__BrowseError___.swift +66 -0
- package/nitrogen/generated/ios/swift/Func_void_std__shared_ptr_Promise_std__vector_Track___.swift +66 -0
- package/nitrogen/generated/ios/swift/Func_void_std__shared_ptr_Promise_void__.swift +64 -0
- package/nitrogen/generated/ios/swift/Func_void_std__string.swift +46 -0
- package/nitrogen/generated/ios/swift/Func_void_std__variant_ResolvedTrack__BrowseError_.swift +58 -0
- package/nitrogen/generated/ios/swift/Func_void_std__vector_ChapterMetadata_.swift +46 -0
- package/nitrogen/generated/ios/swift/Func_void_std__vector_Track_.swift +46 -0
- package/nitrogen/generated/ios/swift/HeartRating.swift +29 -0
- package/nitrogen/generated/ios/swift/HttpMethod.swift +60 -0
- package/nitrogen/generated/ios/swift/HybridAudioBrowserSpec.swift +180 -0
- package/nitrogen/generated/ios/swift/HybridAudioBrowserSpec_cxx.swift +2401 -0
- package/nitrogen/generated/ios/swift/IOSCategory.swift +56 -0
- package/nitrogen/generated/ios/swift/IOSCategoryMode.swift +68 -0
- package/nitrogen/generated/ios/swift/IOSCategoryOptions.swift +60 -0
- package/nitrogen/generated/ios/swift/IOSCategoryPolicy.swift +44 -0
- package/nitrogen/generated/ios/swift/ImageContext.swift +60 -0
- package/nitrogen/generated/ios/swift/ImageQueryParams.swift +60 -0
- package/nitrogen/generated/ios/swift/ImageRowItem.swift +76 -0
- package/nitrogen/generated/ios/swift/ImageSource.swift +90 -0
- package/nitrogen/generated/ios/swift/IosOutput.swift +39 -0
- package/nitrogen/generated/ios/swift/IosOutputType.swift +76 -0
- package/nitrogen/generated/ios/swift/MediaRequestConfig.swift +295 -0
- package/nitrogen/generated/ios/swift/MediaTransformParams.swift +40 -0
- package/nitrogen/generated/ios/swift/NativeBrowserConfiguration.swift +271 -0
- package/nitrogen/generated/ios/swift/NativeRouteEntry.swift +178 -0
- package/nitrogen/generated/ios/swift/NativeUpdateOptions.swift +143 -0
- package/nitrogen/generated/ios/swift/NavigationError.swift +70 -0
- package/nitrogen/generated/ios/swift/NavigationErrorEvent.swift +35 -0
- package/nitrogen/generated/ios/swift/NavigationErrorType.swift +52 -0
- package/nitrogen/generated/ios/swift/NitroAndroidUpdateOptions.swift +119 -0
- package/nitrogen/generated/ios/swift/NotificationButton.swift +52 -0
- package/nitrogen/generated/ios/swift/NotificationButtonLayout.swift +92 -0
- package/nitrogen/generated/ios/swift/NowPlayingMetadata.swift +233 -0
- package/nitrogen/generated/ios/swift/NowPlayingUpdate.swift +60 -0
- package/nitrogen/generated/ios/swift/Options.swift +92 -0
- package/nitrogen/generated/ios/swift/PartialAndroidSetupPlayerOptions.swift +228 -0
- package/nitrogen/generated/ios/swift/PartialIOSSetupPlayerOptions.swift +99 -0
- package/nitrogen/generated/ios/swift/PartialSetupPlayerOptions.swift +101 -0
- package/nitrogen/generated/ios/swift/PercentageRating.swift +29 -0
- package/nitrogen/generated/ios/swift/Playback.swift +40 -0
- package/nitrogen/generated/ios/swift/PlaybackActiveTrackChangedEvent.swift +87 -0
- package/nitrogen/generated/ios/swift/PlaybackError.swift +34 -0
- package/nitrogen/generated/ios/swift/PlaybackErrorEvent.swift +35 -0
- package/nitrogen/generated/ios/swift/PlaybackPlayWhenReadyChangedEvent.swift +29 -0
- package/nitrogen/generated/ios/swift/PlaybackProgressUpdatedEvent.swift +44 -0
- package/nitrogen/generated/ios/swift/PlaybackQueueEndedEvent.swift +34 -0
- package/nitrogen/generated/ios/swift/PlaybackState.swift +68 -0
- package/nitrogen/generated/ios/swift/PlayerCapabilities.swift +240 -0
- package/nitrogen/generated/ios/swift/PlayingState.swift +34 -0
- package/nitrogen/generated/ios/swift/Progress.swift +39 -0
- package/nitrogen/generated/ios/swift/RatingType.swift +60 -0
- package/nitrogen/generated/ios/swift/RemoteJumpBackwardEvent.swift +29 -0
- package/nitrogen/generated/ios/swift/RemoteJumpForwardEvent.swift +29 -0
- package/nitrogen/generated/ios/swift/RemotePlayIdEvent.swift +47 -0
- package/nitrogen/generated/ios/swift/RemotePlaySearchEvent.swift +29 -0
- package/nitrogen/generated/ios/swift/RemoteSeekEvent.swift +29 -0
- package/nitrogen/generated/ios/swift/RemoteSetRatingEvent.swift +58 -0
- package/nitrogen/generated/ios/swift/RemoteSkipEvent.swift +29 -0
- package/nitrogen/generated/ios/swift/RepeatMode.swift +44 -0
- package/nitrogen/generated/ios/swift/RepeatModeChangedEvent.swift +29 -0
- package/nitrogen/generated/ios/swift/RequestConfig.swift +189 -0
- package/nitrogen/generated/ios/swift/ResolvedTrack.swift +342 -0
- package/nitrogen/generated/ios/swift/RetryConfig.swift +47 -0
- package/nitrogen/generated/ios/swift/SearchMode.swift +56 -0
- package/nitrogen/generated/ios/swift/SearchParams.swift +130 -0
- package/nitrogen/generated/ios/swift/SleepTimer.swift +19 -0
- package/nitrogen/generated/ios/swift/SleepTimerEndOfTrack.swift +29 -0
- package/nitrogen/generated/ios/swift/SleepTimerTime.swift +29 -0
- package/nitrogen/generated/ios/swift/StarRating.swift +29 -0
- package/nitrogen/generated/ios/swift/ThumbsRating.swift +29 -0
- package/nitrogen/generated/ios/swift/TimedMetadata.swift +114 -0
- package/nitrogen/generated/ios/swift/Track.swift +320 -0
- package/nitrogen/generated/ios/swift/TrackLoadEvent.swift +45 -0
- package/nitrogen/generated/ios/swift/TrackMetadata.swift +312 -0
- package/nitrogen/generated/ios/swift/TrackStyle.swift +40 -0
- package/nitrogen/generated/ios/swift/TransformableRequestConfig.swift +248 -0
- package/nitrogen/generated/ios/swift/UpdateOptions.swift +143 -0
- package/nitrogen/generated/ios/swift/Variant_Bool_AndroidAudioOffloadSettings.swift +18 -0
- package/nitrogen/generated/ios/swift/Variant_Bool_RetryConfig.swift +18 -0
- package/nitrogen/generated/ios/swift/Variant_HeartRating_ThumbsRating_StarRating_PercentageRating.swift +20 -0
- package/nitrogen/generated/ios/swift/Variant_NullType_Double.swift +18 -0
- package/nitrogen/generated/ios/swift/Variant_NullType_NotificationButtonLayout.swift +18 -0
- package/nitrogen/generated/shared/c++/AndroidAudioContentType.hpp +88 -0
- package/nitrogen/generated/shared/c++/AndroidAudioOffloadSettings.hpp +87 -0
- package/nitrogen/generated/shared/c++/AndroidOptions.hpp +109 -0
- package/nitrogen/generated/shared/c++/AndroidPlayerWakeMode.hpp +80 -0
- package/nitrogen/generated/shared/c++/AndroidUpdateOptions.hpp +109 -0
- package/nitrogen/generated/shared/c++/AppKilledPlaybackBehavior.hpp +80 -0
- package/nitrogen/generated/shared/c++/ArtworkRequestConfig.hpp +141 -0
- package/nitrogen/generated/shared/c++/BatteryOptimizationStatus.hpp +80 -0
- package/nitrogen/generated/shared/c++/BatteryOptimizationStatusChangedEvent.hpp +84 -0
- package/nitrogen/generated/shared/c++/BatteryWarningPendingChangedEvent.hpp +83 -0
- package/nitrogen/generated/shared/c++/BrowseError.hpp +83 -0
- package/nitrogen/generated/shared/c++/BrowserSourceCallbackParam.hpp +89 -0
- package/nitrogen/generated/shared/c++/CarPlayNowPlayingButton.hpp +84 -0
- package/nitrogen/generated/shared/c++/CarPlaySiriListButtonPosition.hpp +76 -0
- package/nitrogen/generated/shared/c++/ChapterMetadata.hpp +96 -0
- package/nitrogen/generated/shared/c++/EqualizerSettings.hpp +113 -0
- package/nitrogen/generated/shared/c++/FavoriteChangedEvent.hpp +88 -0
- package/nitrogen/generated/shared/c++/FormatNavigationErrorParams.hpp +96 -0
- package/nitrogen/generated/shared/c++/FormattedNavigationError.hpp +87 -0
- package/nitrogen/generated/shared/c++/HeartRating.hpp +83 -0
- package/nitrogen/generated/shared/c++/HttpMethod.hpp +96 -0
- package/nitrogen/generated/shared/c++/HybridAudioBrowserSpec.cpp +207 -0
- package/nitrogen/generated/shared/c++/HybridAudioBrowserSpec.hpp +375 -0
- package/nitrogen/generated/shared/c++/IOSCategory.hpp +92 -0
- package/nitrogen/generated/shared/c++/IOSCategoryMode.hpp +104 -0
- package/nitrogen/generated/shared/c++/IOSCategoryOptions.hpp +96 -0
- package/nitrogen/generated/shared/c++/IOSCategoryPolicy.hpp +80 -0
- package/nitrogen/generated/shared/c++/ImageContext.hpp +87 -0
- package/nitrogen/generated/shared/c++/ImageQueryParams.hpp +88 -0
- package/nitrogen/generated/shared/c++/ImageRowItem.hpp +98 -0
- package/nitrogen/generated/shared/c++/ImageSource.hpp +99 -0
- package/nitrogen/generated/shared/c++/IosOutput.hpp +93 -0
- package/nitrogen/generated/shared/c++/IosOutputType.hpp +112 -0
- package/nitrogen/generated/shared/c++/MediaRequestConfig.hpp +131 -0
- package/nitrogen/generated/shared/c++/MediaTransformParams.hpp +92 -0
- package/nitrogen/generated/shared/c++/NativeBrowserConfiguration.hpp +150 -0
- package/nitrogen/generated/shared/c++/NativeRouteEntry.hpp +139 -0
- package/nitrogen/generated/shared/c++/NativeUpdateOptions.hpp +111 -0
- package/nitrogen/generated/shared/c++/NavigationError.hpp +98 -0
- package/nitrogen/generated/shared/c++/NavigationErrorEvent.hpp +85 -0
- package/nitrogen/generated/shared/c++/NavigationErrorType.hpp +88 -0
- package/nitrogen/generated/shared/c++/NitroAndroidUpdateOptions.hpp +109 -0
- package/nitrogen/generated/shared/c++/NotificationButton.hpp +88 -0
- package/nitrogen/generated/shared/c++/NotificationButtonLayout.hpp +102 -0
- package/nitrogen/generated/shared/c++/NowPlayingMetadata.hpp +132 -0
- package/nitrogen/generated/shared/c++/NowPlayingUpdate.hpp +88 -0
- package/nitrogen/generated/shared/c++/Options.hpp +113 -0
- package/nitrogen/generated/shared/c++/PartialAndroidSetupPlayerOptions.hpp +129 -0
- package/nitrogen/generated/shared/c++/PartialIOSSetupPlayerOptions.hpp +111 -0
- package/nitrogen/generated/shared/c++/PartialSetupPlayerOptions.hpp +104 -0
- package/nitrogen/generated/shared/c++/PercentageRating.hpp +83 -0
- package/nitrogen/generated/shared/c++/Playback.hpp +92 -0
- package/nitrogen/generated/shared/c++/PlaybackActiveTrackChangedEvent.hpp +101 -0
- package/nitrogen/generated/shared/c++/PlaybackError.hpp +87 -0
- package/nitrogen/generated/shared/c++/PlaybackErrorEvent.hpp +85 -0
- package/nitrogen/generated/shared/c++/PlaybackPlayWhenReadyChangedEvent.hpp +83 -0
- package/nitrogen/generated/shared/c++/PlaybackProgressUpdatedEvent.hpp +95 -0
- package/nitrogen/generated/shared/c++/PlaybackQueueEndedEvent.hpp +87 -0
- package/nitrogen/generated/shared/c++/PlaybackState.hpp +104 -0
- package/nitrogen/generated/shared/c++/PlayerCapabilities.hpp +127 -0
- package/nitrogen/generated/shared/c++/PlayingState.hpp +87 -0
- package/nitrogen/generated/shared/c++/Progress.hpp +91 -0
- package/nitrogen/generated/shared/c++/RatingType.hpp +96 -0
- package/nitrogen/generated/shared/c++/RemoteJumpBackwardEvent.hpp +83 -0
- package/nitrogen/generated/shared/c++/RemoteJumpForwardEvent.hpp +83 -0
- package/nitrogen/generated/shared/c++/RemotePlayIdEvent.hpp +88 -0
- package/nitrogen/generated/shared/c++/RemotePlaySearchEvent.hpp +83 -0
- package/nitrogen/generated/shared/c++/RemoteSeekEvent.hpp +83 -0
- package/nitrogen/generated/shared/c++/RemoteSetRatingEvent.hpp +94 -0
- package/nitrogen/generated/shared/c++/RemoteSkipEvent.hpp +83 -0
- package/nitrogen/generated/shared/c++/RepeatMode.hpp +80 -0
- package/nitrogen/generated/shared/c++/RepeatModeChangedEvent.hpp +84 -0
- package/nitrogen/generated/shared/c++/RequestConfig.hpp +115 -0
- package/nitrogen/generated/shared/c++/ResolvedTrack.hpp +175 -0
- package/nitrogen/generated/shared/c++/RetryConfig.hpp +87 -0
- package/nitrogen/generated/shared/c++/SearchMode.hpp +92 -0
- package/nitrogen/generated/shared/c++/SearchParams.hpp +110 -0
- package/nitrogen/generated/shared/c++/SleepTimerEndOfTrack.hpp +83 -0
- package/nitrogen/generated/shared/c++/SleepTimerTime.hpp +83 -0
- package/nitrogen/generated/shared/c++/StarRating.hpp +83 -0
- package/nitrogen/generated/shared/c++/ThumbsRating.hpp +83 -0
- package/nitrogen/generated/shared/c++/TimedMetadata.hpp +100 -0
- package/nitrogen/generated/shared/c++/Track.hpp +161 -0
- package/nitrogen/generated/shared/c++/TrackLoadEvent.hpp +93 -0
- package/nitrogen/generated/shared/c++/TrackMetadata.hpp +144 -0
- package/nitrogen/generated/shared/c++/TrackStyle.hpp +76 -0
- package/nitrogen/generated/shared/c++/TransformableRequestConfig.hpp +124 -0
- package/nitrogen/generated/shared/c++/UpdateOptions.hpp +111 -0
- package/package.json +117 -6
- package/src/AudioBrowser.ts +4 -0
- package/src/features/battery.ts +176 -0
- package/src/features/browser.ts +316 -0
- package/src/features/equalizer.ts +64 -0
- package/src/features/errors.ts +196 -0
- package/src/features/favorites.ts +102 -0
- package/src/features/index.ts +23 -0
- package/src/features/metadata.ts +130 -0
- package/src/features/network.ts +34 -0
- package/src/features/nowPlaying.ts +56 -0
- package/src/features/output.ts +50 -0
- package/src/features/playback/controls.ts +66 -0
- package/src/features/playback/index.ts +7 -0
- package/src/features/playback/playWhenReady.ts +57 -0
- package/src/features/playback/playing.ts +40 -0
- package/src/features/playback/progress.ts +122 -0
- package/src/features/playback/rate.ts +22 -0
- package/src/features/playback/state.ts +72 -0
- package/src/features/playback/volume.ts +59 -0
- package/src/features/player/index.ts +2 -0
- package/src/features/player/options.ts +479 -0
- package/src/features/player/setup.ts +551 -0
- package/src/features/queue/activeTrack.ts +59 -0
- package/src/features/queue/index.ts +4 -0
- package/src/features/queue/queue.ts +173 -0
- package/src/features/queue/repeatMode.ts +58 -0
- package/src/features/queue/shuffle.ts +49 -0
- package/src/features/rating.ts +17 -0
- package/src/features/remoteControls.ts +341 -0
- package/src/features/sleepTimer.ts +186 -0
- package/src/index.ts +5 -0
- package/src/native.ts +5 -0
- package/src/native.web.ts +4 -0
- package/src/specs/audio-browser.nitro.ts +325 -0
- package/src/types/browser-native.ts +68 -0
- package/src/types/browser-nodes.ts +222 -0
- package/src/types/browser.ts +828 -0
- package/src/types/index.ts +2 -0
- package/src/types/player.ts +69 -0
- package/src/utils/LazyNativeEmitter.ts +58 -0
- package/src/utils/NativeUpdatedValue.ts +56 -0
- package/src/utils/resolveAssetSource.ts +4 -0
- package/src/utils/useDebug.ts +283 -0
- package/src/utils/useNativeUpdatedValue.ts +41 -0
- package/src/utils/validation.ts +27 -0
- package/src/web/NativeAudioBrowser.ts +884 -0
- package/src/web/SimpleRouter.test.ts +160 -0
- package/src/web/SimpleRouter.ts +194 -0
- package/src/web/TrackPlayer/Event.ts +11 -0
- package/src/web/TrackPlayer/Player.ts +351 -0
- package/src/web/TrackPlayer/PlaylistPlayer.ts +346 -0
- package/src/web/TrackPlayer/RepeatMode.ts +7 -0
- package/src/web/TrackPlayer/SetupNotCalledError.ts +5 -0
- package/src/web/TrackPlayer/SleepTimer.ts +71 -0
- package/src/web/TrackPlayer/State.ts +15 -0
- package/src/web/TrackPlayer/index.ts +4 -0
- package/src/web/browser/BrowserManager.ts +699 -0
- package/src/web/browser/FavoriteManager.ts +79 -0
- package/src/web/browser/NavigationErrorManager.ts +119 -0
- package/src/web/browser/SearchManager.ts +88 -0
- package/src/web/http/HttpClient.ts +125 -0
- package/src/web/http/RequestConfigBuilder.ts +363 -0
- package/src/web/player/NowPlayingManager.ts +89 -0
- package/src/web/player/OptionsManager.ts +102 -0
- package/src/web/util/BrowserPathHelper.ts +148 -0
- package/src/web/util/shuffle.ts +14 -0
- package/index.js +0 -1
|
@@ -0,0 +1,291 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import { BrowserPathHelper } from '../util/BrowserPathHelper';
|
|
4
|
+
|
|
5
|
+
/**
|
|
6
|
+
* Appends query parameters to a URL, handling existing query strings.
|
|
7
|
+
*/
|
|
8
|
+
function appendQueryParams(url, query) {
|
|
9
|
+
if (!query || Object.keys(query).length === 0) return url;
|
|
10
|
+
const params = new URLSearchParams();
|
|
11
|
+
for (const [key, value] of Object.entries(query)) {
|
|
12
|
+
if (value !== undefined && value !== null) {
|
|
13
|
+
params.append(key, String(value));
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
const queryString = params.toString();
|
|
17
|
+
if (!queryString) return url;
|
|
18
|
+
const separator = url.includes('?') ? '&' : '?';
|
|
19
|
+
return url + separator + queryString;
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
/**
|
|
23
|
+
* Applies image dimension query parameters to a request config.
|
|
24
|
+
* Maps ImageContext dimensions to query params using the configured param names.
|
|
25
|
+
*/
|
|
26
|
+
function applyImageQueryParams(config, imgParams, context) {
|
|
27
|
+
if (!imgParams || !context) return config;
|
|
28
|
+
const query = {
|
|
29
|
+
...config.query
|
|
30
|
+
};
|
|
31
|
+
if (imgParams.width && context.width) {
|
|
32
|
+
query[imgParams.width] = String(context.width);
|
|
33
|
+
}
|
|
34
|
+
if (imgParams.height && context.height) {
|
|
35
|
+
query[imgParams.height] = String(context.height);
|
|
36
|
+
}
|
|
37
|
+
return {
|
|
38
|
+
...config,
|
|
39
|
+
query
|
|
40
|
+
};
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
/**
|
|
44
|
+
* Builds and merges request configurations.
|
|
45
|
+
* Mirrors Android's RequestConfigBuilder.kt
|
|
46
|
+
*/
|
|
47
|
+
export const RequestConfigBuilder = {
|
|
48
|
+
/**
|
|
49
|
+
* Builds a complete URL from a request config.
|
|
50
|
+
* Uses BrowserPathHelper for consistent URL building.
|
|
51
|
+
*/
|
|
52
|
+
buildUrl(config) {
|
|
53
|
+
const path = config.path ?? '';
|
|
54
|
+
const baseUrl = config.baseUrl;
|
|
55
|
+
|
|
56
|
+
// Use BrowserPathHelper for consistent URL building
|
|
57
|
+
const url = BrowserPathHelper.buildUrl(baseUrl, path);
|
|
58
|
+
|
|
59
|
+
// Add query parameters if any
|
|
60
|
+
return appendQueryParams(url, config.query);
|
|
61
|
+
},
|
|
62
|
+
/**
|
|
63
|
+
* Merges two RequestConfigs, with override values taking precedence.
|
|
64
|
+
* Headers and query params are merged (not replaced).
|
|
65
|
+
*/
|
|
66
|
+
mergeConfig(base, override) {
|
|
67
|
+
return {
|
|
68
|
+
path: override.path ?? base.path,
|
|
69
|
+
method: override.method ?? base.method,
|
|
70
|
+
baseUrl: override.baseUrl ?? base.baseUrl,
|
|
71
|
+
headers: this.mergeHeaders(base.headers, override.headers),
|
|
72
|
+
query: this.mergeQuery(base.query, override.query),
|
|
73
|
+
body: override.body ?? base.body,
|
|
74
|
+
contentType: override.contentType ?? base.contentType,
|
|
75
|
+
userAgent: override.userAgent ?? base.userAgent
|
|
76
|
+
};
|
|
77
|
+
},
|
|
78
|
+
/**
|
|
79
|
+
* Merges a base RequestConfig with a MediaRequestConfig.
|
|
80
|
+
* Returns the merged config for use in media URL resolution.
|
|
81
|
+
* Supports the transform callback like Android's RequestConfigBuilder.
|
|
82
|
+
*
|
|
83
|
+
* Note: MediaRequestConfig inherits transform from TransformableRequestConfig,
|
|
84
|
+
* which takes (request, routeParams?) directly, not MediaTransformParams.
|
|
85
|
+
*/
|
|
86
|
+
async mergeMediaConfig(base, override) {
|
|
87
|
+
// Apply transform function if provided - transform result wins completely
|
|
88
|
+
if (override.transform) {
|
|
89
|
+
try {
|
|
90
|
+
// TransformableRequestConfig.transform takes (request, routeParams?) directly
|
|
91
|
+
const transformed = await override.transform(base);
|
|
92
|
+
return transformed;
|
|
93
|
+
} catch (e) {
|
|
94
|
+
console.error('Failed to apply media transform function, using base config', e);
|
|
95
|
+
return base;
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
|
|
99
|
+
// No transform - merge static config
|
|
100
|
+
return this.mergeConfig(base, this.toRequestConfig(override));
|
|
101
|
+
},
|
|
102
|
+
/**
|
|
103
|
+
* Merges a base RequestConfig with an ArtworkRequestConfig.
|
|
104
|
+
* Returns the merged config for use in artwork URL resolution.
|
|
105
|
+
*/
|
|
106
|
+
mergeArtworkConfig(base, override) {
|
|
107
|
+
// On web, we don't support resolve/transform callbacks - just merge the static config
|
|
108
|
+
return this.mergeConfig(base, this.toRequestConfig(override));
|
|
109
|
+
},
|
|
110
|
+
/**
|
|
111
|
+
* Converts a TransformableRequestConfig to a plain RequestConfig.
|
|
112
|
+
*/
|
|
113
|
+
toRequestConfig(config) {
|
|
114
|
+
return {
|
|
115
|
+
path: config.path,
|
|
116
|
+
method: config.method,
|
|
117
|
+
baseUrl: config.baseUrl,
|
|
118
|
+
headers: config.headers,
|
|
119
|
+
query: config.query,
|
|
120
|
+
body: config.body,
|
|
121
|
+
contentType: config.contentType,
|
|
122
|
+
userAgent: config.userAgent
|
|
123
|
+
};
|
|
124
|
+
},
|
|
125
|
+
/**
|
|
126
|
+
* Resolves a media URL using the media configuration.
|
|
127
|
+
* Creates a RequestConfig with the track's src as the path, then builds the URL.
|
|
128
|
+
* Supports the transform callback for URL manipulation.
|
|
129
|
+
*
|
|
130
|
+
* @param src The track's src value (may be relative or absolute)
|
|
131
|
+
* @param mediaConfig The media request configuration
|
|
132
|
+
* @returns The resolved absolute URL
|
|
133
|
+
*/
|
|
134
|
+
async resolveMediaUrl(src, mediaConfig) {
|
|
135
|
+
if (!mediaConfig) {
|
|
136
|
+
return BrowserPathHelper.buildUrl(undefined, src);
|
|
137
|
+
}
|
|
138
|
+
const config = await this.mergeMediaConfig({
|
|
139
|
+
path: src
|
|
140
|
+
}, mediaConfig);
|
|
141
|
+
return BrowserPathHelper.buildUrl(config.baseUrl, config.path ?? src);
|
|
142
|
+
},
|
|
143
|
+
/**
|
|
144
|
+
* Resolves an artwork URL and creates an ImageSource.
|
|
145
|
+
* Matches Android's artwork URL transformation behavior.
|
|
146
|
+
*
|
|
147
|
+
* @param artworkUrl The artwork URL (may be relative or absolute)
|
|
148
|
+
* @param artworkConfig The artwork request configuration
|
|
149
|
+
* @returns ImageSource with resolved URI, or undefined if no artwork
|
|
150
|
+
*/
|
|
151
|
+
resolveArtworkSource(artworkUrl, artworkConfig) {
|
|
152
|
+
if (!artworkUrl) return undefined;
|
|
153
|
+
const config = artworkConfig ? this.mergeArtworkConfig({
|
|
154
|
+
path: artworkUrl
|
|
155
|
+
}, artworkConfig) : {
|
|
156
|
+
path: artworkUrl
|
|
157
|
+
};
|
|
158
|
+
const resolvedUri = BrowserPathHelper.buildUrl(config.baseUrl, config.path ?? artworkUrl);
|
|
159
|
+
return {
|
|
160
|
+
uri: resolvedUri,
|
|
161
|
+
method: config.method ?? 'GET',
|
|
162
|
+
headers: config.headers
|
|
163
|
+
};
|
|
164
|
+
},
|
|
165
|
+
/**
|
|
166
|
+
* Resolves an artwork URL asynchronously with full Track access.
|
|
167
|
+
* Supports resolve and transform callbacks from ArtworkRequestConfig.
|
|
168
|
+
* Matches Android's CoilBitmapLoader.transformArtworkUrlForTrack() behavior.
|
|
169
|
+
*
|
|
170
|
+
* The resolution order is:
|
|
171
|
+
* 1. If resolve callback exists, call it with the track to get per-track config
|
|
172
|
+
* 2. Merge base config + resolved config
|
|
173
|
+
* 3. Apply imageQueryParams if context has dimensions
|
|
174
|
+
* 4. Apply transform callback if present
|
|
175
|
+
*
|
|
176
|
+
* @param track The track to resolve artwork for (full Track object)
|
|
177
|
+
* @param artworkConfig The artwork request configuration
|
|
178
|
+
* @param imageContext Optional image context with size hints (width/height)
|
|
179
|
+
* @returns ImageSource with resolved URI, or undefined if no artwork
|
|
180
|
+
*/
|
|
181
|
+
async resolveArtworkSourceAsync(track, artworkConfig, imageContext) {
|
|
182
|
+
const artworkUrl = track.artwork;
|
|
183
|
+
|
|
184
|
+
// If no config and no track.artwork, nothing to transform
|
|
185
|
+
if (!artworkConfig && !artworkUrl) {
|
|
186
|
+
return undefined;
|
|
187
|
+
}
|
|
188
|
+
|
|
189
|
+
// If no artwork config, just return the original artwork URL
|
|
190
|
+
if (!artworkConfig) {
|
|
191
|
+
return artworkUrl ? {
|
|
192
|
+
uri: artworkUrl,
|
|
193
|
+
method: 'GET'
|
|
194
|
+
} : undefined;
|
|
195
|
+
}
|
|
196
|
+
try {
|
|
197
|
+
// Step 1: Call resolve callback if provided to get per-track config
|
|
198
|
+
let resolvedConfig;
|
|
199
|
+
if (artworkConfig.resolve) {
|
|
200
|
+
resolvedConfig = await artworkConfig.resolve(track);
|
|
201
|
+
// If resolve callback returned null/undefined, that means no artwork
|
|
202
|
+
if (!resolvedConfig && artworkUrl === undefined) {
|
|
203
|
+
return undefined;
|
|
204
|
+
}
|
|
205
|
+
}
|
|
206
|
+
|
|
207
|
+
// Step 2: Merge base config + resolved per-track config
|
|
208
|
+
const baseConfig = {
|
|
209
|
+
path: artworkUrl
|
|
210
|
+
};
|
|
211
|
+
let mergedConfig = this.mergeConfig(this.mergeConfig(baseConfig, this.toRequestConfig(artworkConfig)), resolvedConfig ?? {});
|
|
212
|
+
|
|
213
|
+
// Step 3: Apply imageQueryParams if context has dimensions
|
|
214
|
+
mergedConfig = applyImageQueryParams(mergedConfig, artworkConfig.imageQueryParams, imageContext);
|
|
215
|
+
|
|
216
|
+
// Step 4: Apply transform callback if present
|
|
217
|
+
if (artworkConfig.transform) {
|
|
218
|
+
mergedConfig = await artworkConfig.transform({
|
|
219
|
+
request: mergedConfig,
|
|
220
|
+
context: imageContext
|
|
221
|
+
});
|
|
222
|
+
}
|
|
223
|
+
|
|
224
|
+
// Build final URL
|
|
225
|
+
const resolvedUri = BrowserPathHelper.buildUrl(mergedConfig.baseUrl, mergedConfig.path ?? artworkUrl ?? '');
|
|
226
|
+
const finalUri = appendQueryParams(resolvedUri, mergedConfig.query);
|
|
227
|
+
return {
|
|
228
|
+
uri: finalUri,
|
|
229
|
+
method: mergedConfig.method ?? 'GET',
|
|
230
|
+
headers: mergedConfig.headers,
|
|
231
|
+
body: mergedConfig.body
|
|
232
|
+
};
|
|
233
|
+
} catch (error) {
|
|
234
|
+
// resolve/transform threw - log error, return undefined to avoid broken images
|
|
235
|
+
console.error('Failed to resolve artwork URL:', error);
|
|
236
|
+
return undefined;
|
|
237
|
+
}
|
|
238
|
+
},
|
|
239
|
+
/**
|
|
240
|
+
* Transforms a track's artwork URL and populates artworkSource.
|
|
241
|
+
* Leaves the original artwork property unchanged.
|
|
242
|
+
* Matches Android's transformArtworkUrl behavior.
|
|
243
|
+
*
|
|
244
|
+
* @param track The track to transform
|
|
245
|
+
* @param artworkConfig The artwork request configuration
|
|
246
|
+
* @returns Track with artworkSource populated
|
|
247
|
+
*/
|
|
248
|
+
transformTrackArtwork(track, artworkConfig) {
|
|
249
|
+
// If artworkSource is already set, don't override it
|
|
250
|
+
if (track.artworkSource) return track;
|
|
251
|
+
const artworkSource = this.resolveArtworkSource(track.artwork, artworkConfig);
|
|
252
|
+
if (!artworkSource) return track;
|
|
253
|
+
return {
|
|
254
|
+
...track,
|
|
255
|
+
artworkSource
|
|
256
|
+
};
|
|
257
|
+
},
|
|
258
|
+
/**
|
|
259
|
+
* Transforms artwork URLs for an array of tracks.
|
|
260
|
+
*
|
|
261
|
+
* @param tracks Array of tracks to transform
|
|
262
|
+
* @param artworkConfig The artwork request configuration
|
|
263
|
+
* @returns Tracks with artworkSource populated
|
|
264
|
+
*/
|
|
265
|
+
transformTracksArtwork(tracks, artworkConfig) {
|
|
266
|
+
return tracks.map(track => this.transformTrackArtwork(track, artworkConfig));
|
|
267
|
+
},
|
|
268
|
+
/**
|
|
269
|
+
* Merges header maps, with override values taking precedence.
|
|
270
|
+
*/
|
|
271
|
+
mergeHeaders(base, override) {
|
|
272
|
+
if (!base) return override;
|
|
273
|
+
if (!override) return base;
|
|
274
|
+
return {
|
|
275
|
+
...base,
|
|
276
|
+
...override
|
|
277
|
+
};
|
|
278
|
+
},
|
|
279
|
+
/**
|
|
280
|
+
* Merges query parameter maps, with override values taking precedence.
|
|
281
|
+
*/
|
|
282
|
+
mergeQuery(base, override) {
|
|
283
|
+
if (!base) return override;
|
|
284
|
+
if (!override) return base;
|
|
285
|
+
return {
|
|
286
|
+
...base,
|
|
287
|
+
...override
|
|
288
|
+
};
|
|
289
|
+
}
|
|
290
|
+
};
|
|
291
|
+
//# sourceMappingURL=RequestConfigBuilder.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["BrowserPathHelper","appendQueryParams","url","query","Object","keys","length","params","URLSearchParams","key","value","entries","undefined","append","String","queryString","toString","separator","includes","applyImageQueryParams","config","imgParams","context","width","height","RequestConfigBuilder","buildUrl","path","baseUrl","mergeConfig","base","override","method","headers","mergeHeaders","mergeQuery","body","contentType","userAgent","mergeMediaConfig","transform","transformed","e","console","error","toRequestConfig","mergeArtworkConfig","resolveMediaUrl","src","mediaConfig","resolveArtworkSource","artworkUrl","artworkConfig","resolvedUri","uri","resolveArtworkSourceAsync","track","imageContext","artwork","resolvedConfig","resolve","baseConfig","mergedConfig","imageQueryParams","request","finalUri","transformTrackArtwork","artworkSource","transformTracksArtwork","tracks","map"],"sourceRoot":"../../../../src","sources":["web/http/RequestConfigBuilder.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* Manages now playing metadata overrides.
|
|
5
|
+
* Allows temporary metadata changes for the currently playing track
|
|
6
|
+
* (e.g., updating stream metadata for live radio).
|
|
7
|
+
*/
|
|
8
|
+
export class NowPlayingManager {
|
|
9
|
+
// Event callback
|
|
10
|
+
onNowPlayingChanged = () => {};
|
|
11
|
+
|
|
12
|
+
/**
|
|
13
|
+
* Updates the now playing metadata with an override.
|
|
14
|
+
* Pass null or undefined to clear overrides and revert to track metadata.
|
|
15
|
+
*
|
|
16
|
+
* @param update Metadata override or null/undefined to clear
|
|
17
|
+
* @param currentTrack Current track for base metadata
|
|
18
|
+
* @param duration Current track duration
|
|
19
|
+
*/
|
|
20
|
+
updateNowPlaying(update, currentTrack, duration) {
|
|
21
|
+
this.override = update;
|
|
22
|
+
if (!currentTrack) return;
|
|
23
|
+
const metadata = update ? {
|
|
24
|
+
title: update.title ?? currentTrack.title,
|
|
25
|
+
artist: update.artist ?? currentTrack.artist,
|
|
26
|
+
album: currentTrack.album,
|
|
27
|
+
artwork: currentTrack.artwork,
|
|
28
|
+
description: currentTrack.description,
|
|
29
|
+
mediaId: currentTrack.src ?? currentTrack.url,
|
|
30
|
+
genre: currentTrack.genre,
|
|
31
|
+
duration
|
|
32
|
+
} : {
|
|
33
|
+
title: currentTrack.title,
|
|
34
|
+
artist: currentTrack.artist,
|
|
35
|
+
album: currentTrack.album,
|
|
36
|
+
artwork: currentTrack.artwork,
|
|
37
|
+
description: currentTrack.description,
|
|
38
|
+
mediaId: currentTrack.src ?? currentTrack.url,
|
|
39
|
+
genre: currentTrack.genre,
|
|
40
|
+
duration
|
|
41
|
+
};
|
|
42
|
+
this.onNowPlayingChanged(metadata);
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
/**
|
|
46
|
+
* Gets the current now playing metadata (with override applied if set).
|
|
47
|
+
*
|
|
48
|
+
* @param currentTrack Current track for base metadata
|
|
49
|
+
* @param duration Current track duration
|
|
50
|
+
* @returns Now playing metadata or undefined if no track
|
|
51
|
+
*/
|
|
52
|
+
getNowPlaying(currentTrack, duration) {
|
|
53
|
+
if (!currentTrack) return undefined;
|
|
54
|
+
return {
|
|
55
|
+
title: this.override?.title ?? currentTrack.title,
|
|
56
|
+
artist: this.override?.artist ?? currentTrack.artist,
|
|
57
|
+
album: currentTrack.album,
|
|
58
|
+
artwork: currentTrack.artwork,
|
|
59
|
+
description: currentTrack.description,
|
|
60
|
+
mediaId: currentTrack.src ?? currentTrack.url,
|
|
61
|
+
genre: currentTrack.genre,
|
|
62
|
+
duration
|
|
63
|
+
};
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
/**
|
|
67
|
+
* Clears the current metadata override.
|
|
68
|
+
* Should be called when the track changes.
|
|
69
|
+
*/
|
|
70
|
+
clearNowPlayingOverride() {
|
|
71
|
+
this.override = undefined;
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
//# sourceMappingURL=NowPlayingManager.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["NowPlayingManager","onNowPlayingChanged","updateNowPlaying","update","currentTrack","duration","override","metadata","title","artist","album","artwork","description","mediaId","src","url","genre","getNowPlaying","undefined","clearNowPlayingOverride"],"sourceRoot":"../../../../src","sources":["web/player/NowPlayingManager.ts"],"mappings":";;AAGA;AACA;AACA;AACA;AACA;AACA,OAAO,MAAMA,iBAAiB,CAAC;EAG7B;EACAC,mBAAmB,GAA2CA,CAAA,KAAM,CAAC,CAAC;;EAEtE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;EACEC,gBAAgBA,CACdC,MAAoC,EACpCC,YAA+B,EAC/BC,QAAgB,EACV;IACN,IAAI,CAACC,QAAQ,GAAGH,MAAM;IAEtB,IAAI,CAACC,YAAY,EAAE;IAEnB,MAAMG,QAA4B,GAAGJ,MAAM,GACvC;MACEK,KAAK,EAAEL,MAAM,CAACK,KAAK,IAAIJ,YAAY,CAACI,KAAK;MACzCC,MAAM,EAAEN,MAAM,CAACM,MAAM,IAAIL,YAAY,CAACK,MAAM;MAC5CC,KAAK,EAAEN,YAAY,CAACM,KAAK;MACzBC,OAAO,EAAEP,YAAY,CAACO,OAAO;MAC7BC,WAAW,EAAER,YAAY,CAACQ,WAAW;MACrCC,OAAO,EAAET,YAAY,CAACU,GAAG,IAAIV,YAAY,CAACW,GAAG;MAC7CC,KAAK,EAAEZ,YAAY,CAACY,KAAK;MACzBX;IACF,CAAC,GACD;MACEG,KAAK,EAAEJ,YAAY,CAACI,KAAK;MACzBC,MAAM,EAAEL,YAAY,CAACK,MAAM;MAC3BC,KAAK,EAAEN,YAAY,CAACM,KAAK;MACzBC,OAAO,EAAEP,YAAY,CAACO,OAAO;MAC7BC,WAAW,EAAER,YAAY,CAACQ,WAAW;MACrCC,OAAO,EAAET,YAAY,CAACU,GAAG,IAAIV,YAAY,CAACW,GAAG;MAC7CC,KAAK,EAAEZ,YAAY,CAACY,KAAK;MACzBX;IACF,CAAC;IAEL,IAAI,CAACJ,mBAAmB,CAACM,QAAQ,CAAC;EACpC;;EAEA;AACF;AACA;AACA;AACA;AACA;AACA;EACEU,aAAaA,CACXb,YAA+B,EAC/BC,QAAgB,EACgB;IAChC,IAAI,CAACD,YAAY,EAAE,OAAOc,SAAS;IAEnC,OAAO;MACLV,KAAK,EAAE,IAAI,CAACF,QAAQ,EAAEE,KAAK,IAAIJ,YAAY,CAACI,KAAK;MACjDC,MAAM,EAAE,IAAI,CAACH,QAAQ,EAAEG,MAAM,IAAIL,YAAY,CAACK,MAAM;MACpDC,KAAK,EAAEN,YAAY,CAACM,KAAK;MACzBC,OAAO,EAAEP,YAAY,CAACO,OAAO;MAC7BC,WAAW,EAAER,YAAY,CAACQ,WAAW;MACrCC,OAAO,EAAET,YAAY,CAACU,GAAG,IAAIV,YAAY,CAACW,GAAG;MAC7CC,KAAK,EAAEZ,YAAY,CAACY,KAAK;MACzBX;IACF,CAAC;EACH;;EAEA;AACF;AACA;AACA;EACEc,uBAAuBA,CAAA,EAAS;IAC9B,IAAI,CAACb,QAAQ,GAAGY,SAAS;EAC3B;AACF","ignoreList":[]}
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import { RepeatMode } from '../TrackPlayer';
|
|
4
|
+
/**
|
|
5
|
+
* Manages player options and configuration.
|
|
6
|
+
* Handles option updates and change detection.
|
|
7
|
+
*/
|
|
8
|
+
export class OptionsManager {
|
|
9
|
+
options = {
|
|
10
|
+
forwardJumpInterval: 15,
|
|
11
|
+
backwardJumpInterval: 15,
|
|
12
|
+
progressUpdateEventInterval: null,
|
|
13
|
+
repeatMode: RepeatMode.Off,
|
|
14
|
+
capabilities: {}
|
|
15
|
+
};
|
|
16
|
+
|
|
17
|
+
// Event callback
|
|
18
|
+
onOptionsChanged = () => {};
|
|
19
|
+
|
|
20
|
+
/**
|
|
21
|
+
* Updates player options with change detection.
|
|
22
|
+
* Emits onOptionsChanged event after updating.
|
|
23
|
+
*
|
|
24
|
+
* @param options Partial options to update
|
|
25
|
+
*/
|
|
26
|
+
updateOptions(options) {
|
|
27
|
+
if (options.progressUpdateEventInterval !== null && options.progressUpdateEventInterval !== undefined && typeof options.progressUpdateEventInterval !== 'number') {
|
|
28
|
+
throw new Error('NullSentinel type is not valid on web.');
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
// Merge platform-agnostic options
|
|
32
|
+
const mergedOptions = {
|
|
33
|
+
...this.options,
|
|
34
|
+
forwardJumpInterval: options.forwardJumpInterval ?? this.options.forwardJumpInterval,
|
|
35
|
+
backwardJumpInterval: options.backwardJumpInterval ?? this.options.backwardJumpInterval,
|
|
36
|
+
capabilities: options.capabilities ?? this.options.capabilities,
|
|
37
|
+
progressUpdateEventInterval: options.progressUpdateEventInterval === null ? null : options.progressUpdateEventInterval ?? this.options.progressUpdateEventInterval
|
|
38
|
+
};
|
|
39
|
+
|
|
40
|
+
// Store merged options
|
|
41
|
+
this.options = mergedOptions;
|
|
42
|
+
|
|
43
|
+
// Call callback with full Options type (including repeatMode)
|
|
44
|
+
const fullOptions = {
|
|
45
|
+
forwardJumpInterval: mergedOptions.forwardJumpInterval ?? 15,
|
|
46
|
+
backwardJumpInterval: mergedOptions.backwardJumpInterval ?? 15,
|
|
47
|
+
progressUpdateEventInterval: mergedOptions.progressUpdateEventInterval ?? 15,
|
|
48
|
+
capabilities: mergedOptions.capabilities ?? {},
|
|
49
|
+
repeatMode: mergedOptions.repeatMode
|
|
50
|
+
};
|
|
51
|
+
this.onOptionsChanged(fullOptions);
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
/**
|
|
55
|
+
* Gets current player options (excluding repeatMode).
|
|
56
|
+
*/
|
|
57
|
+
getOptions() {
|
|
58
|
+
return {
|
|
59
|
+
forwardJumpInterval: this.options.forwardJumpInterval,
|
|
60
|
+
backwardJumpInterval: this.options.backwardJumpInterval,
|
|
61
|
+
progressUpdateEventInterval: this.options.progressUpdateEventInterval,
|
|
62
|
+
capabilities: this.options.capabilities
|
|
63
|
+
};
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
/**
|
|
67
|
+
* Gets the current repeat mode.
|
|
68
|
+
*/
|
|
69
|
+
getRepeatMode() {
|
|
70
|
+
return this.options.repeatMode;
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
/**
|
|
74
|
+
* Sets the repeat mode.
|
|
75
|
+
* Updates internal state but does not emit events - caller should handle that.
|
|
76
|
+
*
|
|
77
|
+
* @param mode New repeat mode
|
|
78
|
+
*/
|
|
79
|
+
setRepeatMode(mode) {
|
|
80
|
+
this.options.repeatMode = mode;
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
//# sourceMappingURL=OptionsManager.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["RepeatMode","OptionsManager","options","forwardJumpInterval","backwardJumpInterval","progressUpdateEventInterval","repeatMode","Off","capabilities","onOptionsChanged","updateOptions","undefined","Error","mergedOptions","fullOptions","getOptions","getRepeatMode","setRepeatMode","mode"],"sourceRoot":"../../../../src","sources":["web/player/OptionsManager.ts"],"mappings":";;AAMA,SAASA,UAAU,QAAQ,gBAAgB;AAM3C;AACA;AACA;AACA;AACA,OAAO,MAAMC,cAAc,CAAC;EAClBC,OAAO,GAAoB;IACjCC,mBAAmB,EAAE,EAAE;IACvBC,oBAAoB,EAAE,EAAE;IACxBC,2BAA2B,EAAE,IAAI;IACjCC,UAAU,EAAEN,UAAU,CAACO,GAAG;IAC1BC,YAAY,EAAE,CAAC;EACjB,CAAC;;EAED;EACAC,gBAAgB,GAA+BA,CAAA,KAAM,CAAC,CAAC;;EAEvD;AACF;AACA;AACA;AACA;AACA;EACEC,aAAaA,CAACR,OAA4B,EAAQ;IAChD,IACEA,OAAO,CAACG,2BAA2B,KAAK,IAAI,IAC5CH,OAAO,CAACG,2BAA2B,KAAKM,SAAS,IACjD,OAAOT,OAAO,CAACG,2BAA2B,KAAK,QAAQ,EACvD;MACA,MAAM,IAAIO,KAAK,CAAC,wCAAwC,CAAC;IAC3D;;IAEA;IACA,MAAMC,aAA8B,GAAG;MACrC,GAAG,IAAI,CAACX,OAAO;MACfC,mBAAmB,EACjBD,OAAO,CAACC,mBAAmB,IAAI,IAAI,CAACD,OAAO,CAACC,mBAAmB;MACjEC,oBAAoB,EAClBF,OAAO,CAACE,oBAAoB,IAAI,IAAI,CAACF,OAAO,CAACE,oBAAoB;MACnEI,YAAY,EAAEN,OAAO,CAACM,YAAY,IAAI,IAAI,CAACN,OAAO,CAACM,YAAY;MAC/DH,2BAA2B,EACzBH,OAAO,CAACG,2BAA2B,KAAK,IAAI,GACxC,IAAI,GACHH,OAAO,CAACG,2BAA2B,IACpC,IAAI,CAACH,OAAO,CAACG;IACrB,CAAC;;IAED;IACA,IAAI,CAACH,OAAO,GAAGW,aAAa;;IAE5B;IACA,MAAMC,WAAoB,GAAG;MAC3BX,mBAAmB,EAAEU,aAAa,CAACV,mBAAmB,IAAI,EAAE;MAC5DC,oBAAoB,EAAES,aAAa,CAACT,oBAAoB,IAAI,EAAE;MAC9DC,2BAA2B,EACzBQ,aAAa,CAACR,2BAA2B,IAAI,EAAE;MACjDG,YAAY,EAAEK,aAAa,CAACL,YAAY,IAAI,CAAC,CAAC;MAC9CF,UAAU,EAAEO,aAAa,CAACP;IAC5B,CAAC;IACD,IAAI,CAACG,gBAAgB,CAACK,WAAW,CAAC;EACpC;;EAEA;AACF;AACA;EACEC,UAAUA,CAAA,EAAkB;IAC1B,OAAO;MACLZ,mBAAmB,EAAE,IAAI,CAACD,OAAO,CAACC,mBAAmB;MACrDC,oBAAoB,EAAE,IAAI,CAACF,OAAO,CAACE,oBAAoB;MACvDC,2BAA2B,EAAE,IAAI,CAACH,OAAO,CAACG,2BAA2B;MACrEG,YAAY,EAAE,IAAI,CAACN,OAAO,CAACM;IAC7B,CAAC;EACH;;EAEA;AACF;AACA;EACEQ,aAAaA,CAAA,EAAmB;IAC9B,OAAO,IAAI,CAACd,OAAO,CAACI,UAAU;EAChC;;EAEA;AACF;AACA;AACA;AACA;AACA;EACEW,aAAaA,CAACC,IAAoB,EAAQ;IACxC,IAAI,CAAChB,OAAO,CAACI,UAAU,GAAGY,IAAI;EAChC;AACF","ignoreList":[]}
|
|
@@ -0,0 +1,134 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* Utility for handling browser paths and contextual URLs in the media browser system.
|
|
5
|
+
* Mirrors Android's BrowserPathHelper.kt
|
|
6
|
+
*
|
|
7
|
+
* Handles two types of special paths:
|
|
8
|
+
* 1. System paths (prefixed with `/__`): Root, recent, and search paths
|
|
9
|
+
* 2. Contextual URLs: Embed parent context in track identifiers for Media3 integration
|
|
10
|
+
*
|
|
11
|
+
* Contextual URL format: `{parentPath}?__trackId={trackSrc}`
|
|
12
|
+
* Example: "/library/radio?__trackId=song.mp3"
|
|
13
|
+
*
|
|
14
|
+
* This allows:
|
|
15
|
+
* - Media3 to reference playable-only tracks (tracks with `src` but no `url`)
|
|
16
|
+
* - Cache lookup to work consistently
|
|
17
|
+
* - Parent context to be preserved for queue restoration
|
|
18
|
+
*/
|
|
19
|
+
export const BrowserPathHelper = {
|
|
20
|
+
/** Search path prefix (full path is /__search?q=query) */
|
|
21
|
+
SEARCH_PATH_PREFIX: '/__search',
|
|
22
|
+
/** Query parameter name for contextual track identifiers */
|
|
23
|
+
CONTEXTUAL_TRACK_PARAM: '__trackId',
|
|
24
|
+
/**
|
|
25
|
+
* Create a search path for a given query
|
|
26
|
+
*/
|
|
27
|
+
createSearchPath(query) {
|
|
28
|
+
const encodedQuery = encodeURIComponent(query);
|
|
29
|
+
return `${this.SEARCH_PATH_PREFIX}?q=${encodedQuery}`;
|
|
30
|
+
},
|
|
31
|
+
/**
|
|
32
|
+
* Checks if a path contains a contextual track identifier.
|
|
33
|
+
*
|
|
34
|
+
* @param path The URL path to check
|
|
35
|
+
* @returns true if the path contains the contextual track parameter
|
|
36
|
+
*/
|
|
37
|
+
isContextual(path) {
|
|
38
|
+
return path.includes(`?${this.CONTEXTUAL_TRACK_PARAM}=`) || path.includes(`&${this.CONTEXTUAL_TRACK_PARAM}=`);
|
|
39
|
+
},
|
|
40
|
+
/**
|
|
41
|
+
* Strips the __trackId parameter from a contextual URL to get the parent path.
|
|
42
|
+
* If the URL is not contextual, returns it unchanged.
|
|
43
|
+
*
|
|
44
|
+
* @param url The URL to process
|
|
45
|
+
* @returns The URL without the __trackId parameter
|
|
46
|
+
*
|
|
47
|
+
* Example: "/library/radio?__trackId=song.mp3" → "/library/radio"
|
|
48
|
+
* Example: "/search?q=jazz&__trackId=song.mp3" → "/search?q=jazz"
|
|
49
|
+
*/
|
|
50
|
+
stripTrackId(url) {
|
|
51
|
+
if (!this.isContextual(url)) {
|
|
52
|
+
return url;
|
|
53
|
+
}
|
|
54
|
+
try {
|
|
55
|
+
// Parse the URL - handle both full URLs and paths
|
|
56
|
+
const isFullUrl = url.startsWith('http://') || url.startsWith('https://');
|
|
57
|
+
const urlObj = new URL(url, isFullUrl ? undefined : 'http://placeholder');
|
|
58
|
+
|
|
59
|
+
// Remove the __trackId parameter
|
|
60
|
+
urlObj.searchParams.delete(this.CONTEXTUAL_TRACK_PARAM);
|
|
61
|
+
|
|
62
|
+
// Return the appropriate format
|
|
63
|
+
if (isFullUrl) {
|
|
64
|
+
return urlObj.toString();
|
|
65
|
+
} else {
|
|
66
|
+
const search = urlObj.searchParams.toString();
|
|
67
|
+
return search ? `${urlObj.pathname}?${search}` : urlObj.pathname;
|
|
68
|
+
}
|
|
69
|
+
} catch {
|
|
70
|
+
// Fallback: simple string manipulation
|
|
71
|
+
const paramPattern = new RegExp(`[?&]${this.CONTEXTUAL_TRACK_PARAM}=[^&]*`, 'g');
|
|
72
|
+
let result = url.replace(paramPattern, '');
|
|
73
|
+
// Clean up any trailing ? or &
|
|
74
|
+
result = result.replace(/[?&]$/, '');
|
|
75
|
+
// Fix double && or ?&
|
|
76
|
+
result = result.replace(/[?&]{2,}/g, '&').replace(/\?&/, '?');
|
|
77
|
+
return result;
|
|
78
|
+
}
|
|
79
|
+
},
|
|
80
|
+
/**
|
|
81
|
+
* Extracts the track ID from a contextual URL.
|
|
82
|
+
* Returns undefined if the URL is not contextual or doesn't contain the track ID parameter.
|
|
83
|
+
*
|
|
84
|
+
* @param path The contextual URL to parse
|
|
85
|
+
* @returns The extracted track ID, or undefined if not found
|
|
86
|
+
*
|
|
87
|
+
* Example: "/library/radio?__trackId=song.mp3" → "song.mp3"
|
|
88
|
+
*/
|
|
89
|
+
extractTrackId(path) {
|
|
90
|
+
if (!this.isContextual(path)) {
|
|
91
|
+
return undefined;
|
|
92
|
+
}
|
|
93
|
+
try {
|
|
94
|
+
// Parse the URL - handle both full URLs and paths
|
|
95
|
+
const isFullUrl = path.startsWith('http://') || path.startsWith('https://');
|
|
96
|
+
const urlObj = new URL(path, isFullUrl ? undefined : 'http://placeholder');
|
|
97
|
+
return urlObj.searchParams.get(this.CONTEXTUAL_TRACK_PARAM) ?? undefined;
|
|
98
|
+
} catch {
|
|
99
|
+
// Fallback: regex extraction
|
|
100
|
+
const match = path.match(new RegExp(`[?&]${this.CONTEXTUAL_TRACK_PARAM}=([^&]*)`));
|
|
101
|
+
return match?.[1] ? decodeURIComponent(match[1]) : undefined;
|
|
102
|
+
}
|
|
103
|
+
},
|
|
104
|
+
/**
|
|
105
|
+
* Combines a base URL with a path, ensuring proper slash handling.
|
|
106
|
+
*
|
|
107
|
+
* @param baseUrl The base URL (can be undefined)
|
|
108
|
+
* @param path The path to append
|
|
109
|
+
* @returns The combined URL with proper slash handling
|
|
110
|
+
*
|
|
111
|
+
* Examples:
|
|
112
|
+
* - buildUrl("http://example.com", "api/test") → "http://example.com/api/test"
|
|
113
|
+
* - buildUrl("http://example.com/", "/api/test") → "http://example.com/api/test"
|
|
114
|
+
* - buildUrl(undefined, "/api/test") → "/api/test"
|
|
115
|
+
* - buildUrl(undefined, "http://full.url") → "http://full.url"
|
|
116
|
+
*/
|
|
117
|
+
buildUrl(baseUrl, path) {
|
|
118
|
+
// If path is already a full URL, return it as-is
|
|
119
|
+
if (path.startsWith('http://') || path.startsWith('https://')) {
|
|
120
|
+
return path;
|
|
121
|
+
}
|
|
122
|
+
|
|
123
|
+
// If no baseUrl, return path as-is
|
|
124
|
+
if (!baseUrl) {
|
|
125
|
+
return path;
|
|
126
|
+
}
|
|
127
|
+
|
|
128
|
+
// Ensure baseUrl ends with / and path doesn't start with /
|
|
129
|
+
const normalizedBase = baseUrl.replace(/\/+$/, '') + '/';
|
|
130
|
+
const normalizedPath = path.replace(/^\/+/, '');
|
|
131
|
+
return `${normalizedBase}${normalizedPath}`;
|
|
132
|
+
}
|
|
133
|
+
};
|
|
134
|
+
//# sourceMappingURL=BrowserPathHelper.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["BrowserPathHelper","SEARCH_PATH_PREFIX","CONTEXTUAL_TRACK_PARAM","createSearchPath","query","encodedQuery","encodeURIComponent","isContextual","path","includes","stripTrackId","url","isFullUrl","startsWith","urlObj","URL","undefined","searchParams","delete","toString","search","pathname","paramPattern","RegExp","result","replace","extractTrackId","get","match","decodeURIComponent","buildUrl","baseUrl","normalizedBase","normalizedPath"],"sourceRoot":"../../../../src","sources":["web/util/BrowserPathHelper.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* Shuffles an array in place using the Fisher-Yates algorithm.
|
|
5
|
+
* https://en.wikipedia.org/wiki/Fisher%E2%80%93Yates_shuffle
|
|
6
|
+
*
|
|
7
|
+
* @param array The array to shuffle (mutated in place)
|
|
8
|
+
*/
|
|
9
|
+
export function fisherYatesShuffle(array) {
|
|
10
|
+
for (let i = array.length - 1; i > 0; i--) {
|
|
11
|
+
const j = Math.floor(Math.random() * (i + 1));
|
|
12
|
+
const temp = array[i];
|
|
13
|
+
array[i] = array[j];
|
|
14
|
+
array[j] = temp;
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
//# sourceMappingURL=shuffle.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["fisherYatesShuffle","array","i","length","j","Math","floor","random","temp"],"sourceRoot":"../../../../src","sources":["web/util/shuffle.ts"],"mappings":";;AAAA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASA,kBAAkBA,CAAIC,KAAU,EAAQ;EACtD,KAAK,IAAIC,CAAC,GAAGD,KAAK,CAACE,MAAM,GAAG,CAAC,EAAED,CAAC,GAAG,CAAC,EAAEA,CAAC,EAAE,EAAE;IACzC,MAAME,CAAC,GAAGC,IAAI,CAACC,KAAK,CAACD,IAAI,CAACE,MAAM,CAAC,CAAC,IAAIL,CAAC,GAAG,CAAC,CAAC,CAAC;IAC7C,MAAMM,IAAI,GAAGP,KAAK,CAACC,CAAC,CAAE;IACtBD,KAAK,CAACC,CAAC,CAAC,GAAGD,KAAK,CAACG,CAAC,CAAE;IACpBH,KAAK,CAACG,CAAC,CAAC,GAAGI,IAAI;EACjB;AACF","ignoreList":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AudioBrowser.d.ts","sourceRoot":"","sources":["../../../src/AudioBrowser.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAA;AAC1B,cAAc,UAAU,CAAA;AACxB,cAAc,SAAS,CAAA;AACvB,cAAc,kBAAkB,CAAA"}
|