unified-video-framework 1.4.395 → 1.4.396

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.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "unified-video-framework",
3
- "version": "1.4.395",
3
+ "version": "1.4.396",
4
4
  "description": "Cross-platform video player framework supporting iOS, Android, Web, Smart TVs (Samsung/LG), Roku, and more",
5
5
  "main": "packages/core/dist/index.js",
6
6
  "types": "packages/core/dist/index.d.ts",
@@ -1 +1 @@
1
- {"version":3,"file":"DRMHelper.d.ts","sourceRoot":"","sources":["../../src/drm/DRMHelper.ts"],"names":[],"mappings":"AAIA,oBAAY,OAAO;IACjB,QAAQ,aAAa;IACrB,QAAQ,aAAa;IACrB,SAAS,cAAc;IACvB,IAAI,SAAS;CACd;AAED,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,OAAO,CAAC;IACd,UAAU,EAAE,MAAM,CAAC;IACnB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACjC,eAAe,CAAC,EAAE,OAAO,CAAC;CAC3B;AAED,qBAAa,SAAS;WAIP,kBAAkB,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;WAoDxC,iBAAiB,IAAI,OAAO,CAAC,OAAO,CAAC;WA0BrC,cAAc,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;IAY/D,MAAM,CAAC,kBAAkB,CAAC,OAAO,EAAE,OAAO,GAAG,MAAM;IAgBnD,MAAM,CAAC,0BAA0B,CAC/B,OAAO,EAAE,OAAO,EAChB,WAAW,GAAE,MAA0C,GACtD,2BAA2B,EAAE;IAehC,MAAM,CAAC,iBAAiB,CAAC,MAAM,EAAE,gBAAgB,GAAG,OAAO;IAiB3D,MAAM,CAAC,iBAAiB,IAAI;QAC1B,cAAc,EAAE,OAAO,CAAC;QACxB,sBAAsB,EAAE,OAAO,CAAC;QAChC,SAAS,EAAE,MAAM,CAAC;KACnB;IAWD,MAAM,CAAC,oBAAoB,CACzB,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EACpC,KAAK,CAAC,EAAE,MAAM,GACb,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;IAiBzB,MAAM,CAAC,YAAY,CAAC,OAAO,EAAE;QAC3B,UAAU,EAAE,MAAM,CAAC;QACnB,cAAc,CAAC,EAAE,MAAM,CAAC;QACxB,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QACjC,OAAO,CAAC,EAAE,OAAO,CAAC;KACnB,GAAG;QACF,QAAQ,CAAC,EAAE,gBAAgB,CAAC;QAC5B,QAAQ,CAAC,EAAE,gBAAgB,CAAC;QAC5B,SAAS,CAAC,EAAE,gBAAgB,CAAC;KAC9B;IAkDD,MAAM,CAAC,kBAAkB,CACvB,UAAU,EAAE,MAAM,EAClB,KAAK,CAAC,EAAE,MAAM,EACd,OAAO,GAAE,OAA0B,GAClC,GAAG;CAiCP"}
1
+ {"version":3,"file":"DRMHelper.d.ts","sourceRoot":"","sources":["../../src/drm/DRMHelper.ts"],"names":[],"mappings":"AAIA,oBAAY,OAAO;IACjB,QAAQ,aAAa;IACrB,QAAQ,aAAa;IACrB,SAAS,cAAc;IACvB,IAAI,SAAS;CACd;AAED,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,OAAO,CAAC;IACd,UAAU,EAAE,MAAM,CAAC;IACnB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACjC,eAAe,CAAC,EAAE,OAAO,CAAC;CAC3B;AAED,qBAAa,SAAS;WAIP,kBAAkB,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;WAoDxC,iBAAiB,IAAI,OAAO,CAAC,OAAO,CAAC;WA0BrC,cAAc,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;IAY/D,MAAM,CAAC,kBAAkB,CAAC,OAAO,EAAE,OAAO,GAAG,MAAM;IAgBnD,MAAM,CAAC,0BAA0B,CAC/B,OAAO,EAAE,OAAO,EAChB,WAAW,GAAE,MAA0C,GACtD,2BAA2B,EAAE;IAehC,MAAM,CAAC,iBAAiB,CAAC,MAAM,EAAE,gBAAgB,GAAG,OAAO;IAiB3D,MAAM,CAAC,iBAAiB,IAAI;QAC1B,cAAc,EAAE,OAAO,CAAC;QACxB,sBAAsB,EAAE,OAAO,CAAC;QAChC,SAAS,EAAE,MAAM,CAAC;KACnB;IAWD,MAAM,CAAC,oBAAoB,CACzB,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EACpC,KAAK,CAAC,EAAE,MAAM,GACb,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;IAiBzB,MAAM,CAAC,YAAY,CAAC,OAAO,EAAE;QAC3B,UAAU,EAAE,MAAM,CAAC;QACnB,cAAc,CAAC,EAAE,MAAM,CAAC;QACxB,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QACjC,OAAO,CAAC,EAAE,OAAO,CAAC;KACnB,GAAG;QACF,QAAQ,CAAC,EAAE,gBAAgB,CAAC;QAC5B,QAAQ,CAAC,EAAE,gBAAgB,CAAC;QAC5B,SAAS,CAAC,EAAE,gBAAgB,CAAC;KAC9B;IAoED,MAAM,CAAC,kBAAkB,CACvB,UAAU,EAAE,MAAM,EAClB,KAAK,CAAC,EAAE,MAAM,EACd,OAAO,GAAE,OAA0B,GAClC,GAAG;CAwCP"}
@@ -121,6 +121,9 @@ export class DRMHelper {
121
121
  }
122
122
  static createConfig(options) {
123
123
  const { licenseUrl, certificateUrl, token, headers = {}, drmType } = options;
124
+ if (!licenseUrl) {
125
+ throw new Error('DRMHelper.createConfig: licenseUrl is required');
126
+ }
124
127
  const finalHeaders = this.formatLicenseHeaders(headers, token);
125
128
  if (drmType && drmType !== DRMType.NONE) {
126
129
  const config = {
@@ -138,27 +141,41 @@ export class DRMHelper {
138
141
  return { playready: config };
139
142
  }
140
143
  }
144
+ const hasWidevineInUrl = licenseUrl.includes('/widevine');
145
+ const hasFairplayInUrl = licenseUrl.includes('/fairplay');
146
+ const hasPlayreadyInUrl = licenseUrl.includes('/playready');
141
147
  return {
142
148
  widevine: {
143
149
  type: DRMType.WIDEVINE,
144
- licenseUrl: licenseUrl.replace(/\/(fairplay|playready)/, '/widevine'),
150
+ licenseUrl: hasWidevineInUrl
151
+ ? licenseUrl
152
+ : licenseUrl.replace(/\/(fairplay|playready)/, '/widevine'),
145
153
  certificateUrl,
146
154
  headers: finalHeaders,
147
155
  },
148
156
  fairplay: {
149
157
  type: DRMType.FAIRPLAY,
150
- licenseUrl: licenseUrl.replace(/\/(widevine|playready)/, '/fairplay'),
151
- certificateUrl: certificateUrl || licenseUrl.replace(/\/license$/, '/cert'),
158
+ licenseUrl: hasFairplayInUrl
159
+ ? licenseUrl
160
+ : licenseUrl.replace(/\/(widevine|playready)/, '/fairplay'),
161
+ certificateUrl: certificateUrl || (licenseUrl.includes('/license')
162
+ ? licenseUrl.replace(/\/license$/, '/cert')
163
+ : undefined),
152
164
  headers: finalHeaders,
153
165
  },
154
166
  playready: {
155
167
  type: DRMType.PLAYREADY,
156
- licenseUrl: licenseUrl.replace(/\/(widevine|fairplay)/, '/playready'),
168
+ licenseUrl: hasPlayreadyInUrl
169
+ ? licenseUrl
170
+ : licenseUrl.replace(/\/(widevine|fairplay)/, '/playready'),
157
171
  headers: finalHeaders,
158
172
  },
159
173
  };
160
174
  }
161
175
  static createSimpleConfig(licenseUrl, token, drmType = DRMType.WIDEVINE) {
176
+ if (!licenseUrl) {
177
+ throw new Error('DRMHelper.createSimpleConfig: licenseUrl is required');
178
+ }
162
179
  const headers = token ? { 'Authorization': `Bearer ${token}` } : {};
163
180
  if (drmType === DRMType.WIDEVINE) {
164
181
  return {
@@ -172,7 +189,9 @@ export class DRMHelper {
172
189
  return {
173
190
  fairplay: {
174
191
  licenseUrl,
175
- certificateUrl: licenseUrl.replace(/\/license$/, '/cert'),
192
+ certificateUrl: licenseUrl.includes('/license')
193
+ ? licenseUrl.replace(/\/license$/, '/cert')
194
+ : undefined,
176
195
  headers,
177
196
  },
178
197
  };
@@ -1 +1 @@
1
- {"version":3,"file":"DRMHelper.js","sourceRoot":"","sources":["../../src/drm/DRMHelper.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"DRMHelper.js","sourceRoot":"","sources":["../../src/drm/DRMHelper.ts"],"names":[],"mappings":"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"}
@@ -210,6 +210,11 @@ export class DRMHelper {
210
210
  } {
211
211
  const { licenseUrl, certificateUrl, token, headers = {}, drmType } = options;
212
212
 
213
+ // Validate required parameter
214
+ if (!licenseUrl) {
215
+ throw new Error('DRMHelper.createConfig: licenseUrl is required');
216
+ }
217
+
213
218
  // Format headers with token
214
219
  const finalHeaders = this.formatLicenseHeaders(headers, token);
215
220
 
@@ -233,22 +238,35 @@ export class DRMHelper {
233
238
  }
234
239
 
235
240
  // Otherwise, create multi-DRM config (all platforms)
241
+ // Try to intelligently generate URLs for different DRM systems
242
+ const hasWidevineInUrl = licenseUrl.includes('/widevine');
243
+ const hasFairplayInUrl = licenseUrl.includes('/fairplay');
244
+ const hasPlayreadyInUrl = licenseUrl.includes('/playready');
245
+
236
246
  return {
237
247
  widevine: {
238
248
  type: DRMType.WIDEVINE,
239
- licenseUrl: licenseUrl.replace(/\/(fairplay|playready)/, '/widevine'),
249
+ licenseUrl: hasWidevineInUrl
250
+ ? licenseUrl
251
+ : licenseUrl.replace(/\/(fairplay|playready)/, '/widevine'),
240
252
  certificateUrl,
241
253
  headers: finalHeaders,
242
254
  },
243
255
  fairplay: {
244
256
  type: DRMType.FAIRPLAY,
245
- licenseUrl: licenseUrl.replace(/\/(widevine|playready)/, '/fairplay'),
246
- certificateUrl: certificateUrl || licenseUrl.replace(/\/license$/, '/cert'),
257
+ licenseUrl: hasFairplayInUrl
258
+ ? licenseUrl
259
+ : licenseUrl.replace(/\/(widevine|playready)/, '/fairplay'),
260
+ certificateUrl: certificateUrl || (licenseUrl.includes('/license')
261
+ ? licenseUrl.replace(/\/license$/, '/cert')
262
+ : undefined),
247
263
  headers: finalHeaders,
248
264
  },
249
265
  playready: {
250
266
  type: DRMType.PLAYREADY,
251
- licenseUrl: licenseUrl.replace(/\/(widevine|fairplay)/, '/playready'),
267
+ licenseUrl: hasPlayreadyInUrl
268
+ ? licenseUrl
269
+ : licenseUrl.replace(/\/(widevine|fairplay)/, '/playready'),
252
270
  headers: finalHeaders,
253
271
  },
254
272
  };
@@ -262,6 +280,11 @@ export class DRMHelper {
262
280
  token?: string,
263
281
  drmType: DRMType = DRMType.WIDEVINE
264
282
  ): any {
283
+ // Validate required parameter
284
+ if (!licenseUrl) {
285
+ throw new Error('DRMHelper.createSimpleConfig: licenseUrl is required');
286
+ }
287
+
265
288
  const headers = token ? { 'Authorization': `Bearer ${token}` } : {};
266
289
 
267
290
  if (drmType === DRMType.WIDEVINE) {
@@ -277,7 +300,9 @@ export class DRMHelper {
277
300
  return {
278
301
  fairplay: {
279
302
  licenseUrl,
280
- certificateUrl: licenseUrl.replace(/\/license$/, '/cert'),
303
+ certificateUrl: licenseUrl.includes('/license')
304
+ ? licenseUrl.replace(/\/license$/, '/cert')
305
+ : undefined,
281
306
  headers,
282
307
  },
283
308
  };