unified-video-framework 1.4.612 โ†’ 1.4.614

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 (59) hide show
  1. package/CHANGELOG.md +184 -184
  2. package/package.json +141 -141
  3. package/packages/core/dist/interfaces/IVideoPlayer.d.ts +2 -2
  4. package/packages/core/dist/interfaces/IVideoPlayer.d.ts.map +1 -1
  5. package/packages/core/dist/version.d.ts +1 -1
  6. package/packages/core/dist/version.js +1 -1
  7. package/packages/core/src/BasePlayer.ts +273 -273
  8. package/packages/core/src/index.ts +32 -32
  9. package/packages/core/src/interfaces/IVideoPlayer.ts +2 -2
  10. package/packages/core/src/version.ts +1 -1
  11. package/packages/web/dist/WebPlayer.d.ts.map +1 -1
  12. package/packages/web/dist/WebPlayer.js +59 -34
  13. package/packages/web/dist/WebPlayer.js.map +1 -1
  14. package/packages/web/dist/index.d.ts +3 -0
  15. package/packages/web/dist/index.d.ts.map +1 -1
  16. package/packages/web/dist/index.js +2 -0
  17. package/packages/web/dist/index.js.map +1 -1
  18. package/packages/web/dist/iptv/IPTVTypes.d.ts +28 -0
  19. package/packages/web/dist/iptv/IPTVTypes.d.ts.map +1 -0
  20. package/packages/web/dist/iptv/IPTVTypes.js +2 -0
  21. package/packages/web/dist/iptv/IPTVTypes.js.map +1 -0
  22. package/packages/web/dist/iptv/M3UParser.d.ts +9 -0
  23. package/packages/web/dist/iptv/M3UParser.d.ts.map +1 -0
  24. package/packages/web/dist/iptv/M3UParser.js +92 -0
  25. package/packages/web/dist/iptv/M3UParser.js.map +1 -0
  26. package/packages/web/dist/paywall/EmailAuthController.js +267 -267
  27. package/packages/web/dist/paywall/PaywallController.js +56 -56
  28. package/packages/web/dist/react/IPTVPlayerView.d.ts +15 -0
  29. package/packages/web/dist/react/IPTVPlayerView.d.ts.map +1 -0
  30. package/packages/web/dist/react/IPTVPlayerView.js +459 -0
  31. package/packages/web/dist/react/IPTVPlayerView.js.map +1 -0
  32. package/packages/web/dist/react/WebPlayerView.d.ts +2 -0
  33. package/packages/web/dist/react/WebPlayerView.d.ts.map +1 -1
  34. package/packages/web/dist/react/WebPlayerView.js +142 -14
  35. package/packages/web/dist/react/WebPlayerView.js.map +1 -1
  36. package/packages/web/dist/react/components/iptv/IPTVChannelList.d.ts +23 -0
  37. package/packages/web/dist/react/components/iptv/IPTVChannelList.d.ts.map +1 -0
  38. package/packages/web/dist/react/components/iptv/IPTVChannelList.js +409 -0
  39. package/packages/web/dist/react/components/iptv/IPTVChannelList.js.map +1 -0
  40. package/packages/web/dist/react/hooks/useIPTV.d.ts +19 -0
  41. package/packages/web/dist/react/hooks/useIPTV.d.ts.map +1 -0
  42. package/packages/web/dist/react/hooks/useIPTV.js +121 -0
  43. package/packages/web/dist/react/hooks/useIPTV.js.map +1 -0
  44. package/packages/web/dist/utils/M3UParser.d.ts +21 -0
  45. package/packages/web/dist/utils/M3UParser.d.ts.map +1 -0
  46. package/packages/web/dist/utils/M3UParser.js +92 -0
  47. package/packages/web/dist/utils/M3UParser.js.map +1 -0
  48. package/packages/web/src/WebPlayer.ts +59 -34
  49. package/packages/web/src/__tests__/WebPlayer.test.ts +314 -314
  50. package/packages/web/src/__tests__/audioTracks.test.ts +392 -392
  51. package/packages/web/src/__tests__/m3u-parser.test.ts +114 -0
  52. package/packages/web/src/index.ts +5 -0
  53. package/packages/web/src/iptv/IPTVTypes.ts +31 -0
  54. package/packages/web/src/iptv/M3UParser.ts +119 -0
  55. package/packages/web/src/paywall/EmailAuthController.ts +1122 -1122
  56. package/packages/web/src/paywall/PaywallController.ts +1245 -1245
  57. package/packages/web/src/react/WebPlayerView.tsx +216 -23
  58. package/packages/web/src/react/components/iptv/IPTVChannelList.tsx +701 -0
  59. package/packages/web/src/react/hooks/useIPTV.ts +160 -0
package/CHANGELOG.md CHANGED
@@ -1,184 +1,184 @@
1
- # Changelog
2
-
3
- All notable changes to this project will be documented in this file.
4
-
5
- The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
6
- and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7
-
8
- ## [1.5.0] - 2026-06-04
9
-
10
- ### Added
11
- - **Multi-Audio Track Support**: Full support for multiple audio tracks in HLS and DASH streams
12
- - `AudioTrackConfig` interface for typed audio track metadata
13
- - `getAudioTracks()`, `getCurrentAudioTrack()`, `setAudioTrack(index)` public API methods
14
- - Auto-detection of audio tracks from HLS manifests (`MANIFEST_PARSED`, `AUDIO_TRACK_SWITCHED`)
15
- - Auto-detection of audio tracks from DASH manifests (`STREAM_INITIALIZED`, `TRACK_CHANGE_RENDERED`)
16
- - Manual audio track specification via `VideoSource.audioTracks[]` with label/channel overrides
17
- - Default audio track selection via `VideoSource.defaultAudioTrack` (language code or track id)
18
- - Audio track preference persistence in `localStorage` (`uvf_preferred_audio_lang`)
19
- - Priority-based auto-selection: source default > saved preference > manifest default
20
- - `onAudioTracksAvailable` event when tracks are detected from manifest
21
- - `onAudioTrackChanged` / `onAudiotrackchange` events on track switch
22
- - Audio track accordion section in settings menu with channel info display (5.1, Stereo)
23
- - `AudioTrackAPI` interface in `WebPlayerView` for React integration (`onAudioTrackAPI` prop)
24
- - `ControlsVisibilityConfig.audio.audioTrackButton` for controlling button visibility
25
- - `PlayerConfig.settings.audioTracks` option to enable/disable audio track selection in settings
26
- - Proper cleanup of audio track state on source change and player destroy
27
- - Comprehensive test suite (25 tests) covering extraction, switching, persistence, and edge cases
28
-
29
- ## [1.4.85] - 2024-12-25
30
-
31
- ### Added
32
- - **๐Ÿฆ Brave Browser Fullscreen Support**: Comprehensive Brave browser detection and enhanced fullscreen handling
33
- - Accurate Brave browser detection using multiple detection methods
34
- - Private/Incognito mode detection for different handling approaches
35
- - Enhanced permissions checking and fullscreen capability analysis
36
- - `enterFullscreenWithBraveSupport()` method with targeted error handling for Brave-specific issues
37
- - Brave-specific user gesture validation and permission requests
38
- - **๐Ÿงช Comprehensive Debug Testing**: Advanced debugging tools for Brave fullscreen issues
39
- - `brave-fullscreen-debug-test.html` - Comprehensive test page for diagnosing fullscreen problems
40
- - Browser environment detection with detailed capability analysis
41
- - Multiple fullscreen test methods (button click, keyboard shortcuts, double-click, direct API)
42
- - Debug logging system with export functionality for issue analysis
43
- - Permission state monitoring and site settings validation
44
-
45
- ### Enhanced
46
- - **Fullscreen Button Handler**: Enhanced with Brave-specific logic and debugging
47
- - Special handling for Brave normal tabs vs private tabs
48
- - Enhanced error messages with browser-specific guidance
49
- - Multiple event dispatch methods for maximum compatibility
50
- - Fresh user gesture validation for reliable fullscreen activation
51
- - **Cross-browser Compatibility**: Improved fullscreen API support
52
- - Multiple fullscreen API fallbacks (standard, webkit, moz, ms)
53
- - Enhanced error handling with specific guidance for common browser issues
54
- - Improved user gesture context preservation
55
-
56
- ### Fixed
57
- - **Brave Browser Issues**: Resolved common fullscreen problems in Brave browser
58
- - Fixed "API can only be initiated by a user gesture" errors in normal tabs
59
- - Improved permission handling for Brave's stricter security policies
60
- - Better handling of Brave Shields and site settings interference
61
- - Enhanced fallback mechanisms when fullscreen APIs are restricted
62
-
63
- ### Improved
64
- - **Developer Experience**: Better debugging and issue identification tools
65
- - Detailed browser capability detection and logging
66
- - Comprehensive test suite for diagnosing fullscreen issues across different browser modes
67
- - Enhanced error messages with actionable guidance for users
68
- - Export functionality for debug logs to assist with issue resolution
69
-
70
- ## [1.4.47] - 2024-01-24
71
-
72
- ### Fixed
73
- - **EPG Alignment Issues**: Fixed critical alignment problems in Electronic Program Guide
74
- - Fixed misaligned grid lines between timeline header and program grid
75
- - Resolved channel row height inconsistencies (standardized to 80px)
76
- - Fixed timeline header and program grid vertical line alignment
77
- - **EPG Scrolling Synchronization**: Implemented bidirectional scroll synchronization
78
- - Timeline header and program grid now scroll in perfect sync horizontally
79
- - Added scroll state management and event coordination
80
- - Hidden scrollbars for clean professional appearance
81
- - **EPG Layout Structure**: Enhanced component architecture
82
- - Added 200px channel spacer in timeline header matching program grid
83
- - Improved grid line rendering with separate horizontal and vertical lines
84
- - Enhanced scroll event handling and throttling
85
-
86
- ### Changed
87
- - **EPGProgramGrid**: Enhanced with scroll synchronization props (`onTimelineScroll`, `timelineScrollLeft`)
88
- - **EPGTimelineHeader**: Restructured layout with scrollable container and channel spacer
89
- - **EPGOverlay**: Added scroll state management and coordination between components
90
-
91
- ### Improved
92
- - Professional TV guide appearance with perfect alignment
93
- - Smooth synchronized scrolling experience
94
- - Consistent visual measurements across all EPG components
95
- - Better user experience for Electronic Program Guide interface
96
-
97
- ## [1.4.19] - 2024-09-09
98
-
99
- ### Fixed
100
- - Fixed ES module import resolution issues when consumers install the package
101
- - Updated fix-imports.js script to properly handle ES module import statements
102
- - Fixed internal imports to include .js extensions for ES module compatibility
103
- - Resolved "Cannot resolve module" errors in consumer projects
104
- - Fixed directory import issues by updating all import statements to reference specific files
105
-
106
- ### Changed
107
- - Enhanced build process to ensure ES modules work correctly when installed via npm
108
- - Improved fix-imports script to handle both CommonJS and ES module import patterns
109
-
110
- ## [1.4.1] - 2024-09-06
111
-
112
- ### Fixed
113
- - Fixed webpack warning about react-native module resolution in web environments
114
- - Changed VideoPlayerFactory to use eval() for react-native require to prevent build-time resolution
115
-
116
- ## [1.4.0] - 2024-09-06
117
-
118
- ### Added
119
- - Homepage and bugs URLs for better npm package display
120
- - CHANGELOG.md to track version changes
121
- - Engines field specifying Node.js >=14.0.0 and npm >=6.0.0 requirements
122
- - peerDependenciesMeta to make HLS.js and dash.js optional peer dependencies
123
-
124
- ### Changed
125
- - Updated README.md with correct import examples and usage documentation
126
- - Removed "Under Development" warning from README
127
- - Improved Quick Start examples with actual working code
128
-
129
- ### Improved
130
- - Overall package documentation and npm page presentation
131
- - TypeScript support with better type exports
132
-
133
- ## [1.3.4] - 2024-09-06
134
-
135
- ### Fixed
136
- - Fixed react-native import error in VideoPlayerFactory by wrapping require in try-catch
137
- - Improved module exports configuration for better subpath imports
138
- - Added TypeScript declaration file for better type support
139
- - Fixed import paths resolution issue when using `unified-video-framework/web`
140
-
141
- ### Added
142
- - Added module declaration file `unified-video-framework.d.ts`
143
- - Added proper export paths for `/packages/web/dist` and `/packages/core/dist`
144
-
145
- ### Changed
146
- - Updated build process to exclude non-existent HTML5Player references
147
-
148
- ## [1.3.3] - 2024-09-06
149
-
150
- ### Fixed
151
- - Resolved module resolution issue for @unified-video/core dependency
152
- - Added post-build script to fix import paths in compiled JavaScript files
153
- - Updated webpack configuration to bundle core with web package
154
-
155
- ### Added
156
- - Added `scripts/fix-imports.js` to automatically fix import paths after build
157
- - Added `fix-imports` npm script to build process
158
-
159
- ### Changed
160
- - Modified build scripts to run fix-imports after compilation
161
- - Updated prepublishOnly script to use build:publish
162
-
163
- ## [1.3.2] - 2024-09-06
164
-
165
- ### Added
166
- - Initial public release with core functionality
167
- - Web player implementation with HLS and DASH support
168
- - React Native player implementation
169
- - Core interfaces and base player class
170
- - Support for multiple platforms (iOS, Android, Web, Smart TVs)
171
- - DRM support architecture
172
- - Analytics integration hooks
173
- - Custom controls and theming
174
- - Watermark overlay support
175
- - Picture-in-Picture support
176
- - Subtitle and audio track management
177
-
178
- ### Features
179
- - Unified API across all platforms
180
- - Dynamic loading of streaming libraries (HLS.js, dash.js)
181
- - Fallback mechanisms for unsupported formats
182
- - Event-driven architecture
183
- - TypeScript support with full type definitions
184
- - Modular package structure (monorepo)
1
+ # Changelog
2
+
3
+ All notable changes to this project will be documented in this file.
4
+
5
+ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
6
+ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7
+
8
+ ## [1.5.0] - 2026-06-04
9
+
10
+ ### Added
11
+ - **Multi-Audio Track Support**: Full support for multiple audio tracks in HLS and DASH streams
12
+ - `AudioTrackConfig` interface for typed audio track metadata
13
+ - `getAudioTracks()`, `getCurrentAudioTrack()`, `setAudioTrack(index)` public API methods
14
+ - Auto-detection of audio tracks from HLS manifests (`MANIFEST_PARSED`, `AUDIO_TRACK_SWITCHED`)
15
+ - Auto-detection of audio tracks from DASH manifests (`STREAM_INITIALIZED`, `TRACK_CHANGE_RENDERED`)
16
+ - Manual audio track specification via `VideoSource.audioTracks[]` with label/channel overrides
17
+ - Default audio track selection via `VideoSource.defaultAudioTrack` (language code or track id)
18
+ - Audio track preference persistence in `localStorage` (`uvf_preferred_audio_lang`)
19
+ - Priority-based auto-selection: source default > saved preference > manifest default
20
+ - `onAudioTracksAvailable` event when tracks are detected from manifest
21
+ - `onAudioTrackChanged` / `onAudiotrackchange` events on track switch
22
+ - Audio track accordion section in settings menu with channel info display (5.1, Stereo)
23
+ - `AudioTrackAPI` interface in `WebPlayerView` for React integration (`onAudioTrackAPI` prop)
24
+ - `ControlsVisibilityConfig.audio.audioTrackButton` for controlling button visibility
25
+ - `PlayerConfig.settings.audioTracks` option to enable/disable audio track selection in settings
26
+ - Proper cleanup of audio track state on source change and player destroy
27
+ - Comprehensive test suite (25 tests) covering extraction, switching, persistence, and edge cases
28
+
29
+ ## [1.4.85] - 2024-12-25
30
+
31
+ ### Added
32
+ - **๐Ÿฆ Brave Browser Fullscreen Support**: Comprehensive Brave browser detection and enhanced fullscreen handling
33
+ - Accurate Brave browser detection using multiple detection methods
34
+ - Private/Incognito mode detection for different handling approaches
35
+ - Enhanced permissions checking and fullscreen capability analysis
36
+ - `enterFullscreenWithBraveSupport()` method with targeted error handling for Brave-specific issues
37
+ - Brave-specific user gesture validation and permission requests
38
+ - **๐Ÿงช Comprehensive Debug Testing**: Advanced debugging tools for Brave fullscreen issues
39
+ - `brave-fullscreen-debug-test.html` - Comprehensive test page for diagnosing fullscreen problems
40
+ - Browser environment detection with detailed capability analysis
41
+ - Multiple fullscreen test methods (button click, keyboard shortcuts, double-click, direct API)
42
+ - Debug logging system with export functionality for issue analysis
43
+ - Permission state monitoring and site settings validation
44
+
45
+ ### Enhanced
46
+ - **Fullscreen Button Handler**: Enhanced with Brave-specific logic and debugging
47
+ - Special handling for Brave normal tabs vs private tabs
48
+ - Enhanced error messages with browser-specific guidance
49
+ - Multiple event dispatch methods for maximum compatibility
50
+ - Fresh user gesture validation for reliable fullscreen activation
51
+ - **Cross-browser Compatibility**: Improved fullscreen API support
52
+ - Multiple fullscreen API fallbacks (standard, webkit, moz, ms)
53
+ - Enhanced error handling with specific guidance for common browser issues
54
+ - Improved user gesture context preservation
55
+
56
+ ### Fixed
57
+ - **Brave Browser Issues**: Resolved common fullscreen problems in Brave browser
58
+ - Fixed "API can only be initiated by a user gesture" errors in normal tabs
59
+ - Improved permission handling for Brave's stricter security policies
60
+ - Better handling of Brave Shields and site settings interference
61
+ - Enhanced fallback mechanisms when fullscreen APIs are restricted
62
+
63
+ ### Improved
64
+ - **Developer Experience**: Better debugging and issue identification tools
65
+ - Detailed browser capability detection and logging
66
+ - Comprehensive test suite for diagnosing fullscreen issues across different browser modes
67
+ - Enhanced error messages with actionable guidance for users
68
+ - Export functionality for debug logs to assist with issue resolution
69
+
70
+ ## [1.4.47] - 2024-01-24
71
+
72
+ ### Fixed
73
+ - **EPG Alignment Issues**: Fixed critical alignment problems in Electronic Program Guide
74
+ - Fixed misaligned grid lines between timeline header and program grid
75
+ - Resolved channel row height inconsistencies (standardized to 80px)
76
+ - Fixed timeline header and program grid vertical line alignment
77
+ - **EPG Scrolling Synchronization**: Implemented bidirectional scroll synchronization
78
+ - Timeline header and program grid now scroll in perfect sync horizontally
79
+ - Added scroll state management and event coordination
80
+ - Hidden scrollbars for clean professional appearance
81
+ - **EPG Layout Structure**: Enhanced component architecture
82
+ - Added 200px channel spacer in timeline header matching program grid
83
+ - Improved grid line rendering with separate horizontal and vertical lines
84
+ - Enhanced scroll event handling and throttling
85
+
86
+ ### Changed
87
+ - **EPGProgramGrid**: Enhanced with scroll synchronization props (`onTimelineScroll`, `timelineScrollLeft`)
88
+ - **EPGTimelineHeader**: Restructured layout with scrollable container and channel spacer
89
+ - **EPGOverlay**: Added scroll state management and coordination between components
90
+
91
+ ### Improved
92
+ - Professional TV guide appearance with perfect alignment
93
+ - Smooth synchronized scrolling experience
94
+ - Consistent visual measurements across all EPG components
95
+ - Better user experience for Electronic Program Guide interface
96
+
97
+ ## [1.4.19] - 2024-09-09
98
+
99
+ ### Fixed
100
+ - Fixed ES module import resolution issues when consumers install the package
101
+ - Updated fix-imports.js script to properly handle ES module import statements
102
+ - Fixed internal imports to include .js extensions for ES module compatibility
103
+ - Resolved "Cannot resolve module" errors in consumer projects
104
+ - Fixed directory import issues by updating all import statements to reference specific files
105
+
106
+ ### Changed
107
+ - Enhanced build process to ensure ES modules work correctly when installed via npm
108
+ - Improved fix-imports script to handle both CommonJS and ES module import patterns
109
+
110
+ ## [1.4.1] - 2024-09-06
111
+
112
+ ### Fixed
113
+ - Fixed webpack warning about react-native module resolution in web environments
114
+ - Changed VideoPlayerFactory to use eval() for react-native require to prevent build-time resolution
115
+
116
+ ## [1.4.0] - 2024-09-06
117
+
118
+ ### Added
119
+ - Homepage and bugs URLs for better npm package display
120
+ - CHANGELOG.md to track version changes
121
+ - Engines field specifying Node.js >=14.0.0 and npm >=6.0.0 requirements
122
+ - peerDependenciesMeta to make HLS.js and dash.js optional peer dependencies
123
+
124
+ ### Changed
125
+ - Updated README.md with correct import examples and usage documentation
126
+ - Removed "Under Development" warning from README
127
+ - Improved Quick Start examples with actual working code
128
+
129
+ ### Improved
130
+ - Overall package documentation and npm page presentation
131
+ - TypeScript support with better type exports
132
+
133
+ ## [1.3.4] - 2024-09-06
134
+
135
+ ### Fixed
136
+ - Fixed react-native import error in VideoPlayerFactory by wrapping require in try-catch
137
+ - Improved module exports configuration for better subpath imports
138
+ - Added TypeScript declaration file for better type support
139
+ - Fixed import paths resolution issue when using `unified-video-framework/web`
140
+
141
+ ### Added
142
+ - Added module declaration file `unified-video-framework.d.ts`
143
+ - Added proper export paths for `/packages/web/dist` and `/packages/core/dist`
144
+
145
+ ### Changed
146
+ - Updated build process to exclude non-existent HTML5Player references
147
+
148
+ ## [1.3.3] - 2024-09-06
149
+
150
+ ### Fixed
151
+ - Resolved module resolution issue for @unified-video/core dependency
152
+ - Added post-build script to fix import paths in compiled JavaScript files
153
+ - Updated webpack configuration to bundle core with web package
154
+
155
+ ### Added
156
+ - Added `scripts/fix-imports.js` to automatically fix import paths after build
157
+ - Added `fix-imports` npm script to build process
158
+
159
+ ### Changed
160
+ - Modified build scripts to run fix-imports after compilation
161
+ - Updated prepublishOnly script to use build:publish
162
+
163
+ ## [1.3.2] - 2024-09-06
164
+
165
+ ### Added
166
+ - Initial public release with core functionality
167
+ - Web player implementation with HLS and DASH support
168
+ - React Native player implementation
169
+ - Core interfaces and base player class
170
+ - Support for multiple platforms (iOS, Android, Web, Smart TVs)
171
+ - DRM support architecture
172
+ - Analytics integration hooks
173
+ - Custom controls and theming
174
+ - Watermark overlay support
175
+ - Picture-in-Picture support
176
+ - Subtitle and audio track management
177
+
178
+ ### Features
179
+ - Unified API across all platforms
180
+ - Dynamic loading of streaming libraries (HLS.js, dash.js)
181
+ - Fallback mechanisms for unsupported formats
182
+ - Event-driven architecture
183
+ - TypeScript support with full type definitions
184
+ - Modular package structure (monorepo)