unified-video-framework 1.4.443 → 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 (121) 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 -414
  7. package/packages/web/dist/WebPlayer.js.map +1 -1
  8. package/packages/web/dist/react/types/FlashNewsTickerTypes.d.ts.map +1 -1
  9. package/packages/web/src/WebPlayer.ts +60 -464
  10. package/packages/web/src/react/types/FlashNewsTickerTypes.ts +2 -5
  11. package/packages/web/dist/WebPlayer.d.ts +0 -353
  12. package/packages/web/dist/ads/GoogleAdsManager.d.ts +0 -57
  13. package/packages/web/dist/ads/LiveStreamAdsManager.d.ts +0 -29
  14. package/packages/web/dist/ads/LiveStreamAdsManager.d.ts.map +0 -1
  15. package/packages/web/dist/ads/LiveStreamAdsManager.js +0 -168
  16. package/packages/web/dist/ads/LiveStreamAdsManager.js.map +0 -1
  17. package/packages/web/dist/chapters/ChapterManager.d.ts +0 -42
  18. package/packages/web/dist/chapters/CreditsButtonController.d.ts +0 -46
  19. package/packages/web/dist/chapters/SkipButtonController.d.ts +0 -31
  20. package/packages/web/dist/chapters/UserPreferencesManager.d.ts +0 -25
  21. package/packages/web/dist/chapters/index.d.ts +0 -12
  22. package/packages/web/dist/chapters/types/ChapterTypes.d.ts +0 -136
  23. package/packages/web/dist/drm/BunnyCDNDRMProvider.d.ts +0 -13
  24. package/packages/web/dist/drm/BunnyCDNDRMProvider.d.ts.map +0 -1
  25. package/packages/web/dist/drm/BunnyCDNDRMProvider.js +0 -65
  26. package/packages/web/dist/drm/BunnyCDNDRMProvider.js.map +0 -1
  27. package/packages/web/dist/drm/DRMManager.d.ts +0 -20
  28. package/packages/web/dist/drm/DRMManager.d.ts.map +0 -1
  29. package/packages/web/dist/drm/DRMManager.js +0 -130
  30. package/packages/web/dist/drm/DRMManager.js.map +0 -1
  31. package/packages/web/dist/drm/FairPlayDRMHandler.d.ts +0 -24
  32. package/packages/web/dist/drm/FairPlayDRMHandler.d.ts.map +0 -1
  33. package/packages/web/dist/drm/FairPlayDRMHandler.js +0 -190
  34. package/packages/web/dist/drm/FairPlayDRMHandler.js.map +0 -1
  35. package/packages/web/dist/drm/WidevineDRMHandler.d.ts +0 -21
  36. package/packages/web/dist/drm/WidevineDRMHandler.d.ts.map +0 -1
  37. package/packages/web/dist/drm/WidevineDRMHandler.js +0 -143
  38. package/packages/web/dist/drm/WidevineDRMHandler.js.map +0 -1
  39. package/packages/web/dist/drm/index.d.ts +0 -15
  40. package/packages/web/dist/drm/index.d.ts.map +0 -1
  41. package/packages/web/dist/drm/index.js +0 -13
  42. package/packages/web/dist/drm/index.js.map +0 -1
  43. package/packages/web/dist/drm/providers/BunnyNetProvider.d.ts +0 -19
  44. package/packages/web/dist/drm/providers/BunnyNetProvider.d.ts.map +0 -1
  45. package/packages/web/dist/drm/providers/BunnyNetProvider.js +0 -112
  46. package/packages/web/dist/drm/providers/BunnyNetProvider.js.map +0 -1
  47. package/packages/web/dist/drm/providers/GenericProvider.d.ts +0 -30
  48. package/packages/web/dist/drm/providers/GenericProvider.d.ts.map +0 -1
  49. package/packages/web/dist/drm/providers/GenericProvider.js +0 -104
  50. package/packages/web/dist/drm/providers/GenericProvider.js.map +0 -1
  51. package/packages/web/dist/drm/systems/BaseDRM.d.ts +0 -18
  52. package/packages/web/dist/drm/systems/BaseDRM.d.ts.map +0 -1
  53. package/packages/web/dist/drm/systems/BaseDRM.js +0 -29
  54. package/packages/web/dist/drm/systems/BaseDRM.js.map +0 -1
  55. package/packages/web/dist/drm/systems/FairPlayDRM.d.ts +0 -32
  56. package/packages/web/dist/drm/systems/FairPlayDRM.d.ts.map +0 -1
  57. package/packages/web/dist/drm/systems/FairPlayDRM.js +0 -208
  58. package/packages/web/dist/drm/systems/FairPlayDRM.js.map +0 -1
  59. package/packages/web/dist/drm/systems/PlayReadyDRM.d.ts +0 -9
  60. package/packages/web/dist/drm/systems/PlayReadyDRM.d.ts.map +0 -1
  61. package/packages/web/dist/drm/systems/PlayReadyDRM.js +0 -114
  62. package/packages/web/dist/drm/systems/PlayReadyDRM.js.map +0 -1
  63. package/packages/web/dist/drm/systems/WidevineDRM.d.ts +0 -9
  64. package/packages/web/dist/drm/systems/WidevineDRM.d.ts.map +0 -1
  65. package/packages/web/dist/drm/systems/WidevineDRM.js +0 -159
  66. package/packages/web/dist/drm/systems/WidevineDRM.js.map +0 -1
  67. package/packages/web/dist/drm/types/BunnyNetTypes.d.ts +0 -20
  68. package/packages/web/dist/drm/types/BunnyNetTypes.d.ts.map +0 -1
  69. package/packages/web/dist/drm/types/BunnyNetTypes.js +0 -8
  70. package/packages/web/dist/drm/types/BunnyNetTypes.js.map +0 -1
  71. package/packages/web/dist/drm/types/DRMTypes.d.ts +0 -60
  72. package/packages/web/dist/drm/types/DRMTypes.d.ts.map +0 -1
  73. package/packages/web/dist/drm/types/DRMTypes.js +0 -22
  74. package/packages/web/dist/drm/types/DRMTypes.js.map +0 -1
  75. package/packages/web/dist/drm/utils/BrowserDetector.d.ts +0 -20
  76. package/packages/web/dist/drm/utils/BrowserDetector.d.ts.map +0 -1
  77. package/packages/web/dist/drm/utils/BrowserDetector.js +0 -211
  78. package/packages/web/dist/drm/utils/BrowserDetector.js.map +0 -1
  79. package/packages/web/dist/drm/utils/CertificateManager.d.ts +0 -15
  80. package/packages/web/dist/drm/utils/CertificateManager.d.ts.map +0 -1
  81. package/packages/web/dist/drm/utils/CertificateManager.js +0 -46
  82. package/packages/web/dist/drm/utils/CertificateManager.js.map +0 -1
  83. package/packages/web/dist/drm/utils/DRMErrorHandler.d.ts +0 -7
  84. package/packages/web/dist/drm/utils/DRMErrorHandler.d.ts.map +0 -1
  85. package/packages/web/dist/drm/utils/DRMErrorHandler.js +0 -49
  86. package/packages/web/dist/drm/utils/DRMErrorHandler.js.map +0 -1
  87. package/packages/web/dist/drm/utils/LicenseRequestHandler.d.ts +0 -15
  88. package/packages/web/dist/drm/utils/LicenseRequestHandler.d.ts.map +0 -1
  89. package/packages/web/dist/drm/utils/LicenseRequestHandler.js +0 -110
  90. package/packages/web/dist/drm/utils/LicenseRequestHandler.js.map +0 -1
  91. package/packages/web/dist/drm.d.ts +0 -4
  92. package/packages/web/dist/drm.js +0 -5
  93. package/packages/web/dist/index.d.ts +0 -7
  94. package/packages/web/dist/paywall/EmailAuthController.d.ts +0 -60
  95. package/packages/web/dist/paywall/PaywallController.d.ts +0 -74
  96. package/packages/web/dist/react/EPG.d.ts +0 -8
  97. package/packages/web/dist/react/WebPlayerView.d.ts +0 -397
  98. package/packages/web/dist/react/WebPlayerViewWithEPG.d.ts +0 -97
  99. package/packages/web/dist/react/components/ChapterProgress.d.ts +0 -22
  100. package/packages/web/dist/react/components/EPGNavigationControls.d.ts +0 -15
  101. package/packages/web/dist/react/components/EPGOverlay-improved-positioning.d.ts +0 -5
  102. package/packages/web/dist/react/components/EPGOverlay.d.ts +0 -5
  103. package/packages/web/dist/react/components/EPGProgramDetails.d.ts +0 -13
  104. package/packages/web/dist/react/components/EPGProgramGrid.d.ts +0 -19
  105. package/packages/web/dist/react/components/EPGTimelineHeader.d.ts +0 -16
  106. package/packages/web/dist/react/components/SkipButton.d.ts +0 -18
  107. package/packages/web/dist/react/components/commerce/ProductBadge.d.ts +0 -10
  108. package/packages/web/dist/react/components/commerce/ProductPanel.d.ts +0 -13
  109. package/packages/web/dist/react/examples/google-ads-example.d.ts +0 -4
  110. package/packages/web/dist/react/examples/live-stream-ads-example.d.ts +0 -8
  111. package/packages/web/dist/react/examples/live-stream-ads-example.d.ts.map +0 -1
  112. package/packages/web/dist/react/examples/live-stream-ads-example.js +0 -177
  113. package/packages/web/dist/react/examples/live-stream-ads-example.js.map +0 -1
  114. package/packages/web/dist/react/hooks/useChapters.d.ts +0 -29
  115. package/packages/web/dist/react/hooks/useCommerceSync.d.ts +0 -8
  116. package/packages/web/dist/react/types/EPGTypes.d.ts +0 -101
  117. package/packages/web/dist/react/types/FlashNewsTickerTypes.d.ts +0 -146
  118. package/packages/web/dist/react/types/VideoCommerceTypes.d.ts +0 -109
  119. package/packages/web/dist/react/utils/EPGUtils.d.ts +0 -21
  120. package/packages/web/dist/test/epg-test.d.ts +0 -3
  121. package/packages/web/dist/utils/YouTubeExtractor.d.ts +0 -38
@@ -1,159 +0,0 @@
1
- import { BaseDRM } from "./BaseDRM.js";
2
- import { KEY_SYSTEMS, DRMErrorCode } from "../types/DRMTypes.js";
3
- import { DRMErrorHandler } from "../utils/DRMErrorHandler.js";
4
- import { DRMType as DRMTypeEnum } from "../../../../core/dist/index.js";
5
- export class WidevineDRM extends BaseDRM {
6
- async initialize() {
7
- this.log('Initializing Widevine DRM...');
8
- this.log('Requested robustness - Video:', this.config.videoRobustness || 'SW_SECURE_CRYPTO', 'Audio:', this.config.audioRobustness || 'SW_SECURE_CRYPTO');
9
- try {
10
- const keySystemAccess = await navigator.requestMediaKeySystemAccess(this.getKeySystem(), this.getKeySystemConfiguration());
11
- this.log('Widevine key system access granted');
12
-
13
- // Log the actual configuration that was accepted
14
- const actualConfig = keySystemAccess.getConfiguration();
15
- this.log('✅ GRANTED Configuration:', {
16
- videoRobustness: actualConfig.videoCapabilities?.[0]?.robustness || 'unknown',
17
- audioRobustness: actualConfig.audioCapabilities?.[0]?.robustness || 'unknown',
18
- distinctiveIdentifier: actualConfig.distinctiveIdentifier,
19
- persistentState: actualConfig.persistentState
20
- });
21
-
22
- // Check if fallback happened
23
- const requestedVideoRobustness = this.config.videoRobustness || 'SW_SECURE_CRYPTO';
24
- const grantedVideoRobustness = actualConfig.videoCapabilities?.[0]?.robustness;
25
-
26
- if (requestedVideoRobustness !== grantedVideoRobustness) {
27
- this.log('⚠️ WARNING: Browser fell back from', requestedVideoRobustness, 'to', grantedVideoRobustness);
28
- this.log('⚠️ Screenshot blocking may not work - system does not support hardware overlay');
29
- } else if (requestedVideoRobustness === 'HW_SECURE_DECODE' && grantedVideoRobustness === 'HW_SECURE_DECODE') {
30
- this.log('✅ SUCCESS: Hardware overlay protection active - screenshots should show black screen');
31
- } else {
32
- this.log('ℹ️ Using software DRM - screenshots will be visible');
33
- }
34
-
35
- this.mediaKeys = await keySystemAccess.createMediaKeys();
36
- }
37
- catch (error) {
38
- this.log('Widevine initialization failed:', error);
39
- throw DRMErrorHandler.createError(DRMErrorCode.KEY_SYSTEM_ACCESS_DENIED, 'Failed to access Widevine DRM system', true, error);
40
- }
41
- this.log('Widevine DRM initialized');
42
- }
43
- getKeySystem() {
44
- return KEY_SYSTEMS[DRMTypeEnum.WIDEVINE][0];
45
- }
46
- getHLSConfig() {
47
- this.log('Generating HLS.js config for Widevine');
48
- const licenseUrl = this.config.licenseUrl || this.config.widevineOptions?.licenseUrl;
49
- // Use videoRobustness from config if provided, otherwise fallback to SW_SECURE_CRYPTO
50
- const robustness = this.config.videoRobustness || 'SW_SECURE_CRYPTO';
51
- this.log(`Using video robustness level: ${robustness}`);
52
- return {
53
- emeEnabled: true,
54
- drmSystems: {
55
- [this.getKeySystem()]: {
56
- licenseUrl: licenseUrl,
57
- robustness: robustness,
58
- },
59
- },
60
- requestMediaKeySystemAccessFunc: navigator.requestMediaKeySystemAccess.bind(navigator),
61
- licenseXhrSetup: (xhr, url) => {
62
- this.log(`[LicenseXHR] Requesting license from: ${url}`);
63
- if (this.config.headers) {
64
- Object.keys(this.config.headers).forEach(key => {
65
- xhr.setRequestHeader(key, this.config.headers[key]);
66
- });
67
- }
68
- xhr.addEventListener('readystatechange', () => {
69
- if (xhr.readyState === 4) {
70
- if (xhr.status >= 200 && xhr.status < 300) {
71
- this.log(`[LicenseXHR] License received successfully (Status: ${xhr.status}, Size: ${xhr.response?.byteLength || 0} bytes)`);
72
- }
73
- else {
74
- this.log(`[LicenseXHR] ❌ License request failed! (Status: ${xhr.status}, URL: ${url})`);
75
- if (xhr.responseType === '' || xhr.responseType === 'text') {
76
- this.log(`[LicenseXHR] Response Body: ${xhr.responseText}`);
77
- }
78
- }
79
- }
80
- });
81
- }
82
- };
83
- }
84
- getDashProtectionData() {
85
- this.log('Generating dash.js protection data for Widevine');
86
- const protectionData = {
87
- [this.getKeySystem()]: {
88
- serverURL: this.config.licenseUrl || this.config.widevineOptions?.licenseUrl,
89
- },
90
- };
91
- if (this.config.headers && Object.keys(this.config.headers).length > 0) {
92
- protectionData[this.getKeySystem()].httpRequestHeaders = this.config.headers;
93
- }
94
- if (this.config.widevineOptions?.serverCertificate) {
95
- protectionData[this.getKeySystem()].serverCertificate = this.config.widevineOptions.serverCertificate;
96
- }
97
- return protectionData;
98
- }
99
- getKeySystemConfiguration() {
100
- // Use robustness from config or fallback to SW_SECURE_CRYPTO (L3)
101
- const videoRobustness = this.config.videoRobustness || 'SW_SECURE_CRYPTO';
102
- const audioRobustness = this.config.audioRobustness || 'SW_SECURE_CRYPTO';
103
-
104
- this.log(`Key system config - Video: ${videoRobustness}, Audio: ${audioRobustness}`);
105
-
106
- // Create configuration with multiple robustness fallbacks
107
- const configs = [];
108
-
109
- // Try requested robustness first
110
- configs.push({
111
- initDataTypes: ['cenc'],
112
- audioCapabilities: [{
113
- contentType: 'audio/mp4; codecs="mp4a.40.2"',
114
- robustness: audioRobustness,
115
- }],
116
- videoCapabilities: [
117
- {
118
- contentType: 'video/mp4; codecs="avc1.42E01E"',
119
- robustness: videoRobustness,
120
- },
121
- {
122
- contentType: 'video/mp4; codecs="avc1.4d401f"',
123
- robustness: videoRobustness,
124
- },
125
- ],
126
- distinctiveIdentifier: 'optional',
127
- persistentState: 'optional',
128
- sessionTypes: ['temporary'],
129
- });
130
-
131
- // Fallback to SW_SECURE_CRYPTO if hardware not available
132
- if (videoRobustness !== 'SW_SECURE_CRYPTO') {
133
- this.log('Adding fallback configuration with SW_SECURE_CRYPTO');
134
- configs.push({
135
- initDataTypes: ['cenc'],
136
- audioCapabilities: [{
137
- contentType: 'audio/mp4; codecs="mp4a.40.2"',
138
- robustness: 'SW_SECURE_CRYPTO',
139
- }],
140
- videoCapabilities: [
141
- {
142
- contentType: 'video/mp4; codecs="avc1.42E01E"',
143
- robustness: 'SW_SECURE_CRYPTO',
144
- },
145
- {
146
- contentType: 'video/mp4; codecs="avc1.4d401f"',
147
- robustness: 'SW_SECURE_CRYPTO',
148
- },
149
- ],
150
- distinctiveIdentifier: 'not-allowed',
151
- persistentState: 'not-allowed',
152
- sessionTypes: ['temporary'],
153
- });
154
- }
155
-
156
- return configs;
157
- }
158
- }
159
- //# sourceMappingURL=WidevineDRM.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"WidevineDRM.js","sourceRoot":"","sources":["../../../src/drm/systems/WidevineDRM.ts"],"names":[],"mappings":"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"}
@@ -1,20 +0,0 @@
1
- import type { DRMType } from '@unified-video/core';
2
- export interface BunnyNetConfig {
3
- libraryId: string;
4
- videoId: string;
5
- drmType?: DRMType;
6
- }
7
- export interface BunnyNetEndpoints {
8
- widevine: string;
9
- fairplayCert: string;
10
- fairplayLicense: string;
11
- playready: string;
12
- }
13
- export declare const BUNNY_NET_BASE_URL = "https://video.bunnycdn.com";
14
- export declare const BUNNY_NET_ENDPOINTS: {
15
- WIDEVINE_LICENSE: (libraryId: string, videoId: string) => string;
16
- FAIRPLAY_CERTIFICATE: (libraryId: string) => string;
17
- FAIRPLAY_LICENSE: (libraryId: string, videoId: string) => string;
18
- PLAYREADY_LICENSE: (libraryId: string, videoId: string) => string;
19
- };
20
- //# sourceMappingURL=BunnyNetTypes.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"BunnyNetTypes.d.ts","sourceRoot":"","sources":["../../../src/drm/types/BunnyNetTypes.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAEnD,MAAM,WAAW,cAAc;IAC7B,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,MAAM,WAAW,iBAAiB;IAChC,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,MAAM,CAAC;IACrB,eAAe,EAAE,MAAM,CAAC;IACxB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,eAAO,MAAM,kBAAkB,+BAA+B,CAAC;AAE/D,eAAO,MAAM,mBAAmB;kCACA,MAAM,WAAW,MAAM;sCAGnB,MAAM;kCAGV,MAAM,WAAW,MAAM;mCAGtB,MAAM,WAAW,MAAM;CAEvD,CAAC"}
@@ -1,8 +0,0 @@
1
- export const BUNNY_NET_BASE_URL = 'https://video.bunnycdn.com';
2
- export const BUNNY_NET_ENDPOINTS = {
3
- WIDEVINE_LICENSE: (libraryId, videoId) => `${BUNNY_NET_BASE_URL}/WidevineLicense/${libraryId}/${videoId}`,
4
- FAIRPLAY_CERTIFICATE: (libraryId) => `${BUNNY_NET_BASE_URL}/FairPlay/${libraryId}/certificate`,
5
- FAIRPLAY_LICENSE: (libraryId, videoId) => `${BUNNY_NET_BASE_URL}/FairPlay/${libraryId}/license/?videoId=${videoId}`,
6
- PLAYREADY_LICENSE: (libraryId, videoId) => `${BUNNY_NET_BASE_URL}/PlayReadyLicense/${libraryId}/${videoId}`,
7
- };
8
- //# sourceMappingURL=BunnyNetTypes.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"BunnyNetTypes.js","sourceRoot":"","sources":["../../../src/drm/types/BunnyNetTypes.ts"],"names":[],"mappings":"AAoBA,MAAM,CAAC,MAAM,kBAAkB,GAAG,4BAA4B,CAAC;AAE/D,MAAM,CAAC,MAAM,mBAAmB,GAAG;IACjC,gBAAgB,EAAE,CAAC,SAAiB,EAAE,OAAe,EAAE,EAAE,CACvD,GAAG,kBAAkB,oBAAoB,SAAS,IAAI,OAAO,EAAE;IAEjE,oBAAoB,EAAE,CAAC,SAAiB,EAAE,EAAE,CAC1C,GAAG,kBAAkB,aAAa,SAAS,cAAc;IAE3D,gBAAgB,EAAE,CAAC,SAAiB,EAAE,OAAe,EAAE,EAAE,CACvD,GAAG,kBAAkB,aAAa,SAAS,qBAAqB,OAAO,EAAE;IAE3E,iBAAiB,EAAE,CAAC,SAAiB,EAAE,OAAe,EAAE,EAAE,CACxD,GAAG,kBAAkB,qBAAqB,SAAS,IAAI,OAAO,EAAE;CACnE,CAAC"}
@@ -1,60 +0,0 @@
1
- import type { DRMConfig, DRMType } from '@unified-video/core';
2
- export interface ExtendedDRMConfig extends DRMConfig {
3
- provider?: 'bunny' | 'generic' | string;
4
- libraryId?: string;
5
- videoId?: string;
6
- retryConfig?: {
7
- maxRetries: number;
8
- retryDelay: number;
9
- };
10
- debug?: boolean;
11
- }
12
- export interface DRMCapabilities {
13
- widevine: boolean;
14
- fairplay: boolean;
15
- playready: boolean;
16
- supportedType: DRMType | null;
17
- }
18
- export interface LicenseRequest {
19
- url: string;
20
- method: 'POST' | 'GET';
21
- headers: Record<string, string>;
22
- body: ArrayBuffer | string;
23
- responseType: 'arraybuffer' | 'text' | 'json';
24
- }
25
- export interface LicenseResponse {
26
- license: ArrayBuffer;
27
- metadata?: any;
28
- }
29
- export interface EMEMessageEvent {
30
- messageType: string;
31
- message: ArrayBuffer;
32
- }
33
- export interface DRMInitResult {
34
- success: boolean;
35
- drmType: DRMType;
36
- keySystem: string;
37
- error?: DRMError;
38
- }
39
- export interface DRMError {
40
- code: DRMErrorCode;
41
- message: string;
42
- fatal: boolean;
43
- details?: any;
44
- systemError?: any;
45
- }
46
- export declare enum DRMErrorCode {
47
- UNSUPPORTED_BROWSER = "DRM_UNSUPPORTED_BROWSER",
48
- CERTIFICATE_LOAD_FAILED = "DRM_CERTIFICATE_LOAD_FAILED",
49
- LICENSE_REQUEST_FAILED = "DRM_LICENSE_REQUEST_FAILED",
50
- KEY_SYSTEM_ACCESS_DENIED = "DRM_KEY_SYSTEM_ACCESS_DENIED",
51
- MEDIA_KEYS_CREATION_FAILED = "DRM_MEDIA_KEYS_CREATION_FAILED",
52
- SESSION_CREATION_FAILED = "DRM_SESSION_CREATION_FAILED",
53
- LICENSE_INVALID = "DRM_LICENSE_INVALID",
54
- CONFIGURATION_ERROR = "DRM_CONFIGURATION_ERROR",
55
- NETWORK_ERROR = "DRM_NETWORK_ERROR",
56
- SECURE_CONTEXT_REQUIRED = "DRM_SECURE_CONTEXT_REQUIRED",
57
- TIMEOUT = "DRM_TIMEOUT"
58
- }
59
- export declare const KEY_SYSTEMS: Record<DRMType, string[]>;
60
- //# sourceMappingURL=DRMTypes.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"DRMTypes.d.ts","sourceRoot":"","sources":["../../../src/drm/types/DRMTypes.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAI9D,MAAM,WAAW,iBAAkB,SAAQ,SAAS;IAElD,QAAQ,CAAC,EAAE,OAAO,GAAG,SAAS,GAAG,MAAM,CAAC;IAGxC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;IAGjB,WAAW,CAAC,EAAE;QACZ,UAAU,EAAE,MAAM,CAAC;QACnB,UAAU,EAAE,MAAM,CAAC;KACpB,CAAC;IAGF,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAGD,MAAM,WAAW,eAAe;IAC9B,QAAQ,EAAE,OAAO,CAAC;IAClB,QAAQ,EAAE,OAAO,CAAC;IAClB,SAAS,EAAE,OAAO,CAAC;IACnB,aAAa,EAAE,OAAO,GAAG,IAAI,CAAC;CAC/B;AAGD,MAAM,WAAW,cAAc;IAC7B,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,MAAM,GAAG,KAAK,CAAC;IACvB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAChC,IAAI,EAAE,WAAW,GAAG,MAAM,CAAC;IAC3B,YAAY,EAAE,aAAa,GAAG,MAAM,GAAG,MAAM,CAAC;CAC/C;AAED,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,WAAW,CAAC;IACrB,QAAQ,CAAC,EAAE,GAAG,CAAC;CAChB;AAGD,MAAM,WAAW,eAAe;IAC9B,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,WAAW,CAAC;CACtB;AAGD,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE,OAAO,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,QAAQ,CAAC;CAClB;AAGD,MAAM,WAAW,QAAQ;IACvB,IAAI,EAAE,YAAY,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,OAAO,CAAC;IACf,OAAO,CAAC,EAAE,GAAG,CAAC;IACd,WAAW,CAAC,EAAE,GAAG,CAAC;CACnB;AAED,oBAAY,YAAY;IACtB,mBAAmB,4BAA4B;IAC/C,uBAAuB,gCAAgC;IACvD,sBAAsB,+BAA+B;IACrD,wBAAwB,iCAAiC;IACzD,0BAA0B,mCAAmC;IAC7D,uBAAuB,gCAAgC;IACvD,eAAe,wBAAwB;IACvC,mBAAmB,4BAA4B;IAC/C,aAAa,sBAAsB;IACnC,uBAAuB,gCAAgC;IACvD,OAAO,gBAAgB;CACxB;AAGD,eAAO,MAAM,WAAW,EAAE,MAAM,CAAC,OAAO,EAAE,MAAM,EAAE,CAKjD,CAAC"}
@@ -1,22 +0,0 @@
1
- import { DRMType as DRMTypeEnum } from "../../../../core/dist/index.js";
2
- export var DRMErrorCode;
3
- (function (DRMErrorCode) {
4
- DRMErrorCode["UNSUPPORTED_BROWSER"] = "DRM_UNSUPPORTED_BROWSER";
5
- DRMErrorCode["CERTIFICATE_LOAD_FAILED"] = "DRM_CERTIFICATE_LOAD_FAILED";
6
- DRMErrorCode["LICENSE_REQUEST_FAILED"] = "DRM_LICENSE_REQUEST_FAILED";
7
- DRMErrorCode["KEY_SYSTEM_ACCESS_DENIED"] = "DRM_KEY_SYSTEM_ACCESS_DENIED";
8
- DRMErrorCode["MEDIA_KEYS_CREATION_FAILED"] = "DRM_MEDIA_KEYS_CREATION_FAILED";
9
- DRMErrorCode["SESSION_CREATION_FAILED"] = "DRM_SESSION_CREATION_FAILED";
10
- DRMErrorCode["LICENSE_INVALID"] = "DRM_LICENSE_INVALID";
11
- DRMErrorCode["CONFIGURATION_ERROR"] = "DRM_CONFIGURATION_ERROR";
12
- DRMErrorCode["NETWORK_ERROR"] = "DRM_NETWORK_ERROR";
13
- DRMErrorCode["SECURE_CONTEXT_REQUIRED"] = "DRM_SECURE_CONTEXT_REQUIRED";
14
- DRMErrorCode["TIMEOUT"] = "DRM_TIMEOUT";
15
- })(DRMErrorCode || (DRMErrorCode = {}));
16
- export const KEY_SYSTEMS = {
17
- [DRMTypeEnum.WIDEVINE]: ['com.widevine.alpha'],
18
- [DRMTypeEnum.PLAYREADY]: ['com.microsoft.playready', 'com.microsoft.playready.recommendation'],
19
- [DRMTypeEnum.FAIRPLAY]: ['com.apple.fps.1_0', 'com.apple.fps'],
20
- [DRMTypeEnum.CLEARKEY]: ['webkit-org.w3.clearkey', 'org.w3.clearkey'],
21
- };
22
- //# sourceMappingURL=DRMTypes.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"DRMTypes.js","sourceRoot":"","sources":["../../../src/drm/types/DRMTypes.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAkE7D,MAAM,CAAN,IAAY,YAYX;AAZD,WAAY,YAAY;IACtB,+DAA+C,CAAA;IAC/C,uEAAuD,CAAA;IACvD,qEAAqD,CAAA;IACrD,yEAAyD,CAAA;IACzD,6EAA6D,CAAA;IAC7D,uEAAuD,CAAA;IACvD,uDAAuC,CAAA;IACvC,+DAA+C,CAAA;IAC/C,mDAAmC,CAAA;IACnC,uEAAuD,CAAA;IACvD,uCAAuB,CAAA;AACzB,CAAC,EAZW,YAAY,KAAZ,YAAY,QAYvB;AAGD,MAAM,CAAC,MAAM,WAAW,GAA8B;IACpD,CAAC,WAAW,CAAC,QAAQ,CAAC,EAAE,CAAC,oBAAoB,CAAC;IAC9C,CAAC,WAAW,CAAC,SAAS,CAAC,EAAE,CAAC,yBAAyB,EAAE,wCAAwC,CAAC;IAC9F,CAAC,WAAW,CAAC,QAAQ,CAAC,EAAE,CAAC,mBAAmB,EAAE,eAAe,CAAC;IAC9D,CAAC,WAAW,CAAC,QAAQ,CAAC,EAAE,CAAC,wBAAwB,EAAE,iBAAiB,CAAC;CACtE,CAAC"}
@@ -1,20 +0,0 @@
1
- import type { DRMType } from '@unified-video/core';
2
- import { DRMCapabilities } from '../types/DRMTypes';
3
- export declare class BrowserDetector {
4
- private static instance;
5
- private capabilities;
6
- private constructor();
7
- static getInstance(): BrowserDetector;
8
- detectCapabilities(): Promise<DRMCapabilities>;
9
- getRecommendedDRMType(): Promise<DRMType | null>;
10
- isDRMTypeSupported(drmType: DRMType): Promise<boolean>;
11
- private isSafari;
12
- private isWebKitBased;
13
- private isEdge;
14
- private checkFairPlaySupport;
15
- private checkWidevineSupport;
16
- private checkPlayReadySupport;
17
- getBrowserName(): string;
18
- resetCapabilities(): void;
19
- }
20
- //# sourceMappingURL=BrowserDetector.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"BrowserDetector.d.ts","sourceRoot":"","sources":["../../../src/drm/utils/BrowserDetector.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,eAAe,EAAe,MAAM,mBAAmB,CAAC;AAGjE,qBAAa,eAAe;IAC1B,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAkB;IACzC,OAAO,CAAC,YAAY,CAAgC;IAEpD,OAAO;IAEP,MAAM,CAAC,WAAW,IAAI,eAAe;IAU/B,kBAAkB,IAAI,OAAO,CAAC,eAAe,CAAC;IA2C9C,qBAAqB,IAAI,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC;IAQhD,kBAAkB,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;IAiB5D,OAAO,CAAC,QAAQ;IAQhB,OAAO,CAAC,aAAa;IAOrB,OAAO,CAAC,MAAM;YAQA,oBAAoB;YAkCpB,oBAAoB;YA4DpB,qBAAqB;IAoDnC,cAAc,IAAI,MAAM;IAexB,iBAAiB,IAAI,IAAI;CAG1B"}
@@ -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"}