@mottosports/motto-video-player 1.0.1-rc.38 → 1.0.1-rc.39

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.js CHANGED
@@ -1199,7 +1199,7 @@ var isChrome64PlusOnMacOrWindows = () => {
1199
1199
  var import_mux_data_shakaplayer = __toESM(require("@mux/mux-data-shakaplayer"));
1200
1200
 
1201
1201
  // package.json
1202
- var version = "1.0.1-rc.38";
1202
+ var version = "1.0.1-rc.39";
1203
1203
 
1204
1204
  // src/utils/licenseCache.ts
1205
1205
  var PERSISTENT_LICENSE_PREFIX = "motto_lic_";
@@ -1344,8 +1344,10 @@ var clearAllPersistentLicenses = () => {
1344
1344
  localStorage.removeItem(key);
1345
1345
  }
1346
1346
  console.log(`Cleared ${keys.length} persistent license cache entries`);
1347
+ return keys.length;
1347
1348
  } catch (error) {
1348
1349
  console.error("Failed to clear persistent licenses:", error);
1350
+ return 0;
1349
1351
  }
1350
1352
  };
1351
1353
 
@@ -1418,17 +1420,26 @@ var useShakaPlayer = ({
1418
1420
  "com.widevine.alpha": {
1419
1421
  ...drmConfig2.advanced?.["com.widevine.alpha"],
1420
1422
  // set to `persistent-license` only on Chrome 64+ on MacOS/Windows: https://shaka-player-demo.appspot.com/docs/api/tutorial-faq.html
1421
- sessionType: isChrome64PlusOnMacOrWindows() ? "persistent-license" : "temporary"
1423
+ sessionType: isChrome64PlusOnMacOrWindows() ? "persistent-license" : "temporary",
1424
+ "headers": {
1425
+ "x-dt-auth-token": src.drm.token || ""
1426
+ }
1422
1427
  },
1423
1428
  "com.microsoft.playready": {
1424
1429
  ...drmConfig2.advanced?.["com.microsoft.playready"],
1425
- sessionType: "temporary"
1430
+ sessionType: "temporary",
1426
1431
  // PlayReady always uses temporary sessions
1432
+ "headers": {
1433
+ "x-dt-auth-token": src.drm.token || ""
1434
+ }
1427
1435
  },
1428
1436
  "com.apple.fps": {
1429
1437
  ...drmConfig2.advanced?.["com.apple.fps"],
1430
- sessionType: "temporary"
1438
+ sessionType: "temporary",
1431
1439
  // FairPlay always uses temporary sessions - Safari won't play with persistent-license
1440
+ "headers": {
1441
+ "x-dt-auth-token": src.drm.token || ""
1442
+ }
1432
1443
  }
1433
1444
  };
1434
1445
  if (storedSessionsMetadata.length > 0) {
@@ -1442,11 +1453,6 @@ var useShakaPlayer = ({
1442
1453
  player.configure({ drm: drmConfig2 });
1443
1454
  const netEngine = player.getNetworkingEngine();
1444
1455
  if (netEngine) {
1445
- netEngine.registerRequestFilter((type, request) => {
1446
- if (type === import_shaka_player.default.net.NetworkingEngine.RequestType.LICENSE) {
1447
- request.headers["x-dt-auth-token"] = src.drm.token;
1448
- }
1449
- });
1450
1456
  netEngine.registerResponseFilter((type, response) => {
1451
1457
  if (type === import_shaka_player.default.net.NetworkingEngine.RequestType.LICENSE) {
1452
1458
  const ks = player.keySystem && player.keySystem();
@@ -1464,26 +1470,31 @@ var useShakaPlayer = ({
1464
1470
  return;
1465
1471
  }
1466
1472
  if (error?.code >= 6e3 && error?.code < 7e3 && !isRetrying && videoElementRef.current) {
1467
- console.warn(`DRM error detected (code: ${error.code}), clearing licenses and retrying...`);
1468
- setIsRetrying(true);
1469
- clearAllPersistentLicenses();
1470
- setTimeout(async () => {
1471
- try {
1472
- const video2 = videoElementRef.current;
1473
- const currentPlayer = playerRef.current;
1474
- if (video2 && currentPlayer) {
1475
- console.log("Reloading manifest after license cache clear...");
1476
- await currentPlayer.load(getManifestUrl());
1477
- console.log("Manifest reloaded successfully");
1473
+ console.warn(`DRM error detected (code: ${error.code}), checking for cached licenses...`);
1474
+ const clearedCount = clearAllPersistentLicenses();
1475
+ if (clearedCount > 0) {
1476
+ console.warn(`Cleared ${clearedCount} cached licenses, retrying...`);
1477
+ setIsRetrying(true);
1478
+ setTimeout(async () => {
1479
+ try {
1480
+ const video2 = videoElementRef.current;
1481
+ const currentPlayer = playerRef.current;
1482
+ if (video2 && currentPlayer) {
1483
+ console.log("Reloading manifest after license cache clear...");
1484
+ await currentPlayer.load(getManifestUrl());
1485
+ console.log("Manifest reloaded successfully");
1486
+ }
1487
+ } catch (retryError) {
1488
+ console.error("Failed to retry after license clear:", retryError);
1489
+ onError?.(retryError);
1490
+ } finally {
1491
+ setIsRetrying(false);
1478
1492
  }
1479
- } catch (retryError) {
1480
- console.error("Failed to retry after license clear:", retryError);
1481
- onError?.(retryError);
1482
- } finally {
1483
- setIsRetrying(false);
1484
- }
1485
- }, 500);
1486
- return;
1493
+ }, 500);
1494
+ return;
1495
+ } else {
1496
+ console.warn(`No cached licenses found to clear for error code ${error.code}, not retrying to avoid infinite loop`);
1497
+ }
1487
1498
  }
1488
1499
  console.error("Shaka Player Error:", error);
1489
1500
  onError?.(new Error(`Shaka Player Error: ${error.message || "Unknown error"}`));