@eyevinn/player-analytics-client-sdk-web 0.1.3 → 0.3.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.
@@ -0,0 +1,29 @@
1
+ name: Deploy demo site
2
+ on:
3
+ push:
4
+ branches:
5
+ - master
6
+
7
+ jobs:
8
+ deploy:
9
+ runs-on: ubuntu-latest
10
+
11
+ steps:
12
+ - uses: actions/checkout@v3
13
+ - uses: actions/setup-node@v3
14
+ with:
15
+ node-version: '18'
16
+ - name: install dependencies
17
+ run: |
18
+ npm install
19
+ npm run build:demo
20
+ - name: deploy to bucket
21
+ uses: jakejarvis/s3-sync-action@v0.5.1
22
+ with:
23
+ args: --follow-symlinks --delete
24
+ env:
25
+ AWS_S3_ENDPOINT: https://eyevinn-epasdemo.minio-minio.auto.prod.osaas.io
26
+ AWS_S3_BUCKET: 'www'
27
+ AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }}
28
+ AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
29
+ SOURCE_DIR: 'site/'
@@ -12,7 +12,7 @@ jobs:
12
12
  - uses: actions/checkout@v1
13
13
  - uses: actions/setup-node@v1
14
14
  with:
15
- node-version: 16
15
+ node-version: 22
16
16
  registry-url: https://npm.pkg.github.com
17
17
  - run: npm install
18
18
  - run: npm run build
@@ -12,7 +12,7 @@ jobs:
12
12
  - uses: actions/checkout@v1
13
13
  - uses: actions/setup-node@v1
14
14
  with:
15
- node-version: 16
15
+ node-version: 22
16
16
  registry-url: https://registry.npmjs.org/
17
17
  - run: npm install
18
18
  - run: npm run build
package/Readme.md CHANGED
@@ -1,11 +1,23 @@
1
+ [![Badge OSC](https://img.shields.io/badge/Evaluate-24243B?style=for-the-badge&logo=data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPGNpcmNsZSBjeD0iMTIiIGN5PSIxMiIgcj0iMTIiIGZpbGw9InVybCgjcGFpbnQwX2xpbmVhcl8yODIxXzMxNjcyKSIvPgo8Y2lyY2xlIGN4PSIxMiIgY3k9IjEyIiByPSI3IiBzdHJva2U9ImJsYWNrIiBzdHJva2Utd2lkdGg9IjIiLz4KPGRlZnM%2BCjxsaW5lYXJHcmFkaWVudCBpZD0icGFpbnQwX2xpbmVhcl8yODIxXzMxNjcyIiB4MT0iMTIiIHkxPSIwIiB4Mj0iMTIiIHkyPSIyNCIgZ3JhZGllbnRVbml0cz0idXNlclNwYWNlT25Vc2UiPgo8c3RvcCBzdG9wLWNvbG9yPSIjQzE4M0ZGIi8%2BCjxzdG9wIG9mZnNldD0iMSIgc3RvcC1jb2xvcj0iIzREQzlGRiIvPgo8L2xpbmVhckdyYWRpZW50Pgo8L2RlZnM%2BCjwvc3ZnPgo%3D)](https://app.osaas.io/browse/eyevinn-player-analytics-eventsink)
2
+
1
3
  # Player Analytics Client SDK Web
2
4
 
3
- Part of [Eyevinn Player Analytics Specification](https://github.com/Eyevinn/player-analytics-specification). To be used together with [Eyevinn Player Analytics Eventsink](https://github.com/Eyevinn/player-analytics-eventsink)
5
+ Part of [Eyevinn Player Analytics Specification (EPAS)](https://github.com/Eyevinn/player-analytics-specification). To be used together with [Eyevinn Player Analytics Eventsink](https://github.com/Eyevinn/player-analytics-eventsink)
4
6
 
5
7
  ```
6
8
  npm install @eyevinn/player-analytics-client-sdk-web
7
9
  ```
8
10
 
11
+ ## EPAS backend in Open Source Cloud
12
+
13
+ The quickest way to get started is to setup an EPAS compatible backend in [Eyevinn Open Source Cloud](https://www.osaas.io)
14
+
15
+ ![EPAS pipeline in OSC](pipeline.png)
16
+
17
+ 1. Setup an Eventsink in OSC as described in the [documentation](https://docs.osaas.io/osaas.wiki/Service%3A-Player-Analytics-Eventsink.html).
18
+ 2. Setup an Analytics Worker and Clickhouse Database by following the instructions in the [documentation](https://docs.osaas.io/osaas.wiki/Service%3A-Player-Analytics-Worker.html)
19
+ 3. Add Clickhouse as datasource in Grafana and start visualizing the metrics
20
+
9
21
  ## Usage
10
22
 
11
23
  ### Automatic Event Listening
@@ -154,6 +166,8 @@ These applies to both the `PlayerAnalyticsConnector` and `PlayerAnalytics`.
154
166
  ```ts
155
167
  export interface IPlayerAnalyticsInitOptions {
156
168
  sessionId?: string; // should be generated by the backend if not sent in
169
+ shardId?: string; // optional grouping or clustering events throughout the
170
+ // pipeline to allow sharding at various stages of a pipeline
157
171
  hearbeatInterval?: number; //Defaults to 30_000 (ms)
158
172
  }
159
173
  ```
@@ -175,3 +189,20 @@ Run the demo page by `npm start`
175
189
  - click "Auto-generate release notes"
176
190
  - click "Publish release"
177
191
  - A Github Action is triggered to do the releases towards the npmjs and github packages repositories.
192
+ <br/>
193
+ <br/>
194
+
195
+ # About Eyevinn
196
+ We are [Eyevinn Technology](https://www.eyevinntechnology.se/), and we help companies in the TV, media, and entertainment sectors optimize costs and boost profitability through enhanced media solutions. We are independent in a way that we are not commercially tied to any platform or technology vendor. As our way to innovate and push the industry forward, we develop proof-of-concepts and tools. We share things we have learn and code as open-source.
197
+
198
+ With Eyevinn Open Source Cloud we enable to build solutions and applications based on Open Web Services and avoid being locked in with a single web service vendor. Our open-source solutions offer full flexibility with a revenue share model that supports the creators.
199
+
200
+ Read our blogs and articles here:
201
+
202
+ - [Developer blogs](https://dev.to/video)
203
+ - [Medium](https://eyevinntechnology.medium.com/)
204
+ - [OSC](https://blog.osaas.io)
205
+ - [LinkedIn](https://www.linkedin.com/company/eyevinn/)
206
+
207
+ Want to know more about Eyevinn, contact us at [info@eyevinn.se](mailto:info@eyevinn.se)!
208
+
package/dist/index.js CHANGED
@@ -1,5 +1,5 @@
1
1
  var $g5Y9E$eyevinnplayeranalyticsspecificationpackagejson = require("@eyevinn/player-analytics-specification/package.json");
2
- var $g5Y9E$eyevinnvideoeventfilter = require("@eyevinn/video-event-filter");
2
+ var $g5Y9E$eyevinnmediaeventfilter = require("@eyevinn/media-event-filter");
3
3
 
4
4
  function $parcel$export(e, n, v, s) {
5
5
  Object.defineProperty(e, n, {get: v, set: s, enumerable: true, configurable: true});
@@ -16,25 +16,6 @@ var $7d88e8cdd46a09a5$exports = {};
16
16
 
17
17
  $parcel$export($7d88e8cdd46a09a5$exports, "PlayerAnalytics", () => $7d88e8cdd46a09a5$export$f76c463fe9cb9f15, (v) => $7d88e8cdd46a09a5$export$f76c463fe9cb9f15 = v);
18
18
 
19
- var $e8f16a459684b36f$export$342d7dbd8323f55e;
20
- (function($e8f16a459684b36f$export$342d7dbd8323f55e) {
21
- $e8f16a459684b36f$export$342d7dbd8323f55e["loading"] = "loading";
22
- $e8f16a459684b36f$export$342d7dbd8323f55e["loaded"] = "loaded";
23
- $e8f16a459684b36f$export$342d7dbd8323f55e["play"] = "playing";
24
- $e8f16a459684b36f$export$342d7dbd8323f55e["resume"] = "playing";
25
- $e8f16a459684b36f$export$342d7dbd8323f55e["pause"] = "paused";
26
- $e8f16a459684b36f$export$342d7dbd8323f55e["seeking"] = "seeking";
27
- $e8f16a459684b36f$export$342d7dbd8323f55e["seeked"] = "seeked";
28
- $e8f16a459684b36f$export$342d7dbd8323f55e["buffering"] = "buffering";
29
- $e8f16a459684b36f$export$342d7dbd8323f55e["buffered"] = "buffered";
30
- $e8f16a459684b36f$export$342d7dbd8323f55e["ended"] = "stopped";
31
- $e8f16a459684b36f$export$342d7dbd8323f55e["error"] = "error";
32
- $e8f16a459684b36f$export$342d7dbd8323f55e["warning"] = "warning";
33
- $e8f16a459684b36f$export$342d7dbd8323f55e["bitratechanged"] = "bitrate_changed";
34
- $e8f16a459684b36f$export$342d7dbd8323f55e["heartbeat"] = "heartbeat";
35
- $e8f16a459684b36f$export$342d7dbd8323f55e["metadata"] = "metadata";
36
- })($e8f16a459684b36f$export$342d7dbd8323f55e || ($e8f16a459684b36f$export$342d7dbd8323f55e = {
37
- }));
38
19
  var $e8f16a459684b36f$export$31c453b5fe09788d = 30000;
39
20
  var $e8f16a459684b36f$export$8a65ed80196068d4 = ($parcel$interopDefault($g5Y9E$eyevinnplayeranalyticsspecificationpackagejson)).version;
40
21
 
@@ -179,6 +160,7 @@ var $4cb1735bdc43624b$export$957313a2f485e5ed = function() {
179
160
  function $4cb1735bdc43624b$export$957313a2f485e5ed(options) {
180
161
  this.isInitiated = false;
181
162
  this.debug = options.debug;
163
+ this.shardId = options.shardId;
182
164
  this.eventsinkUrl = options.eventsinkUrl;
183
165
  this.sessionId = options.sessionId;
184
166
  this.heartbeatInterval = options.heartbeatInterval || $e8f16a459684b36f$export$31c453b5fe09788d;
@@ -194,6 +176,7 @@ var $4cb1735bdc43624b$export$957313a2f485e5ed = function() {
194
176
  data = {
195
177
  event: "init",
196
178
  sessionId: this.sessionId,
179
+ shardId: this.shardId,
197
180
  timestamp: Date.now(),
198
181
  playhead: -1,
199
182
  duration: -1
@@ -254,7 +237,8 @@ var $4cb1735bdc43624b$export$957313a2f485e5ed = function() {
254
237
  $4cb1735bdc43624b$export$957313a2f485e5ed.prototype.send = function(data) {
255
238
  if (!this.isInitiated) return console.warn("[AnalyticsReporter] Cannot report before initiation:", data);
256
239
  var payload = $4cb1735bdc43624b$var$__assign({
257
- sessionId: this.sessionId
240
+ sessionId: this.sessionId,
241
+ shardId: this.shardId
258
242
  }, data);
259
243
  if (this.debug) console.log("[AnalyticsReporter] Send payload:", payload);
260
244
  else fetch("".concat(this.eventsinkUrl), {
@@ -402,7 +386,7 @@ var $7d88e8cdd46a09a5$export$f76c463fe9cb9f15 = function() {
402
386
  this.eventsinkUrl = eventsinkUrl;
403
387
  }
404
388
  $7d88e8cdd46a09a5$export$f76c463fe9cb9f15.prototype.initiateAnalyticsReporter = function(_a) {
405
- var sessionId = _a.sessionId, _b = _a.heartbeatInterval, heartbeatInterval = _b === void 0 ? $e8f16a459684b36f$export$31c453b5fe09788d : _b;
389
+ var sessionId = _a.sessionId, shardId = _a.shardId, _b = _a.heartbeatInterval, heartbeatInterval = _b === void 0 ? $e8f16a459684b36f$export$31c453b5fe09788d : _b;
406
390
  return $7d88e8cdd46a09a5$var$__awaiter(this, void 0, void 0, function() {
407
391
  var _c, generatedSessionId, isInitiated;
408
392
  return $7d88e8cdd46a09a5$var$__generator(this, function(_d) {
@@ -412,7 +396,8 @@ var $7d88e8cdd46a09a5$export$f76c463fe9cb9f15 = function() {
412
396
  sessionId: sessionId,
413
397
  eventsinkUrl: this.eventsinkUrl,
414
398
  debug: this.debug,
415
- heartbeatInterval: heartbeatInterval
399
+ heartbeatInterval: heartbeatInterval,
400
+ shardId: shardId
416
401
  });
417
402
  return [
418
403
  4 /*yield*/ ,
@@ -450,9 +435,6 @@ var $7d88e8cdd46a09a5$export$f76c463fe9cb9f15 = function() {
450
435
  $7d88e8cdd46a09a5$export$f76c463fe9cb9f15.prototype.playing = function(data) {
451
436
  this.analyticsReporter.send(data);
452
437
  };
453
- $7d88e8cdd46a09a5$export$f76c463fe9cb9f15.prototype.paused = function(data) {
454
- this.pause(data);
455
- };
456
438
  $7d88e8cdd46a09a5$export$f76c463fe9cb9f15.prototype.pause = function(data) {
457
439
  this.analyticsReporter.send(data);
458
440
  };
@@ -492,7 +474,6 @@ var $c2e08ff125b5bcd1$exports = {};
492
474
  $parcel$export($c2e08ff125b5bcd1$exports, "PlayerAnalyticsConnector", () => $c2e08ff125b5bcd1$export$2daf9923c014a26e, (v) => $c2e08ff125b5bcd1$export$2daf9923c014a26e = v);
493
475
 
494
476
 
495
-
496
477
  var $c2e08ff125b5bcd1$var$__assign = undefined && undefined.__assign || function() {
497
478
  $c2e08ff125b5bcd1$var$__assign = Object.assign || function(t) {
498
479
  for(var s, i = 1, n = arguments.length; i < n; i++){
@@ -641,7 +622,8 @@ var $c2e08ff125b5bcd1$export$2daf9923c014a26e = function() {
641
622
  return [
642
623
  4 /*yield*/ ,
643
624
  this.playerAnalytics.initiateAnalyticsReporter($c2e08ff125b5bcd1$var$__assign({
644
- sessionId: this.sessionId
625
+ sessionId: this.sessionId,
626
+ shardId: options.shardId
645
627
  }, options))
646
628
  ];
647
629
  case 1:
@@ -658,69 +640,65 @@ var $c2e08ff125b5bcd1$export$2daf9923c014a26e = function() {
658
640
  $c2e08ff125b5bcd1$export$2daf9923c014a26e.prototype.load = function(player) {
659
641
  this.player = player;
660
642
  this.playerAnalytics.loading($c2e08ff125b5bcd1$var$__assign({
661
- event: $e8f16a459684b36f$export$342d7dbd8323f55e.loading
643
+ event: "loading"
662
644
  }, this.playbackState()));
663
645
  this.initiateVideoEventFilter();
664
646
  };
665
647
  $c2e08ff125b5bcd1$export$2daf9923c014a26e.prototype.initiateVideoEventFilter = function() {
666
648
  var _this = this;
667
649
  if (!this.player) return;
668
- this.videoEventFilter = new $g5Y9E$eyevinnvideoeventfilter.VideoEventFilter(this.player);
669
- this.videoEventFilter.addEventListener("*", this.videoEventListener = function(event) {
670
- if (!Object.keys($e8f16a459684b36f$export$342d7dbd8323f55e).includes(event)) return;
671
- var eventType;
672
- var extraData = {
673
- };
674
- if (!event) return;
675
- switch(event){
676
- case $g5Y9E$eyevinnvideoeventfilter.PlayerEvents.Loaded:
677
- eventType = $e8f16a459684b36f$export$342d7dbd8323f55e.loaded;
678
- break;
679
- case $g5Y9E$eyevinnvideoeventfilter.PlayerEvents.Loading:
680
- eventType = $e8f16a459684b36f$export$342d7dbd8323f55e.loading;
681
- break;
682
- case $g5Y9E$eyevinnvideoeventfilter.PlayerEvents.Play:
683
- case $g5Y9E$eyevinnvideoeventfilter.PlayerEvents.Resume:
684
- eventType = $e8f16a459684b36f$export$342d7dbd8323f55e.play;
685
- _this.startInterval();
686
- break;
687
- case $g5Y9E$eyevinnvideoeventfilter.PlayerEvents.Pause:
688
- eventType = $e8f16a459684b36f$export$342d7dbd8323f55e.pause;
689
- break;
690
- case $g5Y9E$eyevinnvideoeventfilter.PlayerEvents.Seeking:
691
- eventType = $e8f16a459684b36f$export$342d7dbd8323f55e.seeking;
692
- break;
693
- case $g5Y9E$eyevinnvideoeventfilter.PlayerEvents.Seeked:
694
- eventType = $e8f16a459684b36f$export$342d7dbd8323f55e.seeked;
695
- break;
696
- case $g5Y9E$eyevinnvideoeventfilter.PlayerEvents.Buffering:
697
- eventType = $e8f16a459684b36f$export$342d7dbd8323f55e.buffering;
698
- break;
699
- case $g5Y9E$eyevinnvideoeventfilter.PlayerEvents.Buffered:
700
- eventType = $e8f16a459684b36f$export$342d7dbd8323f55e.buffered;
701
- break;
702
- case $g5Y9E$eyevinnvideoeventfilter.PlayerEvents.Ended:
703
- eventType = $e8f16a459684b36f$export$342d7dbd8323f55e.ended;
704
- extraData.reason = "ended";
705
- _this.stopInterval();
706
- break;
707
- case $g5Y9E$eyevinnvideoeventfilter.PlayerEvents.Error:
708
- eventType = $e8f16a459684b36f$export$342d7dbd8323f55e.error;
709
- extraData.reason = "error";
710
- _this.stopInterval();
711
- break;
712
- default:
713
- break;
714
- }
715
- if (!_this.analyticsInitiated) {
716
- console.warn("[PlayerAnalyticsConnector] Analytics not initiated");
717
- return;
650
+ this.videoEventFilter = $g5Y9E$eyevinnmediaeventfilter.getMediaEventFilter({
651
+ mediaElement: this.player,
652
+ mp4Mode: false,
653
+ callback: function(event) {
654
+ var eventType;
655
+ var extraData = {
656
+ };
657
+ switch(event){
658
+ case $g5Y9E$eyevinnmediaeventfilter.FilteredMediaEvent.LOADED:
659
+ eventType = "loaded";
660
+ break;
661
+ case $g5Y9E$eyevinnmediaeventfilter.FilteredMediaEvent.PLAYING:
662
+ eventType = "playing";
663
+ _this.startInterval();
664
+ break;
665
+ case $g5Y9E$eyevinnmediaeventfilter.FilteredMediaEvent.PAUSE:
666
+ eventType = "paused";
667
+ break;
668
+ case $g5Y9E$eyevinnmediaeventfilter.FilteredMediaEvent.SEEKING:
669
+ eventType = "seeking";
670
+ break;
671
+ case $g5Y9E$eyevinnmediaeventfilter.FilteredMediaEvent.SEEKED:
672
+ eventType = "seeked";
673
+ break;
674
+ case $g5Y9E$eyevinnmediaeventfilter.FilteredMediaEvent.BUFFERING:
675
+ eventType = "buffering";
676
+ break;
677
+ case $g5Y9E$eyevinnmediaeventfilter.FilteredMediaEvent.BUFFERED:
678
+ eventType = "buffered";
679
+ break;
680
+ case $g5Y9E$eyevinnmediaeventfilter.FilteredMediaEvent.ENDED:
681
+ eventType = "stopped";
682
+ extraData["reason"] = "ended";
683
+ _this.stopInterval();
684
+ break;
685
+ default:
686
+ break;
687
+ }
688
+ try {
689
+ if (!_this.analyticsInitiated) {
690
+ console.warn("[PlayerAnalyticsConnector] Analytics not initiated");
691
+ return;
692
+ }
693
+ if (eventType) _this.playerAnalytics[eventType == "paused" ? "pause" : eventType]($c2e08ff125b5bcd1$var$__assign($c2e08ff125b5bcd1$var$__assign({
694
+ event: eventType
695
+ }, _this.playbackState()), Object.keys(extraData).length > 0 && {
696
+ payload: extraData
697
+ }));
698
+ } catch (err) {
699
+ console.error(err);
700
+ }
718
701
  }
719
- _this.playerAnalytics[eventType]($c2e08ff125b5bcd1$var$__assign($c2e08ff125b5bcd1$var$__assign({
720
- event: eventType
721
- }, _this.playbackState()), Object.keys(extraData).length > 0 && {
722
- payload: extraData
723
- }));
724
702
  });
725
703
  };
726
704
  $c2e08ff125b5bcd1$export$2daf9923c014a26e.prototype.startInterval = function() {
@@ -728,7 +706,7 @@ var $c2e08ff125b5bcd1$export$2daf9923c014a26e = function() {
728
706
  if (this.heartbeatIntervalTimer) return;
729
707
  this.heartbeatIntervalTimer = setInterval(function() {
730
708
  _this.playerAnalytics.heartbeat($c2e08ff125b5bcd1$var$__assign({
731
- event: $e8f16a459684b36f$export$342d7dbd8323f55e.heartbeat
709
+ event: "heartbeat"
732
710
  }, _this.playbackState()));
733
711
  }, this.heartbeatInterval);
734
712
  };
@@ -741,7 +719,7 @@ var $c2e08ff125b5bcd1$export$2daf9923c014a26e = function() {
741
719
  return;
742
720
  }
743
721
  this.playerAnalytics.bitrateChanged($c2e08ff125b5bcd1$var$__assign($c2e08ff125b5bcd1$var$__assign({
744
- event: $e8f16a459684b36f$export$342d7dbd8323f55e.bitratechanged
722
+ event: "bitrate_changed"
745
723
  }, this.playbackState()), {
746
724
  payload: payload
747
725
  }));
@@ -752,7 +730,7 @@ var $c2e08ff125b5bcd1$export$2daf9923c014a26e = function() {
752
730
  return;
753
731
  }
754
732
  this.playerAnalytics.stopped($c2e08ff125b5bcd1$var$__assign($c2e08ff125b5bcd1$var$__assign({
755
- event: $e8f16a459684b36f$export$342d7dbd8323f55e.ended
733
+ event: "stopped"
756
734
  }, this.playbackState()), {
757
735
  payload: {
758
736
  reason: "aborted"
@@ -766,12 +744,12 @@ var $c2e08ff125b5bcd1$export$2daf9923c014a26e = function() {
766
744
  return;
767
745
  }
768
746
  this.playerAnalytics.error($c2e08ff125b5bcd1$var$__assign($c2e08ff125b5bcd1$var$__assign({
769
- event: $e8f16a459684b36f$export$342d7dbd8323f55e.error
747
+ event: "error"
770
748
  }, this.playbackState()), {
771
749
  payload: error
772
750
  }));
773
751
  this.playerAnalytics.stopped($c2e08ff125b5bcd1$var$__assign($c2e08ff125b5bcd1$var$__assign({
774
- event: $e8f16a459684b36f$export$342d7dbd8323f55e.ended
752
+ event: "stopped"
775
753
  }, this.playbackState()), {
776
754
  payload: {
777
755
  reason: "error"
@@ -785,7 +763,7 @@ var $c2e08ff125b5bcd1$export$2daf9923c014a26e = function() {
785
763
  return;
786
764
  }
787
765
  this.playerAnalytics.metadata($c2e08ff125b5bcd1$var$__assign($c2e08ff125b5bcd1$var$__assign({
788
- event: $e8f16a459684b36f$export$342d7dbd8323f55e.metadata
766
+ event: "metadata"
789
767
  }, this.playbackState()), {
790
768
  payload: payload
791
769
  }));
@@ -796,7 +774,7 @@ var $c2e08ff125b5bcd1$export$2daf9923c014a26e = function() {
796
774
  return;
797
775
  }
798
776
  this.playerAnalytics.warning($c2e08ff125b5bcd1$var$__assign($c2e08ff125b5bcd1$var$__assign({
799
- event: $e8f16a459684b36f$export$342d7dbd8323f55e.warning
777
+ event: "warning"
800
778
  }, this.playbackState()), {
801
779
  payload: payload
802
780
  }));
@@ -819,7 +797,7 @@ var $c2e08ff125b5bcd1$export$2daf9923c014a26e = function() {
819
797
  }
820
798
  this.stopInterval();
821
799
  this.heartbeatInterval = null;
822
- this.videoEventFilter && this.videoEventFilter.removeEventListener("*", this.videoEventListener);
800
+ this.videoEventFilter && this.videoEventFilter.teardown();
823
801
  this.videoEventFilter = null;
824
802
  };
825
803
  $c2e08ff125b5bcd1$export$2daf9923c014a26e.prototype.destroy = function() {
@@ -829,7 +807,7 @@ var $c2e08ff125b5bcd1$export$2daf9923c014a26e = function() {
829
807
  }
830
808
  this.playerAnalytics.destroy();
831
809
  this.heartbeatInterval = null;
832
- this.videoEventFilter && this.videoEventFilter.removeEventListener("*", this.videoEventListener);
810
+ this.videoEventFilter && this.videoEventFilter.teardown();
833
811
  this.stopInterval();
834
812
  };
835
813
  return $c2e08ff125b5bcd1$export$2daf9923c014a26e;
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"mappings":";;;;;;;;;;;;;;;;;;AIAA,GAAA,CAAY,yCAgBX;CAhBD,QAAA,CAAY,yCAAU,EAAtB,CAAA;IACE,yCAAA,CAAA,CAAA,YAAA,CAAmB;IACnB,yCAAA,CAAA,CAAA,WAAA,CAAiB;IACjB,yCAAA,CAAA,CAAA,SAAA,CAAgB;IAChB,yCAAA,CAAA,CAAA,WAAA,CAAkB;IAClB,yCAAA,CAAA,CAAA,UAAA,CAAgB;IAChB,yCAAA,CAAA,CAAA,YAAA,CAAmB;IACnB,yCAAA,CAAA,CAAA,WAAA,CAAiB;IACjB,yCAAA,CAAA,CAAA,cAAA,CAAuB;IACvB,yCAAA,CAAA,CAAA,aAAA,CAAqB;IACrB,yCAAA,CAAA,CAAA,UAAA,CAAiB;IACjB,yCAAA,CAAA,CAAA,UAAA,CAAe;IACf,yCAAA,CAAA,CAAA,YAAA,CAAmB;IACnB,yCAAA,CAAA,CAAA,mBAAA,CAAkC;IAClC,yCAAA,CAAA,CAAA,cAAA,CAAuB;IACvB,yCAAA,CAAA,CAAA,aAAA,CAAqB;AACvB,CAAC,EAhBW,yCAAU,KAAV,yCAAU,GAAA,CAAA;AAAA,CAAA;AAkBf,GAAA,CAAM,yCAAkB,GAAG,KAAK;AAGhC,GAAA,CAAM,yCAAY,GAAG,+EAAW,CAAC,OAAO;;;;;;;A,G,C,8B,0B,Q,I,Q,G,C;I,8B,G,M,C,M,I,Q,C,C,E,C;Q,G,C,G,C,C,E,C,G,C,E,C,G,S,C,M,E,C,G,C,E,C,G,C;Y,C,G,S,C,C;Y,G,C,G,C,C,I,C,C,E,E,M,C,S,C,c,C,I,C,C,E,C,G,C,C,C,I,C,C,C;Q,C;Q,M,C,C;I,C;I,M,C,8B,C,K,C,I,E,S;A,C;A,G,C,+B,0B,S,I,Q,C,O,E,U,E,C,E,S,E,C;a,K,C,K,E,C;Q,M,C,K,Y,C,G,K,G,G,C,C,C,Q,C,O,E,C;Y,O,C,K;Q,C;I,C;I,M,C,G,E,C,K,C,G,O,G,Q,C,O,E,M,E,C;iB,S,C,K,E,C;Y,G,C,C;gB,I,C,S,C,I,C,K;Y,C,C,K,E,C,E,C;gB,M,C,C;Y,C;Q,C;iB,Q,C,K,E,C;Y,G,C,C;gB,I,C,S,C,C,Q,K;Y,C,C,K,E,C,E,C;gB,M,C,C;Y,C;Q,C;iB,I,C,M,E,C;Y,M,C,I,G,O,C,M,C,K,I,K,C,M,C,K,E,I,C,S,E,Q;Q,C;Q,I,E,S,G,S,C,K,C,O,E,U,I,C,C,G,I;I,C;A,C;A,G,C,iC,0B,W,I,Q,C,O,E,I,E,C;I,G,C,C,G,C;Q,K,E,C;Q,I,E,Q,G,C;Y,E,E,C,C,C,I,C,E,K,C,C,C,C;Y,M,C,C,C,C;Q,C;Q,I,E,C,C;Q,G,E,C,C;I,C,E,C,E,C,E,C,E,C;a,I,C,C,E,C;Q,M,C,Q,C,C,E,C;Y,M,C,I,C,C;gB,C;gB,C;Y,C;Q,C;I,C;a,I,C,E,E,C;Q,E,E,C,E,K,C,G,C,S,C,C;c,C,C,G,C,C;Y,E,E,C,G,C,E,C,K,C,G,E,C,C,I,C,G,C,C,C,W,E,C,C,I,C,C,C,a,C,G,C,C,C,a,C,C,I,C,C,G,C,I,C,C,I,O,C,G,C,C,I,C,C,E,E,C,C,I,I,E,M,C,C;Y,E,E,C,G,C,E,C,E,E,G,C;gB,E,C,C,I,C;gB,C,C,K;Y,C;Y,M,C,E,C,C;gB,I,C,C;gB,I,C,C;oB,C,G,E;oB,K;gB,I,C,C;oB,C,C,K;oB,M,C,C;wB,K,E,E,C,C;wB,I,E,K;oB,C;gB,I,C,C;oB,C,C,K;oB,C,G,E,C,C;oB,E,G,C;A,yB;oB,C;oB,Q;gB,I,C,C;oB,E,G,C,C,G,C,G;oB,C,C,I,C,G;oB,Q;;oB,E,I,C,G,C,C,I,E,C,G,C,C,M,G,C,I,C,C,C,C,M,G,C,O,E,C,C,M,C,I,E,C,C,M,C,G,C;wB,C,G,C;wB,Q;oB,C;oB,E,E,E,C,C,M,C,M,C,I,E,C,C,I,C,C,C,K,E,C,C,I,C,C,C,I,C;wB,C,C,K,G,E,C,C;wB,K;oB,C;oB,E,E,E,C,C,M,C,I,C,C,K,G,C,C,C,G,C;wB,C,C,K,G,C,C,C;wB,C,G,E;wB,K;oB,C;oB,E,E,C,I,C,C,K,G,C,C,C,G,C;wB,C,C,K,G,C,C,C;wB,C,C,G,C,I,C,E;wB,K;oB,C;oB,E,E,C,C,C,G,C,C,G,C,G;oB,C,C,I,C,G;oB,Q;;Y,E,G,I,C,I,C,O,E,C;Q,C,C,K,E,C,E,C;Y,E,G,C;A,iB;gB,C;Y,C;Y,C,G,C;Q,C,Q,C;Y,C,G,C,G,C;Q,C;Q,E,E,E,C,C,I,C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AI,CAAC,SAAS;gCACzB,WAAW,EAAE,IAAI,CAAC,WAAW;4BAC9B,CAAA;wBAAA,CAAA;;Y,C;Q,C;IAEJ,CAAA;IAEM,yCAAA,CAAA,SAAA,CAAA,IAAI,GAAX,QAAA,CAAY,IAA2B,EAAhC,CAAA;QACL,EAAA,GAAK,IAAI,CAAC,WAAW,EACnB,MAAA,CAAO,OAAO,CAAC,IAAI,CACjB,CAAsD,uDACtD,IAAI;QAER,GAAA,CAAM,OAAO,GAAA,8BAAA,CAAA,CAAA;YACX,SAAS,EAAE,IAAI,CAAC,SAAS;QAAA,CAAA,EACtB,IAAI;QAET,EAAA,EAAI,IAAI,CAAC,KAAK,EACZ,OAAO,CAAC,GAAG,CAAC,CAAmC,oCAAE,OAAO;aAExD,KAAK,CAAC,CAAA,EAAA,MAAA,CAAG,IAAI,CAAC,YAAY,GAAI,CAA9B;YACE,MAAM,EAAE,CAAM;YACd,IAAI,EAAE,CAAM;YACZ,KAAK,EAAE,CAAU;YACjB,OAAO,EAAE,CAAT;gBACE,CAAc,eAAE,CAAiC;gBACjD,CAAc,eAAE,IAAI,CAAC,KAAK;gBAC1B,CAAgB,iBAAE,yCAAY;YAC/B,CAAA;YACD,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO;QAC7B,CAAA;IAEL,CAAC;IACH,MAAA,CAAA,yCAAC;AAAD,CA/FA;;;A,G,C,+B,0B,S,I,Q,C,O,E,U,E,C,E,S,E,C;a,K,C,K,E,C;Q,M,C,K,Y,C,G,K,G,G,C,C,C,Q,C,O,E,C;Y,O,C,K;Q,C;I,C;I,M,C,G,E,C,K,C,G,O,G,Q,C,O,E,M,E,C;iB,S,C,K,E,C;Y,G,C,C;gB,I,C,S,C,I,C,K;Y,C,C,K,E,C,E,C;gB,M,C,C;Y,C;Q,C;iB,Q,C,K,E,C;Y,G,C,C;gB,I,C,S,C,C,Q,K;Y,C,C,K,E,C,E,C;gB,M,C,C;Y,C;Q,C;iB,I,C,M,E,C;Y,M,C,I,G,O,C,M,C,K,I,K,C,M,C,K,E,I,C,S,E,Q;Q,C;Q,I,E,S,G,S,C,K,C,O,E,U,I,C,C,G,I;I,C;A,C;A,G,C,iC,0B,W,I,Q,C,O,E,I,E,C;I,G,C,C,G,C;Q,K,E,C;Q,I,E,Q,G,C;Y,E,E,C,C,C,I,C,E,K,C,C,C,C;Y,M,C,C,C,C;Q,C;Q,I,E,C,C;Q,G,E,C,C;I,C,E,C,E,C,E,C,E,C;a,I,C,C,E,C;Q,M,C,Q,C,C,E,C;Y,M,C,I,C,C;gB,C;gB,C;Y,C;Q,C;I,C;a,I,C,E,E,C;Q,E,E,C,E,K,C,G,C,S,C,C;c,C,C,G,C,C;Y,E,E,C,G,C,E,C,K,C,G,E,C,C,I,C,G,C,C,C,W,E,C,C,I,C,C,C,a,C,G,C,C,C,a,C,C,I,C,C,G,C,I,C,C,I,O,C,G,C,C,I,C,C,E,E,C,C,I,I,E,M,C,C;Y,E,E,C,G,C,E,C,E,E,G,C;gB,E,C,C,I,C;gB,C,C,K;Y,C;Y,M,C,E,C,C;gB,I,C,C;gB,I,C,C;oB,C,G,E;oB,K;gB,I,C,C;oB,C,C,K;oB,M,C,C;wB,K,E,E,C,C;wB,I,E,K;oB,C;gB,I,C,C;oB,C,C,K;oB,C,G,E,C,C;oB,E,G,C;A,yB;oB,C;oB,Q;gB,I,C,C;oB,E,G,C,C,G,C,G;oB,C,C,I,C,G;oB,Q;;oB,E,I,C,G,C,C,I,E,C,G,C,C,M,G,C,I,C,C,C,C,M,G,C,O,E,C,C,M,C,I,E,C,C,M,C,G,C;wB,C,G,C;wB,Q;oB,C;oB,E,E,E,C,C,M,C,M,C,I,E,C,C,I,C,C,C,K,E,C,C,I,C,C,C,I,C;wB,C,C,K,G,E,C,C;wB,K;oB,C;oB,E,E,E,C,C,M,C,I,C,C,K,G,C,C,C,G,C;wB,C,C,K,G,C,C,C;wB,C,G,E;wB,K;oB,C;oB,E,E,C,I,C,C,K,G,C,C,C,G,C;wB,C,C,K,G,C,C,C;wB,C,C,G,C,I,C,E;wB,K;oB,C;oB,E,E,C,C,C,G,C,C,G,C,G;oB,C,C,I,C,G;oB,Q;;Y,E,G,I,C,I,C,O,E,C;Q,C,C,K,E,C,E,C;Y,E,G,C;A,iB;gB,C;Y,C;Y,C,G,C;Q,C,Q,C;Y,C,G,C,G,C;Q,C;Q,E,E,E,C,C,I,C,E,K,C,E,C,C;Q,M,C,C;Y,K,E,E,C,C,I,E,C,C,I,I,C,C;Y,I,E,I;Q,C;I,C;I,M,C,C,G,C;Q,I,E,I,C,C;Q,C,Q,I,C,C;Q,C,S,I,C,C;I,C,E,M,C,M,K,C,c,C,C,M,C,Q,I,Q,G,C;Q,M,C,I;I,C,G,C;A,C;AJMA,GAAA,CAAA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EAAzB,CAAA;QACL,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI;IAClC,CAAC;IAEM,yCAAA,CAAA,SAAA,CAAA,cAAc,GAArB,QAAA,CAAsB,IAA0B,EAAzC,CAAA;QACL,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI;IAClC,CAAC;IAEM,yCAAA,CAAA,SAAA,CAAA,KAAK,GAAZ,QAAA,CAAa,IAAiB,EAAvB,CAAA;QACL,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI;IAClC,CAAC;IAEM,yCAAA,CAAA,SAAA,CAAA,OAAO,GAAd,QAAA,CAAe,IAAmB,EAA3B,CAAA;QACL,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI;IAClC,CAAC;IAEM,yCAAA,CAAA,SAAA,CAAA,OAAO,GAAd,QAAA,CAAe,IAAmB,EAA3B,CAAA;QACL,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI;IAClC,CAAC;IAEM,yCAAA,CAAA,SAAA,CAAA,OAAO,GAAd,QAAO,GAAA,CAAA;QACL,IAAI,CAAC,iBAAiB,GAAG,IAAI;IAC/B,CAAC;IACH,MAAA,CAAA,yCAAC;AAAD,CA7FA;;;;;;;;;A,G,C,8B,0B,Q,I,Q,G,C;I,8B,G,M,C,M,I,Q,C,C,E,C;Q,G,C,G,C,C,E,C,G,C,E,C,G,S,C,M,E,C,G,C,E,C,G,C;Y,C,G,S,C,C;Y,G,C,G,C,C,I,C,C,E,E,M,C,S,C,c,C,I,C,C,E,C,G,C,C,C,I,C,C,C;Q,C;Q,M,C,C;I,C;I,M,C,8B,C,K,C,I,E,S;A,C;A,G,C,+B,0B,S,I,Q,C,O,E,U,E,C,E,S,E,C;a,K,C,K,E,C;Q,M,C,K,Y,C,G,K,G,G,C,C,C,Q,C,O,E,C;Y,O,C,K;Q,C;I,C;I,M,C,G,E,C,K,C,G,O,G,Q,C,O,E,M,E,C;iB,S,C,K,E,C;Y,G,C,C;gB,I,C,S,C,I,C,K;Y,C,C,K,E,C,E,C;gB,M,C,C;Y,C;Q,C;iB,Q,C,K,E,C;Y,G,C,C;gB,I,C,S,C,C,Q,K;Y,C,C,K,E,C,E,C;gB,M,C,C;Y,C;Q,C;iB,I,C,M,E,C;Y,M,C,I,G,O,C,M,C,K,I,K,C,M,C,K,E,I,C,S,E,Q;Q,C;Q,I,E,S,G,S,C,K,C,O,E,U,I,C,C,G,I;I,C;A,C;A,G,C,iC,0B,W,I,Q,C,O,E,I,E,C;I,G,C,C,G,C;Q,K,E,C;Q,I,E,Q,G,C;Y,E,E,C,C,C,I,C,E,K,C,C,C,C;Y,M,C,C,C,C;Q,C;Q,I,E,C,C;Q,G,E,C,C;I,C,E,C,E,C,E,C,E,C;a,I,C,C,E,C;Q,M,C,Q,C,C,E,C;Y,M,C,I,C,C;gB,C;gB,C;Y,C;Q,C;I,C;a,I,C,E,E,C;Q,E,E,C,E,K,C,G,C,S,C,C;c,C,C,G,C,C;Y,E,E,C,G,C,E,C,K,C,G,E,C,C,I,C,G,C,C,C,W,E,C,C,I,C,C,C,a,C,G,C,C,C,a,C,C,I,C,C,G,C,I,C,C,I,O,C,G,C,C,I,C,C,E,E,C,C,I,I,E,M,C,C;Y,E,E,C,G,C,E,C,E,E,G,C;gB,E,C,C,I,C;gB,C,C,K;Y,C;Y,M,C,E,C,C;gB,I,C,C;gB,I,C,C;oB,C,G,E;oB,K;gB,I,C,C;oB,C,C,K;oB,M,C,C;wB,K,E,E,C,C;wB,I,E,K;oB,C;gB,I,C,C;oB,C,C,K;oB,C,G,E,C,C;oB,E,G,C;A,yB;oB,C;oB,Q;gB,I,C,C;oB,E,G,C,C,G,C,G;oB,C,C,I,C,G;oB,Q;;oB,E,I,C,G,C,C,I,E,C,G,C,C,M,G,C,I,C,C,C,C,M,G,C,O,E,C,C,M,C,I,E,C,C,M,C,G,C;wB,C,G,C;wB,Q;oB,C;oB,E,E,E,C,C,M,C,M,C,I,E,C,C,I,C,C,C,K,E,C,C,I,C,C,C,I,C;wB,C,C,K,G,E,C,C;wB,K;oB,C;oB,E,E,E,C,C,M,C,I,C,C,K,G,C,C,C,G,C;wB,C,C,K,G,C,C,C;wB,C,G,E;wB,K;oB,C;oB,E,E,C,I,C,C,K,G,C,C,C,G,C;wB,C,C,K,G,C,C,C;wB,C,C,G,C,I,C,E;wB,K;oB,C;oB,E,E,C,C,C,G,C,C,G,C,G;oB,C,C,I,C,G;oB,Q;;Y,E,G,I,C,I,C,O,E,C;Q,C,C,K,E,C,E,C;Y,E,G,C;A,iB;gB,C;Y,C;Y,C,G,C;Q,C,Q,C;Y,C,G,C,G,C;Q,C;Q,E,E,E,C,C,I,C,E,K,C,E,C,C;Q,M,C,C;Y,K,E,E,C,C,I,E,C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","sources":["index.ts","src/PlayerAnalytics.ts","PlayerAnalytics.ts","src/utils/constants.ts","constants.ts","src/utils/Reporter.ts","Reporter.ts","src/PlayerAnalyticsConnector.ts","PlayerAnalyticsConnector.ts"],"sourcesContent":["export {\n PlayerAnalytics,\n IPlayerAnalyticsInitOptions,\n} from \"./src/PlayerAnalytics\";\n\nexport {\n PlayerAnalyticsConnector,\n IPlayerAnalyticsConnectorInitOptions,\n} from \"./src/PlayerAnalyticsConnector\";\n","import {\n PlayerAnalyticsClientModule,\n TBitrateChangedEvent,\n TBufferedEvent,\n TBufferingEvent,\n TErrorEvent,\n THeartbeatEvent,\n TInitEvent,\n TLoadedEvent,\n TLoadingEvent,\n TMetadataEvent,\n TPausedEvent,\n TPlayingEvent,\n TSeekedEvent,\n TSeekingEvent,\n TStoppedEvent,\n TWarningEvent,\n} from \"@eyevinn/player-analytics-specification\";\nimport { HEARTBEAT_INTERVAL } from \"./utils/constants\";\nimport { Reporter } from \"./utils/Reporter\";\n\nexport interface IPlayerAnalyticsInitOptions {\n sessionId?: string;\n heartbeatInterval?: number;\n}\n\nexport class PlayerAnalytics implements PlayerAnalyticsClientModule {\n private debug = false;\n private eventsinkUrl: string;\n private analyticsReporter: Reporter;\n constructor(eventsinkUrl: string, debug?: boolean) {\n this.debug = debug;\n this.eventsinkUrl = eventsinkUrl;\n }\n\n public async initiateAnalyticsReporter({\n sessionId,\n heartbeatInterval = HEARTBEAT_INTERVAL,\n }: IPlayerAnalyticsInitOptions) {\n this.analyticsReporter = new Reporter({\n sessionId,\n eventsinkUrl: this.eventsinkUrl,\n debug: this.debug,\n heartbeatInterval,\n });\n\n const { sessionId: generatedSessionId, isInitiated } =\n await this.analyticsReporter.init(sessionId);\n\n return { sessionId: generatedSessionId, heartbeatInterval, isInitiated };\n }\n\n public init(data: TInitEvent): void {\n this.analyticsReporter.send(data);\n }\n\n public metadata(data: TMetadataEvent): void {\n this.analyticsReporter.send(data);\n }\n\n public heartbeat(data: THeartbeatEvent): void {\n this.analyticsReporter.send(data);\n }\n\n public loading(data: TLoadingEvent): void {\n this.analyticsReporter.send(data);\n }\n\n public loaded(data: TLoadedEvent): void {\n this.analyticsReporter.send(data);\n }\n\n public playing(data: TPlayingEvent): void {\n this.analyticsReporter.send(data);\n }\n\n public paused(data: TPausedEvent): void {\n this.pause(data);\n }\n\n public pause(data: TPausedEvent): void {\n this.analyticsReporter.send(data);\n }\n\n public buffering(data: TBufferingEvent): void {\n this.analyticsReporter.send(data);\n }\n\n public buffered(data: TBufferedEvent): void {\n this.analyticsReporter.send(data);\n }\n\n public seeking(data: TSeekingEvent): void {\n this.analyticsReporter.send(data);\n }\n\n public seeked(data: TSeekedEvent): void {\n this.analyticsReporter.send(data);\n }\n\n public bitrateChanged(data: TBitrateChangedEvent): void {\n this.analyticsReporter.send(data);\n }\n\n public error(data: TErrorEvent): void {\n this.analyticsReporter.send(data);\n }\n\n public warning(data: TWarningEvent): void {\n this.analyticsReporter.send(data);\n }\n\n public stopped(data: TStoppedEvent): void {\n this.analyticsReporter.send(data);\n }\n\n public destroy() {\n this.analyticsReporter = null;\n }\n}\n",null,"export enum EPASEvents {\n loading = \"loading\",\n loaded = \"loaded\",\n play = \"playing\",\n resume = \"playing\",\n pause = \"paused\",\n seeking = \"seeking\",\n seeked = \"seeked\",\n buffering = \"buffering\",\n buffered = \"buffered\",\n ended = \"stopped\",\n error = \"error\",\n warning = \"warning\",\n bitratechanged = \"bitrate_changed\",\n heartbeat = \"heartbeat\",\n metadata = \"metadata\",\n}\n\nexport const HEARTBEAT_INTERVAL = 30000;\n\nimport packageJson from \"@eyevinn/player-analytics-specification/package.json\";\nexport const EPAS_VERSION = packageJson.version;\n",null,"import {\n TInitEvent,\n TPlayerAnalyticsEvent,\n} from \"@eyevinn/player-analytics-specification\";\nimport { EPAS_VERSION, HEARTBEAT_INTERVAL } from \"./constants\";\n\nexport interface IReporterOptions {\n eventsinkUrl: string;\n heartbeatInterval?: number;\n sessionId?: string;\n debug?: boolean;\n}\n\nexport interface IReporterPostOptions {\n event: string;\n timestamp: number;\n playhead: number;\n duration: number;\n}\n\nexport class Reporter {\n private debug: boolean;\n private eventsinkUrl: string;\n private sessionId?: string;\n private heartbeatInterval?: number;\n private isInitiated = false;\n\n constructor(options: IReporterOptions) {\n this.debug = options.debug;\n this.eventsinkUrl = options.eventsinkUrl;\n this.sessionId = options.sessionId;\n this.heartbeatInterval = options.heartbeatInterval || HEARTBEAT_INTERVAL;\n\n if (this.debug) {\n console.log(\"[AnalyticsReporter] Initiated AnalyticsReporter\", options);\n }\n }\n\n public async init(sessionId?: string): Promise<Record<string, any>> {\n this.sessionId = sessionId || this.sessionId;\n const data: TInitEvent = {\n event: \"init\",\n sessionId: this.sessionId,\n timestamp: Date.now(),\n playhead: -1,\n duration: -1,\n };\n if (this.debug) {\n console.log(\"[AnalyticsReporter] Init session:\", data);\n this.isInitiated = true;\n return {\n sessionId: this.sessionId,\n heartbeatInterval: this.heartbeatInterval,\n isInitiated: this.isInitiated,\n };\n } else {\n const initResponse = await fetch(`${this.eventsinkUrl}`, {\n method: \"POST\",\n mode: \"cors\",\n cache: \"no-cache\",\n headers: {\n \"Content-Type\": \"application/json; charset=utf-8\",\n \"X-EPAS-Event\": data.event,\n \"X-EPAS-Version\": EPAS_VERSION,\n },\n body: JSON.stringify(data),\n });\n if (!initResponse.ok) {\n throw new Error(\n `[AnalyticsReporter] init failed: ${initResponse.statusText}`\n );\n }\n const initResponseJson = await initResponse.json();\n\n if (!this.sessionId && !initResponseJson.sessionId) {\n throw new Error(`[AnalyticsReporter] init failed: no sessionId`);\n }\n if (initResponseJson.sessionId) {\n this.sessionId = initResponseJson.sessionId;\n }\n this.isInitiated = true;\n return {\n heartbeatInterval: this.heartbeatInterval,\n sessionId: this.sessionId,\n isInitiated: this.isInitiated,\n };\n }\n }\n\n public send(data: TPlayerAnalyticsEvent): void {\n if (!this.isInitiated)\n return console.warn(\n \"[AnalyticsReporter] Cannot report before initiation:\",\n data\n );\n const payload = {\n sessionId: this.sessionId,\n ...data,\n };\n if (this.debug) {\n console.log(\"[AnalyticsReporter] Send payload:\", payload);\n } else {\n fetch(`${this.eventsinkUrl}`, {\n method: \"POST\",\n mode: \"cors\",\n cache: \"no-cache\",\n headers: {\n \"Content-Type\": \"application/json; charset=utf-8\",\n \"X-EPAS-Event\": data.event,\n \"X-EPAS-Version\": EPAS_VERSION,\n },\n body: JSON.stringify(payload),\n });\n }\n }\n}\n",null,"import { VideoEventFilter, PlayerEvents } from \"@eyevinn/video-event-filter\";\nimport { EPASEvents } from \"./utils/constants\";\nimport { PlayerAnalytics } from \"./PlayerAnalytics\";\nimport {\n TBaseEvent,\n TBitrateChangedEventPayload,\n TErrorEventPayload,\n TMetadataEventPayload,\n UUID,\n} from \"@eyevinn/player-analytics-specification\";\n\nexport interface IPlayerAnalyticsConnectorInitOptions {\n sessionId?: string;\n heartbeatInterval?: number;\n}\n\nexport class PlayerAnalyticsConnector {\n private eventsinkUrl: string;\n private sessionId: UUID;\n private player: HTMLVideoElement;\n\n private playerAnalytics: PlayerAnalytics;\n private analyticsInitiated = false;\n\n private videoEventFilter: VideoEventFilter;\n private videoEventListener: any;\n\n private heartbeatInterval: number;\n private heartbeatIntervalTimer: ReturnType<typeof setInterval>;\n\n constructor(eventsinkUrl: string, debug?: boolean) {\n this.eventsinkUrl = eventsinkUrl;\n this.playerAnalytics = new PlayerAnalytics(this.eventsinkUrl, debug);\n }\n\n public async init(options: IPlayerAnalyticsConnectorInitOptions) {\n this.sessionId = options.sessionId;\n const { heartbeatInterval, isInitiated } =\n await this.playerAnalytics.initiateAnalyticsReporter({\n sessionId: this.sessionId,\n ...options,\n });\n\n this.analyticsInitiated = isInitiated;\n this.heartbeatInterval = heartbeatInterval;\n }\n\n public load(player: HTMLVideoElement) {\n this.player = player;\n this.playerAnalytics.loading({\n event: EPASEvents.loading,\n ...this.playbackState(),\n });\n this.initiateVideoEventFilter();\n }\n\n private initiateVideoEventFilter() {\n if (!this.player) return;\n this.videoEventFilter = new VideoEventFilter(this.player);\n this.videoEventFilter.addEventListener(\n \"*\",\n (this.videoEventListener = (event: PlayerEvents) => {\n if (!Object.keys(EPASEvents).includes(event)) return;\n let eventType;\n const extraData = {};\n if (!event) return;\n switch (event) {\n case PlayerEvents.Loaded:\n eventType = EPASEvents.loaded;\n break;\n case PlayerEvents.Loading:\n eventType = EPASEvents.loading;\n break;\n case PlayerEvents.Play:\n case PlayerEvents.Resume:\n eventType = EPASEvents.play;\n this.startInterval();\n break;\n case PlayerEvents.Pause:\n eventType = EPASEvents.pause;\n break;\n case PlayerEvents.Seeking:\n eventType = EPASEvents.seeking;\n break;\n case PlayerEvents.Seeked:\n eventType = EPASEvents.seeked;\n break;\n case PlayerEvents.Buffering:\n eventType = EPASEvents.buffering;\n break;\n case PlayerEvents.Buffered:\n eventType = EPASEvents.buffered;\n break;\n case PlayerEvents.Ended:\n eventType = EPASEvents.ended;\n (extraData as any).reason = \"ended\";\n this.stopInterval();\n break;\n case PlayerEvents.Error:\n eventType = EPASEvents.error;\n (extraData as any).reason = \"error\";\n this.stopInterval();\n break;\n default:\n break;\n }\n if (!this.analyticsInitiated) {\n console.warn(\"[PlayerAnalyticsConnector] Analytics not initiated\");\n return;\n }\n this.playerAnalytics[eventType]({\n event: eventType,\n ...this.playbackState(),\n ...(Object.keys(extraData).length > 0 && { payload: extraData }),\n });\n })\n );\n }\n\n private startInterval() {\n if (this.heartbeatIntervalTimer) return;\n this.heartbeatIntervalTimer = setInterval(() => {\n this.playerAnalytics.heartbeat({\n event: EPASEvents.heartbeat,\n ...this.playbackState(),\n });\n }, this.heartbeatInterval);\n }\n\n private stopInterval() {\n clearInterval(this.heartbeatIntervalTimer);\n }\n\n public reportBitrateChange(payload: TBitrateChangedEventPayload) {\n if (!this.analyticsInitiated) {\n console.warn(\"[PlayerAnalyticsConnector] Analytics not initiated\");\n return;\n }\n this.playerAnalytics.bitrateChanged({\n event: EPASEvents.bitratechanged,\n ...this.playbackState(),\n payload,\n });\n }\n\n public reportStop() {\n if (!this.analyticsInitiated) {\n console.warn(\"[PlayerAnalyticsConnector] Analytics not initiated\");\n return;\n }\n this.playerAnalytics.stopped({\n event: EPASEvents.ended,\n ...this.playbackState(),\n payload: { reason: \"aborted\" },\n });\n this.stopInterval();\n }\n\n public reportError(error: TErrorEventPayload) {\n if (!this.analyticsInitiated) {\n console.warn(\"[PlayerAnalyticsConnector] Analytics not initiated\");\n return;\n }\n this.playerAnalytics.error({\n event: EPASEvents.error,\n ...this.playbackState(),\n payload: error,\n });\n this.playerAnalytics.stopped({\n event: EPASEvents.ended,\n ...this.playbackState(),\n payload: { reason: \"error\" },\n });\n this.stopInterval();\n }\n\n public reportMetadata(payload: TMetadataEventPayload) {\n if (!this.analyticsInitiated) {\n console.warn(\"[PlayerAnalyticsConnector] Analytics not initiated\");\n return;\n }\n this.playerAnalytics.metadata({\n event: EPASEvents.metadata,\n ...this.playbackState(),\n payload,\n });\n }\n\n public reportWarning(payload: TErrorEventPayload) {\n if (!this.analyticsInitiated) {\n console.warn(\"[PlayerAnalyticsConnector] Analytics not initiated\");\n return;\n }\n this.playerAnalytics.warning({\n event: EPASEvents.warning,\n ...this.playbackState(),\n payload,\n });\n }\n\n private playbackState(): TBaseEvent {\n const duration =\n this.player?.duration &&\n this.player?.duration !== Infinity &&\n this.player?.duration > 0\n ? this.player.duration\n : -1;\n const playhead =\n this.player?.currentTime && duration !== -1\n ? this.player?.currentTime\n : -1;\n return {\n sessionId: this.sessionId,\n timestamp: Date.now(),\n playhead,\n duration,\n };\n }\n\n public deinit() {\n if (!this.analyticsInitiated) {\n console.warn(\"[PlayerAnalyticsConnector] Analytics not initiated\");\n return;\n }\n this.stopInterval();\n this.heartbeatInterval = null;\n this.videoEventFilter &&\n this.videoEventFilter.removeEventListener(\"*\", this.videoEventListener);\n this.videoEventFilter = null;\n }\n\n public destroy() {\n if (!this.analyticsInitiated) {\n console.warn(\"[PlayerAnalyticsConnector] Analytics not initiated\");\n return;\n }\n this.playerAnalytics.destroy();\n this.heartbeatInterval = null;\n this.videoEventFilter &&\n this.videoEventFilter.removeEventListener(\"*\", this.videoEventListener);\n this.stopInterval();\n }\n}\n",null],"names":[],"version":3,"file":"index.js.map"}
1
+ {"mappings":";;;;;;;;;;;;;;;;;;AEAO,GAAA,CAAM,yCAAkB,GAAG,KAAK;AAGhC,GAAA,CAAM,yCAAY,GAAG,+EAAW,CAAC,OAAO;;;;;;;A,G,C,8B,0B,Q,I,Q,G,C;I,8B,G,M,C,M,I,Q,C,C,E,C;Q,G,C,G,C,C,E,C,G,C,E,C,G,S,C,M,E,C,G,C,E,C,G,C;Y,C,G,S,C,C;Y,G,C,G,C,C,I,C,C,E,E,M,C,S,C,c,C,I,C,C,E,C,G,C,C,C,I,C,C,C;Q,C;Q,M,C,C;I,C;I,M,C,8B,C,K,C,I,E,S;A,C;A,G,C,+B,0B,S,I,Q,C,O,E,U,E,C,E,S,E,C;a,K,C,K,E,C;Q,M,C,K,Y,C,G,K,G,G,C,C,C,Q,C,O,E,C;Y,O,C,K;Q,C;I,C;I,M,C,G,E,C,K,C,G,O,G,Q,C,O,E,M,E,C;iB,S,C,K,E,C;Y,G,C,C;gB,I,C,S,C,I,C,K;Y,C,C,K,E,C,E,C;gB,M,C,C;Y,C;Q,C;iB,Q,C,K,E,C;Y,G,C,C;gB,I,C,S,C,C,Q,K;Y,C,C,K,E,C,E,C;gB,M,C,C;Y,C;Q,C;iB,I,C,M,E,C;Y,M,C,I,G,O,C,M,C,K,I,K,C,M,C,K,E,I,C,S,E,Q;Q,C;Q,I,E,S,G,S,C,K,C,O,E,U,I,C,C,G,I;I,C;A,C;A,G,C,iC,0B,W,I,Q,C,O,E,I,E,C;I,G,C,C,G,C;Q,K,E,C;Q,I,E,Q,G,C;Y,E,E,C,C,C,I,C,E,K,C,C,C,C;Y,M,C,C,C,C;Q,C;Q,I,E,C,C;Q,G,E,C,C;I,C,E,C,E,C,E,C,E,C;a,I,C,C,E,C;Q,M,C,Q,C,C,E,C;Y,M,C,I,C,C;gB,C;gB,C;Y,C;Q,C;I,C;a,I,C,E,E,C;Q,E,E,C,E,K,C,G,C,S,C,C;c,C,C,G,C,C;Y,E,E,C,G,C,E,C,K,C,G,E,C,C,I,C,G,C,C,C,W,E,C,C,I,C,C,C,a,C,G,C,C,C,a,C,C,I,C,C,G,C,I,C,C,I,O,C,G,C,C,I,C,C,E,E,C,C,I,I,E,M,C,C;Y,E,E,C,G,C,E,C,E,E,G,C;gB,E,C,C,I,C;gB,C,C,K;Y,C;Y,M,C,E,C,C;gB,I,C,C;gB,I,C,C;oB,C,G,E;oB,K;gB,I,C,C;oB,C,C,K;oB,M,C,C;wB,K,E,E,C,C;wB,I,E,K;oB,C;gB,I,C,C;oB,C,C,K;oB,C,G,E,C,C;oB,E,G,C;A,yB;oB,C;oB,Q;gB,I,C,C;oB,E,G,C,C,G,C,G;oB,C,C,I,C,G;oB,Q;;oB,E,I,C,G,C,C,I,E,C,G,C,C,M,G,C,I,C,C,C,C,M,G,C,O,E,C,C,M,C,I,E,C,C,M,C,G,C;wB,C,G,C;wB,Q;oB,C;oB,E,E,E,C,C,M,C,M,C,I,E,C,C,I,C,C,C,K,E,C,C,I,C,C,C,I,C;wB,C,C,K,G,E,C,C;wB,K;oB,C;oB,E,E,E,C,C,M,C,I,C,C,K,G,C,C,C,G,C;wB,C,C,K,G,C,C,C;wB,C,G,E;wB,K;oB,C;oB,E,E,C,I,C,C,K,G,C,C,C,G,C;wB,C,C,K,G,C,C,C;wB,C,C,G,C,I,C,E;wB,K;oB,C;oB,E,E,C,C,C,G,C,C,G,C,G;oB,C,C,I,C,G;oB,Q;;Y,E,G,I,C,I,C,O,E,C;Q,C,C,K,E,C,E,C;Y,E,G,C;A,iB;gB,C;Y,C;Y,C,G,C;Q,C,Q,C;Y,C,G,C,G,C;Q,C;Q,E,E,E,C,C,I,C,E,K,C,E,C,C;Q,M,C,C;Y,K,E,E,C,C,I,E,C,C,I,I,C,C;Y,I,E,I;Q,C;I,C;I,M,C,C,G,C;Q,I,E,I,C,C;Q,C,Q,I,C,C;Q,C,S,I,C,C;I,C,E,M,C,M,K,C,c,C,C,M,C,Q,I,Q,G,C;Q,M,C,I;I,C,G,C;A,C;ACkB/C,GAAA,CAAA,yCAAA,GAAA,QAAA,GAAA,CAAA;aAQE,yCAAA,CAAY,OAAyB,EAArC,CAAA;QAFQ,IAAA,CAAA,WAAW,GAAG,KAAK;QAGzB,IAAI,CAAC,KAAK,GAAG,OAAO,CAAC,KAAK;QAC1B,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,OAAO;QAC9B,IAAI,CAAC,YAAY,GAAG,OAAO,CAAC,YAAY;QACxC,IAAI,CAAC,SAAS,GAAG,OAAO,CAAC,SAAS;QAClC,IAAI,CAAC,iBAAiB,GAAG,OAAO,CAAC,iBAAiB,IAAI,yCAAkB;QAExE,EAAA,EAAI,IAAI,CAAC,KAAK,EACZ,OAAO,CAAC,GAAG,CAAC,CAAiD,kDAAE,OAAO;IAE1E,CAAC;IAEY,yCAAA,CAAA,SAAA,CA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AM;YACZ,KAAK,EAAE,CAAU;YACjB,OAAO,EAAE,CAAT;gBACE,CAAc,eAAE,CAAiC;gBACjD,CAAc,eAAE,IAAI,CAAC,KAAK;gBAC1B,CAAgB,iBAAE,yCAAY;YAC/B,CAAA;YACD,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO;QAC7B,CAAA;IAEL,CAAC;IACH,MAAA,CAAA,yCAAC;AAAD,CAnGA;;;A,G,C,+B,0B,S,I,Q,C,O,E,U,E,C,E,S,E,C;a,K,C,K,E,C;Q,M,C,K,Y,C,G,K,G,G,C,C,C,Q,C,O,E,C;Y,O,C,K;Q,C;I,C;I,M,C,G,E,C,K,C,G,O,G,Q,C,O,E,M,E,C;iB,S,C,K,E,C;Y,G,C,C;gB,I,C,S,C,I,C,K;Y,C,C,K,E,C,E,C;gB,M,C,C;Y,C;Q,C;iB,Q,C,K,E,C;Y,G,C,C;gB,I,C,S,C,C,Q,K;Y,C,C,K,E,C,E,C;gB,M,C,C;Y,C;Q,C;iB,I,C,M,E,C;Y,M,C,I,G,O,C,M,C,K,I,K,C,M,C,K,E,I,C,S,E,Q;Q,C;Q,I,E,S,G,S,C,K,C,O,E,U,I,C,C,G,I;I,C;A,C;A,G,C,iC,0B,W,I,Q,C,O,E,I,E,C;I,G,C,C,G,C;Q,K,E,C;Q,I,E,Q,G,C;Y,E,E,C,C,C,I,C,E,K,C,C,C,C;Y,M,C,C,C,C;Q,C;Q,I,E,C,C;Q,G,E,C,C;I,C,E,C,E,C,E,C,E,C;a,I,C,C,E,C;Q,M,C,Q,C,C,E,C;Y,M,C,I,C,C;gB,C;gB,C;Y,C;Q,C;I,C;a,I,C,E,E,C;Q,E,E,C,E,K,C,G,C,S,C,C;c,C,C,G,C,C;Y,E,E,C,G,C,E,C,K,C,G,E,C,C,I,C,G,C,C,C,W,E,C,C,I,C,C,C,a,C,G,C,C,C,a,C,C,I,C,C,G,C,I,C,C,I,O,C,G,C,C,I,C,C,E,E,C,C,I,I,E,M,C,C;Y,E,E,C,G,C,E,C,E,E,G,C;gB,E,C,C,I,C;gB,C,C,K;Y,C;Y,M,C,E,C,C;gB,I,C,C;gB,I,C,C;oB,C,G,E;oB,K;gB,I,C,C;oB,C,C,K;oB,M,C,C;wB,K,E,E,C,C;wB,I,E,K;oB,C;gB,I,C,C;oB,C,C,K;oB,C,G,E,C,C;oB,E,G,C;A,yB;oB,C;oB,Q;gB,I,C,C;oB,E,G,C,C,G,C,G;oB,C,C,I,C,G;oB,Q;;oB,E,I,C,G,C,C,I,E,C,G,C,C,M,G,C,I,C,C,C,C,M,G,C,O,E,C,C,M,C,I,E,C,C,M,C,G,C;wB,C,G,C;wB,Q;oB,C;oB,E,E,E,C,C,M,C,M,C,I,E,C,C,I,C,C,C,K,E,C,C,I,C,C,C,I,C;wB,C,C,K,G,E,C,C;wB,K;oB,C;oB,E,E,E,C,C,M,C,I,C,C,K,G,C,C,C,G,C;wB,C,C,K,G,C,C,C;wB,C,G,E;wB,K;oB,C;oB,E,E,C,I,C,C,K,G,C,C,C,G,C;wB,C,C,K,G,C,C,C;wB,C,C,G,C,I,C,E;wB,K;oB,C;oB,E,E,C,C,C,G,C,C,G,C,G;oB,C,C,I,C,G;oB,Q;;Y,E,G,I,C,I,C,O,E,C;Q,C,C,K,E,C,E,C;Y,E,G,C;A,iB;gB,C;Y,C;Y,C,G,C;Q,C,Q,C;Y,C,G,C,G,C;Q,C;Q,E,E,E,C,C,I,C,E,K,C,E,C,C;Q,M,C,C;Y,K,E,E,C,C,I,E,C,C,I,I,C,C;Y,I,E,I;Q,C;I,C;I,M,C,C,G,C;Q,I,E,I,C,C;Q,C,Q,I,C,C;Q,C,S,I,C,C;I,C,E,M,C,M,K,C,c,C,C,M,C,Q,I,Q,G,C;Q,M,C,I;I,C,G,C;A,C;AFMA,GAAA,CAAA,yCAAA,GAAA,QAAA,GAAA,CAAA;aAIE,yCAAA,CAAY,YAAoB,EAAE,KAAe,EAAjD,CAAA;QAHQ,IAAA,CAAA,KAAK,GAAG,KAAK;QAInB,IAAI,CAAC,KAAK,GAAG,KAAK;QAClB,IAAI,CAAC,YAAY,GAAG,YAAY;IAClC,CAAC;IAEY,yCAAA,CAAA,SAAA,CAAA,yBAAyB,GAAtC,QAAA,CAAuC,EAIT,EAJjB,CAAA;QACX,GAAA,CAAA,SAAS,GAAA,EAAA,CAAA,SAAA,EACT,OAAO,GAAA,EAAA,CAAA,OAAA,EACP,EAAA,GAAA,EAAA,CAAA,iBAAsC,EAAtC,iBAAiB,GAAA,EAAA,KAAA,IAAA,CAAA,CAAA,GAAG,yCAAkB,GAAA,EAAA;Q,M,C,+B,C,I,E,I,C,C,E,I,C,C,E,Q,G,C;Y,G,C,E,E,kB,E,W;Y,M,C,iC,C,I,E,Q,C,E,E,C;gB,M,C,E,C,K;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CAAA,OAAO,GAAd,QAAO,GAAA,CAAA;QACL,IAAI,CAAC,iBAAiB,GAAG,IAAI;IAC/B,CAAC;IACH,MAAA,CAAA,yCAAC;AAAD,CA3FA;;;;;;;;A,G,C,8B,0B,Q,I,Q,G,C;I,8B,G,M,C,M,I,Q,C,C,E,C;Q,G,C,G,C,C,E,C,G,C,E,C,G,S,C,M,E,C,G,C,E,C,G,C;Y,C,G,S,C,C;Y,G,C,G,C,C,I,C,C,E,E,M,C,S,C,c,C,I,C,C,E,C,G,C,C,C,I,C,C,C;Q,C;Q,M,C,C;I,C;I,M,C,8B,C,K,C,I,E,S;A,C;A,G,C,+B,0B,S,I,Q,C,O,E,U,E,C,E,S,E,C;a,K,C,K,E,C;Q,M,C,K,Y,C,G,K,G,G,C,C,C,Q,C,O,E,C;Y,O,C,K;Q,C;I,C;I,M,C,G,E,C,K,C,G,O,G,Q,C,O,E,M,E,C;iB,S,C,K,E,C;Y,G,C,C;gB,I,C,S,C,I,C,K;Y,C,C,K,E,C,E,C;gB,M,C,C;Y,C;Q,C;iB,Q,C,K,E,C;Y,G,C,C;gB,I,C,S,C,C,Q,K;Y,C,C,K,E,C,E,C;gB,M,C,C;Y,C;Q,C;iB,I,C,M,E,C;Y,M,C,I,G,O,C,M,C,K,I,K,C,M,C,K,E,I,C,S,E,Q;Q,C;Q,I,E,S,G,S,C,K,C,O,E,U,I,C,C,G,I;I,C;A,C;A,G,C,iC,0B,W,I,Q,C,O,E,I,E,C;I,G,C,C,G,C;Q,K,E,C;Q,I,E,Q,G,C;Y,E,E,C,C,C,I,C,E,K,C,C,C,C;Y,M,C,C,C,C;Q,C;Q,I,E,C,C;Q,G,E,C,C;I,C,E,C,E,C,E,C,E,C;a,I,C,C,E,C;Q,M,C,Q,C,C,E,C;Y,M,C,I,C,C;gB,C;gB,C;Y,C;Q,C;I,C;a,I,C,E,E,C;Q,E,E,C,E,K,C,G,C,S,C,C;c,C,C,G,C,C;Y,E,E,C,G,C,E,C,K,C,G,E,C,C,I,C,G,C,C,C,W,E,C,C,I,C,C,C,a,C,G,C,C,C,a,C,C,I,C,C,G,C,I,C,C,I,O,C,G,C,C,I,C,C,E,E,C,C,I,I,E,M,C,C;Y,E,E,C,G,C,E,C,E,E,G,C;gB,E,C,C,I,C;gB,C,C,K;Y,C;Y,M,C,E,C,C;gB,I,C,C;gB,I,C,C;oB,C,G,E;oB,K;gB,I,C,C;oB,C,C,K;oB,M,C,C;wB,K,E,E,C,C;wB,I,E,K;oB,C;gB,I,C,C;oB,C,C,K;oB,C,G,E,C,C;oB,E,G,C;A,yB;oB,C;oB,Q;gB,I,C,C;oB,E,G,C,C,G,C,G;oB,C,C,I,C,G;oB,Q;;oB,E,I,C,G,C,C,I,E,C,G,C,C,M,G,C,I,C,C,C,C,M,G,C,O,E,C,C,M,C,I,E,C,C,M,C,G,C;wB,C,G,C;wB,Q;oB,C;oB,E,E,E,C,C,M,C,M,C,I,E,C,C,I,C,C,C,K,E,C,C,I,C,C,C,I,C;wB,C,C,K,G,E,C,C;wB,K;oB,C;oB,E,E,E,C,C,M,C,I,C,C,K,G,C,C,C,G,C;wB,C,C,K,G,C,C,C;wB,C,G,E;wB,K;oB,C;oB,E,E,C,I,C,C,K,G,C,C,C,G,C;wB,C,C,K,G,C,C,C;wB,C,C,G,C,I,C,E;wB,K;oB,C;oB,E,E,C,C,C,G,C,C,G,C,G;oB,C,C,I,C,G;oB,Q;;Y,E,G,I,C,I,C,O,E,C;Q,C,C,K,E,C,E,C;Y,E,G,C;A,iB;gB,C;Y,C;Y,C,G,C;Q,C,Q,C;Y,C,G,C,G,C;Q,C;Q,E,E,E,C,C,I,C,E,K,C,E,C,C;Q,M,C,C;Y,K,E,E,C,C,I,E,C,C,I,I,C,C;Y,I,E,I;Q,C;I,C;I,M,C,C,G,C;Q,I,E,I,C,C;Q,C,Q,I,C,C;Q,C,S,I,C,C;I,C,E,M,C,M,K,C,c,C,C,M,C,Q,I,Q,G,C;Q,M,C,I;I,C,G,C;A,C;AGNA,GAAA,CAAA,yCAAA,GAAA,QAAA,GAAA,CAAA;aAcE,yCAAA,CAAY,YAAoB,EAAE,KAAe,EAAjD,CAAA;QARQ,IAAA,CAAA,kBAAkB,GAAG,KAAK;QAShC,IAAI,CAAC,YAAY,GAAG,YAAY;QAChC,IAAI,CAAC,eAAe,GAAG,GAAA,CAAI,yCAAe,CAAC,IAAI,CAAC,YAAY,EAAE,KAAK;IACrE,CAAC;IAEY,yCAAA,CAAA,SAAA,CAAA,IAAI,GAAjB,QAAA,CAAkB,OAA6C,EAAlD,CAAA;Q,M,C,+B,C,I,E,I,C,C,E,I,C,C,E,Q,G,C;Y,G,C,E,E,iB,E,W;Y,M,C,iC,C,I,E,Q,C,E,E,C;gB,M,C,E,C,K;oB,I,C,C;wBACX,IAAI,CAAC,SAAS,GAAG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","sources":["index.ts","src/PlayerAnalytics.ts","src/utils/constants.ts","src/utils/Reporter.ts","src/PlayerAnalyticsConnector.ts"],"sourcesContent":["export {\n PlayerAnalytics,\n IPlayerAnalyticsInitOptions,\n} from \"./src/PlayerAnalytics\";\n\nexport {\n PlayerAnalyticsConnector,\n IPlayerAnalyticsConnectorInitOptions,\n} from \"./src/PlayerAnalyticsConnector\";\n","import {\n PlayerAnalyticsClientModule,\n TBitrateChangedEvent,\n TBufferedEvent,\n TBufferingEvent,\n TErrorEvent,\n THeartbeatEvent,\n TInitEvent,\n TLoadedEvent,\n TLoadingEvent,\n TMetadataEvent,\n TPausedEvent,\n TPlayingEvent,\n TSeekedEvent,\n TSeekingEvent,\n TStoppedEvent,\n TWarningEvent,\n} from \"@eyevinn/player-analytics-specification\";\nimport { HEARTBEAT_INTERVAL } from \"./utils/constants\";\nimport { Reporter } from \"./utils/Reporter\";\n\nexport interface IPlayerAnalyticsInitOptions {\n sessionId?: string;\n shardId?: string;\n heartbeatInterval?: number;\n}\n\nexport class PlayerAnalytics implements PlayerAnalyticsClientModule {\n private debug = false;\n private eventsinkUrl: string;\n private analyticsReporter: Reporter;\n constructor(eventsinkUrl: string, debug?: boolean) {\n this.debug = debug;\n this.eventsinkUrl = eventsinkUrl;\n }\n\n public async initiateAnalyticsReporter({\n sessionId,\n shardId,\n heartbeatInterval = HEARTBEAT_INTERVAL,\n }: IPlayerAnalyticsInitOptions) {\n this.analyticsReporter = new Reporter({\n sessionId,\n eventsinkUrl: this.eventsinkUrl,\n debug: this.debug,\n heartbeatInterval,\n shardId,\n });\n\n const { sessionId: generatedSessionId, isInitiated } =\n await this.analyticsReporter.init(sessionId);\n\n return { sessionId: generatedSessionId, heartbeatInterval, isInitiated };\n }\n\n public init(data: TInitEvent): void {\n this.analyticsReporter.send(data);\n }\n\n public metadata(data: TMetadataEvent): void {\n this.analyticsReporter.send(data);\n }\n\n public heartbeat(data: THeartbeatEvent): void {\n this.analyticsReporter.send(data);\n }\n\n public loading(data: TLoadingEvent): void {\n this.analyticsReporter.send(data);\n }\n\n public loaded(data: TLoadedEvent): void {\n this.analyticsReporter.send(data);\n }\n\n public playing(data: TPlayingEvent): void {\n this.analyticsReporter.send(data);\n }\n\n public pause(data: TPausedEvent): void {\n this.analyticsReporter.send(data);\n }\n\n public buffering(data: TBufferingEvent): void {\n this.analyticsReporter.send(data);\n }\n\n public buffered(data: TBufferedEvent): void {\n this.analyticsReporter.send(data);\n }\n\n public seeking(data: TSeekingEvent): void {\n this.analyticsReporter.send(data);\n }\n\n public seeked(data: TSeekedEvent): void {\n this.analyticsReporter.send(data);\n }\n\n public bitrateChanged(data: TBitrateChangedEvent): void {\n this.analyticsReporter.send(data);\n }\n\n public error(data: TErrorEvent): void {\n this.analyticsReporter.send(data);\n }\n\n public warning(data: TWarningEvent): void {\n this.analyticsReporter.send(data);\n }\n\n public stopped(data: TStoppedEvent): void {\n this.analyticsReporter.send(data);\n }\n\n public destroy() {\n this.analyticsReporter = null;\n }\n}\n","export const HEARTBEAT_INTERVAL = 30000;\n\nimport packageJson from \"@eyevinn/player-analytics-specification/package.json\";\nexport const EPAS_VERSION = packageJson.version;\n","import {\n TInitEvent,\n TPlayerAnalyticsEvent,\n} from \"@eyevinn/player-analytics-specification\";\nimport { EPAS_VERSION, HEARTBEAT_INTERVAL } from \"./constants\";\n\nexport interface IReporterOptions {\n eventsinkUrl: string;\n heartbeatInterval?: number;\n sessionId?: string;\n shardId?: string;\n debug?: boolean;\n}\n\nexport interface IReporterPostOptions {\n event: string;\n timestamp: number;\n playhead: number;\n duration: number;\n}\n\nexport class Reporter {\n private debug: boolean;\n private eventsinkUrl: string;\n private sessionId?: string;\n private shardId?: string;\n private heartbeatInterval?: number;\n private isInitiated = false;\n\n constructor(options: IReporterOptions) {\n this.debug = options.debug;\n this.shardId = options.shardId;\n this.eventsinkUrl = options.eventsinkUrl;\n this.sessionId = options.sessionId;\n this.heartbeatInterval = options.heartbeatInterval || HEARTBEAT_INTERVAL;\n\n if (this.debug) {\n console.log(\"[AnalyticsReporter] Initiated AnalyticsReporter\", options);\n }\n }\n\n public async init(sessionId?: string): Promise<Record<string, any>> {\n this.sessionId = sessionId || this.sessionId;\n const data: TInitEvent = {\n event: \"init\",\n sessionId: this.sessionId,\n shardId: this.shardId,\n timestamp: Date.now(),\n playhead: -1,\n duration: -1,\n };\n if (this.debug) {\n console.log(\"[AnalyticsReporter] Init session:\", data);\n this.isInitiated = true;\n return {\n sessionId: this.sessionId,\n heartbeatInterval: this.heartbeatInterval,\n isInitiated: this.isInitiated,\n };\n } else {\n const initResponse = await fetch(`${this.eventsinkUrl}`, {\n method: \"POST\",\n mode: \"cors\",\n cache: \"no-cache\",\n headers: {\n \"Content-Type\": \"application/json; charset=utf-8\",\n \"X-EPAS-Event\": data.event,\n \"X-EPAS-Version\": EPAS_VERSION,\n },\n body: JSON.stringify(data),\n });\n if (!initResponse.ok) {\n throw new Error(\n `[AnalyticsReporter] init failed: ${initResponse.statusText}`\n );\n }\n const initResponseJson = await initResponse.json();\n\n if (!this.sessionId && !initResponseJson.sessionId) {\n throw new Error(`[AnalyticsReporter] init failed: no sessionId`);\n }\n if (initResponseJson.sessionId) {\n this.sessionId = initResponseJson.sessionId;\n }\n this.isInitiated = true;\n return {\n heartbeatInterval: this.heartbeatInterval,\n sessionId: this.sessionId,\n isInitiated: this.isInitiated,\n };\n }\n }\n\n public send(data: TPlayerAnalyticsEvent): void {\n if (!this.isInitiated)\n return console.warn(\n \"[AnalyticsReporter] Cannot report before initiation:\",\n data\n );\n const payload = {\n sessionId: this.sessionId,\n shardId: this.shardId,\n ...data,\n };\n if (this.debug) {\n console.log(\"[AnalyticsReporter] Send payload:\", payload);\n } else {\n fetch(`${this.eventsinkUrl}`, {\n method: \"POST\",\n mode: \"cors\",\n cache: \"no-cache\",\n headers: {\n \"Content-Type\": \"application/json; charset=utf-8\",\n \"X-EPAS-Event\": data.event,\n \"X-EPAS-Version\": EPAS_VERSION,\n },\n body: JSON.stringify(payload),\n });\n }\n }\n}\n","import {\n getMediaEventFilter,\n FilteredMediaEvent,\n TMediaEventFilter,\n} from \"@eyevinn/media-event-filter\";\nimport { PlayerAnalytics } from \"./PlayerAnalytics\";\nimport {\n TBaseEvent,\n TBitrateChangedEventPayload,\n TErrorEventPayload,\n TEventType,\n TMetadataEventPayload,\n UUID,\n} from \"@eyevinn/player-analytics-specification\";\n\nexport interface IPlayerAnalyticsConnectorInitOptions {\n sessionId?: string;\n heartbeatInterval?: number;\n shardId?: string;\n}\n\nexport class PlayerAnalyticsConnector {\n private eventsinkUrl: string;\n private sessionId: UUID;\n private player: HTMLVideoElement;\n\n private playerAnalytics: PlayerAnalytics;\n private analyticsInitiated = false;\n\n private videoEventFilter: TMediaEventFilter;\n private videoEventListener: any;\n\n private heartbeatInterval: number;\n private heartbeatIntervalTimer: ReturnType<typeof setInterval>;\n\n constructor(eventsinkUrl: string, debug?: boolean) {\n this.eventsinkUrl = eventsinkUrl;\n this.playerAnalytics = new PlayerAnalytics(this.eventsinkUrl, debug);\n }\n\n public async init(options: IPlayerAnalyticsConnectorInitOptions) {\n this.sessionId = options.sessionId;\n const { heartbeatInterval, isInitiated } =\n await this.playerAnalytics.initiateAnalyticsReporter({\n sessionId: this.sessionId,\n shardId: options.shardId,\n ...options,\n });\n\n this.analyticsInitiated = isInitiated;\n this.heartbeatInterval = heartbeatInterval;\n }\n\n public load(player: HTMLVideoElement) {\n this.player = player;\n this.playerAnalytics.loading({\n event: \"loading\",\n ...this.playbackState(),\n });\n this.initiateVideoEventFilter();\n }\n\n private initiateVideoEventFilter() {\n if (!this.player) return;\n this.videoEventFilter = getMediaEventFilter({\n mediaElement: this.player,\n mp4Mode: false,\n callback: (event: FilteredMediaEvent) => {\n let eventType: TEventType;\n const extraData = {};\n switch (event) {\n case FilteredMediaEvent.LOADED:\n eventType = \"loaded\";\n break;\n case FilteredMediaEvent.PLAYING:\n eventType = \"playing\";\n this.startInterval();\n break;\n case FilteredMediaEvent.PAUSE:\n eventType = \"paused\";\n break;\n case FilteredMediaEvent.SEEKING:\n eventType = \"seeking\";\n break;\n case FilteredMediaEvent.SEEKED:\n eventType = \"seeked\";\n break;\n case FilteredMediaEvent.BUFFERING:\n eventType = \"buffering\";\n break;\n case FilteredMediaEvent.BUFFERED:\n eventType = \"buffered\";\n break;\n case FilteredMediaEvent.ENDED:\n eventType = \"stopped\";\n extraData[\"reason\"] = \"ended\";\n this.stopInterval();\n break;\n default:\n break;\n }\n try {\n if (!this.analyticsInitiated) {\n console.warn(\"[PlayerAnalyticsConnector] Analytics not initiated\");\n return;\n }\n if (eventType) {\n this.playerAnalytics[eventType == \"paused\" ? \"pause\" : eventType]({\n event: eventType,\n ...this.playbackState(),\n ...(Object.keys(extraData).length > 0 && { payload: extraData }),\n });\n }\n } catch (err) {\n console.error(err);\n }\n },\n });\n }\n\n private startInterval() {\n if (this.heartbeatIntervalTimer) return;\n this.heartbeatIntervalTimer = setInterval(() => {\n this.playerAnalytics.heartbeat({\n event: \"heartbeat\",\n ...this.playbackState(),\n });\n }, this.heartbeatInterval);\n }\n\n private stopInterval() {\n clearInterval(this.heartbeatIntervalTimer);\n }\n\n public reportBitrateChange(payload: TBitrateChangedEventPayload) {\n if (!this.analyticsInitiated) {\n console.warn(\"[PlayerAnalyticsConnector] Analytics not initiated\");\n return;\n }\n this.playerAnalytics.bitrateChanged({\n event: \"bitrate_changed\",\n ...this.playbackState(),\n payload,\n });\n }\n\n public reportStop() {\n if (!this.analyticsInitiated) {\n console.warn(\"[PlayerAnalyticsConnector] Analytics not initiated\");\n return;\n }\n this.playerAnalytics.stopped({\n event: \"stopped\",\n ...this.playbackState(),\n payload: { reason: \"aborted\" },\n });\n this.stopInterval();\n }\n\n public reportError(error: TErrorEventPayload) {\n if (!this.analyticsInitiated) {\n console.warn(\"[PlayerAnalyticsConnector] Analytics not initiated\");\n return;\n }\n this.playerAnalytics.error({\n event: \"error\",\n ...this.playbackState(),\n payload: error,\n });\n this.playerAnalytics.stopped({\n event: \"stopped\",\n ...this.playbackState(),\n payload: { reason: \"error\" },\n });\n this.stopInterval();\n }\n\n public reportMetadata(payload: TMetadataEventPayload) {\n if (!this.analyticsInitiated) {\n console.warn(\"[PlayerAnalyticsConnector] Analytics not initiated\");\n return;\n }\n this.playerAnalytics.metadata({\n event: \"metadata\",\n ...this.playbackState(),\n payload,\n });\n }\n\n public reportWarning(payload: TErrorEventPayload) {\n if (!this.analyticsInitiated) {\n console.warn(\"[PlayerAnalyticsConnector] Analytics not initiated\");\n return;\n }\n this.playerAnalytics.warning({\n event: \"warning\",\n ...this.playbackState(),\n payload,\n });\n }\n\n private playbackState(): TBaseEvent {\n const duration =\n this.player?.duration &&\n this.player?.duration !== Infinity &&\n this.player?.duration > 0\n ? this.player.duration\n : -1;\n const playhead =\n this.player?.currentTime && duration !== -1\n ? this.player?.currentTime\n : -1;\n return {\n sessionId: this.sessionId,\n timestamp: Date.now(),\n playhead,\n duration,\n };\n }\n\n public deinit() {\n if (!this.analyticsInitiated) {\n console.warn(\"[PlayerAnalyticsConnector] Analytics not initiated\");\n return;\n }\n this.stopInterval();\n this.heartbeatInterval = null;\n this.videoEventFilter && this.videoEventFilter.teardown();\n this.videoEventFilter = null;\n }\n\n public destroy() {\n if (!this.analyticsInitiated) {\n console.warn(\"[PlayerAnalyticsConnector] Analytics not initiated\");\n return;\n }\n this.playerAnalytics.destroy();\n this.heartbeatInterval = null;\n this.videoEventFilter && this.videoEventFilter.teardown();\n this.stopInterval();\n }\n}\n"],"names":[],"version":3,"file":"index.js.map"}