react-native-audio-browser 0.1.1 → 0.2.0-next.10

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1000) hide show
  1. package/AudioBrowser.podspec +1 -1
  2. package/README.md +184 -2
  3. package/android/build.gradle +17 -5
  4. package/android/gradle.properties +2 -2
  5. package/android/src/main/AndroidManifest.xml +18 -1
  6. package/android/src/main/java/com/audiobrowser/AudioBrowser.kt +473 -158
  7. package/android/src/main/java/com/audiobrowser/AudioBrowserLifecycleModule.kt +38 -0
  8. package/android/src/main/java/com/audiobrowser/AudioBrowserPackage.kt +18 -2
  9. package/android/src/main/java/com/audiobrowser/Callbacks.kt +4 -6
  10. package/android/src/main/java/com/audiobrowser/Service.kt +67 -18
  11. package/android/src/main/java/com/audiobrowser/ServiceBinding.kt +48 -0
  12. package/android/src/main/java/com/audiobrowser/browser/ArtworkResolutionRegistry.kt +37 -0
  13. package/android/src/main/java/com/audiobrowser/browser/BrowseArtworkRegistry.kt +34 -0
  14. package/android/src/main/java/com/audiobrowser/browser/BrowserManager.kt +442 -178
  15. package/android/src/main/java/com/audiobrowser/browser/BrowserUrlResolution.kt +299 -0
  16. package/android/src/main/java/com/audiobrowser/browser/JsonArtwork.kt +79 -0
  17. package/android/src/main/java/com/audiobrowser/browser/JsonModels.kt +41 -4
  18. package/android/src/main/java/com/audiobrowser/browser/SectionScope.kt +42 -0
  19. package/android/src/main/java/com/audiobrowser/browser/TrackLoadHandler.kt +4 -4
  20. package/android/src/main/java/com/audiobrowser/extension/ResolvedTrackExt.kt +35 -0
  21. package/android/src/main/java/com/audiobrowser/http/HttpClient.kt +20 -3
  22. package/android/src/main/java/com/audiobrowser/http/RequestConfigBuilder.kt +109 -97
  23. package/android/src/main/java/com/audiobrowser/model/PlaybackMetadata.kt +6 -10
  24. package/android/src/main/java/com/audiobrowser/model/PlayerSetupOptions.kt +40 -8
  25. package/android/src/main/java/com/audiobrowser/model/PlayerUpdateOptions.kt +40 -46
  26. package/android/src/main/java/com/audiobrowser/player/AutomaticBufferManager.kt +4 -1
  27. package/android/src/main/java/com/audiobrowser/player/CapabilityControls.kt +172 -0
  28. package/android/src/main/java/com/audiobrowser/player/DynamicLoadControl.kt +18 -1
  29. package/android/src/main/java/com/audiobrowser/player/EqualizerController.kt +153 -0
  30. package/android/src/main/java/com/audiobrowser/player/InterceptingPlayer.kt +141 -0
  31. package/android/src/main/java/com/audiobrowser/player/MediaFactory.kt +15 -3
  32. package/android/src/main/java/com/audiobrowser/player/MediaSessionCallback.kt +422 -134
  33. package/android/src/main/java/com/audiobrowser/player/MediaSessionCommandManager.kt +248 -404
  34. package/android/src/main/java/com/audiobrowser/player/NowPlayingUpdater.kt +347 -0
  35. package/android/src/main/java/com/audiobrowser/player/PlaybackErrorClassifier.kt +129 -0
  36. package/android/src/main/java/com/audiobrowser/player/PlaybackStateMachine.kt +85 -0
  37. package/android/src/main/java/com/audiobrowser/player/PlaybackStateStore.kt +25 -5
  38. package/android/src/main/java/com/audiobrowser/player/PlaybackTimer.kt +56 -0
  39. package/android/src/main/java/com/audiobrowser/player/Player.kt +475 -577
  40. package/android/src/main/java/com/audiobrowser/player/PlayerCapabilitiesExt.kt +20 -0
  41. package/android/src/main/java/com/audiobrowser/player/PlayerEngineFactory.kt +130 -0
  42. package/android/src/main/java/com/audiobrowser/player/PlayerListener.kt +190 -67
  43. package/android/src/main/java/com/audiobrowser/player/RetryLoadErrorHandlingPolicy.kt +118 -53
  44. package/android/src/main/java/com/audiobrowser/player/SleepTimer.kt +37 -3
  45. package/android/src/main/java/com/audiobrowser/player/SleepTimerManager.kt +80 -0
  46. package/android/src/main/java/com/audiobrowser/player/StuckRecoveryPolicy.kt +50 -0
  47. package/android/src/main/java/com/audiobrowser/player/TransformingDataSource.kt +85 -40
  48. package/android/src/main/java/com/audiobrowser/player/VolumeFader.kt +81 -0
  49. package/android/src/main/java/com/audiobrowser/tls/AiaCertChaser.kt +156 -0
  50. package/android/src/main/java/com/audiobrowser/tls/AiaChasingExtendedTrustManager.kt +109 -0
  51. package/android/src/main/java/com/audiobrowser/tls/AiaChasingTrustManager.kt +37 -0
  52. package/android/src/main/java/com/audiobrowser/tls/AiaTls.kt +55 -0
  53. package/android/src/main/java/com/audiobrowser/tls/CachingCertificateFetcher.kt +265 -0
  54. package/android/src/main/java/com/audiobrowser/util/ArtworkContentProvider.kt +161 -0
  55. package/android/src/main/java/com/audiobrowser/util/ArtworkUris.kt +28 -0
  56. package/android/src/main/java/com/audiobrowser/util/ArtworkVariant.kt +24 -0
  57. package/android/src/main/java/com/audiobrowser/util/BrowserPathHelper.kt +24 -0
  58. package/android/src/main/java/com/audiobrowser/util/CoilArtworkLoader.kt +49 -0
  59. package/android/src/main/java/com/audiobrowser/util/CoilArtworkLoaderHolder.kt +36 -0
  60. package/android/src/main/java/com/audiobrowser/util/CoilBitmapLoader.kt +23 -300
  61. package/android/src/main/java/com/audiobrowser/util/EqualizerManager.kt +13 -23
  62. package/android/src/main/java/com/audiobrowser/util/MediaExtrasBuilder.kt +2 -2
  63. package/android/src/main/java/com/audiobrowser/util/MetadataAdapter.kt +4 -3
  64. package/android/src/main/java/com/audiobrowser/util/OutputMonitor.kt +211 -0
  65. package/android/src/main/java/com/audiobrowser/util/OutputSwitcher.kt +58 -0
  66. package/android/src/main/java/com/audiobrowser/util/PlayingStateFactory.kt +2 -1
  67. package/android/src/main/java/com/audiobrowser/util/RatingFavorites.kt +14 -0
  68. package/android/src/main/java/com/audiobrowser/util/SvgArtworkRenderer.kt +6 -111
  69. package/android/src/main/java/com/audiobrowser/util/SystemVolumeMonitor.kt +22 -8
  70. package/android/src/main/java/com/audiobrowser/util/TrackFactory.kt +112 -80
  71. package/android/src/main/res/values/strings.xml +4 -0
  72. package/android/src/test/java/com/audiobrowser/ServiceBindingTest.kt +87 -0
  73. package/android/src/test/java/com/audiobrowser/TestFixtures.kt +165 -0
  74. package/android/src/test/java/com/audiobrowser/browser/ArtworkResolutionRegistryTest.kt +46 -0
  75. package/android/src/test/java/com/audiobrowser/browser/BrowseArtworkRegistryTest.kt +39 -0
  76. package/android/src/test/java/com/audiobrowser/browser/BrowserManagerBuildApiRequestTest.kt +114 -0
  77. package/android/src/test/java/com/audiobrowser/browser/BrowserManagerLayerResolutionTest.kt +141 -0
  78. package/android/src/test/java/com/audiobrowser/browser/BrowserManagerTest.kt +4 -0
  79. package/android/src/test/java/com/audiobrowser/browser/BrowserUrlResolutionTest.kt +177 -0
  80. package/android/src/test/java/com/audiobrowser/browser/JsonArtworkTest.kt +55 -0
  81. package/android/src/test/java/com/audiobrowser/browser/SectionScopeTest.kt +94 -0
  82. package/android/src/test/java/com/audiobrowser/browser/SimpleRouterTest.kt +1 -2
  83. package/android/src/test/java/com/audiobrowser/http/RequestConfigBuilderTest.kt +72 -0
  84. package/android/src/test/java/com/audiobrowser/player/CapabilityControlsTest.kt +203 -0
  85. package/android/src/test/java/com/audiobrowser/player/DynamicLoadControlTest.kt +56 -0
  86. package/android/src/test/java/com/audiobrowser/player/EqualizerControllerTest.kt +216 -0
  87. package/android/src/test/java/com/audiobrowser/player/MediaSessionSlotMappingTest.kt +45 -0
  88. package/android/src/test/java/com/audiobrowser/player/NowPlayingUpdaterTest.kt +442 -0
  89. package/android/src/test/java/com/audiobrowser/player/PlaybackErrorClassifierTest.kt +190 -0
  90. package/android/src/test/java/com/audiobrowser/player/PlaybackStateMachineTest.kt +198 -0
  91. package/android/src/test/java/com/audiobrowser/player/PlaybackTimerTest.kt +137 -0
  92. package/android/src/test/java/com/audiobrowser/player/PlayerEngineFactoryTest.kt +36 -0
  93. package/android/src/test/java/com/audiobrowser/player/RetryLoadErrorHandlingPolicyTest.kt +268 -0
  94. package/android/src/test/java/com/audiobrowser/player/SessionErrorMaskTest.kt +68 -0
  95. package/android/src/test/java/com/audiobrowser/player/StuckRecoveryPolicyTest.kt +40 -0
  96. package/android/src/test/java/com/audiobrowser/player/TransformingDataSourceTest.kt +193 -0
  97. package/android/src/test/java/com/audiobrowser/tls/AiaCertChaserTest.kt +153 -0
  98. package/android/src/test/java/com/audiobrowser/tls/AiaChasingTrustManagerTest.kt +186 -0
  99. package/android/src/test/java/com/audiobrowser/tls/CachingCertificateFetcherTest.kt +158 -0
  100. package/android/src/test/java/com/audiobrowser/tls/CertFixtures.kt +18 -0
  101. package/android/src/test/java/com/audiobrowser/util/ArtworkContentProviderTest.kt +163 -0
  102. package/android/src/test/java/com/audiobrowser/util/ArtworkUrisTest.kt +34 -0
  103. package/android/src/test/java/com/audiobrowser/util/BrowserPathHelperTest.kt +28 -0
  104. package/android/src/test/java/com/audiobrowser/util/CoilArtworkLoaderHolderTest.kt +53 -0
  105. package/android/src/test/java/com/audiobrowser/util/CoilArtworkLoaderTest.kt +58 -0
  106. package/android/src/test/java/com/audiobrowser/util/FakeImageLoader.kt +57 -0
  107. package/android/src/test/java/com/audiobrowser/util/PlayingStateFactoryTest.kt +40 -0
  108. package/android/src/test/java/com/audiobrowser/util/RatingFavoritesTest.kt +34 -0
  109. package/android/src/test/java/com/audiobrowser/util/TrackFactoryBrowseTest.kt +50 -0
  110. package/android/src/test/java/com/audiobrowser/util/TrackFactoryMediaIdTest.kt +63 -0
  111. package/android/src/test/java/com/audiobrowser/util/TrackFactoryRatingTest.kt +35 -0
  112. package/android/src/test/resources/certs/isrg-root-x1.pem +31 -0
  113. package/android/src/test/resources/certs/letsencrypt-r13.der +0 -0
  114. package/android/src/test/resources/certs/letsencrypt-r13.pem +29 -0
  115. package/android/src/test/resources/certs/stationplaylist-leaf.pem +34 -0
  116. package/ios/Browser/BrowserConfig.swift +41 -11
  117. package/ios/Browser/BrowserManager+URLResolution.swift +213 -93
  118. package/ios/Browser/BrowserManager.swift +303 -135
  119. package/ios/Browser/BrowserPathHelper.swift +32 -3
  120. package/ios/Browser/JsonModels.swift +287 -66
  121. package/ios/Browser/MediaResolveComposer.swift +114 -0
  122. package/ios/Browser/SearchDrillIn.swift +44 -0
  123. package/ios/Browser/SectionScope.swift +35 -0
  124. package/ios/Browser/TabBarEntries.swift +15 -0
  125. package/ios/CarPlay/CPInterfaceController+Safe.swift +126 -0
  126. package/ios/CarPlay/CarPlayArtworkResolver.swift +6 -6
  127. package/ios/CarPlay/CarPlayController.swift +739 -149
  128. package/ios/CarPlay/CarPlayImageLoader.swift +57 -8
  129. package/ios/CarPlay/CarPlayListItemFactory.swift +44 -35
  130. package/ios/CarPlay/CarPlayNowPlayingManager.swift +180 -36
  131. package/ios/CarPlay/ImageRowItem+CarPlay.swift +19 -0
  132. package/ios/CarPlay/RNABAudioBrowser.h +15 -10
  133. package/ios/CarPlay/RNABAudioBrowser.m +15 -14
  134. package/ios/CarPlay/RNABCarPlaySceneDelegate.m +2 -0
  135. package/ios/CarPlay/RNABMediaAddHandler.swift +75 -0
  136. package/ios/CarPlay/RNABMediaAffinityHandler.swift +69 -0
  137. package/ios/CarPlay/RNABMediaIntentHandler.swift +53 -43
  138. package/ios/Extension/Capability+RemoteCommand.swift +7 -9
  139. package/ios/Extension/ChapterMetadata+AVFoundation.swift +1 -1
  140. package/ios/Extension/NavigationError+Conversion.swift +8 -1
  141. package/ios/Extension/PlayerCapabilities+Favorite.swift +20 -0
  142. package/ios/Extension/RequestConfig+Copying.swift +31 -0
  143. package/ios/Extension/ResolvedTrack+Copying.swift +10 -4
  144. package/ios/Extension/TimedMetadata+AVFoundation.swift +1 -1
  145. package/ios/Extension/Track+AVPlayer.swift +4 -4
  146. package/ios/Extension/Track+Copying.swift +9 -3
  147. package/ios/Extension/TrackMetadata+AVFoundation.swift +1 -1
  148. package/ios/Extension/Variant+Artwork.swift +49 -0
  149. package/ios/HybridAudioBrowser.swift +805 -197
  150. package/ios/Model/NitroTypeStubs.swift +299 -224
  151. package/ios/Model/PlayerUpdateOptions.swift +23 -23
  152. package/ios/Model/RemoteCommand.swift +24 -6
  153. package/ios/Model/TrackPlayerError.swift +82 -18
  154. package/ios/NowPlayingInfo/NowPlayingInfoController.swift +99 -121
  155. package/ios/NowPlayingInfo/SilentAudioPrimer.swift +73 -0
  156. package/ios/Observer/PlayerItemNotificationObserver.swift +45 -5
  157. package/ios/Observer/PlayerItemPropertyObserver.swift +27 -4
  158. package/ios/Observer/PlayerTimeObserver.swift +3 -53
  159. package/ios/Option/SessionCategories.swift +34 -11
  160. package/ios/Player/AirPlayStallJudgement.swift +25 -0
  161. package/ios/Player/EndOfTrackJudgement.swift +32 -0
  162. package/ios/Player/LoadSeekCoordinator.swift +16 -1
  163. package/ios/Player/MediaIntentCriteria.swift +139 -0
  164. package/ios/Player/MediaLoader.swift +31 -11
  165. package/ios/Player/NowPlayingUpdater.swift +119 -26
  166. package/ios/Player/PersistedPlaybackState.swift +11 -0
  167. package/ios/Player/PlaybackCoordinator.swift +285 -51
  168. package/ios/Player/PlaybackCoordinatorCallbacks.swift +6 -1
  169. package/ios/Player/PlaybackEffectHandler.swift +19 -9
  170. package/ios/Player/PlaybackErrorHandler.swift +98 -14
  171. package/ios/Player/PlaybackStateMachine.swift +18 -13
  172. package/ios/Player/PlaybackStateStore.swift +27 -0
  173. package/ios/Player/PlaybackTimer.swift +61 -0
  174. package/ios/Player/PlayingStateManager.swift +3 -2
  175. package/ios/Player/QueueManager.swift +77 -64
  176. package/ios/Player/RetryManager.swift +175 -38
  177. package/ios/Player/ShuffleOrder.swift +10 -0
  178. package/ios/Player/SleepTimerHandling.swift +8 -0
  179. package/ios/Player/SleepTimerManager.swift +72 -11
  180. package/ios/Player/VolumeFader.swift +77 -0
  181. package/ios/RemoteCommand/RemoteCommandCallbacks.swift +47 -0
  182. package/ios/RemoteCommand/RemoteCommandController.swift +40 -21
  183. package/ios/Tests/AirPlayStallJudgementTests.swift +52 -0
  184. package/ios/Tests/BrowserPathHelperTests.swift +28 -0
  185. package/ios/Tests/CarPlayArtworkResolverTests.swift +39 -39
  186. package/ios/Tests/ChapterMetadataAVFoundationTests.swift +2 -2
  187. package/ios/Tests/EndOfTrackJudgementTests.swift +35 -0
  188. package/ios/Tests/JsonModelsTests.swift +58 -0
  189. package/ios/Tests/LRUCacheTests.swift +111 -0
  190. package/ios/Tests/LoadSeekCoordinatorTests.swift +40 -7
  191. package/ios/Tests/MediaIntentCriteriaTests.swift +170 -0
  192. package/ios/Tests/MediaLoaderAssetOptionsTests.swift +46 -0
  193. package/ios/Tests/MediaLoaderTests.swift +32 -20
  194. package/ios/Tests/MediaResolveTests.swift +126 -0
  195. package/ios/Tests/OnceValueTests.swift +79 -0
  196. package/ios/Tests/PlaybackCoordinatorTests.swift +787 -13
  197. package/ios/Tests/PlaybackErrorHandlerTests.swift +383 -47
  198. package/ios/Tests/PlaybackStateMachineTests.swift +33 -8
  199. package/ios/Tests/PlaybackStateStoreTests.swift +48 -0
  200. package/ios/Tests/PlaybackTimerTests.swift +55 -0
  201. package/ios/Tests/PlayerTimeObserverTests.swift +37 -0
  202. package/ios/Tests/PlayingStateManagerTests.swift +57 -0
  203. package/ios/Tests/QueueManagerTests.swift +195 -18
  204. package/ios/Tests/RemoteCommandControllerTests.swift +156 -0
  205. package/ios/Tests/RemoteCommandTests.swift +67 -0
  206. package/ios/Tests/ResolvedTrackCopyingTests.swift +15 -8
  207. package/ios/Tests/RetryManagerTests.swift +178 -0
  208. package/ios/Tests/SearchDrillInTests.swift +63 -0
  209. package/ios/Tests/SectionScopeTests.swift +82 -0
  210. package/ios/Tests/SleepTimerManagerTests.swift +107 -0
  211. package/ios/Tests/Support/ManualSleepTimerScheduler.swift +47 -0
  212. package/ios/Tests/Support/TestTypes.swift +61 -20
  213. package/ios/Tests/TabBarEntriesTests.swift +71 -0
  214. package/ios/Tests/TrackSelectorTests.swift +15 -15
  215. package/ios/TrackPlayer.swift +385 -58
  216. package/ios/TrackPlayerCallbacks.swift +5 -44
  217. package/ios/TrackSelector.swift +5 -5
  218. package/ios/Util/ArtworkImageFetcher.swift +4 -2
  219. package/ios/Util/LRUCache.swift +4 -1
  220. package/ios/Util/NetworkMonitor.swift +7 -3
  221. package/ios/Util/OnceValue.swift +34 -0
  222. package/lib/commonjs/AudioBrowser.js +0 -11
  223. package/lib/commonjs/AudioBrowser.js.map +1 -1
  224. package/lib/commonjs/CLAUDE.md +52 -0
  225. package/lib/commonjs/features/browser-config.js +227 -0
  226. package/lib/commonjs/features/browser-config.js.map +1 -0
  227. package/lib/commonjs/features/browser.js +60 -159
  228. package/lib/commonjs/features/browser.js.map +1 -1
  229. package/lib/commonjs/features/carConnection.js +42 -0
  230. package/lib/commonjs/features/carConnection.js.map +1 -0
  231. package/lib/commonjs/features/equalizer.js +1 -1
  232. package/lib/commonjs/features/errors.js +37 -5
  233. package/lib/commonjs/features/errors.js.map +1 -1
  234. package/lib/commonjs/features/favorites.js +1 -1
  235. package/lib/commonjs/features/gate.js +164 -0
  236. package/lib/commonjs/features/gate.js.map +1 -0
  237. package/lib/commonjs/features/index.js +22 -0
  238. package/lib/commonjs/features/index.js.map +1 -1
  239. package/lib/commonjs/features/metadata.js +20 -3
  240. package/lib/commonjs/features/metadata.js.map +1 -1
  241. package/lib/commonjs/features/network.js +1 -1
  242. package/lib/commonjs/features/nowPlaying.js +36 -1
  243. package/lib/commonjs/features/nowPlaying.js.map +1 -1
  244. package/lib/commonjs/features/output.js +37 -23
  245. package/lib/commonjs/features/output.js.map +1 -1
  246. package/lib/commonjs/features/playback/controls.js +9 -0
  247. package/lib/commonjs/features/playback/controls.js.map +1 -1
  248. package/lib/commonjs/features/playback/index.js +11 -0
  249. package/lib/commonjs/features/playback/index.js.map +1 -1
  250. package/lib/commonjs/features/playback/playWhenReady.js +1 -1
  251. package/lib/commonjs/features/playback/playing.js +1 -1
  252. package/lib/commonjs/features/playback/progress.js +29 -13
  253. package/lib/commonjs/features/playback/progress.js.map +1 -1
  254. package/lib/commonjs/features/playback/state.js +1 -1
  255. package/lib/commonjs/features/playback/trackPlaybackTime.js +86 -0
  256. package/lib/commonjs/features/playback/trackPlaybackTime.js.map +1 -0
  257. package/lib/commonjs/features/playback/volume.js +2 -2
  258. package/lib/commonjs/features/player/options.js +79 -29
  259. package/lib/commonjs/features/player/options.js.map +1 -1
  260. package/lib/commonjs/features/player/setup.js +256 -3
  261. package/lib/commonjs/features/player/setup.js.map +1 -1
  262. package/lib/commonjs/features/player/validateOptions.js +21 -0
  263. package/lib/commonjs/features/player/validateOptions.js.map +1 -0
  264. package/lib/commonjs/features/queue/activeTrack.js +1 -1
  265. package/lib/commonjs/features/queue/queue.js +12 -5
  266. package/lib/commonjs/features/queue/queue.js.map +1 -1
  267. package/lib/commonjs/features/queue/repeatMode.js +1 -1
  268. package/lib/commonjs/features/queue/shuffle.js +1 -1
  269. package/lib/commonjs/features/remoteControls.js +14 -104
  270. package/lib/commonjs/features/remoteControls.js.map +1 -1
  271. package/lib/commonjs/features/sleepTimer.js +22 -5
  272. package/lib/commonjs/features/sleepTimer.js.map +1 -1
  273. package/lib/commonjs/native.js +5 -0
  274. package/lib/commonjs/native.js.map +1 -1
  275. package/lib/commonjs/native.web.js +4 -1
  276. package/lib/commonjs/native.web.js.map +1 -1
  277. package/lib/commonjs/test-utils/reactNativeStub.js +65 -0
  278. package/lib/commonjs/test-utils/reactNativeStub.js.map +1 -0
  279. package/lib/commonjs/utils/LazyNativeEmitter.js +8 -8
  280. package/lib/commonjs/utils/LazyNativeEmitter.js.map +1 -1
  281. package/lib/commonjs/utils/NativeUpdatedValue.js +0 -3
  282. package/lib/commonjs/utils/NativeUpdatedValue.js.map +1 -1
  283. package/lib/commonjs/utils/artwork.js +31 -0
  284. package/lib/commonjs/utils/artwork.js.map +1 -0
  285. package/lib/commonjs/web/NativeAudioBrowser.js +302 -125
  286. package/lib/commonjs/web/NativeAudioBrowser.js.map +1 -1
  287. package/lib/commonjs/web/TrackPlayer/PlaybackStateMachine.js +71 -0
  288. package/lib/commonjs/web/TrackPlayer/PlaybackStateMachine.js.map +1 -0
  289. package/lib/commonjs/web/TrackPlayer/PlaybackTimer.js +34 -0
  290. package/lib/commonjs/web/TrackPlayer/PlaybackTimer.js.map +1 -0
  291. package/lib/commonjs/web/TrackPlayer/Player.js +90 -26
  292. package/lib/commonjs/web/TrackPlayer/Player.js.map +1 -1
  293. package/lib/commonjs/web/TrackPlayer/PlayingStateFactory.js +21 -0
  294. package/lib/commonjs/web/TrackPlayer/PlayingStateFactory.js.map +1 -0
  295. package/lib/commonjs/web/TrackPlayer/QueueManager.js +273 -0
  296. package/lib/commonjs/web/TrackPlayer/QueueManager.js.map +1 -0
  297. package/lib/commonjs/web/TrackPlayer/QueuePlayer.js +158 -0
  298. package/lib/commonjs/web/TrackPlayer/QueuePlayer.js.map +1 -0
  299. package/lib/commonjs/web/TrackPlayer/RepeatMode.js +1 -1
  300. package/lib/commonjs/web/TrackPlayer/RepeatMode.js.map +1 -1
  301. package/lib/commonjs/web/TrackPlayer/SleepTimer.js +34 -3
  302. package/lib/commonjs/web/TrackPlayer/SleepTimer.js.map +1 -1
  303. package/lib/commonjs/web/TrackPlayer/VolumeFader.js +75 -0
  304. package/lib/commonjs/web/TrackPlayer/VolumeFader.js.map +1 -0
  305. package/lib/commonjs/web/TrackPlayer/index.js +13 -5
  306. package/lib/commonjs/web/TrackPlayer/index.js.map +1 -1
  307. package/lib/commonjs/web/browser/BrowserManager.js +176 -50
  308. package/lib/commonjs/web/browser/BrowserManager.js.map +1 -1
  309. package/lib/commonjs/web/browser/NavigationErrorManager.js +3 -1
  310. package/lib/commonjs/web/browser/NavigationErrorManager.js.map +1 -1
  311. package/lib/commonjs/web/browser/SearchManager.js +11 -9
  312. package/lib/commonjs/web/browser/SearchManager.js.map +1 -1
  313. package/lib/commonjs/web/browser/assertBrowsePageShape.js +22 -0
  314. package/lib/commonjs/web/browser/assertBrowsePageShape.js.map +1 -0
  315. package/lib/commonjs/web/browser/classifyTrackNavigation.js +41 -0
  316. package/lib/commonjs/web/browser/classifyTrackNavigation.js.map +1 -0
  317. package/lib/commonjs/web/browser/parseSearchResponse.js +20 -0
  318. package/lib/commonjs/web/browser/parseSearchResponse.js.map +1 -0
  319. package/lib/commonjs/web/http/HttpClient.js +4 -23
  320. package/lib/commonjs/web/http/HttpClient.js.map +1 -1
  321. package/lib/commonjs/web/http/RequestConfigBuilder.js +107 -58
  322. package/lib/commonjs/web/http/RequestConfigBuilder.js.map +1 -1
  323. package/lib/commonjs/web/playbackErrorKind.js +57 -0
  324. package/lib/commonjs/web/playbackErrorKind.js.map +1 -0
  325. package/lib/commonjs/web/player/MediaSessionManager.js +121 -0
  326. package/lib/commonjs/web/player/MediaSessionManager.js.map +1 -0
  327. package/lib/commonjs/web/player/NowPlayingManager.js +6 -5
  328. package/lib/commonjs/web/player/NowPlayingManager.js.map +1 -1
  329. package/lib/commonjs/web/player/OptionsManager.js +9 -17
  330. package/lib/commonjs/web/player/OptionsManager.js.map +1 -1
  331. package/lib/commonjs/web/player/RemoteCommandController.js +96 -0
  332. package/lib/commonjs/web/player/RemoteCommandController.js.map +1 -0
  333. package/lib/module/AudioBrowser.js +1 -1
  334. package/lib/module/AudioBrowser.js.map +1 -1
  335. package/lib/module/CLAUDE.md +52 -0
  336. package/lib/module/features/browser-config.js +221 -0
  337. package/lib/module/features/browser-config.js.map +1 -0
  338. package/lib/module/features/browser.js +54 -157
  339. package/lib/module/features/browser.js.map +1 -1
  340. package/lib/module/features/carConnection.js +37 -0
  341. package/lib/module/features/carConnection.js.map +1 -0
  342. package/lib/module/features/equalizer.js +1 -1
  343. package/lib/module/features/errors.js +37 -5
  344. package/lib/module/features/errors.js.map +1 -1
  345. package/lib/module/features/favorites.js +1 -1
  346. package/lib/module/features/gate.js +159 -0
  347. package/lib/module/features/gate.js.map +1 -0
  348. package/lib/module/features/index.js +2 -0
  349. package/lib/module/features/index.js.map +1 -1
  350. package/lib/module/features/metadata.js +20 -3
  351. package/lib/module/features/metadata.js.map +1 -1
  352. package/lib/module/features/network.js +1 -1
  353. package/lib/module/features/nowPlaying.js +34 -1
  354. package/lib/module/features/nowPlaying.js.map +1 -1
  355. package/lib/module/features/output.js +32 -19
  356. package/lib/module/features/output.js.map +1 -1
  357. package/lib/module/features/playback/controls.js +8 -0
  358. package/lib/module/features/playback/controls.js.map +1 -1
  359. package/lib/module/features/playback/index.js +1 -0
  360. package/lib/module/features/playback/index.js.map +1 -1
  361. package/lib/module/features/playback/playWhenReady.js +1 -1
  362. package/lib/module/features/playback/playing.js +1 -1
  363. package/lib/module/features/playback/progress.js +29 -13
  364. package/lib/module/features/playback/progress.js.map +1 -1
  365. package/lib/module/features/playback/state.js +1 -1
  366. package/lib/module/features/playback/trackPlaybackTime.js +83 -0
  367. package/lib/module/features/playback/trackPlaybackTime.js.map +1 -0
  368. package/lib/module/features/playback/volume.js +2 -2
  369. package/lib/module/features/player/options.js +79 -29
  370. package/lib/module/features/player/options.js.map +1 -1
  371. package/lib/module/features/player/setup.js +256 -3
  372. package/lib/module/features/player/setup.js.map +1 -1
  373. package/lib/module/features/player/validateOptions.js +17 -0
  374. package/lib/module/features/player/validateOptions.js.map +1 -0
  375. package/lib/module/features/queue/activeTrack.js +1 -1
  376. package/lib/module/features/queue/queue.js +12 -5
  377. package/lib/module/features/queue/queue.js.map +1 -1
  378. package/lib/module/features/queue/repeatMode.js +1 -1
  379. package/lib/module/features/queue/shuffle.js +1 -1
  380. package/lib/module/features/remoteControls.js +13 -103
  381. package/lib/module/features/remoteControls.js.map +1 -1
  382. package/lib/module/features/sleepTimer.js +22 -5
  383. package/lib/module/features/sleepTimer.js.map +1 -1
  384. package/lib/module/native.js +5 -0
  385. package/lib/module/native.js.map +1 -1
  386. package/lib/module/native.web.js +4 -1
  387. package/lib/module/native.web.js.map +1 -1
  388. package/lib/module/test-utils/reactNativeStub.js +58 -0
  389. package/lib/module/test-utils/reactNativeStub.js.map +1 -0
  390. package/lib/module/utils/LazyNativeEmitter.js +8 -8
  391. package/lib/module/utils/LazyNativeEmitter.js.map +1 -1
  392. package/lib/module/utils/NativeUpdatedValue.js +0 -3
  393. package/lib/module/utils/NativeUpdatedValue.js.map +1 -1
  394. package/lib/module/utils/artwork.js +26 -0
  395. package/lib/module/utils/artwork.js.map +1 -0
  396. package/lib/module/web/NativeAudioBrowser.js +303 -126
  397. package/lib/module/web/NativeAudioBrowser.js.map +1 -1
  398. package/lib/module/web/TrackPlayer/PlaybackStateMachine.js +67 -0
  399. package/lib/module/web/TrackPlayer/PlaybackStateMachine.js.map +1 -0
  400. package/lib/module/web/TrackPlayer/PlaybackTimer.js +29 -0
  401. package/lib/module/web/TrackPlayer/PlaybackTimer.js.map +1 -0
  402. package/lib/module/web/TrackPlayer/Player.js +90 -26
  403. package/lib/module/web/TrackPlayer/Player.js.map +1 -1
  404. package/lib/module/web/TrackPlayer/PlayingStateFactory.js +17 -0
  405. package/lib/module/web/TrackPlayer/PlayingStateFactory.js.map +1 -0
  406. package/lib/module/web/TrackPlayer/QueueManager.js +269 -0
  407. package/lib/module/web/TrackPlayer/QueueManager.js.map +1 -0
  408. package/lib/module/web/TrackPlayer/QueuePlayer.js +154 -0
  409. package/lib/module/web/TrackPlayer/QueuePlayer.js.map +1 -0
  410. package/lib/module/web/TrackPlayer/RepeatMode.js +1 -1
  411. package/lib/module/web/TrackPlayer/RepeatMode.js.map +1 -1
  412. package/lib/module/web/TrackPlayer/SleepTimer.js +34 -3
  413. package/lib/module/web/TrackPlayer/SleepTimer.js.map +1 -1
  414. package/lib/module/web/TrackPlayer/VolumeFader.js +70 -0
  415. package/lib/module/web/TrackPlayer/VolumeFader.js.map +1 -0
  416. package/lib/module/web/TrackPlayer/index.js +2 -1
  417. package/lib/module/web/TrackPlayer/index.js.map +1 -1
  418. package/lib/module/web/browser/BrowserManager.js +176 -50
  419. package/lib/module/web/browser/BrowserManager.js.map +1 -1
  420. package/lib/module/web/browser/NavigationErrorManager.js +3 -1
  421. package/lib/module/web/browser/NavigationErrorManager.js.map +1 -1
  422. package/lib/module/web/browser/SearchManager.js +11 -9
  423. package/lib/module/web/browser/SearchManager.js.map +1 -1
  424. package/lib/module/web/browser/assertBrowsePageShape.js +18 -0
  425. package/lib/module/web/browser/assertBrowsePageShape.js.map +1 -0
  426. package/lib/module/web/browser/classifyTrackNavigation.js +38 -0
  427. package/lib/module/web/browser/classifyTrackNavigation.js.map +1 -0
  428. package/lib/module/web/browser/parseSearchResponse.js +16 -0
  429. package/lib/module/web/browser/parseSearchResponse.js.map +1 -0
  430. package/lib/module/web/http/HttpClient.js +4 -23
  431. package/lib/module/web/http/HttpClient.js.map +1 -1
  432. package/lib/module/web/http/RequestConfigBuilder.js +107 -58
  433. package/lib/module/web/http/RequestConfigBuilder.js.map +1 -1
  434. package/lib/module/web/playbackErrorKind.js +52 -0
  435. package/lib/module/web/playbackErrorKind.js.map +1 -0
  436. package/lib/module/web/player/MediaSessionManager.js +116 -0
  437. package/lib/module/web/player/MediaSessionManager.js.map +1 -0
  438. package/lib/module/web/player/NowPlayingManager.js +7 -5
  439. package/lib/module/web/player/NowPlayingManager.js.map +1 -1
  440. package/lib/module/web/player/OptionsManager.js +9 -17
  441. package/lib/module/web/player/OptionsManager.js.map +1 -1
  442. package/lib/module/web/player/RemoteCommandController.js +92 -0
  443. package/lib/module/web/player/RemoteCommandController.js.map +1 -0
  444. package/lib/typescript/src/AudioBrowser.d.ts +0 -1
  445. package/lib/typescript/src/AudioBrowser.d.ts.map +1 -1
  446. package/lib/typescript/src/features/browser-config.d.ts +12 -0
  447. package/lib/typescript/src/features/browser-config.d.ts.map +1 -0
  448. package/lib/typescript/src/features/browser.d.ts +40 -1
  449. package/lib/typescript/src/features/browser.d.ts.map +1 -1
  450. package/lib/typescript/src/features/carConnection.d.ts +20 -0
  451. package/lib/typescript/src/features/carConnection.d.ts.map +1 -0
  452. package/lib/typescript/src/features/equalizer.d.ts +1 -1
  453. package/lib/typescript/src/features/errors.d.ts +61 -6
  454. package/lib/typescript/src/features/errors.d.ts.map +1 -1
  455. package/lib/typescript/src/features/favorites.d.ts +1 -1
  456. package/lib/typescript/src/features/gate.d.ts +93 -0
  457. package/lib/typescript/src/features/gate.d.ts.map +1 -0
  458. package/lib/typescript/src/features/index.d.ts +2 -0
  459. package/lib/typescript/src/features/index.d.ts.map +1 -1
  460. package/lib/typescript/src/features/metadata.d.ts +26 -7
  461. package/lib/typescript/src/features/metadata.d.ts.map +1 -1
  462. package/lib/typescript/src/features/network.d.ts +1 -1
  463. package/lib/typescript/src/features/nowPlaying.d.ts +28 -1
  464. package/lib/typescript/src/features/nowPlaying.d.ts.map +1 -1
  465. package/lib/typescript/src/features/output.d.ts +28 -18
  466. package/lib/typescript/src/features/output.d.ts.map +1 -1
  467. package/lib/typescript/src/features/playback/controls.d.ts +5 -0
  468. package/lib/typescript/src/features/playback/controls.d.ts.map +1 -1
  469. package/lib/typescript/src/features/playback/index.d.ts +1 -0
  470. package/lib/typescript/src/features/playback/index.d.ts.map +1 -1
  471. package/lib/typescript/src/features/playback/playWhenReady.d.ts +1 -1
  472. package/lib/typescript/src/features/playback/playing.d.ts +1 -1
  473. package/lib/typescript/src/features/playback/progress.d.ts +4 -1
  474. package/lib/typescript/src/features/playback/progress.d.ts.map +1 -1
  475. package/lib/typescript/src/features/playback/state.d.ts +1 -1
  476. package/lib/typescript/src/features/playback/trackPlaybackTime.d.ts +34 -0
  477. package/lib/typescript/src/features/playback/trackPlaybackTime.d.ts.map +1 -0
  478. package/lib/typescript/src/features/playback/volume.d.ts +2 -2
  479. package/lib/typescript/src/features/player/options.d.ts +176 -127
  480. package/lib/typescript/src/features/player/options.d.ts.map +1 -1
  481. package/lib/typescript/src/features/player/setup.d.ts +216 -167
  482. package/lib/typescript/src/features/player/setup.d.ts.map +1 -1
  483. package/lib/typescript/src/features/player/validateOptions.d.ts +9 -0
  484. package/lib/typescript/src/features/player/validateOptions.d.ts.map +1 -0
  485. package/lib/typescript/src/features/queue/activeTrack.d.ts +1 -1
  486. package/lib/typescript/src/features/queue/queue.d.ts +11 -4
  487. package/lib/typescript/src/features/queue/queue.d.ts.map +1 -1
  488. package/lib/typescript/src/features/queue/repeatMode.d.ts +1 -1
  489. package/lib/typescript/src/features/queue/shuffle.d.ts +1 -1
  490. package/lib/typescript/src/features/remoteControls.d.ts +23 -35
  491. package/lib/typescript/src/features/remoteControls.d.ts.map +1 -1
  492. package/lib/typescript/src/features/sleepTimer.d.ts +19 -4
  493. package/lib/typescript/src/features/sleepTimer.d.ts.map +1 -1
  494. package/lib/typescript/src/index.d.ts.map +1 -1
  495. package/lib/typescript/src/native.d.ts +1 -2
  496. package/lib/typescript/src/native.d.ts.map +1 -1
  497. package/lib/typescript/src/specs/audio-browser.nitro.d.ts +17 -225
  498. package/lib/typescript/src/specs/audio-browser.nitro.d.ts.map +1 -1
  499. package/lib/typescript/src/test-utils/reactNativeStub.d.ts +36 -0
  500. package/lib/typescript/src/test-utils/reactNativeStub.d.ts.map +1 -0
  501. package/lib/typescript/src/types/browser-native.d.ts +9 -3
  502. package/lib/typescript/src/types/browser-native.d.ts.map +1 -1
  503. package/lib/typescript/src/types/browser-nodes.d.ts +145 -13
  504. package/lib/typescript/src/types/browser-nodes.d.ts.map +1 -1
  505. package/lib/typescript/src/types/browser.d.ts +349 -85
  506. package/lib/typescript/src/types/browser.d.ts.map +1 -1
  507. package/lib/typescript/src/utils/LazyNativeEmitter.d.ts +8 -6
  508. package/lib/typescript/src/utils/LazyNativeEmitter.d.ts.map +1 -1
  509. package/lib/typescript/src/utils/NativeUpdatedValue.d.ts +0 -2
  510. package/lib/typescript/src/utils/NativeUpdatedValue.d.ts.map +1 -1
  511. package/lib/typescript/src/utils/artwork.d.ts +19 -0
  512. package/lib/typescript/src/utils/artwork.d.ts.map +1 -0
  513. package/lib/typescript/src/utils/resolveAssetSource.d.ts.map +1 -1
  514. package/nitrogen/generated/android/AudioBrowser+autolinking.cmake +4 -2
  515. package/nitrogen/generated/android/AudioBrowserOnLoad.cpp +24 -10
  516. package/nitrogen/generated/android/c++/JAndroidAudioContentType.hpp +6 -6
  517. package/nitrogen/generated/android/c++/JAndroidOptions.hpp +10 -20
  518. package/nitrogen/generated/android/c++/JArtworkRequestConfig.hpp +33 -1
  519. package/nitrogen/generated/android/c++/JArtworkVariants.hpp +61 -0
  520. package/nitrogen/generated/android/c++/JBrowseResult.hpp +5 -0
  521. package/nitrogen/generated/android/c++/JCarPlayNowPlayingButton.hpp +3 -3
  522. package/nitrogen/generated/android/c++/JFavoriteChangedEvent.hpp +6 -0
  523. package/nitrogen/generated/android/c++/JFavoriteConfig.hpp +58 -0
  524. package/nitrogen/generated/android/c++/JFavoritesMatchMode.hpp +58 -0
  525. package/nitrogen/generated/android/c++/JFormatNowPlayingParams.hpp +100 -0
  526. package/nitrogen/generated/android/c++/JFormattedNavigationError.hpp +3 -2
  527. package/nitrogen/generated/android/c++/JFunc_std__shared_ptr_Promise_RequestConfig___MediaTransformParams.hpp +112 -0
  528. package/nitrogen/generated/android/c++/JFunc_std__shared_ptr_Promise_RequestConfig___RequestConfig_std__optional_std__unordered_map_std__string__std__string__.hpp +121 -0
  529. package/nitrogen/generated/android/c++/JFunc_std__shared_ptr_Promise_RequestConfig___Track.hpp +123 -0
  530. package/nitrogen/generated/android/c++/JFunc_std__shared_ptr_Promise_std__optional_NowPlayingUpdate____FormatNowPlayingParams.hpp +133 -0
  531. package/nitrogen/generated/android/c++/JFunc_std__shared_ptr_Promise_std__optional_std__string____Track.hpp +121 -0
  532. package/nitrogen/generated/android/c++/JFunc_std__shared_ptr_Promise_std__shared_ptr_Promise_GateDecision_____NativeGateRequest.hpp +139 -0
  533. package/nitrogen/generated/android/c++/JFunc_std__shared_ptr_Promise_std__shared_ptr_Promise_RequestConfig_____Track.hpp +6 -0
  534. package/nitrogen/generated/android/c++/JFunc_std__shared_ptr_Promise_std__shared_ptr_Promise_TransformableRequestConfig____.hpp +134 -0
  535. package/nitrogen/generated/android/c++/JFunc_std__shared_ptr_Promise_std__shared_ptr_Promise_std__vector_Track______SearchParams.hpp +8 -0
  536. package/nitrogen/generated/android/c++/JFunc_std__shared_ptr_Promise_std__shared_ptr_Promise_void_____TrackLoadEvent.hpp +6 -0
  537. package/nitrogen/generated/android/c++/JFunc_std__shared_ptr_Promise_std__variant_ResolvedTrack__BrowseError__std__shared_ptr_Promise_std__variant_ResolvedTrack__BrowseError_______BrowserSourceCallbackParam.hpp +131 -0
  538. package/nitrogen/generated/android/c++/JFunc_void_FavoriteChangedEvent.hpp +6 -0
  539. package/nitrogen/generated/android/c++/JFunc_void_GateEvent.hpp +79 -0
  540. package/nitrogen/generated/android/c++/JFunc_void_NowPlayingMetadata.hpp +0 -10
  541. package/nitrogen/generated/android/c++/JFunc_void_Options.hpp +14 -9
  542. package/nitrogen/generated/android/c++/JFunc_void_Output.hpp +80 -0
  543. package/nitrogen/generated/android/c++/JFunc_void_Playback.hpp +2 -0
  544. package/nitrogen/generated/android/c++/JFunc_void_PlaybackActiveTrackChangedEvent.hpp +6 -0
  545. package/nitrogen/generated/android/c++/JFunc_void_PlaybackErrorEvent.hpp +2 -0
  546. package/nitrogen/generated/android/c++/JFunc_void_bool.hpp +10 -10
  547. package/nitrogen/generated/android/c++/JFunc_void_std__optional_ResolvedTrack_.hpp +6 -0
  548. package/nitrogen/generated/android/c++/JFunc_void_std__vector_Track_.hpp +6 -0
  549. package/nitrogen/generated/android/c++/JGate.hpp +62 -0
  550. package/nitrogen/generated/android/c++/JGateDecision.hpp +64 -0
  551. package/nitrogen/generated/android/c++/{JThumbsRating.hpp → JGateEvent.hpp} +16 -15
  552. package/nitrogen/generated/android/c++/JGateReason.hpp +58 -0
  553. package/nitrogen/generated/android/c++/JHybridAudioBrowserSpec.cpp +247 -223
  554. package/nitrogen/generated/android/c++/JHybridAudioBrowserSpec.hpp +26 -23
  555. package/nitrogen/generated/android/c++/JIOSOptions.hpp +95 -0
  556. package/nitrogen/generated/android/c++/JImageRowItem.hpp +33 -3
  557. package/nitrogen/generated/android/c++/JMediaReference.hpp +58 -0
  558. package/nitrogen/generated/android/c++/JMediaRequestConfig.hpp +33 -1
  559. package/nitrogen/generated/android/c++/{JPartialAndroidSetupPlayerOptions.hpp → JNativeAndroidSetupOptions.hpp} +10 -10
  560. package/nitrogen/generated/android/c++/JNativeBrowserConfiguration.hpp +61 -28
  561. package/nitrogen/generated/android/c++/JNativeGateRequest.hpp +74 -0
  562. package/nitrogen/generated/android/c++/{JPartialIOSSetupPlayerOptions.hpp → JNativeIOSSetupOptions.hpp} +10 -10
  563. package/nitrogen/generated/android/c++/JNativeRouteEntry.hpp +20 -9
  564. package/nitrogen/generated/android/c++/JNativeSetupPlayerOptions.hpp +182 -0
  565. package/nitrogen/generated/android/c++/JNativeUpdateOptions.hpp +21 -24
  566. package/nitrogen/generated/android/c++/JNavigationErrorType.hpp +6 -0
  567. package/nitrogen/generated/android/c++/JNitroAndroidUpdateOptions.hpp +10 -20
  568. package/nitrogen/generated/android/c++/JNitroIOSUpdateOptions.hpp +96 -0
  569. package/nitrogen/generated/android/c++/JNowPlayingMetadata.hpp +3 -17
  570. package/nitrogen/generated/android/c++/JNowPlayingUpdate.hpp +7 -3
  571. package/nitrogen/generated/android/c++/JOptions.hpp +19 -14
  572. package/nitrogen/generated/android/c++/{JIosOutput.hpp → JOutput.hpp} +15 -15
  573. package/nitrogen/generated/android/c++/JOutputType.hpp +82 -0
  574. package/nitrogen/generated/android/c++/JPlayback.hpp +2 -0
  575. package/nitrogen/generated/android/c++/JPlaybackActiveTrackChangedEvent.hpp +6 -0
  576. package/nitrogen/generated/android/c++/JPlaybackError.hpp +18 -3
  577. package/nitrogen/generated/android/c++/JPlaybackErrorEvent.hpp +2 -0
  578. package/nitrogen/generated/android/c++/JPlaybackErrorKind.hpp +76 -0
  579. package/nitrogen/generated/android/c++/JPlaybackState.hpp +3 -3
  580. package/nitrogen/generated/android/c++/JPlayerCapabilities.hpp +11 -5
  581. package/nitrogen/generated/android/c++/{JNotificationButton.hpp → JRemoteButton.hpp} +20 -20
  582. package/nitrogen/generated/android/c++/JRemoteButtonLayout.hpp +86 -0
  583. package/nitrogen/generated/android/c++/JResolvedTrack.hpp +23 -5
  584. package/nitrogen/generated/android/c++/JRetryConfig.hpp +11 -7
  585. package/nitrogen/generated/android/c++/JSearchMode.hpp +27 -9
  586. package/nitrogen/generated/android/c++/JSearchParams.hpp +9 -3
  587. package/nitrogen/generated/android/c++/JStallReason.hpp +58 -0
  588. package/nitrogen/generated/android/c++/JTrack.hpp +23 -5
  589. package/nitrogen/generated/android/c++/JTrackLoadEvent.hpp +6 -0
  590. package/nitrogen/generated/android/c++/JTrackRequest.hpp +93 -0
  591. package/nitrogen/generated/android/c++/JTransformableRequestConfig.hpp +14 -1
  592. package/nitrogen/generated/android/c++/JVariant_Boolean_FavoriteConfig.cpp +26 -0
  593. package/nitrogen/generated/android/c++/JVariant_Boolean_FavoriteConfig.hpp +71 -0
  594. package/nitrogen/generated/android/c++/JVariant_NullType_RemoteButtonLayout.cpp +26 -0
  595. package/nitrogen/generated/android/c++/JVariant_NullType_RemoteButtonLayout.hpp +75 -0
  596. package/nitrogen/generated/android/c++/JVariant_ResolvedTrack_BrowseError_Promise_BrowseResult_.cpp +41 -0
  597. package/nitrogen/generated/android/c++/JVariant_ResolvedTrack_BrowseError_Promise_BrowseResult_.hpp +121 -0
  598. package/nitrogen/generated/android/c++/JVariant_String_ArtworkVariants.cpp +26 -0
  599. package/nitrogen/generated/android/c++/JVariant_String_ArtworkVariants.hpp +70 -0
  600. package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/AndroidAudioContentType.kt +4 -4
  601. package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/AndroidOptions.kt +3 -9
  602. package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/ArtworkRequestConfig.kt +10 -4
  603. package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/ArtworkVariants.kt +41 -0
  604. package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/CarPlayNowPlayingButton.kt +3 -3
  605. package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/{HeartRating.kt → FavoriteConfig.kt} +6 -6
  606. package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/{RatingType.kt → FavoritesMatchMode.kt} +5 -10
  607. package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/FormatNowPlayingParams.kt +50 -0
  608. package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/FormattedNavigationError.kt +2 -2
  609. package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/Func_std__shared_ptr_Promise_RequestConfig___MediaTransformParams.kt +80 -0
  610. package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/Func_std__shared_ptr_Promise_RequestConfig___RequestConfig_std__optional_std__unordered_map_std__string__std__string__.kt +80 -0
  611. package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/Func_std__shared_ptr_Promise_RequestConfig___Track.kt +80 -0
  612. package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/Func_std__shared_ptr_Promise_std__optional_NowPlayingUpdate____FormatNowPlayingParams.kt +80 -0
  613. package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/Func_std__shared_ptr_Promise_std__optional_std__string____Track.kt +80 -0
  614. package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/Func_std__shared_ptr_Promise_std__shared_ptr_Promise_GateDecision_____NativeGateRequest.kt +80 -0
  615. package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/Func_std__shared_ptr_Promise_std__shared_ptr_Promise_TransformableRequestConfig____.kt +80 -0
  616. package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/{Func_std__shared_ptr_Promise_std__shared_ptr_Promise_std__variant_ResolvedTrack__BrowseError______BrowserSourceCallbackParam.kt → Func_std__shared_ptr_Promise_std__variant_ResolvedTrack__BrowseError__std__shared_ptr_Promise_std__variant_ResolvedTrack__BrowseError_______BrowserSourceCallbackParam.kt} +12 -12
  617. package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/{Func_void_RemoteSetRatingEvent.kt → Func_void_GateEvent.kt} +9 -9
  618. package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/{Func_void_IosOutput.kt → Func_void_Output.kt} +9 -9
  619. package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/Func_void_bool.kt +9 -9
  620. package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/{ThumbsRating.kt → Gate.kt} +9 -6
  621. package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/{PercentageRating.kt → GateDecision.kt} +9 -6
  622. package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/{StarRating.kt → GateEvent.kt} +6 -6
  623. package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/{NotificationButton.kt → GateReason.kt} +5 -8
  624. package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/HybridAudioBrowserSpec.kt +104 -110
  625. package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/IOSOptions.kt +44 -0
  626. package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/ImageRowItem.kt +24 -3
  627. package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/MediaReference.kt +23 -0
  628. package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/MediaRequestConfig.kt +10 -4
  629. package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/{PartialAndroidSetupPlayerOptions.kt → NativeAndroidSetupOptions.kt} +5 -5
  630. package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/NativeBrowserConfiguration.kt +18 -6
  631. package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/{RemoteSetRatingEvent.kt → NativeGateRequest.kt} +12 -6
  632. package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/{PartialIOSSetupPlayerOptions.kt → NativeIOSSetupOptions.kt} +5 -5
  633. package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/NativeRouteEntry.kt +4 -4
  634. package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/NativeSetupPlayerOptions.kt +66 -0
  635. package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/NativeUpdateOptions.kt +6 -6
  636. package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/NavigationErrorType.kt +3 -1
  637. package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/NitroAndroidUpdateOptions.kt +3 -9
  638. package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/NitroIOSUpdateOptions.kt +44 -0
  639. package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/NowPlayingMetadata.kt +3 -6
  640. package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/NowPlayingUpdate.kt +6 -3
  641. package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/Options.kt +3 -3
  642. package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/{IosOutput.kt → Output.kt} +6 -6
  643. package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/OutputType.kt +31 -0
  644. package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/PlaybackError.kt +12 -3
  645. package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/PlaybackErrorKind.kt +29 -0
  646. package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/PlaybackState.kt +6 -6
  647. package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/PlayerCapabilities.kt +2 -2
  648. package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/RemoteButton.kt +26 -0
  649. package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/RemoteButtonLayout.kt +44 -0
  650. package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/ResolvedTrack.kt +12 -3
  651. package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/RetryConfig.kt +7 -4
  652. package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/SearchMode.kt +12 -6
  653. package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/SearchParams.kt +6 -3
  654. package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/StallReason.kt +23 -0
  655. package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/Track.kt +12 -3
  656. package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/TrackRequest.kt +44 -0
  657. package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/TransformableRequestConfig.kt +7 -4
  658. package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/Variant_Boolean_FavoriteConfig.kt +53 -0
  659. package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/{Variant_NullType_NotificationButtonLayout.kt → Variant_NullType_RemoteButtonLayout.kt} +9 -9
  660. package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/Variant_ResolvedTrack_BrowseError_Promise_BrowseResult_.kt +65 -0
  661. package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/Variant_String_ArtworkVariants.kt +53 -0
  662. package/nitrogen/generated/ios/AudioBrowser-Swift-Cxx-Bridge.cpp +139 -28
  663. package/nitrogen/generated/ios/AudioBrowser-Swift-Cxx-Bridge.hpp +1126 -490
  664. package/nitrogen/generated/ios/AudioBrowser-Swift-Cxx-Umbrella.hpp +66 -45
  665. package/nitrogen/generated/ios/c++/HybridAudioBrowserSpecSwift.hpp +178 -120
  666. package/nitrogen/generated/ios/swift/AndroidAudioContentType.swift +8 -8
  667. package/nitrogen/generated/ios/swift/AndroidOptions.swift +12 -22
  668. package/nitrogen/generated/ios/swift/ArtworkRequestConfig.swift +95 -1
  669. package/nitrogen/generated/ios/swift/ArtworkVariants.swift +34 -0
  670. package/nitrogen/generated/ios/swift/CarPlayNowPlayingButton.swift +4 -4
  671. package/nitrogen/generated/ios/swift/FavoriteConfig.swift +29 -0
  672. package/nitrogen/generated/ios/swift/FavoritesMatchMode.swift +40 -0
  673. package/nitrogen/generated/ios/swift/FormatNowPlayingParams.swift +67 -0
  674. package/nitrogen/generated/ios/swift/FormattedNavigationError.swift +17 -4
  675. package/nitrogen/generated/ios/swift/Func_std__shared_ptr_Promise_RequestConfig___MediaTransformParams.swift +54 -0
  676. package/nitrogen/generated/ios/swift/Func_std__shared_ptr_Promise_RequestConfig___RequestConfig_std__optional_std__unordered_map_std__string__std__string__.swift +69 -0
  677. package/nitrogen/generated/ios/swift/Func_std__shared_ptr_Promise_RequestConfig___Track.swift +54 -0
  678. package/nitrogen/generated/ios/swift/Func_std__shared_ptr_Promise_std__optional_NowPlayingUpdate____FormatNowPlayingParams.swift +60 -0
  679. package/nitrogen/generated/ios/swift/Func_std__shared_ptr_Promise_std__optional_std__string____Track.swift +60 -0
  680. package/nitrogen/generated/ios/swift/Func_std__shared_ptr_Promise_std__shared_ptr_Promise_GateDecision_____NativeGateRequest.swift +61 -0
  681. package/nitrogen/generated/ios/swift/Func_std__shared_ptr_Promise_std__shared_ptr_Promise_TransformableRequestConfig____.swift +61 -0
  682. package/nitrogen/generated/ios/swift/Func_std__shared_ptr_Promise_std__variant_ResolvedTrack__BrowseError__std__shared_ptr_Promise_std__variant_ResolvedTrack__BrowseError_______BrowserSourceCallbackParam.swift +77 -0
  683. package/nitrogen/generated/ios/swift/Func_void_GateDecision.swift +46 -0
  684. package/nitrogen/generated/ios/swift/{Func_void_RemoteSetRatingEvent.swift → Func_void_GateEvent.swift} +10 -10
  685. package/nitrogen/generated/ios/swift/{Func_void_IosOutput.swift → Func_void_Output.swift} +10 -10
  686. package/nitrogen/generated/ios/swift/Func_void_TransformableRequestConfig.swift +46 -0
  687. package/nitrogen/generated/ios/swift/Func_void_bool.swift +5 -5
  688. package/nitrogen/generated/ios/swift/Func_void_std__optional_NowPlayingUpdate_.swift +46 -0
  689. package/nitrogen/generated/ios/swift/Func_void_std__optional_std__string_.swift +53 -0
  690. package/nitrogen/generated/ios/swift/{Func_void_std__shared_ptr_Promise_std__variant_ResolvedTrack__BrowseError___.swift → Func_void_std__shared_ptr_Promise_GateDecision__.swift} +17 -17
  691. package/nitrogen/generated/ios/swift/Func_void_std__shared_ptr_Promise_TransformableRequestConfig__.swift +66 -0
  692. package/nitrogen/generated/ios/swift/Func_void_std__variant_ResolvedTrack__BrowseError__std__shared_ptr_Promise_std__variant_ResolvedTrack__BrowseError____.swift +81 -0
  693. package/nitrogen/generated/ios/swift/Gate.swift +47 -0
  694. package/nitrogen/generated/ios/swift/GateDecision.swift +40 -0
  695. package/nitrogen/generated/ios/swift/GateEvent.swift +29 -0
  696. package/nitrogen/generated/ios/swift/GateReason.swift +40 -0
  697. package/nitrogen/generated/ios/swift/HybridAudioBrowserSpec.swift +21 -15
  698. package/nitrogen/generated/ios/swift/HybridAudioBrowserSpec_cxx.swift +232 -199
  699. package/nitrogen/generated/ios/swift/IOSOptions.swift +51 -0
  700. package/nitrogen/generated/ios/swift/ImageRowItem.swift +121 -2
  701. package/nitrogen/generated/ios/swift/MediaReference.swift +40 -0
  702. package/nitrogen/generated/ios/swift/MediaRequestConfig.swift +107 -1
  703. package/nitrogen/generated/ios/swift/{PartialAndroidSetupPlayerOptions.swift → NativeAndroidSetupOptions.swift} +5 -5
  704. package/nitrogen/generated/ios/swift/NativeBrowserConfiguration.swift +161 -22
  705. package/nitrogen/generated/ios/swift/NativeGateRequest.swift +58 -0
  706. package/nitrogen/generated/ios/swift/{PartialIOSSetupPlayerOptions.swift → NativeIOSSetupOptions.swift} +5 -5
  707. package/nitrogen/generated/ios/swift/NativeRouteEntry.swift +19 -19
  708. package/nitrogen/generated/ios/swift/NativeSetupPlayerOptions.swift +206 -0
  709. package/nitrogen/generated/ios/swift/NativeUpdateOptions.swift +12 -25
  710. package/nitrogen/generated/ios/swift/NavigationErrorType.swift +8 -0
  711. package/nitrogen/generated/ios/swift/NitroAndroidUpdateOptions.swift +12 -41
  712. package/nitrogen/generated/ios/swift/NitroIOSUpdateOptions.swift +90 -0
  713. package/nitrogen/generated/ios/swift/NowPlayingMetadata.swift +1 -48
  714. package/nitrogen/generated/ios/swift/NowPlayingUpdate.swift +19 -1
  715. package/nitrogen/generated/ios/swift/Options.swift +10 -4
  716. package/nitrogen/generated/ios/swift/{IosOutput.swift → Output.swift} +7 -7
  717. package/nitrogen/generated/ios/swift/OutputType.swift +72 -0
  718. package/nitrogen/generated/ios/swift/PlaybackError.swift +43 -2
  719. package/nitrogen/generated/ios/swift/PlaybackErrorKind.swift +64 -0
  720. package/nitrogen/generated/ios/swift/PlaybackState.swift +4 -4
  721. package/nitrogen/generated/ios/swift/PlayerCapabilities.swift +27 -8
  722. package/nitrogen/generated/ios/swift/{NotificationButton.swift → RemoteButton.swift} +10 -10
  723. package/nitrogen/generated/ios/swift/RemoteButtonLayout.swift +57 -0
  724. package/nitrogen/generated/ios/swift/ResolvedTrack.swift +74 -8
  725. package/nitrogen/generated/ios/swift/RetryConfig.swift +35 -4
  726. package/nitrogen/generated/ios/swift/SearchMode.swift +36 -12
  727. package/nitrogen/generated/ios/swift/SearchParams.swift +7 -2
  728. package/nitrogen/generated/ios/swift/StallReason.swift +40 -0
  729. package/nitrogen/generated/ios/swift/Track.swift +74 -8
  730. package/nitrogen/generated/ios/swift/TrackRequest.swift +106 -0
  731. package/nitrogen/generated/ios/swift/TransformableRequestConfig.swift +60 -1
  732. package/nitrogen/generated/ios/swift/Variant_Bool_FavoriteConfig.swift +18 -0
  733. package/nitrogen/generated/ios/swift/{Variant_NullType_NotificationButtonLayout.swift → Variant_NullType_RemoteButtonLayout.swift} +3 -3
  734. package/nitrogen/generated/ios/swift/Variant_ResolvedTrack_BrowseError_Promise_BrowseResult_.swift +19 -0
  735. package/nitrogen/generated/ios/swift/Variant_String_ArtworkVariants.swift +18 -0
  736. package/nitrogen/generated/shared/c++/AndroidAudioContentType.hpp +10 -10
  737. package/nitrogen/generated/shared/c++/AndroidOptions.hpp +8 -19
  738. package/nitrogen/generated/shared/c++/ArtworkRequestConfig.hpp +10 -2
  739. package/nitrogen/generated/shared/c++/ArtworkVariants.hpp +87 -0
  740. package/nitrogen/generated/shared/c++/CarPlayNowPlayingButton.hpp +6 -6
  741. package/nitrogen/generated/shared/c++/EqualizerSettings.hpp +0 -2
  742. package/nitrogen/generated/shared/c++/{StarRating.hpp → FavoriteConfig.hpp} +18 -17
  743. package/nitrogen/generated/shared/c++/FavoritesMatchMode.hpp +76 -0
  744. package/nitrogen/generated/shared/c++/FormatNowPlayingParams.hpp +110 -0
  745. package/nitrogen/generated/shared/c++/FormattedNavigationError.hpp +6 -5
  746. package/nitrogen/generated/shared/c++/{PercentageRating.hpp → Gate.hpp} +21 -16
  747. package/nitrogen/generated/shared/c++/{HeartRating.hpp → GateDecision.hpp} +23 -17
  748. package/nitrogen/generated/shared/c++/{ThumbsRating.hpp → GateEvent.hpp} +18 -17
  749. package/nitrogen/generated/shared/c++/GateReason.hpp +76 -0
  750. package/nitrogen/generated/shared/c++/HybridAudioBrowserSpec.cpp +22 -19
  751. package/nitrogen/generated/shared/c++/HybridAudioBrowserSpec.hpp +45 -36
  752. package/nitrogen/generated/shared/c++/IOSOptions.hpp +91 -0
  753. package/nitrogen/generated/shared/c++/ImageRowItem.hpp +33 -2
  754. package/nitrogen/generated/shared/c++/MediaReference.hpp +76 -0
  755. package/nitrogen/generated/shared/c++/MediaRequestConfig.hpp +10 -2
  756. package/nitrogen/generated/shared/c++/{PartialAndroidSetupPlayerOptions.hpp → NativeAndroidSetupOptions.hpp} +11 -11
  757. package/nitrogen/generated/shared/c++/NativeBrowserConfiguration.hpp +31 -15
  758. package/nitrogen/generated/shared/c++/NativeGateRequest.hpp +97 -0
  759. package/nitrogen/generated/shared/c++/{PartialIOSSetupPlayerOptions.hpp → NativeIOSSetupOptions.hpp} +11 -11
  760. package/nitrogen/generated/shared/c++/NativeRouteEntry.hpp +5 -5
  761. package/nitrogen/generated/shared/c++/NativeSetupPlayerOptions.hpp +138 -0
  762. package/nitrogen/generated/shared/c++/NativeUpdateOptions.hpp +9 -7
  763. package/nitrogen/generated/shared/c++/NavigationErrorType.hpp +8 -0
  764. package/nitrogen/generated/shared/c++/NitroAndroidUpdateOptions.hpp +8 -19
  765. package/nitrogen/generated/shared/c++/NitroIOSUpdateOptions.hpp +92 -0
  766. package/nitrogen/generated/shared/c++/NowPlayingMetadata.hpp +3 -19
  767. package/nitrogen/generated/shared/c++/NowPlayingUpdate.hpp +6 -2
  768. package/nitrogen/generated/shared/c++/Options.hpp +8 -8
  769. package/nitrogen/generated/shared/c++/{IosOutput.hpp → Output.hpp} +18 -18
  770. package/nitrogen/generated/shared/c++/OutputType.hpp +108 -0
  771. package/nitrogen/generated/shared/c++/PlaybackError.hpp +18 -3
  772. package/nitrogen/generated/shared/c++/PlaybackErrorKind.hpp +100 -0
  773. package/nitrogen/generated/shared/c++/PlaybackState.hpp +9 -9
  774. package/nitrogen/generated/shared/c++/PlayerCapabilities.hpp +9 -6
  775. package/nitrogen/generated/shared/c++/{NotificationButton.hpp → RemoteButton.hpp} +25 -25
  776. package/nitrogen/generated/shared/c++/RemoteButtonLayout.hpp +94 -0
  777. package/nitrogen/generated/shared/c++/ResolvedTrack.hpp +24 -5
  778. package/nitrogen/generated/shared/c++/RetryConfig.hpp +10 -6
  779. package/nitrogen/generated/shared/c++/SearchMode.hpp +39 -15
  780. package/nitrogen/generated/shared/c++/SearchParams.hpp +9 -2
  781. package/nitrogen/generated/shared/c++/StallReason.hpp +76 -0
  782. package/nitrogen/generated/shared/c++/Track.hpp +24 -5
  783. package/nitrogen/generated/shared/c++/TrackRequest.hpp +93 -0
  784. package/nitrogen/generated/shared/c++/TransformableRequestConfig.hpp +6 -2
  785. package/package.json +20 -8
  786. package/src/AudioBrowser.ts +1 -1
  787. package/src/CLAUDE.md +52 -0
  788. package/src/codegen-no-config-variant.test.ts +70 -0
  789. package/src/features/battery.test.ts +79 -0
  790. package/src/features/browser-config.test.ts +110 -0
  791. package/src/features/browser-config.ts +293 -0
  792. package/src/features/browser.test.ts +19 -0
  793. package/src/features/browser.ts +59 -202
  794. package/src/features/carConnection.ts +36 -0
  795. package/src/features/equalizer.ts +1 -1
  796. package/src/features/errors.ts +71 -5
  797. package/src/features/favorites.ts +1 -1
  798. package/src/features/gate.test.ts +72 -0
  799. package/src/features/gate.ts +170 -0
  800. package/src/features/hook-wiring.test.ts +254 -0
  801. package/src/features/index.ts +2 -0
  802. package/src/features/metadata.ts +26 -15
  803. package/src/features/network.ts +1 -1
  804. package/src/features/nowPlaying.ts +37 -1
  805. package/src/features/output.ts +35 -22
  806. package/src/features/playback/controls.ts +8 -0
  807. package/src/features/playback/index.ts +1 -0
  808. package/src/features/playback/playWhenReady.ts +1 -1
  809. package/src/features/playback/playing.ts +1 -1
  810. package/src/features/playback/progress.test.ts +169 -0
  811. package/src/features/playback/progress.ts +32 -13
  812. package/src/features/playback/state.ts +1 -1
  813. package/src/features/playback/trackPlaybackTime.test.ts +76 -0
  814. package/src/features/playback/trackPlaybackTime.ts +101 -0
  815. package/src/features/playback/volume.ts +2 -2
  816. package/src/features/player/options.test.ts +38 -0
  817. package/src/features/player/options.ts +217 -110
  818. package/src/features/player/setup.test.ts +125 -0
  819. package/src/features/player/setup.ts +400 -175
  820. package/src/features/player/validateOptions.ts +19 -0
  821. package/src/features/queue/activeTrack.ts +1 -1
  822. package/src/features/queue/queue.test.ts +36 -0
  823. package/src/features/queue/queue.ts +17 -6
  824. package/src/features/queue/repeatMode.ts +1 -1
  825. package/src/features/queue/shuffle.ts +1 -1
  826. package/src/features/remoteControls.ts +13 -115
  827. package/src/features/sleepTimer.test.ts +172 -0
  828. package/src/features/sleepTimer.ts +32 -5
  829. package/src/native.ts +5 -0
  830. package/src/native.web.ts +4 -1
  831. package/src/public-surface.test.ts +107 -0
  832. package/src/specs/audio-browser.nitro.ts +132 -42
  833. package/src/test-utils/reactNativeStub.ts +60 -0
  834. package/src/types/browser-native.ts +19 -6
  835. package/src/types/browser-nodes.ts +160 -13
  836. package/src/types/browser.ts +377 -89
  837. package/src/utils/LazyNativeEmitter.ts +9 -8
  838. package/src/utils/NativeUpdatedValue.ts +0 -2
  839. package/src/utils/artwork.ts +30 -0
  840. package/src/utils/useDebug.test.ts +182 -0
  841. package/src/utils/useNativeUpdatedValue.test.ts +103 -0
  842. package/src/web/NativeAudioBrowser.playWhenReady.test.ts +301 -0
  843. package/src/web/NativeAudioBrowser.ts +366 -159
  844. package/src/web/TrackPlayer/PlaybackStateMachine.test.ts +139 -0
  845. package/src/web/TrackPlayer/PlaybackStateMachine.ts +82 -0
  846. package/src/web/TrackPlayer/PlaybackTimer.test.ts +67 -0
  847. package/src/web/TrackPlayer/PlaybackTimer.ts +33 -0
  848. package/src/web/TrackPlayer/Player.dispatch.test.ts +229 -0
  849. package/src/web/TrackPlayer/Player.load.test.ts +86 -0
  850. package/src/web/TrackPlayer/Player.ts +113 -39
  851. package/src/web/TrackPlayer/PlayingStateFactory.test.ts +51 -0
  852. package/src/web/TrackPlayer/PlayingStateFactory.ts +24 -0
  853. package/src/web/TrackPlayer/QueueManager.test.ts +289 -0
  854. package/src/web/TrackPlayer/QueueManager.ts +302 -0
  855. package/src/web/TrackPlayer/QueuePlayer.ts +188 -0
  856. package/src/web/TrackPlayer/RepeatMode.ts +1 -1
  857. package/src/web/TrackPlayer/SleepTimer.ts +38 -3
  858. package/src/web/TrackPlayer/VolumeFader.ts +74 -0
  859. package/src/web/TrackPlayer/index.ts +2 -1
  860. package/src/web/browser/BrowserManager.ts +231 -62
  861. package/src/web/browser/NavigationErrorManager.ts +3 -1
  862. package/src/web/browser/SearchManager.ts +11 -15
  863. package/src/web/browser/__tests__/layer-resolver.test.ts +69 -0
  864. package/src/web/browser/assertBrowsePageShape.test.ts +27 -0
  865. package/src/web/browser/assertBrowsePageShape.ts +27 -0
  866. package/src/web/browser/classifyTrackNavigation.test.ts +41 -0
  867. package/src/web/browser/classifyTrackNavigation.ts +35 -0
  868. package/src/web/browser/parseSearchResponse.test.ts +25 -0
  869. package/src/web/browser/parseSearchResponse.ts +15 -0
  870. package/src/web/http/HttpClient.ts +5 -35
  871. package/src/web/http/RequestConfigBuilder.test.ts +59 -0
  872. package/src/web/http/RequestConfigBuilder.ts +120 -63
  873. package/src/web/playbackErrorKind.test.ts +55 -0
  874. package/src/web/playbackErrorKind.ts +56 -0
  875. package/src/web/player/MediaSessionManager.test.ts +220 -0
  876. package/src/web/player/MediaSessionManager.ts +151 -0
  877. package/src/web/player/NowPlayingManager.test.ts +46 -0
  878. package/src/web/player/NowPlayingManager.ts +6 -5
  879. package/src/web/player/OptionsManager.ts +12 -18
  880. package/src/web/player/RemoteCommandController.test.ts +171 -0
  881. package/src/web/player/RemoteCommandController.ts +166 -0
  882. package/android/src/main/java/com/audiobrowser/player/PlaybackProgressUpdateManager.kt +0 -59
  883. package/android/src/main/java/com/audiobrowser/util/RatingFactory.kt +0 -72
  884. package/android/src/main/java/com/audiobrowser/util/ResolvedTrackFactory.kt +0 -36
  885. package/android/src/test/java/com/audiobrowser/player/PlaybackProgressUpdateManagerTest.kt +0 -146
  886. package/ios/CarPlay/Track+CarPlay.swift +0 -63
  887. package/ios/Model/MediaURL.swift +0 -67
  888. package/ios/NowPlayingInfo/NowPlayingInfoCenter.swift +0 -9
  889. package/ios/Player/PlaybackProgressUpdateManager.swift +0 -68
  890. package/ios/Tests/PlaybackProgressUpdateManagerTests.swift +0 -166
  891. package/lib/commonjs/features/rating.js +0 -2
  892. package/lib/commonjs/features/rating.js.map +0 -1
  893. package/lib/commonjs/types/player.js +0 -2
  894. package/lib/commonjs/types/player.js.map +0 -1
  895. package/lib/commonjs/web/SimpleRouter.test.js +0 -174
  896. package/lib/commonjs/web/SimpleRouter.test.js.map +0 -1
  897. package/lib/commonjs/web/TrackPlayer/PlaylistPlayer.js +0 -293
  898. package/lib/commonjs/web/TrackPlayer/PlaylistPlayer.js.map +0 -1
  899. package/lib/module/features/rating.js +0 -2
  900. package/lib/module/features/rating.js.map +0 -1
  901. package/lib/module/types/player.js +0 -2
  902. package/lib/module/types/player.js.map +0 -1
  903. package/lib/module/web/SimpleRouter.test.js +0 -174
  904. package/lib/module/web/SimpleRouter.test.js.map +0 -1
  905. package/lib/module/web/TrackPlayer/PlaylistPlayer.js +0 -288
  906. package/lib/module/web/TrackPlayer/PlaylistPlayer.js.map +0 -1
  907. package/lib/typescript/src/features/rating.d.ts +0 -14
  908. package/lib/typescript/src/features/rating.d.ts.map +0 -1
  909. package/lib/typescript/src/native.web.d.ts +0 -3
  910. package/lib/typescript/src/native.web.d.ts.map +0 -1
  911. package/lib/typescript/src/types/player.d.ts +0 -64
  912. package/lib/typescript/src/types/player.d.ts.map +0 -1
  913. package/lib/typescript/src/web/NativeAudioBrowser.d.ts +0 -188
  914. package/lib/typescript/src/web/NativeAudioBrowser.d.ts.map +0 -1
  915. package/lib/typescript/src/web/SimpleRouter.d.ts +0 -40
  916. package/lib/typescript/src/web/SimpleRouter.d.ts.map +0 -1
  917. package/lib/typescript/src/web/SimpleRouter.test.d.ts +0 -2
  918. package/lib/typescript/src/web/SimpleRouter.test.d.ts.map +0 -1
  919. package/lib/typescript/src/web/TrackPlayer/Event.d.ts +0 -11
  920. package/lib/typescript/src/web/TrackPlayer/Event.d.ts.map +0 -1
  921. package/lib/typescript/src/web/TrackPlayer/Player.d.ts +0 -59
  922. package/lib/typescript/src/web/TrackPlayer/Player.d.ts.map +0 -1
  923. package/lib/typescript/src/web/TrackPlayer/PlaylistPlayer.d.ts +0 -39
  924. package/lib/typescript/src/web/TrackPlayer/PlaylistPlayer.d.ts.map +0 -1
  925. package/lib/typescript/src/web/TrackPlayer/RepeatMode.d.ts +0 -6
  926. package/lib/typescript/src/web/TrackPlayer/RepeatMode.d.ts.map +0 -1
  927. package/lib/typescript/src/web/TrackPlayer/SetupNotCalledError.d.ts +0 -4
  928. package/lib/typescript/src/web/TrackPlayer/SetupNotCalledError.d.ts.map +0 -1
  929. package/lib/typescript/src/web/TrackPlayer/SleepTimer.d.ts +0 -34
  930. package/lib/typescript/src/web/TrackPlayer/SleepTimer.d.ts.map +0 -1
  931. package/lib/typescript/src/web/TrackPlayer/State.d.ts +0 -13
  932. package/lib/typescript/src/web/TrackPlayer/State.d.ts.map +0 -1
  933. package/lib/typescript/src/web/TrackPlayer/index.d.ts +0 -5
  934. package/lib/typescript/src/web/TrackPlayer/index.d.ts.map +0 -1
  935. package/lib/typescript/src/web/browser/BrowserManager.d.ts +0 -154
  936. package/lib/typescript/src/web/browser/BrowserManager.d.ts.map +0 -1
  937. package/lib/typescript/src/web/browser/FavoriteManager.d.ts +0 -42
  938. package/lib/typescript/src/web/browser/FavoriteManager.d.ts.map +0 -1
  939. package/lib/typescript/src/web/browser/NavigationErrorManager.d.ts +0 -40
  940. package/lib/typescript/src/web/browser/NavigationErrorManager.d.ts.map +0 -1
  941. package/lib/typescript/src/web/browser/SearchManager.d.ts +0 -22
  942. package/lib/typescript/src/web/browser/SearchManager.d.ts.map +0 -1
  943. package/lib/typescript/src/web/http/HttpClient.d.ts +0 -25
  944. package/lib/typescript/src/web/http/HttpClient.d.ts.map +0 -1
  945. package/lib/typescript/src/web/http/RequestConfigBuilder.d.ts +0 -98
  946. package/lib/typescript/src/web/http/RequestConfigBuilder.d.ts.map +0 -1
  947. package/lib/typescript/src/web/player/NowPlayingManager.d.ts +0 -34
  948. package/lib/typescript/src/web/player/NowPlayingManager.d.ts.map +0 -1
  949. package/lib/typescript/src/web/player/OptionsManager.d.ts +0 -32
  950. package/lib/typescript/src/web/player/OptionsManager.d.ts.map +0 -1
  951. package/lib/typescript/src/web/util/BrowserPathHelper.d.ts +0 -69
  952. package/lib/typescript/src/web/util/BrowserPathHelper.d.ts.map +0 -1
  953. package/lib/typescript/src/web/util/shuffle.d.ts +0 -8
  954. package/lib/typescript/src/web/util/shuffle.d.ts.map +0 -1
  955. package/nitrogen/generated/android/c++/JAndroidUpdateOptions.hpp +0 -86
  956. package/nitrogen/generated/android/c++/JFunc_std__shared_ptr_Promise_std__shared_ptr_Promise_std__variant_ResolvedTrack__BrowseError______BrowserSourceCallbackParam.hpp +0 -147
  957. package/nitrogen/generated/android/c++/JFunc_void_IosOutput.hpp +0 -80
  958. package/nitrogen/generated/android/c++/JFunc_void_RemoteSetRatingEvent.hpp +0 -87
  959. package/nitrogen/generated/android/c++/JHeartRating.hpp +0 -57
  960. package/nitrogen/generated/android/c++/JIosOutputType.hpp +0 -85
  961. package/nitrogen/generated/android/c++/JNotificationButtonLayout.hpp +0 -94
  962. package/nitrogen/generated/android/c++/JPartialSetupPlayerOptions.hpp +0 -96
  963. package/nitrogen/generated/android/c++/JPercentageRating.hpp +0 -57
  964. package/nitrogen/generated/android/c++/JRatingType.hpp +0 -73
  965. package/nitrogen/generated/android/c++/JRemoteSetRatingEvent.hpp +0 -66
  966. package/nitrogen/generated/android/c++/JStarRating.hpp +0 -57
  967. package/nitrogen/generated/android/c++/JUpdateOptions.hpp +0 -105
  968. package/nitrogen/generated/android/c++/JVariant_HeartRating_ThumbsRating_StarRating_PercentageRating.cpp +0 -34
  969. package/nitrogen/generated/android/c++/JVariant_HeartRating_ThumbsRating_StarRating_PercentageRating.hpp +0 -105
  970. package/nitrogen/generated/android/c++/JVariant_NullType_NotificationButtonLayout.cpp +0 -26
  971. package/nitrogen/generated/android/c++/JVariant_NullType_NotificationButtonLayout.hpp +0 -75
  972. package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/AndroidUpdateOptions.kt +0 -50
  973. package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/IosOutputType.kt +0 -32
  974. package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/NotificationButtonLayout.kt +0 -50
  975. package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/PartialSetupPlayerOptions.kt +0 -47
  976. package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/UpdateOptions.kt +0 -53
  977. package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/Variant_HeartRating_ThumbsRating_StarRating_PercentageRating.kt +0 -77
  978. package/nitrogen/generated/ios/swift/AndroidUpdateOptions.swift +0 -119
  979. package/nitrogen/generated/ios/swift/Func_std__shared_ptr_Promise_std__shared_ptr_Promise_std__variant_ResolvedTrack__BrowseError______BrowserSourceCallbackParam.swift +0 -68
  980. package/nitrogen/generated/ios/swift/HeartRating.swift +0 -29
  981. package/nitrogen/generated/ios/swift/IosOutputType.swift +0 -76
  982. package/nitrogen/generated/ios/swift/NotificationButtonLayout.swift +0 -92
  983. package/nitrogen/generated/ios/swift/PartialSetupPlayerOptions.swift +0 -101
  984. package/nitrogen/generated/ios/swift/PercentageRating.swift +0 -29
  985. package/nitrogen/generated/ios/swift/RatingType.swift +0 -60
  986. package/nitrogen/generated/ios/swift/RemoteSetRatingEvent.swift +0 -58
  987. package/nitrogen/generated/ios/swift/StarRating.swift +0 -29
  988. package/nitrogen/generated/ios/swift/ThumbsRating.swift +0 -29
  989. package/nitrogen/generated/ios/swift/UpdateOptions.swift +0 -143
  990. package/nitrogen/generated/ios/swift/Variant_HeartRating_ThumbsRating_StarRating_PercentageRating.swift +0 -20
  991. package/nitrogen/generated/shared/c++/AndroidUpdateOptions.hpp +0 -109
  992. package/nitrogen/generated/shared/c++/IosOutputType.hpp +0 -112
  993. package/nitrogen/generated/shared/c++/NotificationButtonLayout.hpp +0 -102
  994. package/nitrogen/generated/shared/c++/PartialSetupPlayerOptions.hpp +0 -104
  995. package/nitrogen/generated/shared/c++/RatingType.hpp +0 -96
  996. package/nitrogen/generated/shared/c++/RemoteSetRatingEvent.hpp +0 -94
  997. package/nitrogen/generated/shared/c++/UpdateOptions.hpp +0 -111
  998. package/src/features/rating.ts +0 -17
  999. package/src/types/player.ts +0 -69
  1000. package/src/web/TrackPlayer/PlaylistPlayer.ts +0 -346
@@ -4,7 +4,8 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  var _exportNames = {
7
- SleepTimerManager: true
7
+ SleepTimerManager: true,
8
+ VolumeFader: true
8
9
  };
9
10
  Object.defineProperty(exports, "SleepTimerManager", {
10
11
  enumerable: true,
@@ -12,6 +13,12 @@ Object.defineProperty(exports, "SleepTimerManager", {
12
13
  return _SleepTimer.SleepTimerManager;
13
14
  }
14
15
  });
16
+ Object.defineProperty(exports, "VolumeFader", {
17
+ enumerable: true,
18
+ get: function () {
19
+ return _VolumeFader.VolumeFader;
20
+ }
21
+ });
15
22
  var _Player = require("./Player");
16
23
  Object.keys(_Player).forEach(function (key) {
17
24
  if (key === "default" || key === "__esModule") return;
@@ -24,15 +31,15 @@ Object.keys(_Player).forEach(function (key) {
24
31
  }
25
32
  });
26
33
  });
27
- var _PlaylistPlayer = require("./PlaylistPlayer");
28
- Object.keys(_PlaylistPlayer).forEach(function (key) {
34
+ var _QueuePlayer = require("./QueuePlayer");
35
+ Object.keys(_QueuePlayer).forEach(function (key) {
29
36
  if (key === "default" || key === "__esModule") return;
30
37
  if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
31
- if (key in exports && exports[key] === _PlaylistPlayer[key]) return;
38
+ if (key in exports && exports[key] === _QueuePlayer[key]) return;
32
39
  Object.defineProperty(exports, key, {
33
40
  enumerable: true,
34
41
  get: function () {
35
- return _PlaylistPlayer[key];
42
+ return _QueuePlayer[key];
36
43
  }
37
44
  });
38
45
  });
@@ -49,4 +56,5 @@ Object.keys(_RepeatMode).forEach(function (key) {
49
56
  });
50
57
  });
51
58
  var _SleepTimer = require("./SleepTimer");
59
+ var _VolumeFader = require("./VolumeFader");
52
60
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["_Player","require","Object","keys","forEach","key","prototype","hasOwnProperty","call","_exportNames","exports","defineProperty","enumerable","get","_PlaylistPlayer","_RepeatMode","_SleepTimer"],"sourceRoot":"../../../../src","sources":["web/TrackPlayer/index.ts"],"mappings":";;;;;;;;;;;;;;AAAA,IAAAA,OAAA,GAAAC,OAAA;AAAAC,MAAA,CAAAC,IAAA,CAAAH,OAAA,EAAAI,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAH,MAAA,CAAAI,SAAA,CAAAC,cAAA,CAAAC,IAAA,CAAAC,YAAA,EAAAJ,GAAA;EAAA,IAAAA,GAAA,IAAAK,OAAA,IAAAA,OAAA,CAAAL,GAAA,MAAAL,OAAA,CAAAK,GAAA;EAAAH,MAAA,CAAAS,cAAA,CAAAD,OAAA,EAAAL,GAAA;IAAAO,UAAA;IAAAC,GAAA,WAAAA,CAAA;MAAA,OAAAb,OAAA,CAAAK,GAAA;IAAA;EAAA;AAAA;AACA,IAAAS,eAAA,GAAAb,OAAA;AAAAC,MAAA,CAAAC,IAAA,CAAAW,eAAA,EAAAV,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAH,MAAA,CAAAI,SAAA,CAAAC,cAAA,CAAAC,IAAA,CAAAC,YAAA,EAAAJ,GAAA;EAAA,IAAAA,GAAA,IAAAK,OAAA,IAAAA,OAAA,CAAAL,GAAA,MAAAS,eAAA,CAAAT,GAAA;EAAAH,MAAA,CAAAS,cAAA,CAAAD,OAAA,EAAAL,GAAA;IAAAO,UAAA;IAAAC,GAAA,WAAAA,CAAA;MAAA,OAAAC,eAAA,CAAAT,GAAA;IAAA;EAAA;AAAA;AACA,IAAAU,WAAA,GAAAd,OAAA;AAAAC,MAAA,CAAAC,IAAA,CAAAY,WAAA,EAAAX,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAH,MAAA,CAAAI,SAAA,CAAAC,cAAA,CAAAC,IAAA,CAAAC,YAAA,EAAAJ,GAAA;EAAA,IAAAA,GAAA,IAAAK,OAAA,IAAAA,OAAA,CAAAL,GAAA,MAAAU,WAAA,CAAAV,GAAA;EAAAH,MAAA,CAAAS,cAAA,CAAAD,OAAA,EAAAL,GAAA;IAAAO,UAAA;IAAAC,GAAA,WAAAA,CAAA;MAAA,OAAAE,WAAA,CAAAV,GAAA;IAAA;EAAA;AAAA;AACA,IAAAW,WAAA,GAAAf,OAAA","ignoreList":[]}
1
+ {"version":3,"names":["_Player","require","Object","keys","forEach","key","prototype","hasOwnProperty","call","_exportNames","exports","defineProperty","enumerable","get","_QueuePlayer","_RepeatMode","_SleepTimer","_VolumeFader"],"sourceRoot":"../../../../src","sources":["web/TrackPlayer/index.ts"],"mappings":";;;;;;;;;;;;;;;;;;;;;AAAA,IAAAA,OAAA,GAAAC,OAAA;AAAAC,MAAA,CAAAC,IAAA,CAAAH,OAAA,EAAAI,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAH,MAAA,CAAAI,SAAA,CAAAC,cAAA,CAAAC,IAAA,CAAAC,YAAA,EAAAJ,GAAA;EAAA,IAAAA,GAAA,IAAAK,OAAA,IAAAA,OAAA,CAAAL,GAAA,MAAAL,OAAA,CAAAK,GAAA;EAAAH,MAAA,CAAAS,cAAA,CAAAD,OAAA,EAAAL,GAAA;IAAAO,UAAA;IAAAC,GAAA,WAAAA,CAAA;MAAA,OAAAb,OAAA,CAAAK,GAAA;IAAA;EAAA;AAAA;AACA,IAAAS,YAAA,GAAAb,OAAA;AAAAC,MAAA,CAAAC,IAAA,CAAAW,YAAA,EAAAV,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAH,MAAA,CAAAI,SAAA,CAAAC,cAAA,CAAAC,IAAA,CAAAC,YAAA,EAAAJ,GAAA;EAAA,IAAAA,GAAA,IAAAK,OAAA,IAAAA,OAAA,CAAAL,GAAA,MAAAS,YAAA,CAAAT,GAAA;EAAAH,MAAA,CAAAS,cAAA,CAAAD,OAAA,EAAAL,GAAA;IAAAO,UAAA;IAAAC,GAAA,WAAAA,CAAA;MAAA,OAAAC,YAAA,CAAAT,GAAA;IAAA;EAAA;AAAA;AACA,IAAAU,WAAA,GAAAd,OAAA;AAAAC,MAAA,CAAAC,IAAA,CAAAY,WAAA,EAAAX,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAH,MAAA,CAAAI,SAAA,CAAAC,cAAA,CAAAC,IAAA,CAAAC,YAAA,EAAAJ,GAAA;EAAA,IAAAA,GAAA,IAAAK,OAAA,IAAAA,OAAA,CAAAL,GAAA,MAAAU,WAAA,CAAAV,GAAA;EAAAH,MAAA,CAAAS,cAAA,CAAAD,OAAA,EAAAL,GAAA;IAAAO,UAAA;IAAAC,GAAA,WAAAA,CAAA;MAAA,OAAAE,WAAA,CAAAV,GAAA;IAAA;EAAA;AAAA;AACA,IAAAW,WAAA,GAAAf,OAAA;AACA,IAAAgB,YAAA,GAAAhB,OAAA","ignoreList":[]}
@@ -8,6 +8,8 @@ var _validation = require("../../utils/validation");
8
8
  var _RequestConfigBuilder = require("../http/RequestConfigBuilder");
9
9
  var _SimpleRouter = require("../SimpleRouter");
10
10
  var _BrowserPathHelper = require("../util/BrowserPathHelper");
11
+ var _assertBrowsePageShape = require("./assertBrowsePageShape");
12
+ var _parseSearchResponse = require("./parseSearchResponse");
11
13
  /**
12
14
  * Manages browser navigation, route resolution, and content loading.
13
15
  * Coordinates between HTTP client, favorite manager, and error manager.
@@ -17,6 +19,17 @@ class BrowserManager {
17
19
  _configuration = {};
18
20
  router = new _SimpleRouter.SimpleRouter();
19
21
 
22
+ // Layer resolution: any present request/browse resolver is invoked once per
23
+ // content generation, and the resolved TransformableRequestConfig is cached
24
+ // and fed into applyLayers in place of the static request/browse config. The
25
+ // generation bumps on config-set and on invalidateAllContent().
26
+ _layerGeneration = 0;
27
+ _resolvedLayerGeneration = -1;
28
+
29
+ // Dedupes concurrent resolution within a generation (config-set triggers an
30
+ // initial navigate that can overlap with an explicit navigatePath), so a
31
+ // resolver is invoked exactly once per generation even under concurrency.
32
+
20
33
  // Navigation tracking to prevent race conditions (matches Android's @Volatile currentNavigationId)
21
34
  currentNavigationId = 0;
22
35
 
@@ -106,14 +119,10 @@ class BrowserManager {
106
119
  */
107
120
  set configuration(value) {
108
121
  this._configuration = value;
122
+ this._layerGeneration += 1;
109
123
  this.navigationErrorManager.clearNavigationError();
110
124
  this.navigationErrorManager.setFormatCallback(value.formatNavigationError);
111
125
 
112
- // Update HTTP client base config
113
- if (value.request) {
114
- this.httpClient.setBaseRequestConfig(value.request);
115
- }
116
-
117
126
  // Determine initial path
118
127
  let initialPath = value.path;
119
128
 
@@ -162,6 +171,18 @@ class BrowserManager {
162
171
  }
163
172
  }
164
173
 
174
+ /**
175
+ * Invalidates all browse content. Web shows a single path at a time and
176
+ * doesn't keep a content cache, so this just re-navigates the current path
177
+ * to re-resolve it.
178
+ */
179
+ invalidateAllContent() {
180
+ this._layerGeneration += 1;
181
+ if (this._path) {
182
+ void this.navigate(this._path);
183
+ }
184
+ }
185
+
165
186
  /**
166
187
  * Main navigation logic.
167
188
  * Resolves content for the given path and updates state.
@@ -284,20 +305,16 @@ class BrowserManager {
284
305
  // Handle callback-based search
285
306
  if (searchRoute.searchCallback) {
286
307
  searchResults = await searchRoute.searchCallback({
287
- query
308
+ query,
309
+ reference: 'unknown'
288
310
  });
289
311
  }
290
- // Handle request config-based search
312
+ // Handle request config-based search via the shared layered fetch.
291
313
  else if (searchRoute.searchConfig) {
292
- const searchQueryParams = {
293
- q: query
294
- };
295
- const requestConfig = this.httpClient.mergeRequestConfig(searchRoute.searchConfig, {
296
- query: searchQueryParams
297
- });
298
314
  try {
299
- const response = await this.httpClient.executeRequest(requestConfig);
300
- searchResults = Array.isArray(response) ? response : [];
315
+ searchResults = await this.fetchSearchResults(searchRoute.searchConfig, {
316
+ q: query
317
+ });
301
318
  } catch (error) {
302
319
  console.error('Search failed:', error);
303
320
  return undefined;
@@ -323,15 +340,19 @@ class BrowserManager {
323
340
  if (!artworkConfig) {
324
341
  return content;
325
342
  }
343
+ // The shared request layer applies to artwork too — use the resolved layer
344
+ // (resolver result or static config) so a resolver-only config still works.
345
+ await this.ensureLayersResolved();
346
+ const requestConfig = this._resolvedRequest;
326
347
 
327
348
  // Transform parent artwork
328
- const parentArtworkSource = await _RequestConfigBuilder.RequestConfigBuilder.resolveArtworkSourceAsync(content, artworkConfig);
349
+ const parentArtworkSource = await _RequestConfigBuilder.RequestConfigBuilder.resolveArtworkSourceAsync(content, requestConfig, artworkConfig);
329
350
 
330
351
  // Transform children artwork
331
352
  let transformedChildren;
332
353
  if (content.children) {
333
354
  transformedChildren = await Promise.all(content.children.map(async track => {
334
- const artworkSource = await _RequestConfigBuilder.RequestConfigBuilder.resolveArtworkSourceAsync(track, artworkConfig);
355
+ const artworkSource = await _RequestConfigBuilder.RequestConfigBuilder.resolveArtworkSourceAsync(track, requestConfig, artworkConfig);
335
356
  if (artworkSource && !track.artworkSource) {
336
357
  return {
337
358
  ...track,
@@ -378,14 +399,11 @@ class BrowserManager {
378
399
  return route.browseStatic;
379
400
  }
380
401
 
381
- // Handle request config-based route
402
+ // Handle request config-based route via the layered request → browse → route
403
+ // chain (matches native's resolveRouteEntry → resolveFromConfig).
382
404
  if (route.browseConfig) {
383
- const requestConfig = this.httpClient.mergeRequestConfig(route.browseConfig, {
384
- path
385
- });
386
405
  try {
387
- const response = await this.httpClient.executeRequest(requestConfig);
388
- return response;
406
+ return await this.resolveFromConfig(this._configuration.browse, route.browseConfig, path, routeParams);
389
407
  } catch (error) {
390
408
  console.error(`Failed to resolve ${errorContext}:`, error);
391
409
  this.handleNavigationError(error, path);
@@ -395,41 +413,134 @@ class BrowserManager {
395
413
  return undefined;
396
414
  }
397
415
 
416
+ /**
417
+ * Ensures the request/browse layer configs are resolved for the current
418
+ * generation. Any present resolver is invoked once per generation and the
419
+ * result cached; a static config (no resolver) passes through unchanged.
420
+ */
421
+ async ensureLayersResolved() {
422
+ if (this._resolvedLayerGeneration === this._layerGeneration) return;
423
+ // Reuse an in-flight resolution for the same generation so concurrent
424
+ // navigations (e.g. config-set's initial navigate overlapping an explicit
425
+ // navigatePath) don't each invoke the resolver.
426
+ if (this._layerResolution?.generation === this._layerGeneration) {
427
+ return this._layerResolution.promise;
428
+ }
429
+ const generation = this._layerGeneration;
430
+ const promise = (async () => {
431
+ const cfg = this._configuration;
432
+ const resolvedRequest = cfg.requestResolver ? await cfg.requestResolver() : cfg.request;
433
+ const resolvedBrowse = cfg.browseResolver ? await cfg.browseResolver() : cfg.browse;
434
+ // Only commit if no newer generation superseded us mid-resolution.
435
+ if (this._layerGeneration === generation) {
436
+ this._resolvedRequest = resolvedRequest;
437
+ this._resolvedBrowse = resolvedBrowse;
438
+ this._resolvedLayerGeneration = generation;
439
+ }
440
+ })().catch(err => {
441
+ // A failed resolution must not wedge the generation — clear the in-flight
442
+ // cache so the next navigation retries (e.g. a transient async resolver error).
443
+ if (this._layerResolution?.generation === generation) {
444
+ this._layerResolution = undefined;
445
+ }
446
+ throw err;
447
+ });
448
+ this._layerResolution = {
449
+ generation,
450
+ promise
451
+ };
452
+ return promise;
453
+ }
454
+
455
+ /**
456
+ * Resolves content from the layered request config chain:
457
+ * `request` (shared) → `kindConfig` (browse/search) → `routeConfig` (route).
458
+ * Each layer's transform receives the previous layer's output; a layer with no
459
+ * transform merges its static fields. `routeConfig` is undefined for the
460
+ * implicit browse default; `kindConfig` is undefined for search.
461
+ *
462
+ * Mirrors native's BrowserManager.resolveFromConfig.
463
+ */
464
+ async resolveFromConfig(kindConfig, routeConfig, path, params) {
465
+ await this.ensureLayersResolved();
466
+ const merged = await _RequestConfigBuilder.RequestConfigBuilder.applyLayers({
467
+ path
468
+ }, [this._resolvedRequest,
469
+ // fall back to the route's kind config when no browse layer is configured
470
+ this._resolvedBrowse ?? kindConfig, routeConfig], params);
471
+ const response = await this.httpClient.executeRequest(merged);
472
+ return (0, _assertBrowsePageShape.assertBrowsePageShape)(response, path);
473
+ }
474
+
475
+ /**
476
+ * Fetches search results from a `searchConfig` via the layered
477
+ * `request → search` chain (search is its own kind — no browse layer). The
478
+ * query params are seeded on the base so they survive both the static merge
479
+ * and a search `transform`. Shared by `resolveSearchContent` (navigating to a
480
+ * search path) and `SearchManager` (the voice/`search` API), so the ladder
481
+ * isn't duplicated. Errors propagate to the caller.
482
+ */
483
+ async fetchSearchResults(searchConfig, queryParams) {
484
+ await this.ensureLayersResolved();
485
+ const merged = await _RequestConfigBuilder.RequestConfigBuilder.applyLayers({
486
+ path: searchConfig.path,
487
+ query: queryParams
488
+ }, [this._resolvedRequest, searchConfig], queryParams);
489
+ const response = await this.httpClient.executeRequest(merged);
490
+ return (0, _parseSearchResponse.parseSearchResponse)(response);
491
+ }
492
+
398
493
  /**
399
494
  * Resolves content for a specific path using configured routes.
400
495
  */
401
496
  async resolveContent(path) {
402
497
  const routes = this._configuration.routes;
403
- if (!routes || routes.length === 0) {
404
- return undefined;
405
- }
498
+ if (routes && routes.length > 0) {
499
+ // Convert routes array to record for SimpleRouter
500
+ const routePatterns = {};
501
+ for (const route of routes) {
502
+ // Skip special routes
503
+ if (route.path.startsWith('__')) continue;
504
+ routePatterns[route.path] = {
505
+ browseCallback: route.browseCallback,
506
+ browseConfig: route.browseConfig,
507
+ browseStatic: route.browseStatic
508
+ };
509
+ }
406
510
 
407
- // Convert routes array to record for SimpleRouter
408
- const routePatterns = {};
409
- for (const route of routes) {
410
- // Skip special routes
411
- if (route.path.startsWith('__')) continue;
412
- routePatterns[route.path] = {
413
- browseCallback: route.browseCallback,
414
- browseConfig: route.browseConfig,
415
- browseStatic: route.browseStatic
416
- };
417
- }
511
+ // Try to match route
512
+ const match = this.router.findBestMatch(path, routePatterns);
513
+ if (match) {
514
+ const [matchedPattern, routeMatch] = match;
515
+ const matchedRoute = routes.find(r => r.path === matchedPattern);
516
+ if (matchedRoute) {
517
+ return this.resolveRouteContent(matchedRoute, path, routeMatch.params, 'Route');
518
+ }
519
+ }
418
520
 
419
- // Try to match route
420
- const match = this.router.findBestMatch(path, routePatterns);
421
- if (match) {
422
- const [matchedPattern, routeMatch] = match;
423
- const matchedRoute = routes.find(r => r.path === matchedPattern);
424
- if (matchedRoute) {
425
- return this.resolveRouteContent(matchedRoute, path, routeMatch.params, 'Route');
521
+ // Fall back to the custom __default__ route ('*') if configured
522
+ const defaultRoute = routes.find(r => r.path === '__default__');
523
+ if (defaultRoute) {
524
+ return this.resolveRouteContent(defaultRoute, path, {
525
+ path
526
+ }, 'Default route');
426
527
  }
427
528
  }
428
529
 
429
- // Fall back to __default__ route
430
- const defaultRoute = routes.find(r => r.path === '__default__');
431
- if (defaultRoute) {
432
- return this.resolveRouteContent(defaultRoute, path, {}, 'Default route');
530
+ // Implicit default — no matching route, fetch the path via the layered
531
+ // request → browse chain. Only attempt this when there's something to fetch
532
+ // (a configured request or browse layer, static or resolver); otherwise
533
+ // there's no content.
534
+ if (this._configuration.request || this._configuration.requestResolver || this._configuration.browse || this._configuration.browseResolver) {
535
+ try {
536
+ return await this.resolveFromConfig(this._configuration.browse, undefined, path, {
537
+ path
538
+ });
539
+ } catch (error) {
540
+ console.error('Failed to resolve default browse content:', error);
541
+ this.handleNavigationError(error, path);
542
+ return undefined;
543
+ }
433
544
  }
434
545
  return undefined;
435
546
  }
@@ -445,8 +556,23 @@ class BrowserManager {
445
556
  const result = await this.resolveRouteContent(tabsRoute, '/', {}, 'Tabs');
446
557
  const tabs = result?.children ?? [];
447
558
 
448
- // Transform artwork URLs on tabs
449
- return _RequestConfigBuilder.RequestConfigBuilder.transformTracksArtwork(tabs, this._configuration.artwork);
559
+ // Transform artwork URLs on tabs via the async resolver so the shared
560
+ // request layer (incl. its transform) applies, matching content/search.
561
+ const artworkConfig = this._configuration.artwork;
562
+ if (!artworkConfig) return tabs;
563
+ // Resolved request layer (resolver or static), matching content/search.
564
+ await this.ensureLayersResolved();
565
+ const requestConfig = this._resolvedRequest;
566
+ return Promise.all(tabs.map(async track => {
567
+ const artworkSource = await _RequestConfigBuilder.RequestConfigBuilder.resolveArtworkSourceAsync(track, requestConfig, artworkConfig);
568
+ if (artworkSource && !track.artworkSource) {
569
+ return {
570
+ ...track,
571
+ artworkSource
572
+ };
573
+ }
574
+ return track;
575
+ }));
450
576
  }
451
577
 
452
578
  /**
@@ -1 +1 @@
1
- {"version":3,"names":["_validation","require","_RequestConfigBuilder","_SimpleRouter","_BrowserPathHelper","BrowserManager","_configuration","router","SimpleRouter","currentNavigationId","onPathChanged","onContentChanged","onTabsChanged","constructor","httpClient","favoriteManager","navigationErrorManager","handleNavigationError","error","path","message","navError","setNavigationError","code","statusCode","_path","value","hasValidConfiguration","clearNavigationError","pathToNavigate","getDefaultPath","navigate","tabs","_tabs","content","_content","configuration","queueSourcePath","_queueSourcePath","setFormatCallback","formatNavigationError","request","setBaseRequestConfig","initialPath","tabsRoute","routes","find","r","browseStatic","children","url","navigatePath","navigateTrack","track","console","warn","notifyContentChanged","navigationId","undefined","isSearchPath","startsWith","BrowserPathHelper","SEARCH_PATH_PREFIX","resolveSearchContent","resolveContent","map","src","contextualUrl","encodeURIComponent","hydrateChildren","transformArtworkForContent","queryTabs","searchPath","queryMatch","match","query","decodeURIComponent","searchRoute","searchResults","searchCallback","searchConfig","searchQueryParams","q","requestConfig","mergeRequestConfig","response","executeRequest","Array","isArray","title","artworkConfig","artwork","parentArtworkSource","RequestConfigBuilder","resolveArtworkSourceAsync","transformedChildren","Promise","all","artworkSource","resolveRouteContent","route","routeParams","errorContext","browseCallback","result","browseConfig","length","routePatterns","findBestMatch","matchedPattern","routeMatch","matchedRoute","params","defaultRoute","transformTracksArtwork","expandQueueFromContextualUrl","trackId","extractTrackId","parentPath","stripTrackId","parentResolvedTrack","playableTracks","filter","selectedIndex","findIndex","singleTrack","tracks","assertedNotNullish","resolveMediaItemsForPlayback","startIndex","startPositionMs","searchQuery","trackUrl","createSearchPath","searchTracks","selectedIdx","t","isContextual","expanded","firstTab","exports"],"sourceRoot":"../../../../src","sources":["web/browser/BrowserManager.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_validation","require","_RequestConfigBuilder","_SimpleRouter","_BrowserPathHelper","_assertBrowsePageShape","_parseSearchResponse","BrowserManager","_configuration","router","SimpleRouter","_layerGeneration","_resolvedLayerGeneration","currentNavigationId","onPathChanged","onContentChanged","onTabsChanged","constructor","httpClient","favoriteManager","navigationErrorManager","handleNavigationError","error","path","message","navError","setNavigationError","code","statusCode","_path","value","hasValidConfiguration","clearNavigationError","pathToNavigate","getDefaultPath","navigate","tabs","_tabs","content","_content","configuration","queueSourcePath","_queueSourcePath","setFormatCallback","formatNavigationError","initialPath","tabsRoute","routes","find","r","browseStatic","children","url","navigatePath","navigateTrack","track","console","warn","notifyContentChanged","invalidateAllContent","navigationId","undefined","isSearchPath","startsWith","BrowserPathHelper","SEARCH_PATH_PREFIX","resolveSearchContent","resolveContent","map","src","contextualUrl","encodeURIComponent","hydrateChildren","transformArtworkForContent","queryTabs","searchPath","queryMatch","match","query","decodeURIComponent","searchRoute","searchResults","searchCallback","reference","searchConfig","fetchSearchResults","q","title","artworkConfig","artwork","ensureLayersResolved","requestConfig","_resolvedRequest","parentArtworkSource","RequestConfigBuilder","resolveArtworkSourceAsync","transformedChildren","Promise","all","artworkSource","resolveRouteContent","route","routeParams","errorContext","browseCallback","result","browseConfig","resolveFromConfig","browse","_layerResolution","generation","promise","cfg","resolvedRequest","requestResolver","request","resolvedBrowse","browseResolver","_resolvedBrowse","catch","err","kindConfig","routeConfig","params","merged","applyLayers","response","executeRequest","assertBrowsePageShape","queryParams","parseSearchResponse","length","routePatterns","findBestMatch","matchedPattern","routeMatch","matchedRoute","defaultRoute","expandQueueFromContextualUrl","trackId","extractTrackId","parentPath","stripTrackId","parentResolvedTrack","playableTracks","filter","selectedIndex","findIndex","singleTrack","tracks","assertedNotNullish","resolveMediaItemsForPlayback","startIndex","startPositionMs","searchQuery","trackUrl","createSearchPath","searchTracks","selectedIdx","t","isContextual","expanded","firstTab","exports"],"sourceRoot":"../../../../src","sources":["web/browser/BrowserManager.ts"],"mappings":"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","ignoreList":[]}
@@ -9,7 +9,9 @@ const ERROR_TITLES = {
9
9
  'http-error': 'Server Error',
10
10
  'content-not-found': 'Content Not Found',
11
11
  'callback-error': 'Error',
12
- 'unknown-error': 'Error'
12
+ 'unknown-error': 'Error',
13
+ 'empty-content': 'Nothing here',
14
+ 'timeout': "Couldn't load"
13
15
  };
14
16
 
15
17
  /**
@@ -1 +1 @@
1
- {"version":3,"names":["ERROR_TITLES","NavigationErrorManager","onNavigationError","onFormattedNavigationError","setFormatCallback","callback","formatCallback","clearNavigationError","_navigationError","undefined","_formattedNavigationError","error","setNavigationError","code","message","path","statusCode","navError","statusCodeSuccess","defaultFormatted","title","customFormatted","console","getNavigationError","getFormattedNavigationError","exports"],"sourceRoot":"../../../../src","sources":["web/browser/NavigationErrorManager.ts"],"mappings":";;;;;;AAQA,MAAMA,YAAiD,GAAG;EACxD,eAAe,EAAE,eAAe;EAChC,YAAY,EAAE,cAAc;EAC5B,mBAAmB,EAAE,mBAAmB;EACxC,gBAAgB,EAAE,OAAO;EACzB,eAAe,EAAE;AACnB,CAAC;;AAED;AACA;AACA;AACA;AACO,MAAMC,sBAAsB,CAAC;EAKlC;EACAC,iBAAiB,GAAyCA,CAAA,KAAM,CAAC,CAAC;EAClEC,0BAA0B,GAEdA,CAAA,KAAM,CAAC,CAAC;;EAEpB;AACF;AACA;EACEC,iBAAiBA,CACfC,QAA6D,EACvD;IACN,IAAI,CAACC,cAAc,GAAGD,QAAQ;EAChC;;EAEA;AACF;AACA;EACEE,oBAAoBA,CAAA,EAAS;IAC3B,IACE,IAAI,CAACC,gBAAgB,KAAKC,SAAS,IACnC,IAAI,CAACC,yBAAyB,KAAKD,SAAS,EAC5C;MACA,IAAI,CAACD,gBAAgB,GAAGC,SAAS;MACjC,IAAI,CAACC,yBAAyB,GAAGD,SAAS;MAC1C,IAAI,CAACP,iBAAiB,CAAC;QAAES,KAAK,EAAEF;MAAU,CAAC,CAAC;MAC5C,IAAI,CAACN,0BAA0B,CAACM,SAAS,CAAC;IAC5C;EACF;;EAEA;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;EACEG,kBAAkBA,CAChBC,IAAyB,EACzBC,OAAe,EACfC,IAAa,EACbC,UAAmB,EACb;IACN,MAAMC,QAAyB,GAAG;MAChCJ,IAAI;MACJC,OAAO;MACPE,UAAU;MACVE,iBAAiB,EAAET;IACrB,CAAC;IACD,IAAI,CAACD,gBAAgB,GAAGS,QAAQ;IAChC,IAAI,CAACf,iBAAiB,CAAC;MAAES,KAAK,EAAEM;IAAS,CAAC,CAAC;;IAE3C;IACA,MAAME,gBAA0C,GAAG;MACjDC,KAAK,EAAEpB,YAAY,CAACa,IAAI,CAAC;MACzBC;IACF,CAAC;;IAED;IACA,IAAI,IAAI,CAACR,cAAc,IAAIS,IAAI,EAAE;MAC/B,IAAI;QACF,MAAMM,eAAe,GAAG,IAAI,CAACf,cAAc,CAAC;UAC1CK,KAAK,EAAEM,QAAQ;UACfE,gBAAgB;UAChBJ;QACF,CAAC,CAAC;QACF,IAAI,CAACL,yBAAyB,GAAGW,eAAe,IAAIF,gBAAgB;MACtE,CAAC,CAAC,OAAOR,KAAK,EAAE;QACdW,OAAO,CAACX,KAAK,CAAC,0CAA0C,EAAEA,KAAK,CAAC;QAChE,IAAI,CAACD,yBAAyB,GAAGS,gBAAgB;MACnD;IACF,CAAC,MAAM;MACL,IAAI,CAACT,yBAAyB,GAAGS,gBAAgB;IACnD;IAEA,IAAI,CAAChB,0BAA0B,CAAC,IAAI,CAACO,yBAAyB,CAAC;EACjE;;EAEA;AACF;AACA;EACEa,kBAAkBA,CAAA,EAAgC;IAChD,OAAO,IAAI,CAACf,gBAAgB;EAC9B;;EAEA;AACF;AACA;EACEgB,2BAA2BA,CAAA,EAAyC;IAClE,OAAO,IAAI,CAACd,yBAAyB;EACvC;AACF;AAACe,OAAA,CAAAxB,sBAAA,GAAAA,sBAAA","ignoreList":[]}
1
+ {"version":3,"names":["ERROR_TITLES","NavigationErrorManager","onNavigationError","onFormattedNavigationError","setFormatCallback","callback","formatCallback","clearNavigationError","_navigationError","undefined","_formattedNavigationError","error","setNavigationError","code","message","path","statusCode","navError","statusCodeSuccess","defaultFormatted","title","customFormatted","console","getNavigationError","getFormattedNavigationError","exports"],"sourceRoot":"../../../../src","sources":["web/browser/NavigationErrorManager.ts"],"mappings":";;;;;;AAQA,MAAMA,YAAiD,GAAG;EACxD,eAAe,EAAE,eAAe;EAChC,YAAY,EAAE,cAAc;EAC5B,mBAAmB,EAAE,mBAAmB;EACxC,gBAAgB,EAAE,OAAO;EACzB,eAAe,EAAE,OAAO;EACxB,eAAe,EAAE,cAAc;EAC/B,SAAS,EAAE;AACb,CAAC;;AAED;AACA;AACA;AACA;AACO,MAAMC,sBAAsB,CAAC;EAKlC;EACAC,iBAAiB,GAAyCA,CAAA,KAAM,CAAC,CAAC;EAClEC,0BAA0B,GAEdA,CAAA,KAAM,CAAC,CAAC;;EAEpB;AACF;AACA;EACEC,iBAAiBA,CACfC,QAA6D,EACvD;IACN,IAAI,CAACC,cAAc,GAAGD,QAAQ;EAChC;;EAEA;AACF;AACA;EACEE,oBAAoBA,CAAA,EAAS;IAC3B,IACE,IAAI,CAACC,gBAAgB,KAAKC,SAAS,IACnC,IAAI,CAACC,yBAAyB,KAAKD,SAAS,EAC5C;MACA,IAAI,CAACD,gBAAgB,GAAGC,SAAS;MACjC,IAAI,CAACC,yBAAyB,GAAGD,SAAS;MAC1C,IAAI,CAACP,iBAAiB,CAAC;QAAES,KAAK,EAAEF;MAAU,CAAC,CAAC;MAC5C,IAAI,CAACN,0BAA0B,CAACM,SAAS,CAAC;IAC5C;EACF;;EAEA;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;EACEG,kBAAkBA,CAChBC,IAAyB,EACzBC,OAAe,EACfC,IAAa,EACbC,UAAmB,EACb;IACN,MAAMC,QAAyB,GAAG;MAChCJ,IAAI;MACJC,OAAO;MACPE,UAAU;MACVE,iBAAiB,EAAET;IACrB,CAAC;IACD,IAAI,CAACD,gBAAgB,GAAGS,QAAQ;IAChC,IAAI,CAACf,iBAAiB,CAAC;MAAES,KAAK,EAAEM;IAAS,CAAC,CAAC;;IAE3C;IACA,MAAME,gBAA0C,GAAG;MACjDC,KAAK,EAAEpB,YAAY,CAACa,IAAI,CAAC;MACzBC;IACF,CAAC;;IAED;IACA,IAAI,IAAI,CAACR,cAAc,IAAIS,IAAI,EAAE;MAC/B,IAAI;QACF,MAAMM,eAAe,GAAG,IAAI,CAACf,cAAc,CAAC;UAC1CK,KAAK,EAAEM,QAAQ;UACfE,gBAAgB;UAChBJ;QACF,CAAC,CAAC;QACF,IAAI,CAACL,yBAAyB,GAAGW,eAAe,IAAIF,gBAAgB;MACtE,CAAC,CAAC,OAAOR,KAAK,EAAE;QACdW,OAAO,CAACX,KAAK,CAAC,0CAA0C,EAAEA,KAAK,CAAC;QAChE,IAAI,CAACD,yBAAyB,GAAGS,gBAAgB;MACnD;IACF,CAAC,MAAM;MACL,IAAI,CAACT,yBAAyB,GAAGS,gBAAgB;IACnD;IAEA,IAAI,CAAChB,0BAA0B,CAAC,IAAI,CAACO,yBAAyB,CAAC;EACjE;;EAEA;AACF;AACA;EACEa,kBAAkBA,CAAA,EAAgC;IAChD,OAAO,IAAI,CAACf,gBAAgB;EAC9B;;EAEA;AACF;AACA;EACEgB,2BAA2BA,CAAA,EAAyC;IAClE,OAAO,IAAI,CAACd,yBAAyB;EACvC;AACF;AAACe,OAAA,CAAAxB,sBAAA,GAAAA,sBAAA","ignoreList":[]}
@@ -11,9 +11,8 @@ var _RequestConfigBuilder = require("../http/RequestConfigBuilder");
11
11
  * Matches Android's search architecture.
12
12
  */
13
13
  class SearchManager {
14
- constructor(browserManager, httpClient) {
14
+ constructor(browserManager) {
15
15
  this.browserManager = browserManager;
16
- this.httpClient = httpClient;
17
16
  }
18
17
 
19
18
  /**
@@ -42,17 +41,17 @@ class SearchManager {
42
41
  q: params.query
43
42
  };
44
43
  if (params.mode) searchQueryParams.mode = params.mode;
44
+ if (params.reference === 'my') searchQueryParams.reference = 'my';
45
45
  if (params.genre) searchQueryParams.genre = params.genre;
46
46
  if (params.artist) searchQueryParams.artist = params.artist;
47
47
  if (params.album) searchQueryParams.album = params.album;
48
48
  if (params.title) searchQueryParams.title = params.title;
49
49
  if (params.playlist) searchQueryParams.playlist = params.playlist;
50
- const requestConfig = this.httpClient.mergeRequestConfig(searchRoute.searchConfig, {
51
- query: searchQueryParams
52
- });
50
+
51
+ // Delegate to the shared layered fetch (request → search) on BrowserManager
52
+ // so the ladder lives in one place.
53
53
  try {
54
- const response = await this.httpClient.executeRequest(requestConfig);
55
- results = Array.isArray(response) ? response : [];
54
+ results = await this.browserManager.fetchSearchResults(searchRoute.searchConfig, searchQueryParams);
56
55
  } catch (error) {
57
56
  console.error('Search failed:', error);
58
57
  return [];
@@ -60,10 +59,13 @@ class SearchManager {
60
59
  }
61
60
 
62
61
  // Transform artwork URLs on search results using async method with full Track access
63
- const artworkConfig = this.browserManager.configuration.artwork;
62
+ const {
63
+ request: requestConfig,
64
+ artwork: artworkConfig
65
+ } = this.browserManager.configuration;
64
66
  if (artworkConfig) {
65
67
  results = await Promise.all(results.map(async track => {
66
- const artworkSource = await _RequestConfigBuilder.RequestConfigBuilder.resolveArtworkSourceAsync(track, artworkConfig);
68
+ const artworkSource = await _RequestConfigBuilder.RequestConfigBuilder.resolveArtworkSourceAsync(track, requestConfig, artworkConfig);
67
69
  if (artworkSource && !track.artworkSource) {
68
70
  return {
69
71
  ...track,
@@ -1 +1 @@
1
- {"version":3,"names":["_RequestConfigBuilder","require","SearchManager","constructor","browserManager","httpClient","search","params","searchRoute","configuration","routes","find","r","path","results","searchCallback","searchConfig","searchQueryParams","q","query","mode","genre","artist","album","title","playlist","requestConfig","mergeRequestConfig","response","executeRequest","Array","isArray","error","console","artworkConfig","artwork","Promise","all","map","track","artworkSource","RequestConfigBuilder","resolveArtworkSourceAsync","exports"],"sourceRoot":"../../../../src","sources":["web/browser/SearchManager.ts"],"mappings":";;;;;;AAGA,IAAAA,qBAAA,GAAAC,OAAA;AAEA;AACA;AACA;AACA;AACA;AACO,MAAMC,aAAa,CAAC;EACzBC,WAAWA,CACDC,cAA8B,EAC9BC,UAAsB,EAC9B;IAAA,KAFQD,cAA8B,GAA9BA,cAA8B;IAAA,KAC9BC,UAAsB,GAAtBA,UAAsB;EAC7B;;EAEH;AACF;AACA;AACA;AACA;AACA;AACA;EACE,MAAMC,MAAMA,CAACC,MAAoB,EAAoB;IACnD;IACA,MAAMC,WAAW,GAAG,IAAI,CAACJ,cAAc,CAACK,aAAa,CAACC,MAAM,EAAEC,IAAI,CAC/DC,CAAC,IAAKA,CAAC,CAACC,IAAI,KAAK,YACpB,CAAC;IACD,IAAI,CAACL,WAAW,EAAE;MAChB,OAAO,EAAE;IACX;IAEA,IAAIM,OAAgB,GAAG,EAAE;;IAEzB;IACA,IAAIN,WAAW,CAACO,cAAc,EAAE;MAC9BD,OAAO,GAAG,MAAMN,WAAW,CAACO,cAAc,CAACR,MAAM,CAAC;IACpD;IACA;IAAA,KACK,IAAIC,WAAW,CAACQ,YAAY,EAAE;MACjC;MACA,MAAMC,iBAAyC,GAAG;QAChDC,CAAC,EAAEX,MAAM,CAACY;MACZ,CAAC;MACD,IAAIZ,MAAM,CAACa,IAAI,EAAEH,iBAAiB,CAACG,IAAI,GAAGb,MAAM,CAACa,IAAI;MACrD,IAAIb,MAAM,CAACc,KAAK,EAAEJ,iBAAiB,CAACI,KAAK,GAAGd,MAAM,CAACc,KAAK;MACxD,IAAId,MAAM,CAACe,MAAM,EAAEL,iBAAiB,CAACK,MAAM,GAAGf,MAAM,CAACe,MAAM;MAC3D,IAAIf,MAAM,CAACgB,KAAK,EAAEN,iBAAiB,CAACM,KAAK,GAAGhB,MAAM,CAACgB,KAAK;MACxD,IAAIhB,MAAM,CAACiB,KAAK,EAAEP,iBAAiB,CAACO,KAAK,GAAGjB,MAAM,CAACiB,KAAK;MACxD,IAAIjB,MAAM,CAACkB,QAAQ,EAAER,iBAAiB,CAACQ,QAAQ,GAAGlB,MAAM,CAACkB,QAAQ;MAEjE,MAAMC,aAAa,GAAG,IAAI,CAACrB,UAAU,CAACsB,kBAAkB,CACtDnB,WAAW,CAACQ,YAAY,EACxB;QACEG,KAAK,EAAEF;MACT,CACF,CAAC;MAED,IAAI;QACF,MAAMW,QAAQ,GAAG,MAAM,IAAI,CAACvB,UAAU,CAACwB,cAAc,CAACH,aAAa,CAAC;QACpEZ,OAAO,GAAGgB,KAAK,CAACC,OAAO,CAACH,QAAQ,CAAC,GAAIA,QAAQ,GAAe,EAAE;MAChE,CAAC,CAAC,OAAOI,KAAK,EAAE;QACdC,OAAO,CAACD,KAAK,CAAC,gBAAgB,EAAEA,KAAK,CAAC;QACtC,OAAO,EAAE;MACX;IACF;;IAEA;IACA,MAAME,aAAa,GAAG,IAAI,CAAC9B,cAAc,CAACK,aAAa,CAAC0B,OAAO;IAC/D,IAAID,aAAa,EAAE;MACjBpB,OAAO,GAAG,MAAMsB,OAAO,CAACC,GAAG,CACzBvB,OAAO,CAACwB,GAAG,CAAC,MAAOC,KAAK,IAAK;QAC3B,MAAMC,aAAa,GACjB,MAAMC,0CAAoB,CAACC,yBAAyB,CAClDH,KAAK,EACLL,aACF,CAAC;QACH,IAAIM,aAAa,IAAI,CAACD,KAAK,CAACC,aAAa,EAAE;UACzC,OAAO;YAAE,GAAGD,KAAK;YAAEC;UAAc,CAAC;QACpC;QACA,OAAOD,KAAK;MACd,CAAC,CACH,CAAC;IACH;IAEA,OAAOzB,OAAO;EAChB;AACF;AAAC6B,OAAA,CAAAzC,aAAA,GAAAA,aAAA","ignoreList":[]}
1
+ {"version":3,"names":["_RequestConfigBuilder","require","SearchManager","constructor","browserManager","search","params","searchRoute","configuration","routes","find","r","path","results","searchCallback","searchConfig","searchQueryParams","q","query","mode","reference","genre","artist","album","title","playlist","fetchSearchResults","error","console","request","requestConfig","artwork","artworkConfig","Promise","all","map","track","artworkSource","RequestConfigBuilder","resolveArtworkSourceAsync","exports"],"sourceRoot":"../../../../src","sources":["web/browser/SearchManager.ts"],"mappings":";;;;;;AAEA,IAAAA,qBAAA,GAAAC,OAAA;AAEA;AACA;AACA;AACA;AACA;AACO,MAAMC,aAAa,CAAC;EACzBC,WAAWA,CAASC,cAA8B,EAAE;IAAA,KAAhCA,cAA8B,GAA9BA,cAA8B;EAAG;;EAErD;AACF;AACA;AACA;AACA;AACA;AACA;EACE,MAAMC,MAAMA,CAACC,MAAoB,EAAoB;IACnD;IACA,MAAMC,WAAW,GAAG,IAAI,CAACH,cAAc,CAACI,aAAa,CAACC,MAAM,EAAEC,IAAI,CAC/DC,CAAC,IAAKA,CAAC,CAACC,IAAI,KAAK,YACpB,CAAC;IACD,IAAI,CAACL,WAAW,EAAE;MAChB,OAAO,EAAE;IACX;IAEA,IAAIM,OAAgB,GAAG,EAAE;;IAEzB;IACA,IAAIN,WAAW,CAACO,cAAc,EAAE;MAC9BD,OAAO,GAAG,MAAMN,WAAW,CAACO,cAAc,CAACR,MAAM,CAAC;IACpD;IACA;IAAA,KACK,IAAIC,WAAW,CAACQ,YAAY,EAAE;MACjC;MACA,MAAMC,iBAAyC,GAAG;QAChDC,CAAC,EAAEX,MAAM,CAACY;MACZ,CAAC;MACD,IAAIZ,MAAM,CAACa,IAAI,EAAEH,iBAAiB,CAACG,IAAI,GAAGb,MAAM,CAACa,IAAI;MACrD,IAAIb,MAAM,CAACc,SAAS,KAAK,IAAI,EAAEJ,iBAAiB,CAACI,SAAS,GAAG,IAAI;MACjE,IAAId,MAAM,CAACe,KAAK,EAAEL,iBAAiB,CAACK,KAAK,GAAGf,MAAM,CAACe,KAAK;MACxD,IAAIf,MAAM,CAACgB,MAAM,EAAEN,iBAAiB,CAACM,MAAM,GAAGhB,MAAM,CAACgB,MAAM;MAC3D,IAAIhB,MAAM,CAACiB,KAAK,EAAEP,iBAAiB,CAACO,KAAK,GAAGjB,MAAM,CAACiB,KAAK;MACxD,IAAIjB,MAAM,CAACkB,KAAK,EAAER,iBAAiB,CAACQ,KAAK,GAAGlB,MAAM,CAACkB,KAAK;MACxD,IAAIlB,MAAM,CAACmB,QAAQ,EAAET,iBAAiB,CAACS,QAAQ,GAAGnB,MAAM,CAACmB,QAAQ;;MAEjE;MACA;MACA,IAAI;QACFZ,OAAO,GAAG,MAAM,IAAI,CAACT,cAAc,CAACsB,kBAAkB,CACpDnB,WAAW,CAACQ,YAAY,EACxBC,iBACF,CAAC;MACH,CAAC,CAAC,OAAOW,KAAK,EAAE;QACdC,OAAO,CAACD,KAAK,CAAC,gBAAgB,EAAEA,KAAK,CAAC;QACtC,OAAO,EAAE;MACX;IACF;;IAEA;IACA,MAAM;MAAEE,OAAO,EAAEC,aAAa;MAAEC,OAAO,EAAEC;IAAc,CAAC,GACtD,IAAI,CAAC5B,cAAc,CAACI,aAAa;IACnC,IAAIwB,aAAa,EAAE;MACjBnB,OAAO,GAAG,MAAMoB,OAAO,CAACC,GAAG,CACzBrB,OAAO,CAACsB,GAAG,CAAC,MAAOC,KAAK,IAAK;QAC3B,MAAMC,aAAa,GACjB,MAAMC,0CAAoB,CAACC,yBAAyB,CAClDH,KAAK,EACLN,aAAa,EACbE,aACF,CAAC;QACH,IAAIK,aAAa,IAAI,CAACD,KAAK,CAACC,aAAa,EAAE;UACzC,OAAO;YAAE,GAAGD,KAAK;YAAEC;UAAc,CAAC;QACpC;QACA,OAAOD,KAAK;MACd,CAAC,CACH,CAAC;IACH;IAEA,OAAOvB,OAAO;EAChB;AACF;AAAC2B,OAAA,CAAAtC,aAAA,GAAAA,aAAA","ignoreList":[]}
@@ -0,0 +1,22 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.assertBrowsePageShape = assertBrowsePageShape;
7
+ /**
8
+ * Guards the cast of a browse endpoint's body to a page object. Catches the
9
+ * most common shape mistake — returning a bare Track[] — with an actionable
10
+ * message instead of a blank screen downstream. Browse, tabs, and search
11
+ * endpoints all return the page shape; only `children`'s meaning differs.
12
+ */
13
+ function assertBrowsePageShape(response, path) {
14
+ if (Array.isArray(response)) {
15
+ throw new Error(`Browse endpoint for "${path}" returned a JSON array; expected a ` + `page object { title, children?: Track[] }. Wrap the rows in a ` + `\`children\` array.`);
16
+ }
17
+ if (response === null || typeof response !== 'object') {
18
+ throw new Error(`Browse endpoint for "${path}" returned ${JSON.stringify(response)}; ` + `expected a page object { title, children?: Track[] }.`);
19
+ }
20
+ return response;
21
+ }
22
+ //# sourceMappingURL=assertBrowsePageShape.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["assertBrowsePageShape","response","path","Array","isArray","Error","JSON","stringify"],"sourceRoot":"../../../../src","sources":["web/browser/assertBrowsePageShape.ts"],"mappings":";;;;;;AAEA;AACA;AACA;AACA;AACA;AACA;AACO,SAASA,qBAAqBA,CACnCC,QAAiB,EACjBC,IAAY,EACG;EACf,IAAIC,KAAK,CAACC,OAAO,CAACH,QAAQ,CAAC,EAAE;IAC3B,MAAM,IAAII,KAAK,CACb,wBAAwBH,IAAI,sCAAsC,GAChE,gEAAgE,GAChE,qBACJ,CAAC;EACH;EACA,IAAID,QAAQ,KAAK,IAAI,IAAI,OAAOA,QAAQ,KAAK,QAAQ,EAAE;IACrD,MAAM,IAAII,KAAK,CACb,wBAAwBH,IAAI,cAAcI,IAAI,CAACC,SAAS,CAACN,QAAQ,CAAC,IAAI,GACpE,uDACJ,CAAC;EACH;EACA,OAAOA,QAAQ;AACjB","ignoreList":[]}
@@ -0,0 +1,41 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.classifyTrackNavigation = classifyTrackNavigation;
7
+ var _BrowserPathHelper = require("../util/BrowserPathHelper");
8
+ /**
9
+ * How a selected track should be navigated, decided purely from its shape:
10
+ * - `contextual` — a playable track carrying its parent queue context in a
11
+ * contextual URL (`{parentPath}?__trackId={src}`); expand/skip within that queue.
12
+ * - `browse` — a browsable track (has a `url` that isn't contextual); drill in.
13
+ * - `playable` — a bare playable track (`src`, no `url`); load and play it alone.
14
+ * - `invalid` — neither `url` nor `src`; nothing to do.
15
+ */
16
+
17
+ /**
18
+ * Pure classifier for {@link Track} navigation — the web analog of iOS's
19
+ * TrackSelector decision tree. Executing the chosen action stays with the
20
+ * caller; this only decides which action applies.
21
+ */
22
+ function classifyTrackNavigation(track) {
23
+ const url = track.url;
24
+ if (url && _BrowserPathHelper.BrowserPathHelper.isContextual(url)) {
25
+ return {
26
+ kind: 'contextual',
27
+ parentPath: _BrowserPathHelper.BrowserPathHelper.stripTrackId(url),
28
+ trackId: _BrowserPathHelper.BrowserPathHelper.extractTrackId(url)
29
+ };
30
+ }
31
+ if (url) return {
32
+ kind: 'browse'
33
+ };
34
+ if (track.src) return {
35
+ kind: 'playable'
36
+ };
37
+ return {
38
+ kind: 'invalid'
39
+ };
40
+ }
41
+ //# sourceMappingURL=classifyTrackNavigation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_BrowserPathHelper","require","classifyTrackNavigation","track","url","BrowserPathHelper","isContextual","kind","parentPath","stripTrackId","trackId","extractTrackId","src"],"sourceRoot":"../../../../src","sources":["web/browser/classifyTrackNavigation.ts"],"mappings":";;;;;;AACA,IAAAA,kBAAA,GAAAC,OAAA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAOA;AACA;AACA;AACA;AACA;AACO,SAASC,uBAAuBA,CAACC,KAAY,EAAmB;EACrE,MAAMC,GAAG,GAAGD,KAAK,CAACC,GAAG;EACrB,IAAIA,GAAG,IAAIC,oCAAiB,CAACC,YAAY,CAACF,GAAG,CAAC,EAAE;IAC9C,OAAO;MACLG,IAAI,EAAE,YAAY;MAClBC,UAAU,EAAEH,oCAAiB,CAACI,YAAY,CAACL,GAAG,CAAC;MAC/CM,OAAO,EAAEL,oCAAiB,CAACM,cAAc,CAACP,GAAG;IAC/C,CAAC;EACH;EACA,IAAIA,GAAG,EAAE,OAAO;IAAEG,IAAI,EAAE;EAAS,CAAC;EAClC,IAAIJ,KAAK,CAACS,GAAG,EAAE,OAAO;IAAEL,IAAI,EAAE;EAAW,CAAC;EAC1C,OAAO;IAAEA,IAAI,EAAE;EAAU,CAAC;AAC5B","ignoreList":[]}