Socket
Socket
Sign inDemoInstall

opentok

Package Overview
Dependencies
29
Maintainers
4
Versions
53
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

Comparing version 2.16.0 to 2.17.0

158

lib/archiving.js

@@ -1,2 +0,1 @@

var request = require('request');
var errors = require('./errors');

@@ -6,2 +5,3 @@ var pkg = require('../package.json');

var generateJwt = require('./generateJwt');
var fetch = require('node-fetch');

@@ -15,3 +15,3 @@ // functions

'X-OPENTOK-AUTH': generateJwt(config),
Accept: 'application/json'
Accept: 'application/json',
};

@@ -196,13 +196,31 @@ };

var rurl = config.apiEndpoint + '/v2/project/' + config.apiKey + path;
request.defaults(_.pick(config, 'proxy', 'timeout'))(
const headers = generateHeaders(config);
if (body && ['POST', 'PATCH', 'PUT'].includes(method)) {
headers['Content-Type'] = 'application/json';
}
Promise.resolve(fetch(
rurl,
{
url: rurl,
method: method,
headers: generateHeaders(config),
json: body
},
callback
);
body: body ? JSON.stringify(body) : null,
headers: headers,
}
))
.then(async (response) => {
const otResponse = {
statusCode: response.status,
}
let body = await response.text();
callback(null, otResponse, body)
})
.catch(async (error) => {
callback(error);
});
};
exports.listArchives = function (config, options, callback) {

@@ -246,3 +264,3 @@ var qs = [];

else {
callback(new errors.RequestError('Unexpected response from OpenTok: ' + JSON.stringify(body)));
callback(new errors.RequestError('Unexpected response from OpenTok: ' + JSON.stringify(body || { statusCode: response.statusCode, statusMessage: response.statusMessage })));
}

@@ -294,23 +312,29 @@ }

callback(err);
return;
}
else if (response.statusCode !== 200) {
if (response && response.statusCode === 404) {
try {
body = JSON.parse(body);
} catch {}
switch (response.statusCode) {
case 404:
callback(new errors.ArchiveError('Session not found'));
}
else if (response && response.statusCode === 403) {
return;
case 403:
callback(new errors.AuthError('Invalid API key or secret'));
}
else if (response && response.statusCode === 409) {
return;
case 409:
callback(new errors.ArchiveError('Recording already in progress or session not using OpenTok Media Router'));
}
else {
callback(new errors.RequestError('Unexpected response from OpenTok: ' + JSON.stringify(body)));
}
return;
case 200:
if (body.status !== 'started') {
callback(new errors.RequestError('Unexpected response from OpenTok: ' + JSON.stringify(body || { statusCode: response.statusCode, statusMessage: response.statusMessage })));
return;
}
callback(null, new Archive(config, body));
return;
default:
callback(new errors.RequestError('Unexpected response from OpenTok: ' + JSON.stringify(body || { statusCode: response.statusCode, statusMessage: response.statusMessage })));
}
else if (body.status !== 'started') {
callback(new errors.RequestError('Unexpected response from OpenTok: ' + JSON.stringify(body)));
}
else {
callback(null, new Archive(config, body));
}
}

@@ -336,20 +360,27 @@ );

callback(err);
return;
}
else if (response.statusCode !== 200) {
if (response && response.statusCode === 404) {
let responseJson = {};
try {
responseJson = JSON.parse(body);
} catch {
}
switch (response?.statusCode) {
case 200:
callback(null, new Archive(config, responseJson));
break;
case 404:
callback(new errors.ArchiveError('Archive not found'));
}
else if (response && response.statusCode === 409) {
callback(new errors.ArchiveError(body.message));
}
else if (response && response.statusCode === 403) {
break;
case 409:
callback(new errors.ArchiveError(responseJson.message));
break;
case 403:
callback(new errors.AuthError('Invalid API key or secret'));
}
else {
callback(new errors.RequestError('Unexpected response from OpenTok: ' + JSON.stringify(body)));
}
break;
default:
callback(new errors.RequestError('Unexpected response from OpenTok: ' + JSON.stringify({ statusCode: response.statusCode, statusMessage: response.statusMessage })));
}
else {
callback(null, new Archive(config, body));
}
}

@@ -381,16 +412,17 @@ );

}
if (err || response.statusCode !== 200) {
if (response && response.statusCode === 404) {
switch(response.statusCode) {
case 200:
callback(null, new Archive(config, body));
return;
case 404:
callback(new errors.ArchiveError('Archive not found'));
}
else if (response && response.statusCode === 403) {
return;
case 403:
callback(new errors.AuthError('Invalid API key or secret'));
}
else {
callback(new errors.RequestError('Unexpected response from OpenTok: ' + JSON.stringify(body)));
}
return;
default:
callback(new errors.RequestError('Unexpected response from OpenTok: ' + JSON.stringify(body || { statusCode: response.statusCode, statusMessage: response.statusMessage })));
}
else {
callback(null, new Archive(config, body));
}
}

@@ -445,3 +477,3 @@ );

else {
callback(new errors.RequestError('Unexpected response from OpenTok: ' + JSON.stringify(body)));
callback(new errors.RequestError('Unexpected response from OpenTok: ' + JSON.stringify(body || { statusCode: response.statusCode, statusMessage: response.statusMessage })));
}

@@ -512,18 +544,18 @@ }

function deleteArchiveCallback(err, response, body) {
if (err || response.statusCode !== 204) {
if (response && response.statusCode === 404) {
switch (response.statusCode) {
case 204:
callback(null);
return;
case 404:
callback(new errors.ArchiveError('Archive not found'));
}
else if (response && response.statusCode === 403) {
return
case 403:
callback(new errors.AuthError('Invalid API key or secret'));
}
else {
callback(new errors.RequestError('Unexpected response from OpenTok: ' + JSON.stringify(body)));
}
return;
default:
callback(new errors.RequestError('Unexpected response from OpenTok: ' + JSON.stringify(body || { statusCode: response.statusCode, statusMessage: response.statusMessage })));
return;
}
else {
callback(null);
}
}
);
};

@@ -1,2 +0,1 @@

var request = require('request');
var errors = require('./errors');

@@ -6,15 +5,40 @@ var pkg = require('../package.json');

var generateJwt = require('./generateJwt');
const fetch = require('node-fetch');
var api = function (config, method, path, body, callback) {
var rurl = config.apiEndpoint + '/v2/project/' + config.apiKey + path;
request.defaults(_.pick(config, 'proxy', 'timeout'))({
url: rurl,
method: method,
headers: {
'X-OPENTOK-AUTH': generateJwt(config),
'User-Agent': 'OpenTok-Node-SDK/' + pkg.version +
(config.uaAddendum ? ' ' + config.uaAddendum : '')
},
json: body
}, callback);
const headers = {
'X-OPENTOK-AUTH': generateJwt(config),
'User-Agent': 'OpenTok-Node-SDK/' + pkg.version
+ (config.uaAddendum ? ' ' + config.uaAddendum : '')
};
if (body && ['POST', 'PATCH', 'PUT'].includes(method)) {
headers['Content-Type'] = 'application/json';
}
Promise.resolve(fetch(
rurl,
{
method: method,
body: body ? JSON.stringify(body) : null,
headers: headers,
}
))
.then(async (response) => {
const otResponse = {
statusCode: response.status,
}
let body = await response.text();
try {
body = JSON.parse(body)
} catch (error) {
}
callback(null, otResponse, body)
})
.catch(async (error) => {
callback(error);
});
};

@@ -45,23 +69,26 @@

api(config, 'GET', '/callback', null, function (err, response, body) {
if (!err && body) {
try {
body = JSON.parse(body);
}
catch (_err) {
err = _err;
}
if (err) {
callback(err);
}
if (err || Math.floor(response.statusCode / 100) !== 2) {
if (response && response.statusCode === 403) {
try {
body = JSON.parse(body);
}
catch (_err) {
err = _err;
}
switch (response.statusCode) {
case 200:
callback(null, body.map(function (item) {
return new Callback(config, item);
}));
return;
case 403:
callback(new errors.AuthError('Invalid API key or secret'));
}
else {
callback(new errors.RequestError('Unexpected response from OpenTok'));
}
return;
default:
callback(new errors.RequestError('Unexpected response from OpenTok: ' + JSON.stringify(body || { statusCode: response.statusCode, statusMessage: response.statusMessage })));
return;
}
else {
callback(null, body.map(function (item) {
return new Callback(config, item);
}));
}
});

@@ -85,17 +112,18 @@ };

callback(err);
return;
}
else if (Math.floor(response.statusCode / 100) !== 2) {
if (response && response.statusCode === 404) {
switch(response.statusCode) {
case 200:
callback(null, new Callback(config, body));
return;
case 404:
callback(new errors.CallbackError('Callback event not found'));
}
else if (response && response.statusCode === 403) {
return;
case 403:
callback(new errors.AuthError('Invalid API key or secret'));
}
else {
callback(new errors.RequestError('Unexpected response from OpenTok'));
}
return;
default:
callback(new errors.RequestError('Unexpected response from OpenTok: ' + JSON.stringify(body || { statusCode: response.statusCode, statusMessage: response.statusMessage })));
}
else {
callback(null, new Callback(config, body));
}
});

@@ -113,23 +141,30 @@ };

api(
config, 'DELETE', '/callback/' + encodeURIComponent(callbackId), {},
function (err, response) {
config,
'DELETE',
'/callback/' + encodeURIComponent(callbackId),
null,
function (err, response, body) {
if (err) {
callback(err);
return;
}
else if (Math.floor(response.statusCode / 100) !== 2) {
if (response && response.statusCode === 404) {
switch (response.statusCode) {
case 204:
callback(null);
return;
case 404:
callback(new errors.CallbackError('Callback not found'));
}
else if (response && response.statusCode === 403) {
return;
case 403:
callback(new errors.AuthError('Invalid API key or secret'));
}
else {
callback(new errors.RequestError('Unexpected response from OpenTok'));
}
return;
default:
callback(new errors.RequestError('Unexpected response from OpenTok: ' + JSON.stringify(body || {
statusCode: response.statusCode,
statusMessage: response.statusMessage
})));
}
else {
callback(null);
}
}
);
};

@@ -1,3 +0,2 @@

var requestRoot = require('request');
var request = requestRoot;
var request = require('needle');
var _ = require('lodash');

@@ -57,3 +56,3 @@ var generateJwt = require('./generateJwt');

if ('request' in this.c) {
request = requestRoot.defaults(this.c.request);
request.defaults(this.c.request);
}

@@ -66,8 +65,8 @@

request.post(
this.c.apiUrl + this.c.endpoints.createSession,
opts,
{
// TODO: only works while apiUrl is always up to the domain, without the ending slash
url: this.c.apiUrl + this.c.endpoints.createSession,
form: opts,
json: true,
headers: this.generateHeaders()
},

@@ -81,6 +80,6 @@ function (err, resp, body) {

if (resp.statusCode === 403) {
return cb(new Error('An authentication error occurred: (' +
resp.statusCode +
') ' +
JSON.stringify(body)));
return cb(new Error('An authentication error occurred: ('
+ resp.statusCode
+ ') '
+ JSON.stringify(body)));
}

@@ -90,6 +89,6 @@

if (resp.statusCode >= 500 && resp.statusCode <= 599) {
return cb(new Error('A server error occurred: (' +
resp.statusCode +
') ' +
JSON.stringify(body)));
return cb(new Error('A server error occurred: ('
+ resp.statusCode
+ ') '
+ JSON.stringify(body)));
}

@@ -121,5 +120,4 @@

if (opts.sessionId) {
url =
this.c.apiUrl +
this.c.endpoints.playDTMFToSession
url = this.c.apiUrl
+ this.c.endpoints.playDTMFToSession
.replace(/<%apiKey%>/g, this.c.apiKey)

@@ -129,5 +127,4 @@ .replace(/<%sessionId%>/g, opts.sessionId);

if (opts.connectionId) {
url =
this.c.apiUrl +
this.c.endpoints.playDTMFToClient
url = this.c.apiUrl
+ this.c.endpoints.playDTMFToClient
.replace(/<%apiKey%>/g, this.c.apiKey)

@@ -139,7 +136,7 @@ .replace(/<%sessionId%>/g, opts.sessionId)

request.post(
url,
{
url: url,
json: {
digits: opts.digits
},
digits: opts.digits
},
{
headers: this.generateHeaders()

@@ -161,5 +158,4 @@ },

Client.prototype.forceMuteStream = function (opts, cb) {
var url =
this.c.apiUrl +
this.c.endpoints.forceMuteStream
var url = this.c.apiUrl
+ this.c.endpoints.forceMuteStream
.replace(/<%apiKey%>/g, this.c.apiKey)

@@ -170,4 +166,5 @@ .replace(/<%sessionId%>/g, opts.sessionId)

request.post(
url,
{},
{
url: url,
headers: this.generateHeaders()

@@ -189,5 +186,4 @@ },

Client.prototype.forceMuteAll = function (opts, cb) {
var url =
this.c.apiUrl +
this.c.endpoints.forceMute
var url = this.c.apiUrl
+ this.c.endpoints.forceMute
.replace(/<%apiKey%>/g, this.c.apiKey)

@@ -199,5 +195,5 @@ .replace(/<%sessionId%>/g, opts.sessionId);

request.post(
url,
opts.options,
{
url: url,
json: opts.options,
headers: this.generateHeaders()

@@ -219,5 +215,4 @@ },

Client.prototype.disableForceMute = function (opts, cb) {
var url =
this.c.apiUrl +
this.c.endpoints.forceMute
var url = this.c.apiUrl
+ this.c.endpoints.forceMute
.replace(/<%apiKey%>/g, this.c.apiKey)

@@ -231,5 +226,5 @@ .replace(/<%sessionId%>/g, opts.sessionId);

request.post(
url,
options,
{
url: url,
json: options,
headers: this.generateHeaders()

@@ -251,18 +246,16 @@ },

Client.prototype.setArchiveLayout = function setArchiveLayout(opts, cb) {
var url =
this.c.apiUrl +
this.c.endpoints.setArchiveLayout
var url = this.c.apiUrl
+ this.c.endpoints.setArchiveLayout
.replace(/<%apiKey%>/g, this.c.apiKey)
.replace(/<%archiveId%>/g, opts.archiveId);
request.put(
url,
{
url: url,
headers: this.generateHeaders(),
json: true,
body: {
type: opts.type,
stylesheet: opts.stylesheet || undefined,
screenshareType: opts.screenshareType || undefined
}
type: opts.type,
stylesheet: opts.stylesheet || undefined,
screenshareType: opts.screenshareType || undefined
},
{
headers: this.generateHeaders()
},
function requestCallback(err, resp, body) {

@@ -281,9 +274,9 @@ if (err) {

Client.prototype.startBroadcast = function (opts, cb) {
var url =
this.c.apiUrl +
this.c.endpoints.startBroadcast.replace(/<%apiKey%>/g, this.c.apiKey);
var url = this.c.apiUrl
+ this.c.endpoints.startBroadcast.replace(/<%apiKey%>/g, this.c.apiKey);
request.post(
url,
opts,
{
url: url,
json: opts,
headers: this.generateHeaders()

@@ -294,8 +287,7 @@ },

if (resp.statusCode === 200) {
// Success
return cb(null, JSON.stringify(body));
if (resp.statusCode !== 200) {
return cb(new Error('(' + resp.statusCode + ') ' + JSON.stringify(body)));
}
return cb(new Error('(' + resp.statusCode + ') ' + JSON.stringify(body)));
return cb(null, JSON.stringify(body));
}

@@ -309,19 +301,22 @@ );

request.patch({
url: url,
json: opts,
headers: this.generateHeaders()
}, function (err, resp, body) {
if (err) return cb(new Error('The request failed'));
if (resp.statusCode === 204) {
return cb(null, JSON.stringify(body));
request.patch(
url,
opts,
{
headers: this.generateHeaders()
},
function (err, resp, body) {
if (err) return cb(new Error('The request failed'));
if (resp.statusCode === 204) {
return cb(null, JSON.stringify(body));
}
return cb(new Error('(' + resp.statusCode + ') ' + JSON.stringify(body)));
}
return cb(new Error('(' + resp.statusCode + ') ' + JSON.stringify(body)));
});
);
};
Client.prototype.stopBroadcast = function (broadcastId, cb) {
var url =
this.c.apiUrl +
this.c.endpoints.stopBroadcast
var url = this.c.apiUrl
+ this.c.endpoints.stopBroadcast
.replace(/<%apiKey%>/g, this.c.apiKey)

@@ -331,4 +326,5 @@ .replace(/<%broadcastId%>/g, broadcastId);

request.post(
url,
{},
{
url: url,
headers: this.generateHeaders()

@@ -350,10 +346,9 @@ },

Client.prototype.getBroadcast = function getBroadcast(broadcastId, cb) {
var url =
this.c.apiUrl +
this.c.endpoints.getBroadcast
var url = this.c.apiUrl
+ this.c.endpoints.getBroadcast
.replace(/<%apiKey%>/g, this.c.apiKey)
.replace(/<%broadcastId%>/g, broadcastId);
request.get(
url,
{
url: url,
headers: this.generateHeaders()

@@ -374,10 +369,9 @@ },

Client.prototype.listBroadcasts = function listBroadcasts(queryString, cb) {
var baseUrl =
this.c.apiUrl +
this.c.endpoints.listBroadcasts.replace(/<%apiKey%>/g, this.c.apiKey);
var baseUrl = this.c.apiUrl
+ this.c.endpoints.listBroadcasts.replace(/<%apiKey%>/g, this.c.apiKey);
var url = queryString.length > 0 ? baseUrl + '?' + queryString : baseUrl;
var parsedBody;
request.get(
url,
{
url: url,
headers: this.generateHeaders()

@@ -405,18 +399,16 @@ },

Client.prototype.setBroadcastLayout = function setBroadcastLayout(opts, cb) {
var url =
this.c.apiUrl +
this.c.endpoints.setBroadcastLayout
var url = this.c.apiUrl
+ this.c.endpoints.setBroadcastLayout
.replace(/<%apiKey%>/g, this.c.apiKey)
.replace(/<%broadcastId%>/g, opts.broadcastId);
request.put(
url,
{
url: url,
headers: this.generateHeaders(),
json: true,
body: {
type: opts.type,
stylesheet: opts.stylesheet || undefined,
screenshareType: opts.screenshareType || undefined
}
type: opts.type,
stylesheet: opts.stylesheet || undefined,
screenshareType: opts.screenshareType || undefined
},
{
headers: this.generateHeaders()
},
function requestCallback(err, resp, body) {

@@ -435,12 +427,11 @@ if (err) {

Client.prototype.websocketConnect = function websocketConnect(opts, cb) {
var url =
this.c.apiUrl +
this.c.endpoints.audioStreamer
var url = this.c.apiUrl + this.c.endpoints.audioStreamer
.replace(/<%apiKey%>/g, this.c.apiKey);
request.post(
url,
opts,
{
url: url,
headers: this.generateHeaders(),
json: opts
json: true
},

@@ -464,16 +455,14 @@ function requestCallback(err, resp, body) {

) {
var url =
this.c.apiUrl +
this.c.endpoints.setStreamClassLists
var url = this.c.apiUrl
+ this.c.endpoints.setStreamClassLists
.replace(/<%apiKey%>/, this.c.apiKey)
.replace(/<%sessionId%>/g, sessionId);
request.put(
url,
{
url: url,
headers: this.generateHeaders(),
json: true,
body: {
items: classListArray
}
items: classListArray
},
{
headers: this.generateHeaders()
},
function requestCallback(err, resp, body) {

@@ -492,12 +481,12 @@ if (err) return cb(new Error('The request failed: ' + err));

// handle server errors
return cb(new Error('A server error occurred: (' +
resp.statusCode +
') ' +
JSON.stringify(body)));
return cb(new Error('A server error occurred: ('
+ resp.statusCode
+ ') '
+ JSON.stringify(body)));
}
}
return cb(new Error('An unexpected error occurred: (' +
resp.statusCode +
') ' +
JSON.stringify(body)));
return cb(new Error('An unexpected error occurred: ('
+ resp.statusCode
+ ') '
+ JSON.stringify(body)));
}

@@ -509,6 +498,6 @@ );

request.post(
this.c.apiUrl + this.c.endpoints.dial,
opts,
{
// TODO: only works while apiUrl is always up to the domain, without the ending slash
url: this.c.apiUrl + this.c.endpoints.dial,
json: opts,
headers: this.generateHeaders()

@@ -546,5 +535,4 @@ },

Client.prototype.getStream = function getStream(sessionId, streamId, cb) {
var url =
this.c.apiUrl +
this.c.endpoints.getStream
var url = this.c.apiUrl
+ this.c.endpoints.getStream
.replace(/<%apiKey%>/g, this.c.apiKey)

@@ -554,4 +542,4 @@ .replace(/<%streamId%>/g, streamId)

request.get(
url,
{
url: url,
headers: this.generateHeaders()

@@ -572,10 +560,9 @@ },

Client.prototype.listStreams = function listStreams(sessionId, cb) {
var url =
this.c.apiUrl +
this.c.endpoints.listStreams
var url = this.c.apiUrl
+ this.c.endpoints.listStreams
.replace(/<%apiKey%>/g, this.c.apiKey)
.replace(/<%sessionId%>/g, sessionId);
request.get(
url,
{
url: url,
headers: this.generateHeaders()

@@ -603,5 +590,5 @@ },

'User-Agent':
'OpenTok-Node-SDK/' +
pkg.version +
(this.c.uaAddendum ? ' ' + this.c.uaAddendum : ''),
'OpenTok-Node-SDK/'
+ pkg.version
+ (this.c.uaAddendum ? ' ' + this.c.uaAddendum : ''),
'X-OPENTOK-AUTH': generateJwt(this.c),

@@ -608,0 +595,0 @@ Accept: 'application/json'

@@ -1,2 +0,1 @@

var request = require('request');
var errors = require('./errors');

@@ -6,4 +5,5 @@ var pkg = require('../package.json');

var generateJwt = require('./generateJwt');
var fetch = require('node-fetch');
var api = function (config, method, session, connection, body, callback) {
var api = function (config, method, session, connection, body, callback) {
var rurl = config.apiEndpoint + '/v2/project/' + config.apiKey + '/session/' + session;

@@ -13,12 +13,33 @@ if (connection) {

}
request.defaults(_.pick(config, 'proxy', 'timeout'))({
url: rurl,
method: method,
headers: {
const headers = {
'X-OPENTOK-AUTH': generateJwt(config),
'User-Agent': 'OpenTok-Node-SDK/' + pkg.version +
(config.uaAddendum ? ' ' + config.uaAddendum : '')
},
json: body
}, callback);
};
if (body) {
headers['Content-Type'] = 'application/json';
}
Promise.resolve(fetch(
rurl,
{
method: method,
body: body ? JSON.stringify(body) : null,
headers: headers,
}
))
.then(async (response) => {
const otResponse = {
statusCode: response.status,
statusMessage: response.statusText
}
let body = await response.text();
callback(null, otResponse, body);
})
.catch(async (error) => {
/* istanbul ignore next */
callback(error);
});
};

@@ -33,3 +54,3 @@

}
return api(config, 'DELETE', sessionId, connectionId, null, function (err, response) {
return api(config, 'DELETE', sessionId, connectionId, null, function (err, response, body) {
if (err || Math.floor(response.statusCode / 100) !== 2) {

@@ -43,3 +64,3 @@ if (response && response.statusCode === 403) {

else {
callback(new errors.RequestError('Unexpected response from OpenTok'));
callback(new errors.RequestError('Unexpected response from OpenTok: ' + JSON.stringify(body || { statusCode: response.statusCode, statusMessage: response.statusMessage })));
}

@@ -46,0 +67,0 @@ }

/* eslint-env es2018 */
const errors = require('./errors');
const request = require('request');
const fetch = require('node-fetch');
const { version } = require('../package.json');

@@ -23,4 +23,2 @@ const _ = require('lodash');

*
* @property {Number} updatedAt
**
* @property {Number} upddatedAt

@@ -66,3 +64,3 @@ * The time at which the render was created, in milliseconds since the UNIX epoch.

{
method = 'GET',
method,
config,

@@ -86,11 +84,24 @@ path,

request.defaults(_.pick(config, 'proxy', 'timeout'))(
const requestHeaders = generateHeaders(config, headers)
if (body && ['POST', 'PATCH', 'PUT'].includes(method)) {
requestHeaders['Content-Type'] = 'application/json';
}
Promise.resolve(fetch(
rurl,
{
url: rurl.href,
method: method,
headers: generateHeaders(config, headers),
json: body
},
callback
);
body: body ? JSON.stringify(body) : null,
headers: requestHeaders,
}
))
.then(async (response) => {
const otResponse = {
statusCode: response.status,
}
callback(null, otResponse, await response.json())
})
.catch(async (error) => {
callback(error);
});
};

@@ -156,7 +167,10 @@

/**
* Return a list of {@link Render} objects, representing Experience composer in any status
* Return a list of {@link Render} objects, representing Experience Composer in any status
*
* @param {Object} config - API configuration settings {@see OpenTok.listRenders}
* @param {Object} options - Optional parameters for the API call {@see OpenTok.listRenders}
* @param {Function} callback - Call back function
* @param {Function} callback - Callback function
*
* @method #listRenders
* @memberof Render
*/

@@ -192,7 +206,10 @@ exports.listRenders = (config, options, callback) => {

/**
* Gets an {@link Render} object for the given render ID.
* Gets a {@link Render} object for the given render ID.
*
* @param {Object} config - API config {@see OpenTok}
* @param {String} renderId - The Render ID to fetch
* @param {Function} callback - Call back function
* @param {Function} callback - Callback function
*
* @method #getRender
* @memberof Render
*/

@@ -212,3 +229,3 @@ exports.getRender = (config, renderId, callback) => {

/**
* Starts an Experience composer for an OpenTok session.
* Starts an Experience Composer for an OpenTok session.
*

@@ -218,3 +235,6 @@ *

* @param {Object} options - Optional parameters for the API call {@see OpenTok.startRender}
* @param {Function} callback - Call back function
* @param {Function} callback - Callback function
*
* @method #startRender
* @memberof Render
*/

@@ -247,3 +267,6 @@ exports.startRender = (config, options, callback) => {

* @param {String} renderId - The Render ID to fetch
* @param {Function} callback - Call back function
* @param {Function} callback - Callback function
*
* @method #stopRender
* @memberof Render
*/

@@ -250,0 +273,0 @@ exports.stopRender = (config, renderId, callback) => {

@@ -1,2 +0,1 @@

var request = require('request');
var errors = require('./errors');

@@ -6,2 +5,3 @@ var pkg = require('../package.json');

var generateJwt = require('./generateJwt');
const fetch = require('node-fetch');

@@ -14,12 +14,37 @@ var api = function (config, method, session, connection, body, callback) {

rurl += '/signal';
request.defaults(_.pick(config, 'proxy', 'timeout'))({
url: rurl,
method: method,
headers: {
'X-OPENTOK-AUTH': generateJwt(config),
'User-Agent': 'OpenTok-Node-SDK/' + pkg.version +
(config.uaAddendum ? ' ' + config.uaAddendum : '')
},
json: body
}, callback);
const requestHeaders = {
'X-OPENTOK-AUTH': generateJwt(config),
'User-Agent': 'OpenTok-Node-SDK/' + pkg.version
+ (config.uaAddendum ? ' ' + config.uaAddendum : '')
};
if (body && ['POST', 'PATCH', 'PUT'].includes(method)) {
requestHeaders['Content-Type'] = 'application/json';
}
Promise.resolve(fetch(
rurl,
{
method: method,
body: body ? JSON.stringify(body) : null,
headers: requestHeaders,
}
))
.then(async (response) => {
const otResponse = {
statusCode: response.status,
}
let body = await response.text();
try {
body = JSON.parse(body)
} catch (error) {
}
callback(null, otResponse, body)
})
.catch(async (error) => {
callback(error);
});
};

@@ -39,3 +64,3 @@

}
return api(config, 'POST', sessionId, connectionId, payload, function (err, response) {
return api(config, 'POST', sessionId, connectionId, payload, function (err, response, body) {
if (err || Math.floor(response.statusCode / 100) !== 2) {

@@ -49,3 +74,3 @@ if (response && response.statusCode === 403) {

else {
callback(new errors.RequestError('Unexpected response from OpenTok'));
callback(new errors.RequestError('Unexpected response from OpenTok: ' + JSON.stringify(body || { statusCode: response.statusCode, statusMessage: response.statusMessage })));
}

@@ -52,0 +77,0 @@ }

{
"name": "opentok",
"description": "OpenTok server-side SDK",
"version": "2.16.0",
"version": "2.17.0",
"homepage": "https://github.com/opentok/opentok-node",

@@ -61,2 +61,5 @@ "repository": {

"main": "lib/opentok.js",
"files": [
"lib/"
],
"scripts": {

@@ -70,3 +73,5 @@ "test": "npm run test-no-lint && npm run jasmine_node",

"jasmine_node": "jasmine spec/opentok_spec.js",
"report-coverage": "cross-env NODE_ENV=test nyc --reporter=text-lcov mocha > coverage.lcov"
"report-coverage": "npm run mocha-coverage && npm run jasmine-coverage",
"mocha-coverage": "cross-env NODE_ENV=test nyc --reporter=text-lcov mocha > mocha.lcov",
"jasmine-coverage": "cross-env NODE_ENV=test nyc --reporter=text-lcov jasmine-node spec > jasmine.lcov"
},

@@ -77,18 +82,20 @@ "engines": {

"devDependencies": {
"chai": "4.3.7",
"chai": "4.3.10",
"cross-env": "7.0.3",
"eslint": "8.31.0",
"eslint": "8.51.0",
"eslint-config-airbnb-base": "15.0.0",
"eslint-plugin-import": "2.26.0",
"jasmine": "4.5.0",
"eslint-plugin-import": "2.28.1",
"jasmine": "5.1.0",
"jasmine-node": "1.16.0",
"mocha": "10.2.0",
"nock": "13.2.9",
"nock": "13.3.6",
"nyc": "15.1.0"
},
"dependencies": {
"jsonwebtoken": "9.0.0",
"jsonwebtoken": "9.0.2",
"lodash": "4.17.21",
"opentok-token": "1.1.1",
"request": "2.88.2"
"needle": "3.2.0",
"node-fetch": "2.7.0",
"opentok-token": "1.1.1"
}
}

Sorry, the diff of this file is too big to display

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