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,114 +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 PlayReadyDRM extends BaseDRM {
6
- async initialize() {
7
- this.log('Initializing PlayReady DRM...');
8
- try {
9
- const keySystemAccess = await navigator.requestMediaKeySystemAccess(this.getKeySystem(), this.getKeySystemConfiguration());
10
- this.log('PlayReady key system access granted');
11
- this.mediaKeys = await keySystemAccess.createMediaKeys();
12
- }
13
- catch (error) {
14
- try {
15
- const fallbackKeySystem = KEY_SYSTEMS[DRMTypeEnum.PLAYREADY][1];
16
- const keySystemAccess = await navigator.requestMediaKeySystemAccess(fallbackKeySystem, this.getKeySystemConfiguration());
17
- this.log('PlayReady fallback key system access granted');
18
- this.mediaKeys = await keySystemAccess.createMediaKeys();
19
- }
20
- catch (fallbackError) {
21
- this.log('PlayReady initialization failed:', fallbackError);
22
- throw DRMErrorHandler.createError(DRMErrorCode.KEY_SYSTEM_ACCESS_DENIED, 'Failed to access PlayReady DRM system', true, fallbackError);
23
- }
24
- }
25
- this.log('PlayReady DRM initialized');
26
- }
27
- getKeySystem() {
28
- return KEY_SYSTEMS[DRMTypeEnum.PLAYREADY][0];
29
- }
30
- getHLSConfig() {
31
- this.log('Generating HLS.js config for PlayReady');
32
- const licenseUrl = this.config.licenseUrl || this.config.playreadyOptions?.licenseUrl;
33
- return {
34
- emeEnabled: true,
35
- drmSystems: {
36
- [this.getKeySystem()]: {
37
- licenseUrl: licenseUrl,
38
- robustness: 'SW_SECURE_CRYPTO',
39
- },
40
- [KEY_SYSTEMS[DRMTypeEnum.PLAYREADY][1]]: {
41
- licenseUrl: licenseUrl,
42
- robustness: 'SW_SECURE_CRYPTO',
43
- },
44
- },
45
- requestMediaKeySystemAccessFunc: navigator.requestMediaKeySystemAccess.bind(navigator),
46
- licenseXhrSetup: (xhr, url) => {
47
- this.log(`[LicenseXHR] (PlayReady) Requesting license from: ${url}`);
48
- if (this.config.headers) {
49
- Object.keys(this.config.headers).forEach(key => {
50
- xhr.setRequestHeader(key, this.config.headers[key]);
51
- });
52
- }
53
- xhr.addEventListener('readystatechange', () => {
54
- if (xhr.readyState === 4) {
55
- if (xhr.status >= 200 && xhr.status < 300) {
56
- this.log(`[LicenseXHR] PlayReady license received (Status: ${xhr.status}, Size: ${xhr.response?.byteLength || 0} bytes)`);
57
- }
58
- else {
59
- this.log(`[LicenseXHR] ❌ PlayReady license request failed! (Status: ${xhr.status}, URL: ${url})`);
60
- if (xhr.responseType === '' || xhr.responseType === 'text') {
61
- this.log(`[LicenseXHR] Response Body: ${xhr.responseText}`);
62
- }
63
- }
64
- }
65
- });
66
- }
67
- };
68
- }
69
- getDashProtectionData() {
70
- this.log('Generating dash.js protection data for PlayReady');
71
- const licenseUrl = this.config.licenseUrl || this.config.playreadyOptions?.licenseUrl;
72
- const protectionData = {
73
- [this.getKeySystem()]: {
74
- serverURL: licenseUrl,
75
- },
76
- [KEY_SYSTEMS[DRMTypeEnum.PLAYREADY][1]]: {
77
- serverURL: licenseUrl,
78
- },
79
- };
80
- if (this.config.headers && Object.keys(this.config.headers).length > 0) {
81
- protectionData[this.getKeySystem()].httpRequestHeaders = this.config.headers;
82
- protectionData[KEY_SYSTEMS[DRMTypeEnum.PLAYREADY][1]].httpRequestHeaders = this.config.headers;
83
- }
84
- const customData = this.config.customData || this.config.playreadyOptions?.customData;
85
- if (customData) {
86
- protectionData[this.getKeySystem()].customData = customData;
87
- protectionData[KEY_SYSTEMS[DRMTypeEnum.PLAYREADY][1]].customData = customData;
88
- }
89
- return protectionData;
90
- }
91
- getKeySystemConfiguration() {
92
- return [{
93
- initDataTypes: ['cenc'],
94
- audioCapabilities: [{
95
- contentType: 'audio/mp4; codecs="mp4a.40.2"',
96
- robustness: 'SW_SECURE_CRYPTO',
97
- }],
98
- videoCapabilities: [
99
- {
100
- contentType: 'video/mp4; codecs="avc1.42E01E"',
101
- robustness: 'SW_SECURE_CRYPTO',
102
- },
103
- {
104
- contentType: 'video/mp4; codecs="avc1.4d401f"',
105
- robustness: 'SW_SECURE_CRYPTO',
106
- },
107
- ],
108
- distinctiveIdentifier: 'not-allowed',
109
- persistentState: 'not-allowed',
110
- sessionTypes: ['temporary'],
111
- }];
112
- }
113
- }
114
- //# sourceMappingURL=PlayReadyDRM.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"PlayReadyDRM.js","sourceRoot":"","sources":["../../../src/drm/systems/PlayReadyDRM.ts"],"names":[],"mappings":"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"}
@@ -1,9 +0,0 @@
1
- import { BaseDRM } from './BaseDRM';
2
- export declare class WidevineDRM extends BaseDRM {
3
- initialize(): Promise<void>;
4
- getKeySystem(): string;
5
- getHLSConfig(): any;
6
- getDashProtectionData(): any;
7
- private getKeySystemConfiguration;
8
- }
9
- //# sourceMappingURL=WidevineDRM.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"WidevineDRM.d.ts","sourceRoot":"","sources":["../../../src/drm/systems/WidevineDRM.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAMpC,qBAAa,WAAY,SAAQ,OAAO;IAChC,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IA8BjC,YAAY,IAAI,MAAM;IAItB,YAAY,IAAI,GAAG;IA0CnB,qBAAqB,IAAI,GAAG;IAsB5B,OAAO,CAAC,yBAAyB;CAsBlC"}
@@ -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"}