{"version":3,"sources":["jsdelivr-header.js","/npm/nodemailer@6.9.14/lib/nodemailer.js"],"names":[],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA,ACNA,aAEA,MAAM,OAAS,QAAQ,YACjB,OAAS,QAAQ,YACjB,SAAW,QAAQ,eACnB,cAAgB,QAAQ,oBACxB,kBAAoB,QAAQ,wBAC5B,gBAAkB,QAAQ,sBAC1B,cAAgB,QAAQ,oBACxB,aAAe,QAAQ,mBACvB,QAAU,QAAQ,WAClB,YAAc,QAAQ,mBAEtB,cAAgB,QAAQ,IAAI,cAAgB,8BAA8B,QAAQ,OAAQ,IAC1F,cAAgB,QAAQ,IAAI,cAAgB,0BAA0B,QAAQ,OAAQ,IACtF,kBAAoB,QAAQ,IAAI,kBAAoB,IAAI,QAAQ,OAAQ,KAAO,KAC/E,eAAiB,CAAC,OAAQ,MAAO,IAAK,KAAK,UAAU,QAAQ,IAAI,gBAAkB,OAAO,WAAW,OAAO,eAElH,IAAI,aAAc,EAElB,OAAO,QAAQ,gBAAkB,SAAU,EAAa,GACpD,IAAI,EACA,EACA,EAgCJ,OA5B4B,iBAAhB,GAAwD,mBAArB,EAAY,MAE/B,iBAAhB,GAA4B,qBAAqB,KAAK,MAI1D,GAFC,EAAmC,iBAAhB,EAA2B,EAAc,EAAY,KAE/D,OAAO,mBAAmB,GAE1B,EAIV,EADA,EAAQ,KACM,IAAI,SAAS,GACpB,EAAQ,SACD,IAAI,kBAAkB,GAC7B,EAAQ,gBACD,IAAI,gBAAgB,GAC3B,EAAQ,cACD,IAAI,cAAc,GACzB,EAAQ,IACD,IAAI,aAAa,GAEjB,IAAI,cAAc,IAIxC,EAAS,IAAI,OAAO,EAAa,EAAS,GAEnC,CACX,EAEA,OAAO,QAAQ,kBAAoB,SAAU,EAAQ,GACjD,IAAI,EAaJ,GAXK,GAA8B,mBAAX,IACpB,EAAW,EACX,GAAS,GAGR,IACD,EAAU,IAAI,SAAQ,CAAC,EAAS,KAC5B,EAAW,OAAO,gBAAgB,EAAS,EAAO,KAItD,gBAAkB,YAElB,OADA,cAAa,IAAM,EAAS,KAAM,eAC3B,EAGX,EAAS,GAAU,aAEnB,IAAI,EAAS,GACT,EAAW,EAEX,EAAiB,CAAC,EAClB,EAAc,CACd,UAAW,YAAY,KACvB,QAAS,YAAY,SAGrB,mBACA,EAAe,cAAgB,UAAY,kBAG/C,IAAI,EAAM,QAAQ,EAAS,QAAS,CAChC,YAAa,mBACb,OAAQ,OACR,QAAS,EACT,KAAM,OAAO,KAAK,KAAK,UAAU,MAiCrC,OA9BA,EAAI,GAAG,YAAY,KACf,IAAI,EACJ,KAAgC,QAAxB,EAAQ,EAAI,SAChB,EAAO,KAAK,GACZ,GAAY,EAAM,MACtB,IAGJ,EAAI,KAAK,SAAS,GAAO,EAAS,KAElC,EAAI,KAAK,OAAO,KACZ,IACI,EACA,EAFA,EAAM,OAAO,OAAO,EAAQ,GAGhC,IACI,EAAO,KAAK,MAAM,EAAI,WAC1B,CAAE,MAAO,GACL,EAAM,CACV,CACA,OAAI,EACO,EAAS,GAEA,YAAhB,EAAK,QAAwB,EAAK,MAC3B,EAAS,IAAI,MAAM,EAAK,OAAS,2BAErC,EAAK,OACZ,YAAc,OACd,EAAS,KAAM,aAAY,IAGxB,CACX,EAEA,OAAO,QAAQ,kBAAoB,SAAU,GACzC,IAAK,IAAS,EAAK,SACf,OAAO,EAGX,IAAI,EAAY,IAAI,IAOpB,OANA,EAAK,SAAS,QAAQ,iBAAiB,CAAC,EAAG,KACvC,EAAM,QAAQ,2BAA2B,CAAC,EAAG,EAAK,KAC9C,EAAU,IAAI,EAAK,EAAM,GAC3B,OAGF,EAAU,IAAI,YAAa,EAAU,IAAI,YACjC,YAAY,KAAO,cAAgB,YAAc,EAAU,IAAI,QAI/E","file":"/npm/nodemailer@6.9.14/lib/nodemailer.js","sourceRoot":"","sourcesContent":["/**\n * Minified by jsDelivr using Terser v5.39.0.\n * Original file: /npm/nodemailer@6.9.14/lib/nodemailer.js\n *\n * Do NOT use SRI with dynamically generated files! More information: https://www.jsdelivr.com/using-sri-with-dynamic-files\n */\n","'use strict';\n\nconst Mailer = require('./mailer');\nconst shared = require('./shared');\nconst SMTPPool = require('./smtp-pool');\nconst SMTPTransport = require('./smtp-transport');\nconst SendmailTransport = require('./sendmail-transport');\nconst StreamTransport = require('./stream-transport');\nconst JSONTransport = require('./json-transport');\nconst SESTransport = require('./ses-transport');\nconst nmfetch = require('./fetch');\nconst packageData = require('../package.json');\n\nconst ETHEREAL_API = (process.env.ETHEREAL_API || 'https://api.nodemailer.com').replace(/\\/+$/, '');\nconst ETHEREAL_WEB = (process.env.ETHEREAL_WEB || 'https://ethereal.email').replace(/\\/+$/, '');\nconst ETHEREAL_API_KEY = (process.env.ETHEREAL_API_KEY || '').replace(/\\s*/g, '') || null;\nconst ETHEREAL_CACHE = ['true', 'yes', 'y', '1'].includes((process.env.ETHEREAL_CACHE || 'yes').toString().trim().toLowerCase());\n\nlet testAccount = false;\n\nmodule.exports.createTransport = function (transporter, defaults) {\n    let urlConfig;\n    let options;\n    let mailer;\n\n    if (\n        // provided transporter is a configuration object, not transporter plugin\n        (typeof transporter === 'object' && typeof transporter.send !== 'function') ||\n        // provided transporter looks like a connection url\n        (typeof transporter === 'string' && /^(smtps?|direct):/i.test(transporter))\n    ) {\n        if ((urlConfig = typeof transporter === 'string' ? transporter : transporter.url)) {\n            // parse a configuration URL into configuration options\n            options = shared.parseConnectionUrl(urlConfig);\n        } else {\n            options = transporter;\n        }\n\n        if (options.pool) {\n            transporter = new SMTPPool(options);\n        } else if (options.sendmail) {\n            transporter = new SendmailTransport(options);\n        } else if (options.streamTransport) {\n            transporter = new StreamTransport(options);\n        } else if (options.jsonTransport) {\n            transporter = new JSONTransport(options);\n        } else if (options.SES) {\n            transporter = new SESTransport(options);\n        } else {\n            transporter = new SMTPTransport(options);\n        }\n    }\n\n    mailer = new Mailer(transporter, options, defaults);\n\n    return mailer;\n};\n\nmodule.exports.createTestAccount = function (apiUrl, callback) {\n    let promise;\n\n    if (!callback && typeof apiUrl === 'function') {\n        callback = apiUrl;\n        apiUrl = false;\n    }\n\n    if (!callback) {\n        promise = new Promise((resolve, reject) => {\n            callback = shared.callbackPromise(resolve, reject);\n        });\n    }\n\n    if (ETHEREAL_CACHE && testAccount) {\n        setImmediate(() => callback(null, testAccount));\n        return promise;\n    }\n\n    apiUrl = apiUrl || ETHEREAL_API;\n\n    let chunks = [];\n    let chunklen = 0;\n\n    let requestHeaders = {};\n    let requestBody = {\n        requestor: packageData.name,\n        version: packageData.version\n    };\n\n    if (ETHEREAL_API_KEY) {\n        requestHeaders.Authorization = 'Bearer ' + ETHEREAL_API_KEY;\n    }\n\n    let req = nmfetch(apiUrl + '/user', {\n        contentType: 'application/json',\n        method: 'POST',\n        headers: requestHeaders,\n        body: Buffer.from(JSON.stringify(requestBody))\n    });\n\n    req.on('readable', () => {\n        let chunk;\n        while ((chunk = req.read()) !== null) {\n            chunks.push(chunk);\n            chunklen += chunk.length;\n        }\n    });\n\n    req.once('error', err => callback(err));\n\n    req.once('end', () => {\n        let res = Buffer.concat(chunks, chunklen);\n        let data;\n        let err;\n        try {\n            data = JSON.parse(res.toString());\n        } catch (E) {\n            err = E;\n        }\n        if (err) {\n            return callback(err);\n        }\n        if (data.status !== 'success' || data.error) {\n            return callback(new Error(data.error || 'Request failed'));\n        }\n        delete data.status;\n        testAccount = data;\n        callback(null, testAccount);\n    });\n\n    return promise;\n};\n\nmodule.exports.getTestMessageUrl = function (info) {\n    if (!info || !info.response) {\n        return false;\n    }\n\n    let infoProps = new Map();\n    info.response.replace(/\\[([^\\]]+)\\]$/, (m, props) => {\n        props.replace(/\\b([A-Z0-9]+)=([^\\s]+)/g, (m, key, value) => {\n            infoProps.set(key, value);\n        });\n    });\n\n    if (infoProps.has('STATUS') && infoProps.has('MSGID')) {\n        return (testAccount.web || ETHEREAL_WEB) + '/message/' + infoProps.get('MSGID');\n    }\n\n    return false;\n};\n"]}