@vonage/sms
Advanced tools
Comparing version 1.7.0 to 1.8.0
import { Client } from '@vonage/server-client'; | ||
import { SMSMessages } from './interfaces/index'; | ||
import { SMSParams } from './types/index'; | ||
import { AlgorithmTypes } from '@vonage/auth'; | ||
export declare class SMS extends Client { | ||
send(params?: SMSParams): Promise<SMSMessages>; | ||
verifySignature(signature: string, params: string | { | ||
[key: string]: string; | ||
}, signatureSecret: string, algorithm: AlgorithmTypes): boolean; | ||
} |
"use strict"; | ||
var __importDefault = (this && this.__importDefault) || function (mod) { | ||
return (mod && mod.__esModule) ? mod : { "default": mod }; | ||
}; | ||
Object.defineProperty(exports, "__esModule", { value: true }); | ||
@@ -7,2 +10,4 @@ exports.SMS = void 0; | ||
const index_2 = require("./enums/index"); | ||
const crypto_1 = __importDefault(require("crypto")); | ||
const auth_1 = require("@vonage/auth"); | ||
class SMS extends server_client_1.Client { | ||
@@ -23,4 +28,42 @@ async send(params) { | ||
} | ||
verifySignature(signature, params, signatureSecret, algorithm) { | ||
params = params || {}; | ||
let signedQuery = ''; | ||
params = JSON.parse(JSON.stringify(params)); | ||
if (params.sig) { | ||
delete params.sig; | ||
} | ||
Object.keys(params) | ||
.sort() | ||
.forEach((key) => { | ||
// replace & and = with _ | ||
signedQuery += '&' + key + '=' + params[key].replace(/[&=]/g, '_'); | ||
}); | ||
const hashMap = {}; | ||
hashMap[auth_1.AlgorithmTypes.md5hmac] = 'md5'; | ||
hashMap[auth_1.AlgorithmTypes.sha1hmac] = 'sha1'; | ||
hashMap[auth_1.AlgorithmTypes.sha256hmac] = 'sha256'; | ||
hashMap[auth_1.AlgorithmTypes.sha512hmac] = 'sha512'; | ||
let hash = ''; | ||
switch (algorithm) { | ||
case auth_1.AlgorithmTypes.md5hash: | ||
signedQuery += signatureSecret; | ||
hash = crypto_1.default.createHash('md5').update(signedQuery).digest('hex'); | ||
break; | ||
case auth_1.AlgorithmTypes.md5hmac: | ||
case auth_1.AlgorithmTypes.sha1hmac: | ||
case auth_1.AlgorithmTypes.sha256hmac: | ||
case auth_1.AlgorithmTypes.sha512hmac: | ||
hash = crypto_1.default | ||
.createHmac(hashMap[algorithm], signatureSecret) | ||
.update(signedQuery) | ||
.digest('hex'); | ||
break; | ||
default: | ||
throw new Error(`Unknown signature algorithm: ${algorithm}. Expected: md5hash, md5, sha1, sha256, or sha512`); | ||
} | ||
return signature.toUpperCase() === hash.toUpperCase(); | ||
} | ||
} | ||
exports.SMS = SMS; | ||
//# sourceMappingURL=sms.js.map |
{ | ||
"name": "@vonage/sms", | ||
"version": "1.7.0", | ||
"version": "1.8.0", | ||
"description": "Vonage SMS API SDK package", | ||
@@ -30,7 +30,7 @@ "homepage": "https://github.com/vonage/vonage-node-sdk/tree/master/packages/sms#readme", | ||
"dependencies": { | ||
"@vonage/server-client": "^1.7.0", | ||
"@vonage/server-client": "^1.8.0", | ||
"debug": "^4.3.4" | ||
}, | ||
"devDependencies": { | ||
"@vonage/auth": "^1.5.0", | ||
"@vonage/auth": "^1.6.0", | ||
"nock": "^13.3.1" | ||
@@ -37,0 +37,0 @@ }, |
Sorry, the diff of this file is not supported yet
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
39940
672
Updated@vonage/server-client@^1.8.0