react-native-audio-browser 0.2.0-next.2 → 0.2.0-next.21

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 (660) hide show
  1. package/README.md +35 -21
  2. package/android/build.gradle +35 -12
  3. package/android/gradle.properties +2 -2
  4. package/android/src/main/AndroidManifest.xml +3 -1
  5. package/android/src/main/java/com/audiobrowser/AudioBrowser.kt +389 -164
  6. package/android/src/main/java/com/audiobrowser/AudioBrowserLifecycleModule.kt +38 -0
  7. package/android/src/main/java/com/audiobrowser/AudioBrowserPackage.kt +18 -2
  8. package/android/src/main/java/com/audiobrowser/ServiceBinding.kt +48 -0
  9. package/android/src/main/java/com/audiobrowser/browser/BrowserManager.kt +315 -213
  10. package/android/src/main/java/com/audiobrowser/browser/BrowserUrlResolution.kt +24 -5
  11. package/android/src/main/java/com/audiobrowser/browser/InertStyleDiagnostic.kt +267 -0
  12. package/android/src/main/java/com/audiobrowser/browser/JsonModels.kt +97 -58
  13. package/android/src/main/java/com/audiobrowser/browser/SectionScope.kt +70 -29
  14. package/android/src/main/java/com/audiobrowser/browser/StyleResolver.kt +60 -0
  15. package/android/src/main/java/com/audiobrowser/extension/ResolvedTrackExt.kt +20 -7
  16. package/android/src/main/java/com/audiobrowser/extension/TappedTrack.kt +20 -0
  17. package/android/src/main/java/com/audiobrowser/extension/TrackIdentity.kt +15 -0
  18. package/android/src/main/java/com/audiobrowser/http/HttpClient.kt +20 -3
  19. package/android/src/main/java/com/audiobrowser/model/IcyTitle.kt +24 -0
  20. package/android/src/main/java/com/audiobrowser/model/PlaybackMetadata.kt +10 -6
  21. package/android/src/main/java/com/audiobrowser/model/PlayerUpdateOptions.kt +12 -12
  22. package/android/src/main/java/com/audiobrowser/player/CapabilityControls.kt +111 -58
  23. package/android/src/main/java/com/audiobrowser/player/CrossOriginHeaderStripper.kt +77 -0
  24. package/android/src/main/java/com/audiobrowser/player/MediaFactory.kt +28 -10
  25. package/android/src/main/java/com/audiobrowser/player/MediaSessionCallback.kt +509 -230
  26. package/android/src/main/java/com/audiobrowser/player/MediaSessionCommandManager.kt +218 -252
  27. package/android/src/main/java/com/audiobrowser/player/NowPlayingUpdater.kt +21 -25
  28. package/android/src/main/java/com/audiobrowser/player/PlaybackStateStore.kt +113 -78
  29. package/android/src/main/java/com/audiobrowser/player/Player.kt +81 -38
  30. package/android/src/main/java/com/audiobrowser/player/PlayerCapabilitiesExt.kt +2 -15
  31. package/android/src/main/java/com/audiobrowser/player/PlayerListener.kt +1 -1
  32. package/android/src/main/java/com/audiobrowser/player/RetryLoadErrorHandlingPolicy.kt +2 -1
  33. package/android/src/main/java/com/audiobrowser/player/ShuffleOrderLedBy.kt +30 -0
  34. package/android/src/main/java/com/audiobrowser/tls/AiaCertChaser.kt +67 -11
  35. package/android/src/main/java/com/audiobrowser/tls/AiaChasingExtendedTrustManager.kt +168 -0
  36. package/android/src/main/java/com/audiobrowser/tls/AiaChasingTrustManager.kt +58 -14
  37. package/android/src/main/java/com/audiobrowser/tls/AiaTls.kt +35 -7
  38. package/android/src/main/java/com/audiobrowser/tls/CachingCertificateFetcher.kt +278 -59
  39. package/android/src/main/java/com/audiobrowser/util/ArtworkVariant.kt +7 -9
  40. package/android/src/main/java/com/audiobrowser/util/BrowserPathHelper.kt +56 -40
  41. package/android/src/main/java/com/audiobrowser/util/MediaExtrasBuilder.kt +28 -23
  42. package/android/src/main/java/com/audiobrowser/util/StyleWire.kt +108 -0
  43. package/android/src/main/java/com/audiobrowser/util/TrackFactory.kt +56 -52
  44. package/android/src/main/res/values/strings.xml +25 -5
  45. package/android/src/test/java/com/audiobrowser/ServiceBindingTest.kt +87 -0
  46. package/android/src/test/java/com/audiobrowser/TestFixtures.kt +119 -33
  47. package/android/src/test/java/com/audiobrowser/browser/BrowserManagerFavoritesTest.kt +153 -0
  48. package/android/src/test/java/com/audiobrowser/browser/BrowserManagerLayerResolutionTest.kt +15 -0
  49. package/android/src/test/java/com/audiobrowser/browser/BrowserManagerTest.kt +346 -8
  50. package/android/src/test/java/com/audiobrowser/browser/BrowserUrlResolutionTest.kt +38 -0
  51. package/android/src/test/java/com/audiobrowser/browser/InertStyleDiagnosticTest.kt +277 -0
  52. package/android/src/test/java/com/audiobrowser/browser/JsonArtworkTest.kt +3 -2
  53. package/android/src/test/java/com/audiobrowser/browser/JsonStyleTest.kt +147 -0
  54. package/android/src/test/java/com/audiobrowser/browser/SectionScopeTest.kt +128 -55
  55. package/android/src/test/java/com/audiobrowser/browser/StyleResolverTest.kt +154 -0
  56. package/android/src/test/java/com/audiobrowser/extension/TappedTrackTest.kt +43 -0
  57. package/android/src/test/java/com/audiobrowser/extension/TrackIdentityTest.kt +41 -0
  58. package/android/src/test/java/com/audiobrowser/model/IcyTitleTest.kt +49 -0
  59. package/android/src/test/java/com/audiobrowser/player/BrowseTilesTest.kt +385 -0
  60. package/android/src/test/java/com/audiobrowser/player/CapabilityControlsTest.kt +101 -58
  61. package/android/src/test/java/com/audiobrowser/player/CrossOriginHeaderStripperTest.kt +94 -0
  62. package/android/src/test/java/com/audiobrowser/player/MediaSessionSlotMappingTest.kt +45 -0
  63. package/android/src/test/java/com/audiobrowser/player/NowPlayingUpdaterTest.kt +42 -2
  64. package/android/src/test/java/com/audiobrowser/player/PlaybackErrorClassifierTest.kt +3 -4
  65. package/android/src/test/java/com/audiobrowser/player/PlaybackStateStoreTrackJsonTest.kt +55 -0
  66. package/android/src/test/java/com/audiobrowser/player/RetryLoadErrorHandlingPolicyTest.kt +3 -3
  67. package/android/src/test/java/com/audiobrowser/player/ShuffleOrderLedByTest.kt +79 -0
  68. package/android/src/test/java/com/audiobrowser/tls/AiaCertChaserTest.kt +197 -7
  69. package/android/src/test/java/com/audiobrowser/tls/AiaChasingTrustManagerTest.kt +325 -4
  70. package/android/src/test/java/com/audiobrowser/tls/CachingCertificateFetcherCallSiteTest.kt +322 -0
  71. package/android/src/test/java/com/audiobrowser/tls/CachingCertificateFetcherTest.kt +83 -0
  72. package/android/src/test/java/com/audiobrowser/util/BrowserPathHelperTest.kt +41 -16
  73. package/android/src/test/java/com/audiobrowser/util/MediaExtrasBuilderTest.kt +162 -0
  74. package/android/src/test/java/com/audiobrowser/util/TrackFactoryMediaIdTest.kt +7 -7
  75. package/ios/Browser/BrowserConfig.swift +102 -5
  76. package/ios/Browser/BrowserManager+URLResolution.swift +18 -14
  77. package/ios/Browser/BrowserManager.swift +230 -205
  78. package/ios/Browser/BrowserPathHelper.swift +44 -44
  79. package/ios/Browser/InertStyleDiagnostic.swift +279 -0
  80. package/ios/Browser/JsonModels.swift +264 -106
  81. package/ios/Browser/SearchDrillIn.swift +7 -7
  82. package/ios/Browser/SectionPresentation.swift +64 -0
  83. package/ios/Browser/SectionScope.swift +58 -24
  84. package/ios/Browser/StyleResolver.swift +58 -0
  85. package/ios/Browser/TabBarEntries.swift +9 -3
  86. package/ios/Browser/TrackIdTemplate.swift +37 -0
  87. package/ios/CarPlay/CarPlayArtworkResolver.swift +8 -7
  88. package/ios/CarPlay/CarPlayController.swift +227 -85
  89. package/ios/CarPlay/CarPlayImageLoader.swift +42 -20
  90. package/ios/CarPlay/CarPlayListItemFactory.swift +289 -84
  91. package/ios/CarPlay/CarPlayNowPlayingManager.swift +15 -12
  92. package/ios/CarPlay/RNABMediaAddHandler.swift +6 -6
  93. package/ios/CarPlay/RNABMediaAffinityHandler.swift +2 -2
  94. package/ios/CarPlay/RNABMediaIntentHandler.swift +16 -16
  95. package/ios/Extension/Capability+RemoteCommand.swift +1 -1
  96. package/ios/Extension/PlayerCapabilities+Favorite.swift +1 -15
  97. package/ios/Extension/ResolvedTrack+Copying.swift +13 -15
  98. package/ios/Extension/Section+Copying.swift +29 -0
  99. package/ios/Extension/String+IcyCharset.swift +21 -0
  100. package/ios/Extension/TimedMetadata+AVFoundation.swift +6 -4
  101. package/ios/Extension/Track+Copying.swift +8 -12
  102. package/ios/Extension/Track+Identity.swift +18 -0
  103. package/ios/Extension/UIApplication+ActiveScene.swift +27 -0
  104. package/ios/Http/HttpClient.swift +8 -2
  105. package/ios/HybridAudioBrowser.swift +253 -100
  106. package/ios/Model/NitroTypeStubs.swift +125 -23
  107. package/ios/Model/PlayerUpdateOptions.swift +7 -0
  108. package/ios/Model/RemoteCommand.swift +18 -0
  109. package/ios/Model/TrackPlayerError.swift +2 -2
  110. package/ios/Option/SessionCategories.swift +3 -2
  111. package/ios/Player/MediaIntentCriteria.swift +17 -9
  112. package/ios/Player/MediaLoader.swift +33 -9
  113. package/ios/Player/NowPlayingUpdater.swift +54 -6
  114. package/ios/Player/PlaybackCoordinator.swift +13 -6
  115. package/ios/Player/PlaybackErrorHandler.swift +4 -4
  116. package/ios/Player/PlaybackTimer.swift +8 -2
  117. package/ios/Player/QueueManager.swift +46 -13
  118. package/ios/Player/RetryManager.swift +80 -18
  119. package/ios/Player/SeekCompletionHandler.swift +3 -1
  120. package/ios/Player/ShuffleOrder.swift +33 -0
  121. package/ios/Player/SleepTimerHandling.swift +13 -0
  122. package/ios/RemoteCommand/RemoteCommandCallbacks.swift +47 -0
  123. package/ios/RemoteCommand/RemoteCommandController.swift +62 -24
  124. package/ios/Tests/BrowserPathHelperTests.swift +50 -20
  125. package/ios/Tests/CarPlayArtworkResolverTests.swift +24 -41
  126. package/ios/Tests/InertStyleDiagnosticTests.swift +200 -0
  127. package/ios/Tests/JsonModelsTests.swift +150 -1
  128. package/ios/Tests/LRUCacheTests.swift +111 -0
  129. package/ios/Tests/LoadSeekCoordinatorTests.swift +3 -1
  130. package/ios/Tests/MediaIntentCriteriaTests.swift +2 -2
  131. package/ios/Tests/PlaybackCoordinatorTests.swift +1 -1
  132. package/ios/Tests/PlaybackErrorHandlerTests.swift +3 -1
  133. package/ios/Tests/PlaybackStateStoreTests.swift +4 -3
  134. package/ios/Tests/PlayerTimeObserverTests.swift +37 -0
  135. package/ios/Tests/QueueManagerTests.swift +122 -10
  136. package/ios/Tests/RemoteCommandControllerTests.swift +172 -0
  137. package/ios/Tests/RemoteCommandTests.swift +67 -0
  138. package/ios/Tests/ResolvedTrackCopyingTests.swift +39 -35
  139. package/ios/Tests/RetryManagerTests.swift +89 -0
  140. package/ios/Tests/SearchDrillInTests.swift +16 -16
  141. package/ios/Tests/SectionPresentationTests.swift +90 -0
  142. package/ios/Tests/SectionScopeTests.swift +87 -55
  143. package/ios/Tests/StyleResolverTests.swift +127 -0
  144. package/ios/Tests/Support/TestTypes.swift +8 -1
  145. package/ios/Tests/TabBarEntriesTests.swift +19 -19
  146. package/ios/Tests/TimedMetadataAVFoundationTests.swift +42 -0
  147. package/ios/Tests/TrackIdTemplateTests.swift +67 -0
  148. package/ios/Tests/TrackIdentityTests.swift +20 -0
  149. package/ios/Tests/TrackSelectorTests.swift +168 -33
  150. package/ios/TrackPlayer.swift +63 -35
  151. package/ios/TrackPlayerCallbacks.swift +5 -38
  152. package/ios/TrackSelector.swift +45 -30
  153. package/ios/Util/ArtworkImageFetcher.swift +16 -1
  154. package/ios/Util/LRUCache.swift +4 -1
  155. package/ios/Util/NetworkMonitor.swift +43 -26
  156. package/ios/Util/SFSymbolRenderer.swift +24 -2
  157. package/ios/Util/SVGProcessor.swift +9 -2
  158. package/lib/commonjs/AudioBrowser.js +8 -8
  159. package/lib/commonjs/AudioBrowser.js.map +1 -1
  160. package/lib/commonjs/CLAUDE.md +52 -0
  161. package/lib/commonjs/features/browser-config.js +12 -8
  162. package/lib/commonjs/features/browser-config.js.map +1 -1
  163. package/lib/commonjs/features/browser.js +11 -3
  164. package/lib/commonjs/features/browser.js.map +1 -1
  165. package/lib/commonjs/features/carConnection.js +1 -1
  166. package/lib/commonjs/features/equalizer.js +1 -1
  167. package/lib/commonjs/features/errors.js +3 -3
  168. package/lib/commonjs/features/favorites.js +14 -11
  169. package/lib/commonjs/features/favorites.js.map +1 -1
  170. package/lib/commonjs/features/gate.js +16 -1
  171. package/lib/commonjs/features/gate.js.map +1 -1
  172. package/lib/commonjs/features/metadata.js +20 -3
  173. package/lib/commonjs/features/metadata.js.map +1 -1
  174. package/lib/commonjs/features/network.js +1 -1
  175. package/lib/commonjs/features/nowPlaying.js +1 -1
  176. package/lib/commonjs/features/output.js +1 -1
  177. package/lib/commonjs/features/playback/controls.js +4 -2
  178. package/lib/commonjs/features/playback/controls.js.map +1 -1
  179. package/lib/commonjs/features/playback/playWhenReady.js +1 -1
  180. package/lib/commonjs/features/playback/playing.js +1 -1
  181. package/lib/commonjs/features/playback/progress.js +3 -2
  182. package/lib/commonjs/features/playback/progress.js.map +1 -1
  183. package/lib/commonjs/features/playback/rate.js +8 -1
  184. package/lib/commonjs/features/playback/rate.js.map +1 -1
  185. package/lib/commonjs/features/playback/state.js +3 -4
  186. package/lib/commonjs/features/playback/state.js.map +1 -1
  187. package/lib/commonjs/features/playback/trackPlaybackTime.js +0 -6
  188. package/lib/commonjs/features/playback/trackPlaybackTime.js.map +1 -1
  189. package/lib/commonjs/features/playback/volume.js +1 -1
  190. package/lib/commonjs/features/player/options.js +48 -34
  191. package/lib/commonjs/features/player/options.js.map +1 -1
  192. package/lib/commonjs/features/player/setup.js +18 -9
  193. package/lib/commonjs/features/player/setup.js.map +1 -1
  194. package/lib/commonjs/features/player/validateOptions.js +23 -0
  195. package/lib/commonjs/features/player/validateOptions.js.map +1 -0
  196. package/lib/commonjs/features/queue/activeTrack.js +15 -4
  197. package/lib/commonjs/features/queue/activeTrack.js.map +1 -1
  198. package/lib/commonjs/features/queue/queue.js +13 -6
  199. package/lib/commonjs/features/queue/queue.js.map +1 -1
  200. package/lib/commonjs/features/queue/repeatMode.js +1 -1
  201. package/lib/commonjs/features/queue/shuffle.js +1 -1
  202. package/lib/commonjs/features/remoteControls.js +13 -92
  203. package/lib/commonjs/features/remoteControls.js.map +1 -1
  204. package/lib/commonjs/features/sleepTimer.js +13 -1
  205. package/lib/commonjs/features/sleepTimer.js.map +1 -1
  206. package/lib/commonjs/test-utils/reactNativeStub.js +65 -0
  207. package/lib/commonjs/test-utils/reactNativeStub.js.map +1 -0
  208. package/lib/commonjs/utils/LazyNativeEmitter.js +28 -14
  209. package/lib/commonjs/utils/LazyNativeEmitter.js.map +1 -1
  210. package/lib/commonjs/utils/NativeUpdatedValue.js +31 -13
  211. package/lib/commonjs/utils/NativeUpdatedValue.js.map +1 -1
  212. package/lib/commonjs/utils/getTrackIdentity.js +24 -0
  213. package/lib/commonjs/utils/getTrackIdentity.js.map +1 -0
  214. package/lib/commonjs/utils/useNativeValueRefreshedBy.js +33 -0
  215. package/lib/commonjs/utils/useNativeValueRefreshedBy.js.map +1 -0
  216. package/lib/commonjs/web/NativeAudioBrowser.js +200 -75
  217. package/lib/commonjs/web/NativeAudioBrowser.js.map +1 -1
  218. package/lib/commonjs/web/TrackPlayer/LoadAttempt.js +37 -0
  219. package/lib/commonjs/web/TrackPlayer/LoadAttempt.js.map +1 -0
  220. package/lib/commonjs/web/TrackPlayer/PlaybackStateMachine.js +18 -2
  221. package/lib/commonjs/web/TrackPlayer/PlaybackStateMachine.js.map +1 -1
  222. package/lib/commonjs/web/TrackPlayer/Player.js +254 -39
  223. package/lib/commonjs/web/TrackPlayer/Player.js.map +1 -1
  224. package/lib/commonjs/web/TrackPlayer/QueueManager.js +14 -0
  225. package/lib/commonjs/web/TrackPlayer/QueueManager.js.map +1 -1
  226. package/lib/commonjs/web/TrackPlayer/QueuePlayer.js +33 -12
  227. package/lib/commonjs/web/TrackPlayer/QueuePlayer.js.map +1 -1
  228. package/lib/commonjs/web/browser/BrowserManager.js +175 -100
  229. package/lib/commonjs/web/browser/BrowserManager.js.map +1 -1
  230. package/lib/commonjs/web/browser/FavoriteManager.js +30 -21
  231. package/lib/commonjs/web/browser/FavoriteManager.js.map +1 -1
  232. package/lib/commonjs/web/browser/SearchManager.js +18 -23
  233. package/lib/commonjs/web/browser/SearchManager.js.map +1 -1
  234. package/lib/commonjs/web/browser/assertBrowsePageShape.js +2 -2
  235. package/lib/commonjs/web/browser/assertBrowsePageShape.js.map +1 -1
  236. package/lib/commonjs/web/browser/classifyTrackNavigation.js +9 -9
  237. package/lib/commonjs/web/browser/classifyTrackNavigation.js.map +1 -1
  238. package/lib/commonjs/web/browser/sections.js +89 -0
  239. package/lib/commonjs/web/browser/sections.js.map +1 -0
  240. package/lib/commonjs/web/http/RequestConfigBuilder.js +110 -27
  241. package/lib/commonjs/web/http/RequestConfigBuilder.js.map +1 -1
  242. package/lib/commonjs/web/http/followMediaRedirect.js +219 -0
  243. package/lib/commonjs/web/http/followMediaRedirect.js.map +1 -0
  244. package/lib/commonjs/web/player/NowPlayingManager.js +4 -3
  245. package/lib/commonjs/web/player/NowPlayingManager.js.map +1 -1
  246. package/lib/commonjs/web/util/BrowserPathHelper.js +56 -11
  247. package/lib/commonjs/web/util/BrowserPathHelper.js.map +1 -1
  248. package/lib/module/AudioBrowser.js +2 -1
  249. package/lib/module/AudioBrowser.js.map +1 -1
  250. package/lib/module/CLAUDE.md +52 -0
  251. package/lib/module/features/browser-config.js +12 -8
  252. package/lib/module/features/browser-config.js.map +1 -1
  253. package/lib/module/features/browser.js +11 -3
  254. package/lib/module/features/browser.js.map +1 -1
  255. package/lib/module/features/carConnection.js +1 -1
  256. package/lib/module/features/equalizer.js +1 -1
  257. package/lib/module/features/errors.js +3 -3
  258. package/lib/module/features/favorites.js +14 -11
  259. package/lib/module/features/favorites.js.map +1 -1
  260. package/lib/module/features/gate.js +16 -1
  261. package/lib/module/features/gate.js.map +1 -1
  262. package/lib/module/features/metadata.js +20 -3
  263. package/lib/module/features/metadata.js.map +1 -1
  264. package/lib/module/features/network.js +1 -1
  265. package/lib/module/features/nowPlaying.js +1 -1
  266. package/lib/module/features/output.js +1 -1
  267. package/lib/module/features/playback/controls.js +4 -2
  268. package/lib/module/features/playback/controls.js.map +1 -1
  269. package/lib/module/features/playback/playWhenReady.js +1 -1
  270. package/lib/module/features/playback/playing.js +1 -1
  271. package/lib/module/features/playback/progress.js +3 -2
  272. package/lib/module/features/playback/progress.js.map +1 -1
  273. package/lib/module/features/playback/rate.js +8 -1
  274. package/lib/module/features/playback/rate.js.map +1 -1
  275. package/lib/module/features/playback/state.js +3 -4
  276. package/lib/module/features/playback/state.js.map +1 -1
  277. package/lib/module/features/playback/trackPlaybackTime.js +0 -5
  278. package/lib/module/features/playback/trackPlaybackTime.js.map +1 -1
  279. package/lib/module/features/playback/volume.js +1 -1
  280. package/lib/module/features/player/options.js +47 -32
  281. package/lib/module/features/player/options.js.map +1 -1
  282. package/lib/module/features/player/setup.js +17 -8
  283. package/lib/module/features/player/setup.js.map +1 -1
  284. package/lib/module/features/player/validateOptions.js +19 -0
  285. package/lib/module/features/player/validateOptions.js.map +1 -0
  286. package/lib/module/features/queue/activeTrack.js +15 -4
  287. package/lib/module/features/queue/activeTrack.js.map +1 -1
  288. package/lib/module/features/queue/queue.js +13 -6
  289. package/lib/module/features/queue/queue.js.map +1 -1
  290. package/lib/module/features/queue/repeatMode.js +1 -1
  291. package/lib/module/features/queue/shuffle.js +1 -1
  292. package/lib/module/features/remoteControls.js +13 -92
  293. package/lib/module/features/remoteControls.js.map +1 -1
  294. package/lib/module/features/sleepTimer.js +13 -1
  295. package/lib/module/features/sleepTimer.js.map +1 -1
  296. package/lib/module/test-utils/reactNativeStub.js +58 -0
  297. package/lib/module/test-utils/reactNativeStub.js.map +1 -0
  298. package/lib/module/utils/LazyNativeEmitter.js +28 -14
  299. package/lib/module/utils/LazyNativeEmitter.js.map +1 -1
  300. package/lib/module/utils/NativeUpdatedValue.js +31 -13
  301. package/lib/module/utils/NativeUpdatedValue.js.map +1 -1
  302. package/lib/module/utils/getTrackIdentity.js +20 -0
  303. package/lib/module/utils/getTrackIdentity.js.map +1 -0
  304. package/lib/module/utils/useNativeValueRefreshedBy.js +29 -0
  305. package/lib/module/utils/useNativeValueRefreshedBy.js.map +1 -0
  306. package/lib/module/web/NativeAudioBrowser.js +200 -75
  307. package/lib/module/web/NativeAudioBrowser.js.map +1 -1
  308. package/lib/module/web/TrackPlayer/LoadAttempt.js +32 -0
  309. package/lib/module/web/TrackPlayer/LoadAttempt.js.map +1 -0
  310. package/lib/module/web/TrackPlayer/PlaybackStateMachine.js +18 -2
  311. package/lib/module/web/TrackPlayer/PlaybackStateMachine.js.map +1 -1
  312. package/lib/module/web/TrackPlayer/Player.js +254 -39
  313. package/lib/module/web/TrackPlayer/Player.js.map +1 -1
  314. package/lib/module/web/TrackPlayer/QueueManager.js +14 -0
  315. package/lib/module/web/TrackPlayer/QueueManager.js.map +1 -1
  316. package/lib/module/web/TrackPlayer/QueuePlayer.js +33 -12
  317. package/lib/module/web/TrackPlayer/QueuePlayer.js.map +1 -1
  318. package/lib/module/web/browser/BrowserManager.js +175 -100
  319. package/lib/module/web/browser/BrowserManager.js.map +1 -1
  320. package/lib/module/web/browser/FavoriteManager.js +31 -21
  321. package/lib/module/web/browser/FavoriteManager.js.map +1 -1
  322. package/lib/module/web/browser/SearchManager.js +18 -23
  323. package/lib/module/web/browser/SearchManager.js.map +1 -1
  324. package/lib/module/web/browser/assertBrowsePageShape.js +2 -2
  325. package/lib/module/web/browser/assertBrowsePageShape.js.map +1 -1
  326. package/lib/module/web/browser/classifyTrackNavigation.js +9 -9
  327. package/lib/module/web/browser/classifyTrackNavigation.js.map +1 -1
  328. package/lib/module/web/browser/sections.js +83 -0
  329. package/lib/module/web/browser/sections.js.map +1 -0
  330. package/lib/module/web/http/RequestConfigBuilder.js +110 -27
  331. package/lib/module/web/http/RequestConfigBuilder.js.map +1 -1
  332. package/lib/module/web/http/followMediaRedirect.js +215 -0
  333. package/lib/module/web/http/followMediaRedirect.js.map +1 -0
  334. package/lib/module/web/player/NowPlayingManager.js +4 -3
  335. package/lib/module/web/player/NowPlayingManager.js.map +1 -1
  336. package/lib/module/web/util/BrowserPathHelper.js +56 -11
  337. package/lib/module/web/util/BrowserPathHelper.js.map +1 -1
  338. package/lib/typescript/package.json +1 -0
  339. package/lib/typescript/src/AudioBrowser.d.ts +1 -1
  340. package/lib/typescript/src/AudioBrowser.d.ts.map +1 -1
  341. package/lib/typescript/src/features/browser-config.d.ts.map +1 -1
  342. package/lib/typescript/src/features/browser.d.ts +10 -2
  343. package/lib/typescript/src/features/browser.d.ts.map +1 -1
  344. package/lib/typescript/src/features/carConnection.d.ts +1 -1
  345. package/lib/typescript/src/features/equalizer.d.ts +1 -1
  346. package/lib/typescript/src/features/errors.d.ts +3 -3
  347. package/lib/typescript/src/features/favorites.d.ts +14 -11
  348. package/lib/typescript/src/features/favorites.d.ts.map +1 -1
  349. package/lib/typescript/src/features/gate.d.ts +18 -2
  350. package/lib/typescript/src/features/gate.d.ts.map +1 -1
  351. package/lib/typescript/src/features/metadata.d.ts +20 -3
  352. package/lib/typescript/src/features/metadata.d.ts.map +1 -1
  353. package/lib/typescript/src/features/network.d.ts +1 -1
  354. package/lib/typescript/src/features/nowPlaying.d.ts +1 -1
  355. package/lib/typescript/src/features/output.d.ts +1 -1
  356. package/lib/typescript/src/features/playback/controls.d.ts +4 -2
  357. package/lib/typescript/src/features/playback/controls.d.ts.map +1 -1
  358. package/lib/typescript/src/features/playback/playWhenReady.d.ts +1 -1
  359. package/lib/typescript/src/features/playback/playing.d.ts +1 -1
  360. package/lib/typescript/src/features/playback/progress.d.ts +1 -1
  361. package/lib/typescript/src/features/playback/progress.d.ts.map +1 -1
  362. package/lib/typescript/src/features/playback/rate.d.ts +8 -1
  363. package/lib/typescript/src/features/playback/rate.d.ts.map +1 -1
  364. package/lib/typescript/src/features/playback/state.d.ts +3 -4
  365. package/lib/typescript/src/features/playback/state.d.ts.map +1 -1
  366. package/lib/typescript/src/features/playback/trackPlaybackTime.d.ts +1 -1
  367. package/lib/typescript/src/features/playback/trackPlaybackTime.d.ts.map +1 -1
  368. package/lib/typescript/src/features/playback/volume.d.ts +1 -1
  369. package/lib/typescript/src/features/player/options.d.ts +108 -56
  370. package/lib/typescript/src/features/player/options.d.ts.map +1 -1
  371. package/lib/typescript/src/features/player/setup.d.ts +14 -4
  372. package/lib/typescript/src/features/player/setup.d.ts.map +1 -1
  373. package/lib/typescript/src/features/player/validateOptions.d.ts +2 -0
  374. package/lib/typescript/src/features/player/validateOptions.d.ts.map +1 -0
  375. package/lib/typescript/src/features/queue/activeTrack.d.ts +9 -2
  376. package/lib/typescript/src/features/queue/activeTrack.d.ts.map +1 -1
  377. package/lib/typescript/src/features/queue/queue.d.ts +7 -4
  378. package/lib/typescript/src/features/queue/queue.d.ts.map +1 -1
  379. package/lib/typescript/src/features/queue/repeatMode.d.ts +1 -1
  380. package/lib/typescript/src/features/queue/shuffle.d.ts +1 -1
  381. package/lib/typescript/src/features/remoteControls.d.ts +23 -22
  382. package/lib/typescript/src/features/remoteControls.d.ts.map +1 -1
  383. package/lib/typescript/src/features/sleepTimer.d.ts +1 -1
  384. package/lib/typescript/src/features/sleepTimer.d.ts.map +1 -1
  385. package/lib/typescript/src/test-utils/reactNativeStub.d.ts +36 -0
  386. package/lib/typescript/src/test-utils/reactNativeStub.d.ts.map +1 -0
  387. package/lib/typescript/src/types/browser-native.d.ts +3 -2
  388. package/lib/typescript/src/types/browser-native.d.ts.map +1 -1
  389. package/lib/typescript/src/types/browser-nodes.d.ts +380 -126
  390. package/lib/typescript/src/types/browser-nodes.d.ts.map +1 -1
  391. package/lib/typescript/src/types/browser.d.ts +82 -57
  392. package/lib/typescript/src/types/browser.d.ts.map +1 -1
  393. package/lib/typescript/src/utils/LazyNativeEmitter.d.ts +19 -16
  394. package/lib/typescript/src/utils/LazyNativeEmitter.d.ts.map +1 -1
  395. package/lib/typescript/src/utils/NativeUpdatedValue.d.ts +24 -19
  396. package/lib/typescript/src/utils/NativeUpdatedValue.d.ts.map +1 -1
  397. package/lib/typescript/src/utils/getTrackIdentity.d.ts +18 -0
  398. package/lib/typescript/src/utils/getTrackIdentity.d.ts.map +1 -0
  399. package/lib/typescript/src/utils/useNativeValueRefreshedBy.d.ts +21 -0
  400. package/lib/typescript/src/utils/useNativeValueRefreshedBy.d.ts.map +1 -0
  401. package/nitrogen/generated/android/AudioBrowser+autolinking.cmake +1 -2
  402. package/nitrogen/generated/android/AudioBrowserOnLoad.cpp +2 -0
  403. package/nitrogen/generated/android/c++/JAndroidOptions.hpp +10 -10
  404. package/nitrogen/generated/android/c++/{JFavoritesMatchMode.hpp → JArtworkRendering.hpp} +15 -15
  405. package/nitrogen/generated/android/c++/JArtworkRequestConfig.hpp +8 -3
  406. package/nitrogen/generated/android/c++/JBrowseResult.hpp +16 -4
  407. package/nitrogen/generated/android/c++/JCarPlayPlayingIndicatorLocation.hpp +58 -0
  408. package/nitrogen/generated/android/c++/JCardImage.hpp +58 -0
  409. package/nitrogen/generated/android/c++/JFavoriteChangedEvent.hpp +8 -3
  410. package/nitrogen/generated/android/c++/JFormatNowPlayingParams.hpp +8 -3
  411. package/nitrogen/generated/android/c++/JFunc_std__shared_ptr_Promise_RequestConfig___Track.hpp +8 -3
  412. package/nitrogen/generated/android/c++/JFunc_std__shared_ptr_Promise_std__optional_NowPlayingUpdate____FormatNowPlayingParams.hpp +8 -3
  413. package/nitrogen/generated/android/c++/JFunc_std__shared_ptr_Promise_std__optional_std__string____Track.hpp +8 -3
  414. package/nitrogen/generated/android/c++/JFunc_std__shared_ptr_Promise_std__shared_ptr_Promise_RequestConfig_____Track.hpp +8 -3
  415. package/nitrogen/generated/android/c++/JFunc_std__shared_ptr_Promise_std__shared_ptr_Promise_std__vector_Track______SearchParams.hpp +8 -2
  416. package/nitrogen/generated/android/c++/JFunc_std__shared_ptr_Promise_std__shared_ptr_Promise_void_____TrackLoadEvent.hpp +8 -2
  417. package/nitrogen/generated/android/c++/JFunc_std__shared_ptr_Promise_std__string__.hpp +102 -0
  418. package/nitrogen/generated/android/c++/JFunc_std__shared_ptr_Promise_std__variant_ResolvedTrack__BrowseError__std__shared_ptr_Promise_std__variant_ResolvedTrack__BrowseError_______BrowserSourceCallbackParam.hpp +16 -4
  419. package/nitrogen/generated/android/c++/JFunc_void_FavoriteChangedEvent.hpp +8 -3
  420. package/nitrogen/generated/android/c++/JFunc_void_Options.hpp +7 -10
  421. package/nitrogen/generated/android/c++/JFunc_void_PlaybackActiveTrackChangedEvent.hpp +8 -3
  422. package/nitrogen/generated/android/c++/JFunc_void_std__optional_ResolvedTrack_.hpp +15 -3
  423. package/nitrogen/generated/android/c++/JFunc_void_std__vector_Track_.hpp +8 -2
  424. package/nitrogen/generated/android/c++/JGridTile.hpp +61 -0
  425. package/nitrogen/generated/android/c++/JHybridAudioBrowserSpec.cpp +45 -25
  426. package/nitrogen/generated/android/c++/JHybridAudioBrowserSpec.hpp +1 -1
  427. package/nitrogen/generated/android/c++/JIOSOptions.hpp +9 -3
  428. package/nitrogen/generated/android/c++/JImageShape.hpp +58 -0
  429. package/nitrogen/generated/android/c++/JMediaRequestConfig.hpp +8 -3
  430. package/nitrogen/generated/android/c++/JNativeBrowserConfiguration.hpp +36 -11
  431. package/nitrogen/generated/android/c++/JNativeRouteEntry.hpp +14 -2
  432. package/nitrogen/generated/android/c++/JNativeSetupPlayerOptions.hpp +15 -12
  433. package/nitrogen/generated/android/c++/JNativeUpdateOptions.hpp +7 -10
  434. package/nitrogen/generated/android/c++/JNitroAndroidUpdateOptions.hpp +10 -10
  435. package/nitrogen/generated/android/c++/JNitroIOSUpdateOptions.hpp +9 -3
  436. package/nitrogen/generated/android/c++/JOptions.hpp +7 -10
  437. package/nitrogen/generated/android/c++/JPlaybackActiveTrackChangedEvent.hpp +8 -3
  438. package/nitrogen/generated/android/c++/JPlayerCapabilities.hpp +5 -11
  439. package/nitrogen/generated/android/c++/{JNotificationButton.hpp → JRemoteButton.hpp} +19 -19
  440. package/nitrogen/generated/android/c++/JRemoteButtonLayout.hpp +86 -0
  441. package/nitrogen/generated/android/c++/JResolvedTrack.hpp +57 -49
  442. package/nitrogen/generated/android/c++/JSection.hpp +116 -0
  443. package/nitrogen/generated/android/c++/JSectionStyle.hpp +96 -0
  444. package/nitrogen/generated/android/c++/JStyleDisplay.hpp +58 -0
  445. package/nitrogen/generated/android/c++/JTrack.hpp +25 -46
  446. package/nitrogen/generated/android/c++/JTrackLoadEvent.hpp +8 -2
  447. package/nitrogen/generated/android/c++/JTrackStyle.hpp +46 -18
  448. package/nitrogen/generated/android/c++/JVariant_NullType_RemoteButtonLayout.cpp +26 -0
  449. package/nitrogen/generated/android/c++/JVariant_NullType_RemoteButtonLayout.hpp +75 -0
  450. package/nitrogen/generated/android/c++/JVariant_ResolvedTrack_BrowseError_Promise_BrowseResult_.hpp +16 -4
  451. package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/AndroidOptions.kt +3 -3
  452. package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/{FavoritesMatchMode.kt → ArtworkRendering.kt} +5 -5
  453. package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/CarPlayPlayingIndicatorLocation.kt +23 -0
  454. package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/CardImage.kt +23 -0
  455. package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/Func_std__shared_ptr_Promise_std__string__.kt +80 -0
  456. package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/GridTile.kt +24 -0
  457. package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/HybridAudioBrowserSpec.kt +1 -1
  458. package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/IOSOptions.kt +6 -3
  459. package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/ImageShape.kt +23 -0
  460. package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/NativeBrowserConfiguration.kt +8 -5
  461. package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/NitroAndroidUpdateOptions.kt +3 -3
  462. package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/NitroIOSUpdateOptions.kt +6 -3
  463. package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/PlayerCapabilities.kt +2 -2
  464. package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/{NotificationButton.kt → RemoteButton.kt} +3 -3
  465. package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/RemoteButtonLayout.kt +44 -0
  466. package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/ResolvedTrack.kt +12 -15
  467. package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/{FavoriteConfig.kt → Section.kt} +15 -6
  468. package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/SectionStyle.kt +59 -0
  469. package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/StyleDisplay.kt +23 -0
  470. package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/Track.kt +6 -12
  471. package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/TrackStyle.kt +35 -5
  472. package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/{Variant_NullType_NotificationButtonLayout.kt → Variant_NullType_RemoteButtonLayout.kt} +9 -9
  473. package/nitrogen/generated/ios/AudioBrowser-Swift-Cxx-Bridge.cpp +9 -0
  474. package/nitrogen/generated/ios/AudioBrowser-Swift-Cxx-Bridge.hpp +244 -133
  475. package/nitrogen/generated/ios/AudioBrowser-Swift-Cxx-Umbrella.hpp +31 -16
  476. package/nitrogen/generated/ios/c++/HybridAudioBrowserSpecSwift.hpp +33 -18
  477. package/nitrogen/generated/ios/swift/AndroidOptions.swift +12 -12
  478. package/nitrogen/generated/ios/swift/ArtworkRendering.swift +40 -0
  479. package/nitrogen/generated/ios/swift/CarPlayPlayingIndicatorLocation.swift +40 -0
  480. package/nitrogen/generated/ios/swift/CardImage.swift +40 -0
  481. package/nitrogen/generated/ios/swift/Func_std__shared_ptr_Promise_std__string__.swift +54 -0
  482. package/nitrogen/generated/ios/swift/GridTile.swift +44 -0
  483. package/nitrogen/generated/ios/swift/HybridAudioBrowserSpec.swift +1 -1
  484. package/nitrogen/generated/ios/swift/HybridAudioBrowserSpec_cxx.swift +2 -2
  485. package/nitrogen/generated/ios/swift/IOSOptions.swift +7 -2
  486. package/nitrogen/generated/ios/swift/ImageShape.swift +40 -0
  487. package/nitrogen/generated/ios/swift/NativeBrowserConfiguration.swift +52 -5
  488. package/nitrogen/generated/ios/swift/NitroAndroidUpdateOptions.swift +12 -12
  489. package/nitrogen/generated/ios/swift/NitroIOSUpdateOptions.swift +12 -1
  490. package/nitrogen/generated/ios/swift/PlayerCapabilities.swift +8 -27
  491. package/nitrogen/generated/ios/swift/{NotificationButton.swift → RemoteButton.swift} +6 -6
  492. package/nitrogen/generated/ios/swift/RemoteButtonLayout.swift +57 -0
  493. package/nitrogen/generated/ios/swift/ResolvedTrack.swift +62 -73
  494. package/nitrogen/generated/ios/swift/Section.swift +82 -0
  495. package/nitrogen/generated/ios/swift/SectionStyle.swift +133 -0
  496. package/nitrogen/generated/ios/swift/StyleDisplay.swift +40 -0
  497. package/nitrogen/generated/ios/swift/Track.swift +28 -63
  498. package/nitrogen/generated/ios/swift/TrackStyle.swift +86 -22
  499. package/nitrogen/generated/ios/swift/{Variant_NullType_NotificationButtonLayout.swift → Variant_NullType_RemoteButtonLayout.swift} +3 -3
  500. package/nitrogen/generated/shared/c++/AndroidOptions.hpp +8 -8
  501. package/nitrogen/generated/shared/c++/{FavoritesMatchMode.hpp → ArtworkRendering.hpp} +17 -17
  502. package/nitrogen/generated/shared/c++/CarPlayPlayingIndicatorLocation.hpp +76 -0
  503. package/nitrogen/generated/shared/c++/CardImage.hpp +76 -0
  504. package/nitrogen/generated/shared/c++/GridTile.hpp +80 -0
  505. package/nitrogen/generated/shared/c++/HybridAudioBrowserSpec.cpp +1 -1
  506. package/nitrogen/generated/shared/c++/HybridAudioBrowserSpec.hpp +1 -1
  507. package/nitrogen/generated/shared/c++/IOSOptions.hpp +9 -2
  508. package/nitrogen/generated/shared/c++/ImageShape.hpp +76 -0
  509. package/nitrogen/generated/shared/c++/NativeBrowserConfiguration.hpp +10 -6
  510. package/nitrogen/generated/shared/c++/NitroAndroidUpdateOptions.hpp +8 -8
  511. package/nitrogen/generated/shared/c++/NitroIOSUpdateOptions.hpp +9 -2
  512. package/nitrogen/generated/shared/c++/PlayerCapabilities.hpp +6 -9
  513. package/nitrogen/generated/shared/c++/{NotificationButton.hpp → RemoteButton.hpp} +19 -19
  514. package/nitrogen/generated/shared/c++/RemoteButtonLayout.hpp +94 -0
  515. package/nitrogen/generated/shared/c++/ResolvedTrack.hpp +33 -37
  516. package/nitrogen/generated/shared/c++/Section.hpp +102 -0
  517. package/nitrogen/generated/shared/c++/SectionStyle.hpp +126 -0
  518. package/nitrogen/generated/shared/c++/StyleDisplay.hpp +76 -0
  519. package/nitrogen/generated/shared/c++/Track.hpp +18 -30
  520. package/nitrogen/generated/shared/c++/TrackStyle.hpp +73 -34
  521. package/package.json +24 -11
  522. package/src/AudioBrowser.ts +2 -1
  523. package/src/CLAUDE.md +52 -0
  524. package/src/features/battery.test.ts +79 -0
  525. package/src/features/browser-config.test.ts +21 -6
  526. package/src/features/browser-config.ts +12 -8
  527. package/src/features/browser.test.ts +1 -1
  528. package/src/features/browser.ts +11 -3
  529. package/src/features/carConnection.ts +1 -1
  530. package/src/features/equalizer.ts +1 -1
  531. package/src/features/errors.ts +3 -3
  532. package/src/features/favorites.ts +14 -11
  533. package/src/features/gate.ts +16 -1
  534. package/src/features/hook-wiring.test.ts +302 -0
  535. package/src/features/metadata.ts +20 -3
  536. package/src/features/network.ts +1 -1
  537. package/src/features/nowPlaying.ts +1 -1
  538. package/src/features/output.ts +1 -1
  539. package/src/features/playback/controls.ts +4 -2
  540. package/src/features/playback/playWhenReady.ts +1 -1
  541. package/src/features/playback/playing.ts +1 -1
  542. package/src/features/playback/progress.test.ts +169 -0
  543. package/src/features/playback/progress.ts +3 -2
  544. package/src/features/playback/rate.ts +8 -1
  545. package/src/features/playback/state.ts +3 -4
  546. package/src/features/playback/trackPlaybackTime.test.ts +16 -6
  547. package/src/features/playback/trackPlaybackTime.ts +1 -6
  548. package/src/features/playback/volume.ts +1 -1
  549. package/src/features/player/options.ts +126 -76
  550. package/src/features/player/setup.test.ts +24 -7
  551. package/src/features/player/setup.ts +22 -10
  552. package/src/features/player/validateOptions.ts +21 -0
  553. package/src/features/queue/activeTrack.ts +15 -4
  554. package/src/features/queue/queue.ts +13 -6
  555. package/src/features/queue/repeatMode.ts +1 -1
  556. package/src/features/queue/shuffle.ts +1 -1
  557. package/src/features/remoteControls.ts +13 -92
  558. package/src/features/sleepTimer.test.ts +172 -0
  559. package/src/features/sleepTimer.ts +9 -1
  560. package/src/nitro-stub-drift.test.ts +277 -0
  561. package/src/public-surface.test.ts +147 -0
  562. package/src/specs/audio-browser.nitro.ts +5 -4
  563. package/src/style-resolution.test.ts +210 -0
  564. package/src/test-utils/reactNativeStub.ts +60 -0
  565. package/src/types/browser-native.ts +7 -3
  566. package/src/types/browser-nodes.ts +396 -134
  567. package/src/types/browser.ts +85 -59
  568. package/src/utils/LazyNativeEmitter.ts +28 -15
  569. package/src/utils/NativeUpdatedValue.ts +29 -13
  570. package/src/utils/getTrackIdentity.ts +20 -0
  571. package/src/utils/useDebug.test.ts +182 -0
  572. package/src/utils/useNativeUpdatedValue.test.ts +103 -0
  573. package/src/utils/useNativeValueRefreshedBy.ts +38 -0
  574. package/src/web/NativeAudioBrowser.playWhenReady.test.ts +232 -2
  575. package/src/web/NativeAudioBrowser.ts +239 -82
  576. package/src/web/TrackPlayer/LoadAttempt.ts +29 -0
  577. package/src/web/TrackPlayer/PlaybackStateMachine.test.ts +60 -13
  578. package/src/web/TrackPlayer/PlaybackStateMachine.ts +22 -6
  579. package/src/web/TrackPlayer/Player.dispatch.test.ts +5 -3
  580. package/src/web/TrackPlayer/Player.load.test.ts +137 -1
  581. package/src/web/TrackPlayer/Player.ts +284 -37
  582. package/src/web/TrackPlayer/QueueManager.test.ts +29 -0
  583. package/src/web/TrackPlayer/QueueManager.ts +14 -0
  584. package/src/web/TrackPlayer/QueuePlayer.ts +33 -14
  585. package/src/web/__tests__/lifecycle.test.ts +345 -0
  586. package/src/web/__tests__/lifecycleHarness.ts +351 -0
  587. package/src/web/__tests__/loadEdgeCases.test.ts +246 -0
  588. package/src/web/__tests__/loadSupersession.test.ts +175 -0
  589. package/src/web/__tests__/retry.test.ts +169 -0
  590. package/src/web/browser/BrowserManager.ts +209 -111
  591. package/src/web/browser/FavoriteManager.test.ts +84 -0
  592. package/src/web/browser/FavoriteManager.ts +28 -23
  593. package/src/web/browser/SearchManager.test.ts +75 -0
  594. package/src/web/browser/SearchManager.ts +25 -28
  595. package/src/web/browser/__tests__/artwork-resolution.test.ts +117 -0
  596. package/src/web/browser/__tests__/layer-resolver.test.ts +35 -0
  597. package/src/web/browser/__tests__/search-artwork.test.ts +46 -0
  598. package/src/web/browser/__tests__/search-navigation.test.ts +76 -0
  599. package/src/web/browser/assertBrowsePageShape.test.ts +1 -1
  600. package/src/web/browser/assertBrowsePageShape.ts +5 -3
  601. package/src/web/browser/classifyTrackNavigation.test.ts +10 -8
  602. package/src/web/browser/classifyTrackNavigation.ts +9 -9
  603. package/src/web/browser/parseSearchResponse.test.ts +8 -2
  604. package/src/web/browser/sections.test.ts +91 -0
  605. package/src/web/browser/sections.ts +72 -0
  606. package/src/web/http/RequestConfigBuilder.test.ts +241 -1
  607. package/src/web/http/RequestConfigBuilder.ts +140 -33
  608. package/src/web/http/followMediaRedirect.test.ts +289 -0
  609. package/src/web/http/followMediaRedirect.ts +253 -0
  610. package/src/web/player/NowPlayingManager.ts +4 -3
  611. package/src/web/util/BrowserPathHelper.test.ts +52 -0
  612. package/src/web/util/BrowserPathHelper.ts +61 -13
  613. package/website/guide/android-auto.md +114 -0
  614. package/website/guide/android-certificates.md +409 -0
  615. package/website/guide/artwork.md +255 -0
  616. package/website/guide/audio-output.md +135 -0
  617. package/website/guide/automotive.md +86 -0
  618. package/website/guide/basic-usage.md +151 -0
  619. package/website/guide/battery.md +115 -0
  620. package/website/guide/browser.md +581 -0
  621. package/website/guide/carplay.md +620 -0
  622. package/website/guide/configuration.md +173 -0
  623. package/website/guide/equalizer.md +231 -0
  624. package/website/guide/errors.md +310 -0
  625. package/website/guide/favorites.md +154 -0
  626. package/website/guide/gate.md +143 -0
  627. package/website/guide/getting-started.md +46 -0
  628. package/website/guide/hooks.md +238 -0
  629. package/website/guide/live-streams.md +125 -0
  630. package/website/guide/metadata.md +239 -0
  631. package/website/guide/migrating-from-track-player.md +244 -0
  632. package/website/guide/native-callback-fetch.md +127 -0
  633. package/website/guide/network.md +86 -0
  634. package/website/guide/now-playing.md +175 -0
  635. package/website/guide/playback.md +328 -0
  636. package/website/guide/queue.md +300 -0
  637. package/website/guide/remote-controls.md +256 -0
  638. package/website/guide/search.md +255 -0
  639. package/website/guide/sleep-timer.md +268 -0
  640. package/website/guide/track.md +247 -0
  641. package/ios/CarPlay/ImageRowItem+CarPlay.swift +0 -19
  642. package/ios/Model/MediaURL.swift +0 -67
  643. package/nitrogen/generated/android/c++/JFavoriteConfig.hpp +0 -58
  644. package/nitrogen/generated/android/c++/JImageRowItem.hpp +0 -105
  645. package/nitrogen/generated/android/c++/JNotificationButtonLayout.hpp +0 -94
  646. package/nitrogen/generated/android/c++/JVariant_Boolean_FavoriteConfig.cpp +0 -26
  647. package/nitrogen/generated/android/c++/JVariant_Boolean_FavoriteConfig.hpp +0 -71
  648. package/nitrogen/generated/android/c++/JVariant_NullType_NotificationButtonLayout.cpp +0 -26
  649. package/nitrogen/generated/android/c++/JVariant_NullType_NotificationButtonLayout.hpp +0 -75
  650. package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/ImageRowItem.kt +0 -68
  651. package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/NotificationButtonLayout.kt +0 -50
  652. package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/Variant_Boolean_FavoriteConfig.kt +0 -53
  653. package/nitrogen/generated/ios/swift/FavoriteConfig.swift +0 -29
  654. package/nitrogen/generated/ios/swift/FavoritesMatchMode.swift +0 -40
  655. package/nitrogen/generated/ios/swift/ImageRowItem.swift +0 -195
  656. package/nitrogen/generated/ios/swift/NotificationButtonLayout.swift +0 -92
  657. package/nitrogen/generated/ios/swift/Variant_Bool_FavoriteConfig.swift +0 -18
  658. package/nitrogen/generated/shared/c++/FavoriteConfig.hpp +0 -84
  659. package/nitrogen/generated/shared/c++/ImageRowItem.hpp +0 -129
  660. package/nitrogen/generated/shared/c++/NotificationButtonLayout.hpp +0 -102
@@ -1 +1 @@
1
- {"version":3,"names":["Player","QueueManager","RepeatMode","State","QueuePlayer","queue","applyState","state","Ended","endsQueue","playWhenReady","onTrackEnded","repeatMode","Track","Queue","nextIndex","undefined","currentIndex","goToIndex","onQueueEnded","skipToNext","index","initialPosition","track","getTrack","onLoaded","_track","seekTo","load","_isStopped","play","add","tracks","insertBeforeIndex","insert","skip","Error","wrapAroundFirstIndex","skipToPrevious","previousIndex","wrapAroundLastIndex","setShuffleEnabled","enabled","getShuffleEnabled","shuffleEnabled","setRepeatMode","mode","getRepeatMode","remove","indexes","outcome","kind","current","stop","onComplete","reset","clear","removeUpcomingTracks","removeUpcoming","move","fromIndex","toIndex"],"sourceRoot":"../../../../src","sources":["web/TrackPlayer/QueuePlayer.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["Player","QueueManager","RepeatMode","State","QueuePlayer","queue","applyState","state","Ended","endsQueue","playWhenReady","onTrackEnded","repeatMode","Track","Queue","nextIndex","undefined","currentIndex","goToIndex","onQueueEnded","skipToNext","index","initialPosition","track","getTrack","onLoaded","_track","seekTo","load","_isStopped","play","add","tracks","insertBeforeIndex","insert","skip","Error","wrapAroundFirstIndex","skipToPrevious","previousIndex","wrapAroundLastIndex","setShuffleEnabled","enabled","getShuffleEnabled","shuffleEnabled","setRepeatMode","mode","getRepeatMode","remove","indexes","outcome","kind","current","stop","onComplete","reset","clear","removeUpcomingTracks","removeUpcoming","move","fromIndex","toIndex"],"sourceRoot":"../../../../src","sources":["web/TrackPlayer/QueuePlayer.ts"],"mappings":"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","ignoreList":[]}
@@ -1,11 +1,13 @@
1
1
  "use strict";
2
2
 
3
+ import { getTrackIdentity } from '../../utils/getTrackIdentity';
3
4
  import { assertedNotNullish } from '../../utils/validation';
4
5
  import { RequestConfigBuilder } from '../http/RequestConfigBuilder';
5
6
  import { SimpleRouter } from '../SimpleRouter';
6
7
  import { BrowserPathHelper } from '../util/BrowserPathHelper';
7
8
  import { assertBrowsePageShape } from './assertBrowsePageShape';
8
9
  import { parseSearchResponse } from './parseSearchResponse';
10
+ import { flattenSections, flattenedChildren, normalizePage, sectionContaining } from './sections';
9
11
 
10
12
  /**
11
13
  * Manages browser navigation, route resolution, and content loading.
@@ -123,14 +125,11 @@ export class BrowserManager {
123
125
  // Determine initial path
124
126
  let initialPath = value.path;
125
127
 
126
- // If no path specified, try to get first tab URL
128
+ // If no path specified, try to get first tab path
127
129
  if (!initialPath) {
128
130
  const tabsRoute = value.routes?.find(r => r.path === '__tabs__');
129
- if (tabsRoute?.browseStatic?.children?.[0]?.url) {
130
- initialPath = tabsRoute.browseStatic.children[0].url;
131
- } else {
132
- initialPath = '/';
133
- }
131
+ const staticTabs = tabsRoute?.browseStatic ? flattenedChildren(tabsRoute.browseStatic) : [];
132
+ initialPath = staticTabs[0]?.path ?? '/';
134
133
  }
135
134
  if (initialPath) {
136
135
  void this.navigate(initialPath);
@@ -146,16 +145,16 @@ export class BrowserManager {
146
145
  }
147
146
 
148
147
  /**
149
- * Navigates to a track's URL.
148
+ * Navigates to a track's path.
150
149
  */
151
150
  async navigateTrack(track) {
152
151
  this.navigationErrorManager.clearNavigationError();
153
- const url = track.url;
154
- if (!url) {
155
- console.warn('Track has no URL to navigate to');
152
+ const path = track.path;
153
+ if (!path) {
154
+ console.warn('Track has no path to navigate to');
156
155
  return;
157
156
  }
158
- await this.navigate(url);
157
+ await this.navigate(path);
159
158
  }
160
159
 
161
160
  /**
@@ -208,28 +207,15 @@ export class BrowserManager {
208
207
  return;
209
208
  }
210
209
 
211
- // Add contextual URLs to non-search content (matches Android behavior where
212
- // search() bypasses the resolve() contextual URL logic).
213
- // Shallow copy to avoid mutating the original config object (e.g., browseStatic
214
- // from routes), which would break search that reads from the same source.
215
- if (content?.children && !isSearchPath) {
210
+ // Resolution returns canonical sectioned pages; add contextual paths
211
+ // to non-search content (matches Android behavior where search()
212
+ // bypasses the resolve() contextual-path logic). Copies avoid mutating
213
+ // the original config object (e.g., browseStatic from routes), which
214
+ // would break search that reads from the same source.
215
+ if (content?.sections && !isSearchPath) {
216
216
  content = {
217
217
  ...content,
218
- children: content.children.map(track => {
219
- // If track has src, always add/update contextual URL with current path context
220
- // This matches Android's BrowserManager.kt:436-441
221
- if (track.src) {
222
- const contextualUrl = `${path}?__trackId=${encodeURIComponent(track.src)}`;
223
- return {
224
- ...track,
225
- url: contextualUrl
226
- };
227
- }
228
- // Return a shallow copy in attempt to avoid mutating original config objects
229
- return {
230
- ...track
231
- };
232
- })
218
+ sections: this.addContextualPaths(path, content.sections)
233
219
  };
234
220
  }
235
221
 
@@ -274,13 +260,45 @@ export class BrowserManager {
274
260
  }
275
261
  }
276
262
 
263
+ /**
264
+ * Stamps contextual paths onto a page's sections. A playable track gets a
265
+ * contextual path carrying its identity (id ?? src) so the queue can be
266
+ * re-expanded from it later, plus its flat page position (children
267
+ * concatenated in section order — ADR 0009/0010) as a duplicate-identity
268
+ * tie-breaker. Non-playable tracks are shallow-copied to avoid mutating
269
+ * original config objects (e.g., browseStatic from routes).
270
+ */
271
+ addContextualPaths(path, sections) {
272
+ let index = 0;
273
+ return sections.map(section => ({
274
+ ...section,
275
+ children: section.children.map(track => {
276
+ const flatIndex = index++;
277
+ const identity = getTrackIdentity(track);
278
+ if (track.src && identity) {
279
+ return {
280
+ ...track,
281
+ path: BrowserPathHelper.build(path, identity, flatIndex)
282
+ };
283
+ }
284
+ return {
285
+ ...track
286
+ };
287
+ })
288
+ }));
289
+ }
290
+
277
291
  /**
278
292
  * Resolves search content from a search path.
279
- * Returns a ResolvedTrack with raw children (no contextual URLs).
293
+ * Returns a canonical sectioned page — one untitled section of raw search
294
+ * results (no contextual URLs), like the native `makeSearchResult`.
280
295
  * Matches Android's BrowserManager.search() which bypasses resolve() entirely.
281
296
  *
297
+ * A failed search propagates, so `navigate` turns it into a navigation error
298
+ * the way it does a failed browse resolve.
299
+ *
282
300
  * @param searchPath The search path (format: /__search?q=query)
283
- * @returns ResolvedTrack containing search results as children
301
+ * @returns ResolvedTrack containing search results as one untitled section
284
302
  */
285
303
  async resolveSearchContent(searchPath) {
286
304
  // Extract query from search path
@@ -308,23 +326,17 @@ export class BrowserManager {
308
326
  }
309
327
  // Handle request config-based search via the shared layered fetch.
310
328
  else if (searchRoute.searchConfig) {
311
- try {
312
- searchResults = await this.fetchSearchResults(searchRoute.searchConfig, {
313
- q: query
314
- });
315
- } catch (error) {
316
- console.error('Search failed:', error);
317
- return undefined;
318
- }
329
+ searchResults = await this.fetchSearchResults(searchRoute.searchConfig, {
330
+ q: query
331
+ });
319
332
  }
320
333
 
321
- // Create ResolvedTrack with raw children
322
- // Search callbacks should return fresh tracks without contextual URLs (like Android)
323
- return {
324
- url: searchPath,
334
+ // Search callbacks should return fresh tracks without contextual paths (like Android)
335
+ return normalizePage({
336
+ path: searchPath,
325
337
  title: `Search: ${query}`,
326
338
  children: searchResults
327
- };
339
+ });
328
340
  }
329
341
 
330
342
  /**
@@ -333,10 +345,13 @@ export class BrowserManager {
333
345
  * Matches Android's artwork URL transformation with full Track access.
334
346
  */
335
347
  async transformArtworkForContent(content) {
348
+ // No short-circuit on a missing artwork config: Android gates per *track*
349
+ // (`artworkConfig == null && track.artwork == null`), so a track carrying a
350
+ // plain `artwork` URL still gets an `artworkSource`. Returning early here
351
+ // meant an app with no `artwork` block never populated the field at all —
352
+ // `resolveArtworkSourceAsync` already handles the no-config case the way
353
+ // `resolveArtworkUrl` does on Android.
336
354
  const artworkConfig = this._configuration.artwork;
337
- if (!artworkConfig) {
338
- return content;
339
- }
340
355
  // The shared request layer applies to artwork too — use the resolved layer
341
356
  // (resolver result or static config) so a resolver-only config still works.
342
357
  await this.ensureLayersResolved();
@@ -345,30 +360,35 @@ export class BrowserManager {
345
360
  // Transform parent artwork
346
361
  const parentArtworkSource = await RequestConfigBuilder.resolveArtworkSourceAsync(content, requestConfig, artworkConfig);
347
362
 
348
- // Transform children artwork
349
- let transformedChildren;
350
- if (content.children) {
351
- transformedChildren = await Promise.all(content.children.map(async track => {
352
- const artworkSource = await RequestConfigBuilder.resolveArtworkSourceAsync(track, requestConfig, artworkConfig);
353
- if (artworkSource && !track.artworkSource) {
354
- return {
355
- ...track,
356
- artworkSource
357
- };
358
- }
359
- return track;
360
- }));
363
+ // Transform children artwork, section by section
364
+ const transformTrack = async track => {
365
+ const artworkSource = await RequestConfigBuilder.resolveArtworkSourceAsync(track, requestConfig, artworkConfig);
366
+ if (artworkSource && !track.artworkSource) {
367
+ return {
368
+ ...track,
369
+ artworkSource
370
+ };
371
+ }
372
+ return track;
373
+ };
374
+ let transformedSections;
375
+ if (content.sections) {
376
+ transformedSections = await Promise.all(content.sections.map(async section => ({
377
+ ...section,
378
+ children: await Promise.all(section.children.map(transformTrack))
379
+ })));
361
380
  }
362
381
  return {
363
382
  ...content,
364
383
  artworkSource: parentArtworkSource ?? content.artworkSource,
365
- children: transformedChildren ?? content.children
384
+ sections: transformedSections ?? content.sections
366
385
  };
367
386
  }
368
387
 
369
388
  /**
370
389
  * Resolves content from a route using browseCallback, browseStatic, or browseConfig.
371
- * Single source of truth for route resolution logic.
390
+ * Single source of truth for route resolution logic. Returns canonical
391
+ * sectioned pages (normalizePage) — consumers never see authored `children`.
372
392
  *
373
393
  * @param route The route configuration to resolve
374
394
  * @param path The path being navigated to
@@ -388,19 +408,20 @@ export class BrowserManager {
388
408
  this.navigationErrorManager.setNavigationError('callback-error', result.error, path);
389
409
  return undefined;
390
410
  }
391
- return result;
411
+ return normalizePage(result);
392
412
  }
393
413
 
394
- // Handle static ResolvedTrack route
414
+ // Handle static ResolvedTrack route (normalizePage also copies, so the
415
+ // config object itself is never handed out)
395
416
  if (route.browseStatic) {
396
- return route.browseStatic;
417
+ return normalizePage(route.browseStatic);
397
418
  }
398
419
 
399
420
  // Handle request config-based route via the layered request → browse → route
400
421
  // chain (matches native's resolveRouteEntry → resolveFromConfig).
401
422
  if (route.browseConfig) {
402
423
  try {
403
- return await this.resolveFromConfig(this._configuration.browse, route.browseConfig, path, routeParams);
424
+ return normalizePage(await this.resolveFromConfig(this._configuration.browse, route.browseConfig, path, routeParams));
404
425
  } catch (error) {
405
426
  console.error(`Failed to resolve ${errorContext}:`, error);
406
427
  this.handleNavigationError(error, path);
@@ -410,6 +431,22 @@ export class BrowserManager {
410
431
  return undefined;
411
432
  }
412
433
 
434
+ /**
435
+ * Ensures the request layer is resolved for the current generation and
436
+ * returns it — the resolver's result when a `requestResolver` is configured,
437
+ * else the static `request`.
438
+ *
439
+ * Consumers outside the browse path (media URL building, artwork) must reach
440
+ * the request layer through this rather than reading `configuration.request`,
441
+ * or a resolver-only config silently loses its baseUrl, headers and transform
442
+ * exactly where a credential is needed. Mirrors Android's
443
+ * `BrowserManager.resolvedRequestConfig()`, which carries the same warning.
444
+ */
445
+ async resolvedRequestConfig() {
446
+ await this.ensureLayersResolved();
447
+ return this._resolvedRequest;
448
+ }
449
+
413
450
  /**
414
451
  * Ensures the request/browse layer configs are resolved for the current
415
452
  * generation. Any present resolver is invoked once per generation and the
@@ -474,7 +511,7 @@ export class BrowserManager {
474
511
  * `request → search` chain (search is its own kind — no browse layer). The
475
512
  * query params are seeded on the base so they survive both the static merge
476
513
  * and a search `transform`. Shared by `resolveSearchContent` (navigating to a
477
- * search path) and `SearchManager` (the voice/`onSearch` API), so the ladder
514
+ * search path) and `SearchManager` (the voice/`search` API), so the ladder
478
515
  * isn't duplicated. Errors propagate to the caller.
479
516
  */
480
517
  async fetchSearchResults(searchConfig, queryParams) {
@@ -489,6 +526,8 @@ export class BrowserManager {
489
526
 
490
527
  /**
491
528
  * Resolves content for a specific path using configured routes.
529
+ * Like the native resolve pipelines, the returned page is canonical
530
+ * sectioned shape — `children` sugar is normalized away at this seam.
492
531
  */
493
532
  async resolveContent(path) {
494
533
  const routes = this._configuration.routes;
@@ -530,9 +569,9 @@ export class BrowserManager {
530
569
  // there's no content.
531
570
  if (this._configuration.request || this._configuration.requestResolver || this._configuration.browse || this._configuration.browseResolver) {
532
571
  try {
533
- return await this.resolveFromConfig(this._configuration.browse, undefined, path, {
572
+ return normalizePage(await this.resolveFromConfig(this._configuration.browse, undefined, path, {
534
573
  path
535
- });
574
+ }));
536
575
  } catch (error) {
537
576
  console.error('Failed to resolve default browse content:', error);
538
577
  this.handleNavigationError(error, path);
@@ -551,12 +590,14 @@ export class BrowserManager {
551
590
  return [];
552
591
  }
553
592
  const result = await this.resolveRouteContent(tabsRoute, '/', {}, 'Tabs');
554
- const tabs = result?.children ?? [];
593
+ // Tabs are a flat list, not a page — a sectioned tabs source flattens.
594
+ const tabs = result ? flattenSections(result.sections) : [];
555
595
 
556
596
  // Transform artwork URLs on tabs via the async resolver so the shared
557
597
  // request layer (incl. its transform) applies, matching content/search.
598
+ // Gated per track inside the resolver, as on Android — see
599
+ // `transformArtworkForContent`.
558
600
  const artworkConfig = this._configuration.artwork;
559
- if (!artworkConfig) return tabs;
560
601
  // Resolved request layer (resolver or static), matching content/search.
561
602
  await this.ensureLayersResolved();
562
603
  const requestConfig = this._resolvedRequest;
@@ -582,35 +623,65 @@ export class BrowserManager {
582
623
  /**
583
624
  * Expands a queue from a contextual URL.
584
625
  * Resolves the parent container to get all siblings.
585
- * Matches Android's BrowserManager.expandQueueFromContextualUrl() behavior.
626
+ * Matches Android's BrowserManager.expandQueueFromContextualPath() behavior.
586
627
  *
587
- * @param contextualUrl The contextual URL (format: /path?__trackId=trackSrc)
628
+ * @param contextualPath The contextual path (format: /path?__trackId=trackSrc)
588
629
  * @returns Object with tracks and selectedIndex, or undefined if expansion fails
589
630
  */
590
- async expandQueueFromContextualUrl(contextualUrl) {
591
- const trackId = BrowserPathHelper.extractTrackId(contextualUrl);
631
+ async expandQueueFromContextualPath(contextualPath) {
632
+ const trackId = BrowserPathHelper.extractTrackId(contextualPath);
592
633
  if (!trackId) return undefined;
593
634
  try {
594
635
  // Resolve the parent container to get all siblings
595
- const parentPath = BrowserPathHelper.stripTrackId(contextualUrl);
636
+ const parentPath = BrowserPathHelper.stripTrackId(contextualPath);
596
637
  const parentResolvedTrack = await this.resolveContent(parentPath);
597
- const children = parentResolvedTrack?.children;
598
- if (!children || children.length === 0) {
638
+ const rawSections = parentResolvedTrack?.sections;
639
+ if (!rawSections || rawSections.every(s => s.children.length === 0)) {
599
640
  console.warn('Parent has no children, cannot expand queue');
600
641
  return undefined;
601
642
  }
602
643
 
603
- // Filter to only playable tracks (tracks with src)
604
- const playableTracks = children.filter(track => track.src != null);
644
+ // Stamp contextual paths so queued tracks carry their own queue context
645
+ // (navigate() stamps the displayed page the same way).
646
+ const sections = this.addContextualPaths(parentPath, rawSections);
647
+
648
+ // Queue scope is the tapped section, not the whole page (ADR 0006).
649
+ // The stamped flat index pins which section (and which copy) was
650
+ // tapped when the same identity appears more than once; a stale index
651
+ // falls back to the first identity match. An identity that no longer
652
+ // appears on the page aborts the expansion — the caller falls back to
653
+ // the single track.
654
+ const tappedIndex = BrowserPathHelper.extractIndex(contextualPath);
655
+ const scoped = sectionContaining(sections, trackId, tappedIndex);
656
+ if (!scoped) {
657
+ console.warn(`Track with identity='${trackId}' not found on parent page`);
658
+ return undefined;
659
+ }
660
+
661
+ // Filter to only playable tracks (tracks with src). A disabled track is
662
+ // unavailable — queue expansion excludes it, so auto-advance never
663
+ // meets one (Track.disabled).
664
+ const isQueueable = track => track.src != null && track.disabled !== true;
665
+ const playableTracks = scoped.tracks.filter(isQueueable);
605
666
  if (playableTracks.length === 0) {
606
- console.warn('Parent has no playable tracks, cannot expand queue');
667
+ console.warn('Section has no playable tracks, cannot expand queue');
607
668
  return undefined;
608
669
  }
609
670
 
610
- // Find the index of the selected track in the playable tracks array
611
- const selectedIndex = playableTracks.findIndex(track => track.src === trackId);
671
+ // Selected position: the pinned copy when the stamp survived, else
672
+ // the first identity match.
673
+ let selectedIndex = -1;
674
+ if (scoped.tappedOffset !== undefined) {
675
+ const tapped = scoped.tracks[scoped.tappedOffset];
676
+ if (tapped != null && isQueueable(tapped)) {
677
+ selectedIndex = scoped.tracks.slice(0, scoped.tappedOffset + 1).filter(isQueueable).length - 1;
678
+ }
679
+ }
680
+ if (selectedIndex < 0) {
681
+ selectedIndex = playableTracks.findIndex(track => getTrackIdentity(track) === trackId);
682
+ }
612
683
  if (selectedIndex < 0) {
613
- console.warn(`Track with src='${trackId}' not found in playable children`);
684
+ console.warn(`Track with identity='${trackId}' not found in playable children`);
614
685
  return undefined;
615
686
  }
616
687
 
@@ -626,7 +697,7 @@ export class BrowserManager {
626
697
  selectedIndex
627
698
  };
628
699
  } catch (error) {
629
- console.error(`Error expanding queue from contextual URL: ${contextualUrl}`, error);
700
+ console.error(`Error expanding queue from contextual path: ${contextualPath}`, error);
630
701
  return undefined;
631
702
  }
632
703
  }
@@ -643,19 +714,23 @@ export class BrowserManager {
643
714
  * @returns Object with expanded tracks and starting index
644
715
  */
645
716
  async resolveMediaItemsForPlayback(tracks, startIndex, startPositionMs, searchQuery) {
646
- // Single track: check for search context or contextual URL
717
+ // Single track: check for search context or contextual path
647
718
  if (tracks.length === 1) {
648
719
  const track = assertedNotNullish(tracks[0]);
649
- const trackUrl = track.url;
720
+ const trackPath = track.path;
650
721
 
651
722
  // If search query present, expand search results
652
723
  if (searchQuery) {
653
- // Execute search (will hit cache if already performed)
724
+ // Execute search (will hit cache if already performed). Disabled
725
+ // tracks never play, so they never enter a search-built queue
726
+ // (Track.disabled — mirrors both native platforms).
654
727
  const searchResults = await this.resolveSearchContent(BrowserPathHelper.createSearchPath(searchQuery));
655
- const searchTracks = searchResults?.children;
656
- if (searchTracks && searchTracks.length > 0) {
657
- // Find the selected track in search results
658
- const selectedIdx = searchTracks.findIndex(t => t.url === trackUrl || t.src === track.src);
728
+ const searchTracks = flattenSections(searchResults?.sections).filter(t => t.disabled !== true);
729
+ if (searchTracks.length > 0) {
730
+ // Find the selected track in search results by path or identity
731
+ // (matches Android's three-way mediaId match)
732
+ const identity = getTrackIdentity(track);
733
+ const selectedIdx = searchTracks.findIndex(t => t.path === trackPath || identity !== undefined && getTrackIdentity(t) === identity);
659
734
  if (selectedIdx >= 0) {
660
735
  return {
661
736
  tracks: searchTracks,
@@ -666,14 +741,14 @@ export class BrowserManager {
666
741
  }
667
742
  }
668
743
 
669
- // Check if contextual URL - expand from parent
744
+ // Check if contextual path - expand from parent
670
745
  // Note: The queueSourcePath optimization is handled by the caller (NativeAudioBrowser.navigateTrackAsync)
671
746
  // which has access to the existing queue and can skip to the track directly.
672
747
  // This matches Android where MediaSessionCallback handles the optimization before calling
673
748
  // BrowserManager.resolveMediaItemsForPlayback.
674
- if (trackUrl && BrowserPathHelper.isContextual(trackUrl)) {
675
- const parentPath = BrowserPathHelper.stripTrackId(trackUrl);
676
- const expanded = await this.expandQueueFromContextualUrl(trackUrl);
749
+ if (trackPath && BrowserPathHelper.isContextual(trackPath)) {
750
+ const parentPath = BrowserPathHelper.stripTrackId(trackPath);
751
+ const expanded = await this.expandQueueFromContextualPath(trackPath);
677
752
  if (expanded) {
678
753
  // Store source path for optimization by caller on next invocation
679
754
  this._queueSourcePath = parentPath;
@@ -695,13 +770,13 @@ export class BrowserManager {
695
770
  }
696
771
 
697
772
  /**
698
- * Gets the default navigation path (first tab URL or '/').
773
+ * Gets the default navigation path (first tab path or '/').
699
774
  */
700
775
  getDefaultPath() {
701
776
  // Try to get first tab as default path
702
777
  if (this._tabs && this._tabs.length > 0) {
703
778
  const firstTab = this._tabs[0];
704
- return firstTab?.url ?? '/';
779
+ return firstTab?.path ?? '/';
705
780
  }
706
781
  return '/';
707
782
  }
@@ -1 +1 @@
1
- {"version":3,"names":["assertedNotNullish","RequestConfigBuilder","SimpleRouter","BrowserPathHelper","assertBrowsePageShape","parseSearchResponse","BrowserManager","_configuration","router","_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","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","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","queryParams","length","routePatterns","findBestMatch","matchedPattern","routeMatch","matchedRoute","defaultRoute","expandQueueFromContextualUrl","trackId","extractTrackId","parentPath","stripTrackId","parentResolvedTrack","playableTracks","filter","selectedIndex","findIndex","singleTrack","tracks","resolveMediaItemsForPlayback","startIndex","startPositionMs","searchQuery","trackUrl","createSearchPath","searchTracks","selectedIdx","t","isContextual","expanded","firstTab"],"sourceRoot":"../../../../src","sources":["web/browser/BrowserManager.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["getTrackIdentity","assertedNotNullish","RequestConfigBuilder","SimpleRouter","BrowserPathHelper","assertBrowsePageShape","parseSearchResponse","flattenSections","flattenedChildren","normalizePage","sectionContaining","BrowserManager","_configuration","router","_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","staticTabs","browseStatic","navigatePath","navigateTrack","track","console","warn","notifyContentChanged","invalidateAllContent","navigationId","undefined","isSearchPath","startsWith","SEARCH_PATH_PREFIX","resolveSearchContent","resolveContent","sections","addContextualPaths","hydrateChildren","transformArtworkForContent","queryTabs","index","map","section","children","flatIndex","identity","src","build","searchPath","queryMatch","match","query","decodeURIComponent","searchRoute","searchResults","searchCallback","reference","searchConfig","fetchSearchResults","q","title","artworkConfig","artwork","ensureLayersResolved","requestConfig","_resolvedRequest","parentArtworkSource","resolveArtworkSourceAsync","transformTrack","artworkSource","transformedSections","Promise","all","resolveRouteContent","route","routeParams","errorContext","browseCallback","result","browseConfig","resolveFromConfig","browse","resolvedRequestConfig","_layerResolution","generation","promise","cfg","resolvedRequest","requestResolver","request","resolvedBrowse","browseResolver","_resolvedBrowse","catch","err","kindConfig","routeConfig","params","merged","applyLayers","response","executeRequest","queryParams","length","routePatterns","findBestMatch","matchedPattern","routeMatch","matchedRoute","defaultRoute","expandQueueFromContextualPath","contextualPath","trackId","extractTrackId","parentPath","stripTrackId","parentResolvedTrack","rawSections","every","s","tappedIndex","extractIndex","scoped","isQueueable","disabled","playableTracks","tracks","filter","selectedIndex","tappedOffset","tapped","slice","findIndex","singleTrack","resolveMediaItemsForPlayback","startIndex","startPositionMs","searchQuery","trackPath","createSearchPath","searchTracks","t","selectedIdx","isContextual","expanded","firstTab"],"sourceRoot":"../../../../src","sources":["web/browser/BrowserManager.ts"],"mappings":"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","ignoreList":[]}