@svta/cml-drm 1.1.11 → 1.1.12
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/dist/index.d.ts +519 -511
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +10 -67
- package/dist/index.js.map +1 -1
- package/package.json +4 -4
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","names":[],"sources":["../src/common/ContentProtection.ts","../src/cenc/findCencContentProtection.ts","../src/cenc/getLicenseServerUrlFromContentProtection.ts","../src/cenc/getPsshData.ts","../src/cenc/getPsshForKeySystem.ts","../src/cenc/parseInitDataFromContentProtection.ts","../src/cenc/parsePsshList.ts","../src/keysystem/createMediaKeySystemConfiguration.ts","../src/common/MediaKeySystemAccessRequest.ts","../src/keysystem/getKeySystemAccess.ts","../src/keysystem/getLegacyKeySystemAccess.ts","../src/keysystem/getSupportedKeySystemConfiguration.ts","../src/fairplay/concatInitDataIdAndCertificate.ts","../src/fairplay/decodeFairPlayLicense.ts","../src/fairplay/extractContentId.ts","../src/fairplay/getId.ts","../src/fairplay/getLicenseServerUrl.ts","../src/playready/getLicenseRequestFromMessage.ts","../src/playready/getRequestHeadersFromMessage.ts","../src/playready/toBigEndianKeyId.ts","../src/common/LicenseRequest.ts","../src/common/CBCS.ts","../src/common/CENC.ts","../src/common/CHALLENGE.ts","../src/common/CLEAR_KEY_SYSTEM.ts","../src/common/CLEAR_KEY_UUID.ts","../src/common/CONTENT_TYPE.ts","../src/common/EncryptionScheme.ts","../src/common/EXPIRED.ts","../src/common/FAIRPLAY_KEY_SYSTEM.ts","../src/common/FAIRPLAY_UUID.ts","../src/common/HTTP_HEADERS.ts","../src/common/HW_SECURE_ALL.ts","../src/common/HW_SECURE_CRYPTO.ts","../src/common/HW_SECURE_DECODE.ts","../src/common/INDIVIDUALIZATION_REQUEST.ts","../src/common/KEYIDS.ts","../src/common/WEBM.ts","../src/common/InitializationDataType.ts","../src/common/INTERNAL_ERROR.ts","../src/common/LICENSE_ACQUISITION.ts","../src/common/LICENSE_RELEASE.ts","../src/common/LICENSE_RENEWAL.ts","../src/common/LICENSE_REQUEST.ts","../src/common/MediaKeyMessageType.ts","../src/common/OUTPUT_DOWNSCALED.ts","../src/common/OUTPUT_RESTRICTED.ts","../src/common/RELEASED.ts","../src/common/STATUS_PENDING.ts","../src/common/USABLE.ts","../src/common/MediaKeyStatus.ts","../src/common/MP4_PROTECTION_SCHEME.ts","../src/common/PLAYREADY_KEY_MESSAGE.ts","../src/common/PLAYREADY_KEY_SYSTEM.ts","../src/common/PLAYREADY_RECOMMENDATION_KEY_SYSTEM.ts","../src/common/PLAYREADY_UUID.ts","../src/common/SW_SECURE_CRYPTO.ts","../src/common/SW_SECURE_DECODE.ts","../src/common/TEXT_XML_UTF8.ts","../src/common/W3C_CLEAR_KEY_UUID.ts","../src/common/WIDEVINE_KEY_SYSTEM.ts","../src/common/WIDEVINE_UUID.ts","../src/common/WidevineRobustness.ts","../src/ensureEncryptedInit.ts"],"
|
|
1
|
+
{"version":3,"file":"index.d.ts","names":["MediaKeyMessageType"],"sources":["../src/common/ContentProtection.ts","../src/cenc/findCencContentProtection.ts","../src/cenc/getLicenseServerUrlFromContentProtection.ts","../src/cenc/getPsshData.ts","../src/cenc/getPsshForKeySystem.ts","../src/cenc/parseInitDataFromContentProtection.ts","../src/cenc/parsePsshList.ts","../src/keysystem/createMediaKeySystemConfiguration.ts","../src/common/MediaKeySystemAccessRequest.ts","../src/keysystem/getKeySystemAccess.ts","../src/keysystem/getLegacyKeySystemAccess.ts","../src/keysystem/getSupportedKeySystemConfiguration.ts","../src/fairplay/concatInitDataIdAndCertificate.ts","../src/fairplay/decodeFairPlayLicense.ts","../src/fairplay/extractContentId.ts","../src/fairplay/getId.ts","../src/fairplay/getLicenseServerUrl.ts","../src/playready/getLicenseRequestFromMessage.ts","../src/playready/getRequestHeadersFromMessage.ts","../src/playready/toBigEndianKeyId.ts","../src/common/LicenseRequest.ts","../src/common/CBCS.ts","../src/common/CENC.ts","../src/common/CHALLENGE.ts","../src/common/CLEAR_KEY_SYSTEM.ts","../src/common/CLEAR_KEY_UUID.ts","../src/common/CONTENT_TYPE.ts","../src/common/EncryptionScheme.ts","../src/common/EXPIRED.ts","../src/common/FAIRPLAY_KEY_SYSTEM.ts","../src/common/FAIRPLAY_UUID.ts","../src/common/HTTP_HEADERS.ts","../src/common/HW_SECURE_ALL.ts","../src/common/HW_SECURE_CRYPTO.ts","../src/common/HW_SECURE_DECODE.ts","../src/common/INDIVIDUALIZATION_REQUEST.ts","../src/common/KEYIDS.ts","../src/common/WEBM.ts","../src/common/InitializationDataType.ts","../src/common/INTERNAL_ERROR.ts","../src/common/LICENSE_ACQUISITION.ts","../src/common/LICENSE_RELEASE.ts","../src/common/LICENSE_RENEWAL.ts","../src/common/LICENSE_REQUEST.ts","../src/common/MediaKeyMessageType.ts","../src/common/OUTPUT_DOWNSCALED.ts","../src/common/OUTPUT_RESTRICTED.ts","../src/common/RELEASED.ts","../src/common/STATUS_PENDING.ts","../src/common/USABLE.ts","../src/common/MediaKeyStatus.ts","../src/common/MP4_PROTECTION_SCHEME.ts","../src/common/PLAYREADY_KEY_MESSAGE.ts","../src/common/PLAYREADY_KEY_SYSTEM.ts","../src/common/PLAYREADY_RECOMMENDATION_KEY_SYSTEM.ts","../src/common/PLAYREADY_UUID.ts","../src/common/SW_SECURE_CRYPTO.ts","../src/common/SW_SECURE_DECODE.ts","../src/common/TEXT_XML_UTF8.ts","../src/common/W3C_CLEAR_KEY_UUID.ts","../src/common/WIDEVINE_KEY_SYSTEM.ts","../src/common/WIDEVINE_UUID.ts","../src/common/WidevineRobustness.ts","../src/ensureEncryptedInit.ts"],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import { UTF_16, decodeBase64, decodeText, isArrayBufferLike, stringToUint16 } from "@svta/cml-utils";
|
|
2
2
|
import { getElementsByName, parseXml } from "@svta/cml-xml";
|
|
3
3
|
import { createAudioSampleEntryReader, createVisualSampleEntryReader, findIsoBox, fourCcToUint32, readIsoBoxes, readStsd, writeAudioSampleEntryBox, writeFrma, writeIsoBoxes, writeSchm, writeStsd, writeTenc, writeVisualSampleEntryBox } from "@svta/cml-iso-bmff";
|
|
4
|
-
|
|
5
4
|
//#region src/common/CBCS.ts
|
|
6
5
|
/**
|
|
7
6
|
* Cipher Block Chaining Sample encryption scheme.
|
|
@@ -9,7 +8,6 @@ import { createAudioSampleEntryReader, createVisualSampleEntryReader, findIsoBox
|
|
|
9
8
|
* @public
|
|
10
9
|
*/
|
|
11
10
|
const CBCS = "cbcs";
|
|
12
|
-
|
|
13
11
|
//#endregion
|
|
14
12
|
//#region src/common/CENC.ts
|
|
15
13
|
/**
|
|
@@ -18,7 +16,6 @@ const CBCS = "cbcs";
|
|
|
18
16
|
* @public
|
|
19
17
|
*/
|
|
20
18
|
const CENC = "cenc";
|
|
21
|
-
|
|
22
19
|
//#endregion
|
|
23
20
|
//#region src/common/MP4_PROTECTION_SCHEME.ts
|
|
24
21
|
/**
|
|
@@ -27,7 +24,6 @@ const CENC = "cenc";
|
|
|
27
24
|
* @public
|
|
28
25
|
*/
|
|
29
26
|
const MP4_PROTECTION_SCHEME = "urn:mpeg:dash:mp4protection:2011";
|
|
30
|
-
|
|
31
27
|
//#endregion
|
|
32
28
|
//#region src/cenc/findCencContentProtection.ts
|
|
33
29
|
/**
|
|
@@ -43,10 +39,9 @@ const MP4_PROTECTION_SCHEME = "urn:mpeg:dash:mp4protection:2011";
|
|
|
43
39
|
*/
|
|
44
40
|
function findCencContentProtection(cpArray) {
|
|
45
41
|
if (!cpArray) return null;
|
|
46
|
-
for (const cp of cpArray) if (cp.schemeIdUri?.toLowerCase() ===
|
|
42
|
+
for (const cp of cpArray) if (cp.schemeIdUri?.toLowerCase() === "urn:mpeg:dash:mp4protection:2011" && cp.value && (cp.value.toLowerCase() === "cenc" || cp.value.toLowerCase() === "cbcs")) return cp;
|
|
47
43
|
return null;
|
|
48
44
|
}
|
|
49
|
-
|
|
50
45
|
//#endregion
|
|
51
46
|
//#region src/cenc/getLicenseServerUrlFromContentProtection.ts
|
|
52
47
|
/**
|
|
@@ -64,7 +59,6 @@ function findCencContentProtection(cpArray) {
|
|
|
64
59
|
function getLicenseServerUrlFromContentProtection(contentProtectionElements, schemeIdUri) {
|
|
65
60
|
return contentProtectionElements.find((cp) => cp.schemeIdUri === schemeIdUri)?.laUrl || null;
|
|
66
61
|
}
|
|
67
|
-
|
|
68
62
|
//#endregion
|
|
69
63
|
//#region src/cenc/getPsshData.ts
|
|
70
64
|
/**
|
|
@@ -82,7 +76,7 @@ function getPsshData(pssh) {
|
|
|
82
76
|
const offset = 8;
|
|
83
77
|
const view = new DataView(pssh);
|
|
84
78
|
const version = view.getUint8(offset);
|
|
85
|
-
let dataOffset =
|
|
79
|
+
let dataOffset = 28;
|
|
86
80
|
if (version > 0) {
|
|
87
81
|
const kidCount = view.getUint32(dataOffset);
|
|
88
82
|
dataOffset += 4 + 16 * kidCount;
|
|
@@ -90,7 +84,6 @@ function getPsshData(pssh) {
|
|
|
90
84
|
dataOffset += 4;
|
|
91
85
|
return pssh.slice(dataOffset);
|
|
92
86
|
}
|
|
93
|
-
|
|
94
87
|
//#endregion
|
|
95
88
|
//#region src/cenc/parsePsshList.ts
|
|
96
89
|
function parsePsshList(data) {
|
|
@@ -154,7 +147,6 @@ function parsePsshList(data) {
|
|
|
154
147
|
}
|
|
155
148
|
return pssh;
|
|
156
149
|
}
|
|
157
|
-
|
|
158
150
|
//#endregion
|
|
159
151
|
//#region src/cenc/getPsshForKeySystem.ts
|
|
160
152
|
/**
|
|
@@ -174,7 +166,6 @@ function getPsshForKeySystem(uuid, initData) {
|
|
|
174
166
|
if (!initData || !uuid) return null;
|
|
175
167
|
return parsePsshList(initData)[uuid.toLowerCase()] || null;
|
|
176
168
|
}
|
|
177
|
-
|
|
178
169
|
//#endregion
|
|
179
170
|
//#region src/cenc/parseInitDataFromContentProtection.ts
|
|
180
171
|
/**
|
|
@@ -197,7 +188,6 @@ function parseInitDataFromContentProtection(cpData, BASE64) {
|
|
|
197
188
|
}
|
|
198
189
|
return null;
|
|
199
190
|
}
|
|
200
|
-
|
|
201
191
|
//#endregion
|
|
202
192
|
//#region src/keysystem/createMediaKeySystemConfiguration.ts
|
|
203
193
|
/**
|
|
@@ -221,7 +211,6 @@ function createMediaKeySystemConfiguration(supportedAudio, supportedVideo) {
|
|
|
221
211
|
config.sessionTypes = ["temporary"];
|
|
222
212
|
return config;
|
|
223
213
|
}
|
|
224
|
-
|
|
225
214
|
//#endregion
|
|
226
215
|
//#region src/keysystem/getKeySystemAccess.ts
|
|
227
216
|
/**
|
|
@@ -238,7 +227,6 @@ async function getKeySystemAccess(requests) {
|
|
|
238
227
|
} catch {}
|
|
239
228
|
return null;
|
|
240
229
|
}
|
|
241
|
-
|
|
242
230
|
//#endregion
|
|
243
231
|
//#region src/keysystem/getSupportedKeySystemConfiguration.ts
|
|
244
232
|
const isTypeSupported = /* @__PURE__ */ (() => typeof MediaKeys !== "undefined" && typeof MediaKeys.isTypeSupported === "function" ? MediaKeys.isTypeSupported : void 0)();
|
|
@@ -273,7 +261,6 @@ function getSupportedKeySystemConfiguration(keySystem, configs) {
|
|
|
273
261
|
supportedVideo: []
|
|
274
262
|
};
|
|
275
263
|
}
|
|
276
|
-
|
|
277
264
|
//#endregion
|
|
278
265
|
//#region src/keysystem/getLegacyKeySystemAccess.ts
|
|
279
266
|
/**
|
|
@@ -294,7 +281,6 @@ function getLegacyKeySystemAccess(requests) {
|
|
|
294
281
|
}
|
|
295
282
|
return null;
|
|
296
283
|
}
|
|
297
|
-
|
|
298
284
|
//#endregion
|
|
299
285
|
//#region src/fairplay/concatInitDataIdAndCertificate.ts
|
|
300
286
|
/**
|
|
@@ -326,7 +312,6 @@ function concatInitDataIdAndCertificate(initData, id, cert) {
|
|
|
326
312
|
new Uint8Array(buffer, offset, cert.byteLength).set(cert);
|
|
327
313
|
return new Uint8Array(buffer);
|
|
328
314
|
}
|
|
329
|
-
|
|
330
315
|
//#endregion
|
|
331
316
|
//#region src/fairplay/decodeFairPlayLicense.ts
|
|
332
317
|
/**
|
|
@@ -343,7 +328,6 @@ function concatInitDataIdAndCertificate(initData, id, cert) {
|
|
|
343
328
|
function decodeFairPlayLicense(response) {
|
|
344
329
|
return typeof response === "string" ? decodeBase64(response) : new Uint8Array(response);
|
|
345
330
|
}
|
|
346
|
-
|
|
347
331
|
//#endregion
|
|
348
332
|
//#region src/fairplay/extractContentId.ts
|
|
349
333
|
/**
|
|
@@ -360,7 +344,6 @@ function decodeFairPlayLicense(response) {
|
|
|
360
344
|
function extractContentId(initData, encoding = UTF_16) {
|
|
361
345
|
return decodeText(initData, { encoding }).split("skd://")[1] || "";
|
|
362
346
|
}
|
|
363
|
-
|
|
364
347
|
//#endregion
|
|
365
348
|
//#region src/fairplay/getId.ts
|
|
366
349
|
/**
|
|
@@ -384,7 +367,6 @@ function getId(licenseServerUrl, initData, queryParam = "ContentId") {
|
|
|
384
367
|
return extractContentId(initData);
|
|
385
368
|
}
|
|
386
369
|
}
|
|
387
|
-
|
|
388
370
|
//#endregion
|
|
389
371
|
//#region src/fairplay/getLicenseServerUrl.ts
|
|
390
372
|
/**
|
|
@@ -404,7 +386,6 @@ function getLicenseServerUrl(initData) {
|
|
|
404
386
|
const match = initDataString.match(/skd:\/\/([^"\s]+)/);
|
|
405
387
|
return match ? `https://${match[1]}` : "";
|
|
406
388
|
}
|
|
407
|
-
|
|
408
389
|
//#endregion
|
|
409
390
|
//#region src/common/CHALLENGE.ts
|
|
410
391
|
/**
|
|
@@ -413,7 +394,6 @@ function getLicenseServerUrl(initData) {
|
|
|
413
394
|
* @public
|
|
414
395
|
*/
|
|
415
396
|
const CHALLENGE = "Challenge";
|
|
416
|
-
|
|
417
397
|
//#endregion
|
|
418
398
|
//#region src/common/PLAYREADY_KEY_MESSAGE.ts
|
|
419
399
|
/**
|
|
@@ -422,7 +402,6 @@ const CHALLENGE = "Challenge";
|
|
|
422
402
|
* @public
|
|
423
403
|
*/
|
|
424
404
|
const PLAYREADY_KEY_MESSAGE = "PlayReadyKeyMessage";
|
|
425
|
-
|
|
426
405
|
//#endregion
|
|
427
406
|
//#region src/playready/getLicenseRequestFromMessage.ts
|
|
428
407
|
/**
|
|
@@ -439,13 +418,14 @@ const PLAYREADY_KEY_MESSAGE = "PlayReadyKeyMessage";
|
|
|
439
418
|
*/
|
|
440
419
|
function getLicenseRequestFromMessage(message, encoding = UTF_16) {
|
|
441
420
|
if (encoding === UTF_16 && message?.byteLength % 2 === 1) return message;
|
|
442
|
-
const
|
|
421
|
+
const msg = decodeText(message, { encoding });
|
|
422
|
+
const xml = parseXml(msg);
|
|
423
|
+
const playReadyKeyMessage = getElementsByName(xml, PLAYREADY_KEY_MESSAGE)[0];
|
|
443
424
|
if (!playReadyKeyMessage) return message;
|
|
444
425
|
const challengeValue = getElementsByName(playReadyKeyMessage, CHALLENGE)[0]?.childNodes[0]?.nodeValue;
|
|
445
426
|
if (challengeValue) return decodeBase64(challengeValue).buffer;
|
|
446
427
|
return message;
|
|
447
428
|
}
|
|
448
|
-
|
|
449
429
|
//#endregion
|
|
450
430
|
//#region src/common/CONTENT_TYPE.ts
|
|
451
431
|
/**
|
|
@@ -454,7 +434,6 @@ function getLicenseRequestFromMessage(message, encoding = UTF_16) {
|
|
|
454
434
|
* @public
|
|
455
435
|
*/
|
|
456
436
|
const CONTENT_TYPE = "Content-Type";
|
|
457
|
-
|
|
458
437
|
//#endregion
|
|
459
438
|
//#region src/common/HTTP_HEADERS.ts
|
|
460
439
|
/**
|
|
@@ -463,7 +442,6 @@ const CONTENT_TYPE = "Content-Type";
|
|
|
463
442
|
* @public
|
|
464
443
|
*/
|
|
465
444
|
const HTTP_HEADERS = "HttpHeaders";
|
|
466
|
-
|
|
467
445
|
//#endregion
|
|
468
446
|
//#region src/common/TEXT_XML_UTF8.ts
|
|
469
447
|
/**
|
|
@@ -472,7 +450,6 @@ const HTTP_HEADERS = "HttpHeaders";
|
|
|
472
450
|
* @public
|
|
473
451
|
*/
|
|
474
452
|
const TEXT_XML_UTF8 = "text/xml; charset=utf-8";
|
|
475
|
-
|
|
476
453
|
//#endregion
|
|
477
454
|
//#region src/playready/getRequestHeadersFromMessage.ts
|
|
478
455
|
/**
|
|
@@ -493,7 +470,9 @@ function getRequestHeadersFromMessage(message, encoding = UTF_16) {
|
|
|
493
470
|
headers[CONTENT_TYPE] = TEXT_XML_UTF8;
|
|
494
471
|
return headers;
|
|
495
472
|
}
|
|
496
|
-
const
|
|
473
|
+
const msg = decodeText(message, { encoding });
|
|
474
|
+
const xml = parseXml(msg);
|
|
475
|
+
const httpHeaders = getElementsByName(xml, HTTP_HEADERS)[0]?.childNodes;
|
|
497
476
|
if (!httpHeaders) return headers;
|
|
498
477
|
for (const header of httpHeaders) {
|
|
499
478
|
const name = getElementsByName(header, "name")[0]?.childNodes[0]?.nodeValue;
|
|
@@ -504,10 +483,9 @@ function getRequestHeadersFromMessage(message, encoding = UTF_16) {
|
|
|
504
483
|
headers[CONTENT_TYPE] = headers["Content"];
|
|
505
484
|
delete headers["Content"];
|
|
506
485
|
}
|
|
507
|
-
if (!headers[
|
|
486
|
+
if (!headers["Content-Type"]) headers[CONTENT_TYPE] = TEXT_XML_UTF8;
|
|
508
487
|
return headers;
|
|
509
488
|
}
|
|
510
|
-
|
|
511
489
|
//#endregion
|
|
512
490
|
//#region src/playready/toBigEndianKeyId.ts
|
|
513
491
|
/**
|
|
@@ -530,7 +508,6 @@ function toBigEndianKeyId(keyId) {
|
|
|
530
508
|
dataView.setUint16(6, dataView.getUint16(6, true), false);
|
|
531
509
|
return buffer;
|
|
532
510
|
}
|
|
533
|
-
|
|
534
511
|
//#endregion
|
|
535
512
|
//#region src/common/CLEAR_KEY_SYSTEM.ts
|
|
536
513
|
/**
|
|
@@ -539,7 +516,6 @@ function toBigEndianKeyId(keyId) {
|
|
|
539
516
|
* @public
|
|
540
517
|
*/
|
|
541
518
|
const CLEAR_KEY_SYSTEM = "org.w3.clearkey";
|
|
542
|
-
|
|
543
519
|
//#endregion
|
|
544
520
|
//#region src/common/CLEAR_KEY_UUID.ts
|
|
545
521
|
/**
|
|
@@ -548,7 +524,6 @@ const CLEAR_KEY_SYSTEM = "org.w3.clearkey";
|
|
|
548
524
|
* @public
|
|
549
525
|
*/
|
|
550
526
|
const CLEAR_KEY_UUID = "e2719d58-a985-b3c9-781a-b030af78d30e";
|
|
551
|
-
|
|
552
527
|
//#endregion
|
|
553
528
|
//#region src/common/EncryptionScheme.ts
|
|
554
529
|
/**
|
|
@@ -560,7 +535,6 @@ const EncryptionScheme = {
|
|
|
560
535
|
CENC,
|
|
561
536
|
CBCS
|
|
562
537
|
};
|
|
563
|
-
|
|
564
538
|
//#endregion
|
|
565
539
|
//#region src/common/EXPIRED.ts
|
|
566
540
|
/**
|
|
@@ -569,7 +543,6 @@ const EncryptionScheme = {
|
|
|
569
543
|
* @public
|
|
570
544
|
*/
|
|
571
545
|
const EXPIRED = "expired";
|
|
572
|
-
|
|
573
546
|
//#endregion
|
|
574
547
|
//#region src/common/FAIRPLAY_KEY_SYSTEM.ts
|
|
575
548
|
/**
|
|
@@ -578,7 +551,6 @@ const EXPIRED = "expired";
|
|
|
578
551
|
* @public
|
|
579
552
|
*/
|
|
580
553
|
const FAIRPLAY_KEY_SYSTEM = "com.apple.fps.1_0";
|
|
581
|
-
|
|
582
554
|
//#endregion
|
|
583
555
|
//#region src/common/FAIRPLAY_UUID.ts
|
|
584
556
|
/**
|
|
@@ -587,7 +559,6 @@ const FAIRPLAY_KEY_SYSTEM = "com.apple.fps.1_0";
|
|
|
587
559
|
* @public
|
|
588
560
|
*/
|
|
589
561
|
const FAIRPLAY_UUID = "29701fe4-3cc7-4a34-8c5b-ae90c7439a47";
|
|
590
|
-
|
|
591
562
|
//#endregion
|
|
592
563
|
//#region src/common/HW_SECURE_ALL.ts
|
|
593
564
|
/**
|
|
@@ -596,7 +567,6 @@ const FAIRPLAY_UUID = "29701fe4-3cc7-4a34-8c5b-ae90c7439a47";
|
|
|
596
567
|
* @public
|
|
597
568
|
*/
|
|
598
569
|
const HW_SECURE_ALL = "HW_SECURE_ALL";
|
|
599
|
-
|
|
600
570
|
//#endregion
|
|
601
571
|
//#region src/common/HW_SECURE_CRYPTO.ts
|
|
602
572
|
/**
|
|
@@ -605,7 +575,6 @@ const HW_SECURE_ALL = "HW_SECURE_ALL";
|
|
|
605
575
|
* @public
|
|
606
576
|
*/
|
|
607
577
|
const HW_SECURE_CRYPTO = "HW_SECURE_CRYPTO";
|
|
608
|
-
|
|
609
578
|
//#endregion
|
|
610
579
|
//#region src/common/HW_SECURE_DECODE.ts
|
|
611
580
|
/**
|
|
@@ -614,7 +583,6 @@ const HW_SECURE_CRYPTO = "HW_SECURE_CRYPTO";
|
|
|
614
583
|
* @public
|
|
615
584
|
*/
|
|
616
585
|
const HW_SECURE_DECODE = "HW_SECURE_DECODE";
|
|
617
|
-
|
|
618
586
|
//#endregion
|
|
619
587
|
//#region src/common/INDIVIDUALIZATION_REQUEST.ts
|
|
620
588
|
/**
|
|
@@ -623,7 +591,6 @@ const HW_SECURE_DECODE = "HW_SECURE_DECODE";
|
|
|
623
591
|
* @public
|
|
624
592
|
*/
|
|
625
593
|
const INDIVIDUALIZATION_REQUEST = "individualization-request";
|
|
626
|
-
|
|
627
594
|
//#endregion
|
|
628
595
|
//#region src/common/KEYIDS.ts
|
|
629
596
|
/**
|
|
@@ -632,7 +599,6 @@ const INDIVIDUALIZATION_REQUEST = "individualization-request";
|
|
|
632
599
|
* @public
|
|
633
600
|
*/
|
|
634
601
|
const KEYIDS = "keyids";
|
|
635
|
-
|
|
636
602
|
//#endregion
|
|
637
603
|
//#region src/common/WEBM.ts
|
|
638
604
|
/**
|
|
@@ -641,7 +607,6 @@ const KEYIDS = "keyids";
|
|
|
641
607
|
* @public
|
|
642
608
|
*/
|
|
643
609
|
const WEBM = "webm";
|
|
644
|
-
|
|
645
610
|
//#endregion
|
|
646
611
|
//#region src/common/InitializationDataType.ts
|
|
647
612
|
/**
|
|
@@ -655,7 +620,6 @@ const InitializationDataType = {
|
|
|
655
620
|
KEYIDS,
|
|
656
621
|
WEBM
|
|
657
622
|
};
|
|
658
|
-
|
|
659
623
|
//#endregion
|
|
660
624
|
//#region src/common/INTERNAL_ERROR.ts
|
|
661
625
|
/**
|
|
@@ -664,7 +628,6 @@ const InitializationDataType = {
|
|
|
664
628
|
* @public
|
|
665
629
|
*/
|
|
666
630
|
const INTERNAL_ERROR = "internal-error";
|
|
667
|
-
|
|
668
631
|
//#endregion
|
|
669
632
|
//#region src/common/LICENSE_ACQUISITION.ts
|
|
670
633
|
/**
|
|
@@ -673,7 +636,6 @@ const INTERNAL_ERROR = "internal-error";
|
|
|
673
636
|
* @public
|
|
674
637
|
*/
|
|
675
638
|
const LICENSE_ACQUISITION = "LicenseAcquisition";
|
|
676
|
-
|
|
677
639
|
//#endregion
|
|
678
640
|
//#region src/common/LICENSE_RELEASE.ts
|
|
679
641
|
/**
|
|
@@ -682,7 +644,6 @@ const LICENSE_ACQUISITION = "LicenseAcquisition";
|
|
|
682
644
|
* @public
|
|
683
645
|
*/
|
|
684
646
|
const LICENSE_RELEASE = "license-release";
|
|
685
|
-
|
|
686
647
|
//#endregion
|
|
687
648
|
//#region src/common/LICENSE_RENEWAL.ts
|
|
688
649
|
/**
|
|
@@ -691,7 +652,6 @@ const LICENSE_RELEASE = "license-release";
|
|
|
691
652
|
* @public
|
|
692
653
|
*/
|
|
693
654
|
const LICENSE_RENEWAL = "license-renewal";
|
|
694
|
-
|
|
695
655
|
//#endregion
|
|
696
656
|
//#region src/common/LICENSE_REQUEST.ts
|
|
697
657
|
/**
|
|
@@ -700,7 +660,6 @@ const LICENSE_RENEWAL = "license-renewal";
|
|
|
700
660
|
* @public
|
|
701
661
|
*/
|
|
702
662
|
const LICENSE_REQUEST = "license-request";
|
|
703
|
-
|
|
704
663
|
//#endregion
|
|
705
664
|
//#region src/common/MediaKeyMessageType.ts
|
|
706
665
|
/**
|
|
@@ -714,7 +673,6 @@ const MediaKeyMessageType = {
|
|
|
714
673
|
LICENSE_RELEASE,
|
|
715
674
|
INDIVIDUALIZATION_REQUEST
|
|
716
675
|
};
|
|
717
|
-
|
|
718
676
|
//#endregion
|
|
719
677
|
//#region src/common/OUTPUT_DOWNSCALED.ts
|
|
720
678
|
/**
|
|
@@ -723,7 +681,6 @@ const MediaKeyMessageType = {
|
|
|
723
681
|
* @public
|
|
724
682
|
*/
|
|
725
683
|
const OUTPUT_DOWNSCALED = "output-downscaled";
|
|
726
|
-
|
|
727
684
|
//#endregion
|
|
728
685
|
//#region src/common/OUTPUT_RESTRICTED.ts
|
|
729
686
|
/**
|
|
@@ -732,7 +689,6 @@ const OUTPUT_DOWNSCALED = "output-downscaled";
|
|
|
732
689
|
* @public
|
|
733
690
|
*/
|
|
734
691
|
const OUTPUT_RESTRICTED = "output-restricted";
|
|
735
|
-
|
|
736
692
|
//#endregion
|
|
737
693
|
//#region src/common/RELEASED.ts
|
|
738
694
|
/**
|
|
@@ -741,7 +697,6 @@ const OUTPUT_RESTRICTED = "output-restricted";
|
|
|
741
697
|
* @public
|
|
742
698
|
*/
|
|
743
699
|
const RELEASED = "released";
|
|
744
|
-
|
|
745
700
|
//#endregion
|
|
746
701
|
//#region src/common/STATUS_PENDING.ts
|
|
747
702
|
/**
|
|
@@ -750,7 +705,6 @@ const RELEASED = "released";
|
|
|
750
705
|
* @public
|
|
751
706
|
*/
|
|
752
707
|
const STATUS_PENDING = "status-pending";
|
|
753
|
-
|
|
754
708
|
//#endregion
|
|
755
709
|
//#region src/common/USABLE.ts
|
|
756
710
|
/**
|
|
@@ -759,7 +713,6 @@ const STATUS_PENDING = "status-pending";
|
|
|
759
713
|
* @public
|
|
760
714
|
*/
|
|
761
715
|
const USABLE = "usable";
|
|
762
|
-
|
|
763
716
|
//#endregion
|
|
764
717
|
//#region src/common/MediaKeyStatus.ts
|
|
765
718
|
/**
|
|
@@ -776,7 +729,6 @@ const MediaKeyStatus = {
|
|
|
776
729
|
STATUS_PENDING,
|
|
777
730
|
INTERNAL_ERROR
|
|
778
731
|
};
|
|
779
|
-
|
|
780
732
|
//#endregion
|
|
781
733
|
//#region src/common/PLAYREADY_KEY_SYSTEM.ts
|
|
782
734
|
/**
|
|
@@ -785,7 +737,6 @@ const MediaKeyStatus = {
|
|
|
785
737
|
* @public
|
|
786
738
|
*/
|
|
787
739
|
const PLAYREADY_KEY_SYSTEM = "com.microsoft.playready";
|
|
788
|
-
|
|
789
740
|
//#endregion
|
|
790
741
|
//#region src/common/PLAYREADY_RECOMMENDATION_KEY_SYSTEM.ts
|
|
791
742
|
/**
|
|
@@ -794,7 +745,6 @@ const PLAYREADY_KEY_SYSTEM = "com.microsoft.playready";
|
|
|
794
745
|
* @public
|
|
795
746
|
*/
|
|
796
747
|
const PLAYREADY_RECOMMENDATION_KEY_SYSTEM = "com.microsoft.playready.recommendation";
|
|
797
|
-
|
|
798
748
|
//#endregion
|
|
799
749
|
//#region src/common/PLAYREADY_UUID.ts
|
|
800
750
|
/**
|
|
@@ -803,7 +753,6 @@ const PLAYREADY_RECOMMENDATION_KEY_SYSTEM = "com.microsoft.playready.recommendat
|
|
|
803
753
|
* @public
|
|
804
754
|
*/
|
|
805
755
|
const PLAYREADY_UUID = "9a04f079-9840-4286-ab92-e65be0885f95";
|
|
806
|
-
|
|
807
756
|
//#endregion
|
|
808
757
|
//#region src/common/SW_SECURE_CRYPTO.ts
|
|
809
758
|
/**
|
|
@@ -812,7 +761,6 @@ const PLAYREADY_UUID = "9a04f079-9840-4286-ab92-e65be0885f95";
|
|
|
812
761
|
* @public
|
|
813
762
|
*/
|
|
814
763
|
const SW_SECURE_CRYPTO = "SW_SECURE_CRYPTO";
|
|
815
|
-
|
|
816
764
|
//#endregion
|
|
817
765
|
//#region src/common/SW_SECURE_DECODE.ts
|
|
818
766
|
/**
|
|
@@ -821,7 +769,6 @@ const SW_SECURE_CRYPTO = "SW_SECURE_CRYPTO";
|
|
|
821
769
|
* @public
|
|
822
770
|
*/
|
|
823
771
|
const SW_SECURE_DECODE = "SW_SECURE_DECODE";
|
|
824
|
-
|
|
825
772
|
//#endregion
|
|
826
773
|
//#region src/common/W3C_CLEAR_KEY_UUID.ts
|
|
827
774
|
/**
|
|
@@ -830,7 +777,6 @@ const SW_SECURE_DECODE = "SW_SECURE_DECODE";
|
|
|
830
777
|
* @public
|
|
831
778
|
*/
|
|
832
779
|
const W3C_CLEAR_KEY_UUID = "1077efec-c0b2-4d02-ace3-3c1e52e2fb4b";
|
|
833
|
-
|
|
834
780
|
//#endregion
|
|
835
781
|
//#region src/common/WIDEVINE_KEY_SYSTEM.ts
|
|
836
782
|
/**
|
|
@@ -839,7 +785,6 @@ const W3C_CLEAR_KEY_UUID = "1077efec-c0b2-4d02-ace3-3c1e52e2fb4b";
|
|
|
839
785
|
* @public
|
|
840
786
|
*/
|
|
841
787
|
const WIDEVINE_KEY_SYSTEM = "com.widevine.alpha";
|
|
842
|
-
|
|
843
788
|
//#endregion
|
|
844
789
|
//#region src/common/WIDEVINE_UUID.ts
|
|
845
790
|
/**
|
|
@@ -848,7 +793,6 @@ const WIDEVINE_KEY_SYSTEM = "com.widevine.alpha";
|
|
|
848
793
|
* @public
|
|
849
794
|
*/
|
|
850
795
|
const WIDEVINE_UUID = "edef8ba9-79d6-4ace-a3c8-27dcd51d21ed";
|
|
851
|
-
|
|
852
796
|
//#endregion
|
|
853
797
|
//#region src/common/WidevineRobustness.ts
|
|
854
798
|
/**
|
|
@@ -863,7 +807,6 @@ const WidevineRobustness = {
|
|
|
863
807
|
HW_SECURE_DECODE,
|
|
864
808
|
HW_SECURE_ALL
|
|
865
809
|
};
|
|
866
|
-
|
|
867
810
|
//#endregion
|
|
868
811
|
//#region src/ensureEncryptedInit.ts
|
|
869
812
|
const audioTypes = [
|
|
@@ -992,7 +935,7 @@ function ensureEncryptedInit(init, options) {
|
|
|
992
935
|
if (includeOriginal) result.set(init, offset);
|
|
993
936
|
return result;
|
|
994
937
|
}
|
|
995
|
-
|
|
996
938
|
//#endregion
|
|
997
939
|
export { CBCS, CENC, CHALLENGE, CLEAR_KEY_SYSTEM, CLEAR_KEY_UUID, CONTENT_TYPE, EXPIRED, EncryptionScheme, FAIRPLAY_KEY_SYSTEM, FAIRPLAY_UUID, HTTP_HEADERS, HW_SECURE_ALL, HW_SECURE_CRYPTO, HW_SECURE_DECODE, INDIVIDUALIZATION_REQUEST, INTERNAL_ERROR, InitializationDataType, KEYIDS, LICENSE_ACQUISITION, LICENSE_RELEASE, LICENSE_RENEWAL, LICENSE_REQUEST, MP4_PROTECTION_SCHEME, MediaKeyMessageType, MediaKeyStatus, OUTPUT_DOWNSCALED, OUTPUT_RESTRICTED, PLAYREADY_KEY_MESSAGE, PLAYREADY_KEY_SYSTEM, PLAYREADY_RECOMMENDATION_KEY_SYSTEM, PLAYREADY_UUID, RELEASED, STATUS_PENDING, SW_SECURE_CRYPTO, SW_SECURE_DECODE, TEXT_XML_UTF8, USABLE, W3C_CLEAR_KEY_UUID, WEBM, WIDEVINE_KEY_SYSTEM, WIDEVINE_UUID, WidevineRobustness, concatInitDataIdAndCertificate, createMediaKeySystemConfiguration, decodeFairPlayLicense, ensureEncryptedInit, extractContentId, findCencContentProtection, getId, getKeySystemAccess, getLegacyKeySystemAccess, getLicenseRequestFromMessage, getLicenseServerUrl, getLicenseServerUrlFromContentProtection, getPsshData, getPsshForKeySystem, getRequestHeadersFromMessage, getSupportedKeySystemConfiguration, parseInitDataFromContentProtection, parsePsshList, toBigEndianKeyId };
|
|
940
|
+
|
|
998
941
|
//# sourceMappingURL=index.js.map
|