idea-toolbox
Advanced tools
Comparing version 0.3.0 to 0.4.0
57
index.js
'use strict'; | ||
const AWS = require('aws-sdk'); // there's not need to add it in the package.json | ||
const UUIDV4 = require('uuid/v4'); | ||
const Mailgun = require('mailgun-js'); | ||
const SES_DEFAULT_REGION = process.env['SES_DEFAULT_REGION']; | ||
const SES_DEFAULT_SOURCE = process.env['SES_DEFAULT_SOURCE']; | ||
const SES_DEFAULT_SOURCE_NAME = process.env['SES_DEFAULT_SOURCE_NAME']; | ||
const SES_DEFAULT_SOURCE_ARN = process.env['SES_DEFAULT_SOURCE_ARN']; | ||
module.exports = { | ||
@@ -12,4 +17,4 @@ // DYNAMO | ||
cognitoGetUserByClaims, cognitoGetUserByEmail, | ||
// MAILGUN | ||
mailgunSendEmail, | ||
// SES | ||
sesSendEmail, | ||
// OTHER | ||
@@ -211,20 +216,38 @@ ISODateToItalianFormat | ||
/// | ||
/// MAILGUN | ||
/// SES | ||
/// | ||
/** | ||
* Send an email through a mailgun account | ||
* @param {*} mailgunData apiKey, domain | ||
* @param {*} emailData from, to, replyTo, subject, html | ||
* @param {*} cb (err) => {} | ||
* Send an email through AWS Simple Email Service. | ||
* @param {*} emailData | ||
* toAddresses[], ccAddresses[], bccAddresses[], replyToAddresses[], subject, html, text | ||
* @param {*} cb (err, data) => {} | ||
* @param {*} sesParams (optional) region, source, sourceName, sourceArn | ||
*/ | ||
function mailgunSendEmail(mailgunData, emailData, cb) { | ||
Mailgun({ apiKey: mailgunData.apiKey, domain: mailgunData.domain }) | ||
.messages().send({ | ||
from: emailData.from, | ||
to: emailData.to, | ||
'h:Reply-To': emailData.replyTo, | ||
subject: emailData.subject, | ||
html: emailData.html | ||
}, (err, body) => { cb(err) }); | ||
function sesSendEmail(emailData, cb, sesParams) { | ||
// default SES parameters | ||
if(!sesParams) sesParams = {}; | ||
sesParams.region = sesParams.region || SES_DEFAULT_REGION; | ||
sesParams.source = sesParams.source || SES_DEFAULT_SOURCE; | ||
sesParams.sourceName = sesParams.sourceName || SES_DEFAULT_SOURCE_NAME; | ||
sesParams.sourceArn = sesParams.sourceArn || SES_DEFAULT_SOURCE_ARN; | ||
// prepare SES email data | ||
let sesData = {}; | ||
sesData.Destination = {}; | ||
if(emailData.toAddresses) sesData.Destination.ToAddresses = emailData.toAddresses; | ||
if(emailData.ccAddresses) sesData.Destination.CcAddresses = emailData.ccAddresses; | ||
if(emailData.bccAddresses) sesData.Destination.BccAddresses = emailData.bccAddresses; | ||
sesData.Message = {}; | ||
if(emailData.subject) sesData.Message.Subject = { Charset: 'UTF-8', Data: emailData.subject }; | ||
sesData.Message.Body = {}; | ||
if(emailData.html) sesData.Message.Body.Html = { Charset: 'UTF-8', Data: emailData.html }; | ||
if(emailData.text) sesData.Message.Body.Text = { Charset: 'UTF-8', Data: emailData.text }; | ||
if(!emailData.html && !emailData.text) sesData.Message.Body.Text = { Charset: 'UTF-8', Data: '' }; | ||
sesData.ReplyToAddresses = emailData.replyToAddresses; | ||
sesData.Source = `${sesParams.sourceName} <${sesParams.source}>`; | ||
sesData.SourceArn = sesParams.sourceArn; | ||
console.log('SES send email', sesParams, sesData); | ||
// send email | ||
new AWS.SES({ region: sesParams.region }) | ||
.sendEmail(sesData, (err, data) => { cb(err, data); }); | ||
} | ||
@@ -231,0 +254,0 @@ |
{ | ||
"name": "idea-toolbox", | ||
"version": "0.3.0", | ||
"version": "0.4.0", | ||
"description": "IDEA's utility functions", | ||
@@ -27,5 +27,4 @@ "engines": { | ||
"dependencies": { | ||
"mailgun-js": "^0.13.1", | ||
"uuid": "^3.1.0" | ||
} | ||
} |
Environment variable access
Supply chain riskPackage accesses environment variables, which may be a sign of credential stuffing or data theft.
Found 4 instances in 1 package
13722
1
275
4
- Removedmailgun-js@^0.13.1
- Removedagent-base@2.1.14.3.0(transitive)
- Removedast-types@0.16.1(transitive)
- Removedasync@2.5.0(transitive)
- Removedasynckit@0.4.0(transitive)
- Removedbytes@3.1.2(transitive)
- Removedco@4.6.0(transitive)
- Removedcombined-stream@1.0.8(transitive)
- Removedcore-util-is@1.0.3(transitive)
- Removeddata-uri-to-buffer@1.2.0(transitive)
- Removeddebug@2.6.93.1.03.2.7(transitive)
- Removeddeep-is@0.1.4(transitive)
- Removeddegenerator@1.0.4(transitive)
- Removeddelayed-stream@1.0.0(transitive)
- Removeddepd@2.0.0(transitive)
- Removedes6-promise@4.2.8(transitive)
- Removedes6-promisify@5.0.0(transitive)
- Removedescodegen@1.14.3(transitive)
- Removedesprima@3.1.34.0.1(transitive)
- Removedestraverse@4.3.0(transitive)
- Removedesutils@2.0.3(transitive)
- Removedextend@3.0.2(transitive)
- Removedfast-levenshtein@2.0.6(transitive)
- Removedfile-uri-to-path@1.0.0(transitive)
- Removedform-data@2.2.0(transitive)
- Removedftp@0.3.10(transitive)
- Removedget-uri@2.0.4(transitive)
- Removedhttp-errors@2.0.0(transitive)
- Removedhttp-proxy-agent@1.0.02.1.0(transitive)
- Removedhttps-proxy-agent@1.0.02.2.4(transitive)
- Removediconv-lite@0.4.24(transitive)
- Removedinflection@1.12.01.3.8(transitive)
- Removedinherits@2.0.4(transitive)
- Removedip@1.1.9(transitive)
- Removedis-stream@1.1.0(transitive)
- Removedisarray@0.0.11.0.0(transitive)
- Removedlevn@0.3.0(transitive)
- Removedlodash@4.17.21(transitive)
- Removedlru-cache@2.6.5(transitive)
- Removedmailgun-js@0.13.1(transitive)
- Removedmime-db@1.52.0(transitive)
- Removedmime-types@2.1.35(transitive)
- Removedms@2.0.02.1.3(transitive)
- Removednetmask@1.0.6(transitive)
- Removedoptionator@0.8.3(transitive)
- Removedpac-proxy-agent@2.0.2(transitive)
- Removedpac-resolver@3.0.0(transitive)
- Removedpath-proxy@1.0.0(transitive)
- Removedprelude-ls@1.1.2(transitive)
- Removedprocess-nextick-args@2.0.1(transitive)
- Removedpromisify-call@2.0.4(transitive)
- Removedproxy-agent@2.1.0(transitive)
- Removedraw-body@2.5.2(transitive)
- Removedreadable-stream@1.1.142.3.8(transitive)
- Removedsafe-buffer@5.1.2(transitive)
- Removedsafer-buffer@2.1.2(transitive)
- Removedsemver@5.0.3(transitive)
- Removedsetprototypeof@1.2.0(transitive)
- Removedsmart-buffer@1.1.15(transitive)
- Removedsocks@1.1.10(transitive)
- Removedsocks-proxy-agent@2.1.13.0.1(transitive)
- Removedsource-map@0.6.1(transitive)
- Removedstatuses@2.0.1(transitive)
- Removedstring_decoder@0.10.311.1.1(transitive)
- Removedthunkify@2.1.2(transitive)
- Removedtoidentifier@1.0.1(transitive)
- Removedtslib@2.8.1(transitive)
- Removedtsscmp@1.0.6(transitive)
- Removedtype-check@0.3.2(transitive)
- Removedunpipe@1.0.0(transitive)
- Removedutil-deprecate@1.0.2(transitive)
- Removedwith-callback@1.0.2(transitive)
- Removedword-wrap@1.2.5(transitive)
- Removedxregexp@2.0.0(transitive)