playron 1.0.32 → 1.0.34

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 (268) hide show
  1. package/dist/Docs.d.ts +2 -0
  2. package/dist/Docs.d.ts.map +1 -0
  3. package/dist/ErrorManager-CDf_sFKX.cjs +1 -0
  4. package/dist/ErrorManager-i9WcRsWb.js +43 -0
  5. package/dist/Why.d.ts +2 -0
  6. package/dist/Why.d.ts.map +1 -0
  7. package/dist/components/PlayerConfig.d.ts +35 -0
  8. package/dist/components/PlayerConfig.d.ts.map +1 -0
  9. package/dist/components/PlayronControls.d.ts +26 -0
  10. package/dist/components/PlayronControls.d.ts.map +1 -0
  11. package/dist/components/PlayronPlayer.d.ts +37 -0
  12. package/dist/components/PlayronPlayer.d.ts.map +1 -0
  13. package/dist/components/SiteHeader.d.ts +6 -0
  14. package/dist/components/SiteHeader.d.ts.map +1 -0
  15. package/dist/constants/sample-intro-outro.d.ts +3 -0
  16. package/dist/constants/sample-intro-outro.d.ts.map +1 -0
  17. package/dist/constants/source.d.ts +2 -0
  18. package/dist/constants/source.d.ts.map +1 -0
  19. package/dist/constants/sports-events.d.ts +58 -0
  20. package/dist/constants/sports-events.d.ts.map +1 -0
  21. package/dist/context/PlayerContext.d.ts +3 -0
  22. package/dist/context/PlayerContext.d.ts.map +1 -0
  23. package/dist/context/PlayerMethodsContext.d.ts +63 -0
  24. package/dist/context/PlayerMethodsContext.d.ts.map +1 -0
  25. package/dist/context/PlayerProvider.d.ts +9 -0
  26. package/dist/context/PlayerProvider.d.ts.map +1 -0
  27. package/dist/context/PlayerStateContext.d.ts +4 -0
  28. package/dist/context/PlayerStateContext.d.ts.map +1 -0
  29. package/dist/context/PlayronContext.d.ts +100 -0
  30. package/dist/context/PlayronContext.d.ts.map +1 -0
  31. package/dist/context/SubtitleStyleContext.d.ts +22 -0
  32. package/dist/context/SubtitleStyleContext.d.ts.map +1 -0
  33. package/dist/core/ConfigManager.d.ts +78 -0
  34. package/dist/core/ConfigManager.d.ts.map +1 -0
  35. package/dist/core/ErrorManager.d.ts +22 -0
  36. package/dist/core/ErrorManager.d.ts.map +1 -0
  37. package/dist/core/EventBus.d.ts +32 -0
  38. package/dist/core/EventBus.d.ts.map +1 -0
  39. package/dist/core/PlayerCore.d.ts +191 -0
  40. package/dist/core/PlayerCore.d.ts.map +1 -0
  41. package/dist/core/PlayronEventEmitter.d.ts +168 -0
  42. package/dist/core/PlayronEventEmitter.d.ts.map +1 -0
  43. package/dist/core/PluginSystem.d.ts +111 -0
  44. package/dist/core/PluginSystem.d.ts.map +1 -0
  45. package/dist/core/StallDetector.d.ts +27 -0
  46. package/dist/core/StallDetector.d.ts.map +1 -0
  47. package/dist/core/StateManager.d.ts +90 -0
  48. package/dist/core/StateManager.d.ts.map +1 -0
  49. package/dist/core/VideoEngine.d.ts +92 -0
  50. package/dist/core/VideoEngine.d.ts.map +1 -0
  51. package/dist/core/adaptive/StreamDetector.d.ts +73 -0
  52. package/dist/core/adaptive/StreamDetector.d.ts.map +1 -0
  53. package/dist/core/cast/ChromecastManager.d.ts +192 -0
  54. package/dist/core/cast/ChromecastManager.d.ts.map +1 -0
  55. package/dist/core/drm/DrmCapabilityProbe.d.ts +13 -0
  56. package/dist/core/drm/DrmCapabilityProbe.d.ts.map +1 -0
  57. package/dist/core/drm/DrmManager.d.ts +29 -0
  58. package/dist/core/drm/DrmManager.d.ts.map +1 -0
  59. package/dist/core/drm/LicenseManager.d.ts +28 -0
  60. package/dist/core/drm/LicenseManager.d.ts.map +1 -0
  61. package/dist/core/drm/adapters/BaseDrmAdapter.d.ts +33 -0
  62. package/dist/core/drm/adapters/BaseDrmAdapter.d.ts.map +1 -0
  63. package/dist/core/drm/adapters/FairPlayAdapter.d.ts +23 -0
  64. package/dist/core/drm/adapters/FairPlayAdapter.d.ts.map +1 -0
  65. package/dist/core/drm/adapters/PlayReadyAdapter.d.ts +20 -0
  66. package/dist/core/drm/adapters/PlayReadyAdapter.d.ts.map +1 -0
  67. package/dist/core/drm/adapters/WidevineAdapter.d.ts +18 -0
  68. package/dist/core/drm/adapters/WidevineAdapter.d.ts.map +1 -0
  69. package/dist/core/network/index.d.ts +6 -0
  70. package/dist/core/network/index.d.ts.map +1 -0
  71. package/dist/core/streaming/DashEngine.d.ts +149 -0
  72. package/dist/core/streaming/DashEngine.d.ts.map +1 -0
  73. package/dist/core/streaming/HlsEngine.d.ts +172 -0
  74. package/dist/core/streaming/HlsEngine.d.ts.map +1 -0
  75. package/dist/core/streaming/SubtitleManager.d.ts +92 -0
  76. package/dist/core/streaming/SubtitleManager.d.ts.map +1 -0
  77. package/dist/core/streaming/ThumbnailManager.d.ts +44 -0
  78. package/dist/core/streaming/ThumbnailManager.d.ts.map +1 -0
  79. package/dist/core/streaming/index.d.ts +11 -0
  80. package/dist/core/streaming/index.d.ts.map +1 -0
  81. package/dist/core/streaming/parsers/TtmlParser.d.ts +46 -0
  82. package/dist/core/streaming/parsers/TtmlParser.d.ts.map +1 -0
  83. package/dist/core/streaming/parsers/WebVttParser.d.ts +56 -0
  84. package/dist/core/streaming/parsers/WebVttParser.d.ts.map +1 -0
  85. package/dist/hooks/useClickOutside.d.ts +4 -0
  86. package/dist/hooks/useClickOutside.d.ts.map +1 -0
  87. package/dist/hooks/useKeyboardControls.d.ts +20 -0
  88. package/dist/hooks/useKeyboardControls.d.ts.map +1 -0
  89. package/dist/hooks/useMobileGestures.d.ts +17 -0
  90. package/dist/hooks/useMobileGestures.d.ts.map +1 -0
  91. package/dist/hooks/useMouseActivity.d.ts +10 -0
  92. package/dist/hooks/useMouseActivity.d.ts.map +1 -0
  93. package/dist/hooks/usePlayer.d.ts +6 -0
  94. package/dist/hooks/usePlayer.d.ts.map +1 -0
  95. package/dist/hooks/usePlayerMethods.d.ts +6 -0
  96. package/dist/hooks/usePlayerMethods.d.ts.map +1 -0
  97. package/dist/hooks/usePlayerState.d.ts +11 -0
  98. package/dist/hooks/usePlayerState.d.ts.map +1 -0
  99. package/dist/index.d.ts +107 -1934
  100. package/dist/index.d.ts.map +1 -0
  101. package/dist/layout/ControlsContainer.d.ts +9 -0
  102. package/dist/layout/ControlsContainer.d.ts.map +1 -0
  103. package/dist/layout/ControlsContainer.responsive.d.ts +8 -0
  104. package/dist/layout/ControlsContainer.responsive.d.ts.map +1 -0
  105. package/dist/layout/SeekBarContainer.d.ts +16 -0
  106. package/dist/layout/SeekBarContainer.d.ts.map +1 -0
  107. package/dist/playron.cjs.js +256 -1
  108. package/dist/playron.css +1 -1
  109. package/dist/playron.es.js +48441 -297
  110. package/dist/plugins/AdPlugin.d.ts +8 -0
  111. package/dist/plugins/AdPlugin.d.ts.map +1 -0
  112. package/dist/plugins/AnalyticsPlugin.d.ts +50 -0
  113. package/dist/plugins/AnalyticsPlugin.d.ts.map +1 -0
  114. package/dist/plugins/PluginManager.d.ts +2 -0
  115. package/dist/plugins/PluginManager.d.ts.map +1 -0
  116. package/dist/plugins/SocialPlugin.d.ts +2 -0
  117. package/dist/plugins/SocialPlugin.d.ts.map +1 -0
  118. package/dist/plugins/ads/AdManager.d.ts +79 -0
  119. package/dist/plugins/ads/AdManager.d.ts.map +1 -0
  120. package/dist/plugins/ads/AdPlayer.d.ts +33 -0
  121. package/dist/plugins/ads/AdPlayer.d.ts.map +1 -0
  122. package/dist/plugins/ads/AdTracker.d.ts +34 -0
  123. package/dist/plugins/ads/AdTracker.d.ts.map +1 -0
  124. package/dist/plugins/ads/VASTParser.d.ts +52 -0
  125. package/dist/plugins/ads/VASTParser.d.ts.map +1 -0
  126. package/dist/plugins/ads/VMAPParser.d.ts +31 -0
  127. package/dist/plugins/ads/VMAPParser.d.ts.map +1 -0
  128. package/dist/plugins/ads/types.d.ts +108 -0
  129. package/dist/plugins/ads/types.d.ts.map +1 -0
  130. package/dist/poster.png +0 -0
  131. package/dist/test-ad.xml +37 -0
  132. package/dist/test-vmap.xml +30 -0
  133. package/dist/types/analytics.d.ts +86 -0
  134. package/dist/types/analytics.d.ts.map +1 -0
  135. package/dist/types/chapters.types.d.ts +17 -0
  136. package/dist/types/chapters.types.d.ts.map +1 -0
  137. package/dist/types/config.d.ts +23 -0
  138. package/dist/types/config.d.ts.map +1 -0
  139. package/dist/types/config.types.d.ts +271 -0
  140. package/dist/types/config.types.d.ts.map +1 -0
  141. package/dist/types/controlbar.types.d.ts +5 -0
  142. package/dist/types/controlbar.types.d.ts.map +1 -0
  143. package/dist/types/drm.types.d.ts +163 -0
  144. package/dist/types/drm.types.d.ts.map +1 -0
  145. package/dist/types/events.d.ts +36 -0
  146. package/dist/types/events.d.ts.map +1 -0
  147. package/dist/types/extended.types.d.ts +85 -0
  148. package/dist/types/extended.types.d.ts.map +1 -0
  149. package/dist/types/manifest.types.d.ts +297 -0
  150. package/dist/types/manifest.types.d.ts.map +1 -0
  151. package/dist/types/playbutton.types.d.ts +2 -0
  152. package/dist/types/playbutton.types.d.ts.map +1 -0
  153. package/dist/types/player.types.d.ts +21 -0
  154. package/dist/types/player.types.d.ts.map +1 -0
  155. package/dist/types/seekbar.types.d.ts +5 -0
  156. package/dist/types/seekbar.types.d.ts.map +1 -0
  157. package/dist/types/streaming.types.d.ts +168 -0
  158. package/dist/types/streaming.types.d.ts.map +1 -0
  159. package/dist/types/timeline.types.d.ts +46 -0
  160. package/dist/types/timeline.types.d.ts.map +1 -0
  161. package/dist/types/video-events.d.ts +51 -0
  162. package/dist/types/video-events.d.ts.map +1 -0
  163. package/dist/ui/Common/BufferingIndicator.d.ts +2 -0
  164. package/dist/ui/Common/BufferingIndicator.d.ts.map +1 -0
  165. package/dist/ui/Common/ControlBar.d.ts +3 -0
  166. package/dist/ui/Common/ControlBar.d.ts.map +1 -0
  167. package/dist/ui/Common/ControlBar.responsive.d.ts +3 -0
  168. package/dist/ui/Common/ControlBar.responsive.d.ts.map +1 -0
  169. package/dist/ui/Common/Dropdown/Dropdown.d.ts +14 -0
  170. package/dist/ui/Common/Dropdown/Dropdown.d.ts.map +1 -0
  171. package/dist/ui/Common/Dropdown/DropdownItem.d.ts +11 -0
  172. package/dist/ui/Common/Dropdown/DropdownItem.d.ts.map +1 -0
  173. package/dist/ui/Common/Dropdown/DropdownPanel.d.ts +9 -0
  174. package/dist/ui/Common/Dropdown/DropdownPanel.d.ts.map +1 -0
  175. package/dist/ui/Common/Dropdown/DropdownTrigger.d.ts +7 -0
  176. package/dist/ui/Common/Dropdown/DropdownTrigger.d.ts.map +1 -0
  177. package/dist/ui/Common/LoadingSpinner.d.ts +6 -0
  178. package/dist/ui/Common/LoadingSpinner.d.ts.map +1 -0
  179. package/dist/ui/Common/Overlay.d.ts +11 -0
  180. package/dist/ui/Common/Overlay.d.ts.map +1 -0
  181. package/dist/ui/Common/SeekBar.d.ts +41 -0
  182. package/dist/ui/Common/SeekBar.d.ts.map +1 -0
  183. package/dist/ui/Common/SeekBar.responsive.d.ts +10 -0
  184. package/dist/ui/Common/SeekBar.responsive.d.ts.map +1 -0
  185. package/dist/ui/Common/TimeDisplay.d.ts +2 -0
  186. package/dist/ui/Common/TimeDisplay.d.ts.map +1 -0
  187. package/dist/ui/Common/TimelineMarker.d.ts +11 -0
  188. package/dist/ui/Common/TimelineMarker.d.ts.map +1 -0
  189. package/dist/ui/Common/Tooltip.d.ts +2 -0
  190. package/dist/ui/Common/Tooltip.d.ts.map +1 -0
  191. package/dist/ui/Common/VolumePanel.d.ts +2 -0
  192. package/dist/ui/Common/VolumePanel.d.ts.map +1 -0
  193. package/dist/ui/Controls/AudioTrackSelector.d.ts +2 -0
  194. package/dist/ui/Controls/AudioTrackSelector.d.ts.map +1 -0
  195. package/dist/ui/Controls/CaptionsButton.d.ts +2 -0
  196. package/dist/ui/Controls/CaptionsButton.d.ts.map +1 -0
  197. package/dist/ui/Controls/CastButton.d.ts +17 -0
  198. package/dist/ui/Controls/CastButton.d.ts.map +1 -0
  199. package/dist/ui/Controls/ChromecastButton.d.ts +18 -0
  200. package/dist/ui/Controls/ChromecastButton.d.ts.map +1 -0
  201. package/dist/ui/Controls/DownloadButton.d.ts +2 -0
  202. package/dist/ui/Controls/DownloadButton.d.ts.map +1 -0
  203. package/dist/ui/Controls/EpisodeSelector.d.ts +2 -0
  204. package/dist/ui/Controls/EpisodeSelector.d.ts.map +1 -0
  205. package/dist/ui/Controls/FullscreenButton.d.ts +13 -0
  206. package/dist/ui/Controls/FullscreenButton.d.ts.map +1 -0
  207. package/dist/ui/Controls/JumpToLiveButton.d.ts +2 -0
  208. package/dist/ui/Controls/JumpToLiveButton.d.ts.map +1 -0
  209. package/dist/ui/Controls/LiveLatencyDisplay.d.ts +2 -0
  210. package/dist/ui/Controls/LiveLatencyDisplay.d.ts.map +1 -0
  211. package/dist/ui/Controls/MuteButton.d.ts +5 -0
  212. package/dist/ui/Controls/MuteButton.d.ts.map +1 -0
  213. package/dist/ui/Controls/NextEpisodeButton.d.ts +7 -0
  214. package/dist/ui/Controls/NextEpisodeButton.d.ts.map +1 -0
  215. package/dist/ui/Controls/PipButton.d.ts +5 -0
  216. package/dist/ui/Controls/PipButton.d.ts.map +1 -0
  217. package/dist/ui/Controls/PlayButton.d.ts +13 -0
  218. package/dist/ui/Controls/PlayButton.d.ts.map +1 -0
  219. package/dist/ui/Controls/PlaybackSpeedSelector.d.ts +2 -0
  220. package/dist/ui/Controls/PlaybackSpeedSelector.d.ts.map +1 -0
  221. package/dist/ui/Controls/PlaylistButton.d.ts +2 -0
  222. package/dist/ui/Controls/PlaylistButton.d.ts.map +1 -0
  223. package/dist/ui/Controls/QualitySelector.d.ts +2 -0
  224. package/dist/ui/Controls/QualitySelector.d.ts.map +1 -0
  225. package/dist/ui/Controls/SeekBar.d.ts +2 -0
  226. package/dist/ui/Controls/SeekBar.d.ts.map +1 -0
  227. package/dist/ui/Controls/SeekBarProgress.d.ts +2 -0
  228. package/dist/ui/Controls/SeekBarProgress.d.ts.map +1 -0
  229. package/dist/ui/Controls/SettingsButton.d.ts +2 -0
  230. package/dist/ui/Controls/SettingsButton.d.ts.map +1 -0
  231. package/dist/ui/Controls/SettingsPanel.d.ts +49 -0
  232. package/dist/ui/Controls/SettingsPanel.d.ts.map +1 -0
  233. package/dist/ui/Controls/SkipBackwardButton.d.ts +12 -0
  234. package/dist/ui/Controls/SkipBackwardButton.d.ts.map +1 -0
  235. package/dist/ui/Controls/SkipForwardButton.d.ts +12 -0
  236. package/dist/ui/Controls/SkipForwardButton.d.ts.map +1 -0
  237. package/dist/ui/Controls/SkipIntroButton.d.ts +7 -0
  238. package/dist/ui/Controls/SkipIntroButton.d.ts.map +1 -0
  239. package/dist/ui/Controls/SubtitleOverlay.d.ts +6 -0
  240. package/dist/ui/Controls/SubtitleOverlay.d.ts.map +1 -0
  241. package/dist/ui/Controls/SubtitlesMenu.d.ts +2 -0
  242. package/dist/ui/Controls/SubtitlesMenu.d.ts.map +1 -0
  243. package/dist/ui/Controls/TheaterModeButton.d.ts +2 -0
  244. package/dist/ui/Controls/TheaterModeButton.d.ts.map +1 -0
  245. package/dist/ui/Controls/TimeDisplay.d.ts +5 -0
  246. package/dist/ui/Controls/TimeDisplay.d.ts.map +1 -0
  247. package/dist/ui/Controls/VolumeControl.d.ts +33 -0
  248. package/dist/ui/Controls/VolumeControl.d.ts.map +1 -0
  249. package/dist/ui/Controls/VolumeSlider.d.ts +2 -0
  250. package/dist/ui/Controls/VolumeSlider.d.ts.map +1 -0
  251. package/dist/ui/Overlay/ContextMenu.d.ts +35 -0
  252. package/dist/ui/Overlay/ContextMenu.d.ts.map +1 -0
  253. package/dist/ui/Overlay/EndCard.d.ts +11 -0
  254. package/dist/ui/Overlay/EndCard.d.ts.map +1 -0
  255. package/dist/ui/Overlay/ErrorOverlay.d.ts +13 -0
  256. package/dist/ui/Overlay/ErrorOverlay.d.ts.map +1 -0
  257. package/dist/ui/Overlay/GestureHintOverlay.d.ts +13 -0
  258. package/dist/ui/Overlay/GestureHintOverlay.d.ts.map +1 -0
  259. package/dist/ui/Overlay/KeyboardShortcutsOverlay.d.ts +7 -0
  260. package/dist/ui/Overlay/KeyboardShortcutsOverlay.d.ts.map +1 -0
  261. package/dist/ui/Overlay/VideoOverlay.d.ts +9 -0
  262. package/dist/ui/Overlay/VideoOverlay.d.ts.map +1 -0
  263. package/dist/ui/Player.d.ts +19 -0
  264. package/dist/ui/Player.d.ts.map +1 -0
  265. package/dist/vite.svg +1 -0
  266. package/package.json +4 -3
  267. package/dist/ErrorManager-CDe8Eb5Z.cjs +0 -1
  268. package/dist/ErrorManager-xIOtWf0n.js +0 -1
@@ -0,0 +1,92 @@
1
+ export declare class VideoEngine {
2
+ private videoElement;
3
+ private isPlaying;
4
+ private isMuted;
5
+ private volume;
6
+ private playbackRate;
7
+ private currentTime;
8
+ private duration;
9
+ constructor(videoElement: HTMLVideoElement);
10
+ /**
11
+ * Video element'inin native event'lerini dinle
12
+ */
13
+ private setupEventListeners;
14
+ /**
15
+ * Video'yu başlat
16
+ */
17
+ private initializeVideo;
18
+ /**
19
+ * Play event'ini gönder
20
+ */
21
+ private emitPlayEvent;
22
+ /**
23
+ * Pause event'ini gönder
24
+ */
25
+ private emitPauseEvent;
26
+ /**
27
+ * Volume change event'ini gönder
28
+ */
29
+ private emitVolumeChangeEvent;
30
+ /**
31
+ * Mute event'ini gönder
32
+ */
33
+ private emitMuteEvent;
34
+ /**
35
+ * Video'yu oynat
36
+ */
37
+ play(): Promise<void>;
38
+ /**
39
+ * Video'yu duraklat
40
+ */
41
+ pause(): void;
42
+ /**
43
+ * Video'yu sessize al/aç
44
+ */
45
+ toggleMute(): void;
46
+ /**
47
+ * Ses seviyesini ayarla
48
+ */
49
+ setVolume(volume: number): void;
50
+ /**
51
+ * Belirli bir zamana git
52
+ */
53
+ seekTo(time: number): void;
54
+ /**
55
+ * Oynatma hızını ayarla
56
+ */
57
+ setPlaybackRate(rate: number): void;
58
+ /**
59
+ * Video source'unu değiştir
60
+ */
61
+ setSource(src: string): void;
62
+ /**
63
+ * Video poster'ını ayarla
64
+ */
65
+ setPoster(poster: string): void;
66
+ /**
67
+ * Video boyutlarını ayarla
68
+ */
69
+ setDimensions(width: number | string, height: number | string): void;
70
+ /**
71
+ * Mevcut durumu döndür
72
+ */
73
+ getState(): {
74
+ isPlaying: boolean;
75
+ isMuted: boolean;
76
+ volume: number;
77
+ playbackRate: number;
78
+ currentTime: number;
79
+ duration: number;
80
+ src: string;
81
+ poster: string;
82
+ };
83
+ /**
84
+ * Video element'ini döndür
85
+ */
86
+ getVideoElement(): HTMLVideoElement | null;
87
+ /**
88
+ * VideoEngine'ı temizle
89
+ */
90
+ destroy(): void;
91
+ }
92
+ //# sourceMappingURL=VideoEngine.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"VideoEngine.d.ts","sourceRoot":"","sources":["../../src/core/VideoEngine.ts"],"names":[],"mappings":"AAKA,qBAAa,WAAW;IACtB,OAAO,CAAC,YAAY,CAAiC;IACrD,OAAO,CAAC,SAAS,CAAkB;IACnC,OAAO,CAAC,OAAO,CAAkB;IACjC,OAAO,CAAC,MAAM,CAAa;IAC3B,OAAO,CAAC,YAAY,CAAa;IACjC,OAAO,CAAC,WAAW,CAAa;IAChC,OAAO,CAAC,QAAQ,CAAa;gBAEjB,YAAY,EAAE,gBAAgB;IAM1C;;OAEG;IACH,OAAO,CAAC,mBAAmB;IA2D3B;;OAEG;IACH,OAAO,CAAC,eAAe;IASvB;;OAEG;IACH,OAAO,CAAC,aAAa;IAerB;;OAEG;IACH,OAAO,CAAC,cAAc;IAetB;;OAEG;IACH,OAAO,CAAC,qBAAqB;IAa7B;;OAEG;IACH,OAAO,CAAC,aAAa;IAerB;;OAEG;IACG,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAa3B;;OAEG;IACH,KAAK,IAAI,IAAI;IAKb;;OAEG;IACH,UAAU,IAAI,IAAI;IAOlB;;OAEG;IACH,SAAS,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAK/B;;OAEG;IACH,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAK1B;;OAEG;IACH,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAMnC;;OAEG;IACH,SAAS,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI;IAK5B;;OAEG;IACH,SAAS,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAK/B;;OAEG;IACH,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI;IAMpE;;OAEG;IACH,QAAQ;;;;;;;;;;IAaR;;OAEG;IACH,eAAe,IAAI,gBAAgB,GAAG,IAAI;IAI1C;;OAEG;IACH,OAAO,IAAI,IAAI;CAWhB"}
@@ -0,0 +1,73 @@
1
+ /**
2
+ * Stream Type Detector
3
+ * Automatically detects if a stream is VOD or LIVE by analyzing the manifest
4
+ */
5
+ export type StreamType = 'vod' | 'live' | 'unknown';
6
+ export interface StreamInfo {
7
+ type: StreamType;
8
+ protocol: 'hls' | 'dash' | 'progressive' | 'unknown';
9
+ isDynamic: boolean;
10
+ hasDVR: boolean;
11
+ targetDuration?: number;
12
+ mediaSequence?: number;
13
+ /**
14
+ * Pre-check capability.
15
+ * True if basic codecs (avc1/mp4a) are supported, preventing full playback engine load if not.
16
+ */
17
+ isEngineSupported: boolean;
18
+ }
19
+ export declare class StreamDetector {
20
+ /**
21
+ * Main detection method
22
+ * Fetches and analyzes manifest to determine stream type
23
+ */
24
+ detectStream(url: string): Promise<StreamInfo>;
25
+ /**
26
+ * Pre-check basic browser capability using MediaSource.isTypeSupported
27
+ * to quickly determine if we should fall back to an external library.
28
+ */
29
+ private preCheckCapability;
30
+ /**
31
+ * Detect protocol from URL
32
+ */
33
+ private detectProtocol;
34
+ /**
35
+ * Detect HLS stream type
36
+ */
37
+ private detectHLS;
38
+ /**
39
+ * Detect DASH stream type
40
+ */
41
+ private detectDASH;
42
+ /**
43
+ * Progressive download (MP4, WebM, etc.)
44
+ * Always VOD
45
+ */
46
+ private detectProgressive;
47
+ /**
48
+ * Fetch manifest from URL
49
+ */
50
+ private fetchManifest;
51
+ /**
52
+ * Extract #EXT-X-TARGETDURATION
53
+ */
54
+ private extractTargetDuration;
55
+ /**
56
+ * Extract #EXT-X-MEDIA-SEQUENCE
57
+ */
58
+ private extractMediaSequence;
59
+ /**
60
+ * Quick sync detection (without fetching)
61
+ * Useful for initial UI setup
62
+ */
63
+ quickDetect(url: string): {
64
+ type: StreamType;
65
+ protocol: 'hls' | 'dash' | 'progressive' | 'unknown';
66
+ isEngineSupported: boolean;
67
+ };
68
+ }
69
+ /**
70
+ * Singleton instance
71
+ */
72
+ export declare const streamDetector: StreamDetector;
73
+ //# sourceMappingURL=StreamDetector.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"StreamDetector.d.ts","sourceRoot":"","sources":["../../../src/core/adaptive/StreamDetector.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,MAAM,MAAM,UAAU,GAAG,KAAK,GAAG,MAAM,GAAG,SAAS,CAAC;AAEpD,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,UAAU,CAAC;IACjB,QAAQ,EAAE,KAAK,GAAG,MAAM,GAAG,aAAa,GAAG,SAAS,CAAC;IACrD,SAAS,EAAE,OAAO,CAAC;IACnB,MAAM,EAAE,OAAO,CAAC;IAChB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB;;;OAGG;IACH,iBAAiB,EAAE,OAAO,CAAC;CAC5B;AAED,qBAAa,cAAc;IACzB;;;OAGG;IACG,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC;IAyBpD;;;OAGG;IACH,OAAO,CAAC,kBAAkB;IAgC1B;;OAEG;IACH,OAAO,CAAC,cAAc;IActB;;OAEG;YACW,SAAS;IAkDvB;;OAEG;YACW,UAAU;IAqBxB;;;OAGG;IACH,OAAO,CAAC,iBAAiB;IAUzB;;OAEG;YACW,aAAa;IAe3B;;OAEG;IACH,OAAO,CAAC,qBAAqB;IAK7B;;OAEG;IACH,OAAO,CAAC,oBAAoB;IAK5B;;;OAGG;IACH,WAAW,CAAC,GAAG,EAAE,MAAM,GAAG;QAAE,IAAI,EAAE,UAAU,CAAC;QAAC,QAAQ,EAAE,KAAK,GAAG,MAAM,GAAG,aAAa,GAAG,SAAS,CAAC;QAAC,iBAAiB,EAAE,OAAO,CAAA;KAAE;CAWjI;AAED;;GAEG;AACH,eAAO,MAAM,cAAc,gBAAuB,CAAC"}
@@ -0,0 +1,192 @@
1
+ /**
2
+ * ChromecastManager
3
+ *
4
+ * Google Cast SDK v3 (CAF) sender integration — no npm package required.
5
+ * The Cast SDK is loaded dynamically from Google's CDN when `setup()` is called.
6
+ *
7
+ * Responsibilities:
8
+ * - Load Cast SDK script lazily from Google CDN
9
+ * - Initialize Cast context with a receiver app ID
10
+ * - Track device availability and session state
11
+ * - Open device picker via requestSession()
12
+ * - Load / sync media on the Cast receiver
13
+ * - Emit castchange callbacks for PlayerCore → UI
14
+ *
15
+ * Usage:
16
+ * const cast = new ChromecastManager({
17
+ * appId: chrome.cast.media.DEFAULT_MEDIA_RECEIVER_APP_ID,
18
+ * onChange: (state) => player.events.emit('castchange', state),
19
+ * });
20
+ * cast.setup(); // load SDK, initialise
21
+ * cast.requestSession(); // open device picker
22
+ * cast.loadMedia(src, 'video/mp4', 0); // push media to receiver
23
+ * cast.syncTime(currentTime); // keep receiver in sync
24
+ * cast.syncVolume(0.8, false); // volume / mute to receiver
25
+ * cast.destroy(); // cleanup listeners / session
26
+ *
27
+ * Google Cast SDK docs:
28
+ * https://developers.google.com/cast/docs/web_sender/integrate
29
+ */
30
+ declare global {
31
+ interface Window {
32
+ /** Google Cast SDK readiness callback (set BEFORE the script loads). */
33
+ __onGCastApiAvailable?: (isAvailable: boolean, error?: unknown) => void;
34
+ cast?: {
35
+ framework: {
36
+ CastContext: {
37
+ getInstance(): CastContextInstance;
38
+ };
39
+ CastContextEventType: {
40
+ SESSION_STATE_CHANGED: string;
41
+ CAST_STATE_CHANGED: string;
42
+ };
43
+ CastState: {
44
+ NO_DEVICES_AVAILABLE: string;
45
+ NOT_CONNECTED: string;
46
+ CONNECTING: string;
47
+ CONNECTED: string;
48
+ };
49
+ SessionState: {
50
+ SESSION_STARTING: string;
51
+ SESSION_STARTED: string;
52
+ SESSION_START_FAILED: string;
53
+ SESSION_ENDING: string;
54
+ SESSION_ENDED: string;
55
+ SESSION_RESUMED: string;
56
+ };
57
+ };
58
+ };
59
+ chrome?: {
60
+ cast?: {
61
+ media: {
62
+ /** Default Media Receiver App ID ('CC1AD845') */
63
+ DEFAULT_MEDIA_RECEIVER_APP_ID: string;
64
+ MediaInfo: new (contentId: string, contentType: string) => MediaInfoInstance;
65
+ LoadRequest: new (mediaInfo: MediaInfoInstance) => LoadRequestInstance;
66
+ StreamType: {
67
+ BUFFERED: string;
68
+ LIVE: string;
69
+ OTHER: string;
70
+ };
71
+ };
72
+ AutoJoinPolicy: {
73
+ ORIGIN_SCOPED: string;
74
+ TAB_AND_ORIGIN_SCOPED: string;
75
+ PAGE_SCOPED: string;
76
+ };
77
+ };
78
+ };
79
+ }
80
+ interface CastContextInstance {
81
+ setOptions(opts: {
82
+ receiverApplicationId: string;
83
+ autoJoinPolicy?: string;
84
+ }): void;
85
+ requestSession(): Promise<string | void>;
86
+ endCurrentSession(stopCasting: boolean): void;
87
+ getCurrentSession(): CastSessionInstance | null;
88
+ getCastState(): string;
89
+ addEventListener(type: string, handler: (e: CastStateEvent) => void): void;
90
+ removeEventListener(type: string, handler: (e: CastStateEvent) => void): void;
91
+ }
92
+ interface CastStateEvent {
93
+ castState?: string;
94
+ sessionState?: string;
95
+ }
96
+ interface CastSessionInstance {
97
+ getSessionId(): string;
98
+ loadMedia(req: LoadRequestInstance): Promise<void>;
99
+ setVolume(vol: number): Promise<void>;
100
+ setMute(muted: boolean): Promise<void>;
101
+ getMediaSession(): CastMediaSessionInstance | null;
102
+ sendMessage(namespace: string, message: string): Promise<void>;
103
+ }
104
+ interface CastMediaSessionInstance {
105
+ seek(req: {
106
+ currentTime: number;
107
+ type: string;
108
+ }): void;
109
+ sessionId: string;
110
+ }
111
+ interface MediaInfoInstance {
112
+ streamType: string;
113
+ metadata: Record<string, unknown> | null;
114
+ }
115
+ interface LoadRequestInstance {
116
+ currentTime: number;
117
+ autoplay: boolean;
118
+ }
119
+ }
120
+ export interface CastState {
121
+ isAvailable: boolean;
122
+ isActive: boolean;
123
+ /** 'not_connected' | 'connecting' | 'connected' | 'unavailable' */
124
+ state: 'not_connected' | 'connecting' | 'connected' | 'unavailable';
125
+ }
126
+ export interface ChromecastManagerOptions {
127
+ /**
128
+ * Cast receiver application ID.
129
+ * Defaults to `DEFAULT_MEDIA_RECEIVER_APP_ID` ('CC1AD845').
130
+ */
131
+ appId?: string;
132
+ /** Called whenever cast availability or session state changes. */
133
+ onChange: (state: CastState) => void;
134
+ }
135
+ export declare class ChromecastManager {
136
+ private readonly appId;
137
+ private readonly onChange;
138
+ private isAvailable;
139
+ private sessionActive;
140
+ private sdkLoaded;
141
+ /** Bound Cast state-change handler (needed for removeEventListener). */
142
+ private castStateHandler;
143
+ constructor(options: ChromecastManagerOptions);
144
+ /**
145
+ * Load the Google Cast SDK and initialise the Cast context.
146
+ * Safe to call multiple times — idempotent.
147
+ */
148
+ setup(): void;
149
+ /**
150
+ * Open the Cast device picker dialog.
151
+ * Resolves when the user selects a device (or dismisses).
152
+ */
153
+ requestSession(): Promise<void>;
154
+ /**
155
+ * End the current Cast session (stop casting).
156
+ * @param stopCasting Whether to stop playback on the receiver (true) or leave it running.
157
+ */
158
+ endSession(stopCasting?: boolean): void;
159
+ /**
160
+ * Load a media URL on the active Cast receiver.
161
+ * Must be called AFTER a session is established.
162
+ *
163
+ * @param src Fully qualified media URL
164
+ * @param contentType MIME type (e.g. 'application/x-mpegURL', 'video/mp4')
165
+ * @param startTime Playhead position in seconds (default 0)
166
+ * @param isLive Whether the stream is live (affects receiver UI)
167
+ */
168
+ loadMedia(src: string, contentType?: string, startTime?: number, isLive?: boolean): Promise<void>;
169
+ /**
170
+ * Seek the Cast receiver to the given time.
171
+ * No-op when cast is not active.
172
+ */
173
+ syncTime(time: number): void;
174
+ /**
175
+ * Sync volume / mute state to the Cast receiver.
176
+ * No-op when cast is not active.
177
+ */
178
+ syncVolume(volume: number, muted: boolean): Promise<void>;
179
+ /** Returns true if at least one Cast device is available. */
180
+ isCastAvailable(): boolean;
181
+ /** Returns true if a Cast session is currently active. */
182
+ isCastActive(): boolean;
183
+ /** Current cast state snapshot. */
184
+ getState(): CastState;
185
+ /** Remove all event listeners. Does NOT end the cast session. */
186
+ destroy(): void;
187
+ private getContext;
188
+ private initContext;
189
+ private syncState;
190
+ private emitState;
191
+ }
192
+ //# sourceMappingURL=ChromecastManager.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ChromecastManager.d.ts","sourceRoot":"","sources":["../../../src/core/cast/ChromecastManager.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,13 @@
1
+ /**
2
+ * DrmCapabilityProbe — browser EME (Encrypted Media Extensions) capability detection.
3
+ * Uses requestMediaKeySystemAccess to check which DRM systems the current browser supports.
4
+ */
5
+ export interface DrmCapabilities {
6
+ widevine: boolean;
7
+ fairplay: boolean;
8
+ playready: boolean;
9
+ clearkey: boolean;
10
+ preferredSystem: 'widevine' | 'fairplay' | 'playready' | 'clearkey' | null;
11
+ }
12
+ export declare function probeDrmCapabilities(): Promise<DrmCapabilities>;
13
+ //# sourceMappingURL=DrmCapabilityProbe.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DrmCapabilityProbe.d.ts","sourceRoot":"","sources":["../../../src/core/drm/DrmCapabilityProbe.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,MAAM,WAAW,eAAe;IAC9B,QAAQ,EAAE,OAAO,CAAC;IAClB,QAAQ,EAAE,OAAO,CAAC;IAClB,SAAS,EAAE,OAAO,CAAC;IACnB,QAAQ,EAAE,OAAO,CAAC;IAClB,eAAe,EAAE,UAAU,GAAG,UAAU,GAAG,WAAW,GAAG,UAAU,GAAG,IAAI,CAAC;CAC5E;AA2BD,wBAAsB,oBAAoB,IAAI,OAAO,CAAC,eAAe,CAAC,CA0BrE"}
@@ -0,0 +1,29 @@
1
+ import { PlayerConfig } from '../../types/config.types';
2
+ import { PlayronEventEmitter } from '../PlayronEventEmitter';
3
+ export type SelectedKeySystem = 'widevine' | 'fairplay' | 'playready' | null;
4
+ export declare class DrmManager {
5
+ private adapter;
6
+ private selectedKeySystem;
7
+ private readonly emitter;
8
+ private destroyed;
9
+ constructor(emitter: PlayronEventEmitter);
10
+ /**
11
+ * Initialize DRM for the given video element and config.
12
+ *
13
+ * Steps:
14
+ * 1. Probe browser capabilities
15
+ * 2. Select key system (preferred or auto-detect)
16
+ * 3. Create adapter
17
+ * 4. Initialize adapter (probe support, attach to element)
18
+ * 5. Emit drm:keysystem + drm:ready events
19
+ *
20
+ * @returns The selected key system identifier, or null if DRM is disabled/unsupported.
21
+ */
22
+ initialize(videoElement: HTMLVideoElement, drmConfig: PlayerConfig['drm']): Promise<SelectedKeySystem>;
23
+ /** Returns the selected key system, or null if not initialized. */
24
+ getSelectedKeySystem(): SelectedKeySystem;
25
+ /** Destroy the adapter and release all resources. */
26
+ destroy(): void;
27
+ private createAdapter;
28
+ }
29
+ //# sourceMappingURL=DrmManager.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DrmManager.d.ts","sourceRoot":"","sources":["../../../src/core/drm/DrmManager.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAQH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAC7D,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAElE,MAAM,MAAM,iBAAiB,GAAG,UAAU,GAAG,UAAU,GAAG,WAAW,GAAG,IAAI,CAAC;AAS7E,qBAAa,UAAU;IACrB,OAAO,CAAC,OAAO,CAA+B;IAC9C,OAAO,CAAC,iBAAiB,CAA2B;IACpD,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAsB;IAC9C,OAAO,CAAC,SAAS,CAAS;gBAEd,OAAO,EAAE,mBAAmB;IAMxC;;;;;;;;;;;OAWG;IACG,UAAU,CACd,YAAY,EAAE,gBAAgB,EAC9B,SAAS,EAAE,YAAY,CAAC,KAAK,CAAC,GAC7B,OAAO,CAAC,iBAAiB,CAAC;IAmE7B,mEAAmE;IACnE,oBAAoB,IAAI,iBAAiB;IAIzC,qDAAqD;IACrD,OAAO,IAAI,IAAI;IAgBf,OAAO,CAAC,aAAa;CA4CtB"}
@@ -0,0 +1,28 @@
1
+ import { LicenseAcquisitionConfig } from '../../types/drm.types';
2
+ /**
3
+ * Fetch the FairPlay Streaming server certificate (DER/ASN.1 binary).
4
+ * Result is cached in memory — certificate is only fetched once per session.
5
+ *
6
+ * @param certificateUrl URL of the FPS certificate (.cer / .der)
7
+ * @param headers Optional HTTP headers (e.g. Authorization)
8
+ */
9
+ export declare function fetchCertificate(certificateUrl: string, headers?: Record<string, string>): Promise<ArrayBuffer>;
10
+ /**
11
+ * Invalidate the in-memory certificate cache.
12
+ * Call on player destroy or certificate rotation.
13
+ */
14
+ export declare function clearCertificateCache(): void;
15
+ /**
16
+ * Acquire a DRM license from the license server.
17
+ * Sends `challenge` as the POST body and returns the license bytes.
18
+ *
19
+ * Applies `prepareLicenseRequest` and `parseLicenseResponse` hooks if provided.
20
+ *
21
+ * @param licenseUrl License server URL
22
+ * @param challenge License challenge (SPC for FairPlay, PSSH for Widevine)
23
+ * @param headers Extra HTTP request headers
24
+ * @param withCredentials Include cookies / credentials in the request
25
+ * @param acqConfig Timeout, retry, and hook configuration
26
+ */
27
+ export declare function acquireLicense(licenseUrl: string, challenge: ArrayBuffer, headers?: Record<string, string>, withCredentials?: boolean, acqConfig?: LicenseAcquisitionConfig): Promise<ArrayBuffer>;
28
+ //# sourceMappingURL=LicenseManager.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"LicenseManager.d.ts","sourceRoot":"","sources":["../../../src/core/drm/LicenseManager.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,uBAAuB,CAAC;AAwDtE;;;;;;GAMG;AACH,wBAAsB,gBAAgB,CACpC,cAAc,EAAE,MAAM,EACtB,OAAO,GAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAM,GACnC,OAAO,CAAC,WAAW,CAAC,CAmBtB;AAED;;;GAGG;AACH,wBAAgB,qBAAqB,IAAI,IAAI,CAE5C;AAED;;;;;;;;;;;GAWG;AACH,wBAAsB,cAAc,CAClC,UAAU,EAAE,MAAM,EAClB,SAAS,EAAE,WAAW,EACtB,OAAO,GAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAM,EACpC,eAAe,UAAQ,EACvB,SAAS,GAAE,wBAA6B,GACvC,OAAO,CAAC,WAAW,CAAC,CAqCtB"}
@@ -0,0 +1,33 @@
1
+ import { LicenseAcquisitionConfig } from '../../../types/drm.types';
2
+ export interface DrmAdapterConfig {
3
+ /** License server URL */
4
+ licenseUrl: string;
5
+ /** FairPlay only: URL of the FPS server certificate (.cer / .der) */
6
+ certificateUrl?: string;
7
+ /** Extra HTTP headers sent with every license request */
8
+ headers?: Record<string, string>;
9
+ /** Include cookies in license requests */
10
+ withCredentials?: boolean;
11
+ /** Fine-grained license request configuration */
12
+ licenseAcquisitionConfig?: LicenseAcquisitionConfig;
13
+ /** Called on DRM errors */
14
+ onError?: (code: string, message: string, fatal?: boolean) => void;
15
+ /** Called when the key system is ready and keys are loaded */
16
+ onReady?: () => void;
17
+ }
18
+ export interface BaseDrmAdapter {
19
+ /** EME key system identifier (e.g. 'com.apple.fps') */
20
+ readonly keySystem: string;
21
+ /**
22
+ * Initialize the DRM adapter.
23
+ * - Probe key system support via requestMediaKeySystemAccess
24
+ * - Fetch certificate if needed
25
+ * - Attach to the video element and set up session handling
26
+ *
27
+ * @throws If the key system is not supported or initialization fails
28
+ */
29
+ initialize(videoElement: HTMLVideoElement): Promise<void>;
30
+ /** Clean up all listeners, sessions, and MediaKeys. */
31
+ destroy(): void;
32
+ }
33
+ //# sourceMappingURL=BaseDrmAdapter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BaseDrmAdapter.d.ts","sourceRoot":"","sources":["../../../../src/core/drm/adapters/BaseDrmAdapter.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,0BAA0B,CAAC;AAEzE,MAAM,WAAW,gBAAgB;IAC/B,yBAAyB;IACzB,UAAU,EAAE,MAAM,CAAC;IACnB,qEAAqE;IACrE,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,yDAAyD;IACzD,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACjC,0CAA0C;IAC1C,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,iDAAiD;IACjD,wBAAwB,CAAC,EAAE,wBAAwB,CAAC;IACpD,2BAA2B;IAC3B,OAAO,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,OAAO,KAAK,IAAI,CAAC;IACnE,8DAA8D;IAC9D,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;CACtB;AAED,MAAM,WAAW,cAAc;IAC7B,uDAAuD;IACvD,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAE3B;;;;;;;OAOG;IACH,UAAU,CAAC,YAAY,EAAE,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAE1D,uDAAuD;IACvD,OAAO,IAAI,IAAI,CAAC;CACjB"}
@@ -0,0 +1,23 @@
1
+ import { BaseDrmAdapter, DrmAdapterConfig } from './BaseDrmAdapter';
2
+ import { LicenseAcquisitionConfig } from '../../../types/drm.types';
3
+ export interface FairPlayAdapterConfig extends DrmAdapterConfig {
4
+ /** Required for FairPlay: URL of the FPS server certificate */
5
+ certificateUrl: string;
6
+ licenseAcquisitionConfig?: LicenseAcquisitionConfig;
7
+ }
8
+ export declare class FairPlayAdapter implements BaseDrmAdapter {
9
+ readonly keySystem = "com.apple.fps";
10
+ private readonly config;
11
+ private mediaKeys;
12
+ private videoElement;
13
+ private readonly sessions;
14
+ private destroyed;
15
+ private readonly boundOnEncrypted;
16
+ constructor(config: FairPlayAdapterConfig);
17
+ initialize(videoElement: HTMLVideoElement): Promise<void>;
18
+ private handleEncrypted;
19
+ private handleKeyMessage;
20
+ private handleKeyStatusChange;
21
+ destroy(): void;
22
+ }
23
+ //# sourceMappingURL=FairPlayAdapter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FairPlayAdapter.d.ts","sourceRoot":"","sources":["../../../../src/core/drm/adapters/FairPlayAdapter.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AACzE,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,0BAA0B,CAAC;AAqBzE,MAAM,WAAW,qBAAsB,SAAQ,gBAAgB;IAC7D,+DAA+D;IAC/D,cAAc,EAAE,MAAM,CAAC;IACvB,wBAAwB,CAAC,EAAE,wBAAwB,CAAC;CACrD;AAED,qBAAa,eAAgB,YAAW,cAAc;IACpD,QAAQ,CAAC,SAAS,mBAAuB;IAEzC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAwB;IAC/C,OAAO,CAAC,SAAS,CAA0B;IAC3C,OAAO,CAAC,YAAY,CAAiC;IACrD,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAA8B;IACvD,OAAO,CAAC,SAAS,CAAS;IAG1B,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAmC;gBAExD,MAAM,EAAE,qBAAqB;IAOnC,UAAU,CAAC,YAAY,EAAE,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC;YAyDjD,eAAe;YAkCf,gBAAgB;IA+B9B,OAAO,CAAC,qBAAqB;IAmC7B,OAAO,IAAI,IAAI;CAwBhB"}
@@ -0,0 +1,20 @@
1
+ import { BaseDrmAdapter, DrmAdapterConfig } from './BaseDrmAdapter';
2
+ import { LicenseAcquisitionConfig } from '../../../types/drm.types';
3
+ export interface PlayReadyAdapterConfig extends DrmAdapterConfig {
4
+ licenseAcquisitionConfig?: LicenseAcquisitionConfig;
5
+ /** Prefer hardware PlayReady (com.microsoft.playready.hardware) when available. Default: false */
6
+ preferHardware?: boolean;
7
+ }
8
+ export declare class PlayReadyAdapter implements BaseDrmAdapter {
9
+ readonly keySystem: string;
10
+ private readonly config;
11
+ private destroyed;
12
+ constructor(config: PlayReadyAdapterConfig);
13
+ /**
14
+ * Probe PlayReady support and signal readiness.
15
+ * The actual EME session management is handled by dashjs.
16
+ */
17
+ initialize(_videoElement: HTMLVideoElement): Promise<void>;
18
+ destroy(): void;
19
+ }
20
+ //# sourceMappingURL=PlayReadyAdapter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PlayReadyAdapter.d.ts","sourceRoot":"","sources":["../../../../src/core/drm/adapters/PlayReadyAdapter.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AACzE,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,0BAA0B,CAAC;AAkBzE,MAAM,WAAW,sBAAuB,SAAQ,gBAAgB;IAC9D,wBAAwB,CAAC,EAAE,wBAAwB,CAAC;IACpD,kGAAkG;IAClG,cAAc,CAAC,EAAE,OAAO,CAAC;CAC1B;AAED,qBAAa,gBAAiB,YAAW,cAAc;IACrD,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAE3B,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAyB;IAChD,OAAO,CAAC,SAAS,CAAS;gBAEd,MAAM,EAAE,sBAAsB;IAM1C;;;OAGG;IACG,UAAU,CAAC,aAAa,EAAE,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC;IA+BhE,OAAO,IAAI,IAAI;CAIhB"}
@@ -0,0 +1,18 @@
1
+ import { BaseDrmAdapter, DrmAdapterConfig } from './BaseDrmAdapter';
2
+ import { LicenseAcquisitionConfig } from '../../../types/drm.types';
3
+ export interface WidevineAdapterConfig extends DrmAdapterConfig {
4
+ licenseAcquisitionConfig?: LicenseAcquisitionConfig;
5
+ }
6
+ export declare class WidevineAdapter implements BaseDrmAdapter {
7
+ readonly keySystem = "com.widevine.alpha";
8
+ private readonly config;
9
+ private destroyed;
10
+ constructor(config: WidevineAdapterConfig);
11
+ /**
12
+ * Probe Widevine support and signal readiness.
13
+ * The actual EME session management is handled by hls.js / dashjs.
14
+ */
15
+ initialize(_videoElement: HTMLVideoElement): Promise<void>;
16
+ destroy(): void;
17
+ }
18
+ //# sourceMappingURL=WidevineAdapter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"WidevineAdapter.d.ts","sourceRoot":"","sources":["../../../../src/core/drm/adapters/WidevineAdapter.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AACzE,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,0BAA0B,CAAC;AAkBzE,MAAM,WAAW,qBAAsB,SAAQ,gBAAgB;IAC7D,wBAAwB,CAAC,EAAE,wBAAwB,CAAC;CACrD;AAED,qBAAa,eAAgB,YAAW,cAAc;IACpD,QAAQ,CAAC,SAAS,wBAAuB;IAEzC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAwB;IAC/C,OAAO,CAAC,SAAS,CAAS;gBAEd,MAAM,EAAE,qBAAqB;IAIzC;;;OAGG;IACG,UAAU,CAAC,aAAa,EAAE,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC;IAgBhE,OAAO,IAAI,IAAI;CAIhB"}
@@ -0,0 +1,6 @@
1
+ export {};
2
+ /**
3
+ * Network Module Exports
4
+ * Network operations are now handled internally by hls.js and dash.js.
5
+ */
6
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/core/network/index.ts"],"names":[],"mappings":";AAAA;;;GAGG"}