playron 1.0.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 (249) hide show
  1. package/README.md +287 -0
  2. package/dist/Docs.d.ts +2 -0
  3. package/dist/Docs.d.ts.map +1 -0
  4. package/dist/ErrorManager-CDf_sFKX.cjs +1 -0
  5. package/dist/ErrorManager-i9WcRsWb.js +43 -0
  6. package/dist/Why.d.ts +2 -0
  7. package/dist/Why.d.ts.map +1 -0
  8. package/dist/components/PlayerConfig.d.ts +34 -0
  9. package/dist/components/PlayerConfig.d.ts.map +1 -0
  10. package/dist/components/PlayronControls.d.ts +26 -0
  11. package/dist/components/PlayronControls.d.ts.map +1 -0
  12. package/dist/components/PlayronPlayer.d.ts +37 -0
  13. package/dist/components/PlayronPlayer.d.ts.map +1 -0
  14. package/dist/components/SiteHeader.d.ts +6 -0
  15. package/dist/components/SiteHeader.d.ts.map +1 -0
  16. package/dist/constants/sample-intro-outro.d.ts +3 -0
  17. package/dist/constants/sample-intro-outro.d.ts.map +1 -0
  18. package/dist/constants/source.d.ts +2 -0
  19. package/dist/constants/source.d.ts.map +1 -0
  20. package/dist/constants/sports-events.d.ts +58 -0
  21. package/dist/constants/sports-events.d.ts.map +1 -0
  22. package/dist/context/PlayerContext.d.ts +3 -0
  23. package/dist/context/PlayerContext.d.ts.map +1 -0
  24. package/dist/context/PlayerMethodsContext.d.ts +63 -0
  25. package/dist/context/PlayerMethodsContext.d.ts.map +1 -0
  26. package/dist/context/PlayerProvider.d.ts +9 -0
  27. package/dist/context/PlayerProvider.d.ts.map +1 -0
  28. package/dist/context/PlayerStateContext.d.ts +4 -0
  29. package/dist/context/PlayerStateContext.d.ts.map +1 -0
  30. package/dist/context/PlayronContext.d.ts +100 -0
  31. package/dist/context/PlayronContext.d.ts.map +1 -0
  32. package/dist/context/SubtitleStyleContext.d.ts +22 -0
  33. package/dist/context/SubtitleStyleContext.d.ts.map +1 -0
  34. package/dist/core/ConfigManager.d.ts +78 -0
  35. package/dist/core/ConfigManager.d.ts.map +1 -0
  36. package/dist/core/ErrorManager.d.ts +22 -0
  37. package/dist/core/ErrorManager.d.ts.map +1 -0
  38. package/dist/core/EventBus.d.ts +32 -0
  39. package/dist/core/EventBus.d.ts.map +1 -0
  40. package/dist/core/PlayerCore.d.ts +170 -0
  41. package/dist/core/PlayerCore.d.ts.map +1 -0
  42. package/dist/core/PlayronEventEmitter.d.ts +162 -0
  43. package/dist/core/PlayronEventEmitter.d.ts.map +1 -0
  44. package/dist/core/PluginSystem.d.ts +111 -0
  45. package/dist/core/PluginSystem.d.ts.map +1 -0
  46. package/dist/core/StallDetector.d.ts +27 -0
  47. package/dist/core/StallDetector.d.ts.map +1 -0
  48. package/dist/core/StateManager.d.ts +90 -0
  49. package/dist/core/StateManager.d.ts.map +1 -0
  50. package/dist/core/VideoEngine.d.ts +92 -0
  51. package/dist/core/VideoEngine.d.ts.map +1 -0
  52. package/dist/core/adaptive/StreamDetector.d.ts +73 -0
  53. package/dist/core/adaptive/StreamDetector.d.ts.map +1 -0
  54. package/dist/core/drm/DrmCapabilityProbe.d.ts +13 -0
  55. package/dist/core/drm/DrmCapabilityProbe.d.ts.map +1 -0
  56. package/dist/core/network/index.d.ts +6 -0
  57. package/dist/core/network/index.d.ts.map +1 -0
  58. package/dist/core/streaming/DashEngine.d.ts +149 -0
  59. package/dist/core/streaming/DashEngine.d.ts.map +1 -0
  60. package/dist/core/streaming/HlsEngine.d.ts +168 -0
  61. package/dist/core/streaming/HlsEngine.d.ts.map +1 -0
  62. package/dist/core/streaming/SubtitleManager.d.ts +88 -0
  63. package/dist/core/streaming/SubtitleManager.d.ts.map +1 -0
  64. package/dist/core/streaming/ThumbnailManager.d.ts +44 -0
  65. package/dist/core/streaming/ThumbnailManager.d.ts.map +1 -0
  66. package/dist/core/streaming/index.d.ts +11 -0
  67. package/dist/core/streaming/index.d.ts.map +1 -0
  68. package/dist/core/streaming/parsers/WebVttParser.d.ts +56 -0
  69. package/dist/core/streaming/parsers/WebVttParser.d.ts.map +1 -0
  70. package/dist/hooks/useClickOutside.d.ts +4 -0
  71. package/dist/hooks/useClickOutside.d.ts.map +1 -0
  72. package/dist/hooks/useKeyboardControls.d.ts +20 -0
  73. package/dist/hooks/useKeyboardControls.d.ts.map +1 -0
  74. package/dist/hooks/useMobileGestures.d.ts +17 -0
  75. package/dist/hooks/useMobileGestures.d.ts.map +1 -0
  76. package/dist/hooks/useMouseActivity.d.ts +10 -0
  77. package/dist/hooks/useMouseActivity.d.ts.map +1 -0
  78. package/dist/hooks/usePlayer.d.ts +6 -0
  79. package/dist/hooks/usePlayer.d.ts.map +1 -0
  80. package/dist/hooks/usePlayerMethods.d.ts +6 -0
  81. package/dist/hooks/usePlayerMethods.d.ts.map +1 -0
  82. package/dist/hooks/usePlayerState.d.ts +11 -0
  83. package/dist/hooks/usePlayerState.d.ts.map +1 -0
  84. package/dist/index.d.ts +99 -0
  85. package/dist/index.d.ts.map +1 -0
  86. package/dist/layout/ControlsContainer.d.ts +9 -0
  87. package/dist/layout/ControlsContainer.d.ts.map +1 -0
  88. package/dist/layout/ControlsContainer.responsive.d.ts +8 -0
  89. package/dist/layout/ControlsContainer.responsive.d.ts.map +1 -0
  90. package/dist/layout/SeekBarContainer.d.ts +16 -0
  91. package/dist/layout/SeekBarContainer.d.ts.map +1 -0
  92. package/dist/playron.cjs.js +248 -0
  93. package/dist/playron.css +1 -0
  94. package/dist/playron.es.js +47631 -0
  95. package/dist/plugins/AdPlugin.d.ts +8 -0
  96. package/dist/plugins/AdPlugin.d.ts.map +1 -0
  97. package/dist/plugins/AnalyticsPlugin.d.ts +50 -0
  98. package/dist/plugins/AnalyticsPlugin.d.ts.map +1 -0
  99. package/dist/plugins/PluginManager.d.ts +2 -0
  100. package/dist/plugins/PluginManager.d.ts.map +1 -0
  101. package/dist/plugins/SocialPlugin.d.ts +2 -0
  102. package/dist/plugins/SocialPlugin.d.ts.map +1 -0
  103. package/dist/plugins/ads/AdManager.d.ts +79 -0
  104. package/dist/plugins/ads/AdManager.d.ts.map +1 -0
  105. package/dist/plugins/ads/AdPlayer.d.ts +33 -0
  106. package/dist/plugins/ads/AdPlayer.d.ts.map +1 -0
  107. package/dist/plugins/ads/AdTracker.d.ts +34 -0
  108. package/dist/plugins/ads/AdTracker.d.ts.map +1 -0
  109. package/dist/plugins/ads/VASTParser.d.ts +52 -0
  110. package/dist/plugins/ads/VASTParser.d.ts.map +1 -0
  111. package/dist/plugins/ads/VMAPParser.d.ts +31 -0
  112. package/dist/plugins/ads/VMAPParser.d.ts.map +1 -0
  113. package/dist/plugins/ads/types.d.ts +108 -0
  114. package/dist/plugins/ads/types.d.ts.map +1 -0
  115. package/dist/poster.png +0 -0
  116. package/dist/test-ad.xml +37 -0
  117. package/dist/test-vmap.xml +30 -0
  118. package/dist/types/analytics.d.ts +86 -0
  119. package/dist/types/analytics.d.ts.map +1 -0
  120. package/dist/types/chapters.types.d.ts +17 -0
  121. package/dist/types/chapters.types.d.ts.map +1 -0
  122. package/dist/types/config.d.ts +23 -0
  123. package/dist/types/config.d.ts.map +1 -0
  124. package/dist/types/config.types.d.ts +244 -0
  125. package/dist/types/config.types.d.ts.map +1 -0
  126. package/dist/types/controlbar.types.d.ts +5 -0
  127. package/dist/types/controlbar.types.d.ts.map +1 -0
  128. package/dist/types/drm.types.d.ts +163 -0
  129. package/dist/types/drm.types.d.ts.map +1 -0
  130. package/dist/types/events.d.ts +36 -0
  131. package/dist/types/events.d.ts.map +1 -0
  132. package/dist/types/extended.types.d.ts +85 -0
  133. package/dist/types/extended.types.d.ts.map +1 -0
  134. package/dist/types/manifest.types.d.ts +297 -0
  135. package/dist/types/manifest.types.d.ts.map +1 -0
  136. package/dist/types/playbutton.types.d.ts +2 -0
  137. package/dist/types/playbutton.types.d.ts.map +1 -0
  138. package/dist/types/player.types.d.ts +13 -0
  139. package/dist/types/player.types.d.ts.map +1 -0
  140. package/dist/types/seekbar.types.d.ts +5 -0
  141. package/dist/types/seekbar.types.d.ts.map +1 -0
  142. package/dist/types/streaming.types.d.ts +168 -0
  143. package/dist/types/streaming.types.d.ts.map +1 -0
  144. package/dist/types/timeline.types.d.ts +46 -0
  145. package/dist/types/timeline.types.d.ts.map +1 -0
  146. package/dist/types/video-events.d.ts +51 -0
  147. package/dist/types/video-events.d.ts.map +1 -0
  148. package/dist/ui/Common/BufferingIndicator.d.ts +2 -0
  149. package/dist/ui/Common/BufferingIndicator.d.ts.map +1 -0
  150. package/dist/ui/Common/ControlBar.d.ts +3 -0
  151. package/dist/ui/Common/ControlBar.d.ts.map +1 -0
  152. package/dist/ui/Common/ControlBar.responsive.d.ts +3 -0
  153. package/dist/ui/Common/ControlBar.responsive.d.ts.map +1 -0
  154. package/dist/ui/Common/Dropdown/Dropdown.d.ts +14 -0
  155. package/dist/ui/Common/Dropdown/Dropdown.d.ts.map +1 -0
  156. package/dist/ui/Common/Dropdown/DropdownItem.d.ts +11 -0
  157. package/dist/ui/Common/Dropdown/DropdownItem.d.ts.map +1 -0
  158. package/dist/ui/Common/Dropdown/DropdownPanel.d.ts +9 -0
  159. package/dist/ui/Common/Dropdown/DropdownPanel.d.ts.map +1 -0
  160. package/dist/ui/Common/Dropdown/DropdownTrigger.d.ts +7 -0
  161. package/dist/ui/Common/Dropdown/DropdownTrigger.d.ts.map +1 -0
  162. package/dist/ui/Common/LoadingSpinner.d.ts +6 -0
  163. package/dist/ui/Common/LoadingSpinner.d.ts.map +1 -0
  164. package/dist/ui/Common/Overlay.d.ts +11 -0
  165. package/dist/ui/Common/Overlay.d.ts.map +1 -0
  166. package/dist/ui/Common/SeekBar.d.ts +15 -0
  167. package/dist/ui/Common/SeekBar.d.ts.map +1 -0
  168. package/dist/ui/Common/SeekBar.responsive.d.ts +10 -0
  169. package/dist/ui/Common/SeekBar.responsive.d.ts.map +1 -0
  170. package/dist/ui/Common/TimeDisplay.d.ts +2 -0
  171. package/dist/ui/Common/TimeDisplay.d.ts.map +1 -0
  172. package/dist/ui/Common/TimelineMarker.d.ts +11 -0
  173. package/dist/ui/Common/TimelineMarker.d.ts.map +1 -0
  174. package/dist/ui/Common/Tooltip.d.ts +2 -0
  175. package/dist/ui/Common/Tooltip.d.ts.map +1 -0
  176. package/dist/ui/Common/VolumePanel.d.ts +2 -0
  177. package/dist/ui/Common/VolumePanel.d.ts.map +1 -0
  178. package/dist/ui/Controls/AudioTrackSelector.d.ts +2 -0
  179. package/dist/ui/Controls/AudioTrackSelector.d.ts.map +1 -0
  180. package/dist/ui/Controls/CaptionsButton.d.ts +2 -0
  181. package/dist/ui/Controls/CaptionsButton.d.ts.map +1 -0
  182. package/dist/ui/Controls/CastButton.d.ts +17 -0
  183. package/dist/ui/Controls/CastButton.d.ts.map +1 -0
  184. package/dist/ui/Controls/DownloadButton.d.ts +2 -0
  185. package/dist/ui/Controls/DownloadButton.d.ts.map +1 -0
  186. package/dist/ui/Controls/EpisodeSelector.d.ts +2 -0
  187. package/dist/ui/Controls/EpisodeSelector.d.ts.map +1 -0
  188. package/dist/ui/Controls/FullscreenButton.d.ts +5 -0
  189. package/dist/ui/Controls/FullscreenButton.d.ts.map +1 -0
  190. package/dist/ui/Controls/JumpToLiveButton.d.ts +2 -0
  191. package/dist/ui/Controls/JumpToLiveButton.d.ts.map +1 -0
  192. package/dist/ui/Controls/LiveLatencyDisplay.d.ts +2 -0
  193. package/dist/ui/Controls/LiveLatencyDisplay.d.ts.map +1 -0
  194. package/dist/ui/Controls/MuteButton.d.ts +5 -0
  195. package/dist/ui/Controls/MuteButton.d.ts.map +1 -0
  196. package/dist/ui/Controls/NextEpisodeButton.d.ts +7 -0
  197. package/dist/ui/Controls/NextEpisodeButton.d.ts.map +1 -0
  198. package/dist/ui/Controls/PipButton.d.ts +5 -0
  199. package/dist/ui/Controls/PipButton.d.ts.map +1 -0
  200. package/dist/ui/Controls/PlayButton.d.ts +5 -0
  201. package/dist/ui/Controls/PlayButton.d.ts.map +1 -0
  202. package/dist/ui/Controls/PlaybackSpeedSelector.d.ts +2 -0
  203. package/dist/ui/Controls/PlaybackSpeedSelector.d.ts.map +1 -0
  204. package/dist/ui/Controls/PlaylistButton.d.ts +2 -0
  205. package/dist/ui/Controls/PlaylistButton.d.ts.map +1 -0
  206. package/dist/ui/Controls/QualitySelector.d.ts +2 -0
  207. package/dist/ui/Controls/QualitySelector.d.ts.map +1 -0
  208. package/dist/ui/Controls/SeekBar.d.ts +2 -0
  209. package/dist/ui/Controls/SeekBar.d.ts.map +1 -0
  210. package/dist/ui/Controls/SeekBarProgress.d.ts +2 -0
  211. package/dist/ui/Controls/SeekBarProgress.d.ts.map +1 -0
  212. package/dist/ui/Controls/SettingsButton.d.ts +2 -0
  213. package/dist/ui/Controls/SettingsButton.d.ts.map +1 -0
  214. package/dist/ui/Controls/SettingsPanel.d.ts +17 -0
  215. package/dist/ui/Controls/SettingsPanel.d.ts.map +1 -0
  216. package/dist/ui/Controls/SkipBackwardButton.d.ts +6 -0
  217. package/dist/ui/Controls/SkipBackwardButton.d.ts.map +1 -0
  218. package/dist/ui/Controls/SkipForwardButton.d.ts +6 -0
  219. package/dist/ui/Controls/SkipForwardButton.d.ts.map +1 -0
  220. package/dist/ui/Controls/SkipIntroButton.d.ts +7 -0
  221. package/dist/ui/Controls/SkipIntroButton.d.ts.map +1 -0
  222. package/dist/ui/Controls/SubtitleOverlay.d.ts +6 -0
  223. package/dist/ui/Controls/SubtitleOverlay.d.ts.map +1 -0
  224. package/dist/ui/Controls/SubtitlesMenu.d.ts +2 -0
  225. package/dist/ui/Controls/SubtitlesMenu.d.ts.map +1 -0
  226. package/dist/ui/Controls/TheaterModeButton.d.ts +2 -0
  227. package/dist/ui/Controls/TheaterModeButton.d.ts.map +1 -0
  228. package/dist/ui/Controls/TimeDisplay.d.ts +5 -0
  229. package/dist/ui/Controls/TimeDisplay.d.ts.map +1 -0
  230. package/dist/ui/Controls/VolumeControl.d.ts +2 -0
  231. package/dist/ui/Controls/VolumeControl.d.ts.map +1 -0
  232. package/dist/ui/Controls/VolumeSlider.d.ts +2 -0
  233. package/dist/ui/Controls/VolumeSlider.d.ts.map +1 -0
  234. package/dist/ui/Overlay/ContextMenu.d.ts +17 -0
  235. package/dist/ui/Overlay/ContextMenu.d.ts.map +1 -0
  236. package/dist/ui/Overlay/EndCard.d.ts +11 -0
  237. package/dist/ui/Overlay/EndCard.d.ts.map +1 -0
  238. package/dist/ui/Overlay/ErrorOverlay.d.ts +13 -0
  239. package/dist/ui/Overlay/ErrorOverlay.d.ts.map +1 -0
  240. package/dist/ui/Overlay/GestureHintOverlay.d.ts +14 -0
  241. package/dist/ui/Overlay/GestureHintOverlay.d.ts.map +1 -0
  242. package/dist/ui/Overlay/KeyboardShortcutsOverlay.d.ts +7 -0
  243. package/dist/ui/Overlay/KeyboardShortcutsOverlay.d.ts.map +1 -0
  244. package/dist/ui/Overlay/VideoOverlay.d.ts +9 -0
  245. package/dist/ui/Overlay/VideoOverlay.d.ts.map +1 -0
  246. package/dist/ui/Player.d.ts +19 -0
  247. package/dist/ui/Player.d.ts.map +1 -0
  248. package/dist/vite.svg +1 -0
  249. package/package.json +71 -0
package/README.md ADDED
@@ -0,0 +1,287 @@
1
+ # Playron
2
+
3
+ Modern, özelleştirilebilir OTT video player. React, Next.js ve vanilla JavaScript projelerde kullanılabilir.
4
+
5
+ ## Özellikler
6
+
7
+ - 🎬 **Adaptive Streaming**: HLS ve DASH desteği
8
+ - 🔒 **DRM**: Widevine, PlayReady, FairPlay desteği
9
+ - 📱 **Responsive**: Mobil ve desktop uyumlu
10
+ - 🎨 **Özelleştirilebilir**: Tüm UI bileşenleri özelleştirilebilir
11
+ - 📊 **Analytics**: Entegre analytics desteği
12
+ - 📺 **Ads**: VAST/VMAP reklam desteği
13
+ - ⚡ **Performanslı**: React Compiler ile optimize edilmiş
14
+ - 🎯 **TypeScript**: Full type safety
15
+
16
+ ## Kurulum
17
+
18
+ ### Development için (npm link)
19
+
20
+ Bu projeyi geliştirme aşamasında başka projelerde kullanmak için:
21
+
22
+ ```bash
23
+ # Playron dizininde
24
+ npm install
25
+ npm run build
26
+ npm link
27
+ ```
28
+
29
+ Sonra kullanacağın projede:
30
+
31
+ ```bash
32
+ npm link playron
33
+ ```
34
+
35
+ ### NPM'den (gelecekte)
36
+
37
+ ```bash
38
+ npm install playron
39
+ # veya
40
+ yarn add playron
41
+ # veya
42
+ pnpm add playron
43
+ ```
44
+
45
+ ## Kullanım
46
+
47
+ ### React/Next.js Projelerinde
48
+
49
+ ```tsx
50
+ import { Player } from 'playron';
51
+ import 'playron/style.css';
52
+
53
+ function MyApp() {
54
+ return (
55
+ <div>
56
+ <Player
57
+ src="https://example.com/video.m3u8"
58
+ poster="https://example.com/poster.jpg"
59
+ autoPlay={false}
60
+ controls={true}
61
+ />
62
+ </div>
63
+ );
64
+ }
65
+ ```
66
+
67
+ ### Vanilla JavaScript (MVC) Projelerinde
68
+
69
+ ```html
70
+ <!DOCTYPE html>
71
+ <html>
72
+ <head>
73
+ <link rel="stylesheet" href="node_modules/playron/dist/playron.css">
74
+ </head>
75
+ <body>
76
+ <div id="player-container"></div>
77
+
78
+ <script type="module">
79
+ import { Playron } from './node_modules/playron/dist/playron.es.js';
80
+
81
+ const player = new Playron({
82
+ containerId: 'player-container',
83
+ src: 'https://example.com/video.m3u8',
84
+ poster: 'https://example.com/poster.jpg',
85
+ autoPlay: false,
86
+ width: '100%',
87
+ height: 'auto'
88
+ });
89
+
90
+ // Event listeners
91
+ player.on('play', () => console.log('Video playing'));
92
+ player.on('pause', () => console.log('Video paused'));
93
+
94
+ // Player kontrolü
95
+ player.play();
96
+ player.pause();
97
+ player.setVolume(0.5);
98
+ player.seekTo(30);
99
+ </script>
100
+ </body>
101
+ </html>
102
+ ```
103
+
104
+ ### UMD (Script tag ile)
105
+
106
+ ```html
107
+ <!DOCTYPE html>
108
+ <html>
109
+ <head>
110
+ <link rel="stylesheet" href="node_modules/playron/dist/playron.css">
111
+ <script src="node_modules/playron/dist/playron.umd.js"></script>
112
+ </head>
113
+ <body>
114
+ <div id="player-container"></div>
115
+
116
+ <script>
117
+ const player = new Playron.Playron({
118
+ containerId: 'player-container',
119
+ src: 'https://example.com/video.m3u8'
120
+ });
121
+ </script>
122
+ </body>
123
+ </html>
124
+ ```
125
+
126
+ ## API
127
+
128
+ ### Player Props (React)
129
+
130
+ ```typescript
131
+ interface PlayerProps {
132
+ src: string; // Video source URL
133
+ poster?: string; // Poster image URL
134
+ autoPlay?: boolean; // Auto-play video
135
+ muted?: boolean; // Start muted
136
+ controls?: boolean; // Show controls
137
+ loop?: boolean; // Loop video
138
+ width?: string | number; // Player width
139
+ height?: string | number; // Player height
140
+ className?: string; // Custom CSS class
141
+ style?: React.CSSProperties; // Inline styles
142
+
143
+ // DRM Config
144
+ drm?: {
145
+ widevine?: { licenseUrl: string };
146
+ playready?: { licenseUrl: string };
147
+ fairplay?: { licenseUrl: string; certificateUrl: string };
148
+ };
149
+
150
+ // Events
151
+ onPlay?: () => void;
152
+ onPause?: () => void;
153
+ onEnded?: () => void;
154
+ onError?: (error: Error) => void;
155
+ onTimeUpdate?: (time: number) => void;
156
+ }
157
+ ```
158
+
159
+ ### Playron Class (Vanilla JS)
160
+
161
+ ```typescript
162
+ class Playron {
163
+ constructor(config: PlayerConfig);
164
+
165
+ // Playback
166
+ play(): Promise<void>;
167
+ pause(): void;
168
+ toggleMute(): void;
169
+ setVolume(volume: number): void;
170
+ seekTo(time: number): void;
171
+ setPlaybackRate(rate: number): void;
172
+
173
+ // Source
174
+ setSource(src: string): Promise<void>;
175
+ setPoster(poster: string): void;
176
+
177
+ // Events
178
+ on<T>(eventType: string, callback: (event: T) => void): void;
179
+ off<T>(eventType: string, callback: (event: T) => void): void;
180
+
181
+ // State
182
+ getState(): PlayerState;
183
+
184
+ // Cleanup
185
+ destroy(): void;
186
+ }
187
+ ```
188
+
189
+ ### Events
190
+
191
+ ```typescript
192
+ // Available events
193
+ 'play' | 'pause' | 'ended' | 'error' |
194
+ 'timeupdate' | 'volumechange' | 'mute' | 'unmute' |
195
+ 'seeked' | 'seeking' | 'loadstart' | 'loadeddata' |
196
+ 'canplay' | 'waiting' | 'stalled'
197
+ ```
198
+
199
+ ## Advanced Usage
200
+
201
+ ### Custom Controls (React)
202
+
203
+ ```tsx
204
+ import { PlayerCore, EventBus } from 'playron';
205
+ import { ControlBar, PlayButton, MuteButton } from 'playron';
206
+
207
+ function CustomPlayer() {
208
+ return (
209
+ <div className="custom-player">
210
+ <video id="my-video" />
211
+ <ControlBar>
212
+ <PlayButton />
213
+ <MuteButton />
214
+ {/* Kendi custom kontrollerini ekle */}
215
+ </ControlBar>
216
+ </div>
217
+ );
218
+ }
219
+ ```
220
+
221
+ ### DRM Kullanımı
222
+
223
+ ```tsx
224
+ <Player
225
+ src="https://example.com/encrypted-video.mpd"
226
+ drm={{
227
+ widevine: {
228
+ licenseUrl: 'https://example.com/widevine-license'
229
+ },
230
+ playready: {
231
+ licenseUrl: 'https://example.com/playready-license'
232
+ }
233
+ }}
234
+ />
235
+ ```
236
+
237
+ ### VAST/VMAP Ads
238
+
239
+ ```tsx
240
+ <Player
241
+ src="https://example.com/video.m3u8"
242
+ ads={{
243
+ vastUrl: 'https://example.com/vast.xml',
244
+ // or
245
+ vmapUrl: 'https://example.com/vmap.xml'
246
+ }}
247
+ />
248
+ ```
249
+
250
+ ## Development
251
+
252
+ ```bash
253
+ # Install dependencies
254
+ npm install
255
+
256
+ # Development mode
257
+ npm run dev
258
+
259
+ # Build library
260
+ npm run build
261
+
262
+ # Lint
263
+ npm run lint
264
+ ```
265
+
266
+ ## Build Output
267
+
268
+ Build sonrası `dist/` klasöründe:
269
+ - `playron.es.js` - ES Module (modern projeler için)
270
+ - `playron.umd.js` - UMD format (browser'da direkt kullanım)
271
+ - `playron.css` - Styles
272
+ - `index.d.ts` - TypeScript definitions
273
+
274
+ ## Browser Support
275
+
276
+ - Chrome/Edge 90+
277
+ - Firefox 88+
278
+ - Safari 14+
279
+ - Mobile browsers (iOS Safari 14+, Chrome Android 90+)
280
+
281
+ ## License
282
+
283
+ MIT
284
+
285
+ ## Author
286
+
287
+ Suat Erkilic
package/dist/Docs.d.ts ADDED
@@ -0,0 +1,2 @@
1
+ export default function Docs(): import("react/jsx-runtime").JSX.Element;
2
+ //# sourceMappingURL=Docs.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Docs.d.ts","sourceRoot":"","sources":["../src/Docs.tsx"],"names":[],"mappings":"AAwoCA,MAAM,CAAC,OAAO,UAAU,IAAI,4CAmG3B"}
@@ -0,0 +1 @@
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});class r{static instance;listeners=new Set;errorHistory=[];constructor(){}static getInstance(){return r.instance||(r.instance=new r),r.instance}registerListener(e){this.listeners.add(e)}unregisterListener(e){this.listeners.delete(e)}dispatchError(e,s,n,i){const t={category:e,code:s,message:n,details:i,timestamp:Date.now()};return console.error(`[ErrorManager] ${e} (${s}): ${n}`,i),this.errorHistory.push(t),this.listeners.forEach(o=>{try{o(t)}catch(c){console.error("[ErrorManager] Exception in error listener:",c)}}),t}getHistory(){return[...this.errorHistory]}clearHistory(){this.errorHistory=[]}}const a=r.getInstance();exports.ErrorManager=r;exports.errorManager=a;
@@ -0,0 +1,43 @@
1
+ class t {
2
+ static instance;
3
+ listeners = /* @__PURE__ */ new Set();
4
+ errorHistory = [];
5
+ constructor() {
6
+ }
7
+ static getInstance() {
8
+ return t.instance || (t.instance = new t()), t.instance;
9
+ }
10
+ registerListener(r) {
11
+ this.listeners.add(r);
12
+ }
13
+ unregisterListener(r) {
14
+ this.listeners.delete(r);
15
+ }
16
+ dispatchError(r, s, n, i) {
17
+ const e = {
18
+ category: r,
19
+ code: s,
20
+ message: n,
21
+ details: i,
22
+ timestamp: Date.now()
23
+ };
24
+ return console.error(`[ErrorManager] ${r} (${s}): ${n}`, i), this.errorHistory.push(e), this.listeners.forEach((o) => {
25
+ try {
26
+ o(e);
27
+ } catch (c) {
28
+ console.error("[ErrorManager] Exception in error listener:", c);
29
+ }
30
+ }), e;
31
+ }
32
+ getHistory() {
33
+ return [...this.errorHistory];
34
+ }
35
+ clearHistory() {
36
+ this.errorHistory = [];
37
+ }
38
+ }
39
+ const a = t.getInstance();
40
+ export {
41
+ t as ErrorManager,
42
+ a as errorManager
43
+ };
package/dist/Why.d.ts ADDED
@@ -0,0 +1,2 @@
1
+ export default function Why(): import("react/jsx-runtime").JSX.Element;
2
+ //# sourceMappingURL=Why.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Why.d.ts","sourceRoot":"","sources":["../src/Why.tsx"],"names":[],"mappings":"AA2HA,MAAM,CAAC,OAAO,UAAU,GAAG,4CAsR1B"}
@@ -0,0 +1,34 @@
1
+ export interface DrmPresetConfig {
2
+ enabled?: boolean;
3
+ widevine?: {
4
+ licenseUrl: string;
5
+ headers?: Record<string, string>;
6
+ withCredentials?: boolean;
7
+ };
8
+ playready?: {
9
+ licenseUrl: string;
10
+ headers?: Record<string, string>;
11
+ withCredentials?: boolean;
12
+ };
13
+ }
14
+ export interface PlayerConfigData {
15
+ src: string;
16
+ poster?: string;
17
+ thumbnailsVttUrl: string;
18
+ isRichPlayer: boolean;
19
+ eventsJson: string;
20
+ introOutroJson: string;
21
+ adsEnabled: boolean;
22
+ adType: 'none' | 'vast' | 'vmap';
23
+ vastUrl: string;
24
+ vmapUrl: string;
25
+ skipAfter: number;
26
+ drmConfig?: DrmPresetConfig;
27
+ }
28
+ interface PlayerConfigProps {
29
+ onRun: (config: PlayerConfigData) => void;
30
+ initialConfig?: Partial<PlayerConfigData>;
31
+ }
32
+ export default function PlayerConfig({ onRun, initialConfig }: PlayerConfigProps): import("react/jsx-runtime").JSX.Element;
33
+ export {};
34
+ //# sourceMappingURL=PlayerConfig.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PlayerConfig.d.ts","sourceRoot":"","sources":["../../src/components/PlayerConfig.tsx"],"names":[],"mappings":"AAOA,MAAM,WAAW,eAAe;IAC9B,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,QAAQ,CAAC,EAAE;QACT,UAAU,EAAE,MAAM,CAAC;QACnB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QACjC,eAAe,CAAC,EAAE,OAAO,CAAC;KAC3B,CAAC;IACF,SAAS,CAAC,EAAE;QACV,UAAU,EAAE,MAAM,CAAC;QACnB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QACjC,eAAe,CAAC,EAAE,OAAO,CAAC;KAC3B,CAAC;CACH;AAED,MAAM,WAAW,gBAAgB;IAC/B,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,gBAAgB,EAAE,MAAM,CAAC;IACzB,YAAY,EAAE,OAAO,CAAC;IACtB,UAAU,EAAE,MAAM,CAAC;IACnB,cAAc,EAAE,MAAM,CAAC;IACvB,UAAU,EAAE,OAAO,CAAC;IACpB,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,CAAC;IACjC,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,eAAe,CAAC;CAC7B;AAED,UAAU,iBAAiB;IACzB,KAAK,EAAE,CAAC,MAAM,EAAE,gBAAgB,KAAK,IAAI,CAAC;IAC1C,aAAa,CAAC,EAAE,OAAO,CAAC,gBAAgB,CAAC,CAAC;CAC3C;AA8KD,MAAM,CAAC,OAAO,UAAU,YAAY,CAAC,EAAE,KAAK,EAAE,aAAa,EAAE,EAAE,iBAAiB,2CA0M/E"}
@@ -0,0 +1,26 @@
1
+ import { FunctionComponent } from 'react';
2
+ /**
3
+ * Default Controls - Full featured control bar
4
+ */
5
+ export declare const DefaultControls: FunctionComponent;
6
+ /**
7
+ * Minimal Controls - Just play/pause and seek
8
+ */
9
+ export declare const MinimalControls: FunctionComponent;
10
+ /**
11
+ * Custom Control Group Components
12
+ */
13
+ export declare const PlaybackControls: FunctionComponent;
14
+ export declare const VolumeControls: FunctionComponent;
15
+ export declare const QualityControls: FunctionComponent;
16
+ export declare const ScreenControls: FunctionComponent;
17
+ declare const _default: {
18
+ Default: FunctionComponent<{}>;
19
+ Minimal: FunctionComponent<{}>;
20
+ Playback: FunctionComponent<{}>;
21
+ Volume: FunctionComponent<{}>;
22
+ Quality: FunctionComponent<{}>;
23
+ Screen: FunctionComponent<{}>;
24
+ };
25
+ export default _default;
26
+ //# sourceMappingURL=PlayronControls.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PlayronControls.d.ts","sourceRoot":"","sources":["../../src/components/PlayronControls.tsx"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,OAAO,CAAC;AAmB/C;;GAEG;AACH,eAAO,MAAM,eAAe,EAAE,iBA2B7B,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,eAAe,EAAE,iBAW7B,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,gBAAgB,EAAE,iBAU9B,CAAC;AAEF,eAAO,MAAM,cAAc,EAAE,iBAO5B,CAAC;AAEF,eAAO,MAAM,eAAe,EAAE,iBAQ7B,CAAC;AAEF,eAAO,MAAM,cAAc,EAAE,iBAS5B,CAAC;;;;;;;;;AAGF,wBAOE"}
@@ -0,0 +1,37 @@
1
+ import { FC, ReactNode } from 'react';
2
+ import { PlayerCore } from '../core/PlayerCore';
3
+ import { PlayerConfig } from '../types/config.types';
4
+ import { Chapter, IntroOutro } from '../types/chapters.types';
5
+ /**
6
+ * Playron Props
7
+ */
8
+ export interface PlayronProps {
9
+ src: string;
10
+ config?: PlayerConfig;
11
+ metadata?: {
12
+ chapters?: Chapter[];
13
+ introOutro?: IntroOutro;
14
+ subtitles?: any[];
15
+ };
16
+ poster?: string;
17
+ autoplay?: boolean;
18
+ muted?: boolean;
19
+ loop?: boolean;
20
+ width?: string | number;
21
+ height?: string | number;
22
+ className?: string;
23
+ style?: any;
24
+ children?: ReactNode;
25
+ onReady?: (player: PlayerCore) => void;
26
+ onPlay?: () => void;
27
+ onPause?: () => void;
28
+ onEnded?: () => void;
29
+ onTimeUpdate?: (currentTime: number, duration: number) => void;
30
+ onError?: (error: any) => void;
31
+ }
32
+ /**
33
+ * Playron Component
34
+ */
35
+ export declare const Playron: FC<PlayronProps>;
36
+ export default Playron;
37
+ //# sourceMappingURL=PlayronPlayer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PlayronPlayer.d.ts","sourceRoot":"","sources":["../../src/components/PlayronPlayer.tsx"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,KAAK,EAAE,EAAE,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAC3C,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAEhD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAC1D,OAAO,KAAK,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AAGnE;;GAEG;AACH,MAAM,WAAW,YAAY;IAEzB,GAAG,EAAE,MAAM,CAAC;IAGZ,MAAM,CAAC,EAAE,YAAY,CAAC;IAGtB,QAAQ,CAAC,EAAE;QACP,QAAQ,CAAC,EAAE,OAAO,EAAE,CAAC;QACrB,UAAU,CAAC,EAAE,UAAU,CAAC;QACxB,SAAS,CAAC,EAAE,GAAG,EAAE,CAAC;KACrB,CAAC;IAGF,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,IAAI,CAAC,EAAE,OAAO,CAAC;IAGf,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACxB,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACzB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,GAAG,CAAC;IAGZ,QAAQ,CAAC,EAAE,SAAS,CAAC;IAGrB,OAAO,CAAC,EAAE,CAAC,MAAM,EAAE,UAAU,KAAK,IAAI,CAAC;IACvC,MAAM,CAAC,EAAE,MAAM,IAAI,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,YAAY,CAAC,EAAE,CAAC,WAAW,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAC;IAC/D,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,GAAG,KAAK,IAAI,CAAC;CAClC;AAED;;GAEG;AACH,eAAO,MAAM,OAAO,EAAE,EAAE,CAAC,YAAY,CAqHpC,CAAC;AAGF,eAAe,OAAO,CAAC"}
@@ -0,0 +1,6 @@
1
+ interface SiteHeaderProps {
2
+ activePage?: 'home' | 'why' | 'docs';
3
+ }
4
+ export default function SiteHeader({ activePage }: SiteHeaderProps): import("react/jsx-runtime").JSX.Element;
5
+ export {};
6
+ //# sourceMappingURL=SiteHeader.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SiteHeader.d.ts","sourceRoot":"","sources":["../../src/components/SiteHeader.tsx"],"names":[],"mappings":"AAEA,UAAU,eAAe;IACrB,UAAU,CAAC,EAAE,MAAM,GAAG,KAAK,GAAG,MAAM,CAAC;CACxC;AAID,MAAM,CAAC,OAAO,UAAU,UAAU,CAAC,EAAE,UAAmB,EAAE,EAAE,eAAe,2CA+S1E"}
@@ -0,0 +1,3 @@
1
+ import { IntroOutro } from '../types/chapters.types';
2
+ export declare const sampleIntroOutro: IntroOutro;
3
+ //# sourceMappingURL=sample-intro-outro.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sample-intro-outro.d.ts","sourceRoot":"","sources":["../../src/constants/sample-intro-outro.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AAE1D,eAAO,MAAM,gBAAgB,EAAE,UAG9B,CAAC"}
@@ -0,0 +1,2 @@
1
+ export declare const demoSource = "https://demo.unified-streaming.com/k8s/features/stable/video/tears-of-steel/tears-of-steel.mp4/.m3u8";
2
+ //# sourceMappingURL=source.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"source.d.ts","sourceRoot":"","sources":["../../src/constants/source.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,UAAU,yGAAyG,CAAA"}
@@ -0,0 +1,58 @@
1
+ export declare const sampleSportsEvents: ({
2
+ minute: number;
3
+ second: number;
4
+ type: string;
5
+ player: {
6
+ name: string;
7
+ };
8
+ cardType: string;
9
+ reason: string;
10
+ playerOff?: undefined;
11
+ playerOn?: undefined;
12
+ goalPlayer?: undefined;
13
+ assistPlayer?: undefined;
14
+ } | {
15
+ minute: number;
16
+ second: number;
17
+ type: string;
18
+ playerOff: {
19
+ name: string;
20
+ };
21
+ playerOn: {
22
+ name: string;
23
+ };
24
+ player?: undefined;
25
+ cardType?: undefined;
26
+ reason?: undefined;
27
+ goalPlayer?: undefined;
28
+ assistPlayer?: undefined;
29
+ } | {
30
+ minute: number;
31
+ second: number;
32
+ type: string;
33
+ goalPlayer: {
34
+ name: string;
35
+ };
36
+ assistPlayer: {
37
+ name: string;
38
+ };
39
+ player?: undefined;
40
+ cardType?: undefined;
41
+ reason?: undefined;
42
+ playerOff?: undefined;
43
+ playerOn?: undefined;
44
+ } | {
45
+ minute: number;
46
+ second: number;
47
+ type: string;
48
+ goalPlayer: {
49
+ name: string;
50
+ };
51
+ player?: undefined;
52
+ cardType?: undefined;
53
+ reason?: undefined;
54
+ playerOff?: undefined;
55
+ playerOn?: undefined;
56
+ assistPlayer?: undefined;
57
+ })[];
58
+ //# sourceMappingURL=sports-events.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sports-events.d.ts","sourceRoot":"","sources":["../../src/constants/sports-events.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IA2D9B,CAAC"}
@@ -0,0 +1,3 @@
1
+ import { PlayerCore } from '../core/PlayerCore';
2
+ export declare const PlayerContext: import('react').Context<PlayerCore | null>;
3
+ //# sourceMappingURL=PlayerContext.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PlayerContext.d.ts","sourceRoot":"","sources":["../../src/context/PlayerContext.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAGhD,eAAO,MAAM,aAAa,4CAAyC,CAAC"}
@@ -0,0 +1,63 @@
1
+ import { QualityLevel } from '../types/streaming.types';
2
+ export interface PlayerMethods {
3
+ play: () => Promise<void>;
4
+ pause: () => void;
5
+ togglePlay: () => Promise<void>;
6
+ toggleMute: () => void;
7
+ setVolume: (volume: number) => void;
8
+ seekTo: (time: number) => void;
9
+ setPlaybackRate: (rate: number) => void;
10
+ toggleFullscreen: () => void;
11
+ togglePip: () => Promise<void>;
12
+ skipBackward: (seconds?: number) => void;
13
+ skipForward: (seconds?: number) => void;
14
+ setLoop: (loop: boolean) => void;
15
+ getLoop: () => boolean;
16
+ setQuality: (quality: string) => void;
17
+ getQuality: () => QualityLevel | null;
18
+ getAvailableQualities: () => QualityLevel[];
19
+ setAudioTrack: (trackId: string) => void;
20
+ getAudioTrack: () => string;
21
+ getAvailableAudioTracks: () => Array<{
22
+ id: string;
23
+ label: string;
24
+ language: string;
25
+ }>;
26
+ toggleTheaterMode: () => void;
27
+ isTheaterMode: () => boolean;
28
+ getPlayer: () => any;
29
+ onNextEpisode?: () => void;
30
+ getStreamType: () => 'vod' | 'live' | 'unknown';
31
+ getStreamInfo: () => any;
32
+ isLive: () => boolean;
33
+ getBufferedRanges: () => Array<{
34
+ start: number;
35
+ end: number;
36
+ }>;
37
+ seekToLiveEdge: () => void;
38
+ getCurrentLatency: () => number;
39
+ isAtLiveEdge: (tolerance?: number) => boolean;
40
+ getDVRRange: () => {
41
+ start: number;
42
+ end: number;
43
+ } | null;
44
+ getSubtitleTracks: () => Array<{
45
+ language: string;
46
+ label: string;
47
+ url: string;
48
+ }>;
49
+ setSubtitleTrack: (language: string | null) => Promise<void>;
50
+ getActiveSubtitleLanguage: () => string | null;
51
+ getPlayerStats: () => {
52
+ bandwidth: number;
53
+ bufferHealth: number;
54
+ droppedFrames: number;
55
+ totalFrames: number;
56
+ codec: string;
57
+ resolution: string;
58
+ segmentUrl: string;
59
+ streamType: string;
60
+ };
61
+ }
62
+ export declare const PlayerMethodsContext: import('react').Context<PlayerMethods | null>;
63
+ //# sourceMappingURL=PlayerMethodsContext.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PlayerMethodsContext.d.ts","sourceRoot":"","sources":["../../src/context/PlayerMethodsContext.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ import { ReactNode } from 'react';
2
+ import { PlayerCore } from '../core/PlayerCore';
3
+ interface PlayerProviderProps {
4
+ children: ReactNode;
5
+ playerInstance: PlayerCore | null;
6
+ }
7
+ export declare function PlayerProvider({ children, playerInstance }: PlayerProviderProps): import("react/jsx-runtime").JSX.Element;
8
+ export {};
9
+ //# sourceMappingURL=PlayerProvider.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PlayerProvider.d.ts","sourceRoot":"","sources":["../../src/context/PlayerProvider.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAIvC,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAIhD,UAAU,mBAAmB;IAC3B,QAAQ,EAAE,SAAS,CAAC;IACpB,cAAc,EAAE,UAAU,GAAG,IAAI,CAAC;CACnC;AAED,wBAAgB,cAAc,CAAC,EAAE,QAAQ,EAAE,cAAc,EAAE,EAAE,mBAAmB,2CAkN/E"}
@@ -0,0 +1,4 @@
1
+ import { PlayerState } from '../types/config';
2
+ export declare const defaultPlayerState: PlayerState;
3
+ export declare const PlayerStateContext: import('react').Context<PlayerState>;
4
+ //# sourceMappingURL=PlayerStateContext.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PlayerStateContext.d.ts","sourceRoot":"","sources":["../../src/context/PlayerStateContext.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAGnD,eAAO,MAAM,kBAAkB,EAAE,WAShC,CAAC;AAGF,eAAO,MAAM,kBAAkB,sCAAiD,CAAC"}