@5stones/react-native-audio-browser 0.1.6 → 0.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (593) hide show
  1. package/AudioBrowser.podspec +3 -1
  2. package/android/src/main/cpp/cpp-adapter.cpp +4 -1
  3. package/android/src/main/java/com/audiobrowser/AudioBrowser.kt +15 -9
  4. package/android/src/main/java/com/audiobrowser/Service.kt +0 -2
  5. package/android/src/main/java/com/audiobrowser/browser/BrowserManager.kt +5 -0
  6. package/android/src/main/java/com/audiobrowser/browser/JsonModels.kt +31 -0
  7. package/android/src/main/java/com/audiobrowser/browser/SimpleRouter.kt +10 -6
  8. package/android/src/main/java/com/audiobrowser/browser/TrackLoadHandler.kt +45 -0
  9. package/android/src/main/java/com/audiobrowser/player/MediaSessionCallback.kt +39 -17
  10. package/android/src/main/java/com/audiobrowser/player/PlaybackStateStore.kt +1 -0
  11. package/android/src/main/java/com/audiobrowser/player/Player.kt +1 -0
  12. package/android/src/main/java/com/audiobrowser/player/TransformingDataSource.kt +33 -11
  13. package/android/src/test/java/com/audiobrowser/browser/SimpleRouterTest.kt +104 -95
  14. package/ios/Browser/BrowserConfig.swift +31 -5
  15. package/ios/Browser/BrowserManager.swift +98 -23
  16. package/ios/Browser/JsonModels.swift +37 -0
  17. package/ios/CarPlay/CarPlayController.swift +256 -88
  18. package/ios/CarPlay/RNABAudioBrowser.h +23 -0
  19. package/ios/CarPlay/RNABAudioBrowser.m +22 -0
  20. package/ios/CarPlay/RNABMediaIntentHandler.swift +60 -0
  21. package/ios/Extension/ChapterMetadata+AVFoundation.swift +1 -1
  22. package/ios/Extension/CxxVectorConformances.swift +20 -0
  23. package/ios/Extension/TimedMetadata+AVFoundation.swift +5 -5
  24. package/ios/Extension/Track+AVPlayer.swift +5 -6
  25. package/ios/Extension/TrackMetadata+AVFoundation.swift +1 -1
  26. package/ios/HybridAudioBrowser.swift +126 -35
  27. package/ios/Model/MediaURL.swift +2 -1
  28. package/ios/Player/PlayingStateManager.swift +1 -0
  29. package/ios/Player/RetryManager.swift +26 -65
  30. package/ios/Player/SleepTimerManager.swift +6 -8
  31. package/ios/RemoteCommand/RemoteCommandController.swift +6 -0
  32. package/ios/Tests/SimpleRouterTests.swift +139 -0
  33. package/ios/TrackPlayer.swift +71 -53
  34. package/ios/Util/NetworkMonitor.swift +3 -6
  35. package/ios/Util/SFSymbolRenderer.swift +142 -0
  36. package/lib/commonjs/features/browser.js +1 -0
  37. package/lib/commonjs/features/browser.js.map +1 -1
  38. package/lib/commonjs/web/NativeAudioBrowser.js +32 -7
  39. package/lib/commonjs/web/NativeAudioBrowser.js.map +1 -1
  40. package/lib/commonjs/web/SimpleRouter.js +4 -3
  41. package/lib/commonjs/web/SimpleRouter.js.map +1 -1
  42. package/lib/commonjs/web/SimpleRouter.test.js +174 -0
  43. package/lib/commonjs/web/SimpleRouter.test.js.map +1 -0
  44. package/lib/module/features/browser.js +1 -0
  45. package/lib/module/features/browser.js.map +1 -1
  46. package/lib/module/web/NativeAudioBrowser.js +32 -7
  47. package/lib/module/web/NativeAudioBrowser.js.map +1 -1
  48. package/lib/module/web/SimpleRouter.js +4 -3
  49. package/lib/module/web/SimpleRouter.js.map +1 -1
  50. package/lib/module/web/SimpleRouter.test.js +174 -0
  51. package/lib/module/web/SimpleRouter.test.js.map +1 -0
  52. package/lib/typescript/src/features/browser.d.ts.map +1 -1
  53. package/lib/typescript/src/types/browser-native.d.ts +2 -1
  54. package/lib/typescript/src/types/browser-native.d.ts.map +1 -1
  55. package/lib/typescript/src/types/browser-nodes.d.ts +46 -1
  56. package/lib/typescript/src/types/browser-nodes.d.ts.map +1 -1
  57. package/lib/typescript/src/types/browser.d.ts +32 -0
  58. package/lib/typescript/src/types/browser.d.ts.map +1 -1
  59. package/lib/typescript/src/web/NativeAudioBrowser.d.ts +7 -0
  60. package/lib/typescript/src/web/NativeAudioBrowser.d.ts.map +1 -1
  61. package/lib/typescript/src/web/SimpleRouter.d.ts.map +1 -1
  62. package/lib/typescript/src/web/SimpleRouter.test.d.ts +2 -0
  63. package/lib/typescript/src/web/SimpleRouter.test.d.ts.map +1 -0
  64. package/nitrogen/generated/android/AudioBrowser+autolinking.cmake +1 -1
  65. package/nitrogen/generated/android/AudioBrowser+autolinking.gradle +1 -1
  66. package/nitrogen/generated/android/AudioBrowserOnLoad.cpp +67 -55
  67. package/nitrogen/generated/android/AudioBrowserOnLoad.hpp +14 -5
  68. package/nitrogen/generated/android/c++/JAndroidAudioContentType.hpp +6 -7
  69. package/nitrogen/generated/android/c++/JAndroidAudioOffloadSettings.hpp +1 -1
  70. package/nitrogen/generated/android/c++/JAndroidOptions.hpp +1 -1
  71. package/nitrogen/generated/android/c++/JAndroidPlayerWakeMode.hpp +4 -5
  72. package/nitrogen/generated/android/c++/JAndroidUpdateOptions.hpp +1 -1
  73. package/nitrogen/generated/android/c++/JAppKilledPlaybackBehavior.hpp +4 -5
  74. package/nitrogen/generated/android/c++/JArtworkRequestConfig.hpp +4 -1
  75. package/nitrogen/generated/android/c++/JBatteryOptimizationStatus.hpp +4 -5
  76. package/nitrogen/generated/android/c++/JBatteryOptimizationStatusChangedEvent.hpp +1 -1
  77. package/nitrogen/generated/android/c++/JBatteryWarningPendingChangedEvent.hpp +1 -1
  78. package/nitrogen/generated/android/c++/JBrowseError.hpp +1 -1
  79. package/nitrogen/generated/android/c++/JBrowseResult.cpp +1 -1
  80. package/nitrogen/generated/android/c++/JBrowseResult.hpp +7 -3
  81. package/nitrogen/generated/android/c++/JBrowserSourceCallbackParam.hpp +1 -1
  82. package/nitrogen/generated/android/c++/JCarPlayNowPlayingButton.hpp +5 -6
  83. package/nitrogen/generated/android/c++/JCarPlaySiriListButtonPosition.hpp +58 -0
  84. package/nitrogen/generated/android/c++/JChapterMetadata.hpp +1 -1
  85. package/nitrogen/generated/android/c++/JEqualizerSettings.hpp +1 -1
  86. package/nitrogen/generated/android/c++/JFavoriteChangedEvent.hpp +4 -1
  87. package/nitrogen/generated/android/c++/JFormatNavigationErrorParams.hpp +1 -1
  88. package/nitrogen/generated/android/c++/JFormattedNavigationError.hpp +1 -1
  89. package/nitrogen/generated/android/c++/JFunc_std__shared_ptr_Promise_std__optional_FormattedNavigationError____FormatNavigationErrorParams.hpp +1 -1
  90. package/nitrogen/generated/android/c++/JFunc_std__shared_ptr_Promise_std__shared_ptr_Promise_RequestConfig_____MediaTransformParams.hpp +1 -1
  91. package/nitrogen/generated/android/c++/JFunc_std__shared_ptr_Promise_std__shared_ptr_Promise_RequestConfig_____RequestConfig_std__optional_std__unordered_map_std__string__std__string__.hpp +1 -1
  92. package/nitrogen/generated/android/c++/JFunc_std__shared_ptr_Promise_std__shared_ptr_Promise_RequestConfig_____Track.hpp +4 -1
  93. package/nitrogen/generated/android/c++/JFunc_std__shared_ptr_Promise_std__shared_ptr_Promise_std__variant_ResolvedTrack__BrowseError______BrowserSourceCallbackParam.hpp +5 -1
  94. package/nitrogen/generated/android/c++/JFunc_std__shared_ptr_Promise_std__shared_ptr_Promise_std__vector_Track______SearchParams.hpp +3 -1
  95. package/nitrogen/generated/android/c++/JFunc_std__shared_ptr_Promise_std__shared_ptr_Promise_void_____TrackLoadEvent.hpp +139 -0
  96. package/nitrogen/generated/android/c++/JFunc_void.hpp +1 -1
  97. package/nitrogen/generated/android/c++/JFunc_void_BatteryOptimizationStatusChangedEvent.hpp +1 -1
  98. package/nitrogen/generated/android/c++/JFunc_void_BatteryWarningPendingChangedEvent.hpp +1 -1
  99. package/nitrogen/generated/android/c++/JFunc_void_EqualizerSettings.hpp +1 -1
  100. package/nitrogen/generated/android/c++/JFunc_void_FavoriteChangedEvent.hpp +4 -1
  101. package/nitrogen/generated/android/c++/JFunc_void_IosOutput.hpp +1 -1
  102. package/nitrogen/generated/android/c++/JFunc_void_NavigationErrorEvent.hpp +1 -1
  103. package/nitrogen/generated/android/c++/JFunc_void_NowPlayingMetadata.hpp +1 -1
  104. package/nitrogen/generated/android/c++/JFunc_void_Options.hpp +1 -1
  105. package/nitrogen/generated/android/c++/JFunc_void_Playback.hpp +1 -1
  106. package/nitrogen/generated/android/c++/JFunc_void_PlaybackActiveTrackChangedEvent.hpp +4 -1
  107. package/nitrogen/generated/android/c++/JFunc_void_PlaybackErrorEvent.hpp +1 -1
  108. package/nitrogen/generated/android/c++/JFunc_void_PlaybackPlayWhenReadyChangedEvent.hpp +1 -1
  109. package/nitrogen/generated/android/c++/JFunc_void_PlaybackProgressUpdatedEvent.hpp +1 -1
  110. package/nitrogen/generated/android/c++/JFunc_void_PlaybackQueueEndedEvent.hpp +1 -1
  111. package/nitrogen/generated/android/c++/JFunc_void_PlayingState.hpp +1 -1
  112. package/nitrogen/generated/android/c++/JFunc_void_RemoteJumpBackwardEvent.hpp +1 -1
  113. package/nitrogen/generated/android/c++/JFunc_void_RemoteJumpForwardEvent.hpp +1 -1
  114. package/nitrogen/generated/android/c++/JFunc_void_RemotePlayIdEvent.hpp +1 -1
  115. package/nitrogen/generated/android/c++/JFunc_void_RemotePlaySearchEvent.hpp +1 -1
  116. package/nitrogen/generated/android/c++/JFunc_void_RemoteSeekEvent.hpp +1 -1
  117. package/nitrogen/generated/android/c++/JFunc_void_RemoteSetRatingEvent.hpp +1 -1
  118. package/nitrogen/generated/android/c++/JFunc_void_RemoteSkipEvent.hpp +1 -1
  119. package/nitrogen/generated/android/c++/JFunc_void_RepeatModeChangedEvent.hpp +1 -1
  120. package/nitrogen/generated/android/c++/JFunc_void_TimedMetadata.hpp +1 -1
  121. package/nitrogen/generated/android/c++/JFunc_void_TrackMetadata.hpp +1 -1
  122. package/nitrogen/generated/android/c++/JFunc_void_bool.hpp +1 -1
  123. package/nitrogen/generated/android/c++/JFunc_void_double.hpp +1 -1
  124. package/nitrogen/generated/android/c++/JFunc_void_std__optional_FormattedNavigationError_.hpp +1 -1
  125. package/nitrogen/generated/android/c++/JFunc_void_std__optional_ResolvedTrack_.hpp +5 -1
  126. package/nitrogen/generated/android/c++/JFunc_void_std__optional_std__variant_nitro__NullType__SleepTimerTime__SleepTimerEndOfTrack__.hpp +1 -1
  127. package/nitrogen/generated/android/c++/JFunc_void_std__string.hpp +1 -1
  128. package/nitrogen/generated/android/c++/JFunc_void_std__vector_ChapterMetadata_.hpp +1 -1
  129. package/nitrogen/generated/android/c++/JFunc_void_std__vector_Track_.hpp +3 -1
  130. package/nitrogen/generated/android/c++/JHeartRating.hpp +1 -1
  131. package/nitrogen/generated/android/c++/JHttpMethod.hpp +8 -9
  132. package/nitrogen/generated/android/c++/JHybridAudioBrowserSpec.cpp +230 -206
  133. package/nitrogen/generated/android/c++/JHybridAudioBrowserSpec.hpp +20 -22
  134. package/nitrogen/generated/android/c++/JIOSCategory.hpp +7 -8
  135. package/nitrogen/generated/android/c++/JIOSCategoryMode.hpp +10 -11
  136. package/nitrogen/generated/android/c++/JIOSCategoryOptions.hpp +8 -9
  137. package/nitrogen/generated/android/c++/JIOSCategoryPolicy.hpp +4 -5
  138. package/nitrogen/generated/android/c++/JImageContext.hpp +1 -1
  139. package/nitrogen/generated/android/c++/JImageQueryParams.hpp +1 -1
  140. package/nitrogen/generated/android/c++/JImageRowItem.hpp +75 -0
  141. package/nitrogen/generated/android/c++/JImageSource.hpp +1 -1
  142. package/nitrogen/generated/android/c++/JIosOutput.hpp +1 -1
  143. package/nitrogen/generated/android/c++/JIosOutputType.hpp +12 -13
  144. package/nitrogen/generated/android/c++/JMediaRequestConfig.hpp +4 -1
  145. package/nitrogen/generated/android/c++/JMediaTransformParams.hpp +1 -1
  146. package/nitrogen/generated/android/c++/JNativeBrowserConfiguration.hpp +22 -2
  147. package/nitrogen/generated/android/c++/JNativeRouteEntry.hpp +5 -1
  148. package/nitrogen/generated/android/c++/JNativeUpdateOptions.hpp +1 -1
  149. package/nitrogen/generated/android/c++/JNavigationError.hpp +1 -1
  150. package/nitrogen/generated/android/c++/JNavigationErrorEvent.hpp +1 -1
  151. package/nitrogen/generated/android/c++/JNavigationErrorType.hpp +6 -7
  152. package/nitrogen/generated/android/c++/JNitroAndroidUpdateOptions.hpp +1 -1
  153. package/nitrogen/generated/android/c++/JNotificationButton.hpp +6 -7
  154. package/nitrogen/generated/android/c++/JNotificationButtonLayout.hpp +1 -1
  155. package/nitrogen/generated/android/c++/JNowPlayingMetadata.hpp +1 -1
  156. package/nitrogen/generated/android/c++/JNowPlayingUpdate.hpp +1 -1
  157. package/nitrogen/generated/android/c++/JOptions.hpp +1 -1
  158. package/nitrogen/generated/android/c++/JPartialAndroidSetupPlayerOptions.hpp +1 -1
  159. package/nitrogen/generated/android/c++/JPartialIOSSetupPlayerOptions.hpp +1 -1
  160. package/nitrogen/generated/android/c++/JPartialSetupPlayerOptions.hpp +1 -1
  161. package/nitrogen/generated/android/c++/JPercentageRating.hpp +1 -1
  162. package/nitrogen/generated/android/c++/JPlayback.hpp +1 -1
  163. package/nitrogen/generated/android/c++/JPlaybackActiveTrackChangedEvent.hpp +4 -1
  164. package/nitrogen/generated/android/c++/JPlaybackError.hpp +1 -1
  165. package/nitrogen/generated/android/c++/JPlaybackErrorEvent.hpp +1 -1
  166. package/nitrogen/generated/android/c++/JPlaybackPlayWhenReadyChangedEvent.hpp +1 -1
  167. package/nitrogen/generated/android/c++/JPlaybackProgressUpdatedEvent.hpp +1 -1
  168. package/nitrogen/generated/android/c++/JPlaybackQueueEndedEvent.hpp +1 -1
  169. package/nitrogen/generated/android/c++/JPlaybackState.hpp +10 -11
  170. package/nitrogen/generated/android/c++/JPlayerCapabilities.hpp +1 -1
  171. package/nitrogen/generated/android/c++/JPlayingState.hpp +1 -1
  172. package/nitrogen/generated/android/c++/JProgress.hpp +1 -1
  173. package/nitrogen/generated/android/c++/JRatingType.hpp +8 -9
  174. package/nitrogen/generated/android/c++/JRemoteJumpBackwardEvent.hpp +1 -1
  175. package/nitrogen/generated/android/c++/JRemoteJumpForwardEvent.hpp +1 -1
  176. package/nitrogen/generated/android/c++/JRemotePlayIdEvent.hpp +1 -1
  177. package/nitrogen/generated/android/c++/JRemotePlaySearchEvent.hpp +1 -1
  178. package/nitrogen/generated/android/c++/JRemoteSeekEvent.hpp +1 -1
  179. package/nitrogen/generated/android/c++/JRemoteSetRatingEvent.hpp +1 -1
  180. package/nitrogen/generated/android/c++/JRemoteSkipEvent.hpp +1 -1
  181. package/nitrogen/generated/android/c++/JRepeatMode.hpp +4 -5
  182. package/nitrogen/generated/android/c++/JRepeatModeChangedEvent.hpp +1 -1
  183. package/nitrogen/generated/android/c++/JRequestConfig.hpp +1 -1
  184. package/nitrogen/generated/android/c++/JResolvedTrack.hpp +34 -4
  185. package/nitrogen/generated/android/c++/JRetryConfig.hpp +1 -1
  186. package/nitrogen/generated/android/c++/JSearchMode.hpp +7 -8
  187. package/nitrogen/generated/android/c++/JSearchParams.hpp +1 -1
  188. package/nitrogen/generated/android/c++/JSleepTimer.cpp +1 -1
  189. package/nitrogen/generated/android/c++/JSleepTimer.hpp +4 -4
  190. package/nitrogen/generated/android/c++/JSleepTimerEndOfTrack.hpp +1 -1
  191. package/nitrogen/generated/android/c++/JSleepTimerTime.hpp +1 -1
  192. package/nitrogen/generated/android/c++/JStarRating.hpp +1 -1
  193. package/nitrogen/generated/android/c++/JThumbsRating.hpp +1 -1
  194. package/nitrogen/generated/android/c++/JTimedMetadata.hpp +1 -1
  195. package/nitrogen/generated/android/c++/JTrack.hpp +29 -4
  196. package/nitrogen/generated/android/c++/JTrackLoadEvent.hpp +96 -0
  197. package/nitrogen/generated/android/c++/JTrackMetadata.hpp +1 -1
  198. package/nitrogen/generated/android/c++/JTrackStyle.hpp +3 -4
  199. package/nitrogen/generated/android/c++/JTransformableRequestConfig.hpp +1 -1
  200. package/nitrogen/generated/android/c++/JUpdateOptions.hpp +1 -1
  201. package/nitrogen/generated/android/c++/JVariant_Boolean_AndroidAudioOffloadSettings.cpp +1 -1
  202. package/nitrogen/generated/android/c++/JVariant_Boolean_AndroidAudioOffloadSettings.hpp +3 -3
  203. package/nitrogen/generated/android/c++/JVariant_Boolean_RetryConfig.cpp +1 -1
  204. package/nitrogen/generated/android/c++/JVariant_Boolean_RetryConfig.hpp +3 -3
  205. package/nitrogen/generated/android/c++/JVariant_HeartRating_ThumbsRating_StarRating_PercentageRating.cpp +1 -1
  206. package/nitrogen/generated/android/c++/JVariant_HeartRating_ThumbsRating_StarRating_PercentageRating.hpp +5 -5
  207. package/nitrogen/generated/android/c++/JVariant_NullType_Double.cpp +1 -1
  208. package/nitrogen/generated/android/c++/JVariant_NullType_Double.hpp +3 -3
  209. package/nitrogen/generated/android/c++/JVariant_NullType_NotificationButtonLayout.cpp +1 -1
  210. package/nitrogen/generated/android/c++/JVariant_NullType_NotificationButtonLayout.hpp +3 -3
  211. package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/AndroidAudioContentType.kt +3 -1
  212. package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/AndroidAudioOffloadSettings.kt +2 -2
  213. package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/AndroidOptions.kt +2 -2
  214. package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/AndroidPlayerWakeMode.kt +3 -1
  215. package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/AndroidUpdateOptions.kt +2 -2
  216. package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/AppKilledPlaybackBehavior.kt +3 -1
  217. package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/ArtworkRequestConfig.kt +2 -2
  218. package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/AudioBrowserOnLoad.kt +1 -1
  219. package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/BatteryOptimizationStatus.kt +3 -1
  220. package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/BatteryOptimizationStatusChangedEvent.kt +2 -2
  221. package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/BatteryWarningPendingChangedEvent.kt +2 -2
  222. package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/BrowseError.kt +2 -2
  223. package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/BrowseResult.kt +1 -7
  224. package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/BrowserSourceCallbackParam.kt +2 -2
  225. package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/CarPlayNowPlayingButton.kt +3 -1
  226. package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/CarPlaySiriListButtonPosition.kt +23 -0
  227. package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/ChapterMetadata.kt +2 -2
  228. package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/EqualizerSettings.kt +2 -2
  229. package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/FavoriteChangedEvent.kt +2 -2
  230. package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/FormatNavigationErrorParams.kt +2 -2
  231. package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/FormattedNavigationError.kt +2 -2
  232. package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/Func_std__shared_ptr_Promise_std__optional_FormattedNavigationError____FormatNavigationErrorParams.kt +1 -1
  233. package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/Func_std__shared_ptr_Promise_std__shared_ptr_Promise_RequestConfig_____MediaTransformParams.kt +1 -1
  234. package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/Func_std__shared_ptr_Promise_std__shared_ptr_Promise_RequestConfig_____RequestConfig_std__optional_std__unordered_map_std__string__std__string__.kt +1 -1
  235. package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/Func_std__shared_ptr_Promise_std__shared_ptr_Promise_RequestConfig_____Track.kt +1 -1
  236. package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/Func_std__shared_ptr_Promise_std__shared_ptr_Promise_std__variant_ResolvedTrack__BrowseError______BrowserSourceCallbackParam.kt +1 -1
  237. package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/Func_std__shared_ptr_Promise_std__shared_ptr_Promise_std__vector_Track______SearchParams.kt +1 -1
  238. package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/Func_std__shared_ptr_Promise_std__shared_ptr_Promise_void_____TrackLoadEvent.kt +80 -0
  239. package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/Func_void.kt +1 -1
  240. package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/Func_void_BatteryOptimizationStatusChangedEvent.kt +1 -1
  241. package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/Func_void_BatteryWarningPendingChangedEvent.kt +1 -1
  242. package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/Func_void_EqualizerSettings.kt +1 -1
  243. package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/Func_void_FavoriteChangedEvent.kt +1 -1
  244. package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/Func_void_IosOutput.kt +1 -1
  245. package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/Func_void_NavigationErrorEvent.kt +1 -1
  246. package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/Func_void_NowPlayingMetadata.kt +1 -1
  247. package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/Func_void_Options.kt +1 -1
  248. package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/Func_void_Playback.kt +1 -1
  249. package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/Func_void_PlaybackActiveTrackChangedEvent.kt +1 -1
  250. package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/Func_void_PlaybackErrorEvent.kt +1 -1
  251. package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/Func_void_PlaybackPlayWhenReadyChangedEvent.kt +1 -1
  252. package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/Func_void_PlaybackProgressUpdatedEvent.kt +1 -1
  253. package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/Func_void_PlaybackQueueEndedEvent.kt +1 -1
  254. package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/Func_void_PlayingState.kt +1 -1
  255. package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/Func_void_RemoteJumpBackwardEvent.kt +1 -1
  256. package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/Func_void_RemoteJumpForwardEvent.kt +1 -1
  257. package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/Func_void_RemotePlayIdEvent.kt +1 -1
  258. package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/Func_void_RemotePlaySearchEvent.kt +1 -1
  259. package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/Func_void_RemoteSeekEvent.kt +1 -1
  260. package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/Func_void_RemoteSetRatingEvent.kt +1 -1
  261. package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/Func_void_RemoteSkipEvent.kt +1 -1
  262. package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/Func_void_RepeatModeChangedEvent.kt +1 -1
  263. package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/Func_void_TimedMetadata.kt +1 -1
  264. package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/Func_void_TrackMetadata.kt +1 -1
  265. package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/Func_void_bool.kt +1 -1
  266. package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/Func_void_double.kt +1 -1
  267. package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/Func_void_std__optional_FormattedNavigationError_.kt +1 -1
  268. package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/Func_void_std__optional_ResolvedTrack_.kt +1 -1
  269. package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/Func_void_std__optional_std__variant_nitro__NullType__SleepTimerTime__SleepTimerEndOfTrack__.kt +1 -1
  270. package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/Func_void_std__string.kt +1 -1
  271. package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/Func_void_std__vector_ChapterMetadata_.kt +1 -1
  272. package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/Func_void_std__vector_Track_.kt +1 -1
  273. package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/HeartRating.kt +2 -2
  274. package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/HttpMethod.kt +3 -1
  275. package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/HybridAudioBrowserSpec.kt +16 -19
  276. package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/IOSCategory.kt +3 -1
  277. package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/IOSCategoryMode.kt +3 -1
  278. package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/IOSCategoryOptions.kt +3 -1
  279. package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/IOSCategoryPolicy.kt +3 -1
  280. package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/ImageContext.kt +2 -2
  281. package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/ImageQueryParams.kt +2 -2
  282. package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/ImageRowItem.kt +47 -0
  283. package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/ImageSource.kt +2 -2
  284. package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/IosOutput.kt +2 -2
  285. package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/IosOutputType.kt +3 -1
  286. package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/MediaRequestConfig.kt +2 -2
  287. package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/MediaTransformParams.kt +2 -2
  288. package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/NativeBrowserConfiguration.kt +9 -6
  289. package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/NativeRouteEntry.kt +2 -2
  290. package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/NativeUpdateOptions.kt +2 -2
  291. package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/NavigationError.kt +2 -2
  292. package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/NavigationErrorEvent.kt +2 -2
  293. package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/NavigationErrorType.kt +3 -1
  294. package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/NitroAndroidUpdateOptions.kt +2 -2
  295. package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/NotificationButton.kt +3 -1
  296. package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/NotificationButtonLayout.kt +2 -2
  297. package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/NowPlayingMetadata.kt +2 -2
  298. package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/NowPlayingUpdate.kt +2 -2
  299. package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/Options.kt +2 -2
  300. package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/PartialAndroidSetupPlayerOptions.kt +2 -2
  301. package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/PartialIOSSetupPlayerOptions.kt +2 -2
  302. package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/PartialSetupPlayerOptions.kt +2 -2
  303. package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/PercentageRating.kt +2 -2
  304. package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/Playback.kt +2 -2
  305. package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/PlaybackActiveTrackChangedEvent.kt +2 -2
  306. package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/PlaybackError.kt +2 -2
  307. package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/PlaybackErrorEvent.kt +2 -2
  308. package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/PlaybackPlayWhenReadyChangedEvent.kt +2 -2
  309. package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/PlaybackProgressUpdatedEvent.kt +2 -2
  310. package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/PlaybackQueueEndedEvent.kt +2 -2
  311. package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/PlaybackState.kt +3 -1
  312. package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/PlayerCapabilities.kt +2 -2
  313. package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/PlayingState.kt +2 -2
  314. package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/Progress.kt +2 -2
  315. package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/RatingType.kt +3 -1
  316. package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/RemoteJumpBackwardEvent.kt +2 -2
  317. package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/RemoteJumpForwardEvent.kt +2 -2
  318. package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/RemotePlayIdEvent.kt +2 -2
  319. package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/RemotePlaySearchEvent.kt +2 -2
  320. package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/RemoteSeekEvent.kt +2 -2
  321. package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/RemoteSetRatingEvent.kt +2 -2
  322. package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/RemoteSkipEvent.kt +2 -2
  323. package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/RepeatMode.kt +3 -1
  324. package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/RepeatModeChangedEvent.kt +2 -2
  325. package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/RequestConfig.kt +2 -2
  326. package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/ResolvedTrack.kt +11 -5
  327. package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/RetryConfig.kt +2 -2
  328. package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/SearchMode.kt +3 -1
  329. package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/SearchParams.kt +2 -2
  330. package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/SleepTimer.kt +1 -8
  331. package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/SleepTimerEndOfTrack.kt +2 -2
  332. package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/SleepTimerTime.kt +2 -2
  333. package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/StarRating.kt +2 -2
  334. package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/ThumbsRating.kt +2 -2
  335. package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/TimedMetadata.kt +2 -2
  336. package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/Track.kt +8 -5
  337. package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/TrackLoadEvent.kt +44 -0
  338. package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/TrackMetadata.kt +2 -2
  339. package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/TrackStyle.kt +3 -1
  340. package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/TransformableRequestConfig.kt +2 -2
  341. package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/UpdateOptions.kt +2 -2
  342. package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/Variant_Boolean_AndroidAudioOffloadSettings.kt +1 -7
  343. package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/Variant_Boolean_RetryConfig.kt +1 -7
  344. package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/Variant_HeartRating_ThumbsRating_StarRating_PercentageRating.kt +1 -9
  345. package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/Variant_NullType_Double.kt +1 -7
  346. package/nitrogen/generated/android/kotlin/com/margelo/nitro/audiobrowser/Variant_NullType_NotificationButtonLayout.kt +1 -7
  347. package/nitrogen/generated/ios/AudioBrowser+autolinking.rb +2 -2
  348. package/nitrogen/generated/ios/AudioBrowser-Swift-Cxx-Bridge.cpp +23 -6
  349. package/nitrogen/generated/ios/AudioBrowser-Swift-Cxx-Bridge.hpp +239 -102
  350. package/nitrogen/generated/ios/AudioBrowser-Swift-Cxx-Umbrella.hpp +10 -1
  351. package/nitrogen/generated/ios/AudioBrowserAutolinking.mm +1 -1
  352. package/nitrogen/generated/ios/AudioBrowserAutolinking.swift +9 -8
  353. package/nitrogen/generated/ios/c++/HybridAudioBrowserSpecSwift.cpp +1 -1
  354. package/nitrogen/generated/ios/c++/HybridAudioBrowserSpecSwift.hpp +25 -1
  355. package/nitrogen/generated/ios/swift/AndroidAudioContentType.swift +1 -1
  356. package/nitrogen/generated/ios/swift/AndroidAudioOffloadSettings.swift +19 -44
  357. package/nitrogen/generated/ios/swift/AndroidOptions.swift +30 -74
  358. package/nitrogen/generated/ios/swift/AndroidPlayerWakeMode.swift +1 -1
  359. package/nitrogen/generated/ios/swift/AndroidUpdateOptions.swift +44 -112
  360. package/nitrogen/generated/ios/swift/AppKilledPlaybackBehavior.swift +1 -1
  361. package/nitrogen/generated/ios/swift/ArtworkRequestConfig.swift +152 -303
  362. package/nitrogen/generated/ios/swift/BatteryOptimizationStatus.swift +1 -1
  363. package/nitrogen/generated/ios/swift/BatteryOptimizationStatusChangedEvent.swift +3 -10
  364. package/nitrogen/generated/ios/swift/BatteryWarningPendingChangedEvent.swift +3 -10
  365. package/nitrogen/generated/ios/swift/BrowseError.swift +3 -10
  366. package/nitrogen/generated/ios/swift/BrowseResult.swift +1 -1
  367. package/nitrogen/generated/ios/swift/BrowserSourceCallbackParam.swift +20 -45
  368. package/nitrogen/generated/ios/swift/CarPlayNowPlayingButton.swift +1 -1
  369. package/nitrogen/generated/ios/swift/CarPlaySiriListButtonPosition.swift +40 -0
  370. package/nitrogen/generated/ios/swift/ChapterMetadata.swift +23 -60
  371. package/nitrogen/generated/ios/swift/EqualizerSettings.swift +24 -97
  372. package/nitrogen/generated/ios/swift/FavoriteChangedEvent.swift +5 -18
  373. package/nitrogen/generated/ios/swift/FormatNavigationErrorParams.swift +7 -26
  374. package/nitrogen/generated/ios/swift/FormattedNavigationError.swift +5 -18
  375. package/nitrogen/generated/ios/swift/Func_std__shared_ptr_Promise_std__optional_FormattedNavigationError____FormatNavigationErrorParams.swift +1 -2
  376. package/nitrogen/generated/ios/swift/Func_std__shared_ptr_Promise_std__shared_ptr_Promise_RequestConfig_____MediaTransformParams.swift +1 -2
  377. package/nitrogen/generated/ios/swift/Func_std__shared_ptr_Promise_std__shared_ptr_Promise_RequestConfig_____RequestConfig_std__optional_std__unordered_map_std__string__std__string__.swift +1 -2
  378. package/nitrogen/generated/ios/swift/Func_std__shared_ptr_Promise_std__shared_ptr_Promise_RequestConfig_____Track.swift +1 -2
  379. package/nitrogen/generated/ios/swift/Func_std__shared_ptr_Promise_std__shared_ptr_Promise_std__variant_ResolvedTrack__BrowseError______BrowserSourceCallbackParam.swift +1 -2
  380. package/nitrogen/generated/ios/swift/Func_std__shared_ptr_Promise_std__shared_ptr_Promise_std__vector_Track______SearchParams.swift +1 -2
  381. package/nitrogen/generated/ios/swift/Func_std__shared_ptr_Promise_std__shared_ptr_Promise_void_____TrackLoadEvent.swift +61 -0
  382. package/nitrogen/generated/ios/swift/Func_void.swift +1 -2
  383. package/nitrogen/generated/ios/swift/Func_void_BatteryOptimizationStatusChangedEvent.swift +1 -2
  384. package/nitrogen/generated/ios/swift/Func_void_BatteryWarningPendingChangedEvent.swift +1 -2
  385. package/nitrogen/generated/ios/swift/Func_void_EqualizerSettings.swift +1 -2
  386. package/nitrogen/generated/ios/swift/Func_void_FavoriteChangedEvent.swift +1 -2
  387. package/nitrogen/generated/ios/swift/Func_void_IosOutput.swift +1 -2
  388. package/nitrogen/generated/ios/swift/Func_void_NavigationErrorEvent.swift +1 -2
  389. package/nitrogen/generated/ios/swift/Func_void_NowPlayingMetadata.swift +1 -2
  390. package/nitrogen/generated/ios/swift/Func_void_Options.swift +1 -2
  391. package/nitrogen/generated/ios/swift/Func_void_Playback.swift +1 -2
  392. package/nitrogen/generated/ios/swift/Func_void_PlaybackActiveTrackChangedEvent.swift +1 -2
  393. package/nitrogen/generated/ios/swift/Func_void_PlaybackErrorEvent.swift +1 -2
  394. package/nitrogen/generated/ios/swift/Func_void_PlaybackPlayWhenReadyChangedEvent.swift +1 -2
  395. package/nitrogen/generated/ios/swift/Func_void_PlaybackProgressUpdatedEvent.swift +1 -2
  396. package/nitrogen/generated/ios/swift/Func_void_PlaybackQueueEndedEvent.swift +1 -2
  397. package/nitrogen/generated/ios/swift/Func_void_PlayingState.swift +1 -2
  398. package/nitrogen/generated/ios/swift/Func_void_RemoteJumpBackwardEvent.swift +1 -2
  399. package/nitrogen/generated/ios/swift/Func_void_RemoteJumpForwardEvent.swift +1 -2
  400. package/nitrogen/generated/ios/swift/Func_void_RemotePlayIdEvent.swift +1 -2
  401. package/nitrogen/generated/ios/swift/Func_void_RemotePlaySearchEvent.swift +1 -2
  402. package/nitrogen/generated/ios/swift/Func_void_RemoteSeekEvent.swift +1 -2
  403. package/nitrogen/generated/ios/swift/Func_void_RemoteSetRatingEvent.swift +1 -2
  404. package/nitrogen/generated/ios/swift/Func_void_RemoteSkipEvent.swift +1 -2
  405. package/nitrogen/generated/ios/swift/Func_void_RepeatModeChangedEvent.swift +1 -2
  406. package/nitrogen/generated/ios/swift/Func_void_RequestConfig.swift +1 -2
  407. package/nitrogen/generated/ios/swift/Func_void_TimedMetadata.swift +1 -2
  408. package/nitrogen/generated/ios/swift/Func_void_TrackMetadata.swift +1 -2
  409. package/nitrogen/generated/ios/swift/Func_void_bool.swift +1 -2
  410. package/nitrogen/generated/ios/swift/Func_void_double.swift +1 -2
  411. package/nitrogen/generated/ios/swift/Func_void_std__exception_ptr.swift +1 -2
  412. package/nitrogen/generated/ios/swift/Func_void_std__optional_FormattedNavigationError_.swift +1 -2
  413. package/nitrogen/generated/ios/swift/Func_void_std__optional_ResolvedTrack_.swift +1 -2
  414. package/nitrogen/generated/ios/swift/Func_void_std__optional_std__variant_nitro__NullType__SleepTimerTime__SleepTimerEndOfTrack__.swift +1 -2
  415. package/nitrogen/generated/ios/swift/Func_void_std__shared_ptr_Promise_RequestConfig__.swift +1 -2
  416. package/nitrogen/generated/ios/swift/Func_void_std__shared_ptr_Promise_std__variant_ResolvedTrack__BrowseError___.swift +1 -2
  417. package/nitrogen/generated/ios/swift/Func_void_std__shared_ptr_Promise_std__vector_Track___.swift +1 -2
  418. package/nitrogen/generated/ios/swift/Func_void_std__shared_ptr_Promise_void__.swift +64 -0
  419. package/nitrogen/generated/ios/swift/Func_void_std__string.swift +1 -2
  420. package/nitrogen/generated/ios/swift/Func_void_std__variant_ResolvedTrack__BrowseError_.swift +1 -2
  421. package/nitrogen/generated/ios/swift/Func_void_std__vector_ChapterMetadata_.swift +1 -2
  422. package/nitrogen/generated/ios/swift/Func_void_std__vector_Track_.swift +1 -2
  423. package/nitrogen/generated/ios/swift/HeartRating.swift +3 -10
  424. package/nitrogen/generated/ios/swift/HttpMethod.swift +1 -1
  425. package/nitrogen/generated/ios/swift/HybridAudioBrowserSpec.swift +3 -4
  426. package/nitrogen/generated/ios/swift/HybridAudioBrowserSpec_cxx.swift +56 -7
  427. package/nitrogen/generated/ios/swift/IOSCategory.swift +1 -1
  428. package/nitrogen/generated/ios/swift/IOSCategoryMode.swift +1 -1
  429. package/nitrogen/generated/ios/swift/IOSCategoryOptions.swift +1 -1
  430. package/nitrogen/generated/ios/swift/IOSCategoryPolicy.swift +1 -1
  431. package/nitrogen/generated/ios/swift/ImageContext.swift +19 -30
  432. package/nitrogen/generated/ios/swift/ImageQueryParams.swift +19 -44
  433. package/nitrogen/generated/ios/swift/ImageRowItem.swift +76 -0
  434. package/nitrogen/generated/ios/swift/ImageSource.swift +31 -80
  435. package/nitrogen/generated/ios/swift/IosOutput.swift +7 -26
  436. package/nitrogen/generated/ios/swift/IosOutputType.swift +1 -1
  437. package/nitrogen/generated/ios/swift/MediaRequestConfig.swift +162 -301
  438. package/nitrogen/generated/ios/swift/MediaTransformParams.swift +5 -24
  439. package/nitrogen/generated/ios/swift/NativeBrowserConfiguration.swift +143 -232
  440. package/nitrogen/generated/ios/swift/NativeRouteEntry.swift +81 -178
  441. package/nitrogen/generated/ios/swift/NativeUpdateOptions.swift +53 -125
  442. package/nitrogen/generated/ios/swift/NavigationError.swift +23 -53
  443. package/nitrogen/generated/ios/swift/NavigationErrorEvent.swift +3 -16
  444. package/nitrogen/generated/ios/swift/NavigationErrorType.swift +1 -1
  445. package/nitrogen/generated/ios/swift/NitroAndroidUpdateOptions.swift +44 -112
  446. package/nitrogen/generated/ios/swift/NotificationButton.swift +1 -1
  447. package/nitrogen/generated/ios/swift/NotificationButtonLayout.swift +18 -85
  448. package/nitrogen/generated/ios/swift/NowPlayingMetadata.swift +109 -227
  449. package/nitrogen/generated/ios/swift/NowPlayingUpdate.swift +19 -44
  450. package/nitrogen/generated/ios/swift/Options.swift +32 -88
  451. package/nitrogen/generated/ios/swift/PartialAndroidSetupPlayerOptions.swift +101 -201
  452. package/nitrogen/generated/ios/swift/PartialIOSSetupPlayerOptions.swift +25 -85
  453. package/nitrogen/generated/ios/swift/PartialSetupPlayerOptions.swift +35 -91
  454. package/nitrogen/generated/ios/swift/PercentageRating.swift +3 -10
  455. package/nitrogen/generated/ios/swift/Playback.swift +5 -24
  456. package/nitrogen/generated/ios/swift/PlaybackActiveTrackChangedEvent.swift +25 -66
  457. package/nitrogen/generated/ios/swift/PlaybackError.swift +5 -18
  458. package/nitrogen/generated/ios/swift/PlaybackErrorEvent.swift +3 -16
  459. package/nitrogen/generated/ios/swift/PlaybackPlayWhenReadyChangedEvent.swift +3 -10
  460. package/nitrogen/generated/ios/swift/PlaybackProgressUpdatedEvent.swift +9 -34
  461. package/nitrogen/generated/ios/swift/PlaybackQueueEndedEvent.swift +5 -18
  462. package/nitrogen/generated/ios/swift/PlaybackState.swift +1 -1
  463. package/nitrogen/generated/ios/swift/PlayerCapabilities.swift +109 -254
  464. package/nitrogen/generated/ios/swift/PlayingState.swift +5 -18
  465. package/nitrogen/generated/ios/swift/Progress.swift +7 -26
  466. package/nitrogen/generated/ios/swift/RatingType.swift +1 -1
  467. package/nitrogen/generated/ios/swift/RemoteJumpBackwardEvent.swift +3 -10
  468. package/nitrogen/generated/ios/swift/RemoteJumpForwardEvent.swift +3 -10
  469. package/nitrogen/generated/ios/swift/RemotePlayIdEvent.swift +12 -24
  470. package/nitrogen/generated/ios/swift/RemotePlaySearchEvent.swift +3 -10
  471. package/nitrogen/generated/ios/swift/RemoteSeekEvent.swift +3 -10
  472. package/nitrogen/generated/ios/swift/RemoteSetRatingEvent.swift +21 -39
  473. package/nitrogen/generated/ios/swift/RemoteSkipEvent.swift +3 -10
  474. package/nitrogen/generated/ios/swift/RepeatMode.swift +1 -1
  475. package/nitrogen/generated/ios/swift/RepeatModeChangedEvent.swift +3 -10
  476. package/nitrogen/generated/ios/swift/RequestConfig.swift +82 -191
  477. package/nitrogen/generated/ios/swift/ResolvedTrack.swift +164 -333
  478. package/nitrogen/generated/ios/swift/RetryConfig.swift +12 -24
  479. package/nitrogen/generated/ios/swift/SearchMode.swift +1 -1
  480. package/nitrogen/generated/ios/swift/SearchParams.swift +50 -129
  481. package/nitrogen/generated/ios/swift/SleepTimer.swift +1 -1
  482. package/nitrogen/generated/ios/swift/SleepTimerEndOfTrack.swift +3 -10
  483. package/nitrogen/generated/ios/swift/SleepTimerTime.swift +3 -10
  484. package/nitrogen/generated/ios/swift/StarRating.swift +3 -10
  485. package/nitrogen/generated/ios/swift/ThumbsRating.swift +3 -10
  486. package/nitrogen/generated/ios/swift/TimedMetadata.swift +46 -107
  487. package/nitrogen/generated/ios/swift/Track.swift +151 -319
  488. package/nitrogen/generated/ios/swift/TrackLoadEvent.swift +45 -0
  489. package/nitrogen/generated/ios/swift/TrackMetadata.swift +145 -338
  490. package/nitrogen/generated/ios/swift/TrackStyle.swift +1 -1
  491. package/nitrogen/generated/ios/swift/TransformableRequestConfig.swift +128 -252
  492. package/nitrogen/generated/ios/swift/UpdateOptions.swift +53 -125
  493. package/nitrogen/generated/ios/swift/Variant_Bool_AndroidAudioOffloadSettings.swift +1 -1
  494. package/nitrogen/generated/ios/swift/Variant_Bool_RetryConfig.swift +1 -1
  495. package/nitrogen/generated/ios/swift/Variant_HeartRating_ThumbsRating_StarRating_PercentageRating.swift +1 -1
  496. package/nitrogen/generated/ios/swift/Variant_NullType_Double.swift +1 -1
  497. package/nitrogen/generated/ios/swift/Variant_NullType_NotificationButtonLayout.swift +1 -1
  498. package/nitrogen/generated/shared/c++/AndroidAudioContentType.hpp +1 -1
  499. package/nitrogen/generated/shared/c++/AndroidAudioOffloadSettings.hpp +16 -8
  500. package/nitrogen/generated/shared/c++/AndroidOptions.hpp +25 -17
  501. package/nitrogen/generated/shared/c++/AndroidPlayerWakeMode.hpp +1 -1
  502. package/nitrogen/generated/shared/c++/AndroidUpdateOptions.hpp +25 -17
  503. package/nitrogen/generated/shared/c++/AppKilledPlaybackBehavior.hpp +1 -1
  504. package/nitrogen/generated/shared/c++/ArtworkRequestConfig.hpp +43 -35
  505. package/nitrogen/generated/shared/c++/BatteryOptimizationStatus.hpp +1 -1
  506. package/nitrogen/generated/shared/c++/BatteryOptimizationStatusChangedEvent.hpp +13 -5
  507. package/nitrogen/generated/shared/c++/BatteryWarningPendingChangedEvent.hpp +13 -5
  508. package/nitrogen/generated/shared/c++/BrowseError.hpp +13 -5
  509. package/nitrogen/generated/shared/c++/BrowserSourceCallbackParam.hpp +16 -8
  510. package/nitrogen/generated/shared/c++/CarPlayNowPlayingButton.hpp +1 -1
  511. package/nitrogen/generated/shared/c++/CarPlaySiriListButtonPosition.hpp +76 -0
  512. package/nitrogen/generated/shared/c++/ChapterMetadata.hpp +22 -14
  513. package/nitrogen/generated/shared/c++/EqualizerSettings.hpp +34 -26
  514. package/nitrogen/generated/shared/c++/FavoriteChangedEvent.hpp +16 -8
  515. package/nitrogen/generated/shared/c++/FormatNavigationErrorParams.hpp +19 -11
  516. package/nitrogen/generated/shared/c++/FormattedNavigationError.hpp +16 -8
  517. package/nitrogen/generated/shared/c++/HeartRating.hpp +13 -5
  518. package/nitrogen/generated/shared/c++/HttpMethod.hpp +1 -1
  519. package/nitrogen/generated/shared/c++/HybridAudioBrowserSpec.cpp +1 -1
  520. package/nitrogen/generated/shared/c++/HybridAudioBrowserSpec.hpp +1 -1
  521. package/nitrogen/generated/shared/c++/IOSCategory.hpp +1 -1
  522. package/nitrogen/generated/shared/c++/IOSCategoryMode.hpp +1 -1
  523. package/nitrogen/generated/shared/c++/IOSCategoryOptions.hpp +1 -1
  524. package/nitrogen/generated/shared/c++/IOSCategoryPolicy.hpp +1 -1
  525. package/nitrogen/generated/shared/c++/ImageContext.hpp +16 -8
  526. package/nitrogen/generated/shared/c++/ImageQueryParams.hpp +16 -8
  527. package/nitrogen/generated/shared/c++/ImageRowItem.hpp +98 -0
  528. package/nitrogen/generated/shared/c++/ImageSource.hpp +22 -14
  529. package/nitrogen/generated/shared/c++/IosOutput.hpp +19 -11
  530. package/nitrogen/generated/shared/c++/IosOutputType.hpp +1 -1
  531. package/nitrogen/generated/shared/c++/MediaRequestConfig.hpp +40 -32
  532. package/nitrogen/generated/shared/c++/MediaTransformParams.hpp +16 -8
  533. package/nitrogen/generated/shared/c++/NativeBrowserConfiguration.hpp +50 -35
  534. package/nitrogen/generated/shared/c++/NativeRouteEntry.hpp +34 -26
  535. package/nitrogen/generated/shared/c++/NativeUpdateOptions.hpp +28 -20
  536. package/nitrogen/generated/shared/c++/NavigationError.hpp +22 -14
  537. package/nitrogen/generated/shared/c++/NavigationErrorEvent.hpp +13 -5
  538. package/nitrogen/generated/shared/c++/NavigationErrorType.hpp +1 -1
  539. package/nitrogen/generated/shared/c++/NitroAndroidUpdateOptions.hpp +25 -17
  540. package/nitrogen/generated/shared/c++/NotificationButton.hpp +1 -1
  541. package/nitrogen/generated/shared/c++/NotificationButtonLayout.hpp +25 -17
  542. package/nitrogen/generated/shared/c++/NowPlayingMetadata.hpp +40 -32
  543. package/nitrogen/generated/shared/c++/NowPlayingUpdate.hpp +16 -8
  544. package/nitrogen/generated/shared/c++/Options.hpp +28 -20
  545. package/nitrogen/generated/shared/c++/PartialAndroidSetupPlayerOptions.hpp +40 -32
  546. package/nitrogen/generated/shared/c++/PartialIOSSetupPlayerOptions.hpp +25 -17
  547. package/nitrogen/generated/shared/c++/PartialSetupPlayerOptions.hpp +22 -14
  548. package/nitrogen/generated/shared/c++/PercentageRating.hpp +13 -5
  549. package/nitrogen/generated/shared/c++/Playback.hpp +16 -8
  550. package/nitrogen/generated/shared/c++/PlaybackActiveTrackChangedEvent.hpp +25 -17
  551. package/nitrogen/generated/shared/c++/PlaybackError.hpp +16 -8
  552. package/nitrogen/generated/shared/c++/PlaybackErrorEvent.hpp +13 -5
  553. package/nitrogen/generated/shared/c++/PlaybackPlayWhenReadyChangedEvent.hpp +13 -5
  554. package/nitrogen/generated/shared/c++/PlaybackProgressUpdatedEvent.hpp +22 -14
  555. package/nitrogen/generated/shared/c++/PlaybackQueueEndedEvent.hpp +16 -8
  556. package/nitrogen/generated/shared/c++/PlaybackState.hpp +1 -1
  557. package/nitrogen/generated/shared/c++/PlayerCapabilities.hpp +46 -38
  558. package/nitrogen/generated/shared/c++/PlayingState.hpp +16 -8
  559. package/nitrogen/generated/shared/c++/Progress.hpp +19 -11
  560. package/nitrogen/generated/shared/c++/RatingType.hpp +1 -1
  561. package/nitrogen/generated/shared/c++/RemoteJumpBackwardEvent.hpp +13 -5
  562. package/nitrogen/generated/shared/c++/RemoteJumpForwardEvent.hpp +13 -5
  563. package/nitrogen/generated/shared/c++/RemotePlayIdEvent.hpp +16 -8
  564. package/nitrogen/generated/shared/c++/RemotePlaySearchEvent.hpp +13 -5
  565. package/nitrogen/generated/shared/c++/RemoteSeekEvent.hpp +13 -5
  566. package/nitrogen/generated/shared/c++/RemoteSetRatingEvent.hpp +13 -5
  567. package/nitrogen/generated/shared/c++/RemoteSkipEvent.hpp +13 -5
  568. package/nitrogen/generated/shared/c++/RepeatMode.hpp +1 -1
  569. package/nitrogen/generated/shared/c++/RepeatModeChangedEvent.hpp +13 -5
  570. package/nitrogen/generated/shared/c++/RequestConfig.hpp +34 -26
  571. package/nitrogen/generated/shared/c++/ResolvedTrack.hpp +79 -57
  572. package/nitrogen/generated/shared/c++/RetryConfig.hpp +16 -8
  573. package/nitrogen/generated/shared/c++/SearchMode.hpp +1 -1
  574. package/nitrogen/generated/shared/c++/SearchParams.hpp +31 -23
  575. package/nitrogen/generated/shared/c++/SleepTimerEndOfTrack.hpp +13 -5
  576. package/nitrogen/generated/shared/c++/SleepTimerTime.hpp +13 -5
  577. package/nitrogen/generated/shared/c++/StarRating.hpp +13 -5
  578. package/nitrogen/generated/shared/c++/ThumbsRating.hpp +13 -5
  579. package/nitrogen/generated/shared/c++/TimedMetadata.hpp +25 -17
  580. package/nitrogen/generated/shared/c++/Track.hpp +70 -54
  581. package/nitrogen/generated/shared/c++/TrackLoadEvent.hpp +93 -0
  582. package/nitrogen/generated/shared/c++/TrackMetadata.hpp +58 -50
  583. package/nitrogen/generated/shared/c++/TrackStyle.hpp +1 -1
  584. package/nitrogen/generated/shared/c++/TransformableRequestConfig.hpp +37 -29
  585. package/nitrogen/generated/shared/c++/UpdateOptions.hpp +28 -20
  586. package/package.json +6 -7
  587. package/src/features/browser.ts +1 -0
  588. package/src/types/browser-native.ts +2 -0
  589. package/src/types/browser-nodes.ts +49 -1
  590. package/src/types/browser.ts +36 -0
  591. package/src/web/NativeAudioBrowser.ts +33 -9
  592. package/src/web/SimpleRouter.test.ts +160 -0
  593. package/src/web/SimpleRouter.ts +10 -8
@@ -2,7 +2,7 @@
2
2
  /// ThumbsRating.hpp
3
3
  /// This file was generated by nitrogen. DO NOT MODIFY THIS FILE.
4
4
  /// https://github.com/mrousavy/nitro
5
- /// Copyright © 2026 Marc Rousavy @ Margelo
5
+ /// Copyright © Marc Rousavy @ Margelo
6
6
  ///
7
7
 
8
8
  #pragma once
@@ -22,6 +22,11 @@
22
22
  #else
23
23
  #error NitroModules cannot be found! Are you sure you installed NitroModules properly?
24
24
  #endif
25
+ #if __has_include(<NitroModules/PropNameIDCache.hpp>)
26
+ #include <NitroModules/PropNameIDCache.hpp>
27
+ #else
28
+ #error NitroModules cannot be found! Are you sure you installed NitroModules properly?
29
+ #endif
25
30
 
26
31
 
27
32
 
@@ -32,13 +37,16 @@ namespace margelo::nitro::audiobrowser {
32
37
  /**
33
38
  * A struct which can be represented as a JavaScript object (ThumbsRating).
34
39
  */
35
- struct ThumbsRating {
40
+ struct ThumbsRating final {
36
41
  public:
37
42
  bool isThumbsUp SWIFT_PRIVATE;
38
43
 
39
44
  public:
40
45
  ThumbsRating() = default;
41
46
  explicit ThumbsRating(bool isThumbsUp): isThumbsUp(isThumbsUp) {}
47
+
48
+ public:
49
+ friend bool operator==(const ThumbsRating& lhs, const ThumbsRating& rhs) = default;
42
50
  };
43
51
 
44
52
  } // namespace margelo::nitro::audiobrowser
@@ -51,12 +59,12 @@ namespace margelo::nitro {
51
59
  static inline margelo::nitro::audiobrowser::ThumbsRating fromJSI(jsi::Runtime& runtime, const jsi::Value& arg) {
52
60
  jsi::Object obj = arg.asObject(runtime);
53
61
  return margelo::nitro::audiobrowser::ThumbsRating(
54
- JSIConverter<bool>::fromJSI(runtime, obj.getProperty(runtime, "isThumbsUp"))
62
+ JSIConverter<bool>::fromJSI(runtime, obj.getProperty(runtime, PropNameIDCache::get(runtime, "isThumbsUp")))
55
63
  );
56
64
  }
57
65
  static inline jsi::Value toJSI(jsi::Runtime& runtime, const margelo::nitro::audiobrowser::ThumbsRating& arg) {
58
66
  jsi::Object obj(runtime);
59
- obj.setProperty(runtime, "isThumbsUp", JSIConverter<bool>::toJSI(runtime, arg.isThumbsUp));
67
+ obj.setProperty(runtime, PropNameIDCache::get(runtime, "isThumbsUp"), JSIConverter<bool>::toJSI(runtime, arg.isThumbsUp));
60
68
  return obj;
61
69
  }
62
70
  static inline bool canConvert(jsi::Runtime& runtime, const jsi::Value& value) {
@@ -67,7 +75,7 @@ namespace margelo::nitro {
67
75
  if (!nitro::isPlainObject(runtime, obj)) {
68
76
  return false;
69
77
  }
70
- if (!JSIConverter<bool>::canConvert(runtime, obj.getProperty(runtime, "isThumbsUp"))) return false;
78
+ if (!JSIConverter<bool>::canConvert(runtime, obj.getProperty(runtime, PropNameIDCache::get(runtime, "isThumbsUp")))) return false;
71
79
  return true;
72
80
  }
73
81
  };
@@ -2,7 +2,7 @@
2
2
  /// TimedMetadata.hpp
3
3
  /// This file was generated by nitrogen. DO NOT MODIFY THIS FILE.
4
4
  /// https://github.com/mrousavy/nitro
5
- /// Copyright © 2026 Marc Rousavy @ Margelo
5
+ /// Copyright © Marc Rousavy @ Margelo
6
6
  ///
7
7
 
8
8
  #pragma once
@@ -22,6 +22,11 @@
22
22
  #else
23
23
  #error NitroModules cannot be found! Are you sure you installed NitroModules properly?
24
24
  #endif
25
+ #if __has_include(<NitroModules/PropNameIDCache.hpp>)
26
+ #include <NitroModules/PropNameIDCache.hpp>
27
+ #else
28
+ #error NitroModules cannot be found! Are you sure you installed NitroModules properly?
29
+ #endif
25
30
 
26
31
 
27
32
 
@@ -33,7 +38,7 @@ namespace margelo::nitro::audiobrowser {
33
38
  /**
34
39
  * A struct which can be represented as a JavaScript object (TimedMetadata).
35
40
  */
36
- struct TimedMetadata {
41
+ struct TimedMetadata final {
37
42
  public:
38
43
  std::optional<std::string> title SWIFT_PRIVATE;
39
44
  std::optional<std::string> artist SWIFT_PRIVATE;
@@ -44,6 +49,9 @@ namespace margelo::nitro::audiobrowser {
44
49
  public:
45
50
  TimedMetadata() = default;
46
51
  explicit TimedMetadata(std::optional<std::string> title, std::optional<std::string> artist, std::optional<std::string> album, std::optional<std::string> date, std::optional<std::string> genre): title(title), artist(artist), album(album), date(date), genre(genre) {}
52
+
53
+ public:
54
+ friend bool operator==(const TimedMetadata& lhs, const TimedMetadata& rhs) = default;
47
55
  };
48
56
 
49
57
  } // namespace margelo::nitro::audiobrowser
@@ -56,20 +64,20 @@ namespace margelo::nitro {
56
64
  static inline margelo::nitro::audiobrowser::TimedMetadata fromJSI(jsi::Runtime& runtime, const jsi::Value& arg) {
57
65
  jsi::Object obj = arg.asObject(runtime);
58
66
  return margelo::nitro::audiobrowser::TimedMetadata(
59
- JSIConverter<std::optional<std::string>>::fromJSI(runtime, obj.getProperty(runtime, "title")),
60
- JSIConverter<std::optional<std::string>>::fromJSI(runtime, obj.getProperty(runtime, "artist")),
61
- JSIConverter<std::optional<std::string>>::fromJSI(runtime, obj.getProperty(runtime, "album")),
62
- JSIConverter<std::optional<std::string>>::fromJSI(runtime, obj.getProperty(runtime, "date")),
63
- JSIConverter<std::optional<std::string>>::fromJSI(runtime, obj.getProperty(runtime, "genre"))
67
+ JSIConverter<std::optional<std::string>>::fromJSI(runtime, obj.getProperty(runtime, PropNameIDCache::get(runtime, "title"))),
68
+ JSIConverter<std::optional<std::string>>::fromJSI(runtime, obj.getProperty(runtime, PropNameIDCache::get(runtime, "artist"))),
69
+ JSIConverter<std::optional<std::string>>::fromJSI(runtime, obj.getProperty(runtime, PropNameIDCache::get(runtime, "album"))),
70
+ JSIConverter<std::optional<std::string>>::fromJSI(runtime, obj.getProperty(runtime, PropNameIDCache::get(runtime, "date"))),
71
+ JSIConverter<std::optional<std::string>>::fromJSI(runtime, obj.getProperty(runtime, PropNameIDCache::get(runtime, "genre")))
64
72
  );
65
73
  }
66
74
  static inline jsi::Value toJSI(jsi::Runtime& runtime, const margelo::nitro::audiobrowser::TimedMetadata& arg) {
67
75
  jsi::Object obj(runtime);
68
- obj.setProperty(runtime, "title", JSIConverter<std::optional<std::string>>::toJSI(runtime, arg.title));
69
- obj.setProperty(runtime, "artist", JSIConverter<std::optional<std::string>>::toJSI(runtime, arg.artist));
70
- obj.setProperty(runtime, "album", JSIConverter<std::optional<std::string>>::toJSI(runtime, arg.album));
71
- obj.setProperty(runtime, "date", JSIConverter<std::optional<std::string>>::toJSI(runtime, arg.date));
72
- obj.setProperty(runtime, "genre", JSIConverter<std::optional<std::string>>::toJSI(runtime, arg.genre));
76
+ obj.setProperty(runtime, PropNameIDCache::get(runtime, "title"), JSIConverter<std::optional<std::string>>::toJSI(runtime, arg.title));
77
+ obj.setProperty(runtime, PropNameIDCache::get(runtime, "artist"), JSIConverter<std::optional<std::string>>::toJSI(runtime, arg.artist));
78
+ obj.setProperty(runtime, PropNameIDCache::get(runtime, "album"), JSIConverter<std::optional<std::string>>::toJSI(runtime, arg.album));
79
+ obj.setProperty(runtime, PropNameIDCache::get(runtime, "date"), JSIConverter<std::optional<std::string>>::toJSI(runtime, arg.date));
80
+ obj.setProperty(runtime, PropNameIDCache::get(runtime, "genre"), JSIConverter<std::optional<std::string>>::toJSI(runtime, arg.genre));
73
81
  return obj;
74
82
  }
75
83
  static inline bool canConvert(jsi::Runtime& runtime, const jsi::Value& value) {
@@ -80,11 +88,11 @@ namespace margelo::nitro {
80
88
  if (!nitro::isPlainObject(runtime, obj)) {
81
89
  return false;
82
90
  }
83
- if (!JSIConverter<std::optional<std::string>>::canConvert(runtime, obj.getProperty(runtime, "title"))) return false;
84
- if (!JSIConverter<std::optional<std::string>>::canConvert(runtime, obj.getProperty(runtime, "artist"))) return false;
85
- if (!JSIConverter<std::optional<std::string>>::canConvert(runtime, obj.getProperty(runtime, "album"))) return false;
86
- if (!JSIConverter<std::optional<std::string>>::canConvert(runtime, obj.getProperty(runtime, "date"))) return false;
87
- if (!JSIConverter<std::optional<std::string>>::canConvert(runtime, obj.getProperty(runtime, "genre"))) return false;
91
+ if (!JSIConverter<std::optional<std::string>>::canConvert(runtime, obj.getProperty(runtime, PropNameIDCache::get(runtime, "title")))) return false;
92
+ if (!JSIConverter<std::optional<std::string>>::canConvert(runtime, obj.getProperty(runtime, PropNameIDCache::get(runtime, "artist")))) return false;
93
+ if (!JSIConverter<std::optional<std::string>>::canConvert(runtime, obj.getProperty(runtime, PropNameIDCache::get(runtime, "album")))) return false;
94
+ if (!JSIConverter<std::optional<std::string>>::canConvert(runtime, obj.getProperty(runtime, PropNameIDCache::get(runtime, "date")))) return false;
95
+ if (!JSIConverter<std::optional<std::string>>::canConvert(runtime, obj.getProperty(runtime, PropNameIDCache::get(runtime, "genre")))) return false;
88
96
  return true;
89
97
  }
90
98
  };
@@ -2,7 +2,7 @@
2
2
  /// Track.hpp
3
3
  /// This file was generated by nitrogen. DO NOT MODIFY THIS FILE.
4
4
  /// https://github.com/mrousavy/nitro
5
- /// Copyright © 2026 Marc Rousavy @ Margelo
5
+ /// Copyright © Marc Rousavy @ Margelo
6
6
  ///
7
7
 
8
8
  #pragma once
@@ -22,23 +22,32 @@
22
22
  #else
23
23
  #error NitroModules cannot be found! Are you sure you installed NitroModules properly?
24
24
  #endif
25
+ #if __has_include(<NitroModules/PropNameIDCache.hpp>)
26
+ #include <NitroModules/PropNameIDCache.hpp>
27
+ #else
28
+ #error NitroModules cannot be found! Are you sure you installed NitroModules properly?
29
+ #endif
25
30
 
26
31
  // Forward declaration of `ImageSource` to properly resolve imports.
27
32
  namespace margelo::nitro::audiobrowser { struct ImageSource; }
28
33
  // Forward declaration of `TrackStyle` to properly resolve imports.
29
34
  namespace margelo::nitro::audiobrowser { enum class TrackStyle; }
35
+ // Forward declaration of `ImageRowItem` to properly resolve imports.
36
+ namespace margelo::nitro::audiobrowser { struct ImageRowItem; }
30
37
 
31
38
  #include <string>
32
39
  #include <optional>
33
40
  #include "ImageSource.hpp"
34
41
  #include "TrackStyle.hpp"
42
+ #include "ImageRowItem.hpp"
43
+ #include <vector>
35
44
 
36
45
  namespace margelo::nitro::audiobrowser {
37
46
 
38
47
  /**
39
48
  * A struct which can be represented as a JavaScript object (Track).
40
49
  */
41
- struct Track {
50
+ struct Track final {
42
51
  public:
43
52
  std::optional<std::string> url SWIFT_PRIVATE;
44
53
  std::optional<std::string> src SWIFT_PRIVATE;
@@ -57,10 +66,14 @@ namespace margelo::nitro::audiobrowser {
57
66
  std::optional<bool> favorited SWIFT_PRIVATE;
58
67
  std::optional<std::string> groupTitle SWIFT_PRIVATE;
59
68
  std::optional<bool> live SWIFT_PRIVATE;
69
+ std::optional<std::vector<ImageRowItem>> imageRow SWIFT_PRIVATE;
60
70
 
61
71
  public:
62
72
  Track() = default;
63
- explicit Track(std::optional<std::string> url, std::optional<std::string> src, std::optional<std::string> artwork, std::optional<ImageSource> artworkSource, std::optional<bool> artworkCarPlayTinted, std::string title, std::optional<std::string> subtitle, std::optional<std::string> artist, std::optional<std::string> album, std::optional<std::string> description, std::optional<std::string> genre, std::optional<double> duration, std::optional<TrackStyle> style, std::optional<TrackStyle> childrenStyle, std::optional<bool> favorited, std::optional<std::string> groupTitle, std::optional<bool> live): url(url), src(src), artwork(artwork), artworkSource(artworkSource), artworkCarPlayTinted(artworkCarPlayTinted), title(title), subtitle(subtitle), artist(artist), album(album), description(description), genre(genre), duration(duration), style(style), childrenStyle(childrenStyle), favorited(favorited), groupTitle(groupTitle), live(live) {}
73
+ explicit Track(std::optional<std::string> url, std::optional<std::string> src, std::optional<std::string> artwork, std::optional<ImageSource> artworkSource, std::optional<bool> artworkCarPlayTinted, std::string title, std::optional<std::string> subtitle, std::optional<std::string> artist, std::optional<std::string> album, std::optional<std::string> description, std::optional<std::string> genre, std::optional<double> duration, std::optional<TrackStyle> style, std::optional<TrackStyle> childrenStyle, std::optional<bool> favorited, std::optional<std::string> groupTitle, std::optional<bool> live, std::optional<std::vector<ImageRowItem>> imageRow): url(url), src(src), artwork(artwork), artworkSource(artworkSource), artworkCarPlayTinted(artworkCarPlayTinted), title(title), subtitle(subtitle), artist(artist), album(album), description(description), genre(genre), duration(duration), style(style), childrenStyle(childrenStyle), favorited(favorited), groupTitle(groupTitle), live(live), imageRow(imageRow) {}
74
+
75
+ public:
76
+ friend bool operator==(const Track& lhs, const Track& rhs) = default;
64
77
  };
65
78
 
66
79
  } // namespace margelo::nitro::audiobrowser
@@ -73,44 +86,46 @@ namespace margelo::nitro {
73
86
  static inline margelo::nitro::audiobrowser::Track fromJSI(jsi::Runtime& runtime, const jsi::Value& arg) {
74
87
  jsi::Object obj = arg.asObject(runtime);
75
88
  return margelo::nitro::audiobrowser::Track(
76
- JSIConverter<std::optional<std::string>>::fromJSI(runtime, obj.getProperty(runtime, "url")),
77
- JSIConverter<std::optional<std::string>>::fromJSI(runtime, obj.getProperty(runtime, "src")),
78
- JSIConverter<std::optional<std::string>>::fromJSI(runtime, obj.getProperty(runtime, "artwork")),
79
- JSIConverter<std::optional<margelo::nitro::audiobrowser::ImageSource>>::fromJSI(runtime, obj.getProperty(runtime, "artworkSource")),
80
- JSIConverter<std::optional<bool>>::fromJSI(runtime, obj.getProperty(runtime, "artworkCarPlayTinted")),
81
- JSIConverter<std::string>::fromJSI(runtime, obj.getProperty(runtime, "title")),
82
- JSIConverter<std::optional<std::string>>::fromJSI(runtime, obj.getProperty(runtime, "subtitle")),
83
- JSIConverter<std::optional<std::string>>::fromJSI(runtime, obj.getProperty(runtime, "artist")),
84
- JSIConverter<std::optional<std::string>>::fromJSI(runtime, obj.getProperty(runtime, "album")),
85
- JSIConverter<std::optional<std::string>>::fromJSI(runtime, obj.getProperty(runtime, "description")),
86
- JSIConverter<std::optional<std::string>>::fromJSI(runtime, obj.getProperty(runtime, "genre")),
87
- JSIConverter<std::optional<double>>::fromJSI(runtime, obj.getProperty(runtime, "duration")),
88
- JSIConverter<std::optional<margelo::nitro::audiobrowser::TrackStyle>>::fromJSI(runtime, obj.getProperty(runtime, "style")),
89
- JSIConverter<std::optional<margelo::nitro::audiobrowser::TrackStyle>>::fromJSI(runtime, obj.getProperty(runtime, "childrenStyle")),
90
- JSIConverter<std::optional<bool>>::fromJSI(runtime, obj.getProperty(runtime, "favorited")),
91
- JSIConverter<std::optional<std::string>>::fromJSI(runtime, obj.getProperty(runtime, "groupTitle")),
92
- JSIConverter<std::optional<bool>>::fromJSI(runtime, obj.getProperty(runtime, "live"))
89
+ JSIConverter<std::optional<std::string>>::fromJSI(runtime, obj.getProperty(runtime, PropNameIDCache::get(runtime, "url"))),
90
+ JSIConverter<std::optional<std::string>>::fromJSI(runtime, obj.getProperty(runtime, PropNameIDCache::get(runtime, "src"))),
91
+ JSIConverter<std::optional<std::string>>::fromJSI(runtime, obj.getProperty(runtime, PropNameIDCache::get(runtime, "artwork"))),
92
+ JSIConverter<std::optional<margelo::nitro::audiobrowser::ImageSource>>::fromJSI(runtime, obj.getProperty(runtime, PropNameIDCache::get(runtime, "artworkSource"))),
93
+ JSIConverter<std::optional<bool>>::fromJSI(runtime, obj.getProperty(runtime, PropNameIDCache::get(runtime, "artworkCarPlayTinted"))),
94
+ JSIConverter<std::string>::fromJSI(runtime, obj.getProperty(runtime, PropNameIDCache::get(runtime, "title"))),
95
+ JSIConverter<std::optional<std::string>>::fromJSI(runtime, obj.getProperty(runtime, PropNameIDCache::get(runtime, "subtitle"))),
96
+ JSIConverter<std::optional<std::string>>::fromJSI(runtime, obj.getProperty(runtime, PropNameIDCache::get(runtime, "artist"))),
97
+ JSIConverter<std::optional<std::string>>::fromJSI(runtime, obj.getProperty(runtime, PropNameIDCache::get(runtime, "album"))),
98
+ JSIConverter<std::optional<std::string>>::fromJSI(runtime, obj.getProperty(runtime, PropNameIDCache::get(runtime, "description"))),
99
+ JSIConverter<std::optional<std::string>>::fromJSI(runtime, obj.getProperty(runtime, PropNameIDCache::get(runtime, "genre"))),
100
+ JSIConverter<std::optional<double>>::fromJSI(runtime, obj.getProperty(runtime, PropNameIDCache::get(runtime, "duration"))),
101
+ JSIConverter<std::optional<margelo::nitro::audiobrowser::TrackStyle>>::fromJSI(runtime, obj.getProperty(runtime, PropNameIDCache::get(runtime, "style"))),
102
+ JSIConverter<std::optional<margelo::nitro::audiobrowser::TrackStyle>>::fromJSI(runtime, obj.getProperty(runtime, PropNameIDCache::get(runtime, "childrenStyle"))),
103
+ JSIConverter<std::optional<bool>>::fromJSI(runtime, obj.getProperty(runtime, PropNameIDCache::get(runtime, "favorited"))),
104
+ JSIConverter<std::optional<std::string>>::fromJSI(runtime, obj.getProperty(runtime, PropNameIDCache::get(runtime, "groupTitle"))),
105
+ JSIConverter<std::optional<bool>>::fromJSI(runtime, obj.getProperty(runtime, PropNameIDCache::get(runtime, "live"))),
106
+ JSIConverter<std::optional<std::vector<margelo::nitro::audiobrowser::ImageRowItem>>>::fromJSI(runtime, obj.getProperty(runtime, PropNameIDCache::get(runtime, "imageRow")))
93
107
  );
94
108
  }
95
109
  static inline jsi::Value toJSI(jsi::Runtime& runtime, const margelo::nitro::audiobrowser::Track& arg) {
96
110
  jsi::Object obj(runtime);
97
- obj.setProperty(runtime, "url", JSIConverter<std::optional<std::string>>::toJSI(runtime, arg.url));
98
- obj.setProperty(runtime, "src", JSIConverter<std::optional<std::string>>::toJSI(runtime, arg.src));
99
- obj.setProperty(runtime, "artwork", JSIConverter<std::optional<std::string>>::toJSI(runtime, arg.artwork));
100
- obj.setProperty(runtime, "artworkSource", JSIConverter<std::optional<margelo::nitro::audiobrowser::ImageSource>>::toJSI(runtime, arg.artworkSource));
101
- obj.setProperty(runtime, "artworkCarPlayTinted", JSIConverter<std::optional<bool>>::toJSI(runtime, arg.artworkCarPlayTinted));
102
- obj.setProperty(runtime, "title", JSIConverter<std::string>::toJSI(runtime, arg.title));
103
- obj.setProperty(runtime, "subtitle", JSIConverter<std::optional<std::string>>::toJSI(runtime, arg.subtitle));
104
- obj.setProperty(runtime, "artist", JSIConverter<std::optional<std::string>>::toJSI(runtime, arg.artist));
105
- obj.setProperty(runtime, "album", JSIConverter<std::optional<std::string>>::toJSI(runtime, arg.album));
106
- obj.setProperty(runtime, "description", JSIConverter<std::optional<std::string>>::toJSI(runtime, arg.description));
107
- obj.setProperty(runtime, "genre", JSIConverter<std::optional<std::string>>::toJSI(runtime, arg.genre));
108
- obj.setProperty(runtime, "duration", JSIConverter<std::optional<double>>::toJSI(runtime, arg.duration));
109
- obj.setProperty(runtime, "style", JSIConverter<std::optional<margelo::nitro::audiobrowser::TrackStyle>>::toJSI(runtime, arg.style));
110
- obj.setProperty(runtime, "childrenStyle", JSIConverter<std::optional<margelo::nitro::audiobrowser::TrackStyle>>::toJSI(runtime, arg.childrenStyle));
111
- obj.setProperty(runtime, "favorited", JSIConverter<std::optional<bool>>::toJSI(runtime, arg.favorited));
112
- obj.setProperty(runtime, "groupTitle", JSIConverter<std::optional<std::string>>::toJSI(runtime, arg.groupTitle));
113
- obj.setProperty(runtime, "live", JSIConverter<std::optional<bool>>::toJSI(runtime, arg.live));
111
+ obj.setProperty(runtime, PropNameIDCache::get(runtime, "url"), JSIConverter<std::optional<std::string>>::toJSI(runtime, arg.url));
112
+ obj.setProperty(runtime, PropNameIDCache::get(runtime, "src"), JSIConverter<std::optional<std::string>>::toJSI(runtime, arg.src));
113
+ obj.setProperty(runtime, PropNameIDCache::get(runtime, "artwork"), JSIConverter<std::optional<std::string>>::toJSI(runtime, arg.artwork));
114
+ obj.setProperty(runtime, PropNameIDCache::get(runtime, "artworkSource"), JSIConverter<std::optional<margelo::nitro::audiobrowser::ImageSource>>::toJSI(runtime, arg.artworkSource));
115
+ obj.setProperty(runtime, PropNameIDCache::get(runtime, "artworkCarPlayTinted"), JSIConverter<std::optional<bool>>::toJSI(runtime, arg.artworkCarPlayTinted));
116
+ obj.setProperty(runtime, PropNameIDCache::get(runtime, "title"), JSIConverter<std::string>::toJSI(runtime, arg.title));
117
+ obj.setProperty(runtime, PropNameIDCache::get(runtime, "subtitle"), JSIConverter<std::optional<std::string>>::toJSI(runtime, arg.subtitle));
118
+ obj.setProperty(runtime, PropNameIDCache::get(runtime, "artist"), JSIConverter<std::optional<std::string>>::toJSI(runtime, arg.artist));
119
+ obj.setProperty(runtime, PropNameIDCache::get(runtime, "album"), JSIConverter<std::optional<std::string>>::toJSI(runtime, arg.album));
120
+ obj.setProperty(runtime, PropNameIDCache::get(runtime, "description"), JSIConverter<std::optional<std::string>>::toJSI(runtime, arg.description));
121
+ obj.setProperty(runtime, PropNameIDCache::get(runtime, "genre"), JSIConverter<std::optional<std::string>>::toJSI(runtime, arg.genre));
122
+ obj.setProperty(runtime, PropNameIDCache::get(runtime, "duration"), JSIConverter<std::optional<double>>::toJSI(runtime, arg.duration));
123
+ obj.setProperty(runtime, PropNameIDCache::get(runtime, "style"), JSIConverter<std::optional<margelo::nitro::audiobrowser::TrackStyle>>::toJSI(runtime, arg.style));
124
+ obj.setProperty(runtime, PropNameIDCache::get(runtime, "childrenStyle"), JSIConverter<std::optional<margelo::nitro::audiobrowser::TrackStyle>>::toJSI(runtime, arg.childrenStyle));
125
+ obj.setProperty(runtime, PropNameIDCache::get(runtime, "favorited"), JSIConverter<std::optional<bool>>::toJSI(runtime, arg.favorited));
126
+ obj.setProperty(runtime, PropNameIDCache::get(runtime, "groupTitle"), JSIConverter<std::optional<std::string>>::toJSI(runtime, arg.groupTitle));
127
+ obj.setProperty(runtime, PropNameIDCache::get(runtime, "live"), JSIConverter<std::optional<bool>>::toJSI(runtime, arg.live));
128
+ obj.setProperty(runtime, PropNameIDCache::get(runtime, "imageRow"), JSIConverter<std::optional<std::vector<margelo::nitro::audiobrowser::ImageRowItem>>>::toJSI(runtime, arg.imageRow));
114
129
  return obj;
115
130
  }
116
131
  static inline bool canConvert(jsi::Runtime& runtime, const jsi::Value& value) {
@@ -121,23 +136,24 @@ namespace margelo::nitro {
121
136
  if (!nitro::isPlainObject(runtime, obj)) {
122
137
  return false;
123
138
  }
124
- if (!JSIConverter<std::optional<std::string>>::canConvert(runtime, obj.getProperty(runtime, "url"))) return false;
125
- if (!JSIConverter<std::optional<std::string>>::canConvert(runtime, obj.getProperty(runtime, "src"))) return false;
126
- if (!JSIConverter<std::optional<std::string>>::canConvert(runtime, obj.getProperty(runtime, "artwork"))) return false;
127
- if (!JSIConverter<std::optional<margelo::nitro::audiobrowser::ImageSource>>::canConvert(runtime, obj.getProperty(runtime, "artworkSource"))) return false;
128
- if (!JSIConverter<std::optional<bool>>::canConvert(runtime, obj.getProperty(runtime, "artworkCarPlayTinted"))) return false;
129
- if (!JSIConverter<std::string>::canConvert(runtime, obj.getProperty(runtime, "title"))) return false;
130
- if (!JSIConverter<std::optional<std::string>>::canConvert(runtime, obj.getProperty(runtime, "subtitle"))) return false;
131
- if (!JSIConverter<std::optional<std::string>>::canConvert(runtime, obj.getProperty(runtime, "artist"))) return false;
132
- if (!JSIConverter<std::optional<std::string>>::canConvert(runtime, obj.getProperty(runtime, "album"))) return false;
133
- if (!JSIConverter<std::optional<std::string>>::canConvert(runtime, obj.getProperty(runtime, "description"))) return false;
134
- if (!JSIConverter<std::optional<std::string>>::canConvert(runtime, obj.getProperty(runtime, "genre"))) return false;
135
- if (!JSIConverter<std::optional<double>>::canConvert(runtime, obj.getProperty(runtime, "duration"))) return false;
136
- if (!JSIConverter<std::optional<margelo::nitro::audiobrowser::TrackStyle>>::canConvert(runtime, obj.getProperty(runtime, "style"))) return false;
137
- if (!JSIConverter<std::optional<margelo::nitro::audiobrowser::TrackStyle>>::canConvert(runtime, obj.getProperty(runtime, "childrenStyle"))) return false;
138
- if (!JSIConverter<std::optional<bool>>::canConvert(runtime, obj.getProperty(runtime, "favorited"))) return false;
139
- if (!JSIConverter<std::optional<std::string>>::canConvert(runtime, obj.getProperty(runtime, "groupTitle"))) return false;
140
- if (!JSIConverter<std::optional<bool>>::canConvert(runtime, obj.getProperty(runtime, "live"))) return false;
139
+ if (!JSIConverter<std::optional<std::string>>::canConvert(runtime, obj.getProperty(runtime, PropNameIDCache::get(runtime, "url")))) return false;
140
+ if (!JSIConverter<std::optional<std::string>>::canConvert(runtime, obj.getProperty(runtime, PropNameIDCache::get(runtime, "src")))) return false;
141
+ if (!JSIConverter<std::optional<std::string>>::canConvert(runtime, obj.getProperty(runtime, PropNameIDCache::get(runtime, "artwork")))) return false;
142
+ if (!JSIConverter<std::optional<margelo::nitro::audiobrowser::ImageSource>>::canConvert(runtime, obj.getProperty(runtime, PropNameIDCache::get(runtime, "artworkSource")))) return false;
143
+ if (!JSIConverter<std::optional<bool>>::canConvert(runtime, obj.getProperty(runtime, PropNameIDCache::get(runtime, "artworkCarPlayTinted")))) return false;
144
+ if (!JSIConverter<std::string>::canConvert(runtime, obj.getProperty(runtime, PropNameIDCache::get(runtime, "title")))) return false;
145
+ if (!JSIConverter<std::optional<std::string>>::canConvert(runtime, obj.getProperty(runtime, PropNameIDCache::get(runtime, "subtitle")))) return false;
146
+ if (!JSIConverter<std::optional<std::string>>::canConvert(runtime, obj.getProperty(runtime, PropNameIDCache::get(runtime, "artist")))) return false;
147
+ if (!JSIConverter<std::optional<std::string>>::canConvert(runtime, obj.getProperty(runtime, PropNameIDCache::get(runtime, "album")))) return false;
148
+ if (!JSIConverter<std::optional<std::string>>::canConvert(runtime, obj.getProperty(runtime, PropNameIDCache::get(runtime, "description")))) return false;
149
+ if (!JSIConverter<std::optional<std::string>>::canConvert(runtime, obj.getProperty(runtime, PropNameIDCache::get(runtime, "genre")))) return false;
150
+ if (!JSIConverter<std::optional<double>>::canConvert(runtime, obj.getProperty(runtime, PropNameIDCache::get(runtime, "duration")))) return false;
151
+ if (!JSIConverter<std::optional<margelo::nitro::audiobrowser::TrackStyle>>::canConvert(runtime, obj.getProperty(runtime, PropNameIDCache::get(runtime, "style")))) return false;
152
+ if (!JSIConverter<std::optional<margelo::nitro::audiobrowser::TrackStyle>>::canConvert(runtime, obj.getProperty(runtime, PropNameIDCache::get(runtime, "childrenStyle")))) return false;
153
+ if (!JSIConverter<std::optional<bool>>::canConvert(runtime, obj.getProperty(runtime, PropNameIDCache::get(runtime, "favorited")))) return false;
154
+ if (!JSIConverter<std::optional<std::string>>::canConvert(runtime, obj.getProperty(runtime, PropNameIDCache::get(runtime, "groupTitle")))) return false;
155
+ if (!JSIConverter<std::optional<bool>>::canConvert(runtime, obj.getProperty(runtime, PropNameIDCache::get(runtime, "live")))) return false;
156
+ if (!JSIConverter<std::optional<std::vector<margelo::nitro::audiobrowser::ImageRowItem>>>::canConvert(runtime, obj.getProperty(runtime, PropNameIDCache::get(runtime, "imageRow")))) return false;
141
157
  return true;
142
158
  }
143
159
  };
@@ -0,0 +1,93 @@
1
+ ///
2
+ /// TrackLoadEvent.hpp
3
+ /// This file was generated by nitrogen. DO NOT MODIFY THIS FILE.
4
+ /// https://github.com/mrousavy/nitro
5
+ /// Copyright © Marc Rousavy @ Margelo
6
+ ///
7
+
8
+ #pragma once
9
+
10
+ #if __has_include(<NitroModules/JSIConverter.hpp>)
11
+ #include <NitroModules/JSIConverter.hpp>
12
+ #else
13
+ #error NitroModules cannot be found! Are you sure you installed NitroModules properly?
14
+ #endif
15
+ #if __has_include(<NitroModules/NitroDefines.hpp>)
16
+ #include <NitroModules/NitroDefines.hpp>
17
+ #else
18
+ #error NitroModules cannot be found! Are you sure you installed NitroModules properly?
19
+ #endif
20
+ #if __has_include(<NitroModules/JSIHelpers.hpp>)
21
+ #include <NitroModules/JSIHelpers.hpp>
22
+ #else
23
+ #error NitroModules cannot be found! Are you sure you installed NitroModules properly?
24
+ #endif
25
+ #if __has_include(<NitroModules/PropNameIDCache.hpp>)
26
+ #include <NitroModules/PropNameIDCache.hpp>
27
+ #else
28
+ #error NitroModules cannot be found! Are you sure you installed NitroModules properly?
29
+ #endif
30
+
31
+ // Forward declaration of `Track` to properly resolve imports.
32
+ namespace margelo::nitro::audiobrowser { struct Track; }
33
+
34
+ #include "Track.hpp"
35
+ #include <vector>
36
+
37
+ namespace margelo::nitro::audiobrowser {
38
+
39
+ /**
40
+ * A struct which can be represented as a JavaScript object (TrackLoadEvent).
41
+ */
42
+ struct TrackLoadEvent final {
43
+ public:
44
+ Track track SWIFT_PRIVATE;
45
+ std::vector<Track> queue SWIFT_PRIVATE;
46
+ double startIndex SWIFT_PRIVATE;
47
+
48
+ public:
49
+ TrackLoadEvent() = default;
50
+ explicit TrackLoadEvent(Track track, std::vector<Track> queue, double startIndex): track(track), queue(queue), startIndex(startIndex) {}
51
+
52
+ public:
53
+ friend bool operator==(const TrackLoadEvent& lhs, const TrackLoadEvent& rhs) = default;
54
+ };
55
+
56
+ } // namespace margelo::nitro::audiobrowser
57
+
58
+ namespace margelo::nitro {
59
+
60
+ // C++ TrackLoadEvent <> JS TrackLoadEvent (object)
61
+ template <>
62
+ struct JSIConverter<margelo::nitro::audiobrowser::TrackLoadEvent> final {
63
+ static inline margelo::nitro::audiobrowser::TrackLoadEvent fromJSI(jsi::Runtime& runtime, const jsi::Value& arg) {
64
+ jsi::Object obj = arg.asObject(runtime);
65
+ return margelo::nitro::audiobrowser::TrackLoadEvent(
66
+ JSIConverter<margelo::nitro::audiobrowser::Track>::fromJSI(runtime, obj.getProperty(runtime, PropNameIDCache::get(runtime, "track"))),
67
+ JSIConverter<std::vector<margelo::nitro::audiobrowser::Track>>::fromJSI(runtime, obj.getProperty(runtime, PropNameIDCache::get(runtime, "queue"))),
68
+ JSIConverter<double>::fromJSI(runtime, obj.getProperty(runtime, PropNameIDCache::get(runtime, "startIndex")))
69
+ );
70
+ }
71
+ static inline jsi::Value toJSI(jsi::Runtime& runtime, const margelo::nitro::audiobrowser::TrackLoadEvent& arg) {
72
+ jsi::Object obj(runtime);
73
+ obj.setProperty(runtime, PropNameIDCache::get(runtime, "track"), JSIConverter<margelo::nitro::audiobrowser::Track>::toJSI(runtime, arg.track));
74
+ obj.setProperty(runtime, PropNameIDCache::get(runtime, "queue"), JSIConverter<std::vector<margelo::nitro::audiobrowser::Track>>::toJSI(runtime, arg.queue));
75
+ obj.setProperty(runtime, PropNameIDCache::get(runtime, "startIndex"), JSIConverter<double>::toJSI(runtime, arg.startIndex));
76
+ return obj;
77
+ }
78
+ static inline bool canConvert(jsi::Runtime& runtime, const jsi::Value& value) {
79
+ if (!value.isObject()) {
80
+ return false;
81
+ }
82
+ jsi::Object obj = value.getObject(runtime);
83
+ if (!nitro::isPlainObject(runtime, obj)) {
84
+ return false;
85
+ }
86
+ if (!JSIConverter<margelo::nitro::audiobrowser::Track>::canConvert(runtime, obj.getProperty(runtime, PropNameIDCache::get(runtime, "track")))) return false;
87
+ if (!JSIConverter<std::vector<margelo::nitro::audiobrowser::Track>>::canConvert(runtime, obj.getProperty(runtime, PropNameIDCache::get(runtime, "queue")))) return false;
88
+ if (!JSIConverter<double>::canConvert(runtime, obj.getProperty(runtime, PropNameIDCache::get(runtime, "startIndex")))) return false;
89
+ return true;
90
+ }
91
+ };
92
+
93
+ } // namespace margelo::nitro
@@ -2,7 +2,7 @@
2
2
  /// TrackMetadata.hpp
3
3
  /// This file was generated by nitrogen. DO NOT MODIFY THIS FILE.
4
4
  /// https://github.com/mrousavy/nitro
5
- /// Copyright © 2026 Marc Rousavy @ Margelo
5
+ /// Copyright © Marc Rousavy @ Margelo
6
6
  ///
7
7
 
8
8
  #pragma once
@@ -22,6 +22,11 @@
22
22
  #else
23
23
  #error NitroModules cannot be found! Are you sure you installed NitroModules properly?
24
24
  #endif
25
+ #if __has_include(<NitroModules/PropNameIDCache.hpp>)
26
+ #include <NitroModules/PropNameIDCache.hpp>
27
+ #else
28
+ #error NitroModules cannot be found! Are you sure you installed NitroModules properly?
29
+ #endif
25
30
 
26
31
 
27
32
 
@@ -33,7 +38,7 @@ namespace margelo::nitro::audiobrowser {
33
38
  /**
34
39
  * A struct which can be represented as a JavaScript object (TrackMetadata).
35
40
  */
36
- struct TrackMetadata {
41
+ struct TrackMetadata final {
37
42
  public:
38
43
  std::optional<std::string> title SWIFT_PRIVATE;
39
44
  std::optional<std::string> artist SWIFT_PRIVATE;
@@ -55,6 +60,9 @@ namespace margelo::nitro::audiobrowser {
55
60
  public:
56
61
  TrackMetadata() = default;
57
62
  explicit TrackMetadata(std::optional<std::string> title, std::optional<std::string> artist, std::optional<std::string> albumTitle, std::optional<std::string> subtitle, std::optional<std::string> description, std::optional<std::string> artworkUri, std::optional<std::string> trackNumber, std::optional<std::string> composer, std::optional<std::string> conductor, std::optional<std::string> genre, std::optional<std::string> compilation, std::optional<std::string> station, std::optional<std::string> mediaType, std::optional<std::string> creationDate, std::optional<std::string> creationYear, std::optional<std::string> url): title(title), artist(artist), albumTitle(albumTitle), subtitle(subtitle), description(description), artworkUri(artworkUri), trackNumber(trackNumber), composer(composer), conductor(conductor), genre(genre), compilation(compilation), station(station), mediaType(mediaType), creationDate(creationDate), creationYear(creationYear), url(url) {}
63
+
64
+ public:
65
+ friend bool operator==(const TrackMetadata& lhs, const TrackMetadata& rhs) = default;
58
66
  };
59
67
 
60
68
  } // namespace margelo::nitro::audiobrowser
@@ -67,42 +75,42 @@ namespace margelo::nitro {
67
75
  static inline margelo::nitro::audiobrowser::TrackMetadata fromJSI(jsi::Runtime& runtime, const jsi::Value& arg) {
68
76
  jsi::Object obj = arg.asObject(runtime);
69
77
  return margelo::nitro::audiobrowser::TrackMetadata(
70
- JSIConverter<std::optional<std::string>>::fromJSI(runtime, obj.getProperty(runtime, "title")),
71
- JSIConverter<std::optional<std::string>>::fromJSI(runtime, obj.getProperty(runtime, "artist")),
72
- JSIConverter<std::optional<std::string>>::fromJSI(runtime, obj.getProperty(runtime, "albumTitle")),
73
- JSIConverter<std::optional<std::string>>::fromJSI(runtime, obj.getProperty(runtime, "subtitle")),
74
- JSIConverter<std::optional<std::string>>::fromJSI(runtime, obj.getProperty(runtime, "description")),
75
- JSIConverter<std::optional<std::string>>::fromJSI(runtime, obj.getProperty(runtime, "artworkUri")),
76
- JSIConverter<std::optional<std::string>>::fromJSI(runtime, obj.getProperty(runtime, "trackNumber")),
77
- JSIConverter<std::optional<std::string>>::fromJSI(runtime, obj.getProperty(runtime, "composer")),
78
- JSIConverter<std::optional<std::string>>::fromJSI(runtime, obj.getProperty(runtime, "conductor")),
79
- JSIConverter<std::optional<std::string>>::fromJSI(runtime, obj.getProperty(runtime, "genre")),
80
- JSIConverter<std::optional<std::string>>::fromJSI(runtime, obj.getProperty(runtime, "compilation")),
81
- JSIConverter<std::optional<std::string>>::fromJSI(runtime, obj.getProperty(runtime, "station")),
82
- JSIConverter<std::optional<std::string>>::fromJSI(runtime, obj.getProperty(runtime, "mediaType")),
83
- JSIConverter<std::optional<std::string>>::fromJSI(runtime, obj.getProperty(runtime, "creationDate")),
84
- JSIConverter<std::optional<std::string>>::fromJSI(runtime, obj.getProperty(runtime, "creationYear")),
85
- JSIConverter<std::optional<std::string>>::fromJSI(runtime, obj.getProperty(runtime, "url"))
78
+ JSIConverter<std::optional<std::string>>::fromJSI(runtime, obj.getProperty(runtime, PropNameIDCache::get(runtime, "title"))),
79
+ JSIConverter<std::optional<std::string>>::fromJSI(runtime, obj.getProperty(runtime, PropNameIDCache::get(runtime, "artist"))),
80
+ JSIConverter<std::optional<std::string>>::fromJSI(runtime, obj.getProperty(runtime, PropNameIDCache::get(runtime, "albumTitle"))),
81
+ JSIConverter<std::optional<std::string>>::fromJSI(runtime, obj.getProperty(runtime, PropNameIDCache::get(runtime, "subtitle"))),
82
+ JSIConverter<std::optional<std::string>>::fromJSI(runtime, obj.getProperty(runtime, PropNameIDCache::get(runtime, "description"))),
83
+ JSIConverter<std::optional<std::string>>::fromJSI(runtime, obj.getProperty(runtime, PropNameIDCache::get(runtime, "artworkUri"))),
84
+ JSIConverter<std::optional<std::string>>::fromJSI(runtime, obj.getProperty(runtime, PropNameIDCache::get(runtime, "trackNumber"))),
85
+ JSIConverter<std::optional<std::string>>::fromJSI(runtime, obj.getProperty(runtime, PropNameIDCache::get(runtime, "composer"))),
86
+ JSIConverter<std::optional<std::string>>::fromJSI(runtime, obj.getProperty(runtime, PropNameIDCache::get(runtime, "conductor"))),
87
+ JSIConverter<std::optional<std::string>>::fromJSI(runtime, obj.getProperty(runtime, PropNameIDCache::get(runtime, "genre"))),
88
+ JSIConverter<std::optional<std::string>>::fromJSI(runtime, obj.getProperty(runtime, PropNameIDCache::get(runtime, "compilation"))),
89
+ JSIConverter<std::optional<std::string>>::fromJSI(runtime, obj.getProperty(runtime, PropNameIDCache::get(runtime, "station"))),
90
+ JSIConverter<std::optional<std::string>>::fromJSI(runtime, obj.getProperty(runtime, PropNameIDCache::get(runtime, "mediaType"))),
91
+ JSIConverter<std::optional<std::string>>::fromJSI(runtime, obj.getProperty(runtime, PropNameIDCache::get(runtime, "creationDate"))),
92
+ JSIConverter<std::optional<std::string>>::fromJSI(runtime, obj.getProperty(runtime, PropNameIDCache::get(runtime, "creationYear"))),
93
+ JSIConverter<std::optional<std::string>>::fromJSI(runtime, obj.getProperty(runtime, PropNameIDCache::get(runtime, "url")))
86
94
  );
87
95
  }
88
96
  static inline jsi::Value toJSI(jsi::Runtime& runtime, const margelo::nitro::audiobrowser::TrackMetadata& arg) {
89
97
  jsi::Object obj(runtime);
90
- obj.setProperty(runtime, "title", JSIConverter<std::optional<std::string>>::toJSI(runtime, arg.title));
91
- obj.setProperty(runtime, "artist", JSIConverter<std::optional<std::string>>::toJSI(runtime, arg.artist));
92
- obj.setProperty(runtime, "albumTitle", JSIConverter<std::optional<std::string>>::toJSI(runtime, arg.albumTitle));
93
- obj.setProperty(runtime, "subtitle", JSIConverter<std::optional<std::string>>::toJSI(runtime, arg.subtitle));
94
- obj.setProperty(runtime, "description", JSIConverter<std::optional<std::string>>::toJSI(runtime, arg.description));
95
- obj.setProperty(runtime, "artworkUri", JSIConverter<std::optional<std::string>>::toJSI(runtime, arg.artworkUri));
96
- obj.setProperty(runtime, "trackNumber", JSIConverter<std::optional<std::string>>::toJSI(runtime, arg.trackNumber));
97
- obj.setProperty(runtime, "composer", JSIConverter<std::optional<std::string>>::toJSI(runtime, arg.composer));
98
- obj.setProperty(runtime, "conductor", JSIConverter<std::optional<std::string>>::toJSI(runtime, arg.conductor));
99
- obj.setProperty(runtime, "genre", JSIConverter<std::optional<std::string>>::toJSI(runtime, arg.genre));
100
- obj.setProperty(runtime, "compilation", JSIConverter<std::optional<std::string>>::toJSI(runtime, arg.compilation));
101
- obj.setProperty(runtime, "station", JSIConverter<std::optional<std::string>>::toJSI(runtime, arg.station));
102
- obj.setProperty(runtime, "mediaType", JSIConverter<std::optional<std::string>>::toJSI(runtime, arg.mediaType));
103
- obj.setProperty(runtime, "creationDate", JSIConverter<std::optional<std::string>>::toJSI(runtime, arg.creationDate));
104
- obj.setProperty(runtime, "creationYear", JSIConverter<std::optional<std::string>>::toJSI(runtime, arg.creationYear));
105
- obj.setProperty(runtime, "url", JSIConverter<std::optional<std::string>>::toJSI(runtime, arg.url));
98
+ obj.setProperty(runtime, PropNameIDCache::get(runtime, "title"), JSIConverter<std::optional<std::string>>::toJSI(runtime, arg.title));
99
+ obj.setProperty(runtime, PropNameIDCache::get(runtime, "artist"), JSIConverter<std::optional<std::string>>::toJSI(runtime, arg.artist));
100
+ obj.setProperty(runtime, PropNameIDCache::get(runtime, "albumTitle"), JSIConverter<std::optional<std::string>>::toJSI(runtime, arg.albumTitle));
101
+ obj.setProperty(runtime, PropNameIDCache::get(runtime, "subtitle"), JSIConverter<std::optional<std::string>>::toJSI(runtime, arg.subtitle));
102
+ obj.setProperty(runtime, PropNameIDCache::get(runtime, "description"), JSIConverter<std::optional<std::string>>::toJSI(runtime, arg.description));
103
+ obj.setProperty(runtime, PropNameIDCache::get(runtime, "artworkUri"), JSIConverter<std::optional<std::string>>::toJSI(runtime, arg.artworkUri));
104
+ obj.setProperty(runtime, PropNameIDCache::get(runtime, "trackNumber"), JSIConverter<std::optional<std::string>>::toJSI(runtime, arg.trackNumber));
105
+ obj.setProperty(runtime, PropNameIDCache::get(runtime, "composer"), JSIConverter<std::optional<std::string>>::toJSI(runtime, arg.composer));
106
+ obj.setProperty(runtime, PropNameIDCache::get(runtime, "conductor"), JSIConverter<std::optional<std::string>>::toJSI(runtime, arg.conductor));
107
+ obj.setProperty(runtime, PropNameIDCache::get(runtime, "genre"), JSIConverter<std::optional<std::string>>::toJSI(runtime, arg.genre));
108
+ obj.setProperty(runtime, PropNameIDCache::get(runtime, "compilation"), JSIConverter<std::optional<std::string>>::toJSI(runtime, arg.compilation));
109
+ obj.setProperty(runtime, PropNameIDCache::get(runtime, "station"), JSIConverter<std::optional<std::string>>::toJSI(runtime, arg.station));
110
+ obj.setProperty(runtime, PropNameIDCache::get(runtime, "mediaType"), JSIConverter<std::optional<std::string>>::toJSI(runtime, arg.mediaType));
111
+ obj.setProperty(runtime, PropNameIDCache::get(runtime, "creationDate"), JSIConverter<std::optional<std::string>>::toJSI(runtime, arg.creationDate));
112
+ obj.setProperty(runtime, PropNameIDCache::get(runtime, "creationYear"), JSIConverter<std::optional<std::string>>::toJSI(runtime, arg.creationYear));
113
+ obj.setProperty(runtime, PropNameIDCache::get(runtime, "url"), JSIConverter<std::optional<std::string>>::toJSI(runtime, arg.url));
106
114
  return obj;
107
115
  }
108
116
  static inline bool canConvert(jsi::Runtime& runtime, const jsi::Value& value) {
@@ -113,22 +121,22 @@ namespace margelo::nitro {
113
121
  if (!nitro::isPlainObject(runtime, obj)) {
114
122
  return false;
115
123
  }
116
- if (!JSIConverter<std::optional<std::string>>::canConvert(runtime, obj.getProperty(runtime, "title"))) return false;
117
- if (!JSIConverter<std::optional<std::string>>::canConvert(runtime, obj.getProperty(runtime, "artist"))) return false;
118
- if (!JSIConverter<std::optional<std::string>>::canConvert(runtime, obj.getProperty(runtime, "albumTitle"))) return false;
119
- if (!JSIConverter<std::optional<std::string>>::canConvert(runtime, obj.getProperty(runtime, "subtitle"))) return false;
120
- if (!JSIConverter<std::optional<std::string>>::canConvert(runtime, obj.getProperty(runtime, "description"))) return false;
121
- if (!JSIConverter<std::optional<std::string>>::canConvert(runtime, obj.getProperty(runtime, "artworkUri"))) return false;
122
- if (!JSIConverter<std::optional<std::string>>::canConvert(runtime, obj.getProperty(runtime, "trackNumber"))) return false;
123
- if (!JSIConverter<std::optional<std::string>>::canConvert(runtime, obj.getProperty(runtime, "composer"))) return false;
124
- if (!JSIConverter<std::optional<std::string>>::canConvert(runtime, obj.getProperty(runtime, "conductor"))) return false;
125
- if (!JSIConverter<std::optional<std::string>>::canConvert(runtime, obj.getProperty(runtime, "genre"))) return false;
126
- if (!JSIConverter<std::optional<std::string>>::canConvert(runtime, obj.getProperty(runtime, "compilation"))) return false;
127
- if (!JSIConverter<std::optional<std::string>>::canConvert(runtime, obj.getProperty(runtime, "station"))) return false;
128
- if (!JSIConverter<std::optional<std::string>>::canConvert(runtime, obj.getProperty(runtime, "mediaType"))) return false;
129
- if (!JSIConverter<std::optional<std::string>>::canConvert(runtime, obj.getProperty(runtime, "creationDate"))) return false;
130
- if (!JSIConverter<std::optional<std::string>>::canConvert(runtime, obj.getProperty(runtime, "creationYear"))) return false;
131
- if (!JSIConverter<std::optional<std::string>>::canConvert(runtime, obj.getProperty(runtime, "url"))) return false;
124
+ if (!JSIConverter<std::optional<std::string>>::canConvert(runtime, obj.getProperty(runtime, PropNameIDCache::get(runtime, "title")))) return false;
125
+ if (!JSIConverter<std::optional<std::string>>::canConvert(runtime, obj.getProperty(runtime, PropNameIDCache::get(runtime, "artist")))) return false;
126
+ if (!JSIConverter<std::optional<std::string>>::canConvert(runtime, obj.getProperty(runtime, PropNameIDCache::get(runtime, "albumTitle")))) return false;
127
+ if (!JSIConverter<std::optional<std::string>>::canConvert(runtime, obj.getProperty(runtime, PropNameIDCache::get(runtime, "subtitle")))) return false;
128
+ if (!JSIConverter<std::optional<std::string>>::canConvert(runtime, obj.getProperty(runtime, PropNameIDCache::get(runtime, "description")))) return false;
129
+ if (!JSIConverter<std::optional<std::string>>::canConvert(runtime, obj.getProperty(runtime, PropNameIDCache::get(runtime, "artworkUri")))) return false;
130
+ if (!JSIConverter<std::optional<std::string>>::canConvert(runtime, obj.getProperty(runtime, PropNameIDCache::get(runtime, "trackNumber")))) return false;
131
+ if (!JSIConverter<std::optional<std::string>>::canConvert(runtime, obj.getProperty(runtime, PropNameIDCache::get(runtime, "composer")))) return false;
132
+ if (!JSIConverter<std::optional<std::string>>::canConvert(runtime, obj.getProperty(runtime, PropNameIDCache::get(runtime, "conductor")))) return false;
133
+ if (!JSIConverter<std::optional<std::string>>::canConvert(runtime, obj.getProperty(runtime, PropNameIDCache::get(runtime, "genre")))) return false;
134
+ if (!JSIConverter<std::optional<std::string>>::canConvert(runtime, obj.getProperty(runtime, PropNameIDCache::get(runtime, "compilation")))) return false;
135
+ if (!JSIConverter<std::optional<std::string>>::canConvert(runtime, obj.getProperty(runtime, PropNameIDCache::get(runtime, "station")))) return false;
136
+ if (!JSIConverter<std::optional<std::string>>::canConvert(runtime, obj.getProperty(runtime, PropNameIDCache::get(runtime, "mediaType")))) return false;
137
+ if (!JSIConverter<std::optional<std::string>>::canConvert(runtime, obj.getProperty(runtime, PropNameIDCache::get(runtime, "creationDate")))) return false;
138
+ if (!JSIConverter<std::optional<std::string>>::canConvert(runtime, obj.getProperty(runtime, PropNameIDCache::get(runtime, "creationYear")))) return false;
139
+ if (!JSIConverter<std::optional<std::string>>::canConvert(runtime, obj.getProperty(runtime, PropNameIDCache::get(runtime, "url")))) return false;
132
140
  return true;
133
141
  }
134
142
  };
@@ -2,7 +2,7 @@
2
2
  /// TrackStyle.hpp
3
3
  /// This file was generated by nitrogen. DO NOT MODIFY THIS FILE.
4
4
  /// https://github.com/mrousavy/nitro
5
- /// Copyright © 2026 Marc Rousavy @ Margelo
5
+ /// Copyright © Marc Rousavy @ Margelo
6
6
  ///
7
7
 
8
8
  #pragma once