@scarlett-player/analytics 0.5.1 → 0.5.3

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.cjs CHANGED
@@ -347,7 +347,8 @@ function createAnalyticsPlugin(config) {
347
347
  const duration = nextTime - b.time;
348
348
  return sum + b.bitrate * duration;
349
349
  }, 0);
350
- session.avgBitrate = Math.round(totalBitrateTime / session.watchTime);
350
+ const timeSpan = now - session.bitrateHistory[0].time;
351
+ session.avgBitrate = timeSpan > 0 ? Math.round(totalBitrateTime / timeSpan) : 0;
351
352
  }
352
353
  const state = {
353
354
  currentTime: api.getState("currentTime"),
@@ -476,6 +477,9 @@ function createAnalyticsPlugin(config) {
476
477
  fatal: error.fatal ?? false
477
478
  };
478
479
  session.errors.push(errorEvent);
480
+ if (session.errors.length > 100) {
481
+ session.errors = session.errors.slice(-100);
482
+ }
479
483
  sendBeacon("error", {
480
484
  errorType: errorEvent.type,
481
485
  errorMessage: errorEvent.message,
@@ -502,6 +506,9 @@ function createAnalyticsPlugin(config) {
502
506
  height: currentQuality.height
503
507
  };
504
508
  session.bitrateHistory.push(bitrateChange);
509
+ if (session.bitrateHistory.length > 500) {
510
+ session.bitrateHistory = session.bitrateHistory.slice(-500);
511
+ }
505
512
  if (currentQuality.bitrate > session.maxBitrate) {
506
513
  session.maxBitrate = currentQuality.bitrate;
507
514
  }
package/dist/index.js CHANGED
@@ -320,7 +320,8 @@ function createAnalyticsPlugin(config) {
320
320
  const duration = nextTime - b.time;
321
321
  return sum + b.bitrate * duration;
322
322
  }, 0);
323
- session.avgBitrate = Math.round(totalBitrateTime / session.watchTime);
323
+ const timeSpan = now - session.bitrateHistory[0].time;
324
+ session.avgBitrate = timeSpan > 0 ? Math.round(totalBitrateTime / timeSpan) : 0;
324
325
  }
325
326
  const state = {
326
327
  currentTime: api.getState("currentTime"),
@@ -449,6 +450,9 @@ function createAnalyticsPlugin(config) {
449
450
  fatal: error.fatal ?? false
450
451
  };
451
452
  session.errors.push(errorEvent);
453
+ if (session.errors.length > 100) {
454
+ session.errors = session.errors.slice(-100);
455
+ }
452
456
  sendBeacon("error", {
453
457
  errorType: errorEvent.type,
454
458
  errorMessage: errorEvent.message,
@@ -475,6 +479,9 @@ function createAnalyticsPlugin(config) {
475
479
  height: currentQuality.height
476
480
  };
477
481
  session.bitrateHistory.push(bitrateChange);
482
+ if (session.bitrateHistory.length > 500) {
483
+ session.bitrateHistory = session.bitrateHistory.slice(-500);
484
+ }
478
485
  if (currentQuality.bitrate > session.maxBitrate) {
479
486
  session.maxBitrate = currentQuality.bitrate;
480
487
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@scarlett-player/analytics",
3
- "version": "0.5.1",
3
+ "version": "0.5.3",
4
4
  "description": "Analytics Plugin for Scarlett Player - QoE metrics and engagement tracking",
5
5
  "type": "module",
6
6
  "main": "dist/index.cjs",
@@ -22,7 +22,7 @@
22
22
  "dist"
23
23
  ],
24
24
  "peerDependencies": {
25
- "@scarlett-player/core": "^0.5.1"
25
+ "@scarlett-player/core": "^0.5.3"
26
26
  },
27
27
  "devDependencies": {
28
28
  "@vitest/coverage-v8": "^1.6.0",
@@ -30,7 +30,7 @@
30
30
  "tsup": "^8.5.1",
31
31
  "typescript": "^5.3.0",
32
32
  "vitest": "^1.6.0",
33
- "@scarlett-player/core": "0.5.1"
33
+ "@scarlett-player/core": "0.5.3"
34
34
  },
35
35
  "keywords": [
36
36
  "video",