unified-video-framework 1.4.444 → 1.4.445

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 (119) hide show
  1. package/package.json +1 -1
  2. package/packages/core/dist/version.d.ts +1 -1
  3. package/packages/core/dist/version.js +1 -1
  4. package/packages/core/src/version.ts +1 -1
  5. package/packages/web/dist/WebPlayer.d.ts.map +1 -1
  6. package/packages/web/dist/WebPlayer.js +52 -19
  7. package/packages/web/dist/WebPlayer.js.map +1 -1
  8. package/packages/web/src/WebPlayer.ts +62 -19
  9. package/packages/web/dist/WebPlayer.d.ts +0 -350
  10. package/packages/web/dist/ads/GoogleAdsManager.d.ts +0 -57
  11. package/packages/web/dist/ads/LiveStreamAdsManager.d.ts +0 -29
  12. package/packages/web/dist/ads/LiveStreamAdsManager.d.ts.map +0 -1
  13. package/packages/web/dist/ads/LiveStreamAdsManager.js +0 -168
  14. package/packages/web/dist/ads/LiveStreamAdsManager.js.map +0 -1
  15. package/packages/web/dist/chapters/ChapterManager.d.ts +0 -42
  16. package/packages/web/dist/chapters/CreditsButtonController.d.ts +0 -46
  17. package/packages/web/dist/chapters/SkipButtonController.d.ts +0 -31
  18. package/packages/web/dist/chapters/UserPreferencesManager.d.ts +0 -25
  19. package/packages/web/dist/chapters/index.d.ts +0 -12
  20. package/packages/web/dist/chapters/types/ChapterTypes.d.ts +0 -136
  21. package/packages/web/dist/drm/BunnyCDNDRMProvider.d.ts +0 -13
  22. package/packages/web/dist/drm/BunnyCDNDRMProvider.d.ts.map +0 -1
  23. package/packages/web/dist/drm/BunnyCDNDRMProvider.js +0 -65
  24. package/packages/web/dist/drm/BunnyCDNDRMProvider.js.map +0 -1
  25. package/packages/web/dist/drm/DRMManager.d.ts +0 -20
  26. package/packages/web/dist/drm/DRMManager.d.ts.map +0 -1
  27. package/packages/web/dist/drm/DRMManager.js +0 -130
  28. package/packages/web/dist/drm/DRMManager.js.map +0 -1
  29. package/packages/web/dist/drm/FairPlayDRMHandler.d.ts +0 -24
  30. package/packages/web/dist/drm/FairPlayDRMHandler.d.ts.map +0 -1
  31. package/packages/web/dist/drm/FairPlayDRMHandler.js +0 -190
  32. package/packages/web/dist/drm/FairPlayDRMHandler.js.map +0 -1
  33. package/packages/web/dist/drm/WidevineDRMHandler.d.ts +0 -21
  34. package/packages/web/dist/drm/WidevineDRMHandler.d.ts.map +0 -1
  35. package/packages/web/dist/drm/WidevineDRMHandler.js +0 -143
  36. package/packages/web/dist/drm/WidevineDRMHandler.js.map +0 -1
  37. package/packages/web/dist/drm/index.d.ts +0 -15
  38. package/packages/web/dist/drm/index.d.ts.map +0 -1
  39. package/packages/web/dist/drm/index.js +0 -13
  40. package/packages/web/dist/drm/index.js.map +0 -1
  41. package/packages/web/dist/drm/providers/BunnyNetProvider.d.ts +0 -19
  42. package/packages/web/dist/drm/providers/BunnyNetProvider.d.ts.map +0 -1
  43. package/packages/web/dist/drm/providers/BunnyNetProvider.js +0 -112
  44. package/packages/web/dist/drm/providers/BunnyNetProvider.js.map +0 -1
  45. package/packages/web/dist/drm/providers/GenericProvider.d.ts +0 -30
  46. package/packages/web/dist/drm/providers/GenericProvider.d.ts.map +0 -1
  47. package/packages/web/dist/drm/providers/GenericProvider.js +0 -104
  48. package/packages/web/dist/drm/providers/GenericProvider.js.map +0 -1
  49. package/packages/web/dist/drm/systems/BaseDRM.d.ts +0 -18
  50. package/packages/web/dist/drm/systems/BaseDRM.d.ts.map +0 -1
  51. package/packages/web/dist/drm/systems/BaseDRM.js +0 -29
  52. package/packages/web/dist/drm/systems/BaseDRM.js.map +0 -1
  53. package/packages/web/dist/drm/systems/FairPlayDRM.d.ts +0 -32
  54. package/packages/web/dist/drm/systems/FairPlayDRM.d.ts.map +0 -1
  55. package/packages/web/dist/drm/systems/FairPlayDRM.js +0 -208
  56. package/packages/web/dist/drm/systems/FairPlayDRM.js.map +0 -1
  57. package/packages/web/dist/drm/systems/PlayReadyDRM.d.ts +0 -9
  58. package/packages/web/dist/drm/systems/PlayReadyDRM.d.ts.map +0 -1
  59. package/packages/web/dist/drm/systems/PlayReadyDRM.js +0 -114
  60. package/packages/web/dist/drm/systems/PlayReadyDRM.js.map +0 -1
  61. package/packages/web/dist/drm/systems/WidevineDRM.d.ts +0 -9
  62. package/packages/web/dist/drm/systems/WidevineDRM.d.ts.map +0 -1
  63. package/packages/web/dist/drm/systems/WidevineDRM.js +0 -159
  64. package/packages/web/dist/drm/systems/WidevineDRM.js.map +0 -1
  65. package/packages/web/dist/drm/types/BunnyNetTypes.d.ts +0 -20
  66. package/packages/web/dist/drm/types/BunnyNetTypes.d.ts.map +0 -1
  67. package/packages/web/dist/drm/types/BunnyNetTypes.js +0 -8
  68. package/packages/web/dist/drm/types/BunnyNetTypes.js.map +0 -1
  69. package/packages/web/dist/drm/types/DRMTypes.d.ts +0 -60
  70. package/packages/web/dist/drm/types/DRMTypes.d.ts.map +0 -1
  71. package/packages/web/dist/drm/types/DRMTypes.js +0 -22
  72. package/packages/web/dist/drm/types/DRMTypes.js.map +0 -1
  73. package/packages/web/dist/drm/utils/BrowserDetector.d.ts +0 -20
  74. package/packages/web/dist/drm/utils/BrowserDetector.d.ts.map +0 -1
  75. package/packages/web/dist/drm/utils/BrowserDetector.js +0 -211
  76. package/packages/web/dist/drm/utils/BrowserDetector.js.map +0 -1
  77. package/packages/web/dist/drm/utils/CertificateManager.d.ts +0 -15
  78. package/packages/web/dist/drm/utils/CertificateManager.d.ts.map +0 -1
  79. package/packages/web/dist/drm/utils/CertificateManager.js +0 -46
  80. package/packages/web/dist/drm/utils/CertificateManager.js.map +0 -1
  81. package/packages/web/dist/drm/utils/DRMErrorHandler.d.ts +0 -7
  82. package/packages/web/dist/drm/utils/DRMErrorHandler.d.ts.map +0 -1
  83. package/packages/web/dist/drm/utils/DRMErrorHandler.js +0 -49
  84. package/packages/web/dist/drm/utils/DRMErrorHandler.js.map +0 -1
  85. package/packages/web/dist/drm/utils/LicenseRequestHandler.d.ts +0 -15
  86. package/packages/web/dist/drm/utils/LicenseRequestHandler.d.ts.map +0 -1
  87. package/packages/web/dist/drm/utils/LicenseRequestHandler.js +0 -110
  88. package/packages/web/dist/drm/utils/LicenseRequestHandler.js.map +0 -1
  89. package/packages/web/dist/drm.d.ts +0 -4
  90. package/packages/web/dist/drm.js +0 -5
  91. package/packages/web/dist/index.d.ts +0 -7
  92. package/packages/web/dist/paywall/EmailAuthController.d.ts +0 -60
  93. package/packages/web/dist/paywall/PaywallController.d.ts +0 -74
  94. package/packages/web/dist/react/EPG.d.ts +0 -8
  95. package/packages/web/dist/react/WebPlayerView.d.ts +0 -397
  96. package/packages/web/dist/react/WebPlayerViewWithEPG.d.ts +0 -97
  97. package/packages/web/dist/react/components/ChapterProgress.d.ts +0 -22
  98. package/packages/web/dist/react/components/EPGNavigationControls.d.ts +0 -15
  99. package/packages/web/dist/react/components/EPGOverlay-improved-positioning.d.ts +0 -5
  100. package/packages/web/dist/react/components/EPGOverlay.d.ts +0 -5
  101. package/packages/web/dist/react/components/EPGProgramDetails.d.ts +0 -13
  102. package/packages/web/dist/react/components/EPGProgramGrid.d.ts +0 -19
  103. package/packages/web/dist/react/components/EPGTimelineHeader.d.ts +0 -16
  104. package/packages/web/dist/react/components/SkipButton.d.ts +0 -18
  105. package/packages/web/dist/react/components/commerce/ProductBadge.d.ts +0 -10
  106. package/packages/web/dist/react/components/commerce/ProductPanel.d.ts +0 -13
  107. package/packages/web/dist/react/examples/google-ads-example.d.ts +0 -4
  108. package/packages/web/dist/react/examples/live-stream-ads-example.d.ts +0 -8
  109. package/packages/web/dist/react/examples/live-stream-ads-example.d.ts.map +0 -1
  110. package/packages/web/dist/react/examples/live-stream-ads-example.js +0 -177
  111. package/packages/web/dist/react/examples/live-stream-ads-example.js.map +0 -1
  112. package/packages/web/dist/react/hooks/useChapters.d.ts +0 -29
  113. package/packages/web/dist/react/hooks/useCommerceSync.d.ts +0 -8
  114. package/packages/web/dist/react/types/EPGTypes.d.ts +0 -101
  115. package/packages/web/dist/react/types/FlashNewsTickerTypes.d.ts +0 -146
  116. package/packages/web/dist/react/types/VideoCommerceTypes.d.ts +0 -109
  117. package/packages/web/dist/react/utils/EPGUtils.d.ts +0 -21
  118. package/packages/web/dist/test/epg-test.d.ts +0 -3
  119. package/packages/web/dist/utils/YouTubeExtractor.d.ts +0 -38
@@ -1,211 +0,0 @@
1
- import { KEY_SYSTEMS } from "../types/DRMTypes.js";
2
- import { DRMType as DRMTypeEnum } from "../../../../core/dist/index.js";
3
- export class BrowserDetector {
4
- constructor() {
5
- this.capabilities = null;
6
- }
7
- static getInstance() {
8
- if (!BrowserDetector.instance) {
9
- BrowserDetector.instance = new BrowserDetector();
10
- }
11
- return BrowserDetector.instance;
12
- }
13
- async detectCapabilities() {
14
- if (this.capabilities) {
15
- return this.capabilities;
16
- }
17
- const capabilities = {
18
- widevine: false,
19
- fairplay: false,
20
- playready: false,
21
- supportedType: null,
22
- };
23
- if (this.isSafari() || this.isWebKitBased()) {
24
- capabilities.fairplay = await this.checkFairPlaySupport();
25
- if (capabilities.fairplay) {
26
- capabilities.supportedType = DRMTypeEnum.FAIRPLAY;
27
- }
28
- }
29
- if (!capabilities.supportedType) {
30
- capabilities.widevine = await this.checkWidevineSupport();
31
- if (capabilities.widevine) {
32
- capabilities.supportedType = DRMTypeEnum.WIDEVINE;
33
- }
34
- }
35
- if (!capabilities.supportedType && this.isEdge()) {
36
- capabilities.playready = await this.checkPlayReadySupport();
37
- if (capabilities.playready) {
38
- capabilities.supportedType = DRMTypeEnum.PLAYREADY;
39
- }
40
- }
41
- this.capabilities = capabilities;
42
- return capabilities;
43
- }
44
- async getRecommendedDRMType() {
45
- const caps = await this.detectCapabilities();
46
- return caps.supportedType;
47
- }
48
- async isDRMTypeSupported(drmType) {
49
- const caps = await this.detectCapabilities();
50
- switch (drmType) {
51
- case DRMTypeEnum.WIDEVINE:
52
- return caps.widevine;
53
- case DRMTypeEnum.FAIRPLAY:
54
- return caps.fairplay;
55
- case DRMTypeEnum.PLAYREADY:
56
- return caps.playready;
57
- default:
58
- return false;
59
- }
60
- }
61
- isSafari() {
62
- const ua = navigator.userAgent.toLowerCase();
63
- return ua.includes('safari') && !ua.includes('chrome') && !ua.includes('chromium');
64
- }
65
- isWebKitBased() {
66
- return 'WebKitMediaKeys' in window;
67
- }
68
- isEdge() {
69
- const ua = navigator.userAgent.toLowerCase();
70
- return ua.includes('edg/');
71
- }
72
- async checkFairPlaySupport() {
73
- try {
74
- if ('WebKitMediaKeys' in window) {
75
- return true;
76
- }
77
- if (navigator.requestMediaKeySystemAccess) {
78
- const config = [{
79
- initDataTypes: ['sinf', 'skd'],
80
- videoCapabilities: [{ contentType: 'application/vnd.apple.mpegurl' }],
81
- }];
82
- for (const keySystem of KEY_SYSTEMS[DRMTypeEnum.FAIRPLAY]) {
83
- try {
84
- await navigator.requestMediaKeySystemAccess(keySystem, config);
85
- return true;
86
- }
87
- catch (e) {
88
- continue;
89
- }
90
- }
91
- }
92
- return false;
93
- }
94
- catch {
95
- return false;
96
- }
97
- }
98
- async checkWidevineSupport() {
99
- try {
100
- if (!navigator.requestMediaKeySystemAccess) {
101
- console.warn('[BrowserDetector] EME API (requestMediaKeySystemAccess) not available. Secure context check:', window.isSecureContext);
102
- return false;
103
- }
104
- const configs = [
105
- {
106
- initDataTypes: ['cenc'],
107
- videoCapabilities: [{
108
- contentType: 'video/mp4; codecs="avc1.42E01E"',
109
- robustness: 'SW_SECURE_CRYPTO'
110
- }],
111
- audioCapabilities: [{
112
- contentType: 'audio/mp4; codecs="mp4a.40.2"',
113
- robustness: 'SW_SECURE_CRYPTO'
114
- }]
115
- },
116
- {
117
- initDataTypes: ['cenc'],
118
- videoCapabilities: [{
119
- contentType: 'video/mp4; codecs="avc1.42E01E"'
120
- }]
121
- },
122
- {
123
- initDataTypes: ['cenc'],
124
- videoCapabilities: [{
125
- contentType: 'video/mp4; codecs="avc1.4d401e"'
126
- }]
127
- }
128
- ];
129
- for (const keySystem of KEY_SYSTEMS[DRMTypeEnum.WIDEVINE]) {
130
- for (const config of configs) {
131
- try {
132
- await navigator.requestMediaKeySystemAccess(keySystem, [config]);
133
- console.log(`[BrowserDetector] Widevine supported with system: ${keySystem} and config:`, config);
134
- return true;
135
- }
136
- catch (e) {
137
- continue;
138
- }
139
- }
140
- }
141
- console.warn('[BrowserDetector] Widevine support check failed for all configurations');
142
- return false;
143
- }
144
- catch (err) {
145
- console.error('[BrowserDetector] Error checking Widevine support:', err);
146
- return false;
147
- }
148
- }
149
- async checkPlayReadySupport() {
150
- try {
151
- if (!navigator.requestMediaKeySystemAccess) {
152
- return false;
153
- }
154
- const configs = [
155
- {
156
- initDataTypes: ['cenc'],
157
- videoCapabilities: [{
158
- contentType: 'video/mp4; codecs="avc1.42E01E"',
159
- robustness: 'SW_SECURE_CRYPTO'
160
- }],
161
- audioCapabilities: [{
162
- contentType: 'audio/mp4; codecs="mp4a.40.2"',
163
- robustness: 'SW_SECURE_CRYPTO'
164
- }]
165
- },
166
- {
167
- initDataTypes: ['cenc'],
168
- videoCapabilities: [{
169
- contentType: 'video/mp4; codecs="avc1.42E01E"'
170
- }]
171
- }
172
- ];
173
- for (const keySystem of KEY_SYSTEMS[DRMTypeEnum.PLAYREADY]) {
174
- for (const config of configs) {
175
- try {
176
- await navigator.requestMediaKeySystemAccess(keySystem, [config]);
177
- console.log(`[BrowserDetector] PlayReady supported with system: ${keySystem} and config:`, config);
178
- return true;
179
- }
180
- catch (e) {
181
- continue;
182
- }
183
- }
184
- }
185
- console.warn('[BrowserDetector] PlayReady support check failed for all configurations');
186
- return false;
187
- }
188
- catch (err) {
189
- console.error('[BrowserDetector] Error checking PlayReady support:', err);
190
- return false;
191
- }
192
- }
193
- getBrowserName() {
194
- const ua = navigator.userAgent.toLowerCase();
195
- if (ua.includes('edg/'))
196
- return 'Edge';
197
- if (ua.includes('chrome') || ua.includes('chromium'))
198
- return 'Chrome';
199
- if (ua.includes('firefox'))
200
- return 'Firefox';
201
- if (ua.includes('safari'))
202
- return 'Safari';
203
- if (ua.includes('opera') || ua.includes('opr/'))
204
- return 'Opera';
205
- return 'Unknown';
206
- }
207
- resetCapabilities() {
208
- this.capabilities = null;
209
- }
210
- }
211
- //# sourceMappingURL=BrowserDetector.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"BrowserDetector.js","sourceRoot":"","sources":["../../../src/drm/utils/BrowserDetector.ts"],"names":[],"mappings":"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"}
@@ -1,15 +0,0 @@
1
- export declare class CertificateManager {
2
- private static instance;
3
- private cache;
4
- private maxCacheSize;
5
- private constructor();
6
- static getInstance(): CertificateManager;
7
- getCertificate(url: string): ArrayBuffer | null;
8
- setCertificate(url: string, certificate: ArrayBuffer): void;
9
- hasCertificate(url: string): boolean;
10
- clearCache(): void;
11
- removeCertificate(url: string): boolean;
12
- getCacheSize(): number;
13
- setMaxCacheSize(size: number): void;
14
- }
15
- //# sourceMappingURL=CertificateManager.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"CertificateManager.d.ts","sourceRoot":"","sources":["../../../src/drm/utils/CertificateManager.ts"],"names":[],"mappings":"AAKA,qBAAa,kBAAkB;IAC7B,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAqB;IAC5C,OAAO,CAAC,KAAK,CAA2B;IACxC,OAAO,CAAC,YAAY,CAAc;IAElC,OAAO;IAIP,MAAM,CAAC,WAAW,IAAI,kBAAkB;IAUxC,cAAc,CAAC,GAAG,EAAE,MAAM,GAAG,WAAW,GAAG,IAAI;IAO/C,cAAc,CAAC,GAAG,EAAE,MAAM,EAAE,WAAW,EAAE,WAAW,GAAG,IAAI;IAe3D,cAAc,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO;IAOpC,UAAU,IAAI,IAAI;IAOlB,iBAAiB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO;IAOvC,YAAY,IAAI,MAAM;IAOtB,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;CAWpC"}
@@ -1,46 +0,0 @@
1
- export class CertificateManager {
2
- constructor() {
3
- this.maxCacheSize = 10;
4
- this.cache = new Map();
5
- }
6
- static getInstance() {
7
- if (!CertificateManager.instance) {
8
- CertificateManager.instance = new CertificateManager();
9
- }
10
- return CertificateManager.instance;
11
- }
12
- getCertificate(url) {
13
- return this.cache.get(url) || null;
14
- }
15
- setCertificate(url, certificate) {
16
- if (this.cache.size >= this.maxCacheSize && !this.cache.has(url)) {
17
- const firstKey = this.cache.keys().next().value;
18
- if (firstKey) {
19
- this.cache.delete(firstKey);
20
- }
21
- }
22
- this.cache.set(url, certificate);
23
- }
24
- hasCertificate(url) {
25
- return this.cache.has(url);
26
- }
27
- clearCache() {
28
- this.cache.clear();
29
- }
30
- removeCertificate(url) {
31
- return this.cache.delete(url);
32
- }
33
- getCacheSize() {
34
- return this.cache.size;
35
- }
36
- setMaxCacheSize(size) {
37
- this.maxCacheSize = size;
38
- while (this.cache.size > this.maxCacheSize) {
39
- const firstKey = this.cache.keys().next().value;
40
- if (firstKey) {
41
- this.cache.delete(firstKey);
42
- }
43
- }
44
- }
45
- }
46
- //# sourceMappingURL=CertificateManager.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"CertificateManager.js","sourceRoot":"","sources":["../../../src/drm/utils/CertificateManager.ts"],"names":[],"mappings":"AAKA,MAAM,OAAO,kBAAkB;IAK7B;QAFQ,iBAAY,GAAW,EAAE,CAAC;QAGhC,IAAI,CAAC,KAAK,GAAG,IAAI,GAAG,EAAE,CAAC;IACzB,CAAC;IAED,MAAM,CAAC,WAAW;QAChB,IAAI,CAAC,kBAAkB,CAAC,QAAQ,EAAE;YAChC,kBAAkB,CAAC,QAAQ,GAAG,IAAI,kBAAkB,EAAE,CAAC;SACxD;QACD,OAAO,kBAAkB,CAAC,QAAQ,CAAC;IACrC,CAAC;IAKD,cAAc,CAAC,GAAW;QACxB,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC;IACrC,CAAC;IAKD,cAAc,CAAC,GAAW,EAAE,WAAwB;QAElD,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,IAAI,IAAI,CAAC,YAAY,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE;YAChE,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC;YAChD,IAAI,QAAQ,EAAE;gBACZ,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;aAC7B;SACF;QAED,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,WAAW,CAAC,CAAC;IACnC,CAAC;IAKD,cAAc,CAAC,GAAW;QACxB,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAC7B,CAAC;IAKD,UAAU;QACR,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;IACrB,CAAC;IAKD,iBAAiB,CAAC,GAAW;QAC3B,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;IAChC,CAAC;IAKD,YAAY;QACV,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC;IACzB,CAAC;IAKD,eAAe,CAAC,IAAY;QAC1B,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;QAGzB,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,GAAG,IAAI,CAAC,YAAY,EAAE;YAC1C,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC;YAChD,IAAI,QAAQ,EAAE;gBACZ,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;aAC7B;SACF;IACH,CAAC;CACF"}
@@ -1,7 +0,0 @@
1
- import { DRMError, DRMErrorCode } from '../types/DRMTypes';
2
- export declare class DRMErrorHandler {
3
- static getUserFriendlyMessage(error: DRMError): string;
4
- static getTechnicalMessage(error: DRMError): string;
5
- static createError(code: DRMErrorCode, message: string, fatal?: boolean, details?: any, systemError?: any): DRMError;
6
- }
7
- //# sourceMappingURL=DRMErrorHandler.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"DRMErrorHandler.d.ts","sourceRoot":"","sources":["../../../src/drm/utils/DRMErrorHandler.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAE3D,qBAAa,eAAe;IAI1B,MAAM,CAAC,sBAAsB,CAAC,KAAK,EAAE,QAAQ,GAAG,MAAM;IAwCtD,MAAM,CAAC,mBAAmB,CAAC,KAAK,EAAE,QAAQ,GAAG,MAAM;IAiBnD,MAAM,CAAC,WAAW,CAChB,IAAI,EAAE,YAAY,EAClB,OAAO,EAAE,MAAM,EACf,KAAK,GAAE,OAAc,EACrB,OAAO,CAAC,EAAE,GAAG,EACb,WAAW,CAAC,EAAE,GAAG,GAChB,QAAQ;CASZ"}
@@ -1,49 +0,0 @@
1
- import { DRMErrorCode } from "../types/DRMTypes.js";
2
- export class DRMErrorHandler {
3
- static getUserFriendlyMessage(error) {
4
- switch (error.code) {
5
- case DRMErrorCode.UNSUPPORTED_BROWSER:
6
- return 'DRM is not supported in this browser. Please use Chrome, Safari, Firefox, or Edge.';
7
- case DRMErrorCode.CERTIFICATE_LOAD_FAILED:
8
- return 'Failed to load DRM certificate. Please check your internet connection.';
9
- case DRMErrorCode.LICENSE_REQUEST_FAILED:
10
- return 'Failed to obtain content license. Please check your internet connection and try again.';
11
- case DRMErrorCode.KEY_SYSTEM_ACCESS_DENIED:
12
- return 'Access to DRM system was denied. Please ensure DRM is enabled in your browser settings.';
13
- case DRMErrorCode.MEDIA_KEYS_CREATION_FAILED:
14
- return 'Failed to initialize DRM protection. Please try refreshing the page.';
15
- case DRMErrorCode.SESSION_CREATION_FAILED:
16
- return 'Failed to create secure playback session. Please try again.';
17
- case DRMErrorCode.LICENSE_INVALID:
18
- return 'Invalid or expired content license. You may not have permission to view this content.';
19
- case DRMErrorCode.CONFIGURATION_ERROR:
20
- return 'DRM configuration error. Please contact support.';
21
- case DRMErrorCode.NETWORK_ERROR:
22
- return 'Network error while loading protected content. Please check your internet connection.';
23
- case DRMErrorCode.TIMEOUT:
24
- return 'DRM initialization timed out. Please try again.';
25
- default:
26
- return 'An error occurred while loading protected content. Please try again.';
27
- }
28
- }
29
- static getTechnicalMessage(error) {
30
- let message = `[${error.code}] ${error.message}`;
31
- if (error.details) {
32
- message += `\nDetails: ${JSON.stringify(error.details, null, 2)}`;
33
- }
34
- if (error.systemError) {
35
- message += `\nSystem Error: ${error.systemError}`;
36
- }
37
- return message;
38
- }
39
- static createError(code, message, fatal = true, details, systemError) {
40
- return {
41
- code,
42
- message,
43
- fatal,
44
- details,
45
- systemError,
46
- };
47
- }
48
- }
49
- //# sourceMappingURL=DRMErrorHandler.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"DRMErrorHandler.js","sourceRoot":"","sources":["../../../src/drm/utils/DRMErrorHandler.ts"],"names":[],"mappings":"AAKA,OAAO,EAAY,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAE3D,MAAM,OAAO,eAAe;IAI1B,MAAM,CAAC,sBAAsB,CAAC,KAAe;QAC3C,QAAQ,KAAK,CAAC,IAAI,EAAE;YAClB,KAAK,YAAY,CAAC,mBAAmB;gBACnC,OAAO,oFAAoF,CAAC;YAE9F,KAAK,YAAY,CAAC,uBAAuB;gBACvC,OAAO,wEAAwE,CAAC;YAElF,KAAK,YAAY,CAAC,sBAAsB;gBACtC,OAAO,wFAAwF,CAAC;YAElG,KAAK,YAAY,CAAC,wBAAwB;gBACxC,OAAO,yFAAyF,CAAC;YAEnG,KAAK,YAAY,CAAC,0BAA0B;gBAC1C,OAAO,sEAAsE,CAAC;YAEhF,KAAK,YAAY,CAAC,uBAAuB;gBACvC,OAAO,6DAA6D,CAAC;YAEvE,KAAK,YAAY,CAAC,eAAe;gBAC/B,OAAO,uFAAuF,CAAC;YAEjG,KAAK,YAAY,CAAC,mBAAmB;gBACnC,OAAO,kDAAkD,CAAC;YAE5D,KAAK,YAAY,CAAC,aAAa;gBAC7B,OAAO,uFAAuF,CAAC;YAEjG,KAAK,YAAY,CAAC,OAAO;gBACvB,OAAO,iDAAiD,CAAC;YAE3D;gBACE,OAAO,sEAAsE,CAAC;SACjF;IACH,CAAC;IAKD,MAAM,CAAC,mBAAmB,CAAC,KAAe;QACxC,IAAI,OAAO,GAAG,IAAI,KAAK,CAAC,IAAI,KAAK,KAAK,CAAC,OAAO,EAAE,CAAC;QAEjD,IAAI,KAAK,CAAC,OAAO,EAAE;YACjB,OAAO,IAAI,cAAc,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC;SACnE;QAED,IAAI,KAAK,CAAC,WAAW,EAAE;YACrB,OAAO,IAAI,mBAAmB,KAAK,CAAC,WAAW,EAAE,CAAC;SACnD;QAED,OAAO,OAAO,CAAC;IACjB,CAAC;IAKD,MAAM,CAAC,WAAW,CAChB,IAAkB,EAClB,OAAe,EACf,QAAiB,IAAI,EACrB,OAAa,EACb,WAAiB;QAEjB,OAAO;YACL,IAAI;YACJ,OAAO;YACP,KAAK;YACL,OAAO;YACP,WAAW;SACZ,CAAC;IACJ,CAAC;CACF"}
@@ -1,15 +0,0 @@
1
- import { ExtendedDRMConfig, LicenseRequest, LicenseResponse } from '../types/DRMTypes';
2
- export declare class LicenseRequestHandler {
3
- private config;
4
- private debug;
5
- constructor(config: ExtendedDRMConfig, debug?: boolean);
6
- requestLicense(request: LicenseRequest): Promise<LicenseResponse>;
7
- private makeRequest;
8
- private isFatalError;
9
- private textToArrayBuffer;
10
- private base64ToArrayBuffer;
11
- private delay;
12
- private createError;
13
- private log;
14
- }
15
- //# sourceMappingURL=LicenseRequestHandler.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"LicenseRequestHandler.d.ts","sourceRoot":"","sources":["../../../src/drm/utils/LicenseRequestHandler.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,iBAAiB,EAAE,cAAc,EAAE,eAAe,EAAgB,MAAM,mBAAmB,CAAC;AAErG,qBAAa,qBAAqB;IAChC,OAAO,CAAC,MAAM,CAAoB;IAClC,OAAO,CAAC,KAAK,CAAU;gBAEX,MAAM,EAAE,iBAAiB,EAAE,KAAK,GAAE,OAAe;IAQvD,cAAc,CAAC,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,eAAe,CAAC;YAqCzD,WAAW;IAgEzB,OAAO,CAAC,YAAY;IAiBpB,OAAO,CAAC,iBAAiB;IAQzB,OAAO,CAAC,mBAAmB;IAY3B,OAAO,CAAC,KAAK;IAOb,OAAO,CAAC,WAAW;IAUnB,OAAO,CAAC,GAAG;CAKZ"}
@@ -1,110 +0,0 @@
1
- import { DRMErrorCode } from "../types/DRMTypes.js";
2
- export class LicenseRequestHandler {
3
- constructor(config, debug = false) {
4
- this.config = config;
5
- this.debug = debug;
6
- }
7
- async requestLicense(request) {
8
- const maxRetries = this.config.retryConfig?.maxRetries || 3;
9
- const retryDelay = this.config.retryConfig?.retryDelay || 1000;
10
- let lastError;
11
- for (let attempt = 0; attempt <= maxRetries; attempt++) {
12
- try {
13
- if (attempt > 0) {
14
- this.log(`Retry attempt ${attempt}/${maxRetries}`);
15
- await this.delay(retryDelay * attempt);
16
- }
17
- const response = await this.makeRequest(request);
18
- return response;
19
- }
20
- catch (error) {
21
- lastError = error;
22
- this.log(`License request failed (attempt ${attempt + 1}/${maxRetries + 1}):`, error);
23
- if (this.isFatalError(error)) {
24
- throw error;
25
- }
26
- }
27
- }
28
- throw this.createError(DRMErrorCode.LICENSE_REQUEST_FAILED, `Failed to request license after ${maxRetries + 1} attempts`, lastError);
29
- }
30
- async makeRequest(request) {
31
- this.log('Requesting license from:', request.url);
32
- try {
33
- const response = await fetch(request.url, {
34
- method: request.method,
35
- headers: request.headers,
36
- body: request.body,
37
- });
38
- if (!response.ok) {
39
- throw this.createError(DRMErrorCode.LICENSE_REQUEST_FAILED, `License server returned ${response.status}: ${response.statusText}`, { status: response.status, statusText: response.statusText });
40
- }
41
- let license;
42
- if (request.responseType === 'arraybuffer') {
43
- license = await response.arrayBuffer();
44
- }
45
- else if (request.responseType === 'text') {
46
- const text = await response.text();
47
- license = this.textToArrayBuffer(text);
48
- }
49
- else if (request.responseType === 'json') {
50
- const json = await response.json();
51
- if (json.license) {
52
- license = this.base64ToArrayBuffer(json.license);
53
- }
54
- else {
55
- throw this.createError(DRMErrorCode.LICENSE_INVALID, 'License response does not contain license field', json);
56
- }
57
- }
58
- else {
59
- license = await response.arrayBuffer();
60
- }
61
- this.log('License received, size:', license.byteLength, 'bytes');
62
- return {
63
- license,
64
- metadata: response.headers,
65
- };
66
- }
67
- catch (error) {
68
- if (error.code && error.code.startsWith('DRM_')) {
69
- throw error;
70
- }
71
- throw this.createError(DRMErrorCode.NETWORK_ERROR, `Network error requesting license: ${error.message}`, error);
72
- }
73
- }
74
- isFatalError(error) {
75
- if (error.details?.status === 401 || error.details?.status === 403) {
76
- return true;
77
- }
78
- if (error.code === DRMErrorCode.LICENSE_INVALID) {
79
- return true;
80
- }
81
- return false;
82
- }
83
- textToArrayBuffer(text) {
84
- const encoder = new TextEncoder();
85
- return encoder.encode(text).buffer;
86
- }
87
- base64ToArrayBuffer(base64) {
88
- const binaryString = atob(base64);
89
- const bytes = new Uint8Array(binaryString.length);
90
- for (let i = 0; i < binaryString.length; i++) {
91
- bytes[i] = binaryString.charCodeAt(i);
92
- }
93
- return bytes.buffer;
94
- }
95
- delay(ms) {
96
- return new Promise(resolve => setTimeout(resolve, ms));
97
- }
98
- createError(code, message, details) {
99
- const error = new Error(message);
100
- error.code = code;
101
- error.details = details;
102
- return error;
103
- }
104
- log(...args) {
105
- if (this.debug) {
106
- console.log('[LicenseRequestHandler]', ...args);
107
- }
108
- }
109
- }
110
- //# sourceMappingURL=LicenseRequestHandler.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"LicenseRequestHandler.js","sourceRoot":"","sources":["../../../src/drm/utils/LicenseRequestHandler.ts"],"names":[],"mappings":"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"}
@@ -1,4 +0,0 @@
1
- /**
2
- * Type declarations - re-export all DRM types from the drm folder
3
- */
4
- export * from './drm/index';
@@ -1,5 +0,0 @@
1
- /**
2
- * Re-export all DRM modules from the drm folder
3
- * This file exists to support import from './drm.js'
4
- */
5
- export * from './drm/index.js';
@@ -1,7 +0,0 @@
1
- export * from '../../core/dist/index';
2
- export { WebPlayer } from './WebPlayer';
3
- export { WebPlayerView } from './react/WebPlayerView';
4
- export * from './react/EPG';
5
- export type { FlashNewsTickerConfig, FlashNewsTickerItem, FlashNewsTickerAPI, TickerDisplayConfig, TickerStyleVariant, TickerLayoutStyle, BroadcastTheme, BroadcastStyleConfig, IntroAnimationType, ItemTransitionType, TwoLineDisplayConfig, TopLineConfig, BottomLineConfig, DecorativeShapesConfig, SeparatorType, ItemCyclingConfig } from './react/types/FlashNewsTickerTypes';
6
- export declare const VERSION = "1.0.0";
7
- //# sourceMappingURL=index.d.ts.map
@@ -1,60 +0,0 @@
1
- import { PaywallConfig } from '@unified-video/core';
2
- export type EmailAuthControllerOptions = {
3
- getOverlayContainer: () => HTMLElement | null;
4
- onAuthSuccess: (userId: string, sessionToken: string, accessData?: any) => void;
5
- onAuthCancel: () => void;
6
- onShow?: () => void;
7
- onClose?: () => void;
8
- };
9
- export type AuthResponse = {
10
- success: boolean;
11
- message?: string;
12
- data?: {
13
- sessionToken?: string;
14
- refreshToken?: string;
15
- userId?: string;
16
- expiresIn?: number;
17
- };
18
- error?: string;
19
- };
20
- export type AuthStep = 'email' | 'otp' | 'loading' | 'error' | 'success';
21
- export declare class EmailAuthController {
22
- private config;
23
- private opts;
24
- private overlayEl;
25
- private currentStep;
26
- private currentEmail;
27
- private resendTimer;
28
- private resendCooldown;
29
- private otpAttempts;
30
- private requestStartTime;
31
- constructor(config: PaywallConfig | null, opts: EmailAuthControllerOptions);
32
- updateConfig(config: PaywallConfig | null): void;
33
- isAuthenticated(): boolean;
34
- getAuthenticatedUserId(): string | null;
35
- openAuthModal(): void;
36
- closeAuthModal(): void;
37
- private ensureOverlay;
38
- private createHeader;
39
- private setStep;
40
- private renderEmailStep;
41
- private renderOtpStep;
42
- private renderLoadingStep;
43
- private renderErrorStep;
44
- private renderSuccessStep;
45
- private requestOtp;
46
- private verifyOtp;
47
- private storeSessionToken;
48
- private getStoredSessionToken;
49
- private storeAuthTokens;
50
- private startResendCooldown;
51
- private clearResendTimer;
52
- private handleCancel;
53
- private showInputError;
54
- private showSuccessMessage;
55
- private showErrorMessage;
56
- private isValidEmail;
57
- logout(): Promise<void>;
58
- destroy(): void;
59
- }
60
- //# sourceMappingURL=EmailAuthController.d.ts.map
@@ -1,74 +0,0 @@
1
- import { PaywallConfig } from '@unified-video/core';
2
- export type PaywallGateway = {
3
- id: string;
4
- name: string;
5
- description?: string;
6
- icon?: string;
7
- color?: string;
8
- };
9
- export type PaymentLinkConfig = {
10
- endpoint: string;
11
- method?: 'POST' | 'GET';
12
- headers?: Record<string, string>;
13
- mapRequest?: (paymentData: any) => any;
14
- mapResponse?: (response: any) => {
15
- url: string;
16
- orderId?: string;
17
- };
18
- popup?: {
19
- width?: number;
20
- height?: number;
21
- features?: string;
22
- };
23
- };
24
- export type PaywallControllerOptions = {
25
- getOverlayContainer: () => HTMLElement | null;
26
- onResume: (accessInfo?: {
27
- accessGranted?: boolean;
28
- paymentSuccessful?: boolean;
29
- }) => void;
30
- onShow?: () => void;
31
- onClose?: () => void;
32
- onPaymentRequested?: (gateway: PaywallGateway, paymentData: any) => Promise<void> | void;
33
- onPaymentSuccess?: (gateway: PaywallGateway, result: any) => void;
34
- onPaymentError?: (gateway: PaywallGateway, error: any) => void;
35
- onPaymentCancel?: (gateway: PaywallGateway) => void;
36
- };
37
- export declare class PaywallController {
38
- private config;
39
- private opts;
40
- private overlayEl;
41
- private gatewayStepEl;
42
- private popup;
43
- private emailAuth;
44
- private authenticatedUserId;
45
- private sessionToken;
46
- private currentGateway;
47
- constructor(config: PaywallConfig | null, opts: PaywallControllerOptions);
48
- updateConfig(config: PaywallConfig | null): void;
49
- openOverlay(): void;
50
- closeOverlay(): void;
51
- private ensureOverlay;
52
- destroyOverlays(): void;
53
- private showGateways;
54
- private getGateways;
55
- private getLegacyGateway;
56
- private createGatewayButton;
57
- private adjustBrightness;
58
- private openGateway;
59
- private startPolling;
60
- private handleGatewayClick;
61
- private handlePaymentLink;
62
- private onMessage;
63
- private findGatewayById;
64
- private initializeEmailAuth;
65
- private openPaymentOverlay;
66
- isAuthenticated(): boolean;
67
- getAuthenticatedUserId(): string | null;
68
- logout(): Promise<void>;
69
- addGateway(gateway: PaywallGateway): void;
70
- removeGateway(gatewayId: string): void;
71
- getConfiguredGateways(): PaywallGateway[];
72
- destroy(): void;
73
- }
74
- //# sourceMappingURL=PaywallController.d.ts.map