stormcloud-video-player 0.8.56 → 0.8.57

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 (51) hide show
  1. package/README.md +2 -2
  2. package/dist/stormcloud-vp.min.js +1 -3
  3. package/lib/index.cjs +161 -283
  4. package/lib/index.cjs.map +1 -1
  5. package/lib/index.d.cts +12 -29
  6. package/lib/index.d.ts +12 -29
  7. package/lib/index.js +141 -227
  8. package/lib/index.js.map +1 -1
  9. package/lib/player/AdBreakOrchestrator.cjs +118 -188
  10. package/lib/player/AdBreakOrchestrator.cjs.map +1 -1
  11. package/lib/player/AdConfigManager.cjs +103 -200
  12. package/lib/player/AdConfigManager.cjs.map +1 -1
  13. package/lib/player/AdConfigManager.d.cts +0 -1
  14. package/lib/player/AdTimingService.cjs.map +1 -1
  15. package/lib/player/HlsEngine.cjs.map +1 -1
  16. package/lib/player/PlaceholderLayer.cjs.map +1 -1
  17. package/lib/player/PlayerControls.cjs.map +1 -1
  18. package/lib/player/Scte35CueManager.cjs.map +1 -1
  19. package/lib/player/Scte35Parser.cjs.map +1 -1
  20. package/lib/player/StormcloudVideoPlayer.cjs +134 -205
  21. package/lib/player/StormcloudVideoPlayer.cjs.map +1 -1
  22. package/lib/player/playerTypes.cjs.map +1 -1
  23. package/lib/players/FilePlayer.cjs.map +1 -1
  24. package/lib/players/HlsPlayer.cjs +134 -205
  25. package/lib/players/HlsPlayer.cjs.map +1 -1
  26. package/lib/players/index.cjs +134 -205
  27. package/lib/players/index.cjs.map +1 -1
  28. package/lib/sdk/hlsAdPlayer.cjs.map +1 -1
  29. package/lib/sdk/pal.cjs.map +1 -1
  30. package/lib/ui/StormcloudVideoPlayer.cjs +134 -205
  31. package/lib/ui/StormcloudVideoPlayer.cjs.map +1 -1
  32. package/lib/utils/browserCompat.cjs.map +1 -1
  33. package/lib/utils/ctvVastSignals.cjs.map +1 -1
  34. package/lib/utils/devUrl.cjs.map +1 -1
  35. package/lib/utils/polyfills.cjs.map +1 -1
  36. package/lib/utils/tracking.cjs +134 -199
  37. package/lib/utils/tracking.cjs.map +1 -1
  38. package/lib/utils/trackingIngest.cjs +322 -0
  39. package/lib/utils/trackingIngest.cjs.map +1 -0
  40. package/lib/utils/trackingIngest.d.cts +14 -0
  41. package/lib/utils/vastEnvironmentSignals.cjs.map +1 -1
  42. package/lib/utils/vastMacros.cjs.map +1 -1
  43. package/lib/utils/vastTrackingMacros.cjs.map +1 -1
  44. package/package.json +1 -3
  45. package/lib/utils/mqttClient.cjs +0 -305
  46. package/lib/utils/mqttClient.cjs.map +0 -1
  47. package/lib/utils/mqttClient.d.cts +0 -13
  48. package/lib/utils/mqttConfig.cjs +0 -139
  49. package/lib/utils/mqttConfig.cjs.map +0 -1
  50. package/lib/utils/mqttConfig.d.cts +0 -20
  51. package/src/certs/emqxsl-ca.crt +0 -22
package/lib/index.cjs CHANGED
@@ -423,8 +423,8 @@ var __toCommonJS = function __toCommonJS(mod) {
423
423
  // src/index.ts
424
424
  var index_exports = {};
425
425
  __export(index_exports, {
426
- DEFAULT_MQTT_CONFIG: function DEFAULT_MQTT_CONFIG1() {
427
- return DEFAULT_MQTT_CONFIG;
426
+ DEFAULT_TRACKING_INGEST_CONFIG: function DEFAULT_TRACKING_INGEST_CONFIG1() {
427
+ return DEFAULT_TRACKING_INGEST_CONFIG;
428
428
  },
429
429
  IS_BROWSER: function IS_BROWSER1() {
430
430
  return IS_BROWSER;
@@ -438,9 +438,6 @@ __export(index_exports, {
438
438
  IS_SAFARI: function IS_SAFARI1() {
439
439
  return IS_SAFARI;
440
440
  },
441
- MQTT_CA_CERT_FILE: function MQTT_CA_CERT_FILE1() {
442
- return MQTT_CA_CERT_FILE;
443
- },
444
441
  SUPPORTS_DASH: function SUPPORTS_DASH1() {
445
442
  return SUPPORTS_DASH;
446
443
  },
@@ -456,23 +453,17 @@ __export(index_exports, {
456
453
  StormcloudVideoPlayerComponent: function StormcloudVideoPlayerComponent1() {
457
454
  return StormcloudVideoPlayerComponent;
458
455
  },
459
- applyMQTTConfig: function applyMQTTConfig1() {
460
- return applyMQTTConfig;
456
+ applyTrackingIngestConfig: function applyTrackingIngestConfig1() {
457
+ return applyTrackingIngestConfig;
461
458
  },
462
459
  buildAnalyticsContext: function buildAnalyticsContext1() {
463
460
  return buildAnalyticsContext;
464
461
  },
465
- buildMQTTBrokerUrl: function buildMQTTBrokerUrl1() {
466
- return buildMQTTBrokerUrl;
467
- },
468
- buildPlayerTopic: function buildPlayerTopic1() {
469
- return buildPlayerTopic;
470
- },
471
462
  canPlay: function canPlay1() {
472
463
  return canPlay;
473
464
  },
474
- configureMQTT: function configureMQTT1() {
475
- return configureMQTT;
465
+ configureTrackingIngest: function configureTrackingIngest1() {
466
+ return configureTrackingIngest;
476
467
  },
477
468
  createHlsAdPlayer: function createHlsAdPlayer1() {
478
469
  return createHlsAdPlayer;
@@ -489,12 +480,6 @@ __export(index_exports, {
489
480
  detectBrowser: function detectBrowser1() {
490
481
  return detectBrowser;
491
482
  },
492
- disconnectMQTT: function disconnectMQTT1() {
493
- return disconnectMQTT;
494
- },
495
- ensureMQTTClient: function ensureMQTTClient1() {
496
- return ensureMQTTClient;
497
- },
498
483
  getBrowserConfigOverrides: function getBrowserConfigOverrides1() {
499
484
  return getBrowserConfigOverrides;
500
485
  },
@@ -504,27 +489,18 @@ __export(index_exports, {
504
489
  getClientInfo: function getClientInfo1() {
505
490
  return getClientInfo;
506
491
  },
507
- getMQTTStatus: function getMQTTStatus1() {
508
- return getMQTTStatus;
509
- },
510
- initMQTTClient: function initMQTTClient1() {
511
- return initMQTTClient;
492
+ ingestPlayerTracking: function ingestPlayerTracking1() {
493
+ return ingestPlayerTracking;
512
494
  },
513
495
  initializePolyfills: function initializePolyfills1() {
514
496
  return initializePolyfills;
515
497
  },
516
- isMQTTConfigured: function isMQTTConfigured1() {
517
- return isMQTTConfigured;
518
- },
519
- isMQTTConnected: function isMQTTConnected1() {
520
- return isMQTTConnected;
521
- },
522
- isMQTTEnabled: function isMQTTEnabled1() {
523
- return isMQTTEnabled;
524
- },
525
498
  isMediaStream: function isMediaStream1() {
526
499
  return isMediaStream;
527
500
  },
501
+ isTrackingIngestEnabled: function isTrackingIngestEnabled1() {
502
+ return isTrackingIngestEnabled;
503
+ },
528
504
  lazy: function lazy1() {
529
505
  return lazy;
530
506
  },
@@ -534,9 +510,6 @@ __export(index_exports, {
534
510
  merge: function merge1() {
535
511
  return merge;
536
512
  },
537
- mqttConfig: function mqttConfig1() {
538
- return mqttConfig;
539
- },
540
513
  omit: function omit1() {
541
514
  return omit;
542
515
  },
@@ -546,9 +519,6 @@ __export(index_exports, {
546
519
  players: function players() {
547
520
  return players_default;
548
521
  },
549
- publishMQTT: function publishMQTT1() {
550
- return publishMQTT;
551
- },
552
522
  randomString: function randomString1() {
553
523
  return randomString;
554
524
  },
@@ -578,6 +548,9 @@ __export(index_exports, {
578
548
  },
579
549
  supportsWebKitPresentationMode: function supportsWebKitPresentationMode1() {
580
550
  return supportsWebKitPresentationMode;
551
+ },
552
+ trackingIngestConfig: function trackingIngestConfig1() {
553
+ return trackingIngestConfig;
581
554
  }
582
555
  });
583
556
  module.exports = __toCommonJS(index_exports);
@@ -2678,184 +2651,89 @@ function createPalNonceManager() {
2678
2651
  }
2679
2652
  };
2680
2653
  }
2681
- // src/utils/mqttConfig.ts
2682
- var MQTT_CA_CERT_FILE = "src/certs/emqxsl-ca.crt";
2683
- var DEFAULT_MQTT_CONFIG = {
2654
+ // src/utils/trackingIngest.ts
2655
+ var DEFAULT_TRACKING_INGEST_CONFIG = {
2684
2656
  enabled: true,
2685
- brokerAddress: "vecbae77.ala.us-east-1.emqxsl.com",
2686
- brokerPort: 8883,
2687
- wsPort: 8084,
2688
- username: "for-sonifi",
2689
- password: "sonifi-mqtt",
2690
- topicPrefix: "adstorm/players",
2691
- qos: 1
2657
+ baseUrl: "https://player-analytics-ingest-api-760490581852.us-central1.run.app/api/adstorm/player-tracking"
2692
2658
  };
2693
- var mqttConfig = _object_spread({}, DEFAULT_MQTT_CONFIG);
2694
- function applyMQTTConfig(overrides) {
2695
- Object.assign(mqttConfig, overrides);
2696
- }
2697
- function isMQTTEnabled() {
2698
- return mqttConfig.enabled;
2699
- }
2700
- function buildMQTTBrokerUrl() {
2701
- if (mqttConfig.brokerUrl) return mqttConfig.brokerUrl;
2702
- return "wss://".concat(mqttConfig.brokerAddress, ":").concat(mqttConfig.wsPort, "/mqtt");
2703
- }
2704
- function buildPlayerTopic(licenseKey, channel) {
2705
- return "".concat(mqttConfig.topicPrefix, "/").concat(licenseKey, "/").concat(channel);
2706
- }
2707
- // src/utils/mqttClient.ts
2708
- var import_mqtt = __toESM(require("mqtt"), 1);
2709
- var LOG = "[StormcloudVideoPlayer][MQTT]";
2710
- var KEEPALIVE_SECONDS = 30;
2711
- var CONNECT_TIMEOUT_MS = 1e4;
2712
- var RECONNECT_BASE_MS = 5e3;
2713
- var RECONNECT_MAX_MS = 6e4;
2714
- var MAX_RECONNECT_ATTEMPTS = 8;
2715
- var COOLDOWN_MS = 10 * 6e4;
2716
- var client = null;
2717
- var status = "disconnected";
2718
- var reconnectAttempts = 0;
2719
- var reconnectTimer = null;
2720
- var stopped = false;
2721
- function getMQTTStatus() {
2722
- return status;
2723
- }
2724
- function isMQTTConnected() {
2725
- return status === "connected" && client !== null && client.connected;
2726
- }
2727
- function isMQTTConfigured() {
2728
- return isMQTTEnabled();
2729
- }
2730
- function configureMQTT(overrides) {
2731
- applyMQTTConfig(overrides);
2732
- disconnectMQTT();
2733
- }
2734
- function clearReconnectTimer() {
2735
- if (reconnectTimer) {
2736
- clearTimeout(reconnectTimer);
2737
- reconnectTimer = null;
2738
- }
2739
- }
2740
- function teardownClient() {
2741
- if (client) {
2742
- try {
2743
- client.removeAllListeners();
2744
- client.end(true);
2745
- } catch (unused) {}
2746
- client = null;
2747
- }
2748
- }
2749
- function scheduleReconnect() {
2750
- if (stopped || !isMQTTEnabled() || reconnectTimer) return;
2751
- if (reconnectAttempts >= MAX_RECONNECT_ATTEMPTS) {
2752
- console.warn("".concat(LOG, " giving up after ").concat(reconnectAttempts, " attempts; cooling down for ").concat(COOLDOWN_MS / 6e4, "m"));
2753
- teardownClient();
2754
- status = "disconnected";
2755
- reconnectTimer = setTimeout(function() {
2756
- reconnectTimer = null;
2757
- reconnectAttempts = 0;
2758
- openConnection();
2759
- }, COOLDOWN_MS);
2760
- return;
2761
- }
2762
- var delay = Math.min(RECONNECT_MAX_MS, RECONNECT_BASE_MS * Math.pow(2, reconnectAttempts));
2763
- var jitter = Math.floor(Math.random() * 1e3);
2764
- reconnectAttempts += 1;
2765
- reconnectTimer = setTimeout(function() {
2766
- reconnectTimer = null;
2767
- openConnection();
2768
- }, delay + jitter);
2769
- }
2770
- function openConnection() {
2771
- if (stopped || !isMQTTEnabled()) return;
2772
- teardownClient();
2773
- var url = buildMQTTBrokerUrl();
2774
- status = "connecting";
2775
- var clientId = "stormcloud-vp-".concat(Math.random().toString(36).slice(2, 9));
2776
- try {
2777
- client = import_mqtt.default.connect(url, {
2778
- clientId: clientId,
2779
- username: mqttConfig.username,
2780
- password: mqttConfig.password,
2781
- keepalive: KEEPALIVE_SECONDS,
2782
- clean: true,
2783
- // Disable MQTT.js internal reconnect; we manage reconnection ourselves.
2784
- reconnectPeriod: 0,
2785
- connectTimeout: CONNECT_TIMEOUT_MS,
2786
- queueQoSZero: false,
2787
- reschedulePings: true,
2788
- // Root-cause fix for the Tizen 4.0 "Keepalive timeout" loop: MQTT.js's
2789
- // default timerVariant "auto" runs the keepalive interval inside a
2790
- // Blob-URL Web Worker (via worker-timers). On Samsung Tizen 4.0 (old
2791
- // WebKit) served from a file:// origin that worker can't tick reliably,
2792
- // so the keepalive counter trips onKeepaliveTimeout almost immediately
2793
- // after connect. Force the native setInterval timer instead; the main
2794
- // thread is free because video is decoded by the native AVPlay pipeline.
2795
- timerVariant: "native"
2796
- });
2797
- } catch (err) {
2798
- status = "error";
2799
- console.warn("".concat(LOG, " connect() threw:"), err);
2800
- scheduleReconnect();
2801
- return;
2802
- }
2803
- client.on("connect", function() {
2804
- status = "connected";
2805
- reconnectAttempts = 0;
2806
- clearReconnectTimer();
2807
- console.info("".concat(LOG, " connected to ").concat(url));
2808
- });
2809
- client.on("offline", function() {
2810
- if (status === "connected") status = "disconnected";
2811
- console.warn("".concat(LOG, " offline"));
2812
- scheduleReconnect();
2813
- });
2814
- client.on("error", function(err) {
2815
- status = "error";
2816
- console.warn("".concat(LOG, " error:"), err.message);
2817
- scheduleReconnect();
2818
- });
2819
- client.on("close", function() {
2820
- if (status === "connected") status = "disconnected";
2821
- scheduleReconnect();
2822
- });
2659
+ var trackingIngestConfig = _object_spread({}, DEFAULT_TRACKING_INGEST_CONFIG);
2660
+ function applyTrackingIngestConfig(overrides) {
2661
+ Object.assign(trackingIngestConfig, overrides);
2823
2662
  }
2824
- function initMQTTClient() {
2825
- if (client || !isMQTTEnabled()) return;
2826
- stopped = false;
2827
- reconnectAttempts = 0;
2828
- openConnection();
2663
+ function configureTrackingIngest(overrides) {
2664
+ applyTrackingIngestConfig(overrides);
2829
2665
  }
2830
- function ensureMQTTClient() {
2831
- if (isMQTTEnabled() && !client && !reconnectTimer) {
2832
- initMQTTClient();
2833
- }
2666
+ function isTrackingIngestEnabled() {
2667
+ return trackingIngestConfig.enabled === true;
2834
2668
  }
2835
- function publishMQTT(topic, payload) {
2836
- if (!isMQTTEnabled()) {
2837
- return false;
2838
- }
2839
- ensureMQTTClient();
2840
- if (!client || !client.connected) {
2841
- return false;
2842
- }
2843
- try {
2844
- client.publish(topic, JSON.stringify(payload), {
2845
- qos: mqttConfig.qos
2846
- });
2847
- return true;
2848
- } catch (err) {
2849
- console.warn("".concat(LOG, " publish failed on ").concat(topic, ":"), err);
2850
- return false;
2669
+ function normalizeIngestBaseUrl(baseUrl) {
2670
+ return baseUrl.replace(/\/+$/, "");
2671
+ }
2672
+ function buildTrackingIngestUrl(channel) {
2673
+ var base = normalizeIngestBaseUrl(trackingIngestConfig.baseUrl);
2674
+ if (channel === "impressions") {
2675
+ return "".concat(base, "/impressions/ingest");
2851
2676
  }
2677
+ return "".concat(base, "/metrics/ingest");
2852
2678
  }
2853
- function disconnectMQTT() {
2854
- stopped = true;
2855
- clearReconnectTimer();
2856
- teardownClient();
2857
- reconnectAttempts = 0;
2858
- status = "disconnected";
2679
+ function ingestPlayerTracking(licenseKey, channel, body) {
2680
+ return _async_to_generator(function() {
2681
+ var response, error;
2682
+ return _ts_generator(this, function(_state) {
2683
+ switch(_state.label){
2684
+ case 0:
2685
+ if (!isTrackingIngestEnabled() || !licenseKey) {
2686
+ return [
2687
+ 2,
2688
+ false
2689
+ ];
2690
+ }
2691
+ _state.label = 1;
2692
+ case 1:
2693
+ _state.trys.push([
2694
+ 1,
2695
+ 3,
2696
+ ,
2697
+ 4
2698
+ ]);
2699
+ return [
2700
+ 4,
2701
+ fetch(buildTrackingIngestUrl(channel), {
2702
+ method: "POST",
2703
+ headers: {
2704
+ "Content-Type": "application/json",
2705
+ Authorization: "License-Key ".concat(licenseKey)
2706
+ },
2707
+ body: JSON.stringify(body)
2708
+ })
2709
+ ];
2710
+ case 2:
2711
+ response = _state.sent();
2712
+ if (!response.ok) {
2713
+ console.warn("[StormcloudVideoPlayer] Tracking ingest failed (".concat(response.status, ") for ").concat(channel));
2714
+ return [
2715
+ 2,
2716
+ false
2717
+ ];
2718
+ }
2719
+ return [
2720
+ 2,
2721
+ true
2722
+ ];
2723
+ case 3:
2724
+ error = _state.sent();
2725
+ console.warn("[StormcloudVideoPlayer] Tracking ingest error for ".concat(channel, ":"), error);
2726
+ return [
2727
+ 2,
2728
+ false
2729
+ ];
2730
+ case 4:
2731
+ return [
2732
+ 2
2733
+ ];
2734
+ }
2735
+ });
2736
+ })();
2859
2737
  }
2860
2738
  // src/utils/vastEnvironmentSignals.ts
2861
2739
  var AIRY_ANDROID_APP_ID = "com.freeairytv.android";
@@ -3626,7 +3504,7 @@ function getBrowserID(clientInfo) {
3626
3504
  })();
3627
3505
  }
3628
3506
  function canPublish(licenseKey) {
3629
- return Boolean(isMQTTEnabled() && licenseKey);
3507
+ return Boolean(isTrackingIngestEnabled() && licenseKey);
3630
3508
  }
3631
3509
  function buildPlayerMetricEvent() {
3632
3510
  return _async_to_generator(function() {
@@ -3668,10 +3546,6 @@ function buildPlayerMetricEvent() {
3668
3546
  });
3669
3547
  }).apply(this, arguments);
3670
3548
  }
3671
- function publishTracking(licenseKey, channel, body) {
3672
- ensureMQTTClient();
3673
- publishMQTT(buildPlayerTopic(licenseKey, channel), body);
3674
- }
3675
3549
  function sendInitialTracking(_0) {
3676
3550
  return _async_to_generator(function(licenseKey) {
3677
3551
  var context, metricEvent, error;
@@ -3687,9 +3561,9 @@ function sendInitialTracking(_0) {
3687
3561
  case 1:
3688
3562
  _state.trys.push([
3689
3563
  1,
3690
- 3,
3564
+ 4,
3691
3565
  ,
3692
- 4
3566
+ 5
3693
3567
  ]);
3694
3568
  return [
3695
3569
  4,
@@ -3700,23 +3574,28 @@ function sendInitialTracking(_0) {
3700
3574
  ];
3701
3575
  case 2:
3702
3576
  metricEvent = _state.sent();
3703
- publishTracking(licenseKey, "metrics", {
3704
- events: [
3705
- metricEvent
3706
- ]
3707
- });
3708
3577
  return [
3709
- 3,
3710
- 4
3578
+ 4,
3579
+ ingestPlayerTracking(licenseKey, "metrics", {
3580
+ events: [
3581
+ metricEvent
3582
+ ]
3583
+ })
3711
3584
  ];
3712
3585
  case 3:
3586
+ _state.sent();
3587
+ return [
3588
+ 3,
3589
+ 5
3590
+ ];
3591
+ case 4:
3713
3592
  error = _state.sent();
3714
3593
  console.error("[StormcloudVideoPlayer] Error sending initial tracking data:", error);
3715
3594
  return [
3716
3595
  3,
3717
- 4
3596
+ 5
3718
3597
  ];
3719
- case 4:
3598
+ case 5:
3720
3599
  return [
3721
3600
  2
3722
3601
  ];
@@ -3827,9 +3706,9 @@ function sendAdImpressionTracking(_0, _1) {
3827
3706
  case 1:
3828
3707
  _state.trys.push([
3829
3708
  1,
3830
- 3,
3709
+ 5,
3831
3710
  ,
3832
- 4
3711
+ 6
3833
3712
  ]);
3834
3713
  return [
3835
3714
  4,
@@ -3839,29 +3718,43 @@ function sendAdImpressionTracking(_0, _1) {
3839
3718
  ];
3840
3719
  case 2:
3841
3720
  metricEvent = _state.sent();
3842
- publishTracking(licenseKey, "heartbeat", metricEvent);
3843
- publishTracking(licenseKey, "impressions", {
3844
- events: [
3845
- {
3846
- player_id: metricEvent.player_id,
3847
- ad_played_count: 1,
3848
- ad_url: adImpressionInfo.adUrl,
3849
- capture_at: adImpressionInfo.timestamp
3850
- }
3851
- ]
3852
- });
3853
3721
  return [
3854
- 3,
3855
- 4
3722
+ 4,
3723
+ ingestPlayerTracking(licenseKey, "metrics", {
3724
+ events: [
3725
+ metricEvent
3726
+ ]
3727
+ })
3856
3728
  ];
3857
3729
  case 3:
3730
+ _state.sent();
3731
+ return [
3732
+ 4,
3733
+ ingestPlayerTracking(licenseKey, "impressions", {
3734
+ events: [
3735
+ {
3736
+ player_id: metricEvent.player_id,
3737
+ ad_played_count: 1,
3738
+ ad_url: adImpressionInfo.adUrl,
3739
+ capture_at: adImpressionInfo.timestamp
3740
+ }
3741
+ ]
3742
+ })
3743
+ ];
3744
+ case 4:
3745
+ _state.sent();
3746
+ return [
3747
+ 3,
3748
+ 6
3749
+ ];
3750
+ case 5:
3858
3751
  error = _state.sent();
3859
3752
  console.error("[StormcloudVideoPlayer] Error sending ad impression tracking:", error);
3860
3753
  return [
3861
3754
  3,
3862
- 4
3755
+ 6
3863
3756
  ];
3864
- case 4:
3757
+ case 6:
3865
3758
  return [
3866
3759
  2
3867
3760
  ];
@@ -3884,9 +3777,9 @@ function sendHeartbeat(_0) {
3884
3777
  case 1:
3885
3778
  _state.trys.push([
3886
3779
  1,
3887
- 3,
3780
+ 4,
3888
3781
  ,
3889
- 4
3782
+ 5
3890
3783
  ]);
3891
3784
  return [
3892
3785
  4,
@@ -3894,19 +3787,28 @@ function sendHeartbeat(_0) {
3894
3787
  ];
3895
3788
  case 2:
3896
3789
  heartbeatData = _state.sent();
3897
- publishTracking(licenseKey, "heartbeat", heartbeatData);
3898
3790
  return [
3899
- 3,
3900
- 4
3791
+ 4,
3792
+ ingestPlayerTracking(licenseKey, "metrics", {
3793
+ events: [
3794
+ heartbeatData
3795
+ ]
3796
+ })
3901
3797
  ];
3902
3798
  case 3:
3799
+ _state.sent();
3800
+ return [
3801
+ 3,
3802
+ 5
3803
+ ];
3804
+ case 4:
3903
3805
  error = _state.sent();
3904
3806
  console.error("[StormcloudVideoPlayer] Error sending heartbeat:", error);
3905
3807
  return [
3906
3808
  3,
3907
- 4
3809
+ 5
3908
3810
  ];
3909
- case 4:
3811
+ case 5:
3910
3812
  return [
3911
3813
  2
3912
3814
  ];
@@ -5780,7 +5682,6 @@ var AdConfigManager = /*#__PURE__*/ function() {
5780
5682
  ];
5781
5683
  case 4:
5782
5684
  data = _state.sent();
5783
- this.applyMqttConfigFromResponse(data);
5784
5685
  imaPayload = (_data_response = data.response) === null || _data_response === void 0 ? void 0 : (_data_response_ima = _data_response.ima) === null || _data_response_ima === void 0 ? void 0 : (_data_response_ima_publisherdeskima = _data_response_ima["publisherdesk.ima"]) === null || _data_response_ima_publisherdeskima === void 0 ? void 0 : _data_response_ima_publisherdeskima.payload;
5785
5686
  if (imaPayload) {
5786
5687
  decodedPayload = imaPayload;
@@ -5814,20 +5715,6 @@ var AdConfigManager = /*#__PURE__*/ function() {
5814
5715
  }).call(this);
5815
5716
  }
5816
5717
  },
5817
- {
5818
- key: "applyMqttConfigFromResponse",
5819
- value: function applyMqttConfigFromResponse(data) {
5820
- var _data_response;
5821
- var mqttConfig2 = (_data_response = data.response) === null || _data_response === void 0 ? void 0 : _data_response.mqtt_config;
5822
- if (!mqttConfig2 || (typeof mqttConfig2 === "undefined" ? "undefined" : _type_of(mqttConfig2)) !== "object") {
5823
- return;
5824
- }
5825
- applyMQTTConfig(mqttConfig2);
5826
- if (this.debug) {
5827
- console.log("[StormcloudVideoPlayer] Applied MQTT config from /ads/web:", mqttConfig2);
5828
- }
5829
- }
5830
- },
5831
5718
  {
5832
5719
  key: "fetchAndParseVmap",
5833
5720
  value: function fetchAndParseVmap(vmapUrl) {
@@ -12531,47 +12418,37 @@ var StormcloudPlayer = createStormcloudPlayer(players_default, players_default[p
12531
12418
  var StormcloudPlayer_default = StormcloudPlayer;
12532
12419
  // Annotate the CommonJS export names for ESM import in node:
12533
12420
  0 && (module.exports = {
12534
- DEFAULT_MQTT_CONFIG: DEFAULT_MQTT_CONFIG,
12421
+ DEFAULT_TRACKING_INGEST_CONFIG: DEFAULT_TRACKING_INGEST_CONFIG,
12535
12422
  IS_BROWSER: IS_BROWSER,
12536
12423
  IS_GLOBAL: IS_GLOBAL,
12537
12424
  IS_IOS: IS_IOS,
12538
12425
  IS_SAFARI: IS_SAFARI,
12539
- MQTT_CA_CERT_FILE: MQTT_CA_CERT_FILE,
12540
12426
  SUPPORTS_DASH: SUPPORTS_DASH,
12541
12427
  SUPPORTS_HLS: SUPPORTS_HLS,
12542
12428
  StormcloudPlayer: StormcloudPlayer,
12543
12429
  StormcloudVideoPlayer: StormcloudVideoPlayer,
12544
12430
  StormcloudVideoPlayerComponent: StormcloudVideoPlayerComponent,
12545
- applyMQTTConfig: applyMQTTConfig,
12431
+ applyTrackingIngestConfig: applyTrackingIngestConfig,
12546
12432
  buildAnalyticsContext: buildAnalyticsContext,
12547
- buildMQTTBrokerUrl: buildMQTTBrokerUrl,
12548
- buildPlayerTopic: buildPlayerTopic,
12549
12433
  canPlay: canPlay,
12550
- configureMQTT: configureMQTT,
12434
+ configureTrackingIngest: configureTrackingIngest,
12551
12435
  createHlsAdPlayer: createHlsAdPlayer,
12552
12436
  createPalNonceManager: createPalNonceManager,
12553
12437
  createStormcloudPlayer: createStormcloudPlayer,
12554
12438
  detectBrowser: detectBrowser,
12555
- disconnectMQTT: disconnectMQTT,
12556
- ensureMQTTClient: ensureMQTTClient,
12557
12439
  getBrowserConfigOverrides: getBrowserConfigOverrides,
12558
12440
  getBrowserID: getBrowserID,
12559
12441
  getClientInfo: getClientInfo,
12560
- getMQTTStatus: getMQTTStatus,
12561
- initMQTTClient: initMQTTClient,
12442
+ ingestPlayerTracking: ingestPlayerTracking,
12562
12443
  initializePolyfills: initializePolyfills,
12563
- isMQTTConfigured: isMQTTConfigured,
12564
- isMQTTConnected: isMQTTConnected,
12565
- isMQTTEnabled: isMQTTEnabled,
12566
12444
  isMediaStream: isMediaStream,
12445
+ isTrackingIngestEnabled: isTrackingIngestEnabled,
12567
12446
  lazy: lazy,
12568
12447
  logBrowserInfo: logBrowserInfo,
12569
12448
  merge: merge,
12570
- mqttConfig: mqttConfig,
12571
12449
  omit: omit,
12572
12450
  parseQuery: parseQuery,
12573
12451
  players: players,
12574
- publishMQTT: publishMQTT,
12575
12452
  randomString: randomString,
12576
12453
  requiresMediaPipelineResetAfterAds: requiresMediaPipelineResetAfterAds,
12577
12454
  sendAdDetectTracking: sendAdDetectTracking,
@@ -12581,6 +12458,7 @@ var StormcloudPlayer_default = StormcloudPlayer;
12581
12458
  sendInitialTracking: sendInitialTracking,
12582
12459
  supportsFeature: supportsFeature,
12583
12460
  supportsModernJS: supportsModernJS,
12584
- supportsWebKitPresentationMode: supportsWebKitPresentationMode
12461
+ supportsWebKitPresentationMode: supportsWebKitPresentationMode,
12462
+ trackingIngestConfig: trackingIngestConfig
12585
12463
  });
12586
12464
  //# sourceMappingURL=index.cjs.map