unified-video-framework 1.4.394 → 1.4.395

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.394",
3
+ "version": "1.4.395",
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",
@@ -24,5 +24,17 @@ export declare class DRMHelper {
24
24
  userAgent: string;
25
25
  };
26
26
  static formatLicenseHeaders(baseHeaders?: Record<string, string>, token?: string): Record<string, string>;
27
+ static createConfig(options: {
28
+ licenseUrl: string;
29
+ certificateUrl?: string;
30
+ token?: string;
31
+ headers?: Record<string, string>;
32
+ drmType?: DRMType;
33
+ }): {
34
+ widevine?: DRMConfiguration;
35
+ fairplay?: DRMConfiguration;
36
+ playready?: DRMConfiguration;
37
+ };
38
+ static createSimpleConfig(licenseUrl: string, token?: string, drmType?: DRMType): any;
27
39
  }
28
40
  //# sourceMappingURL=DRMHelper.d.ts.map
@@ -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;CAY1B"}
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"}
@@ -119,5 +119,73 @@ export class DRMHelper {
119
119
  }
120
120
  return headers;
121
121
  }
122
+ static createConfig(options) {
123
+ const { licenseUrl, certificateUrl, token, headers = {}, drmType } = options;
124
+ const finalHeaders = this.formatLicenseHeaders(headers, token);
125
+ if (drmType && drmType !== DRMType.NONE) {
126
+ const config = {
127
+ type: drmType,
128
+ licenseUrl,
129
+ certificateUrl,
130
+ headers: finalHeaders,
131
+ };
132
+ switch (drmType) {
133
+ case DRMType.WIDEVINE:
134
+ return { widevine: config };
135
+ case DRMType.FAIRPLAY:
136
+ return { fairplay: config };
137
+ case DRMType.PLAYREADY:
138
+ return { playready: config };
139
+ }
140
+ }
141
+ return {
142
+ widevine: {
143
+ type: DRMType.WIDEVINE,
144
+ licenseUrl: licenseUrl.replace(/\/(fairplay|playready)/, '/widevine'),
145
+ certificateUrl,
146
+ headers: finalHeaders,
147
+ },
148
+ fairplay: {
149
+ type: DRMType.FAIRPLAY,
150
+ licenseUrl: licenseUrl.replace(/\/(widevine|playready)/, '/fairplay'),
151
+ certificateUrl: certificateUrl || licenseUrl.replace(/\/license$/, '/cert'),
152
+ headers: finalHeaders,
153
+ },
154
+ playready: {
155
+ type: DRMType.PLAYREADY,
156
+ licenseUrl: licenseUrl.replace(/\/(widevine|fairplay)/, '/playready'),
157
+ headers: finalHeaders,
158
+ },
159
+ };
160
+ }
161
+ static createSimpleConfig(licenseUrl, token, drmType = DRMType.WIDEVINE) {
162
+ const headers = token ? { 'Authorization': `Bearer ${token}` } : {};
163
+ if (drmType === DRMType.WIDEVINE) {
164
+ return {
165
+ widevine: {
166
+ licenseUrl,
167
+ headers,
168
+ },
169
+ };
170
+ }
171
+ if (drmType === DRMType.FAIRPLAY) {
172
+ return {
173
+ fairplay: {
174
+ licenseUrl,
175
+ certificateUrl: licenseUrl.replace(/\/license$/, '/cert'),
176
+ headers,
177
+ },
178
+ };
179
+ }
180
+ if (drmType === DRMType.PLAYREADY) {
181
+ return {
182
+ playready: {
183
+ licenseUrl,
184
+ headers,
185
+ },
186
+ };
187
+ }
188
+ return {};
189
+ }
122
190
  }
123
191
  //# sourceMappingURL=DRMHelper.js.map
@@ -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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"}
@@ -192,4 +192,106 @@ export class DRMHelper {
192
192
 
193
193
  return headers;
194
194
  }
195
+
196
+ /**
197
+ * Create a DRM configuration object for SecureVideoPlayer/WebPlayerView
198
+ * This is a helper to quickly create DRM configs
199
+ */
200
+ static createConfig(options: {
201
+ licenseUrl: string;
202
+ certificateUrl?: string;
203
+ token?: string;
204
+ headers?: Record<string, string>;
205
+ drmType?: DRMType;
206
+ }): {
207
+ widevine?: DRMConfiguration;
208
+ fairplay?: DRMConfiguration;
209
+ playready?: DRMConfiguration;
210
+ } {
211
+ const { licenseUrl, certificateUrl, token, headers = {}, drmType } = options;
212
+
213
+ // Format headers with token
214
+ const finalHeaders = this.formatLicenseHeaders(headers, token);
215
+
216
+ // If specific DRM type is requested
217
+ if (drmType && drmType !== DRMType.NONE) {
218
+ const config: DRMConfiguration = {
219
+ type: drmType,
220
+ licenseUrl,
221
+ certificateUrl,
222
+ headers: finalHeaders,
223
+ };
224
+
225
+ switch (drmType) {
226
+ case DRMType.WIDEVINE:
227
+ return { widevine: config };
228
+ case DRMType.FAIRPLAY:
229
+ return { fairplay: config };
230
+ case DRMType.PLAYREADY:
231
+ return { playready: config };
232
+ }
233
+ }
234
+
235
+ // Otherwise, create multi-DRM config (all platforms)
236
+ return {
237
+ widevine: {
238
+ type: DRMType.WIDEVINE,
239
+ licenseUrl: licenseUrl.replace(/\/(fairplay|playready)/, '/widevine'),
240
+ certificateUrl,
241
+ headers: finalHeaders,
242
+ },
243
+ fairplay: {
244
+ type: DRMType.FAIRPLAY,
245
+ licenseUrl: licenseUrl.replace(/\/(widevine|playready)/, '/fairplay'),
246
+ certificateUrl: certificateUrl || licenseUrl.replace(/\/license$/, '/cert'),
247
+ headers: finalHeaders,
248
+ },
249
+ playready: {
250
+ type: DRMType.PLAYREADY,
251
+ licenseUrl: licenseUrl.replace(/\/(widevine|fairplay)/, '/playready'),
252
+ headers: finalHeaders,
253
+ },
254
+ };
255
+ }
256
+
257
+ /**
258
+ * Create a simple single-DRM configuration (most common use case)
259
+ */
260
+ static createSimpleConfig(
261
+ licenseUrl: string,
262
+ token?: string,
263
+ drmType: DRMType = DRMType.WIDEVINE
264
+ ): any {
265
+ const headers = token ? { 'Authorization': `Bearer ${token}` } : {};
266
+
267
+ if (drmType === DRMType.WIDEVINE) {
268
+ return {
269
+ widevine: {
270
+ licenseUrl,
271
+ headers,
272
+ },
273
+ };
274
+ }
275
+
276
+ if (drmType === DRMType.FAIRPLAY) {
277
+ return {
278
+ fairplay: {
279
+ licenseUrl,
280
+ certificateUrl: licenseUrl.replace(/\/license$/, '/cert'),
281
+ headers,
282
+ },
283
+ };
284
+ }
285
+
286
+ if (drmType === DRMType.PLAYREADY) {
287
+ return {
288
+ playready: {
289
+ licenseUrl,
290
+ headers,
291
+ },
292
+ };
293
+ }
294
+
295
+ return {};
296
+ }
195
297
  }