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
@@ -0,0 +1,111 @@
1
+ import { PlayerCore } from './PlayerCore';
2
+ import { VirtusEventType } from './PlayronEventEmitter';
3
+ /**
4
+ * Plugin interface
5
+ */
6
+ export interface VirtusPlugin {
7
+ /** Unique plugin name */
8
+ name: string;
9
+ /** Plugin version */
10
+ version: string;
11
+ /** Plugin description */
12
+ description?: string;
13
+ /** Plugin dependencies (other plugin names) */
14
+ dependencies?: string[];
15
+ /**
16
+ * Install plugin
17
+ * Called when plugin is registered
18
+ */
19
+ install: (player: PlayerCore, config?: any) => void | Promise<void>;
20
+ /**
21
+ * Uninstall plugin
22
+ * Called when plugin is removed or player is destroyed
23
+ */
24
+ uninstall?: () => void | Promise<void>;
25
+ }
26
+ /**
27
+ * Plugin Manager
28
+ * Manages plugin lifecycle and dependencies
29
+ */
30
+ export declare class PluginManager {
31
+ private player;
32
+ private plugins;
33
+ private installed;
34
+ constructor(player: PlayerCore);
35
+ /**
36
+ * Register a plugin
37
+ */
38
+ register(plugin: VirtusPlugin, config?: any): Promise<void>;
39
+ /**
40
+ * Unregister a plugin
41
+ */
42
+ unregister(pluginName: string): Promise<void>;
43
+ /**
44
+ * Get plugin by name
45
+ */
46
+ get(pluginName: string): VirtusPlugin | undefined;
47
+ /**
48
+ * Check if plugin is installed
49
+ */
50
+ has(pluginName: string): boolean;
51
+ /**
52
+ * Get all installed plugins
53
+ */
54
+ getAll(): VirtusPlugin[];
55
+ /**
56
+ * Uninstall all plugins
57
+ */
58
+ uninstallAll(): Promise<void>;
59
+ }
60
+ /**
61
+ * Skip Intro/Outro Plugin
62
+ */
63
+ export declare function createSkipIntroPlugin(config: {
64
+ intro?: {
65
+ start: number;
66
+ end: number;
67
+ };
68
+ outro?: {
69
+ start: number;
70
+ end: number;
71
+ };
72
+ }): VirtusPlugin;
73
+ /**
74
+ * Chapters Plugin
75
+ */
76
+ export declare function createChaptersPlugin(chapters: Array<{
77
+ id: string;
78
+ title: string;
79
+ startTime: number;
80
+ endTime?: number;
81
+ }>): VirtusPlugin;
82
+ /**
83
+ * Analytics Plugin
84
+ */
85
+ export declare function createAnalyticsPlugin(config: {
86
+ trackingId: string;
87
+ endpoint?: string;
88
+ events?: VirtusEventType[];
89
+ }): VirtusPlugin;
90
+ /**
91
+ * Keyboard Shortcuts Plugin
92
+ */
93
+ export declare function createKeyboardShortcutsPlugin(_config?: {
94
+ shortcuts?: {
95
+ play?: string;
96
+ mute?: string;
97
+ fullscreen?: string;
98
+ skipForward?: string;
99
+ skipBackward?: string;
100
+ volumeUp?: string;
101
+ volumeDown?: string;
102
+ };
103
+ }): VirtusPlugin;
104
+ /**
105
+ * Auto Quality Plugin
106
+ */
107
+ export declare function createAutoQualityPlugin(_config?: {
108
+ minBandwidth?: number;
109
+ maxBandwidth?: number;
110
+ }): VirtusPlugin;
111
+ //# sourceMappingURL=PluginSystem.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PluginSystem.d.ts","sourceRoot":"","sources":["../../src/core/PluginSystem.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,27 @@
1
+ import { PlayronEventEmitter } from './PlayronEventEmitter';
2
+ export interface StallDetectorOptions {
3
+ /** Poll interval in ms (default: 500) */
4
+ pollInterval?: number;
5
+ /** Seconds of no-progress before first recovery attempt (default: 3) */
6
+ stallThreshold?: number;
7
+ /** Called when quality downgrade is needed (attempt 3) */
8
+ onQualityDowngrade?: () => void;
9
+ }
10
+ export declare class StallDetector {
11
+ private video;
12
+ private events;
13
+ private options;
14
+ private timer;
15
+ private lastTime;
16
+ private stallDuration;
17
+ private attempts;
18
+ private isRunning;
19
+ constructor(video: HTMLVideoElement, events: PlayronEventEmitter, options?: StallDetectorOptions);
20
+ start(): void;
21
+ stop(): void;
22
+ destroy(): void;
23
+ private reset;
24
+ private tick;
25
+ private recover;
26
+ }
27
+ //# sourceMappingURL=StallDetector.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"StallDetector.d.ts","sourceRoot":"","sources":["../../src/core/StallDetector.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAEjE,MAAM,WAAW,oBAAoB;IACnC,yCAAyC;IACzC,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,wEAAwE;IACxE,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,0DAA0D;IAC1D,kBAAkB,CAAC,EAAE,MAAM,IAAI,CAAC;CACjC;AAED,qBAAa,aAAa;IACxB,OAAO,CAAC,KAAK,CAAmB;IAChC,OAAO,CAAC,MAAM,CAAsB;IACpC,OAAO,CAAC,OAAO,CAEb;IAEF,OAAO,CAAC,KAAK,CAA+C;IAC5D,OAAO,CAAC,QAAQ,CAAM;IACtB,OAAO,CAAC,aAAa,CAAK;IAC1B,OAAO,CAAC,QAAQ,CAAK;IACrB,OAAO,CAAC,SAAS,CAAS;gBAGxB,KAAK,EAAE,gBAAgB,EACvB,MAAM,EAAE,mBAAmB,EAC3B,OAAO,GAAE,oBAAyB;IAWpC,KAAK,IAAI,IAAI;IAOb,IAAI,IAAI,IAAI;IASZ,OAAO,IAAI,IAAI;IAMf,OAAO,CAAC,KAAK;IAMb,OAAO,CAAC,IAAI;IAkDZ,OAAO,CAAC,OAAO;CAqChB"}
@@ -0,0 +1,90 @@
1
+ import { PlayerState } from '../types/config';
2
+ export declare class StateManager {
3
+ private state;
4
+ private listeners;
5
+ private history;
6
+ private maxHistorySize;
7
+ constructor(initialState?: Partial<PlayerState>);
8
+ /**
9
+ * Başlangıç durumunu oluştur
10
+ */
11
+ private getInitialState;
12
+ /**
13
+ * Durumu güncelle
14
+ */
15
+ updateState(updates: Partial<PlayerState>): void;
16
+ /**
17
+ * Mevcut durumu döndür
18
+ */
19
+ getState(): PlayerState;
20
+ /**
21
+ * Belirli bir durum değerini al
22
+ */
23
+ get<K extends keyof PlayerState>(key: K): PlayerState[K];
24
+ /**
25
+ * Belirli bir durum değerini ayarla
26
+ */
27
+ set<K extends keyof PlayerState>(key: K, value: PlayerState[K]): void;
28
+ /**
29
+ * Durum değişiklik dinleyicisi ekle
30
+ */
31
+ subscribe(callback: (state: PlayerState) => void): void;
32
+ /**
33
+ * Durum değişiklik dinleyicisini kaldır
34
+ */
35
+ unsubscribe(callback: (state: PlayerState) => void): void;
36
+ /**
37
+ * Durum değişikliklerini bildir
38
+ */
39
+ private notifyListeners;
40
+ /**
41
+ * Durumu geçmişe ekle
42
+ */
43
+ private addToHistory;
44
+ /**
45
+ * Önceki duruma geri dön
46
+ */
47
+ undo(): boolean;
48
+ /**
49
+ * Durumu sıfırla
50
+ */
51
+ reset(): void;
52
+ /**
53
+ * Durumu belirli bir değere ayarla
54
+ */
55
+ setState(newState: PlayerState): void;
56
+ /**
57
+ * Durum geçmişini temizle
58
+ */
59
+ clearHistory(): void;
60
+ /**
61
+ * Durum geçmişini döndür
62
+ */
63
+ getHistory(): PlayerState[];
64
+ /**
65
+ * Belirli bir durumda olup olmadığını kontrol et
66
+ */
67
+ isInState(predicate: (state: PlayerState) => boolean): boolean;
68
+ /**
69
+ * Durum değişikliklerini filtrele
70
+ */
71
+ subscribeToChanges<K extends keyof PlayerState>(keys: K[], callback: (changes: Pick<PlayerState, K>) => void): void;
72
+ /**
73
+ * Durumu snapshot olarak al
74
+ */
75
+ createSnapshot(): PlayerState;
76
+ /**
77
+ * Snapshot'tan durumu geri yükle
78
+ */
79
+ restoreFromSnapshot(snapshot: PlayerState): void;
80
+ /**
81
+ * Durum istatistiklerini döndür
82
+ */
83
+ getStats(): {
84
+ totalListeners: number;
85
+ historySize: number;
86
+ maxHistorySize: number;
87
+ lastUpdate: Date;
88
+ };
89
+ }
90
+ //# sourceMappingURL=StateManager.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"StateManager.d.ts","sourceRoot":"","sources":["../../src/core/StateManager.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAEnD,qBAAa,YAAY;IACvB,OAAO,CAAC,KAAK,CAAc;IAC3B,OAAO,CAAC,SAAS,CAA2C;IAC5D,OAAO,CAAC,OAAO,CAAqB;IACpC,OAAO,CAAC,cAAc,CAAc;gBAExB,YAAY,CAAC,EAAE,OAAO,CAAC,WAAW,CAAC;IAI/C;;OAEG;IACH,OAAO,CAAC,eAAe;IAavB;;OAEG;IACH,WAAW,CAAC,OAAO,EAAE,OAAO,CAAC,WAAW,CAAC,GAAG,IAAI;IAWhD;;OAEG;IACH,QAAQ,IAAI,WAAW;IAIvB;;OAEG;IACH,GAAG,CAAC,CAAC,SAAS,MAAM,WAAW,EAAE,GAAG,EAAE,CAAC,GAAG,WAAW,CAAC,CAAC,CAAC;IAIxD;;OAEG;IACH,GAAG,CAAC,CAAC,SAAS,MAAM,WAAW,EAAE,GAAG,EAAE,CAAC,EAAE,KAAK,EAAE,WAAW,CAAC,CAAC,CAAC,GAAG,IAAI;IAIrE;;OAEG;IACH,SAAS,CAAC,QAAQ,EAAE,CAAC,KAAK,EAAE,WAAW,KAAK,IAAI,GAAG,IAAI;IAIvD;;OAEG;IACH,WAAW,CAAC,QAAQ,EAAE,CAAC,KAAK,EAAE,WAAW,KAAK,IAAI,GAAG,IAAI;IAOzD;;OAEG;IACH,OAAO,CAAC,eAAe;IAUvB;;OAEG;IACH,OAAO,CAAC,YAAY;IASpB;;OAEG;IACH,IAAI,IAAI,OAAO;IAef;;OAEG;IACH,KAAK,IAAI,IAAI;IAMb;;OAEG;IACH,QAAQ,CAAC,QAAQ,EAAE,WAAW,GAAG,IAAI;IAOrC;;OAEG;IACH,YAAY,IAAI,IAAI;IAIpB;;OAEG;IACH,UAAU,IAAI,WAAW,EAAE;IAI3B;;OAEG;IACH,SAAS,CAAC,SAAS,EAAE,CAAC,KAAK,EAAE,WAAW,KAAK,OAAO,GAAG,OAAO;IAI9D;;OAEG;IACH,kBAAkB,CAAC,CAAC,SAAS,MAAM,WAAW,EAC5C,IAAI,EAAE,CAAC,EAAE,EACT,QAAQ,EAAE,CAAC,OAAO,EAAE,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC,KAAK,IAAI,GAChD,IAAI;IAwBP;;OAEG;IACH,cAAc,IAAI,WAAW;IAI7B;;OAEG;IACH,mBAAmB,CAAC,QAAQ,EAAE,WAAW,GAAG,IAAI;IAIhD;;OAEG;IACH,QAAQ,IAAI;QACV,cAAc,EAAE,MAAM,CAAC;QACvB,WAAW,EAAE,MAAM,CAAC;QACpB,cAAc,EAAE,MAAM,CAAC;QACvB,UAAU,EAAE,IAAI,CAAC;KAClB;CAQF"}
@@ -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,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,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"}
@@ -0,0 +1,149 @@
1
+ import { QualityLevel } from '../../types/streaming.types';
2
+ import { PlayerConfig } from '../../types/config.types';
3
+ export interface DashEngineConfig {
4
+ /** Kaynak yüklendiğinde otomatik başlat. Varsayılan: true */
5
+ autoStart?: boolean;
6
+ /** Buffer'da tutulacak maksimum saniye (önde). Varsayılan: 30 */
7
+ maxBufferAhead?: number;
8
+ /** Düşük gecikme modu. Varsayılan: false */
9
+ lowLatency?: boolean;
10
+ /** Debug log'larını aç. Varsayılan: false */
11
+ debug?: boolean;
12
+ /** DRM konfigürasyonu — Widevine / PlayReady lisans sunucusu bilgileri */
13
+ drmConfig?: PlayerConfig['drm'];
14
+ }
15
+ /** DashEngine'in emit ettiği olayların tip eşlemesi */
16
+ interface DashEngineEventMap {
17
+ 'quality-changed': {
18
+ quality: QualityLevel;
19
+ };
20
+ 'audio-track-changed': {
21
+ trackId: string;
22
+ };
23
+ 'subtitle-track-changed': {
24
+ language: string | null;
25
+ };
26
+ 'error': {
27
+ error: {
28
+ code: string;
29
+ message: string;
30
+ fatal: boolean;
31
+ details?: unknown;
32
+ };
33
+ };
34
+ 'state-change': {
35
+ state: 'buffering' | 'playing' | 'paused' | 'idle';
36
+ };
37
+ }
38
+ type DashEngineListener<K extends keyof DashEngineEventMap> = (data: DashEngineEventMap[K]) => void;
39
+ export declare class DashEngine {
40
+ private player;
41
+ private readonly videoElement;
42
+ private readonly config;
43
+ private readonly listeners;
44
+ private destroyed;
45
+ private activeSubtitleLanguage;
46
+ private readonly onPlaying;
47
+ private readonly onPause;
48
+ private readonly onWaiting;
49
+ constructor(videoElement: HTMLVideoElement, config?: DashEngineConfig);
50
+ /**
51
+ * DASH manifestini yükle ve oynatmayı hazırla.
52
+ */
53
+ load(url: string): Promise<void>;
54
+ private applyDrmConfig;
55
+ private setupDashListeners;
56
+ /** Video element native olaylarına abone ol */
57
+ private attachVideoListeners;
58
+ /** Video element native olaylarından ayrıl */
59
+ private detachVideoListeners;
60
+ /**
61
+ * Tüm kalite seviyelerini döndür. İlk eleman her zaman "Auto" seviyesidir.
62
+ */
63
+ getQualities(): QualityLevel[];
64
+ /**
65
+ * Aktif kalite seviyesini döndür.
66
+ */
67
+ getCurrentQuality(): QualityLevel | null;
68
+ /**
69
+ * Manuel kalite seçimi.
70
+ * qualityId: representation index'i string olarak ("0", "1", "2" gibi).
71
+ * "auto" geçilirse ABR aktifleşir.
72
+ */
73
+ setQuality(qualityId: string): void;
74
+ /**
75
+ * ABR (Adaptive Bitrate) modunu etkinleştir.
76
+ */
77
+ enableAutoQuality(): void;
78
+ /**
79
+ * Manifest'teki tüm ses izlerini döndür.
80
+ */
81
+ getAudioTracks(): Array<{
82
+ id: string;
83
+ label: string;
84
+ language: string;
85
+ }>;
86
+ /**
87
+ * Aktif ses izi ID'sini döndür.
88
+ */
89
+ getActiveAudioTrackId(): string;
90
+ /**
91
+ * Ses izini değiştir (dublaj seçimi).
92
+ * trackId: ses izi index'i string olarak.
93
+ */
94
+ setAudioTrack(trackId: string): void;
95
+ /**
96
+ * Manifest'teki tüm altyazı izlerini döndür.
97
+ */
98
+ getSubtitleTracks(): Array<{
99
+ language: string;
100
+ label: string;
101
+ url: string;
102
+ }>;
103
+ /**
104
+ * Altyazı izini değiştir. null → altyazıyı kapat.
105
+ */
106
+ setSubtitleTrack(language: string | null): Promise<void>;
107
+ /**
108
+ * Aktif altyazı dilini döndür (veya null).
109
+ */
110
+ getActiveSubtitleLanguage(): string | null;
111
+ /**
112
+ * CEA-608/708 altyazı overlay bağla. dashjs kendi textTracks API'sini kullanır.
113
+ */
114
+ attachCaptions(_container: HTMLElement): void;
115
+ /**
116
+ * WebVTT / TTML altyazı overlay bağla.
117
+ */
118
+ attachSubtitles(_container: HTMLElement): void;
119
+ /**
120
+ * Stream canlı (LIVE) mı?
121
+ */
122
+ isLiveStream(): boolean;
123
+ /**
124
+ * Live edge zamanını saniye cinsinden döndür.
125
+ */
126
+ getLiveEdgeTime(): number;
127
+ /**
128
+ * Canlı yayın kenarına atla (en düşük gecikme).
129
+ */
130
+ seekToLiveEdge(): void;
131
+ /**
132
+ * DVR aralığını döndür. VOD veya DVR yoksa null.
133
+ */
134
+ getDVRRange(): {
135
+ start: number;
136
+ end: number;
137
+ } | null;
138
+ on<K extends keyof DashEngineEventMap>(event: K, callback: DashEngineListener<K>): void;
139
+ off<K extends keyof DashEngineEventMap>(event: K, callback: DashEngineListener<K>): void;
140
+ private emit;
141
+ /** dashjs Representation → QualityLevel dönüşümü */
142
+ private mapRepresentationToQuality;
143
+ /**
144
+ * DASH engine'i tamamen temizle. Tüm olayları ve referansları kaldır.
145
+ */
146
+ destroy(): Promise<void>;
147
+ }
148
+ export {};
149
+ //# sourceMappingURL=DashEngine.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DashEngine.d.ts","sourceRoot":"","sources":["../../../src/core/streaming/DashEngine.ts"],"names":[],"mappings":"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"}