unified-video-framework 1.4.413 → 1.4.414

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 (106) hide show
  1. package/package.json +6 -1
  2. package/packages/core/src/BasePlayer.d.ts +61 -0
  3. package/packages/core/src/BasePlayer.d.ts.map +1 -0
  4. package/packages/core/src/BasePlayer.js +175 -0
  5. package/packages/core/src/BasePlayer.js.map +1 -0
  6. package/packages/core/src/VideoPlayerFactory.d.ts +8 -0
  7. package/packages/core/src/VideoPlayerFactory.d.ts.map +1 -0
  8. package/packages/core/src/VideoPlayerFactory.js +95 -0
  9. package/packages/core/src/VideoPlayerFactory.js.map +1 -0
  10. package/packages/core/src/analytics/adapters/PlayerAnalyticsAdapter.d.ts +18 -0
  11. package/packages/core/src/analytics/adapters/PlayerAnalyticsAdapter.d.ts.map +1 -0
  12. package/packages/core/src/analytics/adapters/PlayerAnalyticsAdapter.js +117 -0
  13. package/packages/core/src/analytics/adapters/PlayerAnalyticsAdapter.js.map +1 -0
  14. package/packages/core/src/analytics/core/AnalyticsProvider.d.ts +18 -0
  15. package/packages/core/src/analytics/core/AnalyticsProvider.d.ts.map +1 -0
  16. package/packages/core/src/analytics/core/AnalyticsProvider.js +99 -0
  17. package/packages/core/src/analytics/core/AnalyticsProvider.js.map +1 -0
  18. package/packages/core/src/analytics/core/DynamicAnalyticsManager.d.ts +20 -0
  19. package/packages/core/src/analytics/core/DynamicAnalyticsManager.d.ts.map +1 -0
  20. package/packages/core/src/analytics/core/DynamicAnalyticsManager.js +161 -0
  21. package/packages/core/src/analytics/core/DynamicAnalyticsManager.js.map +1 -0
  22. package/packages/core/src/analytics/core/EventBatcher.d.ts +32 -0
  23. package/packages/core/src/analytics/core/EventBatcher.d.ts.map +1 -0
  24. package/packages/core/src/analytics/core/EventBatcher.js +98 -0
  25. package/packages/core/src/analytics/core/EventBatcher.js.map +1 -0
  26. package/packages/core/src/analytics/core/PlayerAnalytics.d.ts +19 -0
  27. package/packages/core/src/analytics/core/PlayerAnalytics.d.ts.map +1 -0
  28. package/packages/core/src/analytics/core/PlayerAnalytics.js +80 -0
  29. package/packages/core/src/analytics/core/PlayerAnalytics.js.map +1 -0
  30. package/packages/core/src/analytics/index.d.ts +13 -0
  31. package/packages/core/src/analytics/index.d.ts.map +1 -0
  32. package/packages/core/src/analytics/index.js +13 -0
  33. package/packages/core/src/analytics/index.js.map +1 -0
  34. package/packages/core/src/analytics/types/AnalyticsTypes.d.ts +239 -0
  35. package/packages/core/src/analytics/types/AnalyticsTypes.d.ts.map +1 -0
  36. package/packages/core/src/analytics/types/AnalyticsTypes.js +8 -0
  37. package/packages/core/src/analytics/types/AnalyticsTypes.js.map +1 -0
  38. package/packages/core/src/analytics/utils/DeviceDetection.d.ts +27 -0
  39. package/packages/core/src/analytics/utils/DeviceDetection.d.ts.map +1 -0
  40. package/packages/core/src/analytics/utils/DeviceDetection.js +184 -0
  41. package/packages/core/src/analytics/utils/DeviceDetection.js.map +1 -0
  42. package/packages/core/src/chapter-manager.d.ts +39 -0
  43. package/packages/core/src/chapter-manager.d.ts.map +1 -0
  44. package/packages/core/src/chapter-manager.js +173 -0
  45. package/packages/core/src/chapter-manager.js.map +1 -0
  46. package/packages/core/src/index.d.ts +10 -0
  47. package/packages/core/src/index.d.ts.map +1 -0
  48. package/packages/core/src/index.js +8 -0
  49. package/packages/core/src/index.js.map +1 -0
  50. package/packages/core/src/interfaces/IVideoPlayer.d.ts +229 -0
  51. package/packages/core/src/interfaces/IVideoPlayer.d.ts.map +1 -0
  52. package/packages/core/src/interfaces/IVideoPlayer.js +2 -0
  53. package/packages/core/src/interfaces/IVideoPlayer.js.map +1 -0
  54. package/packages/core/src/interfaces.d.ts +455 -0
  55. package/packages/core/src/interfaces.d.ts.map +1 -0
  56. package/packages/core/src/interfaces.js +32 -0
  57. package/packages/core/src/interfaces.js.map +1 -0
  58. package/packages/core/src/utils/EventEmitter.d.ts +14 -0
  59. package/packages/core/src/utils/EventEmitter.d.ts.map +1 -0
  60. package/packages/core/src/utils/EventEmitter.js +55 -0
  61. package/packages/core/src/utils/EventEmitter.js.map +1 -0
  62. package/packages/web/dist/drm/DRMManager.d.ts +1 -1
  63. package/packages/web/dist/drm/DRMManager.d.ts.map +1 -1
  64. package/packages/web/dist/drm/DRMManager.js +7 -7
  65. package/packages/web/dist/drm/DRMManager.js.map +1 -1
  66. package/packages/web/dist/drm/providers/BunnyNetProvider.d.ts +1 -1
  67. package/packages/web/dist/drm/providers/BunnyNetProvider.d.ts.map +1 -1
  68. package/packages/web/dist/drm/providers/BunnyNetProvider.js +13 -13
  69. package/packages/web/dist/drm/providers/BunnyNetProvider.js.map +1 -1
  70. package/packages/web/dist/drm/providers/GenericProvider.d.ts +1 -1
  71. package/packages/web/dist/drm/providers/GenericProvider.d.ts.map +1 -1
  72. package/packages/web/dist/drm/providers/GenericProvider.js +8 -6
  73. package/packages/web/dist/drm/providers/GenericProvider.js.map +1 -1
  74. package/packages/web/dist/drm/systems/FairPlayDRM.d.ts.map +1 -1
  75. package/packages/web/dist/drm/systems/FairPlayDRM.js +2 -2
  76. package/packages/web/dist/drm/systems/FairPlayDRM.js.map +1 -1
  77. package/packages/web/dist/drm/systems/PlayReadyDRM.d.ts.map +1 -1
  78. package/packages/web/dist/drm/systems/PlayReadyDRM.js +7 -7
  79. package/packages/web/dist/drm/systems/PlayReadyDRM.js.map +1 -1
  80. package/packages/web/dist/drm/systems/WidevineDRM.d.ts.map +1 -1
  81. package/packages/web/dist/drm/systems/WidevineDRM.js +2 -2
  82. package/packages/web/dist/drm/systems/WidevineDRM.js.map +1 -1
  83. package/packages/web/dist/drm/types/BunnyNetTypes.d.ts +1 -1
  84. package/packages/web/dist/drm/types/BunnyNetTypes.d.ts.map +1 -1
  85. package/packages/web/dist/drm/types/DRMTypes.d.ts +1 -1
  86. package/packages/web/dist/drm/types/DRMTypes.d.ts.map +1 -1
  87. package/packages/web/dist/drm/types/DRMTypes.js +5 -5
  88. package/packages/web/dist/drm/types/DRMTypes.js.map +1 -1
  89. package/packages/web/dist/drm/utils/BrowserDetector.d.ts +1 -1
  90. package/packages/web/dist/drm/utils/BrowserDetector.d.ts.map +1 -1
  91. package/packages/web/dist/drm/utils/BrowserDetector.js +10 -10
  92. package/packages/web/dist/drm/utils/BrowserDetector.js.map +1 -1
  93. package/packages/web/src/drm/DRMManager.ts +214 -213
  94. package/packages/web/src/drm/index.ts +37 -37
  95. package/packages/web/src/drm/providers/BunnyNetProvider.ts +171 -170
  96. package/packages/web/src/drm/providers/GenericProvider.ts +151 -148
  97. package/packages/web/src/drm/systems/BaseDRM.ts +68 -68
  98. package/packages/web/src/drm/systems/FairPlayDRM.ts +306 -305
  99. package/packages/web/src/drm/systems/PlayReadyDRM.ts +132 -131
  100. package/packages/web/src/drm/systems/WidevineDRM.ts +106 -105
  101. package/packages/web/src/drm/types/BunnyNetTypes.ts +35 -35
  102. package/packages/web/src/drm/types/DRMTypes.ts +92 -91
  103. package/packages/web/src/drm/utils/BrowserDetector.ts +233 -232
  104. package/packages/web/src/drm/utils/CertificateManager.ts +86 -86
  105. package/packages/web/src/drm/utils/DRMErrorHandler.ts +84 -84
  106. package/packages/web/src/drm/utils/LicenseRequestHandler.ts +180 -180
@@ -1,213 +1,214 @@
1
- /**
2
- * DRM Manager
3
- * Main orchestrator for all DRM systems
4
- * Provides a unified interface for HLS.js, dash.js, and native playback
5
- */
6
-
7
- import { DRMType, DRMConfig } from '@unified-video/core';
8
- import { ExtendedDRMConfig, DRMInitResult, DRMError, DRMErrorCode, DRMCapabilities } from './types/DRMTypes';
9
- import { BrowserDetector } from './utils/BrowserDetector';
10
- import { BunnyNetProvider } from './providers/BunnyNetProvider';
11
- import { WidevineDRM } from './systems/WidevineDRM';
12
- import { FairPlayDRM } from './systems/FairPlayDRM';
13
- import { PlayReadyDRM } from './systems/PlayReadyDRM';
14
- import { BaseDRM } from './systems/BaseDRM';
15
- import { DRMErrorHandler } from './utils/DRMErrorHandler';
16
-
17
- export class DRMManager {
18
- private videoElement: HTMLVideoElement;
19
- private config: ExtendedDRMConfig;
20
- private drmSystem: BaseDRM | null = null;
21
- private browserDetector: BrowserDetector;
22
- private debug: boolean = false;
23
-
24
- constructor(videoElement: HTMLVideoElement, config: DRMConfig, debug: boolean = false) {
25
- this.videoElement = videoElement;
26
- this.config = this.normalizeConfig(config);
27
- this.debug = debug || this.config.debug || false;
28
- this.browserDetector = BrowserDetector.getInstance();
29
- }
30
-
31
- /**
32
- * Initialize DRM system based on browser capabilities
33
- */
34
- async initialize(): Promise<DRMInitResult> {
35
- try {
36
- this.log('Initializing DRM system...');
37
-
38
- // Detect browser capabilities
39
- const capabilities = await this.browserDetector.detectCapabilities();
40
- this.log('Browser DRM capabilities:', capabilities);
41
-
42
- // Determine which DRM system to use
43
- const drmType = this.selectDRMType(capabilities);
44
- if (!drmType) {
45
- const browserName = this.browserDetector.getBrowserName();
46
- throw DRMErrorHandler.createError(
47
- DRMErrorCode.UNSUPPORTED_BROWSER,
48
- `No supported DRM system found in ${browserName}. Please use Chrome, Safari, Firefox, or Edge.`,
49
- true,
50
- { browser: browserName, capabilities }
51
- );
52
- }
53
-
54
- this.log(`Selected DRM type: ${drmType}`);
55
-
56
- // Create appropriate DRM system
57
- this.drmSystem = this.createDRMSystem(drmType);
58
-
59
- // Initialize the DRM system
60
- await this.drmSystem.initialize();
61
-
62
- return {
63
- success: true,
64
- drmType,
65
- keySystem: this.drmSystem.getKeySystem(),
66
- };
67
- } catch (error: any) {
68
- this.log('DRM initialization failed:', error);
69
-
70
- const drmError = error.code && error.code.startsWith('DRM_')
71
- ? error
72
- : DRMErrorHandler.createError(
73
- DRMErrorCode.CONFIGURATION_ERROR,
74
- error.message || 'DRM initialization failed',
75
- true,
76
- error
77
- );
78
-
79
- return {
80
- success: false,
81
- drmType: this.config.type,
82
- keySystem: '',
83
- error: drmError,
84
- };
85
- }
86
- }
87
-
88
- /**
89
- * Get HLS.js configuration for DRM
90
- */
91
- getHLSConfig(): any {
92
- if (!this.drmSystem) {
93
- throw new Error('DRM system not initialized. Call initialize() first.');
94
- }
95
-
96
- return this.drmSystem.getHLSConfig();
97
- }
98
-
99
- /**
100
- * Get dash.js protection data for DRM
101
- */
102
- getDashProtectionData(): any {
103
- if (!this.drmSystem) {
104
- throw new Error('DRM system not initialized. Call initialize() first.');
105
- }
106
-
107
- return this.drmSystem.getDashProtectionData();
108
- }
109
-
110
- /**
111
- * Cleanup DRM resources
112
- */
113
- async destroy(): Promise<void> {
114
- if (this.drmSystem) {
115
- this.log('Destroying DRM system');
116
- await this.drmSystem.destroy();
117
- this.drmSystem = null;
118
- }
119
- }
120
-
121
- /**
122
- * Select appropriate DRM type based on config and capabilities
123
- */
124
- private selectDRMType(capabilities: DRMCapabilities): DRMType | null {
125
- // If config specifies a type and it's supported, use it
126
- if (this.config.type) {
127
- const typeSupported = this.isDRMTypeSupported(this.config.type, capabilities);
128
- if (typeSupported) {
129
- return this.config.type;
130
- }
131
-
132
- this.log(`Requested DRM type ${this.config.type} not supported, falling back to browser default`);
133
- }
134
-
135
- // Otherwise, use browser's preferred DRM system
136
- return capabilities.supportedType;
137
- }
138
-
139
- /**
140
- * Check if specific DRM type is supported
141
- */
142
- private isDRMTypeSupported(drmType: DRMType, capabilities: DRMCapabilities): boolean {
143
- switch (drmType) {
144
- case DRMType.WIDEVINE:
145
- return capabilities.widevine;
146
- case DRMType.FAIRPLAY:
147
- return capabilities.fairplay;
148
- case DRMType.PLAYREADY:
149
- return capabilities.playready;
150
- default:
151
- return false;
152
- }
153
- }
154
-
155
- /**
156
- * Create DRM system instance
157
- */
158
- private createDRMSystem(drmType: DRMType): BaseDRM {
159
- switch (drmType) {
160
- case DRMType.FAIRPLAY:
161
- return new FairPlayDRM(this.videoElement, this.config, this.debug);
162
-
163
- case DRMType.WIDEVINE:
164
- return new WidevineDRM(this.videoElement, this.config, this.debug);
165
-
166
- case DRMType.PLAYREADY:
167
- return new PlayReadyDRM(this.videoElement, this.config, this.debug);
168
-
169
- default:
170
- throw DRMErrorHandler.createError(
171
- DRMErrorCode.CONFIGURATION_ERROR,
172
- `Unsupported DRM type: ${drmType}`,
173
- true
174
- );
175
- }
176
- }
177
-
178
- /**
179
- * Normalize and enrich DRM config
180
- */
181
- private normalizeConfig(config: DRMConfig): ExtendedDRMConfig {
182
- const extended = { ...config } as ExtendedDRMConfig;
183
-
184
- // Auto-detect Bunny.net and enhance config
185
- if (BunnyNetProvider.isBunnyNetConfig(config)) {
186
- extended.provider = 'bunny';
187
-
188
- // Extract IDs if available
189
- const ids = BunnyNetProvider.extractIdsFromUrl(config.licenseUrl);
190
- if (ids.libraryId) extended.libraryId = ids.libraryId;
191
- if (ids.videoId) extended.videoId = ids.videoId;
192
-
193
- this.log('Detected Bunny.net DRM configuration');
194
- }
195
-
196
- // Set defaults
197
- extended.retryConfig = extended.retryConfig || {
198
- maxRetries: 3,
199
- retryDelay: 1000,
200
- };
201
-
202
- return extended;
203
- }
204
-
205
- /**
206
- * Debug logging
207
- */
208
- private log(...args: any[]): void {
209
- if (this.debug) {
210
- console.log('[DRMManager]', ...args);
211
- }
212
- }
213
- }
1
+ /**
2
+ * DRM Manager
3
+ * Main orchestrator for all DRM systems
4
+ * Provides a unified interface for HLS.js, dash.js, and native playback
5
+ */
6
+
7
+ import type { DRMType, DRMConfig } from '@unified-video/core';
8
+ import { DRMType as DRMTypeEnum } from '@unified-video/core';
9
+ import { ExtendedDRMConfig, DRMInitResult, DRMError, DRMErrorCode, DRMCapabilities } from './types/DRMTypes';
10
+ import { BrowserDetector } from './utils/BrowserDetector';
11
+ import { BunnyNetProvider } from './providers/BunnyNetProvider';
12
+ import { WidevineDRM } from './systems/WidevineDRM';
13
+ import { FairPlayDRM } from './systems/FairPlayDRM';
14
+ import { PlayReadyDRM } from './systems/PlayReadyDRM';
15
+ import { BaseDRM } from './systems/BaseDRM';
16
+ import { DRMErrorHandler } from './utils/DRMErrorHandler';
17
+
18
+ export class DRMManager {
19
+ private videoElement: HTMLVideoElement;
20
+ private config: ExtendedDRMConfig;
21
+ private drmSystem: BaseDRM | null = null;
22
+ private browserDetector: BrowserDetector;
23
+ private debug: boolean = false;
24
+
25
+ constructor(videoElement: HTMLVideoElement, config: DRMConfig, debug: boolean = false) {
26
+ this.videoElement = videoElement;
27
+ this.config = this.normalizeConfig(config);
28
+ this.debug = debug || this.config.debug || false;
29
+ this.browserDetector = BrowserDetector.getInstance();
30
+ }
31
+
32
+ /**
33
+ * Initialize DRM system based on browser capabilities
34
+ */
35
+ async initialize(): Promise<DRMInitResult> {
36
+ try {
37
+ this.log('Initializing DRM system...');
38
+
39
+ // Detect browser capabilities
40
+ const capabilities = await this.browserDetector.detectCapabilities();
41
+ this.log('Browser DRM capabilities:', capabilities);
42
+
43
+ // Determine which DRM system to use
44
+ const drmType = this.selectDRMType(capabilities);
45
+ if (!drmType) {
46
+ const browserName = this.browserDetector.getBrowserName();
47
+ throw DRMErrorHandler.createError(
48
+ DRMErrorCode.UNSUPPORTED_BROWSER,
49
+ `No supported DRM system found in ${browserName}. Please use Chrome, Safari, Firefox, or Edge.`,
50
+ true,
51
+ { browser: browserName, capabilities }
52
+ );
53
+ }
54
+
55
+ this.log(`Selected DRM type: ${drmType}`);
56
+
57
+ // Create appropriate DRM system
58
+ this.drmSystem = this.createDRMSystem(drmType);
59
+
60
+ // Initialize the DRM system
61
+ await this.drmSystem.initialize();
62
+
63
+ return {
64
+ success: true,
65
+ drmType,
66
+ keySystem: this.drmSystem.getKeySystem(),
67
+ };
68
+ } catch (error: any) {
69
+ this.log('DRM initialization failed:', error);
70
+
71
+ const drmError = error.code && error.code.startsWith('DRM_')
72
+ ? error
73
+ : DRMErrorHandler.createError(
74
+ DRMErrorCode.CONFIGURATION_ERROR,
75
+ error.message || 'DRM initialization failed',
76
+ true,
77
+ error
78
+ );
79
+
80
+ return {
81
+ success: false,
82
+ drmType: this.config.type,
83
+ keySystem: '',
84
+ error: drmError,
85
+ };
86
+ }
87
+ }
88
+
89
+ /**
90
+ * Get HLS.js configuration for DRM
91
+ */
92
+ getHLSConfig(): any {
93
+ if (!this.drmSystem) {
94
+ throw new Error('DRM system not initialized. Call initialize() first.');
95
+ }
96
+
97
+ return this.drmSystem.getHLSConfig();
98
+ }
99
+
100
+ /**
101
+ * Get dash.js protection data for DRM
102
+ */
103
+ getDashProtectionData(): any {
104
+ if (!this.drmSystem) {
105
+ throw new Error('DRM system not initialized. Call initialize() first.');
106
+ }
107
+
108
+ return this.drmSystem.getDashProtectionData();
109
+ }
110
+
111
+ /**
112
+ * Cleanup DRM resources
113
+ */
114
+ async destroy(): Promise<void> {
115
+ if (this.drmSystem) {
116
+ this.log('Destroying DRM system');
117
+ await this.drmSystem.destroy();
118
+ this.drmSystem = null;
119
+ }
120
+ }
121
+
122
+ /**
123
+ * Select appropriate DRM type based on config and capabilities
124
+ */
125
+ private selectDRMType(capabilities: DRMCapabilities): DRMType | null {
126
+ // If config specifies a type and it's supported, use it
127
+ if (this.config.type) {
128
+ const typeSupported = this.isDRMTypeSupported(this.config.type, capabilities);
129
+ if (typeSupported) {
130
+ return this.config.type;
131
+ }
132
+
133
+ this.log(`Requested DRM type ${this.config.type} not supported, falling back to browser default`);
134
+ }
135
+
136
+ // Otherwise, use browser's preferred DRM system
137
+ return capabilities.supportedType;
138
+ }
139
+
140
+ /**
141
+ * Check if specific DRM type is supported
142
+ */
143
+ private isDRMTypeSupported(drmType: DRMType, capabilities: DRMCapabilities): boolean {
144
+ switch (drmType) {
145
+ case DRMTypeEnum.WIDEVINE:
146
+ return capabilities.widevine;
147
+ case DRMTypeEnum.FAIRPLAY:
148
+ return capabilities.fairplay;
149
+ case DRMTypeEnum.PLAYREADY:
150
+ return capabilities.playready;
151
+ default:
152
+ return false;
153
+ }
154
+ }
155
+
156
+ /**
157
+ * Create DRM system instance
158
+ */
159
+ private createDRMSystem(drmType: DRMType): BaseDRM {
160
+ switch (drmType) {
161
+ case DRMTypeEnum.FAIRPLAY:
162
+ return new FairPlayDRM(this.videoElement, this.config, this.debug);
163
+
164
+ case DRMTypeEnum.WIDEVINE:
165
+ return new WidevineDRM(this.videoElement, this.config, this.debug);
166
+
167
+ case DRMTypeEnum.PLAYREADY:
168
+ return new PlayReadyDRM(this.videoElement, this.config, this.debug);
169
+
170
+ default:
171
+ throw DRMErrorHandler.createError(
172
+ DRMErrorCode.CONFIGURATION_ERROR,
173
+ `Unsupported DRM type: ${drmType}`,
174
+ true
175
+ );
176
+ }
177
+ }
178
+
179
+ /**
180
+ * Normalize and enrich DRM config
181
+ */
182
+ private normalizeConfig(config: DRMConfig): ExtendedDRMConfig {
183
+ const extended = { ...config } as ExtendedDRMConfig;
184
+
185
+ // Auto-detect Bunny.net and enhance config
186
+ if (BunnyNetProvider.isBunnyNetConfig(config)) {
187
+ extended.provider = 'bunny';
188
+
189
+ // Extract IDs if available
190
+ const ids = BunnyNetProvider.extractIdsFromUrl(config.licenseUrl);
191
+ if (ids.libraryId) extended.libraryId = ids.libraryId;
192
+ if (ids.videoId) extended.videoId = ids.videoId;
193
+
194
+ this.log('Detected Bunny.net DRM configuration');
195
+ }
196
+
197
+ // Set defaults
198
+ extended.retryConfig = extended.retryConfig || {
199
+ maxRetries: 3,
200
+ retryDelay: 1000,
201
+ };
202
+
203
+ return extended;
204
+ }
205
+
206
+ /**
207
+ * Debug logging
208
+ */
209
+ private log(...args: any[]): void {
210
+ if (this.debug) {
211
+ console.log('[DRMManager]', ...args);
212
+ }
213
+ }
214
+ }
@@ -1,37 +1,37 @@
1
- /**
2
- * DRM System - Public API
3
- * Exports for the DRM system
4
- */
5
-
6
- // Main DRM Manager
7
- export { DRMManager } from './DRMManager';
8
-
9
- // Providers
10
- export { BunnyNetProvider } from './providers/BunnyNetProvider';
11
- export { GenericProvider } from './providers/GenericProvider';
12
-
13
- // Types
14
- export type {
15
- ExtendedDRMConfig,
16
- DRMCapabilities,
17
- LicenseRequest,
18
- LicenseResponse,
19
- DRMInitResult,
20
- DRMError,
21
- } from './types/DRMTypes';
22
-
23
- export { DRMErrorCode, KEY_SYSTEMS } from './types/DRMTypes';
24
-
25
- export type { BunnyNetConfig, BunnyNetEndpoints } from './types/BunnyNetTypes';
26
- export { BUNNY_NET_BASE_URL, BUNNY_NET_ENDPOINTS } from './types/BunnyNetTypes';
27
-
28
- // Utilities
29
- export { BrowserDetector } from './utils/BrowserDetector';
30
- export { DRMErrorHandler } from './utils/DRMErrorHandler';
31
- export { CertificateManager } from './utils/CertificateManager';
32
-
33
- // DRM Systems (for advanced usage)
34
- export { BaseDRM } from './systems/BaseDRM';
35
- export { WidevineDRM } from './systems/WidevineDRM';
36
- export { FairPlayDRM } from './systems/FairPlayDRM';
37
- export { PlayReadyDRM } from './systems/PlayReadyDRM';
1
+ /**
2
+ * DRM System - Public API
3
+ * Exports for the DRM system
4
+ */
5
+
6
+ // Main DRM Manager
7
+ export { DRMManager } from './DRMManager';
8
+
9
+ // Providers
10
+ export { BunnyNetProvider } from './providers/BunnyNetProvider';
11
+ export { GenericProvider } from './providers/GenericProvider';
12
+
13
+ // Types
14
+ export type {
15
+ ExtendedDRMConfig,
16
+ DRMCapabilities,
17
+ LicenseRequest,
18
+ LicenseResponse,
19
+ DRMInitResult,
20
+ DRMError,
21
+ } from './types/DRMTypes';
22
+
23
+ export { DRMErrorCode, KEY_SYSTEMS } from './types/DRMTypes';
24
+
25
+ export type { BunnyNetConfig, BunnyNetEndpoints } from './types/BunnyNetTypes';
26
+ export { BUNNY_NET_BASE_URL, BUNNY_NET_ENDPOINTS } from './types/BunnyNetTypes';
27
+
28
+ // Utilities
29
+ export { BrowserDetector } from './utils/BrowserDetector';
30
+ export { DRMErrorHandler } from './utils/DRMErrorHandler';
31
+ export { CertificateManager } from './utils/CertificateManager';
32
+
33
+ // DRM Systems (for advanced usage)
34
+ export { BaseDRM } from './systems/BaseDRM';
35
+ export { WidevineDRM } from './systems/WidevineDRM';
36
+ export { FairPlayDRM } from './systems/FairPlayDRM';
37
+ export { PlayReadyDRM } from './systems/PlayReadyDRM';