Socket
Socket
Sign inDemoInstall

@vonage/server-client

Package Overview
Dependencies
Maintainers
43
Versions
47
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@vonage/server-client - npm Package Compare versions

Comparing version 1.12.1 to 1.13.0

85

dist/lib/client.js

@@ -1,10 +0,16 @@

import fetch from 'node-fetch';
import AbortError from 'node-fetch';
import { Auth } from '@vonage/auth';
import { ResponseTypes, HTTPMethods, ContentType, VetchError, } from '@vonage/vetch';
import { AuthenticationType } from './enums';
import { camelCaseObjectKeys, kebabCaseObjectKeys, snakeCaseObjectKeys, omit, } from './transformers';
import debug from 'debug';
const log = debug('vonage:server-client');
export class Client {
"use strict";
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.Client = void 0;
const node_fetch_1 = __importDefault(require("node-fetch"));
const node_fetch_2 = __importDefault(require("node-fetch"));
const auth_1 = require("@vonage/auth");
const vetch_1 = require("@vonage/vetch");
const enums_1 = require("./enums");
const transformers_1 = require("./transformers");
const debug_1 = __importDefault(require("debug"));
const log = (0, debug_1.default)('vonage:server-client');
class Client {
/**

@@ -14,6 +20,6 @@ * Static property containing utility transformers.

static transformers = {
'camelCaseObjectKeys': camelCaseObjectKeys,
'snakeCaseObjectKeys': snakeCaseObjectKeys,
'kebabCaseObjectKeys': kebabCaseObjectKeys,
'omit': omit,
'camelCaseObjectKeys': transformers_1.camelCaseObjectKeys,
'snakeCaseObjectKeys': transformers_1.snakeCaseObjectKeys,
'kebabCaseObjectKeys': transformers_1.kebabCaseObjectKeys,
'omit': transformers_1.omit,
};

@@ -23,3 +29,3 @@ /**

*/
authType = AuthenticationType.QUERY_KEY_SECRET;
authType = enums_1.AuthenticationType.QUERY_KEY_SECRET;
/**

@@ -41,3 +47,3 @@ * The authentication instance responsible for generating authentication headers and query parameters.

this.auth = !Object.prototype.hasOwnProperty.call(credentials, 'getQueryParams')
? new Auth(credentials)
? new auth_1.Auth(credentials)
: credentials;

@@ -50,3 +56,3 @@ this.config = {

proactiveHost: options?.proactiveHost || 'https://api-eu.vonage.com',
responseType: options?.responseType || ResponseTypes.json,
responseType: options?.responseType || vetch_1.ResponseTypes.json,
timeout: options?.timeout || null,

@@ -63,7 +69,7 @@ };

log(`adding ${this.authType || 'api key/secret'} to request`);
if (!Object.values(AuthenticationType).includes(this.authType)) {
if (!Object.values(enums_1.AuthenticationType).includes(this.authType)) {
throw new Error('No authentication type set');
}
switch (this.authType) {
case AuthenticationType.BASIC:
case enums_1.AuthenticationType.BASIC:
request.headers = Object.assign({}, request.headers, {

@@ -73,3 +79,3 @@ Authorization: await this.auth.createBasicHeader(),

return request;
case AuthenticationType.JWT:
case enums_1.AuthenticationType.JWT:
request.headers = Object.assign({}, request.headers, {

@@ -80,3 +86,3 @@ Authorization: await this.auth.createBearerHeader(),

}
if (this.authType === AuthenticationType.QUERY_KEY_SECRET) {
if (this.authType === enums_1.AuthenticationType.QUERY_KEY_SECRET) {
log('adding parameters to query string');

@@ -111,3 +117,3 @@ request.params = {

url,
method: HTTPMethods.DELETE,
method: vetch_1.HTTPMethods.DELETE,
};

@@ -126,4 +132,4 @@ return await this.sendRequest(request);

url,
method: HTTPMethods.POST,
type: ContentType.FORM_URLENCODED,
method: vetch_1.HTTPMethods.POST,
type: vetch_1.ContentType.FORM_URLENCODED,
headers: { Accept: 'application/json' },

@@ -144,3 +150,3 @@ ...(payload ? { data: payload } : {}),

url,
method: HTTPMethods.GET,
method: vetch_1.HTTPMethods.GET,
...(queryParams ? { params: queryParams } : {}),

@@ -158,3 +164,3 @@ };

async sendPatchRequest(url, payload) {
return this.sendRequestWithData(HTTPMethods.PATCH, url, payload);
return this.sendRequestWithData(vetch_1.HTTPMethods.PATCH, url, payload);
}

@@ -169,3 +175,3 @@ /**

async sendPostRequest(url, payload) {
return this.sendRequestWithData(HTTPMethods.POST, url, payload);
return this.sendRequestWithData(vetch_1.HTTPMethods.POST, url, payload);
}

@@ -180,3 +186,3 @@ /**

sendPutRequest(url, payload) {
return this.sendRequestWithData(HTTPMethods.PUT, url, payload);
return this.sendRequestWithData(vetch_1.HTTPMethods.PUT, url, payload);
}

@@ -195,3 +201,3 @@ /**

method: method,
type: ContentType.JSON,
type: vetch_1.ContentType.JSON,
...(payload ? { data: payload } : {}),

@@ -224,6 +230,6 @@ };

log('Sending request', fetcRequest);
return await this.parseResponse(request, await fetch(request.url, fetcRequest));
return await this.parseResponse(request, await (0, node_fetch_1.default)(request.url, fetcRequest));
}
catch (error) {
if (error instanceof AbortError) {
if (error instanceof node_fetch_2.default) {
log(`Request timed out after ${timeout}`);

@@ -253,7 +259,7 @@ }

switch (request.type) {
case ContentType.FORM_URLENCODED:
request.headers['content-type'] = ContentType.FORM_URLENCODED;
case vetch_1.ContentType.FORM_URLENCODED:
request.headers['content-type'] = vetch_1.ContentType.FORM_URLENCODED;
break;
case ContentType.JSON:
request.headers['content-type'] = ContentType.JSON;
case vetch_1.ContentType.JSON:
request.headers['content-type'] = vetch_1.ContentType.JSON;
break;

@@ -284,6 +290,6 @@ }

}
if (request.type === ContentType.JSON) {
if (request.type === vetch_1.ContentType.JSON) {
return JSON.stringify(request.data);
}
if (request.type === ContentType.FORM_URLENCODED) {
if (request.type === vetch_1.ContentType.FORM_URLENCODED) {
const requestParams = new URLSearchParams(request.data);

@@ -308,3 +314,3 @@ requestParams.sort();

log('Request failed', response);
throw new VetchError(`Request failed with status code ${response.status}`, request, response);
throw new vetch_1.VetchError(`Request failed with status code ${response.status}`, request, response);
}

@@ -315,3 +321,3 @@ log('Request succeeded');

switch (contentType) {
case ContentType.FORM_URLENCODED:
case vetch_1.ContentType.FORM_URLENCODED:
log('Decoding form data');

@@ -322,3 +328,3 @@ decoded = response.body

break;
case ContentType.JSON:
case vetch_1.ContentType.JSON:
log('Decoding JSON');

@@ -348,2 +354,3 @@ decoded = await response.json();

}
exports.Client = Client;
//# sourceMappingURL=client.js.map

@@ -0,1 +1,4 @@

"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.AuthenticationType = void 0;
/**

@@ -5,3 +8,3 @@ * Enum representing the different types of authentication methods

*/
export var AuthenticationType;
var AuthenticationType;
(function (AuthenticationType) {

@@ -29,3 +32,3 @@ /**

AuthenticationType["SIGNATURE"] = "signature";
})(AuthenticationType || (AuthenticationType = {}));
})(AuthenticationType || (exports.AuthenticationType = AuthenticationType = {}));
//# sourceMappingURL=AuthenticationType.js.map

@@ -0,1 +1,4 @@

"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.GenericErrors = void 0;
/**

@@ -5,3 +8,3 @@ * Enum representing the different types of generic error codes

*/
export var GenericErrors;
var GenericErrors;
(function (GenericErrors) {

@@ -120,3 +123,3 @@ /**

GenericErrors["APPLICATION_SUSPENDED"] = "application-suspended";
})(GenericErrors || (GenericErrors = {}));
})(GenericErrors || (exports.GenericErrors = GenericErrors = {}));
//# sourceMappingURL=GenericErrorCodes.js.map

@@ -1,3 +0,19 @@

export * from './AuthenticationType';
export * from './GenericErrorCodes';
"use strict";
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
var desc = Object.getOwnPropertyDescriptor(m, k);
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
desc = { enumerable: true, get: function() { return m[k]; } };
}
Object.defineProperty(o, k2, desc);
}) : (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
o[k2] = m[k];
}));
var __exportStar = (this && this.__exportStar) || function(m, exports) {
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
};
Object.defineProperty(exports, "__esModule", { value: true });
__exportStar(require("./AuthenticationType"), exports);
__exportStar(require("./GenericErrorCodes"), exports);
//# sourceMappingURL=index.js.map

@@ -1,9 +0,15 @@

import { Client } from './client';
import { AuthenticationType } from './enums';
import debug from 'debug';
import { VetchError, HTTPMethods } from '@vonage/vetch';
import fetch from 'node-fetch';
import { createWriteStream } from 'fs';
import { pipeline } from 'stream/promises';
const log = debug('vonage:file-client');
"use strict";
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.FileClient = void 0;
const client_1 = require("./client");
const enums_1 = require("./enums");
const debug_1 = __importDefault(require("debug"));
const vetch_1 = require("@vonage/vetch");
const node_fetch_1 = __importDefault(require("node-fetch"));
const fs_1 = require("fs");
const promises_1 = require("stream/promises");
const log = (0, debug_1.default)('vonage:file-client');
/**

@@ -14,4 +20,4 @@ * A client for downloading files from Vonage.

*/
export class FileClient extends Client {
authType = AuthenticationType.JWT;
class FileClient extends client_1.Client {
authType = enums_1.AuthenticationType.JWT;
saveFilePath = '';

@@ -42,6 +48,6 @@ /**

url: `${this.config.apiHost}/v1/files/${fileId}`,
method: HTTPMethods.GET,
method: vetch_1.HTTPMethods.GET,
});
log('File download request', request);
const response = await fetch(request.url, {
const response = await (0, node_fetch_1.default)(request.url, {
method: request.method,

@@ -52,9 +58,10 @@ headers: request.headers,

if (!response.ok) {
throw new VetchError(`Unexpected response when downloading file: ${response.statusText}`, request);
throw new vetch_1.VetchError(`Unexpected response when downloading file: ${response.statusText}`, request);
}
log(`Saving to ${path}`);
await pipeline(response.body, createWriteStream(path));
await (0, promises_1.pipeline)(response.body, (0, fs_1.createWriteStream)(path));
log('File saved');
}
}
exports.FileClient = FileClient;
//# sourceMappingURL=fileClient.js.map

@@ -1,6 +0,22 @@

export * from './client';
export * from './enums/';
export * from './types/';
export * from './transformers';
export * from './fileClient';
"use strict";
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
var desc = Object.getOwnPropertyDescriptor(m, k);
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
desc = { enumerable: true, get: function() { return m[k]; } };
}
Object.defineProperty(o, k2, desc);
}) : (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
o[k2] = m[k];
}));
var __exportStar = (this && this.__exportStar) || function(m, exports) {
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
};
Object.defineProperty(exports, "__esModule", { value: true });
__exportStar(require("./client"), exports);
__exportStar(require("./enums/"), exports);
__exportStar(require("./types/"), exports);
__exportStar(require("./transformers"), exports);
__exportStar(require("./fileClient"), exports);
//# sourceMappingURL=index.js.map

@@ -1,5 +0,11 @@

import camelCase from 'lodash.camelcase';
import snakeCase from 'lodash.snakecase';
import kebabCase from 'lodash.kebabcase';
import isObject from 'lodash.isobject';
"use strict";
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.omit = exports.kebabCaseObjectKeys = exports.snakeCaseObjectKeys = exports.camelCaseObjectKeys = exports.transformObjectKeys = void 0;
const lodash_camelcase_1 = __importDefault(require("lodash.camelcase"));
const lodash_snakecase_1 = __importDefault(require("lodash.snakecase"));
const lodash_kebabcase_1 = __importDefault(require("lodash.kebabcase"));
const lodash_isobject_1 = __importDefault(require("lodash.isobject"));
/**

@@ -14,3 +20,3 @@ * Transforms the keys of an object based on a provided transformation function.

*/
export const transformObjectKeys = (transformFn, objectToTransform, deep = false, preserve = false) => {
const transformObjectKeys = (transformFn, objectToTransform, deep = false, preserve = false) => {
const transformedObject = {

@@ -25,3 +31,3 @@ ...(preserve ? objectToTransform : {}),

const value = objectToTransform[prop];
if (!deep || !isObject(value)) {
if (!deep || !(0, lodash_isobject_1.default)(value)) {
transformedObject[newKey] = value;

@@ -31,11 +37,12 @@ continue;

if (Array.isArray(value)) {
transformedObject[newKey] = value.map((t) => isObject(t)
? transformObjectKeys(transformFn, t, deep, preserve)
transformedObject[newKey] = value.map((t) => (0, lodash_isobject_1.default)(t)
? (0, exports.transformObjectKeys)(transformFn, t, deep, preserve)
: t);
continue;
}
transformedObject[newKey] = transformObjectKeys(transformFn, value, deep, preserve);
transformedObject[newKey] = (0, exports.transformObjectKeys)(transformFn, value, deep, preserve);
}
return transformedObject;
};
exports.transformObjectKeys = transformObjectKeys;
/**

@@ -49,3 +56,4 @@ * Transforms the keys of an object to camelCase.

*/
export const camelCaseObjectKeys = (...rest) => transformObjectKeys(camelCase, ...rest);
const camelCaseObjectKeys = (...rest) => (0, exports.transformObjectKeys)(lodash_camelcase_1.default, ...rest);
exports.camelCaseObjectKeys = camelCaseObjectKeys;
/**

@@ -59,3 +67,4 @@ * Transforms the keys of an object to snake_case.

*/
export const snakeCaseObjectKeys = (...rest) => transformObjectKeys(snakeCase, ...rest);
const snakeCaseObjectKeys = (...rest) => (0, exports.transformObjectKeys)(lodash_snakecase_1.default, ...rest);
exports.snakeCaseObjectKeys = snakeCaseObjectKeys;
/**

@@ -69,3 +78,4 @@ * Transforms the keys of an object to kebab-case.

*/
export const kebabCaseObjectKeys = (...rest) => transformObjectKeys(kebabCase, ...rest);
const kebabCaseObjectKeys = (...rest) => (0, exports.transformObjectKeys)(lodash_kebabcase_1.default, ...rest);
exports.kebabCaseObjectKeys = kebabCaseObjectKeys;
/**

@@ -79,4 +89,5 @@ * Omit keys from an object.

*/
export const omit = (keys, obj) => Object.fromEntries(Object.entries(obj)
const omit = (keys, obj) => Object.fromEntries(Object.entries(obj)
.filter(([key]) => !keys.includes(key)));
exports.omit = omit;
//# sourceMappingURL=transformers.js.map

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

export * from './types';
"use strict";
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
var desc = Object.getOwnPropertyDescriptor(m, k);
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
desc = { enumerable: true, get: function() { return m[k]; } };
}
Object.defineProperty(o, k2, desc);
}) : (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
o[k2] = m[k];
}));
var __exportStar = (this && this.__exportStar) || function(m, exports) {
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
};
Object.defineProperty(exports, "__esModule", { value: true });
__exportStar(require("./types"), exports);
//# sourceMappingURL=types.js.map

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

export {};
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
//# sourceMappingURL=APILink.js.map

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

export {};
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
//# sourceMappingURL=APILinks.js.map

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

export {};
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
//# sourceMappingURL=ConfigParams.js.map

@@ -1,4 +0,20 @@

export * from './APILink';
export * from './APILinks';
export * from './ConfigParams';
"use strict";
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
var desc = Object.getOwnPropertyDescriptor(m, k);
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
desc = { enumerable: true, get: function() { return m[k]; } };
}
Object.defineProperty(o, k2, desc);
}) : (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
o[k2] = m[k];
}));
var __exportStar = (this && this.__exportStar) || function(m, exports) {
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
};
Object.defineProperty(exports, "__esModule", { value: true });
__exportStar(require("./APILink"), exports);
__exportStar(require("./APILinks"), exports);
__exportStar(require("./ConfigParams"), exports);
//# sourceMappingURL=index.js.map
{
"$schema": "https://json.schemastore.org/package.json",
"name": "@vonage/server-client",
"version": "1.12.1",
"version": "1.13.0",
"description": "The Vonage Server Client provides core functionalities for interacting with Vonage APIs, ensuring a standardized response regardless of the underlying HTTP adapter.",

@@ -25,3 +25,2 @@ "homepage": "https://developer.vonage.com",

],
"type": "module",
"main": "dist/lib/index.js",

@@ -42,4 +41,4 @@ "types": "dist/lib/index.d.ts",

"dependencies": {
"@vonage/auth": "^1.10.1",
"@vonage/vetch": "^1.7.2",
"@vonage/auth": "^1.11.0",
"@vonage/vetch": "^1.8.0",
"debug": "^4.3.4",

@@ -46,0 +45,0 @@ "lodash.camelcase": "^4.3.0",

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

SocketSocket SOC 2 Logo

Product

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

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc