Socket
Socket
Sign inDemoInstall

rtc-stats-adapter

Package Overview
Dependencies
6
Maintainers
1
Versions
3
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

Comparing version 1.0.0 to 1.1.0

calculate-mos.js

32

index.js

@@ -0,31 +1,21 @@

const { iterateReports } = require("./utils");
const { parsers } = require("./parsers/new-api");
const calculateMos = require("./calculate-mos");
function parse(stats) {
function parse(reports) {
const result = {};
if (typeof stats[Symbol.iterator] === "function") {
for (const el of stats) {
const report = Array.isArray(el) ? el[1] : el;
if (report.type in parsers) {
const mappedReport = parsers[report.type](report);
Object.assign(result, mappedReport);
}
iterateReports(reports, (report) => {
if (report.type in parsers) {
const mappedReport = parsers[report.type](report);
Object.assign(result, mappedReport);
}
} else {
for (const key in stats) {
if (stats.hasOwnProperty(key)) {
const report = stats[key];
});
if (report.type in parsers) {
const mappedReport = parsers[report.type](report);
result.networkMos = calculateMos(reports);
Object.assign(result, mappedReport);
}
}
}
}
return result;
}
module.exports = parse;
module.exports = parse;
{
"name": "rtc-stats-adapter",
"description": "RTC Stats adapter",
"version": "1.0.0",
"version": "1.1.0",
"repository": "https://github.com/nexmoinc/rtc-stats-adapter",

@@ -6,0 +6,0 @@ "keywords": [

@@ -15,2 +15,3 @@ /**

bytesReceived: "audioRecvBytes",
jitter: "audioRecvJitter"
},

@@ -20,2 +21,3 @@ "remote-inbound-rtp": {

roundTripTime: "audioRtt",
jitter: "audioSentJitter"
},

@@ -22,0 +24,0 @@ };

@@ -1,50 +0,32 @@

const Joi = require('joi');
const Joi = require("joi");
const metadataSchema = Joi.object({
legId: Joi.string().required()
})
legId: Joi.string().required(),
});
// Core set of RTC Stats that is implemented well X-Browser
const statsSchema = Joi.object({
audioRecvBytes: Joi.number()
.integer()
.positive()
.required(),
audioRecvBytes: Joi.number().integer().positive().allow(0).required(),
audioRecvPackets: Joi.number().integer().positive().allow(0).required(),
audioRecvPacketsLost: Joi.number().integer().positive().allow(0).required(),
audioRtt: Joi.number().positive().allow(0).required(),
audioSentBytes: Joi.number().integer().positive().allow(0).required(),
audioSentPackets: Joi.number().integer().positive().allow(0).required(),
audioSentPacketsLost: Joi.number()
.integer()
.positive()
.allow(0)
.allow(null)
.required(),
audioSentJitter: Joi.number().positive().allow(0, null).required(),
audioRecvJitter: Joi.number().positive().allow(0, null).required(),
networkMos: Joi.number().positive().allow(0).required(),
});
audioRecvPackets: Joi.number()
.integer()
.positive()
.required(),
audioRecvPacketsLost: Joi.number()
.integer()
.positive()
.required(),
audioRtt: Joi.number()
.positive()
.required(),
audioSentBytes: Joi.number()
.integer()
.positive()
.required(),
audioSentPackets: Joi.number()
.integer()
.positive()
.required(),
audioSentPacketsLost: Joi.number()
.integer()
.positive()
.required(),
})
// The schema when we send data for ingestion
const eventSchema = metadataSchema.concat(statsSchema)
const eventSchema = metadataSchema.concat(statsSchema);
module.exports = {
rtcStats: statsSchema,
event: eventSchema
}
rtcStats: statsSchema,
event: eventSchema,
};
SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc