@therealtinhtute/baroiplayer 1.0.6 → 1.0.8

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 (597) hide show
  1. package/dist/index.d.ts +1 -1
  2. package/dist/index.js +1 -7
  3. package/dist/index.mjs +1 -2
  4. package/dist/package.json +1 -1
  5. package/package.json +1 -1
  6. package/dist/context/media.js +0 -2
  7. package/dist/context/media.js.map +0 -1
  8. package/dist/context/media.mjs +0 -15
  9. package/dist/context/media.mjs.map +0 -1
  10. package/dist/context/store.js +0 -2
  11. package/dist/context/store.js.map +0 -1
  12. package/dist/context/store.mjs +0 -5
  13. package/dist/context/store.mjs.map +0 -1
  14. package/dist/context-Af84FynT.js +0 -1179
  15. package/dist/context-Af84FynT.js.map +0 -1
  16. package/dist/context-CwZnPdz0.cjs +0 -23
  17. package/dist/context-CwZnPdz0.cjs.map +0 -1
  18. package/dist/core-events-B5W_j8yU.js +0 -480
  19. package/dist/core-events-B5W_j8yU.js.map +0 -1
  20. package/dist/core-events-CN0-Vhhq.cjs +0 -2
  21. package/dist/core-events-CN0-Vhhq.cjs.map +0 -1
  22. package/dist/core-plugins-Bq9KLany.js +0 -696
  23. package/dist/core-plugins-Bq9KLany.js.map +0 -1
  24. package/dist/core-plugins-CPDSHMiQ.cjs +0 -2
  25. package/dist/core-plugins-CPDSHMiQ.cjs.map +0 -1
  26. package/dist/core.js +0 -37
  27. package/dist/core.js.map +0 -1
  28. package/dist/core.mjs +0 -1217
  29. package/dist/core.mjs.map +0 -1
  30. package/dist/enhanced-components-CXnYiOt6.cjs +0 -2
  31. package/dist/enhanced-components-CXnYiOt6.cjs.map +0 -1
  32. package/dist/enhanced-components-Da0TSvKe.js +0 -1073
  33. package/dist/enhanced-components-Da0TSvKe.js.map +0 -1
  34. package/dist/hooks-BCMilGRf.cjs +0 -4
  35. package/dist/hooks-BCMilGRf.cjs.map +0 -1
  36. package/dist/hooks-BPtHV1ZT.js +0 -2042
  37. package/dist/hooks-BPtHV1ZT.js.map +0 -1
  38. package/dist/index.js.map +0 -1
  39. package/dist/index.mjs.map +0 -1
  40. package/dist/minimal-components-BHJMuaL7.cjs +0 -2
  41. package/dist/minimal-components-BHJMuaL7.cjs.map +0 -1
  42. package/dist/minimal-components-BmqRefl1.js +0 -2002
  43. package/dist/minimal-components-BmqRefl1.js.map +0 -1
  44. package/dist/mona-loading.gif +0 -0
  45. package/dist/performance-monitor--rzKTlbj.js +0 -302
  46. package/dist/performance-monitor--rzKTlbj.js.map +0 -1
  47. package/dist/performance-monitor-cjIvZE2D.cjs +0 -2
  48. package/dist/performance-monitor-cjIvZE2D.cjs.map +0 -1
  49. package/dist/src/adapters/videojs-adapter.d.ts.map +0 -1
  50. package/dist/src/adapters/videojs-adapter.js +0 -350
  51. package/dist/src/assets/mona-loading.gif +0 -0
  52. package/dist/src/components/AnimateLoading.d.ts.map +0 -1
  53. package/dist/src/components/AnimateLoading.js +0 -41
  54. package/dist/src/components/LoadingState.d.ts.map +0 -1
  55. package/dist/src/components/LoadingState.js +0 -111
  56. package/dist/src/components/accessibility/keyboard-help-overlay.d.ts.map +0 -1
  57. package/dist/src/components/accessibility/keyboard-help-overlay.js +0 -90
  58. package/dist/src/components/audio-player.d.ts.map +0 -1
  59. package/dist/src/components/audio-player.js +0 -31
  60. package/dist/src/components/basic/index.d.ts.map +0 -1
  61. package/dist/src/components/basic/index.js +0 -29
  62. package/dist/src/components/enhanced/advanced-features.d.ts.map +0 -1
  63. package/dist/src/components/enhanced/advanced-features.js +0 -64
  64. package/dist/src/components/enhanced/debug-panel.d.ts.map +0 -1
  65. package/dist/src/components/enhanced/debug-panel.js +0 -94
  66. package/dist/src/components/enhanced/enhanced-controls.d.ts.map +0 -1
  67. package/dist/src/components/enhanced/enhanced-controls.js +0 -233
  68. package/dist/src/components/enhanced/enhanced-media-player.d.ts.map +0 -1
  69. package/dist/src/components/enhanced/enhanced-media-player.js +0 -316
  70. package/dist/src/components/enhanced/error-handling.d.ts.map +0 -1
  71. package/dist/src/components/enhanced/error-handling.js +0 -153
  72. package/dist/src/components/enhanced/index.d.ts.map +0 -1
  73. package/dist/src/components/enhanced/index.js +0 -10
  74. package/dist/src/components/enhanced/media-player-enhanced.d.ts.map +0 -1
  75. package/dist/src/components/enhanced/media-player-enhanced.js +0 -250
  76. package/dist/src/components/examples/basic-video-player.d.ts.map +0 -1
  77. package/dist/src/components/examples/basic-video-player.js +0 -16
  78. package/dist/src/components/examples/custom-controls-example.d.ts.map +0 -1
  79. package/dist/src/components/examples/custom-controls-example.js +0 -12
  80. package/dist/src/components/examples/enhanced-controls-example.d.ts.map +0 -1
  81. package/dist/src/components/examples/enhanced-controls-example.js +0 -18
  82. package/dist/src/components/examples/enhanced-media-player-example.d.ts.map +0 -1
  83. package/dist/src/components/examples/enhanced-media-player-example.js +0 -13
  84. package/dist/src/components/examples/loading-states-demo.d.ts.map +0 -1
  85. package/dist/src/components/examples/loading-states-demo.js +0 -41
  86. package/dist/src/components/examples/react-19-demo.d.ts.map +0 -1
  87. package/dist/src/components/examples/react-19-demo.js +0 -104
  88. package/dist/src/components/examples/volume-orientation-demo.d.ts.map +0 -1
  89. package/dist/src/components/examples/volume-orientation-demo.js +0 -31
  90. package/dist/src/components/icon-demo.d.ts.map +0 -1
  91. package/dist/src/components/icon-demo.js +0 -16
  92. package/dist/src/components/icons/index.d.ts.map +0 -1
  93. package/dist/src/components/icons/index.js +0 -59
  94. package/dist/src/components/icons/svg-icons/ArrowLeftIcon.d.ts.map +0 -1
  95. package/dist/src/components/icons/svg-icons/ArrowLeftIcon.js +0 -3
  96. package/dist/src/components/icons/svg-icons/ArrowRightIcon.d.ts.map +0 -1
  97. package/dist/src/components/icons/svg-icons/ArrowRightIcon.js +0 -3
  98. package/dist/src/components/icons/svg-icons/AudioIcon.d.ts.map +0 -1
  99. package/dist/src/components/icons/svg-icons/AudioIcon.js +0 -4
  100. package/dist/src/components/icons/svg-icons/BackwardIcon.d.ts.map +0 -1
  101. package/dist/src/components/icons/svg-icons/BackwardIcon.js +0 -3
  102. package/dist/src/components/icons/svg-icons/CameraIcon.d.ts.map +0 -1
  103. package/dist/src/components/icons/svg-icons/CameraIcon.js +0 -4
  104. package/dist/src/components/icons/svg-icons/CheckIcon.d.ts.map +0 -1
  105. package/dist/src/components/icons/svg-icons/CheckIcon.js +0 -4
  106. package/dist/src/components/icons/svg-icons/EnablePiPIcon.d.ts.map +0 -1
  107. package/dist/src/components/icons/svg-icons/EnablePiPIcon.js +0 -5
  108. package/dist/src/components/icons/svg-icons/ForwardIcon.d.ts.map +0 -1
  109. package/dist/src/components/icons/svg-icons/ForwardIcon.js +0 -3
  110. package/dist/src/components/icons/svg-icons/FullscreenEnterIcon.d.ts.map +0 -1
  111. package/dist/src/components/icons/svg-icons/FullscreenEnterIcon.js +0 -3
  112. package/dist/src/components/icons/svg-icons/FullscreenExitIcon.d.ts.map +0 -1
  113. package/dist/src/components/icons/svg-icons/FullscreenExitIcon.js +0 -3
  114. package/dist/src/components/icons/svg-icons/LoadingIcon.d.ts.map +0 -1
  115. package/dist/src/components/icons/svg-icons/LoadingIcon.js +0 -3
  116. package/dist/src/components/icons/svg-icons/PauseIcon.d.ts.map +0 -1
  117. package/dist/src/components/icons/svg-icons/PauseIcon.js +0 -3
  118. package/dist/src/components/icons/svg-icons/PlayIcon.d.ts.map +0 -1
  119. package/dist/src/components/icons/svg-icons/PlayIcon.js +0 -3
  120. package/dist/src/components/icons/svg-icons/PlaybackSpeedIcon.d.ts.map +0 -1
  121. package/dist/src/components/icons/svg-icons/PlaybackSpeedIcon.js +0 -3
  122. package/dist/src/components/icons/svg-icons/QualityIcon.d.ts.map +0 -1
  123. package/dist/src/components/icons/svg-icons/QualityIcon.js +0 -3
  124. package/dist/src/components/icons/svg-icons/SettingsIcon.d.ts.map +0 -1
  125. package/dist/src/components/icons/svg-icons/SettingsIcon.js +0 -3
  126. package/dist/src/components/icons/svg-icons/SliderIcon.d.ts.map +0 -1
  127. package/dist/src/components/icons/svg-icons/SliderIcon.js +0 -3
  128. package/dist/src/components/icons/svg-icons/SubtitleIcon.d.ts.map +0 -1
  129. package/dist/src/components/icons/svg-icons/SubtitleIcon.js +0 -3
  130. package/dist/src/components/icons/svg-icons/SubtitleOffIcon.d.ts.map +0 -1
  131. package/dist/src/components/icons/svg-icons/SubtitleOffIcon.js +0 -3
  132. package/dist/src/components/icons/svg-icons/UnPiPIcon.d.ts.map +0 -1
  133. package/dist/src/components/icons/svg-icons/UnPiPIcon.js +0 -5
  134. package/dist/src/components/icons/svg-icons/VolumeMutedIcon.d.ts.map +0 -1
  135. package/dist/src/components/icons/svg-icons/VolumeMutedIcon.js +0 -3
  136. package/dist/src/components/icons/svg-icons/VolumeOneIcon.d.ts.map +0 -1
  137. package/dist/src/components/icons/svg-icons/VolumeOneIcon.js +0 -3
  138. package/dist/src/components/icons/svg-icons/VolumeThreeIcon.d.ts.map +0 -1
  139. package/dist/src/components/icons/svg-icons/VolumeThreeIcon.js +0 -3
  140. package/dist/src/components/icons/svg-icons/VolumeTwoIcon.d.ts.map +0 -1
  141. package/dist/src/components/icons/svg-icons/VolumeTwoIcon.js +0 -3
  142. package/dist/src/components/legacy.d.ts.map +0 -1
  143. package/dist/src/components/legacy.js +0 -52
  144. package/dist/src/components/media-metadata-display.d.ts.map +0 -1
  145. package/dist/src/components/media-metadata-display.js +0 -20
  146. package/dist/src/components/media-player-audio.d.ts.map +0 -1
  147. package/dist/src/components/media-player-audio.js +0 -18
  148. package/dist/src/components/media-player-controls.d.ts.map +0 -1
  149. package/dist/src/components/media-player-controls.js +0 -150
  150. package/dist/src/components/media-player-error.d.ts.map +0 -1
  151. package/dist/src/components/media-player-error.js +0 -85
  152. package/dist/src/components/media-player-fullscreen.d.ts.map +0 -1
  153. package/dist/src/components/media-player-fullscreen.js +0 -68
  154. package/dist/src/components/media-player-hls.d.ts.map +0 -1
  155. package/dist/src/components/media-player-hls.js +0 -20
  156. package/dist/src/components/media-player-loading.d.ts.map +0 -1
  157. package/dist/src/components/media-player-loading.js +0 -53
  158. package/dist/src/components/media-player-play.d.ts.map +0 -1
  159. package/dist/src/components/media-player-play.js +0 -44
  160. package/dist/src/components/media-player-root.d.ts.map +0 -1
  161. package/dist/src/components/media-player-root.js +0 -243
  162. package/dist/src/components/media-player-seek.d.ts.map +0 -1
  163. package/dist/src/components/media-player-seek.js +0 -92
  164. package/dist/src/components/media-player-time.d.ts.map +0 -1
  165. package/dist/src/components/media-player-time.js +0 -57
  166. package/dist/src/components/media-player-tooltip.d.ts.map +0 -1
  167. package/dist/src/components/media-player-tooltip.js +0 -14
  168. package/dist/src/components/media-player-video.d.ts.map +0 -1
  169. package/dist/src/components/media-player-video.js +0 -18
  170. package/dist/src/components/media-player-volume.d.ts.map +0 -1
  171. package/dist/src/components/media-player-volume.js +0 -88
  172. package/dist/src/components/media-player.d.ts.map +0 -1
  173. package/dist/src/components/media-player.js +0 -67
  174. package/dist/src/components/media-suspense.d.ts.map +0 -1
  175. package/dist/src/components/media-suspense.js +0 -173
  176. package/dist/src/components/player-settings-form.d.ts.map +0 -1
  177. package/dist/src/components/player-settings-form.js +0 -46
  178. package/dist/src/components/react-player-wrapper.d.ts.map +0 -1
  179. package/dist/src/components/react-player-wrapper.js +0 -163
  180. package/dist/src/components/simple-video-player.d.ts.map +0 -1
  181. package/dist/src/components/simple-video-player.js +0 -41
  182. package/dist/src/components/ui/enhanced-seek-bar.d.ts.map +0 -1
  183. package/dist/src/components/ui/enhanced-seek-bar.js +0 -112
  184. package/dist/src/components/ui/fullscreen-button.d.ts.map +0 -1
  185. package/dist/src/components/ui/fullscreen-button.js +0 -21
  186. package/dist/src/components/ui/media-resource-preloader.d.ts.map +0 -1
  187. package/dist/src/components/ui/media-resource-preloader.js +0 -295
  188. package/dist/src/components/ui/play-button.d.ts.map +0 -1
  189. package/dist/src/components/ui/play-button.js +0 -26
  190. package/dist/src/components/ui/seek-bar.d.ts.map +0 -1
  191. package/dist/src/components/ui/seek-bar.js +0 -54
  192. package/dist/src/components/ui/time-display.d.ts.map +0 -1
  193. package/dist/src/components/ui/time-display.js +0 -18
  194. package/dist/src/components/ui/volume-control.d.ts.map +0 -1
  195. package/dist/src/components/ui/volume-control.js +0 -71
  196. package/dist/src/components/unified/base-media-player.d.ts.map +0 -1
  197. package/dist/src/components/unified/base-media-player.js +0 -104
  198. package/dist/src/components/unified/media-player.d.ts.map +0 -1
  199. package/dist/src/components/unified/media-player.js +0 -41
  200. package/dist/src/components/variants/minimal/AccessibleMinimalPlayer.d.ts.map +0 -1
  201. package/dist/src/components/variants/minimal/AccessibleMinimalPlayer.js +0 -322
  202. package/dist/src/components/variants/minimal/EnhancedMinimalMediaPlayer.d.ts.map +0 -1
  203. package/dist/src/components/variants/minimal/EnhancedMinimalMediaPlayer.js +0 -280
  204. package/dist/src/components/variants/minimal/MinimalControls.d.ts.map +0 -1
  205. package/dist/src/components/variants/minimal/MinimalControls.js +0 -19
  206. package/dist/src/components/variants/minimal/MinimalLoading.d.ts.map +0 -1
  207. package/dist/src/components/variants/minimal/MinimalLoading.js +0 -6
  208. package/dist/src/components/variants/minimal/MinimalMediaPlayer.d.ts.map +0 -1
  209. package/dist/src/components/variants/minimal/MinimalMediaPlayer.js +0 -135
  210. package/dist/src/components/variants/minimal/MinimalOverlay.d.ts.map +0 -1
  211. package/dist/src/components/variants/minimal/MinimalOverlay.js +0 -15
  212. package/dist/src/components/variants/minimal/MinimalPlayButton.d.ts.map +0 -1
  213. package/dist/src/components/variants/minimal/MinimalPlayButton.js +0 -29
  214. package/dist/src/components/variants/minimal/MinimalSeekBar.d.ts.map +0 -1
  215. package/dist/src/components/variants/minimal/MinimalSeekBar.js +0 -73
  216. package/dist/src/components/variants/minimal/MinimalVolumeControl.d.ts.map +0 -1
  217. package/dist/src/components/variants/minimal/MinimalVolumeControl.js +0 -29
  218. package/dist/src/components/variants/minimal/SimpleMinimalPlayer.d.ts.map +0 -1
  219. package/dist/src/components/variants/minimal/SimpleMinimalPlayer.js +0 -51
  220. package/dist/src/components/variants/minimal/components/CenterPlayButton.d.ts.map +0 -1
  221. package/dist/src/components/variants/minimal/components/CenterPlayButton.js +0 -8
  222. package/dist/src/components/variants/minimal/components/ControlBar.d.ts.map +0 -1
  223. package/dist/src/components/variants/minimal/components/ControlBar.js +0 -10
  224. package/dist/src/components/variants/minimal/components/EnhancedSettingsMenu.d.ts.map +0 -1
  225. package/dist/src/components/variants/minimal/components/EnhancedSettingsMenu.js +0 -68
  226. package/dist/src/components/variants/minimal/components/PlaybackControls.d.ts.map +0 -1
  227. package/dist/src/components/variants/minimal/components/PlaybackControls.js +0 -9
  228. package/dist/src/components/variants/minimal/components/RightControls.d.ts.map +0 -1
  229. package/dist/src/components/variants/minimal/components/RightControls.js +0 -40
  230. package/dist/src/components/variants/minimal/components/SeekBar.d.ts.map +0 -1
  231. package/dist/src/components/variants/minimal/components/SeekBar.js +0 -43
  232. package/dist/src/components/variants/minimal/components/SettingsDropdown.d.ts.map +0 -1
  233. package/dist/src/components/variants/minimal/components/SettingsDropdown.js +0 -18
  234. package/dist/src/components/variants/minimal/components/SubtitleDisplay.d.ts.map +0 -1
  235. package/dist/src/components/variants/minimal/components/SubtitleDisplay.js +0 -6
  236. package/dist/src/components/variants/minimal/components/TimeDisplay.d.ts.map +0 -1
  237. package/dist/src/components/variants/minimal/components/TimeDisplay.js +0 -5
  238. package/dist/src/components/variants/minimal/components/VideoElement.d.ts.map +0 -1
  239. package/dist/src/components/variants/minimal/components/VideoElement.js +0 -4
  240. package/dist/src/components/variants/minimal/components/VolumeControl.d.ts.map +0 -1
  241. package/dist/src/components/variants/minimal/components/VolumeControl.js +0 -99
  242. package/dist/src/components/variants/minimal/index.d.ts.map +0 -1
  243. package/dist/src/components/variants/minimal/index.js +0 -8
  244. package/dist/src/components/video-player.d.ts.map +0 -1
  245. package/dist/src/components/video-player.js +0 -38
  246. package/dist/src/context/error-handling.d.ts.map +0 -1
  247. package/dist/src/context/error-handling.js +0 -300
  248. package/dist/src/context/media-context.d.ts.map +0 -1
  249. package/dist/src/context/media-context.js +0 -121
  250. package/dist/src/context/media-provider.d.ts.map +0 -1
  251. package/dist/src/context/media-provider.js +0 -164
  252. package/dist/src/context/media-store.d.ts.map +0 -1
  253. package/dist/src/context/media-store.js +0 -273
  254. package/dist/src/context/persistence.d.ts.map +0 -1
  255. package/dist/src/context/persistence.js +0 -356
  256. package/dist/src/core/events/event-system.d.ts.map +0 -1
  257. package/dist/src/core/events/event-system.js +0 -288
  258. package/dist/src/core/events/hooks.d.ts.map +0 -1
  259. package/dist/src/core/events/hooks.js +0 -198
  260. package/dist/src/core/events/index.d.ts.map +0 -1
  261. package/dist/src/core/events/index.js +0 -7
  262. package/dist/src/core/events/middleware.d.ts.map +0 -1
  263. package/dist/src/core/events/middleware.js +0 -219
  264. package/dist/src/core/index.d.ts.map +0 -1
  265. package/dist/src/core/index.js +0 -15
  266. package/dist/src/core/optimization/bundle-optimizer.d.ts.map +0 -1
  267. package/dist/src/core/optimization/bundle-optimizer.js +0 -217
  268. package/dist/src/core/performance/cicd.d.ts.map +0 -1
  269. package/dist/src/core/performance/cicd.js +0 -83
  270. package/dist/src/core/performance/index.d.ts.map +0 -1
  271. package/dist/src/core/performance/index.js +0 -14
  272. package/dist/src/core/performance/media-loading-optimizer.d.ts.map +0 -1
  273. package/dist/src/core/performance/media-loading-optimizer.js +0 -404
  274. package/dist/src/core/performance/performance-budgets.d.ts.map +0 -1
  275. package/dist/src/core/performance/performance-budgets.js +0 -326
  276. package/dist/src/core/performance/performance-monitor.d.ts.map +0 -1
  277. package/dist/src/core/performance/performance-monitor.js +0 -297
  278. package/dist/src/core/performance/performance-testing.d.ts.map +0 -1
  279. package/dist/src/core/performance/performance-testing.js +0 -314
  280. package/dist/src/core/plugins/base-plugin.d.ts.map +0 -1
  281. package/dist/src/core/plugins/base-plugin.js +0 -151
  282. package/dist/src/core/plugins/enhanced-plugin-system.d.ts.map +0 -1
  283. package/dist/src/core/plugins/enhanced-plugin-system.js +0 -305
  284. package/dist/src/core/plugins/examples/analytics-plugin.d.ts.map +0 -1
  285. package/dist/src/core/plugins/examples/analytics-plugin.js +0 -191
  286. package/dist/src/core/plugins/index.d.ts.map +0 -1
  287. package/dist/src/core/plugins/index.js +0 -9
  288. package/dist/src/core/plugins/registry.d.ts.map +0 -1
  289. package/dist/src/core/plugins/registry.js +0 -261
  290. package/dist/src/core/plugins/types.d.ts.map +0 -1
  291. package/dist/src/core/plugins/types.js +0 -31
  292. package/dist/src/core/plugins/utils.d.ts.map +0 -1
  293. package/dist/src/core/plugins/utils.js +0 -274
  294. package/dist/src/core/progressive-loading.d.ts.map +0 -1
  295. package/dist/src/core/progressive-loading.js +0 -239
  296. package/dist/src/core/providers/enhanced-hls-provider.d.ts.map +0 -1
  297. package/dist/src/core/providers/enhanced-hls-provider.js +0 -273
  298. package/dist/src/core/providers/service-provider.d.ts.map +0 -1
  299. package/dist/src/core/providers/service-provider.js +0 -105
  300. package/dist/src/core/utils.d.ts.map +0 -1
  301. package/dist/src/core/utils.js +0 -21
  302. package/dist/src/features/media-session/media-session-manager.d.ts.map +0 -1
  303. package/dist/src/features/media-session/media-session-manager.js +0 -331
  304. package/dist/src/features/picture-in-picture/pip-manager.d.ts.map +0 -1
  305. package/dist/src/features/picture-in-picture/pip-manager.js +0 -353
  306. package/dist/src/features/playlist/playlist-manager.d.ts.map +0 -1
  307. package/dist/src/features/playlist/playlist-manager.js +0 -475
  308. package/dist/src/features/subtitles/subtitle-manager.d.ts.map +0 -1
  309. package/dist/src/features/subtitles/subtitle-manager.js +0 -335
  310. package/dist/src/features/subtitles/subtitle-parser.d.ts.map +0 -1
  311. package/dist/src/features/subtitles/subtitle-parser.js +0 -217
  312. package/dist/src/features/thumbnails/thumbnail-generator.d.ts.map +0 -1
  313. package/dist/src/features/thumbnails/thumbnail-generator.js +0 -388
  314. package/dist/src/hooks/accessibility/index.d.ts.map +0 -1
  315. package/dist/src/hooks/accessibility/index.js +0 -4
  316. package/dist/src/hooks/accessibility/use-accessibility-preferences.d.ts.map +0 -1
  317. package/dist/src/hooks/accessibility/use-accessibility-preferences.js +0 -156
  318. package/dist/src/hooks/accessibility/use-focus-management.d.ts.map +0 -1
  319. package/dist/src/hooks/accessibility/use-focus-management.js +0 -142
  320. package/dist/src/hooks/accessibility/use-keyboard-shortcuts.d.ts.map +0 -1
  321. package/dist/src/hooks/accessibility/use-keyboard-shortcuts.js +0 -101
  322. package/dist/src/hooks/accessibility/use-screen-reader.d.ts.map +0 -1
  323. package/dist/src/hooks/accessibility/use-screen-reader.js +0 -148
  324. package/dist/src/hooks/core/index.d.ts.map +0 -1
  325. package/dist/src/hooks/core/index.js +0 -19
  326. package/dist/src/hooks/legacy.d.ts.map +0 -1
  327. package/dist/src/hooks/legacy.js +0 -17
  328. package/dist/src/hooks/use-enhanced-media-player.d.ts.map +0 -1
  329. package/dist/src/hooks/use-enhanced-media-player.js +0 -395
  330. package/dist/src/hooks/use-intelligent-preloading.d.ts.map +0 -1
  331. package/dist/src/hooks/use-intelligent-preloading.js +0 -258
  332. package/dist/src/hooks/use-keyboard-controls.d.ts.map +0 -1
  333. package/dist/src/hooks/use-keyboard-controls.js +0 -83
  334. package/dist/src/hooks/use-media-actions.d.ts.map +0 -1
  335. package/dist/src/hooks/use-media-actions.js +0 -121
  336. package/dist/src/hooks/use-media-metadata.d.ts.map +0 -1
  337. package/dist/src/hooks/use-media-metadata.js +0 -74
  338. package/dist/src/hooks/use-media-optimistic.d.ts.map +0 -1
  339. package/dist/src/hooks/use-media-optimistic.js +0 -205
  340. package/dist/src/hooks/use-media-player.d.ts.map +0 -1
  341. package/dist/src/hooks/use-media-player.js +0 -251
  342. package/dist/src/hooks/use-media-state.d.ts.map +0 -1
  343. package/dist/src/hooks/use-media-state.js +0 -162
  344. package/dist/src/hooks/use-memory-optimization.d.ts.map +0 -1
  345. package/dist/src/hooks/use-memory-optimization.js +0 -288
  346. package/dist/src/hooks/use-optimistic-controls.d.ts.map +0 -1
  347. package/dist/src/hooks/use-optimistic-controls.js +0 -60
  348. package/dist/src/hooks/use-optimized-media.d.ts.map +0 -1
  349. package/dist/src/hooks/use-optimized-media.js +0 -211
  350. package/dist/src/hooks/use-touch-gestures.d.ts.map +0 -1
  351. package/dist/src/hooks/use-touch-gestures.js +0 -289
  352. package/dist/src/hooks/useEnhancedSubtitles.d.ts.map +0 -1
  353. package/dist/src/hooks/useEnhancedSubtitles.js +0 -205
  354. package/dist/src/hooks/useKeyboardShortcuts.d.ts.map +0 -1
  355. package/dist/src/hooks/useKeyboardShortcuts.js +0 -59
  356. package/dist/src/hooks/useMediaControls.d.ts.map +0 -1
  357. package/dist/src/hooks/useMediaControls.js +0 -44
  358. package/dist/src/hooks/useScreenshot.d.ts.map +0 -1
  359. package/dist/src/hooks/useScreenshot.js +0 -56
  360. package/dist/src/hooks/useSubtitles.d.ts.map +0 -1
  361. package/dist/src/hooks/useSubtitles.js +0 -73
  362. package/dist/src/hooks/useVideoPlayer.d.ts.map +0 -1
  363. package/dist/src/hooks/useVideoPlayer.js +0 -184
  364. package/dist/src/icons/components/FullscreenIcon.d.ts.map +0 -1
  365. package/dist/src/icons/components/FullscreenIcon.js +0 -11
  366. package/dist/src/icons/components/SettingsIcon.d.ts.map +0 -1
  367. package/dist/src/icons/components/SettingsIcon.js +0 -11
  368. package/dist/src/icons/components/animated/LoadingIcon.d.ts.map +0 -1
  369. package/dist/src/icons/components/animated/LoadingIcon.js +0 -11
  370. package/dist/src/icons/components/animated/PlayPauseIcon.d.ts.map +0 -1
  371. package/dist/src/icons/components/animated/PlayPauseIcon.js +0 -9
  372. package/dist/src/icons/components/media/PauseIcon.d.ts.map +0 -1
  373. package/dist/src/icons/components/media/PauseIcon.js +0 -12
  374. package/dist/src/icons/components/media/PlayIcon.d.ts.map +0 -1
  375. package/dist/src/icons/components/media/PlayIcon.js +0 -12
  376. package/dist/src/icons/components/volume/VolumeIcon.d.ts.map +0 -1
  377. package/dist/src/icons/components/volume/VolumeIcon.js +0 -11
  378. package/dist/src/icons/components/volume/VolumeOffIcon.d.ts.map +0 -1
  379. package/dist/src/icons/components/volume/VolumeOffIcon.js +0 -11
  380. package/dist/src/icons/index.d.ts.map +0 -1
  381. package/dist/src/icons/index.js +0 -45
  382. package/dist/src/icons/provider.d.ts.map +0 -1
  383. package/dist/src/icons/provider.js +0 -37
  384. package/dist/src/icons/types.d.ts.map +0 -1
  385. package/dist/src/icons/types.js +0 -1
  386. package/dist/src/index-enhanced.d.ts.map +0 -1
  387. package/dist/src/index-enhanced.js +0 -16
  388. package/dist/src/index-legacy.d.ts.map +0 -1
  389. package/dist/src/index-legacy.js +0 -97
  390. package/dist/src/index.d.ts.map +0 -1
  391. package/dist/src/index.js +0 -90
  392. package/dist/src/index.minimal.d.ts.map +0 -1
  393. package/dist/src/index.minimal.js +0 -3
  394. package/dist/src/lib/deprecation.d.ts.map +0 -1
  395. package/dist/src/lib/deprecation.js +0 -31
  396. package/dist/src/lib/format-time.d.ts.map +0 -1
  397. package/dist/src/lib/format-time.js +0 -32
  398. package/dist/src/lib/index.d.ts.map +0 -1
  399. package/dist/src/lib/index.js +0 -3
  400. package/dist/src/lib/utils.d.ts.map +0 -1
  401. package/dist/src/lib/utils.js +0 -5
  402. package/dist/src/test/setup.d.ts.map +0 -1
  403. package/dist/src/test/setup.js +0 -65
  404. package/dist/src/types/events.d.ts.map +0 -1
  405. package/dist/src/types/events.js +0 -2
  406. package/dist/src/types/formats.d.ts.map +0 -1
  407. package/dist/src/types/formats.js +0 -63
  408. package/dist/src/types/index.d.ts.map +0 -1
  409. package/dist/src/types/index.js +0 -4
  410. package/dist/utils-Db13763z.cjs +0 -9
  411. package/dist/utils-Db13763z.cjs.map +0 -1
  412. package/dist/utils-nTO4AnHo.js +0 -2809
  413. package/dist/utils-nTO4AnHo.js.map +0 -1
  414. package/dist/utils.js +0 -2
  415. package/dist/utils.js.map +0 -1
  416. package/dist/utils.mjs +0 -7
  417. package/dist/utils.mjs.map +0 -1
  418. package/src/adapters/videojs-adapter.js +0 -350
  419. package/src/components/AnimateLoading.js +0 -41
  420. package/src/components/LoadingState.js +0 -111
  421. package/src/components/accessibility/keyboard-help-overlay.js +0 -90
  422. package/src/components/audio-player.js +0 -31
  423. package/src/components/basic/index.js +0 -29
  424. package/src/components/enhanced/advanced-features.js +0 -64
  425. package/src/components/enhanced/debug-panel.js +0 -94
  426. package/src/components/enhanced/enhanced-controls.js +0 -233
  427. package/src/components/enhanced/enhanced-media-player.js +0 -316
  428. package/src/components/enhanced/error-handling.js +0 -153
  429. package/src/components/enhanced/index.js +0 -10
  430. package/src/components/enhanced/media-player-enhanced.js +0 -250
  431. package/src/components/examples/basic-video-player.js +0 -16
  432. package/src/components/examples/custom-controls-example.js +0 -12
  433. package/src/components/examples/enhanced-controls-example.js +0 -18
  434. package/src/components/examples/enhanced-media-player-example.js +0 -13
  435. package/src/components/examples/loading-states-demo.js +0 -41
  436. package/src/components/examples/react-19-demo.js +0 -104
  437. package/src/components/examples/volume-orientation-demo.js +0 -31
  438. package/src/components/icon-demo.js +0 -16
  439. package/src/components/icons/index.js +0 -59
  440. package/src/components/icons/svg-icons/ArrowLeftIcon.js +0 -3
  441. package/src/components/icons/svg-icons/ArrowRightIcon.js +0 -3
  442. package/src/components/icons/svg-icons/AudioIcon.js +0 -4
  443. package/src/components/icons/svg-icons/BackwardIcon.js +0 -3
  444. package/src/components/icons/svg-icons/CameraIcon.js +0 -4
  445. package/src/components/icons/svg-icons/CheckIcon.js +0 -4
  446. package/src/components/icons/svg-icons/EnablePiPIcon.js +0 -5
  447. package/src/components/icons/svg-icons/ForwardIcon.js +0 -3
  448. package/src/components/icons/svg-icons/FullscreenEnterIcon.js +0 -3
  449. package/src/components/icons/svg-icons/FullscreenExitIcon.js +0 -3
  450. package/src/components/icons/svg-icons/LoadingIcon.js +0 -3
  451. package/src/components/icons/svg-icons/PauseIcon.js +0 -3
  452. package/src/components/icons/svg-icons/PlayIcon.js +0 -3
  453. package/src/components/icons/svg-icons/PlaybackSpeedIcon.js +0 -3
  454. package/src/components/icons/svg-icons/QualityIcon.js +0 -3
  455. package/src/components/icons/svg-icons/SettingsIcon.js +0 -3
  456. package/src/components/icons/svg-icons/SliderIcon.js +0 -3
  457. package/src/components/icons/svg-icons/SubtitleIcon.js +0 -3
  458. package/src/components/icons/svg-icons/SubtitleOffIcon.js +0 -3
  459. package/src/components/icons/svg-icons/UnPiPIcon.js +0 -5
  460. package/src/components/icons/svg-icons/VolumeMutedIcon.js +0 -3
  461. package/src/components/icons/svg-icons/VolumeOneIcon.js +0 -3
  462. package/src/components/icons/svg-icons/VolumeThreeIcon.js +0 -3
  463. package/src/components/icons/svg-icons/VolumeTwoIcon.js +0 -3
  464. package/src/components/legacy.js +0 -52
  465. package/src/components/media-metadata-display.js +0 -20
  466. package/src/components/media-player-audio.js +0 -18
  467. package/src/components/media-player-controls.js +0 -150
  468. package/src/components/media-player-error.js +0 -85
  469. package/src/components/media-player-fullscreen.js +0 -68
  470. package/src/components/media-player-hls.js +0 -20
  471. package/src/components/media-player-loading.js +0 -53
  472. package/src/components/media-player-play.js +0 -44
  473. package/src/components/media-player-root.js +0 -243
  474. package/src/components/media-player-seek.js +0 -92
  475. package/src/components/media-player-time.js +0 -57
  476. package/src/components/media-player-tooltip.js +0 -14
  477. package/src/components/media-player-video.js +0 -18
  478. package/src/components/media-player-volume.js +0 -88
  479. package/src/components/media-player.js +0 -67
  480. package/src/components/media-suspense.js +0 -173
  481. package/src/components/player-settings-form.js +0 -46
  482. package/src/components/react-player-wrapper.js +0 -163
  483. package/src/components/simple-video-player.js +0 -41
  484. package/src/components/ui/enhanced-seek-bar.js +0 -112
  485. package/src/components/ui/fullscreen-button.js +0 -21
  486. package/src/components/ui/media-resource-preloader.js +0 -295
  487. package/src/components/ui/play-button.js +0 -26
  488. package/src/components/ui/seek-bar.js +0 -54
  489. package/src/components/ui/time-display.js +0 -18
  490. package/src/components/ui/volume-control.js +0 -71
  491. package/src/components/unified/base-media-player.js +0 -104
  492. package/src/components/unified/media-player.js +0 -41
  493. package/src/components/variants/minimal/AccessibleMinimalPlayer.js +0 -322
  494. package/src/components/variants/minimal/EnhancedMinimalMediaPlayer.js +0 -280
  495. package/src/components/variants/minimal/MinimalControls.js +0 -19
  496. package/src/components/variants/minimal/MinimalLoading.js +0 -6
  497. package/src/components/variants/minimal/MinimalMediaPlayer.js +0 -135
  498. package/src/components/variants/minimal/MinimalOverlay.js +0 -15
  499. package/src/components/variants/minimal/MinimalPlayButton.js +0 -29
  500. package/src/components/variants/minimal/MinimalSeekBar.js +0 -73
  501. package/src/components/variants/minimal/MinimalVolumeControl.js +0 -29
  502. package/src/components/variants/minimal/SimpleMinimalPlayer.js +0 -51
  503. package/src/components/variants/minimal/components/CenterPlayButton.js +0 -8
  504. package/src/components/variants/minimal/components/ControlBar.js +0 -10
  505. package/src/components/variants/minimal/components/EnhancedSettingsMenu.js +0 -68
  506. package/src/components/variants/minimal/components/PlaybackControls.js +0 -9
  507. package/src/components/variants/minimal/components/RightControls.js +0 -40
  508. package/src/components/variants/minimal/components/SeekBar.js +0 -43
  509. package/src/components/variants/minimal/components/SettingsDropdown.js +0 -18
  510. package/src/components/variants/minimal/components/SubtitleDisplay.js +0 -6
  511. package/src/components/variants/minimal/components/TimeDisplay.js +0 -5
  512. package/src/components/variants/minimal/components/VideoElement.js +0 -4
  513. package/src/components/variants/minimal/components/VolumeControl.js +0 -99
  514. package/src/components/variants/minimal/index.js +0 -8
  515. package/src/components/video-player.js +0 -38
  516. package/src/context/error-handling.js +0 -300
  517. package/src/context/media-context.js +0 -121
  518. package/src/context/media-provider.js +0 -164
  519. package/src/context/media-store.js +0 -273
  520. package/src/context/persistence.js +0 -356
  521. package/src/core/events/event-system.js +0 -288
  522. package/src/core/events/hooks.js +0 -198
  523. package/src/core/events/index.js +0 -7
  524. package/src/core/events/middleware.js +0 -219
  525. package/src/core/index.js +0 -15
  526. package/src/core/optimization/bundle-optimizer.js +0 -217
  527. package/src/core/performance/cicd.js +0 -83
  528. package/src/core/performance/index.js +0 -14
  529. package/src/core/performance/media-loading-optimizer.js +0 -404
  530. package/src/core/performance/performance-budgets.js +0 -326
  531. package/src/core/performance/performance-monitor.js +0 -297
  532. package/src/core/performance/performance-testing.js +0 -314
  533. package/src/core/plugins/base-plugin.js +0 -151
  534. package/src/core/plugins/enhanced-plugin-system.js +0 -305
  535. package/src/core/plugins/examples/analytics-plugin.js +0 -191
  536. package/src/core/plugins/index.js +0 -9
  537. package/src/core/plugins/registry.js +0 -261
  538. package/src/core/plugins/types.js +0 -31
  539. package/src/core/plugins/utils.js +0 -274
  540. package/src/core/progressive-loading.js +0 -239
  541. package/src/core/providers/enhanced-hls-provider.js +0 -273
  542. package/src/core/providers/service-provider.js +0 -105
  543. package/src/core/utils.js +0 -21
  544. package/src/features/media-session/media-session-manager.js +0 -331
  545. package/src/features/picture-in-picture/pip-manager.js +0 -353
  546. package/src/features/playlist/playlist-manager.js +0 -475
  547. package/src/features/subtitles/subtitle-manager.js +0 -335
  548. package/src/features/subtitles/subtitle-parser.js +0 -217
  549. package/src/features/thumbnails/thumbnail-generator.js +0 -388
  550. package/src/hooks/accessibility/index.js +0 -4
  551. package/src/hooks/accessibility/use-accessibility-preferences.js +0 -156
  552. package/src/hooks/accessibility/use-focus-management.js +0 -142
  553. package/src/hooks/accessibility/use-keyboard-shortcuts.js +0 -101
  554. package/src/hooks/accessibility/use-screen-reader.js +0 -148
  555. package/src/hooks/core/index.js +0 -19
  556. package/src/hooks/legacy.js +0 -17
  557. package/src/hooks/use-enhanced-media-player.js +0 -395
  558. package/src/hooks/use-intelligent-preloading.js +0 -258
  559. package/src/hooks/use-keyboard-controls.js +0 -83
  560. package/src/hooks/use-media-actions.js +0 -121
  561. package/src/hooks/use-media-metadata.js +0 -74
  562. package/src/hooks/use-media-optimistic.js +0 -205
  563. package/src/hooks/use-media-player.js +0 -251
  564. package/src/hooks/use-media-state.js +0 -162
  565. package/src/hooks/use-memory-optimization.js +0 -288
  566. package/src/hooks/use-optimistic-controls.js +0 -60
  567. package/src/hooks/use-optimized-media.js +0 -211
  568. package/src/hooks/use-touch-gestures.js +0 -289
  569. package/src/hooks/useEnhancedSubtitles.js +0 -205
  570. package/src/hooks/useKeyboardShortcuts.js +0 -59
  571. package/src/hooks/useMediaControls.js +0 -44
  572. package/src/hooks/useScreenshot.js +0 -56
  573. package/src/hooks/useSubtitles.js +0 -73
  574. package/src/hooks/useVideoPlayer.js +0 -184
  575. package/src/icons/components/FullscreenIcon.js +0 -11
  576. package/src/icons/components/SettingsIcon.js +0 -11
  577. package/src/icons/components/animated/LoadingIcon.js +0 -11
  578. package/src/icons/components/animated/PlayPauseIcon.js +0 -9
  579. package/src/icons/components/media/PauseIcon.js +0 -12
  580. package/src/icons/components/media/PlayIcon.js +0 -12
  581. package/src/icons/components/volume/VolumeIcon.js +0 -11
  582. package/src/icons/components/volume/VolumeOffIcon.js +0 -11
  583. package/src/icons/index.js +0 -45
  584. package/src/icons/provider.js +0 -37
  585. package/src/icons/types.js +0 -1
  586. package/src/index-enhanced.js +0 -16
  587. package/src/index-legacy.js +0 -97
  588. package/src/index.js +0 -90
  589. package/src/index.minimal.js +0 -3
  590. package/src/lib/deprecation.js +0 -31
  591. package/src/lib/format-time.js +0 -32
  592. package/src/lib/index.js +0 -3
  593. package/src/lib/utils.js +0 -5
  594. package/src/test/setup.js +0 -65
  595. package/src/types/events.js +0 -2
  596. package/src/types/formats.js +0 -63
  597. package/src/types/index.js +0 -4
@@ -1,314 +0,0 @@
1
- import { PerformanceRegressionDetector } from './performance-monitor';
2
- // Performance benchmark suite
3
- export class PerformanceBenchmark {
4
- results = [];
5
- regressionDetector = new PerformanceRegressionDetector();
6
- async runTest(config, testFunction) {
7
- const renderTimes = [];
8
- let memoryBefore = 0;
9
- let memoryAfter = 0;
10
- let error;
11
- try {
12
- // Warmup iterations
13
- for (let i = 0; i < config.warmupIterations; i++) {
14
- await testFunction();
15
- }
16
- // Force garbage collection if available
17
- if (global.gc) {
18
- global.gc();
19
- }
20
- memoryBefore = this.getMemoryUsage();
21
- // Main test iterations
22
- for (let i = 0; i < config.iterations; i++) {
23
- const startTime = performance.now();
24
- await testFunction();
25
- const endTime = performance.now();
26
- renderTimes.push(endTime - startTime);
27
- }
28
- memoryAfter = this.getMemoryUsage();
29
- }
30
- catch (err) {
31
- error = err instanceof Error ? err.message : String(err);
32
- }
33
- const averageRenderTime = renderTimes.reduce((sum, time) => sum + time, 0) / renderTimes.length;
34
- const minRenderTime = Math.min(...renderTimes);
35
- const maxRenderTime = Math.max(...renderTimes);
36
- const memoryUsage = memoryAfter - memoryBefore;
37
- const passed = !error &&
38
- averageRenderTime <= config.expectedThreshold.renderTime &&
39
- memoryUsage <= config.expectedThreshold.memoryUsage;
40
- const result = {
41
- testName: config.name,
42
- passed,
43
- metrics: {
44
- averageRenderTime,
45
- minRenderTime: isFinite(minRenderTime) ? minRenderTime : 0,
46
- maxRenderTime: isFinite(maxRenderTime) ? maxRenderTime : 0,
47
- memoryUsage,
48
- iterations: config.iterations
49
- },
50
- threshold: config.expectedThreshold,
51
- error
52
- };
53
- this.results.push(result);
54
- return result;
55
- }
56
- getMemoryUsage() {
57
- if ('memory' in performance) {
58
- return performance.memory.usedJSHeapSize || 0;
59
- }
60
- return 0;
61
- }
62
- // Component rendering performance test
63
- async testComponentRender(componentName, renderFunction, expectedRenderTime = 16 // 60fps target
64
- ) {
65
- const config = {
66
- name: `${componentName} Render Performance`,
67
- iterations: 100,
68
- warmupIterations: 10,
69
- timeout: 5000,
70
- expectedThreshold: {
71
- renderTime: expectedRenderTime,
72
- memoryUsage: 1024 * 1024 // 1MB
73
- }
74
- };
75
- return this.runTest(config, renderFunction);
76
- }
77
- // Bundle loading performance test
78
- async testBundleLoading(bundlePath, expectedLoadTime = 1000 // 1 second
79
- ) {
80
- const config = {
81
- name: `Bundle Loading: ${bundlePath}`,
82
- iterations: 5,
83
- warmupIterations: 1,
84
- timeout: 10000,
85
- expectedThreshold: {
86
- renderTime: expectedLoadTime,
87
- memoryUsage: 5 * 1024 * 1024 // 5MB
88
- }
89
- };
90
- return this.runTest(config, async () => {
91
- // Simulate bundle loading
92
- const startTime = performance.now();
93
- try {
94
- // Use fetch instead of dynamic import to avoid bundler issues
95
- const response = await fetch(bundlePath);
96
- if (!response.ok) {
97
- throw new Error(`Failed to load bundle: ${response.status}`);
98
- }
99
- await response.blob(); // Consume the response
100
- }
101
- catch (error) {
102
- console.warn(`Bundle loading test failed for ${bundlePath}:`, error);
103
- // Return a mock time for testing purposes
104
- }
105
- const endTime = performance.now();
106
- return endTime - startTime;
107
- });
108
- }
109
- // Memory leak detection test
110
- async testMemoryLeaks(testFunction, iterations = 1000) {
111
- const config = {
112
- name: 'Memory Leak Detection',
113
- iterations,
114
- warmupIterations: 100,
115
- timeout: 30000,
116
- expectedThreshold: {
117
- renderTime: Infinity, // Not testing render time
118
- memoryUsage: 10 * 1024 * 1024 // 10MB max increase
119
- }
120
- };
121
- const memoryBefore = this.getMemoryUsage();
122
- const result = await this.runTest(config, testFunction);
123
- const memoryAfter = this.getMemoryUsage();
124
- const memoryIncrease = memoryAfter - memoryBefore;
125
- // Check for memory leaks (memory should not increase significantly)
126
- const hasMemoryLeak = memoryIncrease > config.expectedThreshold.memoryUsage;
127
- return {
128
- ...result,
129
- passed: result.passed && !hasMemoryLeak,
130
- error: hasMemoryLeak ? `Potential memory leak detected: ${Math.round(memoryIncrease / 1024 / 1024)}MB increase` : result.error
131
- };
132
- }
133
- // Interaction delay test
134
- async testInteractionDelay(interactionFunction, expectedDelay = 100 // 100ms
135
- ) {
136
- const config = {
137
- name: 'Interaction Delay',
138
- iterations: 50,
139
- warmupIterations: 5,
140
- timeout: 5000,
141
- expectedThreshold: {
142
- renderTime: expectedDelay,
143
- memoryUsage: 1024 * 1024 // 1MB
144
- }
145
- };
146
- return this.runTest(config, interactionFunction);
147
- }
148
- // Regression testing
149
- async runRegressionTests(currentMetrics, baselineMetrics) {
150
- if (baselineMetrics) {
151
- this.regressionDetector.setBaseline(baselineMetrics);
152
- }
153
- const regressions = this.regressionDetector.detectRegression(currentMetrics);
154
- const passed = regressions.length === 0;
155
- return { passed, regressions };
156
- }
157
- // Get all test results
158
- getResults() {
159
- return [...this.results];
160
- }
161
- // Get test summary
162
- getSummary() {
163
- const totalTests = this.results.length;
164
- const passedTests = this.results.filter(result => result.passed).length;
165
- const failedTests = totalTests - passedTests;
166
- const passRate = totalTests > 0 ? (passedTests / totalTests) * 100 : 0;
167
- return { totalTests, passedTests, failedTests, passRate };
168
- }
169
- // Clear test results
170
- clearResults() {
171
- this.results = [];
172
- }
173
- // Generate performance report
174
- generateReport() {
175
- const summary = this.getSummary();
176
- let report = `Performance Test Report\n`;
177
- report += `========================\n\n`;
178
- report += `Total Tests: ${summary.totalTests}\n`;
179
- report += `Passed: ${summary.passedTests}\n`;
180
- report += `Failed: ${summary.failedTests}\n`;
181
- report += `Pass Rate: ${summary.passRate.toFixed(1)}%\n\n`;
182
- if (this.results.length > 0) {
183
- report += `Detailed Results:\n`;
184
- report += `-----------------\n\n`;
185
- this.results.forEach((result, index) => {
186
- report += `${index + 1}. ${result.testName}\n`;
187
- report += ` Status: ${result.passed ? 'PASS' : 'FAIL'}\n`;
188
- report += ` Average Render Time: ${result.metrics.averageRenderTime.toFixed(2)}ms\n`;
189
- report += ` Min/Max Render Time: ${result.metrics.minRenderTime.toFixed(2)}ms / ${result.metrics.maxRenderTime.toFixed(2)}ms\n`;
190
- report += ` Memory Usage: ${Math.round(result.metrics.memoryUsage / 1024)} KB\n`;
191
- report += ` Iterations: ${result.metrics.iterations}\n`;
192
- if (result.error) {
193
- report += ` Error: ${result.error}\n`;
194
- }
195
- report += `\n`;
196
- });
197
- }
198
- return report;
199
- }
200
- }
201
- // Global performance benchmark instance
202
- export const performanceBenchmark = new PerformanceBenchmark();
203
- // Utility functions for common performance tests
204
- export const performanceTestUtils = {
205
- // Test component rendering performance
206
- async testComponent(Component, props = {}, expectedRenderTime = 16) {
207
- return performanceBenchmark.testComponentRender(Component.displayName || Component.name || 'Component', () => {
208
- // This would need React Testing Library in a real test environment
209
- // For now, we'll simulate component rendering
210
- return { type: Component, props }; // Mock element
211
- }, expectedRenderTime);
212
- },
213
- // Test hook performance
214
- async testHook(hookFunction, hookName, expectedExecutionTime = 1) {
215
- const config = {
216
- name: `Hook Performance: ${hookName}`,
217
- iterations: 1000,
218
- warmupIterations: 100,
219
- timeout: 5000,
220
- expectedThreshold: {
221
- renderTime: expectedExecutionTime,
222
- memoryUsage: 1024 * 1024 // 1MB
223
- }
224
- };
225
- return performanceBenchmark.runTest(config, hookFunction);
226
- },
227
- // Test async operation performance
228
- async testAsyncOperation(operation, operationName, expectedTime = 1000) {
229
- const config = {
230
- name: `Async Operation: ${operationName}`,
231
- iterations: 10,
232
- warmupIterations: 2,
233
- timeout: 30000,
234
- expectedThreshold: {
235
- renderTime: expectedTime,
236
- memoryUsage: 2 * 1024 * 1024 // 2MB
237
- }
238
- };
239
- return performanceBenchmark.runTest(config, operation);
240
- },
241
- // Test bundle size impact
242
- async measureBundleImpact(beforeFunction, afterFunction, featureName) {
243
- const beforeMemory = performance.memory?.usedJSHeapSize || 0;
244
- const beforeTime = performance.now();
245
- beforeFunction();
246
- const midMemory = performance.memory?.usedJSHeapSize || 0;
247
- const midTime = performance.now();
248
- afterFunction();
249
- const afterMemory = performance.memory?.usedJSHeapSize || 0;
250
- const afterTime = performance.now();
251
- return {
252
- bundleIncrease: afterMemory - beforeMemory,
253
- memoryIncrease: midMemory - beforeMemory,
254
- renderTimeImpact: (afterTime - midTime) - (midTime - beforeTime)
255
- };
256
- }
257
- };
258
- // Performance testing framework
259
- export class PerformanceTestFramework {
260
- benchmark = new PerformanceBenchmark();
261
- suites = new Map();
262
- // Register a test suite
263
- registerSuite(suiteName, tests) {
264
- this.suites.set(suiteName, tests);
265
- }
266
- // Run all tests in a suite
267
- async runSuite(suiteName, testImplementations) {
268
- const tests = this.suites.get(suiteName);
269
- if (!tests) {
270
- throw new Error(`Test suite '${suiteName}' not found`);
271
- }
272
- const results = [];
273
- for (const test of tests) {
274
- const implementation = testImplementations.get(test.name);
275
- if (!implementation) {
276
- console.warn(`No implementation found for test '${test.name}'`);
277
- continue;
278
- }
279
- const result = await this.benchmark.runTest(test, implementation);
280
- results.push(result);
281
- }
282
- return results;
283
- }
284
- // Run all registered test suites
285
- async runAllSuites(implementations) {
286
- const allResults = new Map();
287
- for (const [suiteName] of this.suites) {
288
- const suiteImplementations = implementations.get(suiteName);
289
- if (!suiteImplementations) {
290
- console.warn(`No implementations found for suite '${suiteName}'`);
291
- continue;
292
- }
293
- const results = await this.runSuite(suiteName, suiteImplementations);
294
- allResults.set(suiteName, results);
295
- }
296
- return allResults;
297
- }
298
- // Generate comprehensive report
299
- generateComprehensiveReport() {
300
- const summary = this.benchmark.getSummary();
301
- let report = this.benchmark.generateReport();
302
- // Add suite breakdown if available
303
- if (this.suites.size > 0) {
304
- report += `\nTest Suites:\n`;
305
- report += `============\n\n`;
306
- for (const [suiteName, tests] of this.suites) {
307
- report += `Suite: ${suiteName}\n`;
308
- report += `Tests: ${tests.length}\n\n`;
309
- }
310
- }
311
- return report;
312
- }
313
- }
314
- export const performanceTestFramework = new PerformanceTestFramework();
@@ -1 +0,0 @@
1
- {"version":3,"file":"base-plugin.d.ts","sourceRoot":"","sources":["base-plugin.ts"],"names":[],"mappings":"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"}
@@ -1,151 +0,0 @@
1
- // Abstract base plugin class
2
- export class BasePlugin {
3
- metadata;
4
- context;
5
- config = {};
6
- initialized = false;
7
- active = false;
8
- constructor(metadata) {
9
- this.metadata = {
10
- version: '1.0.0',
11
- ...metadata
12
- };
13
- }
14
- // Plugin lifecycle methods - can be overridden by subclasses
15
- async initialize(context, config = {}) {
16
- if (this.initialized) {
17
- context.logger.warn('Plugin already initialized');
18
- return;
19
- }
20
- this.context = context;
21
- this.config = { ...this.config, ...config };
22
- try {
23
- await this.onInitialize();
24
- this.initialized = true;
25
- context.logger.info(`Plugin initialized`);
26
- }
27
- catch (error) {
28
- context.logger.error('Failed to initialize plugin', error);
29
- throw error;
30
- }
31
- }
32
- async activate(context) {
33
- if (!this.initialized) {
34
- throw new Error('Plugin must be initialized before activation');
35
- }
36
- if (this.active) {
37
- context.logger.warn('Plugin already active');
38
- return;
39
- }
40
- try {
41
- await this.onActivate();
42
- this.active = true;
43
- context.logger.info(`Plugin activated`);
44
- }
45
- catch (error) {
46
- context.logger.error('Failed to activate plugin', error);
47
- throw error;
48
- }
49
- }
50
- async deactivate(context) {
51
- if (!this.active) {
52
- context.logger.warn('Plugin already inactive');
53
- return;
54
- }
55
- try {
56
- await this.onDeactivate();
57
- this.active = false;
58
- context.logger.info(`Plugin deactivated`);
59
- }
60
- catch (error) {
61
- context.logger.error('Failed to deactivate plugin', error);
62
- throw error;
63
- }
64
- }
65
- async destroy(context) {
66
- if (this.active) {
67
- await this.deactivate(context);
68
- }
69
- try {
70
- await this.onDestroy();
71
- this.initialized = false;
72
- context.logger.info(`Plugin destroyed`);
73
- }
74
- catch (error) {
75
- context.logger.error('Failed to destroy plugin', error);
76
- throw error;
77
- }
78
- }
79
- async configure(config) {
80
- const oldConfig = { ...this.config };
81
- this.config = { ...this.config, ...config };
82
- try {
83
- await this.onConfigure(config, oldConfig);
84
- this.context?.logger.info('Plugin configured');
85
- }
86
- catch (error) {
87
- // Rollback configuration on error
88
- this.config = oldConfig;
89
- this.context?.logger.error('Failed to configure plugin', error);
90
- throw error;
91
- }
92
- }
93
- healthCheck() {
94
- return this.initialized && this.onHealthCheck();
95
- }
96
- onDestroy() {
97
- // Default implementation - subclasses can override
98
- }
99
- onConfigure(newConfig, oldConfig) {
100
- // Default implementation - subclasses can override
101
- }
102
- onHealthCheck() {
103
- // Default implementation - subclasses can override
104
- return true;
105
- }
106
- // Utility methods for plugins
107
- get state() {
108
- return this.context?.state;
109
- }
110
- get controls() {
111
- return this.context?.controls;
112
- }
113
- get element() {
114
- return this.context?.element;
115
- }
116
- get logger() {
117
- return this.context?.logger;
118
- }
119
- emit(event, data) {
120
- this.context?.emit(event, data);
121
- }
122
- on(event, handler) {
123
- return this.context?.on(event, handler) || (() => { });
124
- }
125
- // Helper methods for common plugin patterns
126
- addEventListeners(element, events) {
127
- Object.entries(events).forEach(([event, handler]) => {
128
- element.addEventListener(event, handler);
129
- });
130
- // Return cleanup function
131
- return () => {
132
- Object.entries(events).forEach(([event, handler]) => {
133
- element.removeEventListener(event, handler);
134
- });
135
- };
136
- }
137
- createConfig(defaults) {
138
- return { ...defaults, ...this.config };
139
- }
140
- // Plugin status
141
- get isInitialized() {
142
- return this.initialized;
143
- }
144
- get isActive() {
145
- return this.active;
146
- }
147
- }
148
- // Simple plugin factory helper
149
- export function createPlugin(PluginClass) {
150
- return (config) => new PluginClass(config);
151
- }
@@ -1 +0,0 @@
1
- {"version":3,"file":"enhanced-plugin-system.d.ts","sourceRoot":"","sources":["enhanced-plugin-system.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAC3C,OAAO,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAGrE,MAAM,WAAW,gBAAgB;IAChC,2DAA2D;IAC3D,WAAW,CAAC,EAAE,CAAC,OAAO,EAAE,WAAW,EAAE,OAAO,EAAE,iBAAiB,KAAK,iBAAiB,CAAC;IACtF,iCAAiC;IACjC,KAAK,CAAC,EAAE,CAAC,MAAM,EAAE,mBAAmB,KAAK,mBAAmB,GAAG,IAAI,CAAC;IACpE,kCAAkC;IAClC,KAAK,CAAC,EAAE,CAAC,MAAM,EAAE,mBAAmB,KAAK,IAAI,CAAC;IAC9C,yCAAyC;IACzC,YAAY,CAAC,EAAE,CAAC,MAAM,EAAE,mBAAmB,EAAE,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;IACrE,uCAAuC;IACvC,cAAc,CAAC,EAAE,CAAC,MAAM,EAAE,mBAAmB,EAAE,SAAS,EAAE,OAAO,KAAK,IAAI,CAAC;IAC3E,6BAA6B;IAC7B,KAAK,CAAC,EAAE,CAAC,MAAM,EAAE,mBAAmB,EAAE,KAAK,EAAE,UAAU,KAAK,UAAU,GAAG,IAAI,CAAC;IAC9E,oCAAoC;IACpC,aAAa,CAAC,EAAE,CAAC,MAAM,EAAE,mBAAmB,KAAK,IAAI,CAAC;IACtD,oCAAoC;IACpC,aAAa,CAAC,EAAE,CAAC,MAAM,EAAE,mBAAmB,EAAE,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IACvE,mCAAmC;IACnC,YAAY,CAAC,EAAE,CAAC,MAAM,EAAE,mBAAmB,EAAE,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;IACrE,uCAAuC;IACvC,gBAAgB,CAAC,EAAE,CAAC,MAAM,EAAE,mBAAmB,EAAE,YAAY,EAAE,OAAO,KAAK,IAAI,CAAC;CAChF;AAGD,8BAAsB,mBAAoB,SAAQ,UAAU;IAC3D,SAAS,CAAC,KAAK,EAAE,OAAO,CAAC,gBAAgB,CAAC,CAAM;IAChD,SAAS,CAAC,QAAQ,EAAE,MAAM,CAAK;IAC/B,SAAS,CAAC,UAAU,CAAC,EAAE,gBAAgB,CAAC;gBAE5B,IAAI,EAAE,MAAM,EAAE,MAAM,GAAE,GAAQ;IAM1C;;OAEG;IACH,SAAS,CAAC,UAAU,IAAI,IAAI;IAI5B;;OAEG;IACI,YAAY,CAAC,CAAC,SAAS,MAAM,gBAAgB,EACnD,QAAQ,EAAE,CAAC,EACX,OAAO,EAAE,gBAAgB,CAAC,CAAC,CAAC,GAC1B,IAAI;IAIP;;OAEG;IACI,WAAW,CAAC,CAAC,SAAS,MAAM,gBAAgB,EAClD,QAAQ,EAAE,CAAC,EACX,GAAG,IAAI,EAAE,UAAU,CAAC,WAAW,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAC,GACnD,UAAU,CAAC,WAAW,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI;IAOtD;;OAEG;IACI,WAAW,IAAI,MAAM;IAI5B;;OAEG;IACI,aAAa,CAAC,UAAU,EAAE,gBAAgB,GAAG,IAAI;CAGxD;AAGD,MAAM,WAAW,gBAAgB;IAChC,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,CACR,OAAO,EAAE,aAAa,EACtB,IAAI,EAAE,MAAM,aAAa,GAAG,OAAO,CAAC,aAAa,CAAC,KAC9C,aAAa,GAAG,OAAO,CAAC,aAAa,CAAC,CAAC;CAC5C;AAGD,MAAM,WAAW,aAAa;IAC7B,MAAM,EAAE,mBAAmB,CAAC;IAC5B,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,GAAG,CAAC;IACV,YAAY,EAAE,GAAG,CAAC;IAClB,QAAQ,EAAE,OAAO,CAAC;IAClB,OAAO,EAAE,OAAO,CAAC;CACjB;AAED;;GAEG;AACH,qBAAa,sBAAsB;IAClC,OAAO,CAAC,OAAO,CAA+C;IAC9D,OAAO,CAAC,WAAW,CAA0B;IAC7C,OAAO,CAAC,KAAK,CAAwF;IAErG;;OAEG;IACI,QAAQ,CAAC,MAAM,EAAE,mBAAmB,GAAG,IAAI;IAYlD;;OAEG;IACI,UAAU,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI;IAQ3C;;OAEG;IACI,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,mBAAmB,GAAG,SAAS;IAI/D;;OAEG;IACI,UAAU,IAAI,mBAAmB,EAAE;IAI1C;;OAEG;IACI,oBAAoB,IAAI,mBAAmB,EAAE;IAIpD;;OAEG;IACU,WAAW,CAAC,CAAC,SAAS,MAAM,gBAAgB,EACxD,QAAQ,EAAE,CAAC,EACX,GAAG,IAAI,EAAE,UAAU,CAAC,WAAW,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAC,GACnD,OAAO,CAAC,GAAG,EAAE,CAAC;IAgBjB;;OAEG;IACI,aAAa,CAAC,UAAU,EAAE,gBAAgB,GAAG,IAAI;IAMxD;;OAEG;IACI,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAI3C;;OAEG;IACU,iBAAiB,CAAC,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,aAAa,CAAC;IAe9E;;OAEG;IACH,OAAO,CAAC,mBAAmB;IAiB3B;;OAEG;IACH,OAAO,CAAC,qBAAqB;IAc7B;;OAEG;IACI,KAAK,IAAI,IAAI;CAKpB;AAED;;GAEG;AACH,qBAAa,qBAAqB;IACjC,OAAO,CAAC,QAAQ,CAAyB;IACzC,OAAO,CAAC,MAAM,CAAsB;gBAExB,MAAM,EAAE,mBAAmB;IAKvC;;OAEG;IACU,KAAK,CAAC,OAAO,GAAE,iBAAsB,GAAG,OAAO,CAAC,IAAI,CAAC;IAgBlE;;OAEG;IACI,QAAQ,CAAC,MAAM,EAAE,mBAAmB,GAAG,IAAI;IAIlD;;OAEG;IACI,UAAU,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI;IAI3C;;OAEG;IACU,WAAW,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC;IAoCjE;;OAEG;IACU,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAQrC;;OAEG;IACI,WAAW,IAAI,sBAAsB;CAG5C;AAGD,eAAO,MAAM,2BAA2B,QAAO,gBAc7C,CAAC;AAEH,eAAO,MAAM,6BAA6B,QAAO,gBAY/C,CAAC;AAEH,eAAO,MAAM,uBAAuB,QAAO,gBAOzC,CAAC;AAEH,eAAe,qBAAqB,CAAC"}