@svta/cml-drm 0.19.0 → 0.20.0

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 (259) hide show
  1. package/README.md +15 -0
  2. package/dist/index.d.ts +777 -69
  3. package/dist/index.d.ts.map +1 -1
  4. package/dist/index.js +921 -71
  5. package/dist/index.js.map +1 -1
  6. package/package.json +7 -26
  7. package/dist/cenc/findCencContentProtection.d.ts +0 -14
  8. package/dist/cenc/findCencContentProtection.d.ts.map +0 -1
  9. package/dist/cenc/findCencContentProtection.js +0 -30
  10. package/dist/cenc/findCencContentProtection.js.map +0 -1
  11. package/dist/cenc/getLicenseServerUrlFromContentProtection.d.ts +0 -15
  12. package/dist/cenc/getLicenseServerUrlFromContentProtection.d.ts.map +0 -1
  13. package/dist/cenc/getLicenseServerUrlFromContentProtection.js +0 -17
  14. package/dist/cenc/getLicenseServerUrlFromContentProtection.js.map +0 -1
  15. package/dist/cenc/getPsshData.d.ts +0 -13
  16. package/dist/cenc/getPsshData.d.ts.map +0 -1
  17. package/dist/cenc/getPsshData.js +0 -24
  18. package/dist/cenc/getPsshData.js.map +0 -1
  19. package/dist/cenc/getPsshForKeySystem.d.ts +0 -15
  20. package/dist/cenc/getPsshForKeySystem.d.ts.map +0 -1
  21. package/dist/cenc/getPsshForKeySystem.js +0 -22
  22. package/dist/cenc/getPsshForKeySystem.js.map +0 -1
  23. package/dist/cenc/parseInitDataFromContentProtection.d.ts +0 -18
  24. package/dist/cenc/parseInitDataFromContentProtection.d.ts.map +0 -1
  25. package/dist/cenc/parseInitDataFromContentProtection.js +0 -21
  26. package/dist/cenc/parseInitDataFromContentProtection.js.map +0 -1
  27. package/dist/cenc/parsePsshList.d.ts +0 -16
  28. package/dist/cenc/parsePsshList.d.ts.map +0 -1
  29. package/dist/cenc/parsePsshList.js +0 -87
  30. package/dist/cenc/parsePsshList.js.map +0 -1
  31. package/dist/common/CBCS.d.ts +0 -8
  32. package/dist/common/CBCS.d.ts.map +0 -1
  33. package/dist/common/CBCS.js +0 -8
  34. package/dist/common/CBCS.js.map +0 -1
  35. package/dist/common/CENC.d.ts +0 -8
  36. package/dist/common/CENC.d.ts.map +0 -1
  37. package/dist/common/CENC.js +0 -8
  38. package/dist/common/CENC.js.map +0 -1
  39. package/dist/common/CHALLENGE.d.ts +0 -8
  40. package/dist/common/CHALLENGE.d.ts.map +0 -1
  41. package/dist/common/CHALLENGE.js +0 -8
  42. package/dist/common/CHALLENGE.js.map +0 -1
  43. package/dist/common/CLEAR_KEY_SYSTEM.d.ts +0 -8
  44. package/dist/common/CLEAR_KEY_SYSTEM.d.ts.map +0 -1
  45. package/dist/common/CLEAR_KEY_SYSTEM.js +0 -8
  46. package/dist/common/CLEAR_KEY_SYSTEM.js.map +0 -1
  47. package/dist/common/CLEAR_KEY_UUID.d.ts +0 -8
  48. package/dist/common/CLEAR_KEY_UUID.d.ts.map +0 -1
  49. package/dist/common/CLEAR_KEY_UUID.js +0 -8
  50. package/dist/common/CLEAR_KEY_UUID.js.map +0 -1
  51. package/dist/common/CONTENT_TYPE.d.ts +0 -8
  52. package/dist/common/CONTENT_TYPE.d.ts.map +0 -1
  53. package/dist/common/CONTENT_TYPE.js +0 -8
  54. package/dist/common/CONTENT_TYPE.js.map +0 -1
  55. package/dist/common/ContentProtection.d.ts +0 -12
  56. package/dist/common/ContentProtection.d.ts.map +0 -1
  57. package/dist/common/ContentProtection.js +0 -2
  58. package/dist/common/ContentProtection.js.map +0 -1
  59. package/dist/common/EXPIRED.d.ts +0 -8
  60. package/dist/common/EXPIRED.d.ts.map +0 -1
  61. package/dist/common/EXPIRED.js +0 -8
  62. package/dist/common/EXPIRED.js.map +0 -1
  63. package/dist/common/EncryptionScheme.d.ts +0 -21
  64. package/dist/common/EncryptionScheme.d.ts.map +0 -1
  65. package/dist/common/EncryptionScheme.js +0 -13
  66. package/dist/common/EncryptionScheme.js.map +0 -1
  67. package/dist/common/FAIRPLAY_KEY_SYSTEM.d.ts +0 -8
  68. package/dist/common/FAIRPLAY_KEY_SYSTEM.d.ts.map +0 -1
  69. package/dist/common/FAIRPLAY_KEY_SYSTEM.js +0 -8
  70. package/dist/common/FAIRPLAY_KEY_SYSTEM.js.map +0 -1
  71. package/dist/common/FAIRPLAY_UUID.d.ts +0 -8
  72. package/dist/common/FAIRPLAY_UUID.d.ts.map +0 -1
  73. package/dist/common/FAIRPLAY_UUID.js +0 -8
  74. package/dist/common/FAIRPLAY_UUID.js.map +0 -1
  75. package/dist/common/HTTP_HEADERS.d.ts +0 -8
  76. package/dist/common/HTTP_HEADERS.d.ts.map +0 -1
  77. package/dist/common/HTTP_HEADERS.js +0 -8
  78. package/dist/common/HTTP_HEADERS.js.map +0 -1
  79. package/dist/common/HW_SECURE_ALL.d.ts +0 -8
  80. package/dist/common/HW_SECURE_ALL.d.ts.map +0 -1
  81. package/dist/common/HW_SECURE_ALL.js +0 -8
  82. package/dist/common/HW_SECURE_ALL.js.map +0 -1
  83. package/dist/common/HW_SECURE_CRYPTO.d.ts +0 -8
  84. package/dist/common/HW_SECURE_CRYPTO.d.ts.map +0 -1
  85. package/dist/common/HW_SECURE_CRYPTO.js +0 -8
  86. package/dist/common/HW_SECURE_CRYPTO.js.map +0 -1
  87. package/dist/common/HW_SECURE_DECODE.d.ts +0 -8
  88. package/dist/common/HW_SECURE_DECODE.d.ts.map +0 -1
  89. package/dist/common/HW_SECURE_DECODE.js +0 -8
  90. package/dist/common/HW_SECURE_DECODE.js.map +0 -1
  91. package/dist/common/INDIVIDUALIZATION_REQUEST.d.ts +0 -8
  92. package/dist/common/INDIVIDUALIZATION_REQUEST.d.ts.map +0 -1
  93. package/dist/common/INDIVIDUALIZATION_REQUEST.js +0 -8
  94. package/dist/common/INDIVIDUALIZATION_REQUEST.js.map +0 -1
  95. package/dist/common/INTERNAL_ERROR.d.ts +0 -8
  96. package/dist/common/INTERNAL_ERROR.d.ts.map +0 -1
  97. package/dist/common/INTERNAL_ERROR.js +0 -8
  98. package/dist/common/INTERNAL_ERROR.js.map +0 -1
  99. package/dist/common/InitializationDataType.d.ts +0 -25
  100. package/dist/common/InitializationDataType.d.ts.map +0 -1
  101. package/dist/common/InitializationDataType.js +0 -17
  102. package/dist/common/InitializationDataType.js.map +0 -1
  103. package/dist/common/KEYIDS.d.ts +0 -8
  104. package/dist/common/KEYIDS.d.ts.map +0 -1
  105. package/dist/common/KEYIDS.js +0 -8
  106. package/dist/common/KEYIDS.js.map +0 -1
  107. package/dist/common/LICENSE_ACQUISITION.d.ts +0 -8
  108. package/dist/common/LICENSE_ACQUISITION.d.ts.map +0 -1
  109. package/dist/common/LICENSE_ACQUISITION.js +0 -8
  110. package/dist/common/LICENSE_ACQUISITION.js.map +0 -1
  111. package/dist/common/LICENSE_RELEASE.d.ts +0 -8
  112. package/dist/common/LICENSE_RELEASE.d.ts.map +0 -1
  113. package/dist/common/LICENSE_RELEASE.js +0 -8
  114. package/dist/common/LICENSE_RELEASE.js.map +0 -1
  115. package/dist/common/LICENSE_RENEWAL.d.ts +0 -8
  116. package/dist/common/LICENSE_RENEWAL.d.ts.map +0 -1
  117. package/dist/common/LICENSE_RENEWAL.js +0 -8
  118. package/dist/common/LICENSE_RENEWAL.js.map +0 -1
  119. package/dist/common/LICENSE_REQUEST.d.ts +0 -8
  120. package/dist/common/LICENSE_REQUEST.d.ts.map +0 -1
  121. package/dist/common/LICENSE_REQUEST.js +0 -8
  122. package/dist/common/LICENSE_REQUEST.js.map +0 -1
  123. package/dist/common/LicenseRequest.d.ts +0 -45
  124. package/dist/common/LicenseRequest.d.ts.map +0 -1
  125. package/dist/common/LicenseRequest.js +0 -2
  126. package/dist/common/LicenseRequest.js.map +0 -1
  127. package/dist/common/MP4_PROTECTION_SCHEME.d.ts +0 -7
  128. package/dist/common/MP4_PROTECTION_SCHEME.d.ts.map +0 -1
  129. package/dist/common/MP4_PROTECTION_SCHEME.js +0 -7
  130. package/dist/common/MP4_PROTECTION_SCHEME.js.map +0 -1
  131. package/dist/common/MediaKeyMessageType.d.ts +0 -25
  132. package/dist/common/MediaKeyMessageType.d.ts.map +0 -1
  133. package/dist/common/MediaKeyMessageType.js +0 -17
  134. package/dist/common/MediaKeyMessageType.js.map +0 -1
  135. package/dist/common/MediaKeyStatus.d.ts +0 -31
  136. package/dist/common/MediaKeyStatus.d.ts.map +0 -1
  137. package/dist/common/MediaKeyStatus.js +0 -23
  138. package/dist/common/MediaKeyStatus.js.map +0 -1
  139. package/dist/common/MediaKeySystemAccessRequest.d.ts +0 -11
  140. package/dist/common/MediaKeySystemAccessRequest.d.ts.map +0 -1
  141. package/dist/common/MediaKeySystemAccessRequest.js +0 -2
  142. package/dist/common/MediaKeySystemAccessRequest.js.map +0 -1
  143. package/dist/common/OUTPUT_DOWNSCALED.d.ts +0 -8
  144. package/dist/common/OUTPUT_DOWNSCALED.d.ts.map +0 -1
  145. package/dist/common/OUTPUT_DOWNSCALED.js +0 -8
  146. package/dist/common/OUTPUT_DOWNSCALED.js.map +0 -1
  147. package/dist/common/OUTPUT_RESTRICTED.d.ts +0 -8
  148. package/dist/common/OUTPUT_RESTRICTED.d.ts.map +0 -1
  149. package/dist/common/OUTPUT_RESTRICTED.js +0 -8
  150. package/dist/common/OUTPUT_RESTRICTED.js.map +0 -1
  151. package/dist/common/PLAYREADY_KEY_MESSAGE.d.ts +0 -8
  152. package/dist/common/PLAYREADY_KEY_MESSAGE.d.ts.map +0 -1
  153. package/dist/common/PLAYREADY_KEY_MESSAGE.js +0 -8
  154. package/dist/common/PLAYREADY_KEY_MESSAGE.js.map +0 -1
  155. package/dist/common/PLAYREADY_KEY_SYSTEM.d.ts +0 -8
  156. package/dist/common/PLAYREADY_KEY_SYSTEM.d.ts.map +0 -1
  157. package/dist/common/PLAYREADY_KEY_SYSTEM.js +0 -8
  158. package/dist/common/PLAYREADY_KEY_SYSTEM.js.map +0 -1
  159. package/dist/common/PLAYREADY_RECOMMENDATION_KEY_SYSTEM.d.ts +0 -8
  160. package/dist/common/PLAYREADY_RECOMMENDATION_KEY_SYSTEM.d.ts.map +0 -1
  161. package/dist/common/PLAYREADY_RECOMMENDATION_KEY_SYSTEM.js +0 -8
  162. package/dist/common/PLAYREADY_RECOMMENDATION_KEY_SYSTEM.js.map +0 -1
  163. package/dist/common/PLAYREADY_UUID.d.ts +0 -8
  164. package/dist/common/PLAYREADY_UUID.d.ts.map +0 -1
  165. package/dist/common/PLAYREADY_UUID.js +0 -8
  166. package/dist/common/PLAYREADY_UUID.js.map +0 -1
  167. package/dist/common/RELEASED.d.ts +0 -8
  168. package/dist/common/RELEASED.d.ts.map +0 -1
  169. package/dist/common/RELEASED.js +0 -8
  170. package/dist/common/RELEASED.js.map +0 -1
  171. package/dist/common/STATUS_PENDING.d.ts +0 -8
  172. package/dist/common/STATUS_PENDING.d.ts.map +0 -1
  173. package/dist/common/STATUS_PENDING.js +0 -8
  174. package/dist/common/STATUS_PENDING.js.map +0 -1
  175. package/dist/common/SW_SECURE_CRYPTO.d.ts +0 -8
  176. package/dist/common/SW_SECURE_CRYPTO.d.ts.map +0 -1
  177. package/dist/common/SW_SECURE_CRYPTO.js +0 -8
  178. package/dist/common/SW_SECURE_CRYPTO.js.map +0 -1
  179. package/dist/common/SW_SECURE_DECODE.d.ts +0 -8
  180. package/dist/common/SW_SECURE_DECODE.d.ts.map +0 -1
  181. package/dist/common/SW_SECURE_DECODE.js +0 -8
  182. package/dist/common/SW_SECURE_DECODE.js.map +0 -1
  183. package/dist/common/TEXT_XML_UTF8.d.ts +0 -8
  184. package/dist/common/TEXT_XML_UTF8.d.ts.map +0 -1
  185. package/dist/common/TEXT_XML_UTF8.js +0 -8
  186. package/dist/common/TEXT_XML_UTF8.js.map +0 -1
  187. package/dist/common/USABLE.d.ts +0 -8
  188. package/dist/common/USABLE.d.ts.map +0 -1
  189. package/dist/common/USABLE.js +0 -8
  190. package/dist/common/USABLE.js.map +0 -1
  191. package/dist/common/W3C_CLEAR_KEY_UUID.d.ts +0 -8
  192. package/dist/common/W3C_CLEAR_KEY_UUID.d.ts.map +0 -1
  193. package/dist/common/W3C_CLEAR_KEY_UUID.js +0 -8
  194. package/dist/common/W3C_CLEAR_KEY_UUID.js.map +0 -1
  195. package/dist/common/WEBM.d.ts +0 -8
  196. package/dist/common/WEBM.d.ts.map +0 -1
  197. package/dist/common/WEBM.js +0 -8
  198. package/dist/common/WEBM.js.map +0 -1
  199. package/dist/common/WIDEVINE_KEY_SYSTEM.d.ts +0 -8
  200. package/dist/common/WIDEVINE_KEY_SYSTEM.d.ts.map +0 -1
  201. package/dist/common/WIDEVINE_KEY_SYSTEM.js +0 -8
  202. package/dist/common/WIDEVINE_KEY_SYSTEM.js.map +0 -1
  203. package/dist/common/WIDEVINE_UUID.d.ts +0 -8
  204. package/dist/common/WIDEVINE_UUID.d.ts.map +0 -1
  205. package/dist/common/WIDEVINE_UUID.js +0 -8
  206. package/dist/common/WIDEVINE_UUID.js.map +0 -1
  207. package/dist/common/WidevineRobustness.d.ts +0 -27
  208. package/dist/common/WidevineRobustness.d.ts.map +0 -1
  209. package/dist/common/WidevineRobustness.js +0 -19
  210. package/dist/common/WidevineRobustness.js.map +0 -1
  211. package/dist/fairplay/concatInitDataIdAndCertificate.d.ts +0 -15
  212. package/dist/fairplay/concatInitDataIdAndCertificate.d.ts.map +0 -1
  213. package/dist/fairplay/concatInitDataIdAndCertificate.js +0 -33
  214. package/dist/fairplay/concatInitDataIdAndCertificate.js.map +0 -1
  215. package/dist/fairplay/decodeFairPlayLicense.d.ts +0 -13
  216. package/dist/fairplay/decodeFairPlayLicense.d.ts.map +0 -1
  217. package/dist/fairplay/decodeFairPlayLicense.js +0 -18
  218. package/dist/fairplay/decodeFairPlayLicense.js.map +0 -1
  219. package/dist/fairplay/extractContentId.d.ts +0 -14
  220. package/dist/fairplay/extractContentId.d.ts.map +0 -1
  221. package/dist/fairplay/extractContentId.js +0 -19
  222. package/dist/fairplay/extractContentId.js.map +0 -1
  223. package/dist/fairplay/getId.d.ts +0 -15
  224. package/dist/fairplay/getId.d.ts.map +0 -1
  225. package/dist/fairplay/getId.js +0 -27
  226. package/dist/fairplay/getId.js.map +0 -1
  227. package/dist/fairplay/getLicenseServerUrl.d.ts +0 -13
  228. package/dist/fairplay/getLicenseServerUrl.d.ts.map +0 -1
  229. package/dist/fairplay/getLicenseServerUrl.js +0 -22
  230. package/dist/fairplay/getLicenseServerUrl.js.map +0 -1
  231. package/dist/keysystem/createMediaKeySystemConfiguration.d.ts +0 -14
  232. package/dist/keysystem/createMediaKeySystemConfiguration.d.ts.map +0 -1
  233. package/dist/keysystem/createMediaKeySystemConfiguration.js +0 -27
  234. package/dist/keysystem/createMediaKeySystemConfiguration.js.map +0 -1
  235. package/dist/keysystem/getKeySystemAccess.d.ts +0 -11
  236. package/dist/keysystem/getKeySystemAccess.d.ts.map +0 -1
  237. package/dist/keysystem/getKeySystemAccess.js +0 -20
  238. package/dist/keysystem/getKeySystemAccess.js.map +0 -1
  239. package/dist/keysystem/getLegacyKeySystemAccess.d.ts +0 -11
  240. package/dist/keysystem/getLegacyKeySystemAccess.d.ts.map +0 -1
  241. package/dist/keysystem/getLegacyKeySystemAccess.js +0 -24
  242. package/dist/keysystem/getLegacyKeySystemAccess.js.map +0 -1
  243. package/dist/keysystem/getSupportedKeySystemConfiguration.d.ts +0 -14
  244. package/dist/keysystem/getSupportedKeySystemConfiguration.d.ts.map +0 -1
  245. package/dist/keysystem/getSupportedKeySystemConfiguration.js +0 -28
  246. package/dist/keysystem/getSupportedKeySystemConfiguration.js.map +0 -1
  247. package/dist/playready/getLicenseRequestFromMessage.d.ts +0 -15
  248. package/dist/playready/getLicenseRequestFromMessage.d.ts.map +0 -1
  249. package/dist/playready/getLicenseRequestFromMessage.js +0 -41
  250. package/dist/playready/getLicenseRequestFromMessage.js.map +0 -1
  251. package/dist/playready/getRequestHeadersFromMessage.d.ts +0 -16
  252. package/dist/playready/getRequestHeadersFromMessage.d.ts.map +0 -1
  253. package/dist/playready/getRequestHeadersFromMessage.js +0 -52
  254. package/dist/playready/getRequestHeadersFromMessage.js.map +0 -1
  255. package/dist/playready/toBigEndianKeyId.d.ts +0 -13
  256. package/dist/playready/toBigEndianKeyId.d.ts.map +0 -1
  257. package/dist/playready/toBigEndianKeyId.js +0 -23
  258. package/dist/playready/toBigEndianKeyId.js.map +0 -1
  259. package/dist/tsconfig.tsbuildinfo +0 -1
@@ -1,8 +0,0 @@
1
- /**
2
- * Widevine Key System.
3
- *
4
- *
5
- * @beta
6
- */
7
- export declare const WIDEVINE_KEY_SYSTEM = "com.widevine.alpha";
8
- //# sourceMappingURL=WIDEVINE_KEY_SYSTEM.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"WIDEVINE_KEY_SYSTEM.d.ts","sourceRoot":"","sources":["../../src/common/WIDEVINE_KEY_SYSTEM.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,eAAO,MAAM,mBAAmB,uBAAuB,CAAC"}
@@ -1,8 +0,0 @@
1
- /**
2
- * Widevine Key System.
3
- *
4
- *
5
- * @beta
6
- */
7
- export const WIDEVINE_KEY_SYSTEM = 'com.widevine.alpha';
8
- //# sourceMappingURL=WIDEVINE_KEY_SYSTEM.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"WIDEVINE_KEY_SYSTEM.js","sourceRoot":"","sources":["../../src/common/WIDEVINE_KEY_SYSTEM.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAG,oBAAoB,CAAC","sourcesContent":["/**\n * Widevine Key System.\n *\n *\n * @beta\n */\nexport const WIDEVINE_KEY_SYSTEM = 'com.widevine.alpha';\n"]}
@@ -1,8 +0,0 @@
1
- /**
2
- * Widevine UUID.
3
- *
4
- *
5
- * @beta
6
- */
7
- export declare const WIDEVINE_UUID = "edef8ba9-79d6-4ace-a3c8-27dcd51d21ed";
8
- //# sourceMappingURL=WIDEVINE_UUID.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"WIDEVINE_UUID.d.ts","sourceRoot":"","sources":["../../src/common/WIDEVINE_UUID.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,eAAO,MAAM,aAAa,yCAAyC,CAAC"}
@@ -1,8 +0,0 @@
1
- /**
2
- * Widevine UUID.
3
- *
4
- *
5
- * @beta
6
- */
7
- export const WIDEVINE_UUID = 'edef8ba9-79d6-4ace-a3c8-27dcd51d21ed';
8
- //# sourceMappingURL=WIDEVINE_UUID.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"WIDEVINE_UUID.js","sourceRoot":"","sources":["../../src/common/WIDEVINE_UUID.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,MAAM,CAAC,MAAM,aAAa,GAAG,sCAAsC,CAAC","sourcesContent":["/**\n * Widevine UUID.\n *\n *\n * @beta\n */\nexport const WIDEVINE_UUID = 'edef8ba9-79d6-4ace-a3c8-27dcd51d21ed';\n"]}
@@ -1,27 +0,0 @@
1
- import type { ValueOf } from '@svta/cml-utils/ValueOf.js';
2
- import { HW_SECURE_ALL } from './HW_SECURE_ALL.js';
3
- import { HW_SECURE_CRYPTO } from './HW_SECURE_CRYPTO.js';
4
- import { HW_SECURE_DECODE } from './HW_SECURE_DECODE.js';
5
- import { SW_SECURE_CRYPTO } from './SW_SECURE_CRYPTO.js';
6
- import { SW_SECURE_DECODE } from './SW_SECURE_DECODE.js';
7
- /**
8
- * Widevine Robustness.
9
- *
10
- *
11
- * @beta
12
- */
13
- export declare const WidevineRobustness: {
14
- readonly SW_SECURE_CRYPTO: typeof SW_SECURE_CRYPTO;
15
- readonly SW_SECURE_DECODE: typeof SW_SECURE_DECODE;
16
- readonly HW_SECURE_CRYPTO: typeof HW_SECURE_CRYPTO;
17
- readonly HW_SECURE_DECODE: typeof HW_SECURE_DECODE;
18
- readonly HW_SECURE_ALL: typeof HW_SECURE_ALL;
19
- };
20
- /**
21
- * Widevine Robustness.
22
- *
23
- *
24
- * @beta
25
- */
26
- export type WidevineRobustness = ValueOf<typeof WidevineRobustness>;
27
- //# sourceMappingURL=WidevineRobustness.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"WidevineRobustness.d.ts","sourceRoot":"","sources":["../../src/common/WidevineRobustness.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,4BAA4B,CAAC;AAC1D,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAEzD;;;;;GAKG;AACH,eAAO,MAAM,kBAAkB;+BACQ,OAAO,gBAAgB;+BACvB,OAAO,gBAAgB;+BACvB,OAAO,gBAAgB;+BACvB,OAAO,gBAAgB;4BAC7B,OAAO,aAAa;CAC3C,CAAC;AAEX;;;;;GAKG;AACH,MAAM,MAAM,kBAAkB,GAAG,OAAO,CAAC,OAAO,kBAAkB,CAAC,CAAC"}
@@ -1,19 +0,0 @@
1
- import { HW_SECURE_ALL } from './HW_SECURE_ALL.js';
2
- import { HW_SECURE_CRYPTO } from './HW_SECURE_CRYPTO.js';
3
- import { HW_SECURE_DECODE } from './HW_SECURE_DECODE.js';
4
- import { SW_SECURE_CRYPTO } from './SW_SECURE_CRYPTO.js';
5
- import { SW_SECURE_DECODE } from './SW_SECURE_DECODE.js';
6
- /**
7
- * Widevine Robustness.
8
- *
9
- *
10
- * @beta
11
- */
12
- export const WidevineRobustness = {
13
- SW_SECURE_CRYPTO: SW_SECURE_CRYPTO,
14
- SW_SECURE_DECODE: SW_SECURE_DECODE,
15
- HW_SECURE_CRYPTO: HW_SECURE_CRYPTO,
16
- HW_SECURE_DECODE: HW_SECURE_DECODE,
17
- HW_SECURE_ALL: HW_SECURE_ALL,
18
- };
19
- //# sourceMappingURL=WidevineRobustness.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"WidevineRobustness.js","sourceRoot":"","sources":["../../src/common/WidevineRobustness.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAEzD;;;;;GAKG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAG;IACjC,gBAAgB,EAAE,gBAA2C;IAC7D,gBAAgB,EAAE,gBAA2C;IAC7D,gBAAgB,EAAE,gBAA2C;IAC7D,gBAAgB,EAAE,gBAA2C;IAC7D,aAAa,EAAE,aAAqC;CAC3C,CAAC","sourcesContent":["import type { ValueOf } from '@svta/cml-utils/ValueOf.js';\nimport { HW_SECURE_ALL } from './HW_SECURE_ALL.js';\nimport { HW_SECURE_CRYPTO } from './HW_SECURE_CRYPTO.js';\nimport { HW_SECURE_DECODE } from './HW_SECURE_DECODE.js';\nimport { SW_SECURE_CRYPTO } from './SW_SECURE_CRYPTO.js';\nimport { SW_SECURE_DECODE } from './SW_SECURE_DECODE.js';\n\n/**\n * Widevine Robustness.\n *\n *\n * @beta\n */\nexport const WidevineRobustness = {\n\tSW_SECURE_CRYPTO: SW_SECURE_CRYPTO as typeof SW_SECURE_CRYPTO,\n\tSW_SECURE_DECODE: SW_SECURE_DECODE as typeof SW_SECURE_DECODE,\n\tHW_SECURE_CRYPTO: HW_SECURE_CRYPTO as typeof HW_SECURE_CRYPTO,\n\tHW_SECURE_DECODE: HW_SECURE_DECODE as typeof HW_SECURE_DECODE,\n\tHW_SECURE_ALL: HW_SECURE_ALL as typeof HW_SECURE_ALL,\n} as const;\n\n/**\n * Widevine Robustness.\n *\n *\n * @beta\n */\nexport type WidevineRobustness = ValueOf<typeof WidevineRobustness>;\n"]}
@@ -1,15 +0,0 @@
1
- /**
2
- * Concatenates InitData, ID, and Certificate for FairPlay DRM.
3
- *
4
- * @param initData - The initialization data (PSSH box)
5
- * @param id - The content ID (string or Uint16Array)
6
- * @param cert - The application certificate (Uint8Array)
7
- * @returns A Uint8Array containing the concatenated data
8
- *
9
- * @beta
10
- *
11
- * @example
12
- * {@includeCode ../../test/fairplay/concatInitDataIdAndCertificate.test.ts#example}
13
- */
14
- export declare function concatInitDataIdAndCertificate(initData: Uint16Array, id: Uint16Array | string, cert: Uint8Array): Uint8Array;
15
- //# sourceMappingURL=concatInitDataIdAndCertificate.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"concatInitDataIdAndCertificate.d.ts","sourceRoot":"","sources":["../../src/fairplay/concatInitDataIdAndCertificate.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;;;GAYG;AAEH,wBAAgB,8BAA8B,CAAC,QAAQ,EAAE,WAAW,EAAE,EAAE,EAAE,WAAW,GAAG,MAAM,EAAE,IAAI,EAAE,UAAU,GAAG,UAAU,CAqB5H"}
@@ -1,33 +0,0 @@
1
- import { stringToUint16 } from '@svta/cml-utils/stringToUint16.js';
2
- /**
3
- * Concatenates InitData, ID, and Certificate for FairPlay DRM.
4
- *
5
- * @param initData - The initialization data (PSSH box)
6
- * @param id - The content ID (string or Uint16Array)
7
- * @param cert - The application certificate (Uint8Array)
8
- * @returns A Uint8Array containing the concatenated data
9
- *
10
- * @beta
11
- *
12
- * @example
13
- * {@includeCode ../../test/fairplay/concatInitDataIdAndCertificate.test.ts#example}
14
- */
15
- export function concatInitDataIdAndCertificate(initData, id, cert) {
16
- if (typeof id === 'string') {
17
- id = stringToUint16(id);
18
- }
19
- const buffer = new ArrayBuffer(initData.byteLength + 4 + id.byteLength + 4 + cert.byteLength);
20
- const dataView = new DataView(buffer);
21
- let offset = 0;
22
- new Uint8Array(buffer, offset, initData.byteLength).set(initData);
23
- offset += initData.byteLength;
24
- dataView.setUint32(offset, id.byteLength, true);
25
- offset += 4;
26
- new Uint16Array(buffer, offset, id.length).set(id);
27
- offset += id.byteLength;
28
- dataView.setUint32(offset, cert.byteLength, true);
29
- offset += 4;
30
- new Uint8Array(buffer, offset, cert.byteLength).set(cert);
31
- return new Uint8Array(buffer);
32
- }
33
- //# sourceMappingURL=concatInitDataIdAndCertificate.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"concatInitDataIdAndCertificate.js","sourceRoot":"","sources":["../../src/fairplay/concatInitDataIdAndCertificate.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,mCAAmC,CAAC;AAEnE;;;;;;;;;;;;GAYG;AAEH,MAAM,UAAU,8BAA8B,CAAC,QAAqB,EAAE,EAAwB,EAAE,IAAgB;IAC/G,IAAI,OAAO,EAAE,KAAK,QAAQ,EAAE,CAAC;QAC5B,EAAE,GAAG,cAAc,CAAC,EAAE,CAAC,CAAC;IACzB,CAAC;IACD,MAAM,MAAM,GAAG,IAAI,WAAW,CAAC,QAAQ,CAAC,UAAU,GAAG,CAAC,GAAG,EAAE,CAAC,UAAU,GAAG,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC;IAC9F,MAAM,QAAQ,GAAG,IAAI,QAAQ,CAAC,MAAM,CAAC,CAAC;IACtC,IAAI,MAAM,GAAG,CAAC,CAAC;IAEf,IAAI,UAAU,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,CAAC,UAAU,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IAClE,MAAM,IAAI,QAAQ,CAAC,UAAU,CAAC;IAE9B,QAAQ,CAAC,SAAS,CAAC,MAAM,EAAE,EAAE,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;IAChD,MAAM,IAAI,CAAC,CAAC;IACZ,IAAI,WAAW,CAAC,MAAM,EAAE,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IACnD,MAAM,IAAI,EAAE,CAAC,UAAU,CAAC;IAExB,QAAQ,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;IAClD,MAAM,IAAI,CAAC,CAAC;IACZ,IAAI,UAAU,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAE1D,OAAO,IAAI,UAAU,CAAC,MAAM,CAAC,CAAC;AAC/B,CAAC","sourcesContent":["import { stringToUint16 } from '@svta/cml-utils/stringToUint16.js';\n\n/**\n * Concatenates InitData, ID, and Certificate for FairPlay DRM.\n *\n * @param initData - The initialization data (PSSH box)\n * @param id - The content ID (string or Uint16Array)\n * @param cert - The application certificate (Uint8Array)\n * @returns A Uint8Array containing the concatenated data\n *\n * @beta\n *\n * @example\n * {@includeCode ../../test/fairplay/concatInitDataIdAndCertificate.test.ts#example}\n */\n\nexport function concatInitDataIdAndCertificate(initData: Uint16Array, id: Uint16Array | string, cert: Uint8Array): Uint8Array {\n\tif (typeof id === 'string') {\n\t\tid = stringToUint16(id);\n\t}\n\tconst buffer = new ArrayBuffer(initData.byteLength + 4 + id.byteLength + 4 + cert.byteLength);\n\tconst dataView = new DataView(buffer);\n\tlet offset = 0;\n\n\tnew Uint8Array(buffer, offset, initData.byteLength).set(initData);\n\toffset += initData.byteLength;\n\n\tdataView.setUint32(offset, id.byteLength, true);\n\toffset += 4;\n\tnew Uint16Array(buffer, offset, id.length).set(id);\n\toffset += id.byteLength;\n\n\tdataView.setUint32(offset, cert.byteLength, true);\n\toffset += 4;\n\tnew Uint8Array(buffer, offset, cert.byteLength).set(cert);\n\n\treturn new Uint8Array(buffer);\n}\n"]}
@@ -1,13 +0,0 @@
1
- /**
2
- * Decodes a FairPlay DRM license response.
3
- *
4
- * @param response - The license response, either a base64 string or ArrayBuffer
5
- * @returns A Uint8Array containing the decoded license
6
- *
7
- * @beta
8
- *
9
- * @example
10
- * {@includeCode ../../test/fairplay/decodeFairPlayLicense.test.ts#example}
11
- */
12
- export declare function decodeFairPlayLicense(response: string | ArrayBuffer): Uint8Array;
13
- //# sourceMappingURL=decodeFairPlayLicense.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"decodeFairPlayLicense.d.ts","sourceRoot":"","sources":["../../src/fairplay/decodeFairPlayLicense.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;GAUG;AAEH,wBAAgB,qBAAqB,CAAC,QAAQ,EAAE,MAAM,GAAG,WAAW,GAAG,UAAU,CAIhF"}
@@ -1,18 +0,0 @@
1
- import { decodeBase64 } from '@svta/cml-utils/decodeBase64.js';
2
- /**
3
- * Decodes a FairPlay DRM license response.
4
- *
5
- * @param response - The license response, either a base64 string or ArrayBuffer
6
- * @returns A Uint8Array containing the decoded license
7
- *
8
- * @beta
9
- *
10
- * @example
11
- * {@includeCode ../../test/fairplay/decodeFairPlayLicense.test.ts#example}
12
- */
13
- export function decodeFairPlayLicense(response) {
14
- return typeof response === 'string'
15
- ? decodeBase64(response)
16
- : new Uint8Array(response);
17
- }
18
- //# sourceMappingURL=decodeFairPlayLicense.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"decodeFairPlayLicense.js","sourceRoot":"","sources":["../../src/fairplay/decodeFairPlayLicense.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,iCAAiC,CAAC;AAE/D;;;;;;;;;;GAUG;AAEH,MAAM,UAAU,qBAAqB,CAAC,QAA8B;IACnE,OAAO,OAAO,QAAQ,KAAK,QAAQ;QAClC,CAAC,CAAC,YAAY,CAAC,QAAQ,CAAC;QACxB,CAAC,CAAC,IAAI,UAAU,CAAC,QAAQ,CAAC,CAAC;AAC7B,CAAC","sourcesContent":["import { decodeBase64 } from '@svta/cml-utils/decodeBase64.js';\n\n/**\n * Decodes a FairPlay DRM license response.\n *\n * @param response - The license response, either a base64 string or ArrayBuffer\n * @returns A Uint8Array containing the decoded license\n *\n * @beta\n *\n * @example\n * {@includeCode ../../test/fairplay/decodeFairPlayLicense.test.ts#example}\n */\n\nexport function decodeFairPlayLicense(response: string | ArrayBuffer): Uint8Array {\n\treturn typeof response === 'string'\n\t\t? decodeBase64(response)\n\t\t: new Uint8Array(response);\n}\n"]}
@@ -1,14 +0,0 @@
1
- import type { Encoding } from '@svta/cml-utils/Encoding.js';
2
- /**
3
- * Extracts the content ID from InitData using skd:// URI or query parameters.
4
- *
5
- * @param initData - The initialization data (PSSH box)
6
- * @returns The extracted content ID
7
- *
8
- * @beta
9
- *
10
- * @example
11
- * {@includeCode ../../test/fairplay/extractContentId.test.ts#example}
12
- */
13
- export declare function extractContentId(initData: ArrayBuffer, encoding?: Encoding): string;
14
- //# sourceMappingURL=extractContentId.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"extractContentId.d.ts","sourceRoot":"","sources":["../../src/fairplay/extractContentId.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,6BAA6B,CAAC;AAG5D;;;;;;;;;;GAUG;AACH,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,WAAW,EAAE,QAAQ,GAAE,QAAiB,GAAG,MAAM,CAK3F"}
@@ -1,19 +0,0 @@
1
- import { decodeText } from '@svta/cml-utils/decodeText.js';
2
- import { UTF_16 } from '@svta/cml-utils/UTF_16.js';
3
- /**
4
- * Extracts the content ID from InitData using skd:// URI or query parameters.
5
- *
6
- * @param initData - The initialization data (PSSH box)
7
- * @returns The extracted content ID
8
- *
9
- * @beta
10
- *
11
- * @example
12
- * {@includeCode ../../test/fairplay/extractContentId.test.ts#example}
13
- */
14
- export function extractContentId(initData, encoding = UTF_16) {
15
- const initDataString = decodeText(initData, { encoding });
16
- // Try extracting skd:// content ID
17
- return initDataString.split('skd://')[1] || '';
18
- }
19
- //# sourceMappingURL=extractContentId.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"extractContentId.js","sourceRoot":"","sources":["../../src/fairplay/extractContentId.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAE3D,OAAO,EAAE,MAAM,EAAE,MAAM,2BAA2B,CAAC;AAEnD;;;;;;;;;;GAUG;AACH,MAAM,UAAU,gBAAgB,CAAC,QAAqB,EAAE,WAAqB,MAAM;IAClF,MAAM,cAAc,GAAG,UAAU,CAAC,QAAQ,EAAE,EAAE,QAAQ,EAAE,CAAC,CAAC;IAE1D,mCAAmC;IACnC,OAAO,cAAc,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;AAChD,CAAC","sourcesContent":["import { decodeText } from '@svta/cml-utils/decodeText.js';\nimport type { Encoding } from '@svta/cml-utils/Encoding.js';\nimport { UTF_16 } from '@svta/cml-utils/UTF_16.js';\n\n/**\n * Extracts the content ID from InitData using skd:// URI or query parameters.\n *\n * @param initData - The initialization data (PSSH box)\n * @returns The extracted content ID\n *\n * @beta\n *\n * @example\n * {@includeCode ../../test/fairplay/extractContentId.test.ts#example}\n */\nexport function extractContentId(initData: ArrayBuffer, encoding: Encoding = UTF_16): string {\n\tconst initDataString = decodeText(initData, { encoding });\n\n\t// Try extracting skd:// content ID\n\treturn initDataString.split('skd://')[1] || '';\n}\n"]}
@@ -1,15 +0,0 @@
1
- /**
2
- * Extracts the content ID from the license server URL or InitData.
3
- *
4
- * @param licenseServerUrl - The license server URL
5
- * @param initData - The initialization data (PSSH box)
6
- * @param queryParam - The query parameter key to extract (default: 'ContentId')
7
- * @returns The extracted content ID as a string or null if not found
8
- *
9
- * @beta
10
- *
11
- * @example
12
- * {@includeCode ../../test/fairplay/getId.test.ts#example}
13
- */
14
- export declare function getId(licenseServerUrl: string, initData: ArrayBuffer, queryParam?: string): string;
15
- //# sourceMappingURL=getId.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"getId.d.ts","sourceRoot":"","sources":["../../src/fairplay/getId.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;;;GAYG;AAEH,wBAAgB,KAAK,CAAC,gBAAgB,EAAE,MAAM,EAAE,QAAQ,EAAE,WAAW,EAAE,UAAU,GAAE,MAAoB,GAAG,MAAM,CAW/G"}
@@ -1,27 +0,0 @@
1
- import { extractContentId } from './extractContentId.js';
2
- /**
3
- * Extracts the content ID from the license server URL or InitData.
4
- *
5
- * @param licenseServerUrl - The license server URL
6
- * @param initData - The initialization data (PSSH box)
7
- * @param queryParam - The query parameter key to extract (default: 'ContentId')
8
- * @returns The extracted content ID as a string or null if not found
9
- *
10
- * @beta
11
- *
12
- * @example
13
- * {@includeCode ../../test/fairplay/getId.test.ts#example}
14
- */
15
- export function getId(licenseServerUrl, initData, queryParam = 'ContentId') {
16
- try {
17
- const url = new URL(licenseServerUrl);
18
- const params = new URLSearchParams(url.search);
19
- return params.get(queryParam) || extractContentId(initData);
20
- }
21
- catch {
22
- // in case if URL parsing fails,
23
- // fallback to extracting from initData
24
- return extractContentId(initData);
25
- }
26
- }
27
- //# sourceMappingURL=getId.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"getId.js","sourceRoot":"","sources":["../../src/fairplay/getId.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAEzD;;;;;;;;;;;;GAYG;AAEH,MAAM,UAAU,KAAK,CAAC,gBAAwB,EAAE,QAAqB,EAAE,aAAqB,WAAW;IACtG,IAAI,CAAC;QACJ,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,gBAAgB,CAAC,CAAC;QACtC,MAAM,MAAM,GAAG,IAAI,eAAe,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QAC/C,OAAO,MAAM,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,gBAAgB,CAAC,QAAQ,CAAC,CAAC;IAC7D,CAAC;IACD,MAAM,CAAC;QACN,gCAAgC;QAChC,uCAAuC;QACvC,OAAO,gBAAgB,CAAC,QAAQ,CAAC,CAAC;IACnC,CAAC;AACF,CAAC","sourcesContent":["import { extractContentId } from './extractContentId.js';\n\n/**\n * Extracts the content ID from the license server URL or InitData.\n *\n * @param licenseServerUrl - The license server URL\n * @param initData - The initialization data (PSSH box)\n * @param queryParam - The query parameter key to extract (default: 'ContentId')\n * @returns The extracted content ID as a string or null if not found\n *\n * @beta\n *\n * @example\n * {@includeCode ../../test/fairplay/getId.test.ts#example}\n */\n\nexport function getId(licenseServerUrl: string, initData: ArrayBuffer, queryParam: string = 'ContentId'): string {\n\ttry {\n\t\tconst url = new URL(licenseServerUrl);\n\t\tconst params = new URLSearchParams(url.search);\n\t\treturn params.get(queryParam) || extractContentId(initData);\n\t}\n\tcatch {\n\t\t// in case if URL parsing fails,\n\t\t// fallback to extracting from initData\n\t\treturn extractContentId(initData);\n\t}\n}\n"]}
@@ -1,13 +0,0 @@
1
- /**
2
- * Retrieves the FairPlay license server URL from InitData.
3
- *
4
- * @param initData - The initialization data (PSSH box)
5
- * @returns The license server URL as a string
6
- *
7
- * @beta
8
- *
9
- * @example
10
- * {@includeCode ../../test/fairplay/getLicenseServerUrl.test.ts#example}
11
- */
12
- export declare function getLicenseServerUrl(initData: Uint16Array): string;
13
- //# sourceMappingURL=getLicenseServerUrl.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"getLicenseServerUrl.d.ts","sourceRoot":"","sources":["../../src/fairplay/getLicenseServerUrl.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,WAAW,GAAG,MAAM,CAUjE"}
@@ -1,22 +0,0 @@
1
- /**
2
- * Retrieves the FairPlay license server URL from InitData.
3
- *
4
- * @param initData - The initialization data (PSSH box)
5
- * @returns The license server URL as a string
6
- *
7
- * @beta
8
- *
9
- * @example
10
- * {@includeCode ../../test/fairplay/getLicenseServerUrl.test.ts#example}
11
- */
12
- export function getLicenseServerUrl(initData) {
13
- let initDataString = '';
14
- for (let i = 0; i < initData.length; i++) {
15
- if (initData[i] !== 0) { // Ignore null characters
16
- initDataString += String.fromCharCode(initData[i]);
17
- }
18
- }
19
- const match = initDataString.match(/skd:\/\/([^"\s]+)/);
20
- return match ? `https://${match[1]}` : '';
21
- }
22
- //# sourceMappingURL=getLicenseServerUrl.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"getLicenseServerUrl.js","sourceRoot":"","sources":["../../src/fairplay/getLicenseServerUrl.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,MAAM,UAAU,mBAAmB,CAAC,QAAqB;IACxD,IAAI,cAAc,GAAG,EAAE,CAAC;IACxB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QAC1C,IAAI,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,yBAAyB;YACjD,cAAc,IAAI,MAAM,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;QACpD,CAAC;IACF,CAAC;IAED,MAAM,KAAK,GAAG,cAAc,CAAC,KAAK,CAAC,mBAAmB,CAAC,CAAC;IACxD,OAAO,KAAK,CAAC,CAAC,CAAC,WAAW,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;AAC3C,CAAC","sourcesContent":["/**\n * Retrieves the FairPlay license server URL from InitData.\n *\n * @param initData - The initialization data (PSSH box)\n * @returns The license server URL as a string\n *\n * @beta\n *\n * @example\n * {@includeCode ../../test/fairplay/getLicenseServerUrl.test.ts#example}\n */\n\nexport function getLicenseServerUrl(initData: Uint16Array): string {\n\tlet initDataString = '';\n\tfor (let i = 0; i < initData.length; i++) {\n\t\tif (initData[i] !== 0) { // Ignore null characters\n\t\t\tinitDataString += String.fromCharCode(initData[i]);\n\t\t}\n\t}\n\n\tconst match = initDataString.match(/skd:\\/\\/([^\"\\s]+)/);\n\treturn match ? `https://${match[1]}` : '';\n}\n"]}
@@ -1,14 +0,0 @@
1
- /**
2
- * Creates a valid KeySystemConfiguration from supported audio and video capabilities.
3
- *
4
- * @param supportedAudio - supported audio capabilities.
5
- * @param supportedVideo - supported video capabilities.
6
- * @returns KeySystemConfiguration object.
7
- *
8
- * @beta
9
- *
10
- * @example
11
- * {@includeCode ../../test/keysystem/createMediaKeySystemConfiguration.test.ts#example}
12
- */
13
- export declare function createMediaKeySystemConfiguration(supportedAudio: MediaKeySystemMediaCapability[] | null, supportedVideo: MediaKeySystemMediaCapability[] | null): MediaKeySystemConfiguration;
14
- //# sourceMappingURL=createMediaKeySystemConfiguration.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"createMediaKeySystemConfiguration.d.ts","sourceRoot":"","sources":["../../src/keysystem/createMediaKeySystemConfiguration.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AACH,wBAAgB,iCAAiC,CAChD,cAAc,EAAE,6BAA6B,EAAE,GAAG,IAAI,EACtD,cAAc,EAAE,6BAA6B,EAAE,GAAG,IAAI,GACpD,2BAA2B,CAiB7B"}
@@ -1,27 +0,0 @@
1
- /**
2
- * Creates a valid KeySystemConfiguration from supported audio and video capabilities.
3
- *
4
- * @param supportedAudio - supported audio capabilities.
5
- * @param supportedVideo - supported video capabilities.
6
- * @returns KeySystemConfiguration object.
7
- *
8
- * @beta
9
- *
10
- * @example
11
- * {@includeCode ../../test/keysystem/createMediaKeySystemConfiguration.test.ts#example}
12
- */
13
- export function createMediaKeySystemConfiguration(supportedAudio, supportedVideo) {
14
- const config = {};
15
- if (supportedAudio && supportedAudio.length > 0) {
16
- config.audioCapabilities = supportedAudio;
17
- }
18
- if (supportedVideo && supportedVideo.length > 0) {
19
- config.videoCapabilities = supportedVideo;
20
- }
21
- // default values
22
- config.distinctiveIdentifier = 'optional';
23
- config.persistentState = 'optional';
24
- config.sessionTypes = ['temporary'];
25
- return config;
26
- }
27
- //# sourceMappingURL=createMediaKeySystemConfiguration.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"createMediaKeySystemConfiguration.js","sourceRoot":"","sources":["../../src/keysystem/createMediaKeySystemConfiguration.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,iCAAiC,CAChD,cAAsD,EACtD,cAAsD;IAEtD,MAAM,MAAM,GAAgC,EAAE,CAAC;IAE/C,IAAI,cAAc,IAAI,cAAc,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACjD,MAAM,CAAC,iBAAiB,GAAG,cAAc,CAAC;IAC3C,CAAC;IAED,IAAI,cAAc,IAAI,cAAc,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACjD,MAAM,CAAC,iBAAiB,GAAG,cAAc,CAAC;IAC3C,CAAC;IAED,iBAAiB;IACjB,MAAM,CAAC,qBAAqB,GAAG,UAAU,CAAC;IAC1C,MAAM,CAAC,eAAe,GAAG,UAAU,CAAC;IACpC,MAAM,CAAC,YAAY,GAAG,CAAC,WAAW,CAAC,CAAC;IAEpC,OAAO,MAAM,CAAC;AACf,CAAC","sourcesContent":["/**\n * Creates a valid KeySystemConfiguration from supported audio and video capabilities.\n *\n * @param supportedAudio - supported audio capabilities.\n * @param supportedVideo - supported video capabilities.\n * @returns KeySystemConfiguration object.\n *\n * @beta\n *\n * @example\n * {@includeCode ../../test/keysystem/createMediaKeySystemConfiguration.test.ts#example}\n */\nexport function createMediaKeySystemConfiguration(\n\tsupportedAudio: MediaKeySystemMediaCapability[] | null,\n\tsupportedVideo: MediaKeySystemMediaCapability[] | null,\n): MediaKeySystemConfiguration {\n\tconst config: MediaKeySystemConfiguration = {};\n\n\tif (supportedAudio && supportedAudio.length > 0) {\n\t\tconfig.audioCapabilities = supportedAudio;\n\t}\n\n\tif (supportedVideo && supportedVideo.length > 0) {\n\t\tconfig.videoCapabilities = supportedVideo;\n\t}\n\n\t// default values\n\tconfig.distinctiveIdentifier = 'optional';\n\tconfig.persistentState = 'optional';\n\tconfig.sessionTypes = ['temporary'];\n\n\treturn config;\n}\n"]}
@@ -1,11 +0,0 @@
1
- import type { MediaKeySystemAccessRequest } from '../common/MediaKeySystemAccessRequest.js';
2
- /**
3
- * Attempts to get key system access using requestMediaKeySystemAccess from EME.
4
- *
5
- * @param requests - An array of key system access requests.
6
- * @returns MediaKeySystemAccess object if successful, or null if no system is supported.
7
- *
8
- * @beta
9
- */
10
- export declare function getKeySystemAccess(requests: MediaKeySystemAccessRequest[]): Promise<MediaKeySystemAccess | null>;
11
- //# sourceMappingURL=getKeySystemAccess.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"getKeySystemAccess.d.ts","sourceRoot":"","sources":["../../src/keysystem/getKeySystemAccess.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,0CAA0C,CAAC;AAE5F;;;;;;;GAOG;AACH,wBAAsB,kBAAkB,CACvC,QAAQ,EAAE,2BAA2B,EAAE,GACrC,OAAO,CAAC,oBAAoB,GAAG,IAAI,CAAC,CAUtC"}
@@ -1,20 +0,0 @@
1
- /**
2
- * Attempts to get key system access using requestMediaKeySystemAccess from EME.
3
- *
4
- * @param requests - An array of key system access requests.
5
- * @returns MediaKeySystemAccess object if successful, or null if no system is supported.
6
- *
7
- * @beta
8
- */
9
- export async function getKeySystemAccess(requests) {
10
- for (const { keySystem, configurations } of requests) {
11
- try {
12
- return await navigator.requestMediaKeySystemAccess(keySystem, configurations);
13
- }
14
- catch {
15
- // legacy approach could be used here
16
- }
17
- }
18
- return null;
19
- }
20
- //# sourceMappingURL=getKeySystemAccess.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"getKeySystemAccess.js","sourceRoot":"","sources":["../../src/keysystem/getKeySystemAccess.ts"],"names":[],"mappings":"AAEA;;;;;;;GAOG;AACH,MAAM,CAAC,KAAK,UAAU,kBAAkB,CACvC,QAAuC;IAEvC,KAAK,MAAM,EAAE,SAAS,EAAE,cAAc,EAAE,IAAI,QAAQ,EAAE,CAAC;QACtD,IAAI,CAAC;YACJ,OAAO,MAAM,SAAS,CAAC,2BAA2B,CAAC,SAAS,EAAE,cAAc,CAAC,CAAC;QAC/E,CAAC;QACD,MAAM,CAAC;YACN,qCAAqC;QACtC,CAAC;IACF,CAAC;IACD,OAAO,IAAI,CAAC;AACb,CAAC","sourcesContent":["import type { MediaKeySystemAccessRequest } from '../common/MediaKeySystemAccessRequest.js';\n\n/**\n * Attempts to get key system access using requestMediaKeySystemAccess from EME.\n *\n * @param requests - An array of key system access requests.\n * @returns MediaKeySystemAccess object if successful, or null if no system is supported.\n *\n * @beta\n */\nexport async function getKeySystemAccess(\n\trequests: MediaKeySystemAccessRequest[],\n): Promise<MediaKeySystemAccess | null> {\n\tfor (const { keySystem, configurations } of requests) {\n\t\ttry {\n\t\t\treturn await navigator.requestMediaKeySystemAccess(keySystem, configurations);\n\t\t}\n\t\tcatch {\n\t\t\t// legacy approach could be used here\n\t\t}\n\t}\n\treturn null;\n}\n"]}
@@ -1,11 +0,0 @@
1
- import type { MediaKeySystemAccessRequest } from '../common/MediaKeySystemAccessRequest.js';
2
- /**
3
- * Fallback method to get key system access using legacy MediaKeys.isTypeSupported().
4
- *
5
- * @param requests - An array of key system access requests.
6
- * @returns A KeySystemAccess object if successful, or null if no system is supported.
7
- *
8
- * @beta
9
- */
10
- export declare function getLegacyKeySystemAccess(requests: MediaKeySystemAccessRequest[]): MediaKeySystemAccessRequest | null;
11
- //# sourceMappingURL=getLegacyKeySystemAccess.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"getLegacyKeySystemAccess.d.ts","sourceRoot":"","sources":["../../src/keysystem/getLegacyKeySystemAccess.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,0CAA0C,CAAC;AAI5F;;;;;;;GAOG;AACH,wBAAgB,wBAAwB,CACvC,QAAQ,EAAE,2BAA2B,EAAE,GACrC,2BAA2B,GAAG,IAAI,CAgBpC"}
@@ -1,24 +0,0 @@
1
- import { createMediaKeySystemConfiguration } from './createMediaKeySystemConfiguration.js';
2
- import { getSupportedKeySystemConfiguration } from './getSupportedKeySystemConfiguration.js';
3
- /**
4
- * Fallback method to get key system access using legacy MediaKeys.isTypeSupported().
5
- *
6
- * @param requests - An array of key system access requests.
7
- * @returns A KeySystemAccess object if successful, or null if no system is supported.
8
- *
9
- * @beta
10
- */
11
- export function getLegacyKeySystemAccess(requests) {
12
- for (const { keySystem, configurations } of requests) {
13
- const supportedConfig = getSupportedKeySystemConfiguration(keySystem, configurations);
14
- if (supportedConfig) {
15
- const configuration = createMediaKeySystemConfiguration(supportedConfig.supportedAudio, supportedConfig.supportedVideo);
16
- return {
17
- keySystem,
18
- configurations: [configuration],
19
- };
20
- }
21
- }
22
- return null;
23
- }
24
- //# sourceMappingURL=getLegacyKeySystemAccess.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"getLegacyKeySystemAccess.js","sourceRoot":"","sources":["../../src/keysystem/getLegacyKeySystemAccess.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,iCAAiC,EAAE,MAAM,wCAAwC,CAAC;AAC3F,OAAO,EAAE,kCAAkC,EAAE,MAAM,yCAAyC,CAAC;AAE7F;;;;;;;GAOG;AACH,MAAM,UAAU,wBAAwB,CACvC,QAAuC;IAEvC,KAAK,MAAM,EAAE,SAAS,EAAE,cAAc,EAAE,IAAI,QAAQ,EAAE,CAAC;QACtD,MAAM,eAAe,GAAG,kCAAkC,CAAC,SAAS,EAAE,cAAc,CAAC,CAAC;QACtF,IAAI,eAAe,EAAE,CAAC;YACrB,MAAM,aAAa,GAAG,iCAAiC,CACtD,eAAe,CAAC,cAAc,EAC9B,eAAe,CAAC,cAAc,CAC9B,CAAC;YAEF,OAAO;gBACN,SAAS;gBACT,cAAc,EAAE,CAAC,aAAa,CAAC;aAC/B,CAAC;QACH,CAAC;IACF,CAAC;IACD,OAAO,IAAI,CAAC;AACb,CAAC","sourcesContent":["import type { MediaKeySystemAccessRequest } from '../common/MediaKeySystemAccessRequest.js';\nimport { createMediaKeySystemConfiguration } from './createMediaKeySystemConfiguration.js';\nimport { getSupportedKeySystemConfiguration } from './getSupportedKeySystemConfiguration.js';\n\n/**\n * Fallback method to get key system access using legacy MediaKeys.isTypeSupported().\n *\n * @param requests - An array of key system access requests.\n * @returns A KeySystemAccess object if successful, or null if no system is supported.\n *\n * @beta\n */\nexport function getLegacyKeySystemAccess(\n\trequests: MediaKeySystemAccessRequest[],\n): MediaKeySystemAccessRequest | null {\n\tfor (const { keySystem, configurations } of requests) {\n\t\tconst supportedConfig = getSupportedKeySystemConfiguration(keySystem, configurations);\n\t\tif (supportedConfig) {\n\t\t\tconst configuration = createMediaKeySystemConfiguration(\n\t\t\t\tsupportedConfig.supportedAudio,\n\t\t\t\tsupportedConfig.supportedVideo,\n\t\t\t);\n\n\t\t\treturn {\n\t\t\t\tkeySystem,\n\t\t\t\tconfigurations: [configuration],\n\t\t\t};\n\t\t}\n\t}\n\treturn null;\n}\n"]}
@@ -1,14 +0,0 @@
1
- /**
2
- * Filters and returns the supported key system configuration for a given system string.
3
- *
4
- * @param keySystem - Key system string such as 'com.widevine.alpha'
5
- * @param configs - An array of key system configurations.
6
- * @returns The first supported configuration or null if none are supported.
7
- *
8
- * @beta
9
- */
10
- export declare function getSupportedKeySystemConfiguration(keySystem: string, configs: Iterable<MediaKeySystemConfiguration>): {
11
- supportedAudio: MediaKeySystemMediaCapability[];
12
- supportedVideo: MediaKeySystemMediaCapability[];
13
- };
14
- //# sourceMappingURL=getSupportedKeySystemConfiguration.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"getSupportedKeySystemConfiguration.d.ts","sourceRoot":"","sources":["../../src/keysystem/getSupportedKeySystemConfiguration.ts"],"names":[],"mappings":"AAEA;;;;;;;;GAQG;AACH,wBAAgB,kCAAkC,CACjD,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,QAAQ,CAAC,2BAA2B,CAAC,GAC5C;IAAE,cAAc,EAAE,6BAA6B,EAAE,CAAC;IAAC,cAAc,EAAE,6BAA6B,EAAE,CAAA;CAAE,CAqBtG"}
@@ -1,28 +0,0 @@
1
- const isTypeSupported = (typeof MediaKeys !== 'undefined' && typeof MediaKeys.isTypeSupported === 'function') ? MediaKeys.isTypeSupported : undefined;
2
- /**
3
- * Filters and returns the supported key system configuration for a given system string.
4
- *
5
- * @param keySystem - Key system string such as 'com.widevine.alpha'
6
- * @param configs - An array of key system configurations.
7
- * @returns The first supported configuration or null if none are supported.
8
- *
9
- * @beta
10
- */
11
- export function getSupportedKeySystemConfiguration(keySystem, configs) {
12
- if (!configs || typeof isTypeSupported === 'undefined') {
13
- return { supportedAudio: [], supportedVideo: [] };
14
- }
15
- for (const config of configs) {
16
- const audios = config.audioCapabilities || [];
17
- const videos = config.videoCapabilities || [];
18
- const supportedAudio = audios.filter(audio => { var _a; return isTypeSupported(keySystem, (_a = audio.contentType) !== null && _a !== void 0 ? _a : ''); });
19
- const supportedVideo = videos.filter(video => { var _a; return isTypeSupported(keySystem, (_a = video.contentType) !== null && _a !== void 0 ? _a : ''); });
20
- const hasAudio = supportedAudio.length > 0;
21
- const hasVideo = supportedVideo.length > 0;
22
- if (hasAudio || hasVideo) {
23
- return { supportedAudio, supportedVideo };
24
- }
25
- }
26
- return { supportedAudio: [], supportedVideo: [] };
27
- }
28
- //# sourceMappingURL=getSupportedKeySystemConfiguration.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"getSupportedKeySystemConfiguration.js","sourceRoot":"","sources":["../../src/keysystem/getSupportedKeySystemConfiguration.ts"],"names":[],"mappings":"AAAA,MAAM,eAAe,GAA6D,CAAC,OAAO,SAAS,KAAK,WAAW,IAAI,OAAQ,SAAiB,CAAC,eAAe,KAAK,UAAU,CAAC,CAAC,CAAC,CAAE,SAAiB,CAAC,eAAe,CAAC,CAAC,CAAC,SAAS,CAAC;AAElO;;;;;;;;GAQG;AACH,MAAM,UAAU,kCAAkC,CACjD,SAAiB,EACjB,OAA8C;IAE9C,IAAI,CAAC,OAAO,IAAI,OAAO,eAAe,KAAK,WAAW,EAAE,CAAC;QACxD,OAAO,EAAE,cAAc,EAAE,EAAE,EAAE,cAAc,EAAE,EAAE,EAAE,CAAC;IACnD,CAAC;IAED,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;QAC9B,MAAM,MAAM,GAAG,MAAM,CAAC,iBAAiB,IAAI,EAAE,CAAC;QAC9C,MAAM,MAAM,GAAG,MAAM,CAAC,iBAAiB,IAAI,EAAE,CAAC;QAE9C,MAAM,cAAc,GAAG,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,WAAC,OAAA,eAAe,CAAC,SAAS,EAAE,MAAA,KAAK,CAAC,WAAW,mCAAI,EAAE,CAAC,CAAA,EAAA,CAAC,CAAC;QACnG,MAAM,cAAc,GAAG,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,WAAC,OAAA,eAAe,CAAC,SAAS,EAAE,MAAA,KAAK,CAAC,WAAW,mCAAI,EAAE,CAAC,CAAA,EAAA,CAAC,CAAC;QAEnG,MAAM,QAAQ,GAAG,cAAc,CAAC,MAAM,GAAG,CAAC,CAAC;QAC3C,MAAM,QAAQ,GAAG,cAAc,CAAC,MAAM,GAAG,CAAC,CAAC;QAE3C,IAAI,QAAQ,IAAI,QAAQ,EAAE,CAAC;YAC1B,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,CAAC;QAC3C,CAAC;IACF,CAAC;IAED,OAAO,EAAE,cAAc,EAAE,EAAE,EAAE,cAAc,EAAE,EAAE,EAAE,CAAC;AACnD,CAAC","sourcesContent":["const isTypeSupported: (keySystem: string, type: string) => boolean | undefined = (typeof MediaKeys !== 'undefined' && typeof (MediaKeys as any).isTypeSupported === 'function') ? (MediaKeys as any).isTypeSupported : undefined;\n\n/**\n * Filters and returns the supported key system configuration for a given system string.\n *\n * @param keySystem - Key system string such as 'com.widevine.alpha'\n * @param configs - An array of key system configurations.\n * @returns The first supported configuration or null if none are supported.\n *\n * @beta\n */\nexport function getSupportedKeySystemConfiguration(\n\tkeySystem: string,\n\tconfigs: Iterable<MediaKeySystemConfiguration>,\n): { supportedAudio: MediaKeySystemMediaCapability[]; supportedVideo: MediaKeySystemMediaCapability[] } {\n\tif (!configs || typeof isTypeSupported === 'undefined') {\n\t\treturn { supportedAudio: [], supportedVideo: [] };\n\t}\n\n\tfor (const config of configs) {\n\t\tconst audios = config.audioCapabilities || [];\n\t\tconst videos = config.videoCapabilities || [];\n\n\t\tconst supportedAudio = audios.filter(audio => isTypeSupported(keySystem, audio.contentType ?? ''));\n\t\tconst supportedVideo = videos.filter(video => isTypeSupported(keySystem, video.contentType ?? ''));\n\n\t\tconst hasAudio = supportedAudio.length > 0;\n\t\tconst hasVideo = supportedVideo.length > 0;\n\n\t\tif (hasAudio || hasVideo) {\n\t\t\treturn { supportedAudio, supportedVideo };\n\t\t}\n\t}\n\n\treturn { supportedAudio: [], supportedVideo: [] };\n}\n"]}
@@ -1,15 +0,0 @@
1
- import type { Encoding } from '@svta/cml-utils/Encoding.js';
2
- /**
3
- * Gets the PlayReady license request from the MediaKeyMessageEvent.
4
- *
5
- * @param message - An ArrayBuffer from the content decryption module.
6
- * @param encoding - The message encoding type. Default is UTF-16.
7
- * @returns The license request as an ArrayBuffer.
8
- *
9
- * @beta
10
- *
11
- * @example
12
- * {@includeCode ../../test/playready/getLicenseRequestFromMessage.test.ts#example}
13
- */
14
- export declare function getLicenseRequestFromMessage(message: ArrayBuffer, encoding?: Encoding): ArrayBuffer;
15
- //# sourceMappingURL=getLicenseRequestFromMessage.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"getLicenseRequestFromMessage.d.ts","sourceRoot":"","sources":["../../src/playready/getLicenseRequestFromMessage.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,6BAA6B,CAAC;AAS5D;;;;;;;;;;;GAWG;AACH,wBAAgB,4BAA4B,CAC3C,OAAO,EAAE,WAAW,EACpB,QAAQ,GAAE,QAAiB,GACzB,WAAW,CAyBb"}