pushy-server 2026.3.31-e8f1f186 → 2026.4.1-22bba787
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/{chunk-bqngcxe1.js → chunk-0q3j183c.js} +32 -32
- package/lib/{chunk-bqngcxe1.js.map → chunk-0q3j183c.js.map} +3 -3
- package/lib/dailyjob.js +40 -35
- package/lib/dailyjob.js.map +5 -5
- package/lib/index.js +3 -3
- package/lib/index.js.map +3 -3
- package/lib/worker.js +1 -1
- package/lib/worker.js.map +2 -2
- package/package.json +1 -1
|
@@ -1,57 +1,57 @@
|
|
|
1
1
|
// @bun
|
|
2
|
-
import{ka as j,ma as z}from"./chunk-b6qj3ses.js";var _p=j((vv,Zp)=>{var qp=z("url");class Gp{constructor(p){this.options=p||{},this.cookies=[]}set(p,i){let x=qp.parse(i||""),a=this.parse(p),m;if(a.domain){if(m=a.domain.replace(/^\./,""),x.hostname.length<m.length||("."+x.hostname).substr(-m.length+1)!=="."+m)a.domain=x.hostname}else a.domain=x.hostname;if(!a.path)a.path=this.getPath(x.pathname);if(!a.expires)a.expires=new Date(Date.now()+(Number(this.options.sessionTimeout||1800)||1800)*1000);return this.add(a)}get(p){return this.list(p).map((i)=>i.name+"="+i.value).join("; ")}list(p){let i=[];for(let x=this.cookies.length-1;x>=0;x--){let a=this.cookies[x];if(this.isExpired(a)){this.cookies.splice(x,1);continue}if(this.match(a,p))i.unshift(a)}return i}parse(p){let i={};return(p||"").toString().split(";").forEach((x)=>{let a=x.split("="),m=a.shift().trim().toLowerCase(),v=a.join("=").trim(),l;if(!m)return;switch(m){case"expires":if(v=new Date(v),v.toString()!=="Invalid Date")i.expires=v;break;case"path":i.path=v;break;case"domain":if(l=v.toLowerCase(),l.length&&l.charAt(0)!==".")l="."+l;i.domain=l;break;case"max-age":i.expires=new Date(Date.now()+(Number(v)||0)*1000);break;case"secure":i.secure=!0;break;case"httponly":i.httponly=!0;break;default:if(!i.name)i.name=m,i.value=v}}),i}match(p,i){let x=qp.parse(i||"");if(x.hostname!==p.domain&&(p.domain.charAt(0)!=="."||("."+x.hostname).substr(-p.domain.length)!==p.domain))return!1;if(this.getPath(x.pathname).substr(0,p.path.length)!==p.path)return!1;if(p.secure&&x.protocol!=="https:")return!1;return!0}add(p){if(!p||!p.name)return!1;for(let i=0,x=this.cookies.length;i<x;i++)if(this.compare(this.cookies[i],p)){if(this.isExpired(p))return this.cookies.splice(i,1),!1;return this.cookies[i]=p,!0}if(!this.isExpired(p))this.cookies.push(p);return!0}compare(p,i){return p.name===i.name&&p.path===i.path&&p.domain===i.domain&&p.secure===i.secure&&p.httponly===i.httponly}isExpired(p){return p.expires&&p.expires<new Date||!p.value}getPath(p){let i=(p||"/").split("/");if(i.pop(),i=i.join("/").trim(),i.charAt(0)!=="/")i="/"+i;if(i.substr(-1)!=="/")i+="/";return i}}Zp.exports=Gp});var $=j((lv,Sa)=>{Sa.exports={name:"nodemailer",version:"8.0.4",description:"Easy as cake e-mail sending from your Node.js applications",main:"lib/nodemailer.js",scripts:{test:"node --test --test-concurrency=1 test/**/*.test.js test/**/*-test.js","test:coverage":"c8 node --test --test-concurrency=1 test/**/*.test.js test/**/*-test.js",format:'prettier --write "**/*.{js,json,md}"',"format:check":'prettier --check "**/*.{js,json,md}"',lint:"eslint .","lint:fix":"eslint . --fix",update:"rm -rf node_modules/ package-lock.json && ncu -u && npm install","test:syntax":'docker run --rm -v "$PWD:/app:ro" -w /app node:6-alpine node test/syntax-compat.js'},repository:{type:"git",url:"https://github.com/nodemailer/nodemailer.git"},keywords:["Nodemailer"],author:"Andris Reinman",license:"MIT-0",bugs:{url:"https://github.com/nodemailer/nodemailer/issues"},homepage:"https://nodemailer.com/",devDependencies:{"@aws-sdk/client-sesv2":"3.1011.0",bunyan:"1.8.15",c8:"11.0.0",eslint:"10.0.3","eslint-config-prettier":"10.1.8",globals:"17.4.0",libbase64:"1.3.0",libmime:"5.3.7",libqp:"2.1.1","nodemailer-ntlm-auth":"1.0.4",prettier:"3.8.1",proxy:"1.0.2","proxy-test-server":"1.0.0","smtp-server":"3.18.1"},engines:{node:">=6.0.0"}}});var B=j((cv,b)=>{var $p={ECONNECTION:"Connection closed unexpectedly",ETIMEDOUT:"Connection or operation timed out",ESOCKET:"Socket-level error",EDNS:"DNS resolution failed",ETLS:"TLS handshake or STARTTLS failed",EREQUIRETLS:"REQUIRETLS not supported by server (RFC 8689)",EPROTOCOL:"Invalid SMTP server response",EENVELOPE:"Invalid mail envelope (sender or recipients)",EMESSAGE:"Message delivery error",ESTREAM:"Stream processing error",EAUTH:"Authentication failed",ENOAUTH:"Authentication credentials not provided",EOAUTH2:"OAuth2 token generation or refresh error",EMAXLIMIT:"Pool resource limit reached (max messages per connection)",ESENDMAIL:"Sendmail command error",ESES:"AWS SES transport error",ECONFIG:"Invalid configuration",EPROXY:"Proxy connection error",EFILEACCESS:"File access rejected (disableFileAccess is set)",EURLACCESS:"URL access rejected (disableUrlAccess is set)",EFETCH:"HTTP fetch error"};b.exports={ERROR_CODES:$p};for(let p of Object.keys($p))b.exports[p]=p});var E=j((ov,L)=>{var Ua=z("http"),Ea=z("https"),Bp=z("url"),Ha=z("zlib"),{PassThrough:Fa}=z("stream"),Ap=_p(),Ia=$(),Na=z("net"),Q=B();L.exports=function(p,i){return Qp(p,i)};L.exports.Cookies=Ap;function Qp(p,i){if(i=i||{},i.fetchRes=i.fetchRes||new Fa,i.cookies=i.cookies||new Ap,i.redirects=i.redirects||0,i.maxRedirects=isNaN(i.maxRedirects)?5:i.maxRedirects,i.cookie)[].concat(i.cookie||[]).forEach((w)=>{i.cookies.set(w,p)}),i.cookie=!1;let x=i.fetchRes,a=Bp.parse(p),m=(i.method||"").toString().trim().toUpperCase()||"GET",v=!1,l,c,o=a.protocol==="https:"?Ea:Ua,d={"accept-encoding":"gzip,deflate","user-agent":"nodemailer/"+Ia.version};if(Object.keys(i.headers||{}).forEach((w)=>{d[w.toLowerCase().trim()]=i.headers[w]}),i.userAgent)d["user-agent"]=i.userAgent;if(a.auth)d.Authorization="Basic "+Buffer.from(a.auth).toString("base64");if(l=i.cookies.get(p))d.cookie=l;if(i.body){if(i.contentType!==!1)d["Content-Type"]=i.contentType||"application/x-www-form-urlencoded";if(typeof i.body.pipe==="function")d["Transfer-Encoding"]="chunked",c=i.body,c.on("error",(w)=>{if(v)return;v=!0,w.code=Q.EFETCH,w.sourceUrl=p,x.emit("error",w)});else{if(i.body instanceof Buffer)c=i.body;else if(typeof i.body==="object")try{c=Buffer.from(Object.keys(i.body).map((w)=>{let t=i.body[w].toString().trim();return encodeURIComponent(w)+"="+encodeURIComponent(t)}).join("&"))}catch(w){if(v)return;v=!0,w.code=Q.EFETCH,w.sourceUrl=p,x.emit("error",w);return}else c=Buffer.from(i.body.toString().trim());d["Content-Type"]=i.contentType||"application/x-www-form-urlencoded",d["Content-Length"]=c.length}m=(i.method||"").toString().trim().toUpperCase()||"POST"}let g,f={method:m,host:a.hostname,path:a.path,port:a.port?a.port:a.protocol==="https:"?443:80,headers:d,rejectUnauthorized:!1,agent:!1};if(i.tls)Object.assign(f,i.tls);if(a.protocol==="https:"&&a.hostname&&a.hostname!==f.host&&!Na.isIP(a.hostname)&&!f.servername)f.servername=a.hostname;try{g=o.request(f)}catch(w){return v=!0,setImmediate(()=>{w.code=Q.EFETCH,w.sourceUrl=p,x.emit("error",w)}),x}if(i.timeout)g.setTimeout(i.timeout,()=>{if(v)return;v=!0,g.abort();let w=Error("Request Timeout");w.code=Q.EFETCH,w.sourceUrl=p,x.emit("error",w)});return g.on("error",(w)=>{if(v)return;v=!0,w.code=Q.EFETCH,w.sourceUrl=p,x.emit("error",w)}),g.on("response",(w)=>{let t;if(v)return;switch(w.headers["content-encoding"]){case"gzip":case"deflate":t=Ha.createUnzip();break}if(w.headers["set-cookie"])[].concat(w.headers["set-cookie"]||[]).forEach((n)=>{i.cookies.set(n,p)});if([301,302,303,307,308].includes(w.statusCode)&&w.headers.location){if(i.redirects++,i.redirects>i.maxRedirects){v=!0;let n=Error("Maximum redirect count exceeded");n.code=Q.EFETCH,n.sourceUrl=p,x.emit("error",n),g.abort();return}return i.method="GET",i.body=!1,Qp(Bp.resolve(p,w.headers.location),i)}if(x.statusCode=w.statusCode,x.headers=w.headers,w.statusCode>=300&&!i.allowErrorResponse){v=!0;let n=Error("Invalid status code "+w.statusCode);n.code=Q.EFETCH,n.sourceUrl=p,x.emit("error",n),g.abort();return}if(w.on("error",(n)=>{if(v)return;v=!0,n.code=Q.EFETCH,n.sourceUrl=p,x.emit("error",n),g.abort()}),t)w.pipe(t).pipe(x),t.on("error",(n)=>{if(v)return;v=!0,n.code=Q.EFETCH,n.sourceUrl=p,x.emit("error",n),g.abort()});else w.pipe(x)}),setImmediate(()=>{if(c)try{if(typeof c.pipe==="function")return c.pipe(g);g.write(c)}catch(w){v=!0,w.code=Q.EFETCH,w.sourceUrl=p,x.emit("error",w);return}g.end()}),x}});var Z=j((La,G)=>{var Ca=z("url"),Ra=z("util"),Ta=z("fs"),Da=E(),Y=z("dns"),Oa=z("net"),Pa=z("os"),R=0;La._lastCacheCleanup=()=>R;La._resetCacheCleanup=()=>{R=0};var Wp;try{Wp=Pa.networkInterfaces()}catch(p){}La.networkInterfaces=Wp;var Xp=(p,i)=>{let x=La.networkInterfaces;if(!x)return!0;return Object.keys(x).map((a)=>x[a]).reduce((a,m)=>a.concat(m),[]).filter((a)=>!a.internal||i).some((a)=>a.family==="IPv"+p||a.family===p)},Yp=(p,i,x,a)=>{if(x=x||{},!Xp(p,x.allowInternalNetworkInterfaces))return a(null,[]);(Y.Resolver?new Y.Resolver(x):Y)["resolve"+p](i,(v,l)=>{if(v){switch(v.code){case Y.NODATA:case Y.NOTFOUND:case Y.NOTIMP:case Y.SERVFAIL:case Y.CONNREFUSED:case Y.REFUSED:case"EAI_AGAIN":return a(null,[])}return a(v)}return a(null,Array.isArray(l)?l:[].concat(l||[]))})},_=La.dnsCache=new Map,X=(p,i)=>{if(!p)return Object.assign({},i||{});let x=p.addresses||[],a=x.length>0?x[Math.floor(Math.random()*x.length)]:null;return Object.assign({servername:p.servername,host:a,_addresses:x},i||{})};La.resolveHostname=(p,i)=>{if(p=p||{},!p.host&&p.servername)p.host=p.servername;if(!p.host||Oa.isIP(p.host)){let c={addresses:[p.host],servername:p.servername||!1};return i(null,X(c,{cached:!1}))}let x;if(_.has(p.host)){x=_.get(p.host);let c=Date.now();if(c-R>30000){R=c;for(let[o,d]of _.entries())if(d.expires&&d.expires<c)_.delete(o);if(_.size>1000){let o=Math.floor(100);Array.from(_.keys()).slice(0,o).forEach((g)=>_.delete(g))}}if(!x.expires||x.expires>=c)return i(null,X(x.value,{cached:!0}))}let a=[],m=[],v=null,l=null;Yp(4,p.host,p,(c,o)=>{if(c)v=c;else a=o||[];Yp(6,p.host,p,(d,g)=>{if(d)l=d;else m=g||[];let f=a.concat(m);if(f.length){let w={addresses:f,servername:p.servername||p.host};return _.set(p.host,{value:w,expires:Date.now()+(p.dnsTtl||300000)}),i(null,X(w,{cached:!1}))}if(v&&l){if(x)return _.set(p.host,{value:x.value,expires:Date.now()+(p.dnsTtl||300000)}),i(null,X(x.value,{cached:!0,error:v}))}try{Y.lookup(p.host,{all:!0},(w,t)=>{if(w){if(x)return _.set(p.host,{value:x.value,expires:Date.now()+(p.dnsTtl||300000)}),i(null,X(x.value,{cached:!0,error:w}));return i(w)}let n=t?t.filter((M)=>Xp(M.family)).map((M)=>M.address):[];if(t&&t.length&&!n.length)console.warn(`Failed to resolve IPv${t[0].family} addresses with current network`);if(!n.length&&x)return i(null,X(x.value,{cached:!0}));let q={addresses:n.length?n:[p.host],servername:p.servername||p.host};return _.set(p.host,{value:q,expires:Date.now()+(p.dnsTtl||300000)}),i(null,X(q,{cached:!1}))})}catch(w){if(x)return _.set(p.host,{value:x.value,expires:Date.now()+(p.dnsTtl||300000)}),i(null,X(x.value,{cached:!0,error:w}));return i(v||l||w)}})})};La.parseConnectionUrl=(p)=>{p=p||"";let i={},x=Ca.parse(p,!0);switch(x.protocol){case"smtp:":i.secure=!1;break;case"smtps:":i.secure=!0;break;case"direct:":i.direct=!0;break}if(!isNaN(x.port)&&Number(x.port))i.port=Number(x.port);if(x.hostname)i.host=x.hostname;if(x.auth){let a=x.auth.split(":");i.auth={user:a.shift(),pass:a.join(":")}}return Object.keys(x.query||{}).forEach((a)=>{let m=i,v=a,l=x.query[a];if(!isNaN(l))l=Number(l);switch(l){case"true":l=!0;break;case"false":l=!1;break}if(a.indexOf("tls.")===0){if(v=a.substr(4),!i.tls)i.tls={};m=i.tls}else if(a.indexOf(".")>=0)return;if(!(v in m))m[v]=l}),i};La._logFunc=(p,i,x,a,m,...v)=>{let l=Object.assign({},x||{},a||{});delete l.level,p[i](l,m,...v)};La.getLogger=(p,i)=>{p=p||{};let x={},a=["trace","debug","info","warn","error","fatal"];if(!p.logger)return a.forEach((v)=>{x[v]=()=>!1}),x;let m=p.logger===!0?ba(a):p.logger;return a.forEach((v)=>{x[v]=(l,c,...o)=>{La._logFunc(m,v,i,l,c,...o)}}),x};La.callbackPromise=(p,i)=>function(){let x=Array.from(arguments),a=x.shift();if(a)i(a);else p(...x)};La.parseDataURI=(p)=>{if(typeof p!=="string")return null;if(!p.startsWith("data:"))return null;let i=p.indexOf(",");if(i===-1)return null;let x=p.substring(i+1),a=p.substring(5,i),m,v=a.split(";");if(v.length>0){let d=v[v.length-1].toLowerCase().trim();if(["base64","utf8","utf-8"].includes(d)&&d.indexOf("=")===-1)m=d,v.pop()}let l=v.length>0?v.shift():"application/octet-stream",c={};for(let d=0;d<v.length;d++){let g=v[d],f=g.indexOf("=");if(f>0){let w=g.substring(0,f).trim(),t=g.substring(f+1).trim();if(w)c[w]=t}}let o;try{if(m==="base64")o=Buffer.from(x,"base64");else try{o=Buffer.from(decodeURIComponent(x))}catch(d){o=Buffer.from(x)}}catch(d){o=Buffer.alloc(0)}return{data:o,encoding:m||null,contentType:l||"application/octet-stream",params:c}};La.resolveContent=(p,i,x)=>{let a;if(!x)a=new Promise((l,c)=>{x=La.callbackPromise(l,c)});let m=p&&p[i]&&p[i].content||p[i],v=(typeof p[i]==="object"&&p[i].encoding||"utf8").toString().toLowerCase().replace(/[-_\s]/g,"");if(!m)return x(null,m);if(typeof m==="object"){if(typeof m.pipe==="function")return y(m,(l,c)=>{if(l)return x(l);if(p[i].content)p[i].content=c;else p[i]=c;x(null,c)});else if(/^https?:\/\//i.test(m.path||m.href))return y(Da(m.path||m.href),x);else if(/^data:/i.test(m.path||m.href)){let l=La.parseDataURI(m.path||m.href);if(!l||!l.data)return x(null,Buffer.from(0));return x(null,l.data)}else if(m.path)return y(Ta.createReadStream(m.path),x)}if(typeof p[i].content==="string"&&!["utf8","usascii","ascii"].includes(v))m=Buffer.from(p[i].content,v);return setImmediate(()=>x(null,m)),a};La.assign=function(){let p=Array.from(arguments),i=p.shift()||{};return p.forEach((x)=>{Object.keys(x||{}).forEach((a)=>{if(["tls","auth"].includes(a)&&x[a]&&typeof x[a]==="object")i[a]=Object.assign(i[a]||{},x[a]);else i[a]=x[a]})}),i};La.encodeXText=(p)=>{if(!/[^\x21-\x2A\x2C-\x3C\x3E-\x7E]/.test(p))return p;let i=Buffer.from(p),x="";for(let a=0,m=i.length;a<m;a++){let v=i[a];if(v<33||v>126||v===43||v===61)x+="+"+(v<16?"0":"")+v.toString(16).toUpperCase();else x+=String.fromCharCode(v)}return x};function y(p,i){let x=!1,a=[],m=0;p.on("error",(v)=>{if(x)return;x=!0,i(v)}),p.on("readable",()=>{let v;while((v=p.read())!==null)a.push(v),m+=v.length}),p.on("end",()=>{if(x)return;x=!0;let v;try{v=Buffer.concat(a,m)}catch(l){return i(l)}i(null,v)})}function ba(p){let i=p.reduce((v,l)=>Math.max(v,l.length),0),x=new Map;p.forEach((v)=>{let l=v.toUpperCase();if(l.length<i)l+=" ".repeat(i-l.length);x.set(v,l)});let a=(v,l,c,...o)=>{let d="";if(l){if(l.tnx==="server")d="S: ";else if(l.tnx==="client")d="C: ";if(l.sid)d="["+l.sid+"] "+d;if(l.cid)d="[#"+l.cid+"] "+d}c=Ra.format(c,...o),c.split(/\r?\n/).forEach((g)=>{console.log("[%s] %s %s",new Date().toISOString().substr(0,19).replace(/T/," "),x.get(v),d+g)})},m={};return p.forEach((v)=>{m[v]=a.bind(null,v)}),m}});var u=j((fv,Ep)=>{var ix=z("path"),Sp=new Map([["application/acad","dwg"],["application/applixware","aw"],["application/arj","arj"],["application/atom+xml","xml"],["application/atomcat+xml","atomcat"],["application/atomsvc+xml","atomsvc"],["application/base64",["mm","mme"]],["application/binhex","hqx"],["application/binhex4","hqx"],["application/book",["book","boo"]],["application/ccxml+xml,","ccxml"],["application/cdf","cdf"],["application/cdmi-capability","cdmia"],["application/cdmi-container","cdmic"],["application/cdmi-domain","cdmid"],["application/cdmi-object","cdmio"],["application/cdmi-queue","cdmiq"],["application/clariscad","ccad"],["application/commonground","dp"],["application/cu-seeme","cu"],["application/davmount+xml","davmount"],["application/drafting","drw"],["application/dsptype","tsp"],["application/dssc+der","dssc"],["application/dssc+xml","xdssc"],["application/dxf","dxf"],["application/ecmascript",["js","es"]],["application/emma+xml","emma"],["application/envoy","evy"],["application/epub+zip","epub"],["application/excel",["xls","xl","xla","xlb","xlc","xld","xlk","xll","xlm","xlt","xlv","xlw"]],["application/exi","exi"],["application/font-tdpfr","pfr"],["application/fractals","fif"],["application/freeloader","frl"],["application/futuresplash","spl"],["application/geo+json","geojson"],["application/gnutar","tgz"],["application/groupwise","vew"],["application/hlp","hlp"],["application/hta","hta"],["application/hyperstudio","stk"],["application/i-deas","unv"],["application/iges",["iges","igs"]],["application/inf","inf"],["application/internet-property-stream","acx"],["application/ipfix","ipfix"],["application/java","class"],["application/java-archive","jar"],["application/java-byte-code","class"],["application/java-serialized-object","ser"],["application/java-vm","class"],["application/javascript","js"],["application/json","json"],["application/lha","lha"],["application/lzx","lzx"],["application/mac-binary","bin"],["application/mac-binhex","hqx"],["application/mac-binhex40","hqx"],["application/mac-compactpro","cpt"],["application/macbinary","bin"],["application/mads+xml","mads"],["application/marc","mrc"],["application/marcxml+xml","mrcx"],["application/mathematica","ma"],["application/mathml+xml","mathml"],["application/mbedlet","mbd"],["application/mbox","mbox"],["application/mcad","mcd"],["application/mediaservercontrol+xml","mscml"],["application/metalink4+xml","meta4"],["application/mets+xml","mets"],["application/mime","aps"],["application/mods+xml","mods"],["application/mp21","m21"],["application/mp4","mp4"],["application/mspowerpoint",["ppt","pot","pps","ppz"]],["application/msword",["doc","dot","w6w","wiz","word"]],["application/mswrite","wri"],["application/mxf","mxf"],["application/netmc","mcp"],["application/octet-stream",["*"]],["application/oda","oda"],["application/oebps-package+xml","opf"],["application/ogg","ogx"],["application/olescript","axs"],["application/onenote","onetoc"],["application/patch-ops-error+xml","xer"],["application/pdf","pdf"],["application/pgp-encrypted","asc"],["application/pgp-signature","pgp"],["application/pics-rules","prf"],["application/pkcs-12","p12"],["application/pkcs-crl","crl"],["application/pkcs10","p10"],["application/pkcs7-mime",["p7c","p7m"]],["application/pkcs7-signature","p7s"],["application/pkcs8","p8"],["application/pkix-attr-cert","ac"],["application/pkix-cert",["cer","crt"]],["application/pkix-crl","crl"],["application/pkix-pkipath","pkipath"],["application/pkixcmp","pki"],["application/plain","text"],["application/pls+xml","pls"],["application/postscript",["ps","ai","eps"]],["application/powerpoint","ppt"],["application/pro_eng",["part","prt"]],["application/prs.cww","cww"],["application/pskc+xml","pskcxml"],["application/rdf+xml","rdf"],["application/reginfo+xml","rif"],["application/relax-ng-compact-syntax","rnc"],["application/resource-lists+xml","rl"],["application/resource-lists-diff+xml","rld"],["application/ringing-tones","rng"],["application/rls-services+xml","rs"],["application/rsd+xml","rsd"],["application/rss+xml","xml"],["application/rtf",["rtf","rtx"]],["application/sbml+xml","sbml"],["application/scvp-cv-request","scq"],["application/scvp-cv-response","scs"],["application/scvp-vp-request","spq"],["application/scvp-vp-response","spp"],["application/sdp","sdp"],["application/sea","sea"],["application/set","set"],["application/set-payment-initiation","setpay"],["application/set-registration-initiation","setreg"],["application/shf+xml","shf"],["application/sla","stl"],["application/smil",["smi","smil"]],["application/smil+xml","smi"],["application/solids","sol"],["application/sounder","sdr"],["application/sparql-query","rq"],["application/sparql-results+xml","srx"],["application/srgs","gram"],["application/srgs+xml","grxml"],["application/sru+xml","sru"],["application/ssml+xml","ssml"],["application/step",["step","stp"]],["application/streamingmedia","ssm"],["application/tei+xml","tei"],["application/thraud+xml","tfi"],["application/timestamped-data","tsd"],["application/toolbook","tbk"],["application/vda","vda"],["application/vnd.3gpp.pic-bw-large","plb"],["application/vnd.3gpp.pic-bw-small","psb"],["application/vnd.3gpp.pic-bw-var","pvb"],["application/vnd.3gpp2.tcap","tcap"],["application/vnd.3m.post-it-notes","pwn"],["application/vnd.accpac.simply.aso","aso"],["application/vnd.accpac.simply.imp","imp"],["application/vnd.acucobol","acu"],["application/vnd.acucorp","atc"],["application/vnd.adobe.air-application-installer-package+zip","air"],["application/vnd.adobe.fxp","fxp"],["application/vnd.adobe.xdp+xml","xdp"],["application/vnd.adobe.xfdf","xfdf"],["application/vnd.ahead.space","ahead"],["application/vnd.airzip.filesecure.azf","azf"],["application/vnd.airzip.filesecure.azs","azs"],["application/vnd.amazon.ebook","azw"],["application/vnd.americandynamics.acc","acc"],["application/vnd.amiga.ami","ami"],["application/vnd.android.package-archive","apk"],["application/vnd.anser-web-certificate-issue-initiation","cii"],["application/vnd.anser-web-funds-transfer-initiation","fti"],["application/vnd.antix.game-component","atx"],["application/vnd.apple.installer+xml","mpkg"],["application/vnd.apple.mpegurl","m3u8"],["application/vnd.aristanetworks.swi","swi"],["application/vnd.audiograph","aep"],["application/vnd.blueice.multipass","mpm"],["application/vnd.bmi","bmi"],["application/vnd.businessobjects","rep"],["application/vnd.chemdraw+xml","cdxml"],["application/vnd.chipnuts.karaoke-mmd","mmd"],["application/vnd.cinderella","cdy"],["application/vnd.claymore","cla"],["application/vnd.cloanto.rp9","rp9"],["application/vnd.clonk.c4group","c4g"],["application/vnd.cluetrust.cartomobile-config","c11amc"],["application/vnd.cluetrust.cartomobile-config-pkg","c11amz"],["application/vnd.commonspace","csp"],["application/vnd.contact.cmsg","cdbcmsg"],["application/vnd.cosmocaller","cmc"],["application/vnd.crick.clicker","clkx"],["application/vnd.crick.clicker.keyboard","clkk"],["application/vnd.crick.clicker.palette","clkp"],["application/vnd.crick.clicker.template","clkt"],["application/vnd.crick.clicker.wordbank","clkw"],["application/vnd.criticaltools.wbs+xml","wbs"],["application/vnd.ctc-posml","pml"],["application/vnd.cups-ppd","ppd"],["application/vnd.curl.car","car"],["application/vnd.curl.pcurl","pcurl"],["application/vnd.data-vision.rdz","rdz"],["application/vnd.denovo.fcselayout-link","fe_launch"],["application/vnd.dna","dna"],["application/vnd.dolby.mlp","mlp"],["application/vnd.dpgraph","dpg"],["application/vnd.dreamfactory","dfac"],["application/vnd.dvb.ait","ait"],["application/vnd.dvb.service","svc"],["application/vnd.dynageo","geo"],["application/vnd.ecowin.chart","mag"],["application/vnd.enliven","nml"],["application/vnd.epson.esf","esf"],["application/vnd.epson.msf","msf"],["application/vnd.epson.quickanime","qam"],["application/vnd.epson.salt","slt"],["application/vnd.epson.ssf","ssf"],["application/vnd.eszigno3+xml","es3"],["application/vnd.ezpix-album","ez2"],["application/vnd.ezpix-package","ez3"],["application/vnd.fdf","fdf"],["application/vnd.fdsn.seed","seed"],["application/vnd.flographit","gph"],["application/vnd.fluxtime.clip","ftc"],["application/vnd.framemaker","fm"],["application/vnd.frogans.fnc","fnc"],["application/vnd.frogans.ltf","ltf"],["application/vnd.fsc.weblaunch","fsc"],["application/vnd.fujitsu.oasys","oas"],["application/vnd.fujitsu.oasys2","oa2"],["application/vnd.fujitsu.oasys3","oa3"],["application/vnd.fujitsu.oasysgp","fg5"],["application/vnd.fujitsu.oasysprs","bh2"],["application/vnd.fujixerox.ddd","ddd"],["application/vnd.fujixerox.docuworks","xdw"],["application/vnd.fujixerox.docuworks.binder","xbd"],["application/vnd.fuzzysheet","fzs"],["application/vnd.genomatix.tuxedo","txd"],["application/vnd.geogebra.file","ggb"],["application/vnd.geogebra.tool","ggt"],["application/vnd.geometry-explorer","gex"],["application/vnd.geonext","gxt"],["application/vnd.geoplan","g2w"],["application/vnd.geospace","g3w"],["application/vnd.gmx","gmx"],["application/vnd.google-earth.kml+xml","kml"],["application/vnd.google-earth.kmz","kmz"],["application/vnd.grafeq","gqf"],["application/vnd.groove-account","gac"],["application/vnd.groove-help","ghf"],["application/vnd.groove-identity-message","gim"],["application/vnd.groove-injector","grv"],["application/vnd.groove-tool-message","gtm"],["application/vnd.groove-tool-template","tpl"],["application/vnd.groove-vcard","vcg"],["application/vnd.hal+xml","hal"],["application/vnd.handheld-entertainment+xml","zmm"],["application/vnd.hbci","hbci"],["application/vnd.hhe.lesson-player","les"],["application/vnd.hp-hpgl",["hgl","hpg","hpgl"]],["application/vnd.hp-hpid","hpid"],["application/vnd.hp-hps","hps"],["application/vnd.hp-jlyt","jlt"],["application/vnd.hp-pcl","pcl"],["application/vnd.hp-pclxl","pclxl"],["application/vnd.hydrostatix.sof-data","sfd-hdstx"],["application/vnd.hzn-3d-crossword","x3d"],["application/vnd.ibm.minipay","mpy"],["application/vnd.ibm.modcap","afp"],["application/vnd.ibm.rights-management","irm"],["application/vnd.ibm.secure-container","sc"],["application/vnd.iccprofile","icc"],["application/vnd.igloader","igl"],["application/vnd.immervision-ivp","ivp"],["application/vnd.immervision-ivu","ivu"],["application/vnd.insors.igm","igm"],["application/vnd.intercon.formnet","xpw"],["application/vnd.intergeo","i2g"],["application/vnd.intu.qbo","qbo"],["application/vnd.intu.qfx","qfx"],["application/vnd.ipunplugged.rcprofile","rcprofile"],["application/vnd.irepository.package+xml","irp"],["application/vnd.is-xpr","xpr"],["application/vnd.isac.fcs","fcs"],["application/vnd.jam","jam"],["application/vnd.jcp.javame.midlet-rms","rms"],["application/vnd.jisp","jisp"],["application/vnd.joost.joda-archive","joda"],["application/vnd.kahootz","ktz"],["application/vnd.kde.karbon","karbon"],["application/vnd.kde.kchart","chrt"],["application/vnd.kde.kformula","kfo"],["application/vnd.kde.kivio","flw"],["application/vnd.kde.kontour","kon"],["application/vnd.kde.kpresenter","kpr"],["application/vnd.kde.kspread","ksp"],["application/vnd.kde.kword","kwd"],["application/vnd.kenameaapp","htke"],["application/vnd.kidspiration","kia"],["application/vnd.kinar","kne"],["application/vnd.koan","skp"],["application/vnd.kodak-descriptor","sse"],["application/vnd.las.las+xml","lasxml"],["application/vnd.llamagraphics.life-balance.desktop","lbd"],["application/vnd.llamagraphics.life-balance.exchange+xml","lbe"],["application/vnd.lotus-1-2-3","123"],["application/vnd.lotus-approach","apr"],["application/vnd.lotus-freelance","pre"],["application/vnd.lotus-notes","nsf"],["application/vnd.lotus-organizer","org"],["application/vnd.lotus-screencam","scm"],["application/vnd.lotus-wordpro","lwp"],["application/vnd.macports.portpkg","portpkg"],["application/vnd.mcd","mcd"],["application/vnd.medcalcdata","mc1"],["application/vnd.mediastation.cdkey","cdkey"],["application/vnd.mfer","mwf"],["application/vnd.mfmp","mfm"],["application/vnd.micrografx.flo","flo"],["application/vnd.micrografx.igx","igx"],["application/vnd.mif","mif"],["application/vnd.mobius.daf","daf"],["application/vnd.mobius.dis","dis"],["application/vnd.mobius.mbk","mbk"],["application/vnd.mobius.mqy","mqy"],["application/vnd.mobius.msl","msl"],["application/vnd.mobius.plc","plc"],["application/vnd.mobius.txf","txf"],["application/vnd.mophun.application","mpn"],["application/vnd.mophun.certificate","mpc"],["application/vnd.mozilla.xul+xml","xul"],["application/vnd.ms-artgalry","cil"],["application/vnd.ms-cab-compressed","cab"],["application/vnd.ms-excel",["xls","xla","xlc","xlm","xlt","xlw","xlb","xll"]],["application/vnd.ms-excel.addin.macroenabled.12","xlam"],["application/vnd.ms-excel.sheet.binary.macroenabled.12","xlsb"],["application/vnd.ms-excel.sheet.macroenabled.12","xlsm"],["application/vnd.ms-excel.template.macroenabled.12","xltm"],["application/vnd.ms-fontobject","eot"],["application/vnd.ms-htmlhelp","chm"],["application/vnd.ms-ims","ims"],["application/vnd.ms-lrm","lrm"],["application/vnd.ms-officetheme","thmx"],["application/vnd.ms-outlook","msg"],["application/vnd.ms-pki.certstore","sst"],["application/vnd.ms-pki.pko","pko"],["application/vnd.ms-pki.seccat","cat"],["application/vnd.ms-pki.stl","stl"],["application/vnd.ms-pkicertstore","sst"],["application/vnd.ms-pkiseccat","cat"],["application/vnd.ms-pkistl","stl"],["application/vnd.ms-powerpoint",["ppt","pot","pps","ppa","pwz"]],["application/vnd.ms-powerpoint.addin.macroenabled.12","ppam"],["application/vnd.ms-powerpoint.presentation.macroenabled.12","pptm"],["application/vnd.ms-powerpoint.slide.macroenabled.12","sldm"],["application/vnd.ms-powerpoint.slideshow.macroenabled.12","ppsm"],["application/vnd.ms-powerpoint.template.macroenabled.12","potm"],["application/vnd.ms-project","mpp"],["application/vnd.ms-word.document.macroenabled.12","docm"],["application/vnd.ms-word.template.macroenabled.12","dotm"],["application/vnd.ms-works",["wks","wcm","wdb","wps"]],["application/vnd.ms-wpl","wpl"],["application/vnd.ms-xpsdocument","xps"],["application/vnd.mseq","mseq"],["application/vnd.musician","mus"],["application/vnd.muvee.style","msty"],["application/vnd.neurolanguage.nlu","nlu"],["application/vnd.noblenet-directory","nnd"],["application/vnd.noblenet-sealer","nns"],["application/vnd.noblenet-web","nnw"],["application/vnd.nokia.configuration-message","ncm"],["application/vnd.nokia.n-gage.data","ngdat"],["application/vnd.nokia.n-gage.symbian.install","n-gage"],["application/vnd.nokia.radio-preset","rpst"],["application/vnd.nokia.radio-presets","rpss"],["application/vnd.nokia.ringing-tone","rng"],["application/vnd.novadigm.edm","edm"],["application/vnd.novadigm.edx","edx"],["application/vnd.novadigm.ext","ext"],["application/vnd.oasis.opendocument.chart","odc"],["application/vnd.oasis.opendocument.chart-template","otc"],["application/vnd.oasis.opendocument.database","odb"],["application/vnd.oasis.opendocument.formula","odf"],["application/vnd.oasis.opendocument.formula-template","odft"],["application/vnd.oasis.opendocument.graphics","odg"],["application/vnd.oasis.opendocument.graphics-template","otg"],["application/vnd.oasis.opendocument.image","odi"],["application/vnd.oasis.opendocument.image-template","oti"],["application/vnd.oasis.opendocument.presentation","odp"],["application/vnd.oasis.opendocument.presentation-template","otp"],["application/vnd.oasis.opendocument.spreadsheet","ods"],["application/vnd.oasis.opendocument.spreadsheet-template","ots"],["application/vnd.oasis.opendocument.text","odt"],["application/vnd.oasis.opendocument.text-master","odm"],["application/vnd.oasis.opendocument.text-template","ott"],["application/vnd.oasis.opendocument.text-web","oth"],["application/vnd.olpc-sugar","xo"],["application/vnd.oma.dd2+xml","dd2"],["application/vnd.openofficeorg.extension","oxt"],["application/vnd.openxmlformats-officedocument.presentationml.presentation","pptx"],["application/vnd.openxmlformats-officedocument.presentationml.slide","sldx"],["application/vnd.openxmlformats-officedocument.presentationml.slideshow","ppsx"],["application/vnd.openxmlformats-officedocument.presentationml.template","potx"],["application/vnd.openxmlformats-officedocument.spreadsheetml.sheet","xlsx"],["application/vnd.openxmlformats-officedocument.spreadsheetml.template","xltx"],["application/vnd.openxmlformats-officedocument.wordprocessingml.document","docx"],["application/vnd.openxmlformats-officedocument.wordprocessingml.template","dotx"],["application/vnd.osgeo.mapguide.package","mgp"],["application/vnd.osgi.dp","dp"],["application/vnd.palm","pdb"],["application/vnd.pawaafile","paw"],["application/vnd.pg.format","str"],["application/vnd.pg.osasli","ei6"],["application/vnd.picsel","efif"],["application/vnd.pmi.widget","wg"],["application/vnd.pocketlearn","plf"],["application/vnd.powerbuilder6","pbd"],["application/vnd.previewsystems.box","box"],["application/vnd.proteus.magazine","mgz"],["application/vnd.publishare-delta-tree","qps"],["application/vnd.pvi.ptid1","ptid"],["application/vnd.quark.quarkxpress","qxd"],["application/vnd.realvnc.bed","bed"],["application/vnd.recordare.musicxml","mxl"],["application/vnd.recordare.musicxml+xml","musicxml"],["application/vnd.rig.cryptonote","cryptonote"],["application/vnd.rim.cod","cod"],["application/vnd.rn-realmedia","rm"],["application/vnd.rn-realplayer","rnx"],["application/vnd.route66.link66+xml","link66"],["application/vnd.sailingtracker.track","st"],["application/vnd.seemail","see"],["application/vnd.sema","sema"],["application/vnd.semd","semd"],["application/vnd.semf","semf"],["application/vnd.shana.informed.formdata","ifm"],["application/vnd.shana.informed.formtemplate","itp"],["application/vnd.shana.informed.interchange","iif"],["application/vnd.shana.informed.package","ipk"],["application/vnd.simtech-mindmapper","twd"],["application/vnd.smaf","mmf"],["application/vnd.smart.teacher","teacher"],["application/vnd.solent.sdkm+xml","sdkm"],["application/vnd.spotfire.dxp","dxp"],["application/vnd.spotfire.sfs","sfs"],["application/vnd.stardivision.calc","sdc"],["application/vnd.stardivision.draw","sda"],["application/vnd.stardivision.impress","sdd"],["application/vnd.stardivision.math","smf"],["application/vnd.stardivision.writer","sdw"],["application/vnd.stardivision.writer-global","sgl"],["application/vnd.stepmania.stepchart","sm"],["application/vnd.sun.xml.calc","sxc"],["application/vnd.sun.xml.calc.template","stc"],["application/vnd.sun.xml.draw","sxd"],["application/vnd.sun.xml.draw.template","std"],["application/vnd.sun.xml.impress","sxi"],["application/vnd.sun.xml.impress.template","sti"],["application/vnd.sun.xml.math","sxm"],["application/vnd.sun.xml.writer","sxw"],["application/vnd.sun.xml.writer.global","sxg"],["application/vnd.sun.xml.writer.template","stw"],["application/vnd.sus-calendar","sus"],["application/vnd.svd","svd"],["application/vnd.symbian.install","sis"],["application/vnd.syncml+xml","xsm"],["application/vnd.syncml.dm+wbxml","bdm"],["application/vnd.syncml.dm+xml","xdm"],["application/vnd.tao.intent-module-archive","tao"],["application/vnd.tmobile-livetv","tmo"],["application/vnd.trid.tpt","tpt"],["application/vnd.triscape.mxs","mxs"],["application/vnd.trueapp","tra"],["application/vnd.ufdl","ufd"],["application/vnd.uiq.theme","utz"],["application/vnd.umajin","umj"],["application/vnd.unity","unityweb"],["application/vnd.uoml+xml","uoml"],["application/vnd.vcx","vcx"],["application/vnd.visio","vsd"],["application/vnd.visionary","vis"],["application/vnd.vsf","vsf"],["application/vnd.wap.wbxml","wbxml"],["application/vnd.wap.wmlc","wmlc"],["application/vnd.wap.wmlscriptc","wmlsc"],["application/vnd.webturbo","wtb"],["application/vnd.wolfram.player","nbp"],["application/vnd.wordperfect","wpd"],["application/vnd.wqd","wqd"],["application/vnd.wt.stf","stf"],["application/vnd.xara",["web","xar"]],["application/vnd.xfdl","xfdl"],["application/vnd.yamaha.hv-dic","hvd"],["application/vnd.yamaha.hv-script","hvs"],["application/vnd.yamaha.hv-voice","hvp"],["application/vnd.yamaha.openscoreformat","osf"],["application/vnd.yamaha.openscoreformat.osfpvg+xml","osfpvg"],["application/vnd.yamaha.smaf-audio","saf"],["application/vnd.yamaha.smaf-phrase","spf"],["application/vnd.yellowriver-custom-menu","cmp"],["application/vnd.zul","zir"],["application/vnd.zzazz.deck+xml","zaz"],["application/vocaltec-media-desc","vmd"],["application/vocaltec-media-file","vmf"],["application/voicexml+xml","vxml"],["application/widget","wgt"],["application/winhlp","hlp"],["application/wordperfect",["wp","wp5","wp6","wpd"]],["application/wordperfect6.0",["w60","wp5"]],["application/wordperfect6.1","w61"],["application/wsdl+xml","wsdl"],["application/wspolicy+xml","wspolicy"],["application/x-123","wk1"],["application/x-7z-compressed","7z"],["application/x-abiword","abw"],["application/x-ace-compressed","ace"],["application/x-aim","aim"],["application/x-authorware-bin","aab"],["application/x-authorware-map","aam"],["application/x-authorware-seg","aas"],["application/x-bcpio","bcpio"],["application/x-binary","bin"],["application/x-binhex40","hqx"],["application/x-bittorrent","torrent"],["application/x-bsh",["bsh","sh","shar"]],["application/x-bytecode.elisp","elc"],["application/x-bytecode.python","pyc"],["application/x-bzip","bz"],["application/x-bzip2",["boz","bz2"]],["application/x-cdf","cdf"],["application/x-cdlink","vcd"],["application/x-chat",["cha","chat"]],["application/x-chess-pgn","pgn"],["application/x-cmu-raster","ras"],["application/x-cocoa","cco"],["application/x-compactpro","cpt"],["application/x-compress","z"],["application/x-compressed",["tgz","gz","z","zip"]],["application/x-conference","nsc"],["application/x-cpio","cpio"],["application/x-cpt","cpt"],["application/x-csh","csh"],["application/x-debian-package","deb"],["application/x-deepv","deepv"],["application/x-director",["dir","dcr","dxr"]],["application/x-doom","wad"],["application/x-dtbncx+xml","ncx"],["application/x-dtbook+xml","dtb"],["application/x-dtbresource+xml","res"],["application/x-dvi","dvi"],["application/x-elc","elc"],["application/x-envoy",["env","evy"]],["application/x-esrehber","es"],["application/x-excel",["xls","xla","xlb","xlc","xld","xlk","xll","xlm","xlt","xlv","xlw"]],["application/x-font-bdf","bdf"],["application/x-font-ghostscript","gsf"],["application/x-font-linux-psf","psf"],["application/x-font-otf","otf"],["application/x-font-pcf","pcf"],["application/x-font-snf","snf"],["application/x-font-ttf","ttf"],["application/x-font-type1","pfa"],["application/x-font-woff","woff"],["application/x-frame","mif"],["application/x-freelance","pre"],["application/x-futuresplash","spl"],["application/x-gnumeric","gnumeric"],["application/x-gsp","gsp"],["application/x-gss","gss"],["application/x-gtar","gtar"],["application/x-gzip",["gz","gzip"]],["application/x-hdf","hdf"],["application/x-helpfile",["help","hlp"]],["application/x-httpd-imap","imap"],["application/x-ima","ima"],["application/x-internet-signup",["ins","isp"]],["application/x-internett-signup","ins"],["application/x-inventor","iv"],["application/x-ip2","ip"],["application/x-iphone","iii"],["application/x-java-class","class"],["application/x-java-commerce","jcm"],["application/x-java-jnlp-file","jnlp"],["application/x-javascript","js"],["application/x-koan",["skd","skm","skp","skt"]],["application/x-ksh","ksh"],["application/x-latex",["latex","ltx"]],["application/x-lha","lha"],["application/x-lisp","lsp"],["application/x-livescreen","ivy"],["application/x-lotus","wq1"],["application/x-lotusscreencam","scm"],["application/x-lzh","lzh"],["application/x-lzx","lzx"],["application/x-mac-binhex40","hqx"],["application/x-macbinary","bin"],["application/x-magic-cap-package-1.0","mc$"],["application/x-mathcad","mcd"],["application/x-meme","mm"],["application/x-midi",["mid","midi"]],["application/x-mif","mif"],["application/x-mix-transfer","nix"],["application/x-mobipocket-ebook","prc"],["application/x-mplayer2","asx"],["application/x-ms-application","application"],["application/x-ms-wmd","wmd"],["application/x-ms-wmz","wmz"],["application/x-ms-xbap","xbap"],["application/x-msaccess","mdb"],["application/x-msbinder","obd"],["application/x-mscardfile","crd"],["application/x-msclip","clp"],["application/x-msdownload",["exe","dll"]],["application/x-msexcel",["xls","xla","xlw"]],["application/x-msmediaview",["mvb","m13","m14"]],["application/x-msmetafile","wmf"],["application/x-msmoney","mny"],["application/x-mspowerpoint","ppt"],["application/x-mspublisher","pub"],["application/x-msschedule","scd"],["application/x-msterminal","trm"],["application/x-mswrite","wri"],["application/x-navi-animation","ani"],["application/x-navidoc","nvd"],["application/x-navimap","map"],["application/x-navistyle","stl"],["application/x-netcdf",["cdf","nc"]],["application/x-newton-compatible-pkg","pkg"],["application/x-nokia-9000-communicator-add-on-software","aos"],["application/x-omc","omc"],["application/x-omcdatamaker","omcd"],["application/x-omcregerator","omcr"],["application/x-pagemaker",["pm4","pm5"]],["application/x-pcl","pcl"],["application/x-perfmon",["pma","pmc","pml","pmr","pmw"]],["application/x-pixclscript","plx"],["application/x-pkcs10","p10"],["application/x-pkcs12",["p12","pfx"]],["application/x-pkcs7-certificates",["p7b","spc"]],["application/x-pkcs7-certreqresp","p7r"],["application/x-pkcs7-mime",["p7m","p7c"]],["application/x-pkcs7-signature",["p7s","p7a"]],["application/x-pointplus","css"],["application/x-portable-anymap","pnm"],["application/x-project",["mpc","mpt","mpv","mpx"]],["application/x-qpro","wb1"],["application/x-rar-compressed","rar"],["application/x-rtf","rtf"],["application/x-sdp","sdp"],["application/x-sea","sea"],["application/x-seelogo","sl"],["application/x-sh","sh"],["application/x-shar",["shar","sh"]],["application/x-shockwave-flash","swf"],["application/x-silverlight-app","xap"],["application/x-sit","sit"],["application/x-sprite",["spr","sprite"]],["application/x-stuffit","sit"],["application/x-stuffitx","sitx"],["application/x-sv4cpio","sv4cpio"],["application/x-sv4crc","sv4crc"],["application/x-tar","tar"],["application/x-tbook",["sbk","tbk"]],["application/x-tcl","tcl"],["application/x-tex","tex"],["application/x-tex-tfm","tfm"],["application/x-texinfo",["texi","texinfo"]],["application/x-troff",["roff","t","tr"]],["application/x-troff-man","man"],["application/x-troff-me","me"],["application/x-troff-ms","ms"],["application/x-troff-msvideo","avi"],["application/x-ustar","ustar"],["application/x-visio",["vsd","vst","vsw"]],["application/x-vnd.audioexplosion.mzz","mzz"],["application/x-vnd.ls-xpix","xpix"],["application/x-vrml","vrml"],["application/x-wais-source",["src","wsrc"]],["application/x-winhelp","hlp"],["application/x-wintalk","wtk"],["application/x-world",["wrl","svr"]],["application/x-wpwin","wpd"],["application/x-wri","wri"],["application/x-x509-ca-cert",["cer","crt","der"]],["application/x-x509-user-cert","crt"],["application/x-xfig","fig"],["application/x-xpinstall","xpi"],["application/x-zip-compressed","zip"],["application/xcap-diff+xml","xdf"],["application/xenc+xml","xenc"],["application/xhtml+xml","xhtml"],["application/xml","xml"],["application/xml-dtd","dtd"],["application/xop+xml","xop"],["application/xslt+xml","xslt"],["application/xspf+xml","xspf"],["application/xv+xml","mxml"],["application/yang","yang"],["application/yin+xml","yin"],["application/ynd.ms-pkipko","pko"],["application/zip","zip"],["audio/adpcm","adp"],["audio/aiff",["aiff","aif","aifc"]],["audio/basic",["snd","au"]],["audio/it","it"],["audio/make",["funk","my","pfunk"]],["audio/make.my.funk","pfunk"],["audio/mid",["mid","rmi"]],["audio/midi",["midi","kar","mid"]],["audio/mod","mod"],["audio/mp4","mp4a"],["audio/mpeg",["mpga","mp3","m2a","mp2","mpa","mpg"]],["audio/mpeg3","mp3"],["audio/nspaudio",["la","lma"]],["audio/ogg","oga"],["audio/s3m","s3m"],["audio/tsp-audio","tsi"],["audio/tsplayer","tsp"],["audio/vnd.dece.audio","uva"],["audio/vnd.digital-winds","eol"],["audio/vnd.dra","dra"],["audio/vnd.dts","dts"],["audio/vnd.dts.hd","dtshd"],["audio/vnd.lucent.voice","lvp"],["audio/vnd.ms-playready.media.pya","pya"],["audio/vnd.nuera.ecelp4800","ecelp4800"],["audio/vnd.nuera.ecelp7470","ecelp7470"],["audio/vnd.nuera.ecelp9600","ecelp9600"],["audio/vnd.qcelp","qcp"],["audio/vnd.rip","rip"],["audio/voc","voc"],["audio/voxware","vox"],["audio/wav","wav"],["audio/webm","weba"],["audio/x-aac","aac"],["audio/x-adpcm","snd"],["audio/x-aiff",["aiff","aif","aifc"]],["audio/x-au","au"],["audio/x-gsm",["gsd","gsm"]],["audio/x-jam","jam"],["audio/x-liveaudio","lam"],["audio/x-mid",["mid","midi"]],["audio/x-midi",["midi","mid"]],["audio/x-mod","mod"],["audio/x-mpeg","mp2"],["audio/x-mpeg-3","mp3"],["audio/x-mpegurl","m3u"],["audio/x-mpequrl","m3u"],["audio/x-ms-wax","wax"],["audio/x-ms-wma","wma"],["audio/x-nspaudio",["la","lma"]],["audio/x-pn-realaudio",["ra","ram","rm","rmm","rmp"]],["audio/x-pn-realaudio-plugin",["ra","rmp","rpm"]],["audio/x-psid","sid"],["audio/x-realaudio","ra"],["audio/x-twinvq","vqf"],["audio/x-twinvq-plugin",["vqe","vql"]],["audio/x-vnd.audioexplosion.mjuicemediafile","mjf"],["audio/x-voc","voc"],["audio/x-wav","wav"],["audio/xm","xm"],["chemical/x-cdx","cdx"],["chemical/x-cif","cif"],["chemical/x-cmdf","cmdf"],["chemical/x-cml","cml"],["chemical/x-csml","csml"],["chemical/x-pdb",["pdb","xyz"]],["chemical/x-xyz","xyz"],["drawing/x-dwf","dwf"],["i-world/i-vrml","ivr"],["image/bmp",["bmp","bm"]],["image/cgm","cgm"],["image/cis-cod","cod"],["image/cmu-raster",["ras","rast"]],["image/fif","fif"],["image/florian",["flo","turbot"]],["image/g3fax","g3"],["image/gif","gif"],["image/ief",["ief","iefs"]],["image/jpeg",["jpeg","jpe","jpg","jfif","jfif-tbnl"]],["image/jutvision","jut"],["image/ktx","ktx"],["image/naplps",["nap","naplps"]],["image/pict",["pic","pict"]],["image/pipeg","jfif"],["image/pjpeg",["jfif","jpe","jpeg","jpg"]],["image/png",["png","x-png"]],["image/prs.btif","btif"],["image/svg+xml","svg"],["image/tiff",["tif","tiff"]],["image/vasa","mcf"],["image/vnd.adobe.photoshop","psd"],["image/vnd.dece.graphic","uvi"],["image/vnd.djvu","djvu"],["image/vnd.dvb.subtitle","sub"],["image/vnd.dwg",["dwg","dxf","svf"]],["image/vnd.dxf","dxf"],["image/vnd.fastbidsheet","fbs"],["image/vnd.fpx","fpx"],["image/vnd.fst","fst"],["image/vnd.fujixerox.edmics-mmr","mmr"],["image/vnd.fujixerox.edmics-rlc","rlc"],["image/vnd.ms-modi","mdi"],["image/vnd.net-fpx",["fpx","npx"]],["image/vnd.rn-realflash","rf"],["image/vnd.rn-realpix","rp"],["image/vnd.wap.wbmp","wbmp"],["image/vnd.xiff","xif"],["image/webp","webp"],["image/x-cmu-raster","ras"],["image/x-cmx","cmx"],["image/x-dwg",["dwg","dxf","svf"]],["image/x-freehand","fh"],["image/x-icon","ico"],["image/x-jg","art"],["image/x-jps","jps"],["image/x-niff",["niff","nif"]],["image/x-pcx","pcx"],["image/x-pict",["pct","pic"]],["image/x-portable-anymap","pnm"],["image/x-portable-bitmap","pbm"],["image/x-portable-graymap","pgm"],["image/x-portable-greymap","pgm"],["image/x-portable-pixmap","ppm"],["image/x-quicktime",["qif","qti","qtif"]],["image/x-rgb","rgb"],["image/x-tiff",["tif","tiff"]],["image/x-windows-bmp","bmp"],["image/x-xbitmap","xbm"],["image/x-xbm","xbm"],["image/x-xpixmap",["xpm","pm"]],["image/x-xwd","xwd"],["image/x-xwindowdump","xwd"],["image/xbm","xbm"],["image/xpm","xpm"],["message/rfc822",["eml","mht","mhtml","nws","mime"]],["model/iges",["iges","igs"]],["model/mesh","msh"],["model/vnd.collada+xml","dae"],["model/vnd.dwf","dwf"],["model/vnd.gdl","gdl"],["model/vnd.gtw","gtw"],["model/vnd.mts","mts"],["model/vnd.vtu","vtu"],["model/vrml",["vrml","wrl","wrz"]],["model/x-pov","pov"],["multipart/x-gzip","gzip"],["multipart/x-ustar","ustar"],["multipart/x-zip","zip"],["music/crescendo",["mid","midi"]],["music/x-karaoke","kar"],["paleovu/x-pv","pvu"],["text/asp","asp"],["text/calendar","ics"],["text/css","css"],["text/csv","csv"],["text/ecmascript","js"],["text/h323","323"],["text/html",["html","htm","stm","acgi","htmls","htx","shtml"]],["text/iuls","uls"],["text/javascript","js"],["text/mcf","mcf"],["text/n3","n3"],["text/pascal","pas"],["text/plain",["txt","bas","c","h","c++","cc","com","conf","cxx","def","f","f90","for","g","hh","idc","jav","java","list","log","lst","m","mar","pl","sdml","text"]],["text/plain-bas","par"],["text/prs.lines.tag","dsc"],["text/richtext",["rtx","rt","rtf"]],["text/scriplet","wsc"],["text/scriptlet","sct"],["text/sgml",["sgm","sgml"]],["text/tab-separated-values","tsv"],["text/troff","t"],["text/turtle","ttl"],["text/uri-list",["uni","unis","uri","uris"]],["text/vnd.abc","abc"],["text/vnd.curl","curl"],["text/vnd.curl.dcurl","dcurl"],["text/vnd.curl.mcurl","mcurl"],["text/vnd.curl.scurl","scurl"],["text/vnd.fly","fly"],["text/vnd.fmi.flexstor","flx"],["text/vnd.graphviz","gv"],["text/vnd.in3d.3dml","3dml"],["text/vnd.in3d.spot","spot"],["text/vnd.rn-realtext","rt"],["text/vnd.sun.j2me.app-descriptor","jad"],["text/vnd.wap.wml","wml"],["text/vnd.wap.wmlscript","wmls"],["text/webviewhtml","htt"],["text/x-asm",["asm","s"]],["text/x-audiosoft-intra","aip"],["text/x-c",["c","cc","cpp"]],["text/x-component","htc"],["text/x-fortran",["for","f","f77","f90"]],["text/x-h",["h","hh"]],["text/x-java-source",["java","jav"]],["text/x-java-source,java","java"],["text/x-la-asf","lsx"],["text/x-m","m"],["text/x-pascal","p"],["text/x-script","hlb"],["text/x-script.csh","csh"],["text/x-script.elisp","el"],["text/x-script.guile","scm"],["text/x-script.ksh","ksh"],["text/x-script.lisp","lsp"],["text/x-script.perl","pl"],["text/x-script.perl-module","pm"],["text/x-script.phyton","py"],["text/x-script.rexx","rexx"],["text/x-script.scheme","scm"],["text/x-script.sh","sh"],["text/x-script.tcl","tcl"],["text/x-script.tcsh","tcsh"],["text/x-script.zsh","zsh"],["text/x-server-parsed-html",["shtml","ssi"]],["text/x-setext","etx"],["text/x-sgml",["sgm","sgml"]],["text/x-speech",["spc","talk"]],["text/x-uil","uil"],["text/x-uuencode",["uu","uue"]],["text/x-vcalendar","vcs"],["text/x-vcard","vcf"],["text/xml","xml"],["video/3gpp","3gp"],["video/3gpp2","3g2"],["video/animaflex","afl"],["video/avi","avi"],["video/avs-video","avs"],["video/dl","dl"],["video/fli","fli"],["video/gl","gl"],["video/h261","h261"],["video/h263","h263"],["video/h264","h264"],["video/jpeg","jpgv"],["video/jpm","jpm"],["video/mj2","mj2"],["video/mp4","mp4"],["video/mpeg",["mpeg","mp2","mpa","mpe","mpg","mpv2","m1v","m2v","mp3"]],["video/msvideo","avi"],["video/ogg","ogv"],["video/quicktime",["mov","qt","moov"]],["video/vdo","vdo"],["video/vivo",["viv","vivo"]],["video/vnd.dece.hd","uvh"],["video/vnd.dece.mobile","uvm"],["video/vnd.dece.pd","uvp"],["video/vnd.dece.sd","uvs"],["video/vnd.dece.video","uvv"],["video/vnd.fvt","fvt"],["video/vnd.mpegurl","mxu"],["video/vnd.ms-playready.media.pyv","pyv"],["video/vnd.rn-realvideo","rv"],["video/vnd.uvvu.mp4","uvu"],["video/vnd.vivo",["viv","vivo"]],["video/vosaic","vos"],["video/webm","webm"],["video/x-amt-demorun","xdr"],["video/x-amt-showrun","xsr"],["video/x-atomic3d-feature","fmf"],["video/x-dl","dl"],["video/x-dv",["dif","dv"]],["video/x-f4v","f4v"],["video/x-fli","fli"],["video/x-flv","flv"],["video/x-gl","gl"],["video/x-isvideo","isu"],["video/x-la-asf",["lsf","lsx"]],["video/x-m4v","m4v"],["video/x-motion-jpeg","mjpg"],["video/x-mpeg",["mp3","mp2"]],["video/x-mpeq2a","mp2"],["video/x-ms-asf",["asf","asr","asx"]],["video/x-ms-asf-plugin","asx"],["video/x-ms-wm","wm"],["video/x-ms-wmv","wmv"],["video/x-ms-wmx","wmx"],["video/x-ms-wvx","wvx"],["video/x-msvideo","avi"],["video/x-qtc","qtc"],["video/x-scm","scm"],["video/x-sgi-movie",["movie","mv"]],["windows/metafile","wmf"],["www/mime","mime"],["x-conference/x-cooltalk","ice"],["x-music/x-midi",["mid","midi"]],["x-world/x-3dmf",["3dm","3dmf","qd3","qd3d"]],["x-world/x-svr","svr"],["x-world/x-vrml",["flr","vrml","wrl","wrz","xaf","xof"]],["x-world/x-vrt","vrt"],["xgl/drawing","xgz"],["xgl/movie","xmz"]]),Up=new Map([["123","application/vnd.lotus-1-2-3"],["323","text/h323"],["*","application/octet-stream"],["3dm","x-world/x-3dmf"],["3dmf","x-world/x-3dmf"],["3dml","text/vnd.in3d.3dml"],["3g2","video/3gpp2"],["3gp","video/3gpp"],["7z","application/x-7z-compressed"],["a","application/octet-stream"],["aab","application/x-authorware-bin"],["aac","audio/x-aac"],["aam","application/x-authorware-map"],["aas","application/x-authorware-seg"],["abc","text/vnd.abc"],["abw","application/x-abiword"],["ac","application/pkix-attr-cert"],["acc","application/vnd.americandynamics.acc"],["ace","application/x-ace-compressed"],["acgi","text/html"],["acu","application/vnd.acucobol"],["acx","application/internet-property-stream"],["adp","audio/adpcm"],["aep","application/vnd.audiograph"],["afl","video/animaflex"],["afp","application/vnd.ibm.modcap"],["ahead","application/vnd.ahead.space"],["ai","application/postscript"],["aif",["audio/aiff","audio/x-aiff"]],["aifc",["audio/aiff","audio/x-aiff"]],["aiff",["audio/aiff","audio/x-aiff"]],["aim","application/x-aim"],["aip","text/x-audiosoft-intra"],["air","application/vnd.adobe.air-application-installer-package+zip"],["ait","application/vnd.dvb.ait"],["ami","application/vnd.amiga.ami"],["ani","application/x-navi-animation"],["aos","application/x-nokia-9000-communicator-add-on-software"],["apk","application/vnd.android.package-archive"],["application","application/x-ms-application"],["apr","application/vnd.lotus-approach"],["aps","application/mime"],["arc","application/octet-stream"],["arj",["application/arj","application/octet-stream"]],["art","image/x-jg"],["asf","video/x-ms-asf"],["asm","text/x-asm"],["aso","application/vnd.accpac.simply.aso"],["asp","text/asp"],["asr","video/x-ms-asf"],["asx",["video/x-ms-asf","application/x-mplayer2","video/x-ms-asf-plugin"]],["atc","application/vnd.acucorp"],["atomcat","application/atomcat+xml"],["atomsvc","application/atomsvc+xml"],["atx","application/vnd.antix.game-component"],["au",["audio/basic","audio/x-au"]],["avi",["video/avi","video/msvideo","application/x-troff-msvideo","video/x-msvideo"]],["avs","video/avs-video"],["aw","application/applixware"],["axs","application/olescript"],["azf","application/vnd.airzip.filesecure.azf"],["azs","application/vnd.airzip.filesecure.azs"],["azw","application/vnd.amazon.ebook"],["bas","text/plain"],["bcpio","application/x-bcpio"],["bdf","application/x-font-bdf"],["bdm","application/vnd.syncml.dm+wbxml"],["bed","application/vnd.realvnc.bed"],["bh2","application/vnd.fujitsu.oasysprs"],["bin",["application/octet-stream","application/mac-binary","application/macbinary","application/x-macbinary","application/x-binary"]],["bm","image/bmp"],["bmi","application/vnd.bmi"],["bmp",["image/bmp","image/x-windows-bmp"]],["boo","application/book"],["book","application/book"],["box","application/vnd.previewsystems.box"],["boz","application/x-bzip2"],["bsh","application/x-bsh"],["btif","image/prs.btif"],["bz","application/x-bzip"],["bz2","application/x-bzip2"],["c",["text/plain","text/x-c"]],["c++","text/plain"],["c11amc","application/vnd.cluetrust.cartomobile-config"],["c11amz","application/vnd.cluetrust.cartomobile-config-pkg"],["c4g","application/vnd.clonk.c4group"],["cab","application/vnd.ms-cab-compressed"],["car","application/vnd.curl.car"],["cat",["application/vnd.ms-pkiseccat","application/vnd.ms-pki.seccat"]],["cc",["text/plain","text/x-c"]],["ccad","application/clariscad"],["cco","application/x-cocoa"],["ccxml","application/ccxml+xml,"],["cdbcmsg","application/vnd.contact.cmsg"],["cdf",["application/cdf","application/x-cdf","application/x-netcdf"]],["cdkey","application/vnd.mediastation.cdkey"],["cdmia","application/cdmi-capability"],["cdmic","application/cdmi-container"],["cdmid","application/cdmi-domain"],["cdmio","application/cdmi-object"],["cdmiq","application/cdmi-queue"],["cdx","chemical/x-cdx"],["cdxml","application/vnd.chemdraw+xml"],["cdy","application/vnd.cinderella"],["cer",["application/pkix-cert","application/x-x509-ca-cert"]],["cgm","image/cgm"],["cha","application/x-chat"],["chat","application/x-chat"],["chm","application/vnd.ms-htmlhelp"],["chrt","application/vnd.kde.kchart"],["cif","chemical/x-cif"],["cii","application/vnd.anser-web-certificate-issue-initiation"],["cil","application/vnd.ms-artgalry"],["cla","application/vnd.claymore"],["class",["application/octet-stream","application/java","application/java-byte-code","application/java-vm","application/x-java-class"]],["clkk","application/vnd.crick.clicker.keyboard"],["clkp","application/vnd.crick.clicker.palette"],["clkt","application/vnd.crick.clicker.template"],["clkw","application/vnd.crick.clicker.wordbank"],["clkx","application/vnd.crick.clicker"],["clp","application/x-msclip"],["cmc","application/vnd.cosmocaller"],["cmdf","chemical/x-cmdf"],["cml","chemical/x-cml"],["cmp","application/vnd.yellowriver-custom-menu"],["cmx","image/x-cmx"],["cod",["image/cis-cod","application/vnd.rim.cod"]],["com",["application/octet-stream","text/plain"]],["conf","text/plain"],["cpio","application/x-cpio"],["cpp","text/x-c"],["cpt",["application/mac-compactpro","application/x-compactpro","application/x-cpt"]],["crd","application/x-mscardfile"],["crl",["application/pkix-crl","application/pkcs-crl"]],["crt",["application/pkix-cert","application/x-x509-user-cert","application/x-x509-ca-cert"]],["cryptonote","application/vnd.rig.cryptonote"],["csh",["text/x-script.csh","application/x-csh"]],["csml","chemical/x-csml"],["csp","application/vnd.commonspace"],["css",["text/css","application/x-pointplus"]],["csv","text/csv"],["cu","application/cu-seeme"],["curl","text/vnd.curl"],["cww","application/prs.cww"],["cxx","text/plain"],["dae","model/vnd.collada+xml"],["daf","application/vnd.mobius.daf"],["davmount","application/davmount+xml"],["dcr","application/x-director"],["dcurl","text/vnd.curl.dcurl"],["dd2","application/vnd.oma.dd2+xml"],["ddd","application/vnd.fujixerox.ddd"],["deb","application/x-debian-package"],["deepv","application/x-deepv"],["def","text/plain"],["der","application/x-x509-ca-cert"],["dfac","application/vnd.dreamfactory"],["dif","video/x-dv"],["dir","application/x-director"],["dis","application/vnd.mobius.dis"],["djvu","image/vnd.djvu"],["dl",["video/dl","video/x-dl"]],["dll","application/x-msdownload"],["dms","application/octet-stream"],["dna","application/vnd.dna"],["doc","application/msword"],["docm","application/vnd.ms-word.document.macroenabled.12"],["docx","application/vnd.openxmlformats-officedocument.wordprocessingml.document"],["dot","application/msword"],["dotm","application/vnd.ms-word.template.macroenabled.12"],["dotx","application/vnd.openxmlformats-officedocument.wordprocessingml.template"],["dp",["application/commonground","application/vnd.osgi.dp"]],["dpg","application/vnd.dpgraph"],["dra","audio/vnd.dra"],["drw","application/drafting"],["dsc","text/prs.lines.tag"],["dssc","application/dssc+der"],["dtb","application/x-dtbook+xml"],["dtd","application/xml-dtd"],["dts","audio/vnd.dts"],["dtshd","audio/vnd.dts.hd"],["dump","application/octet-stream"],["dv","video/x-dv"],["dvi","application/x-dvi"],["dwf",["model/vnd.dwf","drawing/x-dwf"]],["dwg",["application/acad","image/vnd.dwg","image/x-dwg"]],["dxf",["application/dxf","image/vnd.dwg","image/vnd.dxf","image/x-dwg"]],["dxp","application/vnd.spotfire.dxp"],["dxr","application/x-director"],["ecelp4800","audio/vnd.nuera.ecelp4800"],["ecelp7470","audio/vnd.nuera.ecelp7470"],["ecelp9600","audio/vnd.nuera.ecelp9600"],["edm","application/vnd.novadigm.edm"],["edx","application/vnd.novadigm.edx"],["efif","application/vnd.picsel"],["ei6","application/vnd.pg.osasli"],["el","text/x-script.elisp"],["elc",["application/x-elc","application/x-bytecode.elisp"]],["eml","message/rfc822"],["emma","application/emma+xml"],["env","application/x-envoy"],["eol","audio/vnd.digital-winds"],["eot","application/vnd.ms-fontobject"],["eps","application/postscript"],["epub","application/epub+zip"],["es",["application/ecmascript","application/x-esrehber"]],["es3","application/vnd.eszigno3+xml"],["esf","application/vnd.epson.esf"],["etx","text/x-setext"],["evy",["application/envoy","application/x-envoy"]],["exe",["application/octet-stream","application/x-msdownload"]],["exi","application/exi"],["ext","application/vnd.novadigm.ext"],["ez2","application/vnd.ezpix-album"],["ez3","application/vnd.ezpix-package"],["f",["text/plain","text/x-fortran"]],["f4v","video/x-f4v"],["f77","text/x-fortran"],["f90",["text/plain","text/x-fortran"]],["fbs","image/vnd.fastbidsheet"],["fcs","application/vnd.isac.fcs"],["fdf","application/vnd.fdf"],["fe_launch","application/vnd.denovo.fcselayout-link"],["fg5","application/vnd.fujitsu.oasysgp"],["fh","image/x-freehand"],["fif",["application/fractals","image/fif"]],["fig","application/x-xfig"],["fli",["video/fli","video/x-fli"]],["flo",["image/florian","application/vnd.micrografx.flo"]],["flr","x-world/x-vrml"],["flv","video/x-flv"],["flw","application/vnd.kde.kivio"],["flx","text/vnd.fmi.flexstor"],["fly","text/vnd.fly"],["fm","application/vnd.framemaker"],["fmf","video/x-atomic3d-feature"],["fnc","application/vnd.frogans.fnc"],["for",["text/plain","text/x-fortran"]],["fpx",["image/vnd.fpx","image/vnd.net-fpx"]],["frl","application/freeloader"],["fsc","application/vnd.fsc.weblaunch"],["fst","image/vnd.fst"],["ftc","application/vnd.fluxtime.clip"],["fti","application/vnd.anser-web-funds-transfer-initiation"],["funk","audio/make"],["fvt","video/vnd.fvt"],["fxp","application/vnd.adobe.fxp"],["fzs","application/vnd.fuzzysheet"],["g","text/plain"],["g2w","application/vnd.geoplan"],["g3","image/g3fax"],["g3w","application/vnd.geospace"],["gac","application/vnd.groove-account"],["gdl","model/vnd.gdl"],["geo","application/vnd.dynageo"],["geojson","application/geo+json"],["gex","application/vnd.geometry-explorer"],["ggb","application/vnd.geogebra.file"],["ggt","application/vnd.geogebra.tool"],["ghf","application/vnd.groove-help"],["gif","image/gif"],["gim","application/vnd.groove-identity-message"],["gl",["video/gl","video/x-gl"]],["gmx","application/vnd.gmx"],["gnumeric","application/x-gnumeric"],["gph","application/vnd.flographit"],["gqf","application/vnd.grafeq"],["gram","application/srgs"],["grv","application/vnd.groove-injector"],["grxml","application/srgs+xml"],["gsd","audio/x-gsm"],["gsf","application/x-font-ghostscript"],["gsm","audio/x-gsm"],["gsp","application/x-gsp"],["gss","application/x-gss"],["gtar","application/x-gtar"],["gtm","application/vnd.groove-tool-message"],["gtw","model/vnd.gtw"],["gv","text/vnd.graphviz"],["gxt","application/vnd.geonext"],["gz",["application/x-gzip","application/x-compressed"]],["gzip",["multipart/x-gzip","application/x-gzip"]],["h",["text/plain","text/x-h"]],["h261","video/h261"],["h263","video/h263"],["h264","video/h264"],["hal","application/vnd.hal+xml"],["hbci","application/vnd.hbci"],["hdf","application/x-hdf"],["help","application/x-helpfile"],["hgl","application/vnd.hp-hpgl"],["hh",["text/plain","text/x-h"]],["hlb","text/x-script"],["hlp",["application/winhlp","application/hlp","application/x-helpfile","application/x-winhelp"]],["hpg","application/vnd.hp-hpgl"],["hpgl","application/vnd.hp-hpgl"],["hpid","application/vnd.hp-hpid"],["hps","application/vnd.hp-hps"],["hqx",["application/mac-binhex40","application/binhex","application/binhex4","application/mac-binhex","application/x-binhex40","application/x-mac-binhex40"]],["hta","application/hta"],["htc","text/x-component"],["htke","application/vnd.kenameaapp"],["htm","text/html"],["html","text/html"],["htmls","text/html"],["htt","text/webviewhtml"],["htx","text/html"],["hvd","application/vnd.yamaha.hv-dic"],["hvp","application/vnd.yamaha.hv-voice"],["hvs","application/vnd.yamaha.hv-script"],["i2g","application/vnd.intergeo"],["icc","application/vnd.iccprofile"],["ice","x-conference/x-cooltalk"],["ico","image/x-icon"],["ics","text/calendar"],["idc","text/plain"],["ief","image/ief"],["iefs","image/ief"],["ifm","application/vnd.shana.informed.formdata"],["iges",["application/iges","model/iges"]],["igl","application/vnd.igloader"],["igm","application/vnd.insors.igm"],["igs",["application/iges","model/iges"]],["igx","application/vnd.micrografx.igx"],["iif","application/vnd.shana.informed.interchange"],["iii","application/x-iphone"],["ima","application/x-ima"],["imap","application/x-httpd-imap"],["imp","application/vnd.accpac.simply.imp"],["ims","application/vnd.ms-ims"],["inf","application/inf"],["ins",["application/x-internet-signup","application/x-internett-signup"]],["ip","application/x-ip2"],["ipfix","application/ipfix"],["ipk","application/vnd.shana.informed.package"],["irm","application/vnd.ibm.rights-management"],["irp","application/vnd.irepository.package+xml"],["isp","application/x-internet-signup"],["isu","video/x-isvideo"],["it","audio/it"],["itp","application/vnd.shana.informed.formtemplate"],["iv","application/x-inventor"],["ivp","application/vnd.immervision-ivp"],["ivr","i-world/i-vrml"],["ivu","application/vnd.immervision-ivu"],["ivy","application/x-livescreen"],["jad","text/vnd.sun.j2me.app-descriptor"],["jam",["application/vnd.jam","audio/x-jam"]],["jar","application/java-archive"],["jav",["text/plain","text/x-java-source"]],["java",["text/plain","text/x-java-source,java","text/x-java-source"]],["jcm","application/x-java-commerce"],["jfif",["image/pipeg","image/jpeg","image/pjpeg"]],["jfif-tbnl","image/jpeg"],["jisp","application/vnd.jisp"],["jlt","application/vnd.hp-jlyt"],["jnlp","application/x-java-jnlp-file"],["joda","application/vnd.joost.joda-archive"],["jpe",["image/jpeg","image/pjpeg"]],["jpeg",["image/jpeg","image/pjpeg"]],["jpg",["image/jpeg","image/pjpeg"]],["jpgv","video/jpeg"],["jpm","video/jpm"],["jps","image/x-jps"],["js",["application/javascript","application/ecmascript","text/javascript","text/ecmascript","application/x-javascript"]],["json","application/json"],["jut","image/jutvision"],["kar",["audio/midi","music/x-karaoke"]],["karbon","application/vnd.kde.karbon"],["kfo","application/vnd.kde.kformula"],["kia","application/vnd.kidspiration"],["kml","application/vnd.google-earth.kml+xml"],["kmz","application/vnd.google-earth.kmz"],["kne","application/vnd.kinar"],["kon","application/vnd.kde.kontour"],["kpr","application/vnd.kde.kpresenter"],["ksh",["application/x-ksh","text/x-script.ksh"]],["ksp","application/vnd.kde.kspread"],["ktx","image/ktx"],["ktz","application/vnd.kahootz"],["kwd","application/vnd.kde.kword"],["la",["audio/nspaudio","audio/x-nspaudio"]],["lam","audio/x-liveaudio"],["lasxml","application/vnd.las.las+xml"],["latex","application/x-latex"],["lbd","application/vnd.llamagraphics.life-balance.desktop"],["lbe","application/vnd.llamagraphics.life-balance.exchange+xml"],["les","application/vnd.hhe.lesson-player"],["lha",["application/octet-stream","application/lha","application/x-lha"]],["lhx","application/octet-stream"],["link66","application/vnd.route66.link66+xml"],["list","text/plain"],["lma",["audio/nspaudio","audio/x-nspaudio"]],["log","text/plain"],["lrm","application/vnd.ms-lrm"],["lsf","video/x-la-asf"],["lsp",["application/x-lisp","text/x-script.lisp"]],["lst","text/plain"],["lsx",["video/x-la-asf","text/x-la-asf"]],["ltf","application/vnd.frogans.ltf"],["ltx","application/x-latex"],["lvp","audio/vnd.lucent.voice"],["lwp","application/vnd.lotus-wordpro"],["lzh",["application/octet-stream","application/x-lzh"]],["lzx",["application/lzx","application/octet-stream","application/x-lzx"]],["m",["text/plain","text/x-m"]],["m13","application/x-msmediaview"],["m14","application/x-msmediaview"],["m1v","video/mpeg"],["m21","application/mp21"],["m2a","audio/mpeg"],["m2v","video/mpeg"],["m3u",["audio/x-mpegurl","audio/x-mpequrl"]],["m3u8","application/vnd.apple.mpegurl"],["m4v","video/x-m4v"],["ma","application/mathematica"],["mads","application/mads+xml"],["mag","application/vnd.ecowin.chart"],["man","application/x-troff-man"],["map","application/x-navimap"],["mar","text/plain"],["mathml","application/mathml+xml"],["mbd","application/mbedlet"],["mbk","application/vnd.mobius.mbk"],["mbox","application/mbox"],["mc$","application/x-magic-cap-package-1.0"],["mc1","application/vnd.medcalcdata"],["mcd",["application/mcad","application/vnd.mcd","application/x-mathcad"]],["mcf",["image/vasa","text/mcf"]],["mcp","application/netmc"],["mcurl","text/vnd.curl.mcurl"],["mdb","application/x-msaccess"],["mdi","image/vnd.ms-modi"],["me","application/x-troff-me"],["meta4","application/metalink4+xml"],["mets","application/mets+xml"],["mfm","application/vnd.mfmp"],["mgp","application/vnd.osgeo.mapguide.package"],["mgz","application/vnd.proteus.magazine"],["mht","message/rfc822"],["mhtml","message/rfc822"],["mid",["audio/mid","audio/midi","music/crescendo","x-music/x-midi","audio/x-midi","application/x-midi","audio/x-mid"]],["midi",["audio/midi","music/crescendo","x-music/x-midi","audio/x-midi","application/x-midi","audio/x-mid"]],["mif",["application/vnd.mif","application/x-mif","application/x-frame"]],["mime",["message/rfc822","www/mime"]],["mj2","video/mj2"],["mjf","audio/x-vnd.audioexplosion.mjuicemediafile"],["mjpg","video/x-motion-jpeg"],["mlp","application/vnd.dolby.mlp"],["mm",["application/base64","application/x-meme"]],["mmd","application/vnd.chipnuts.karaoke-mmd"],["mme","application/base64"],["mmf","application/vnd.smaf"],["mmr","image/vnd.fujixerox.edmics-mmr"],["mny","application/x-msmoney"],["mod",["audio/mod","audio/x-mod"]],["mods","application/mods+xml"],["moov","video/quicktime"],["mov","video/quicktime"],["movie","video/x-sgi-movie"],["mp2",["video/mpeg","audio/mpeg","video/x-mpeg","audio/x-mpeg","video/x-mpeq2a"]],["mp3",["audio/mpeg","audio/mpeg3","video/mpeg","audio/x-mpeg-3","video/x-mpeg"]],["mp4",["video/mp4","application/mp4"]],["mp4a","audio/mp4"],["mpa",["video/mpeg","audio/mpeg"]],["mpc",["application/vnd.mophun.certificate","application/x-project"]],["mpe","video/mpeg"],["mpeg","video/mpeg"],["mpg",["video/mpeg","audio/mpeg"]],["mpga","audio/mpeg"],["mpkg","application/vnd.apple.installer+xml"],["mpm","application/vnd.blueice.multipass"],["mpn","application/vnd.mophun.application"],["mpp","application/vnd.ms-project"],["mpt","application/x-project"],["mpv","application/x-project"],["mpv2","video/mpeg"],["mpx","application/x-project"],["mpy","application/vnd.ibm.minipay"],["mqy","application/vnd.mobius.mqy"],["mrc","application/marc"],["mrcx","application/marcxml+xml"],["ms","application/x-troff-ms"],["mscml","application/mediaservercontrol+xml"],["mseq","application/vnd.mseq"],["msf","application/vnd.epson.msf"],["msg","application/vnd.ms-outlook"],["msh","model/mesh"],["msl","application/vnd.mobius.msl"],["msty","application/vnd.muvee.style"],["mts","model/vnd.mts"],["mus","application/vnd.musician"],["musicxml","application/vnd.recordare.musicxml+xml"],["mv","video/x-sgi-movie"],["mvb","application/x-msmediaview"],["mwf","application/vnd.mfer"],["mxf","application/mxf"],["mxl","application/vnd.recordare.musicxml"],["mxml","application/xv+xml"],["mxs","application/vnd.triscape.mxs"],["mxu","video/vnd.mpegurl"],["my","audio/make"],["mzz","application/x-vnd.audioexplosion.mzz"],["n-gage","application/vnd.nokia.n-gage.symbian.install"],["n3","text/n3"],["nap","image/naplps"],["naplps","image/naplps"],["nbp","application/vnd.wolfram.player"],["nc","application/x-netcdf"],["ncm","application/vnd.nokia.configuration-message"],["ncx","application/x-dtbncx+xml"],["ngdat","application/vnd.nokia.n-gage.data"],["nif","image/x-niff"],["niff","image/x-niff"],["nix","application/x-mix-transfer"],["nlu","application/vnd.neurolanguage.nlu"],["nml","application/vnd.enliven"],["nnd","application/vnd.noblenet-directory"],["nns","application/vnd.noblenet-sealer"],["nnw","application/vnd.noblenet-web"],["npx","image/vnd.net-fpx"],["nsc","application/x-conference"],["nsf","application/vnd.lotus-notes"],["nvd","application/x-navidoc"],["nws","message/rfc822"],["o","application/octet-stream"],["oa2","application/vnd.fujitsu.oasys2"],["oa3","application/vnd.fujitsu.oasys3"],["oas","application/vnd.fujitsu.oasys"],["obd","application/x-msbinder"],["oda","application/oda"],["odb","application/vnd.oasis.opendocument.database"],["odc","application/vnd.oasis.opendocument.chart"],["odf","application/vnd.oasis.opendocument.formula"],["odft","application/vnd.oasis.opendocument.formula-template"],["odg","application/vnd.oasis.opendocument.graphics"],["odi","application/vnd.oasis.opendocument.image"],["odm","application/vnd.oasis.opendocument.text-master"],["odp","application/vnd.oasis.opendocument.presentation"],["ods","application/vnd.oasis.opendocument.spreadsheet"],["odt","application/vnd.oasis.opendocument.text"],["oga","audio/ogg"],["ogv","video/ogg"],["ogx","application/ogg"],["omc","application/x-omc"],["omcd","application/x-omcdatamaker"],["omcr","application/x-omcregerator"],["onetoc","application/onenote"],["opf","application/oebps-package+xml"],["org","application/vnd.lotus-organizer"],["osf","application/vnd.yamaha.openscoreformat"],["osfpvg","application/vnd.yamaha.openscoreformat.osfpvg+xml"],["otc","application/vnd.oasis.opendocument.chart-template"],["otf","application/x-font-otf"],["otg","application/vnd.oasis.opendocument.graphics-template"],["oth","application/vnd.oasis.opendocument.text-web"],["oti","application/vnd.oasis.opendocument.image-template"],["otp","application/vnd.oasis.opendocument.presentation-template"],["ots","application/vnd.oasis.opendocument.spreadsheet-template"],["ott","application/vnd.oasis.opendocument.text-template"],["oxt","application/vnd.openofficeorg.extension"],["p","text/x-pascal"],["p10",["application/pkcs10","application/x-pkcs10"]],["p12",["application/pkcs-12","application/x-pkcs12"]],["p7a","application/x-pkcs7-signature"],["p7b","application/x-pkcs7-certificates"],["p7c",["application/pkcs7-mime","application/x-pkcs7-mime"]],["p7m",["application/pkcs7-mime","application/x-pkcs7-mime"]],["p7r","application/x-pkcs7-certreqresp"],["p7s",["application/pkcs7-signature","application/x-pkcs7-signature"]],["p8","application/pkcs8"],["par","text/plain-bas"],["part","application/pro_eng"],["pas","text/pascal"],["paw","application/vnd.pawaafile"],["pbd","application/vnd.powerbuilder6"],["pbm","image/x-portable-bitmap"],["pcf","application/x-font-pcf"],["pcl",["application/vnd.hp-pcl","application/x-pcl"]],["pclxl","application/vnd.hp-pclxl"],["pct","image/x-pict"],["pcurl","application/vnd.curl.pcurl"],["pcx","image/x-pcx"],["pdb",["application/vnd.palm","chemical/x-pdb"]],["pdf","application/pdf"],["pfa","application/x-font-type1"],["pfr","application/font-tdpfr"],["pfunk",["audio/make","audio/make.my.funk"]],["pfx","application/x-pkcs12"],["pgm",["image/x-portable-graymap","image/x-portable-greymap"]],["pgn","application/x-chess-pgn"],["pgp","application/pgp-signature"],["pic",["image/pict","image/x-pict"]],["pict","image/pict"],["pkg","application/x-newton-compatible-pkg"],["pki","application/pkixcmp"],["pkipath","application/pkix-pkipath"],["pko",["application/ynd.ms-pkipko","application/vnd.ms-pki.pko"]],["pl",["text/plain","text/x-script.perl"]],["plb","application/vnd.3gpp.pic-bw-large"],["plc","application/vnd.mobius.plc"],["plf","application/vnd.pocketlearn"],["pls","application/pls+xml"],["plx","application/x-pixclscript"],["pm",["text/x-script.perl-module","image/x-xpixmap"]],["pm4","application/x-pagemaker"],["pm5","application/x-pagemaker"],["pma","application/x-perfmon"],["pmc","application/x-perfmon"],["pml",["application/vnd.ctc-posml","application/x-perfmon"]],["pmr","application/x-perfmon"],["pmw","application/x-perfmon"],["png","image/png"],["pnm",["application/x-portable-anymap","image/x-portable-anymap"]],["portpkg","application/vnd.macports.portpkg"],["pot",["application/vnd.ms-powerpoint","application/mspowerpoint"]],["potm","application/vnd.ms-powerpoint.template.macroenabled.12"],["potx","application/vnd.openxmlformats-officedocument.presentationml.template"],["pov","model/x-pov"],["ppa","application/vnd.ms-powerpoint"],["ppam","application/vnd.ms-powerpoint.addin.macroenabled.12"],["ppd","application/vnd.cups-ppd"],["ppm","image/x-portable-pixmap"],["pps",["application/vnd.ms-powerpoint","application/mspowerpoint"]],["ppsm","application/vnd.ms-powerpoint.slideshow.macroenabled.12"],["ppsx","application/vnd.openxmlformats-officedocument.presentationml.slideshow"],["ppt",["application/vnd.ms-powerpoint","application/mspowerpoint","application/powerpoint","application/x-mspowerpoint"]],["pptm","application/vnd.ms-powerpoint.presentation.macroenabled.12"],["pptx","application/vnd.openxmlformats-officedocument.presentationml.presentation"],["ppz","application/mspowerpoint"],["prc","application/x-mobipocket-ebook"],["pre",["application/vnd.lotus-freelance","application/x-freelance"]],["prf","application/pics-rules"],["prt","application/pro_eng"],["ps","application/postscript"],["psb","application/vnd.3gpp.pic-bw-small"],["psd",["application/octet-stream","image/vnd.adobe.photoshop"]],["psf","application/x-font-linux-psf"],["pskcxml","application/pskc+xml"],["ptid","application/vnd.pvi.ptid1"],["pub","application/x-mspublisher"],["pvb","application/vnd.3gpp.pic-bw-var"],["pvu","paleovu/x-pv"],["pwn","application/vnd.3m.post-it-notes"],["pwz","application/vnd.ms-powerpoint"],["py","text/x-script.phyton"],["pya","audio/vnd.ms-playready.media.pya"],["pyc","application/x-bytecode.python"],["pyv","video/vnd.ms-playready.media.pyv"],["qam","application/vnd.epson.quickanime"],["qbo","application/vnd.intu.qbo"],["qcp","audio/vnd.qcelp"],["qd3","x-world/x-3dmf"],["qd3d","x-world/x-3dmf"],["qfx","application/vnd.intu.qfx"],["qif","image/x-quicktime"],["qps","application/vnd.publishare-delta-tree"],["qt","video/quicktime"],["qtc","video/x-qtc"],["qti","image/x-quicktime"],["qtif","image/x-quicktime"],["qxd","application/vnd.quark.quarkxpress"],["ra",["audio/x-realaudio","audio/x-pn-realaudio","audio/x-pn-realaudio-plugin"]],["ram","audio/x-pn-realaudio"],["rar","application/x-rar-compressed"],["ras",["image/cmu-raster","application/x-cmu-raster","image/x-cmu-raster"]],["rast","image/cmu-raster"],["rcprofile","application/vnd.ipunplugged.rcprofile"],["rdf","application/rdf+xml"],["rdz","application/vnd.data-vision.rdz"],["rep","application/vnd.businessobjects"],["res","application/x-dtbresource+xml"],["rexx","text/x-script.rexx"],["rf","image/vnd.rn-realflash"],["rgb","image/x-rgb"],["rif","application/reginfo+xml"],["rip","audio/vnd.rip"],["rl","application/resource-lists+xml"],["rlc","image/vnd.fujixerox.edmics-rlc"],["rld","application/resource-lists-diff+xml"],["rm",["application/vnd.rn-realmedia","audio/x-pn-realaudio"]],["rmi","audio/mid"],["rmm","audio/x-pn-realaudio"],["rmp",["audio/x-pn-realaudio-plugin","audio/x-pn-realaudio"]],["rms","application/vnd.jcp.javame.midlet-rms"],["rnc","application/relax-ng-compact-syntax"],["rng",["application/ringing-tones","application/vnd.nokia.ringing-tone"]],["rnx","application/vnd.rn-realplayer"],["roff","application/x-troff"],["rp","image/vnd.rn-realpix"],["rp9","application/vnd.cloanto.rp9"],["rpm","audio/x-pn-realaudio-plugin"],["rpss","application/vnd.nokia.radio-presets"],["rpst","application/vnd.nokia.radio-preset"],["rq","application/sparql-query"],["rs","application/rls-services+xml"],["rsd","application/rsd+xml"],["rt",["text/richtext","text/vnd.rn-realtext"]],["rtf",["application/rtf","text/richtext","application/x-rtf"]],["rtx",["text/richtext","application/rtf"]],["rv","video/vnd.rn-realvideo"],["s","text/x-asm"],["s3m","audio/s3m"],["saf","application/vnd.yamaha.smaf-audio"],["saveme","application/octet-stream"],["sbk","application/x-tbook"],["sbml","application/sbml+xml"],["sc","application/vnd.ibm.secure-container"],["scd","application/x-msschedule"],["scm",["application/vnd.lotus-screencam","video/x-scm","text/x-script.guile","application/x-lotusscreencam","text/x-script.scheme"]],["scq","application/scvp-cv-request"],["scs","application/scvp-cv-response"],["sct","text/scriptlet"],["scurl","text/vnd.curl.scurl"],["sda","application/vnd.stardivision.draw"],["sdc","application/vnd.stardivision.calc"],["sdd","application/vnd.stardivision.impress"],["sdkm","application/vnd.solent.sdkm+xml"],["sdml","text/plain"],["sdp",["application/sdp","application/x-sdp"]],["sdr","application/sounder"],["sdw","application/vnd.stardivision.writer"],["sea",["application/sea","application/x-sea"]],["see","application/vnd.seemail"],["seed","application/vnd.fdsn.seed"],["sema","application/vnd.sema"],["semd","application/vnd.semd"],["semf","application/vnd.semf"],["ser","application/java-serialized-object"],["set","application/set"],["setpay","application/set-payment-initiation"],["setreg","application/set-registration-initiation"],["sfd-hdstx","application/vnd.hydrostatix.sof-data"],["sfs","application/vnd.spotfire.sfs"],["sgl","application/vnd.stardivision.writer-global"],["sgm",["text/sgml","text/x-sgml"]],["sgml",["text/sgml","text/x-sgml"]],["sh",["application/x-shar","application/x-bsh","application/x-sh","text/x-script.sh"]],["shar",["application/x-bsh","application/x-shar"]],["shf","application/shf+xml"],["shtml",["text/html","text/x-server-parsed-html"]],["sid","audio/x-psid"],["sis","application/vnd.symbian.install"],["sit",["application/x-stuffit","application/x-sit"]],["sitx","application/x-stuffitx"],["skd","application/x-koan"],["skm","application/x-koan"],["skp",["application/vnd.koan","application/x-koan"]],["skt","application/x-koan"],["sl","application/x-seelogo"],["sldm","application/vnd.ms-powerpoint.slide.macroenabled.12"],["sldx","application/vnd.openxmlformats-officedocument.presentationml.slide"],["slt","application/vnd.epson.salt"],["sm","application/vnd.stepmania.stepchart"],["smf","application/vnd.stardivision.math"],["smi",["application/smil","application/smil+xml"]],["smil","application/smil"],["snd",["audio/basic","audio/x-adpcm"]],["snf","application/x-font-snf"],["sol","application/solids"],["spc",["text/x-speech","application/x-pkcs7-certificates"]],["spf","application/vnd.yamaha.smaf-phrase"],["spl",["application/futuresplash","application/x-futuresplash"]],["spot","text/vnd.in3d.spot"],["spp","application/scvp-vp-response"],["spq","application/scvp-vp-request"],["spr","application/x-sprite"],["sprite","application/x-sprite"],["src","application/x-wais-source"],["sru","application/sru+xml"],["srx","application/sparql-results+xml"],["sse","application/vnd.kodak-descriptor"],["ssf","application/vnd.epson.ssf"],["ssi","text/x-server-parsed-html"],["ssm","application/streamingmedia"],["ssml","application/ssml+xml"],["sst",["application/vnd.ms-pkicertstore","application/vnd.ms-pki.certstore"]],["st","application/vnd.sailingtracker.track"],["stc","application/vnd.sun.xml.calc.template"],["std","application/vnd.sun.xml.draw.template"],["step","application/step"],["stf","application/vnd.wt.stf"],["sti","application/vnd.sun.xml.impress.template"],["stk","application/hyperstudio"],["stl",["application/vnd.ms-pkistl","application/sla","application/vnd.ms-pki.stl","application/x-navistyle"]],["stm","text/html"],["stp","application/step"],["str","application/vnd.pg.format"],["stw","application/vnd.sun.xml.writer.template"],["sub","image/vnd.dvb.subtitle"],["sus","application/vnd.sus-calendar"],["sv4cpio","application/x-sv4cpio"],["sv4crc","application/x-sv4crc"],["svc","application/vnd.dvb.service"],["svd","application/vnd.svd"],["svf",["image/vnd.dwg","image/x-dwg"]],["svg","image/svg+xml"],["svr",["x-world/x-svr","application/x-world"]],["swf","application/x-shockwave-flash"],["swi","application/vnd.aristanetworks.swi"],["sxc","application/vnd.sun.xml.calc"],["sxd","application/vnd.sun.xml.draw"],["sxg","application/vnd.sun.xml.writer.global"],["sxi","application/vnd.sun.xml.impress"],["sxm","application/vnd.sun.xml.math"],["sxw","application/vnd.sun.xml.writer"],["t",["text/troff","application/x-troff"]],["talk","text/x-speech"],["tao","application/vnd.tao.intent-module-archive"],["tar","application/x-tar"],["tbk",["application/toolbook","application/x-tbook"]],["tcap","application/vnd.3gpp2.tcap"],["tcl",["text/x-script.tcl","application/x-tcl"]],["tcsh","text/x-script.tcsh"],["teacher","application/vnd.smart.teacher"],["tei","application/tei+xml"],["tex","application/x-tex"],["texi","application/x-texinfo"],["texinfo","application/x-texinfo"],["text",["application/plain","text/plain"]],["tfi","application/thraud+xml"],["tfm","application/x-tex-tfm"],["tgz",["application/gnutar","application/x-compressed"]],["thmx","application/vnd.ms-officetheme"],["tif",["image/tiff","image/x-tiff"]],["tiff",["image/tiff","image/x-tiff"]],["tmo","application/vnd.tmobile-livetv"],["torrent","application/x-bittorrent"],["tpl","application/vnd.groove-tool-template"],["tpt","application/vnd.trid.tpt"],["tr","application/x-troff"],["tra","application/vnd.trueapp"],["trm","application/x-msterminal"],["tsd","application/timestamped-data"],["tsi","audio/tsp-audio"],["tsp",["application/dsptype","audio/tsplayer"]],["tsv","text/tab-separated-values"],["ttf","application/x-font-ttf"],["ttl","text/turtle"],["turbot","image/florian"],["twd","application/vnd.simtech-mindmapper"],["txd","application/vnd.genomatix.tuxedo"],["txf","application/vnd.mobius.txf"],["txt","text/plain"],["ufd","application/vnd.ufdl"],["uil","text/x-uil"],["uls","text/iuls"],["umj","application/vnd.umajin"],["uni","text/uri-list"],["unis","text/uri-list"],["unityweb","application/vnd.unity"],["unv","application/i-deas"],["uoml","application/vnd.uoml+xml"],["uri","text/uri-list"],["uris","text/uri-list"],["ustar",["application/x-ustar","multipart/x-ustar"]],["utz","application/vnd.uiq.theme"],["uu",["application/octet-stream","text/x-uuencode"]],["uue","text/x-uuencode"],["uva","audio/vnd.dece.audio"],["uvh","video/vnd.dece.hd"],["uvi","image/vnd.dece.graphic"],["uvm","video/vnd.dece.mobile"],["uvp","video/vnd.dece.pd"],["uvs","video/vnd.dece.sd"],["uvu","video/vnd.uvvu.mp4"],["uvv","video/vnd.dece.video"],["vcd","application/x-cdlink"],["vcf","text/x-vcard"],["vcg","application/vnd.groove-vcard"],["vcs","text/x-vcalendar"],["vcx","application/vnd.vcx"],["vda","application/vda"],["vdo","video/vdo"],["vew","application/groupwise"],["vis","application/vnd.visionary"],["viv",["video/vivo","video/vnd.vivo"]],["vivo",["video/vivo","video/vnd.vivo"]],["vmd","application/vocaltec-media-desc"],["vmf","application/vocaltec-media-file"],["voc",["audio/voc","audio/x-voc"]],["vos","video/vosaic"],["vox","audio/voxware"],["vqe","audio/x-twinvq-plugin"],["vqf","audio/x-twinvq"],["vql","audio/x-twinvq-plugin"],["vrml",["model/vrml","x-world/x-vrml","application/x-vrml"]],["vrt","x-world/x-vrt"],["vsd",["application/vnd.visio","application/x-visio"]],["vsf","application/vnd.vsf"],["vst","application/x-visio"],["vsw","application/x-visio"],["vtu","model/vnd.vtu"],["vxml","application/voicexml+xml"],["w60","application/wordperfect6.0"],["w61","application/wordperfect6.1"],["w6w","application/msword"],["wad","application/x-doom"],["wav",["audio/wav","audio/x-wav"]],["wax","audio/x-ms-wax"],["wb1","application/x-qpro"],["wbmp","image/vnd.wap.wbmp"],["wbs","application/vnd.criticaltools.wbs+xml"],["wbxml","application/vnd.wap.wbxml"],["wcm","application/vnd.ms-works"],["wdb","application/vnd.ms-works"],["web","application/vnd.xara"],["weba","audio/webm"],["webm","video/webm"],["webp","image/webp"],["wg","application/vnd.pmi.widget"],["wgt","application/widget"],["wiz","application/msword"],["wk1","application/x-123"],["wks","application/vnd.ms-works"],["wm","video/x-ms-wm"],["wma","audio/x-ms-wma"],["wmd","application/x-ms-wmd"],["wmf",["windows/metafile","application/x-msmetafile"]],["wml","text/vnd.wap.wml"],["wmlc","application/vnd.wap.wmlc"],["wmls","text/vnd.wap.wmlscript"],["wmlsc","application/vnd.wap.wmlscriptc"],["wmv","video/x-ms-wmv"],["wmx","video/x-ms-wmx"],["wmz","application/x-ms-wmz"],["woff","application/x-font-woff"],["word","application/msword"],["wp","application/wordperfect"],["wp5",["application/wordperfect","application/wordperfect6.0"]],["wp6","application/wordperfect"],["wpd",["application/wordperfect","application/vnd.wordperfect","application/x-wpwin"]],["wpl","application/vnd.ms-wpl"],["wps","application/vnd.ms-works"],["wq1","application/x-lotus"],["wqd","application/vnd.wqd"],["wri",["application/mswrite","application/x-wri","application/x-mswrite"]],["wrl",["model/vrml","x-world/x-vrml","application/x-world"]],["wrz",["model/vrml","x-world/x-vrml"]],["wsc","text/scriplet"],["wsdl","application/wsdl+xml"],["wspolicy","application/wspolicy+xml"],["wsrc","application/x-wais-source"],["wtb","application/vnd.webturbo"],["wtk","application/x-wintalk"],["wvx","video/x-ms-wvx"],["x-png","image/png"],["x3d","application/vnd.hzn-3d-crossword"],["xaf","x-world/x-vrml"],["xap","application/x-silverlight-app"],["xar","application/vnd.xara"],["xbap","application/x-ms-xbap"],["xbd","application/vnd.fujixerox.docuworks.binder"],["xbm",["image/xbm","image/x-xbm","image/x-xbitmap"]],["xdf","application/xcap-diff+xml"],["xdm","application/vnd.syncml.dm+xml"],["xdp","application/vnd.adobe.xdp+xml"],["xdr","video/x-amt-demorun"],["xdssc","application/dssc+xml"],["xdw","application/vnd.fujixerox.docuworks"],["xenc","application/xenc+xml"],["xer","application/patch-ops-error+xml"],["xfdf","application/vnd.adobe.xfdf"],["xfdl","application/vnd.xfdl"],["xgz","xgl/drawing"],["xhtml","application/xhtml+xml"],["xif","image/vnd.xiff"],["xl","application/excel"],["xla",["application/vnd.ms-excel","application/excel","application/x-msexcel","application/x-excel"]],["xlam","application/vnd.ms-excel.addin.macroenabled.12"],["xlb",["application/excel","application/vnd.ms-excel","application/x-excel"]],["xlc",["application/vnd.ms-excel","application/excel","application/x-excel"]],["xld",["application/excel","application/x-excel"]],["xlk",["application/excel","application/x-excel"]],["xll",["application/excel","application/vnd.ms-excel","application/x-excel"]],["xlm",["application/vnd.ms-excel","application/excel","application/x-excel"]],["xls",["application/vnd.ms-excel","application/excel","application/x-msexcel","application/x-excel"]],["xlsb","application/vnd.ms-excel.sheet.binary.macroenabled.12"],["xlsm","application/vnd.ms-excel.sheet.macroenabled.12"],["xlsx","application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"],["xlt",["application/vnd.ms-excel","application/excel","application/x-excel"]],["xltm","application/vnd.ms-excel.template.macroenabled.12"],["xltx","application/vnd.openxmlformats-officedocument.spreadsheetml.template"],["xlv",["application/excel","application/x-excel"]],["xlw",["application/vnd.ms-excel","application/excel","application/x-msexcel","application/x-excel"]],["xm","audio/xm"],["xml",["application/xml","text/xml","application/atom+xml","application/rss+xml"]],["xmz","xgl/movie"],["xo","application/vnd.olpc-sugar"],["xof","x-world/x-vrml"],["xop","application/xop+xml"],["xpi","application/x-xpinstall"],["xpix","application/x-vnd.ls-xpix"],["xpm",["image/xpm","image/x-xpixmap"]],["xpr","application/vnd.is-xpr"],["xps","application/vnd.ms-xpsdocument"],["xpw","application/vnd.intercon.formnet"],["xslt","application/xslt+xml"],["xsm","application/vnd.syncml+xml"],["xspf","application/xspf+xml"],["xsr","video/x-amt-showrun"],["xul","application/vnd.mozilla.xul+xml"],["xwd",["image/x-xwd","image/x-xwindowdump"]],["xyz",["chemical/x-xyz","chemical/x-pdb"]],["yang","application/yang"],["yin","application/yin+xml"],["z",["application/x-compressed","application/x-compress"]],["zaz","application/vnd.zzazz.deck+xml"],["zip",["application/zip","multipart/x-zip","application/x-zip-compressed","application/x-compressed"]],["zir","application/vnd.zul"],["zmm","application/vnd.handheld-entertainment+xml"],["zoo","application/octet-stream"],["zsh","text/x-script.zsh"]]);Ep.exports={detectMimeType(p){if(!p)return"application/octet-stream";let i=ix.parse(p),x=(i.ext.substr(1)||i.name||"").split("?").shift().trim().toLowerCase(),a=Up.has(x)?Up.get(x):"application/octet-stream";if(Array.isArray(a))return a[0];return a},detectExtension(p){if(!p)return"bin";let i=(p||"").toLowerCase().trim().split("/"),x=i.shift().trim(),a=i.join("/").trim();if(Sp.has(x+"/"+a)){let m=Sp.get(x+"/"+a);if(Array.isArray(m))return m[0];return m}switch(x){case"text":return"txt";default:return"bin"}}}});var s=j((wv,Tp)=>{var ax=/^xn--/,xx=/[^\0-\x7F]/,mx=/[\x2E\u3002\uFF0E\uFF61]/g,vx={overflow:"Overflow: input needs wider integers to process","not-basic":"Illegal input >= 0x80 (not a basic code point)","invalid-input":"Invalid input"},W=Math.floor,h=String.fromCharCode;function J(p){throw RangeError(vx[p])}function lx(p,i){let x=[],a=p.length;while(a--)x[a]=i(p[a]);return x}function Fp(p,i){let x=p.split("@"),a="";if(x.length>1)a=x[0]+"@",p=x[1];p=p.replace(mx,".");let m=p.split("."),v=lx(m,i).join(".");return a+v}function Ip(p){let i=[],x=0,a=p.length;while(x<a){let m=p.charCodeAt(x++);if(m>=55296&&m<=56319&&x<a){let v=p.charCodeAt(x++);if((v&64512)==56320)i.push(((m&1023)<<10)+(v&1023)+65536);else i.push(m),x--}else i.push(m)}return i}var cx=(p)=>String.fromCodePoint(...p),ox=function(p){if(p>=48&&p<58)return 26+(p-48);if(p>=65&&p<91)return p-65;if(p>=97&&p<123)return p-97;return 36},Hp=function(p,i){return p+22+75*(p<26)-((i!=0)<<5)},Np=function(p,i,x){let a=0;p=x?W(p/700):p>>1,p+=W(p/i);for(;p>455;a+=36)p=W(p/35);return W(a+36*p/(p+38))},Cp=function(p){let i=[],x=p.length,a=0,m=128,v=72,l=p.lastIndexOf("-");if(l<0)l=0;for(let c=0;c<l;++c){if(p.charCodeAt(c)>=128)J("not-basic");i.push(p.charCodeAt(c))}for(let c=l>0?l+1:0;c<x;){let o=a;for(let g=1,f=36;;f+=36){if(c>=x)J("invalid-input");let w=ox(p.charCodeAt(c++));if(w>=36)J("invalid-input");if(w>W((2147483647-a)/g))J("overflow");a+=w*g;let t=f<=v?1:f>=v+26?26:f-v;if(w<t)break;let n=36-t;if(g>W(2147483647/n))J("overflow");g*=n}let d=i.length+1;if(v=Np(a-o,d,o==0),W(a/d)>2147483647-m)J("overflow");m+=W(a/d),a%=d,i.splice(a++,0,m)}return String.fromCodePoint(...i)},Rp=function(p){let i=[];p=Ip(p);let x=p.length,a=128,m=0,v=72;for(let o of p)if(o<128)i.push(h(o));let l=i.length,c=l;if(l)i.push("-");while(c<x){let o=2147483647;for(let g of p)if(g>=a&&g<o)o=g;let d=c+1;if(o-a>W((2147483647-m)/d))J("overflow");m+=(o-a)*d,a=o;for(let g of p){if(g<a&&++m>2147483647)J("overflow");if(g===a){let f=m;for(let w=36;;w+=36){let t=w<=v?1:w>=v+26?26:w-v;if(f<t)break;let n=f-t,q=36-t;i.push(h(Hp(t+n%q,0))),f=W(n/q)}i.push(h(Hp(f,0))),v=Np(m,d,c===l),m=0,++c}}++m,++a}return i.join("")},dx=function(p){return Fp(p,function(i){return ax.test(i)?Cp(i.slice(4).toLowerCase()):i})},fx=function(p){return Fp(p,function(i){return xx.test(i)?"xn--"+Rp(i):i})},wx={version:"2.3.1",ucs2:{decode:Ip,encode:cx},decode:Cp,encode:Rp,toASCII:fx,toUnicode:dx};Tp.exports=wx});var r=j((gv,Pp)=>{var{Transform:gx}=z("stream");function k(p){if(typeof p==="string")p=Buffer.from(p,"utf-8");return p.toString("base64")}function Dp(p,i){if(p=(p||"").toString(),i=i||76,p.length<=i)return p;let x=[],a=0,m=i*1024,v=new RegExp(".{"+i+"}","g");while(a<p.length){let l=p.substr(a,m).replace(v,`$&\r
|
|
3
|
-
`);x.push(
|
|
2
|
+
import{ka as t,ma as n}from"./chunk-b6qj3ses.js";var _p=t((_v,Bp)=>{var Zp=n("url");class $p{constructor(p){this.options=p||{},this.cookies=[]}set(p,i){let x=Zp.parse(i||""),a=this.parse(p),m;if(a.domain){if(m=a.domain.replace(/^\./,""),x.hostname.length<m.length||("."+x.hostname).substr(-m.length+1)!=="."+m)a.domain=x.hostname}else a.domain=x.hostname;if(!a.path)a.path=this.getPath(x.pathname);if(!a.expires)a.expires=new Date(Date.now()+(Number(this.options.sessionTimeout||1800)||1800)*1000);return this.add(a)}get(p){return this.list(p).map((i)=>i.name+"="+i.value).join("; ")}list(p){let i=[];for(let x=this.cookies.length-1;x>=0;x--){let a=this.cookies[x];if(this.isExpired(a)){this.cookies.splice(x,1);continue}if(this.match(a,p))i.unshift(a)}return i}parse(p){let i={};return(p||"").toString().split(";").forEach((x)=>{let a=x.split("="),m=a.shift().trim().toLowerCase(),v=a.join("=").trim(),c;if(!m)return;switch(m){case"expires":if(v=new Date(v),v.toString()!=="Invalid Date")i.expires=v;break;case"path":i.path=v;break;case"domain":if(c=v.toLowerCase(),c.length&&c.charAt(0)!==".")c="."+c;i.domain=c;break;case"max-age":i.expires=new Date(Date.now()+(Number(v)||0)*1000);break;case"secure":i.secure=!0;break;case"httponly":i.httponly=!0;break;default:if(!i.name)i.name=m,i.value=v}}),i}match(p,i){let x=Zp.parse(i||"");if(x.hostname!==p.domain&&(p.domain.charAt(0)!=="."||("."+x.hostname).substr(-p.domain.length)!==p.domain))return!1;if(this.getPath(x.pathname).substr(0,p.path.length)!==p.path)return!1;if(p.secure&&x.protocol!=="https:")return!1;return!0}add(p){if(!p||!p.name)return!1;for(let i=0,x=this.cookies.length;i<x;i++)if(this.compare(this.cookies[i],p)){if(this.isExpired(p))return this.cookies.splice(i,1),!1;return this.cookies[i]=p,!0}if(!this.isExpired(p))this.cookies.push(p);return!0}compare(p,i){return p.name===i.name&&p.path===i.path&&p.domain===i.domain&&p.secure===i.secure&&p.httponly===i.httponly}isExpired(p){return p.expires&&p.expires<new Date||!p.value}getPath(p){let i=(p||"/").split("/");if(i.pop(),i=i.join("/").trim(),i.charAt(0)!=="/")i="/"+i;if(i.substr(-1)!=="/")i+="/";return i}}Bp.exports=$p});var B=t((Qv,Ia)=>{Ia.exports={name:"nodemailer",version:"8.0.4",description:"Easy as cake e-mail sending from your Node.js applications",main:"lib/nodemailer.js",scripts:{test:"node --test --test-concurrency=1 test/**/*.test.js test/**/*-test.js","test:coverage":"c8 node --test --test-concurrency=1 test/**/*.test.js test/**/*-test.js",format:'prettier --write "**/*.{js,json,md}"',"format:check":'prettier --check "**/*.{js,json,md}"',lint:"eslint .","lint:fix":"eslint . --fix",update:"rm -rf node_modules/ package-lock.json && ncu -u && npm install","test:syntax":'docker run --rm -v "$PWD:/app:ro" -w /app node:6-alpine node test/syntax-compat.js'},repository:{type:"git",url:"https://github.com/nodemailer/nodemailer.git"},keywords:["Nodemailer"],author:"Andris Reinman",license:"MIT-0",bugs:{url:"https://github.com/nodemailer/nodemailer/issues"},homepage:"https://nodemailer.com/",devDependencies:{"@aws-sdk/client-sesv2":"3.1011.0",bunyan:"1.8.15",c8:"11.0.0",eslint:"10.0.3","eslint-config-prettier":"10.1.8",globals:"17.4.0",libbase64:"1.3.0",libmime:"5.3.7",libqp:"2.1.1","nodemailer-ntlm-auth":"1.0.4",prettier:"3.8.1",proxy:"1.0.2","proxy-test-server":"1.0.0","smtp-server":"3.18.1"},engines:{node:">=6.0.0"}}});var _=t((Av,L)=>{var Qp={ECONNECTION:"Connection closed unexpectedly",ETIMEDOUT:"Connection or operation timed out",ESOCKET:"Socket-level error",EDNS:"DNS resolution failed",ETLS:"TLS handshake or STARTTLS failed",EREQUIRETLS:"REQUIRETLS not supported by server (RFC 8689)",EPROTOCOL:"Invalid SMTP server response",EENVELOPE:"Invalid mail envelope (sender or recipients)",EMESSAGE:"Message delivery error",ESTREAM:"Stream processing error",EAUTH:"Authentication failed",ENOAUTH:"Authentication credentials not provided",EOAUTH2:"OAuth2 token generation or refresh error",EMAXLIMIT:"Pool resource limit reached (max messages per connection)",ESENDMAIL:"Sendmail command error",ESES:"AWS SES transport error",ECONFIG:"Invalid configuration",EPROXY:"Proxy connection error",EFILEACCESS:"File access rejected (disableFileAccess is set)",EURLACCESS:"URL access rejected (disableUrlAccess is set)",EFETCH:"HTTP fetch error"};L.exports={ERROR_CODES:Qp};for(let p of Object.keys(Qp))L.exports[p]=p});var H=t((Yv,y)=>{var Na=n("http"),Ca=n("https"),Ap=n("url"),Ra=n("zlib"),{PassThrough:Ta}=n("stream"),Yp=_p(),Da=B(),Pa=n("net"),A=_();y.exports=function(p,i){return Wp(p,i)};y.exports.Cookies=Yp;function Wp(p,i){if(i=i||{},i.fetchRes=i.fetchRes||new Ta,i.cookies=i.cookies||new Yp,i.redirects=i.redirects||0,i.maxRedirects=isNaN(i.maxRedirects)?5:i.maxRedirects,i.cookie)[].concat(i.cookie||[]).forEach((w)=>{i.cookies.set(w,p)}),i.cookie=!1;let x=i.fetchRes,a=Ap.parse(p),m=(i.method||"").toString().trim().toUpperCase()||"GET",v=!1,c,l,o=a.protocol==="https:"?Ca:Na,d={"accept-encoding":"gzip,deflate","user-agent":"nodemailer/"+Da.version};if(Object.keys(i.headers||{}).forEach((w)=>{d[w.toLowerCase().trim()]=i.headers[w]}),i.userAgent)d["user-agent"]=i.userAgent;if(a.auth)d.Authorization="Basic "+Buffer.from(a.auth).toString("base64");if(c=i.cookies.get(p))d.cookie=c;if(i.body){if(i.contentType!==!1)d["Content-Type"]=i.contentType||"application/x-www-form-urlencoded";if(typeof i.body.pipe==="function")d["Transfer-Encoding"]="chunked",l=i.body,l.on("error",(w)=>{if(v)return;v=!0,w.code=A.EFETCH,w.sourceUrl=p,x.emit("error",w)});else{if(i.body instanceof Buffer)l=i.body;else if(typeof i.body==="object")try{l=Buffer.from(Object.keys(i.body).map((w)=>{let j=i.body[w].toString().trim();return encodeURIComponent(w)+"="+encodeURIComponent(j)}).join("&"))}catch(w){if(v)return;v=!0,w.code=A.EFETCH,w.sourceUrl=p,x.emit("error",w);return}else l=Buffer.from(i.body.toString().trim());d["Content-Type"]=i.contentType||"application/x-www-form-urlencoded",d["Content-Length"]=l.length}m=(i.method||"").toString().trim().toUpperCase()||"POST"}let g,f={method:m,host:a.hostname,path:a.path,port:a.port?a.port:a.protocol==="https:"?443:80,headers:d,rejectUnauthorized:!1,agent:!1};if(i.tls)Object.assign(f,i.tls);if(a.protocol==="https:"&&a.hostname&&a.hostname!==f.host&&!Pa.isIP(a.hostname)&&!f.servername)f.servername=a.hostname;try{g=o.request(f)}catch(w){return v=!0,setImmediate(()=>{w.code=A.EFETCH,w.sourceUrl=p,x.emit("error",w)}),x}if(i.timeout)g.setTimeout(i.timeout,()=>{if(v)return;v=!0,g.abort();let w=Error("Request Timeout");w.code=A.EFETCH,w.sourceUrl=p,x.emit("error",w)});return g.on("error",(w)=>{if(v)return;v=!0,w.code=A.EFETCH,w.sourceUrl=p,x.emit("error",w)}),g.on("response",(w)=>{let j;if(v)return;switch(w.headers["content-encoding"]){case"gzip":case"deflate":j=Ra.createUnzip();break}if(w.headers["set-cookie"])[].concat(w.headers["set-cookie"]||[]).forEach((z)=>{i.cookies.set(z,p)});if([301,302,303,307,308].includes(w.statusCode)&&w.headers.location){if(i.redirects++,i.redirects>i.maxRedirects){v=!0;let z=Error("Maximum redirect count exceeded");z.code=A.EFETCH,z.sourceUrl=p,x.emit("error",z),g.abort();return}return i.method="GET",i.body=!1,Wp(Ap.resolve(p,w.headers.location),i)}if(x.statusCode=w.statusCode,x.headers=w.headers,w.statusCode>=300&&!i.allowErrorResponse){v=!0;let z=Error("Invalid status code "+w.statusCode);z.code=A.EFETCH,z.sourceUrl=p,x.emit("error",z),g.abort();return}if(w.on("error",(z)=>{if(v)return;v=!0,z.code=A.EFETCH,z.sourceUrl=p,x.emit("error",z),g.abort()}),j)w.pipe(j).pipe(x),j.on("error",(z)=>{if(v)return;v=!0,z.code=A.EFETCH,z.sourceUrl=p,x.emit("error",z),g.abort()});else w.pipe(x)}),setImmediate(()=>{if(l)try{if(typeof l.pipe==="function")return l.pipe(g);g.write(l)}catch(w){v=!0,w.code=A.EFETCH,w.sourceUrl=p,x.emit("error",w);return}g.end()}),x}});var Z=t((ka,G)=>{var Oa=n("url"),ba=n("util"),La=n("fs"),ya=H(),Y=n("dns"),ua=n("net"),ha=n("os"),T=0;ka._lastCacheCleanup=()=>T;ka._resetCacheCleanup=()=>{T=0};var Jp;try{Jp=ha.networkInterfaces()}catch(p){}ka.networkInterfaces=Jp;var Mp=(p,i)=>{let x=ka.networkInterfaces;if(!x)return!0;return Object.keys(x).map((a)=>x[a]).reduce((a,m)=>a.concat(m),[]).filter((a)=>!a.internal||i).some((a)=>a.family==="IPv"+p||a.family===p)},Xp=(p,i,x,a)=>{if(x=x||{},!Mp(p,x.allowInternalNetworkInterfaces))return a(null,[]);(Y.Resolver?new Y.Resolver(x):Y)["resolve"+p](i,(v,c)=>{if(v){switch(v.code){case Y.NODATA:case Y.NOTFOUND:case Y.NOTIMP:case Y.SERVFAIL:case Y.CONNREFUSED:case Y.REFUSED:case"EAI_AGAIN":return a(null,[])}return a(v)}return a(null,Array.isArray(c)?c:[].concat(c||[]))})},$=ka.dnsCache=new Map,X=(p,i)=>{if(!p)return Object.assign({},i||{});let x=p.addresses||[],a=x.length>0?x[Math.floor(Math.random()*x.length)]:null;return Object.assign({servername:p.servername,host:a,_addresses:x},i||{})};ka.resolveHostname=(p,i)=>{if(p=p||{},!p.host&&p.servername)p.host=p.servername;if(!p.host||ua.isIP(p.host)){let l={addresses:[p.host],servername:p.servername||!1};return i(null,X(l,{cached:!1}))}let x;if($.has(p.host)){x=$.get(p.host);let l=Date.now();if(l-T>30000){T=l;for(let[o,d]of $.entries())if(d.expires&&d.expires<l)$.delete(o);if($.size>1000){let o=Math.floor(100);Array.from($.keys()).slice(0,o).forEach((g)=>$.delete(g))}}if(!x.expires||x.expires>=l)return i(null,X(x.value,{cached:!0}))}let a=[],m=[],v=null,c=null;Xp(4,p.host,p,(l,o)=>{if(l)v=l;else a=o||[];Xp(6,p.host,p,(d,g)=>{if(d)c=d;else m=g||[];let f=a.concat(m);if(f.length){let w={addresses:f,servername:p.servername||p.host};return $.set(p.host,{value:w,expires:Date.now()+(p.dnsTtl||300000)}),i(null,X(w,{cached:!1}))}if(v&&c){if(x)return $.set(p.host,{value:x.value,expires:Date.now()+(p.dnsTtl||300000)}),i(null,X(x.value,{cached:!0,error:v}))}try{Y.lookup(p.host,{all:!0},(w,j)=>{if(w){if(x)return $.set(p.host,{value:x.value,expires:Date.now()+(p.dnsTtl||300000)}),i(null,X(x.value,{cached:!0,error:w}));return i(w)}let z=j?j.filter((M)=>Mp(M.family)).map((M)=>M.address):[];if(j&&j.length&&!z.length)console.warn(`Failed to resolve IPv${j[0].family} addresses with current network`);if(!z.length&&x)return i(null,X(x.value,{cached:!0}));let q={addresses:z.length?z:[p.host],servername:p.servername||p.host};return $.set(p.host,{value:q,expires:Date.now()+(p.dnsTtl||300000)}),i(null,X(q,{cached:!1}))})}catch(w){if(x)return $.set(p.host,{value:x.value,expires:Date.now()+(p.dnsTtl||300000)}),i(null,X(x.value,{cached:!0,error:w}));return i(v||c||w)}})})};ka.parseConnectionUrl=(p)=>{p=p||"";let i={},x=Oa.parse(p,!0);switch(x.protocol){case"smtp:":i.secure=!1;break;case"smtps:":i.secure=!0;break;case"direct:":i.direct=!0;break}if(!isNaN(x.port)&&Number(x.port))i.port=Number(x.port);if(x.hostname)i.host=x.hostname;if(x.auth){let a=x.auth.split(":");i.auth={user:a.shift(),pass:a.join(":")}}return Object.keys(x.query||{}).forEach((a)=>{let m=i,v=a,c=x.query[a];if(!isNaN(c))c=Number(c);switch(c){case"true":c=!0;break;case"false":c=!1;break}if(a.indexOf("tls.")===0){if(v=a.substr(4),!i.tls)i.tls={};m=i.tls}else if(a.indexOf(".")>=0)return;if(!(v in m))m[v]=c}),i};ka._logFunc=(p,i,x,a,m,...v)=>{let c=Object.assign({},x||{},a||{});delete c.level,p[i](c,m,...v)};ka.getLogger=(p,i)=>{p=p||{};let x={},a=["trace","debug","info","warn","error","fatal"];if(!p.logger)return a.forEach((v)=>{x[v]=()=>!1}),x;let m=p.logger===!0?sa(a):p.logger;return a.forEach((v)=>{x[v]=(c,l,...o)=>{ka._logFunc(m,v,i,c,l,...o)}}),x};ka.callbackPromise=(p,i)=>function(){let x=Array.from(arguments),a=x.shift();if(a)i(a);else p(...x)};ka.parseDataURI=(p)=>{if(typeof p!=="string")return null;if(!p.startsWith("data:"))return null;let i=p.indexOf(",");if(i===-1)return null;let x=p.substring(i+1),a=p.substring(5,i),m,v=a.split(";");if(v.length>0){let d=v[v.length-1].toLowerCase().trim();if(["base64","utf8","utf-8"].includes(d)&&d.indexOf("=")===-1)m=d,v.pop()}let c=v.length>0?v.shift():"application/octet-stream",l={};for(let d=0;d<v.length;d++){let g=v[d],f=g.indexOf("=");if(f>0){let w=g.substring(0,f).trim(),j=g.substring(f+1).trim();if(w)l[w]=j}}let o;try{if(m==="base64")o=Buffer.from(x,"base64");else try{o=Buffer.from(decodeURIComponent(x))}catch(d){o=Buffer.from(x)}}catch(d){o=Buffer.alloc(0)}return{data:o,encoding:m||null,contentType:c||"application/octet-stream",params:l}};ka.resolveContent=(p,i,x)=>{let a;if(!x)a=new Promise((c,l)=>{x=ka.callbackPromise(c,l)});let m=p&&p[i]&&p[i].content||p[i],v=(typeof p[i]==="object"&&p[i].encoding||"utf8").toString().toLowerCase().replace(/[-_\s]/g,"");if(!m)return x(null,m);if(typeof m==="object"){if(typeof m.pipe==="function")return u(m,(c,l)=>{if(c)return x(c);if(p[i].content)p[i].content=l;else p[i]=l;x(null,l)});else if(/^https?:\/\//i.test(m.path||m.href))return u(ya(m.path||m.href),x);else if(/^data:/i.test(m.path||m.href)){let c=ka.parseDataURI(m.path||m.href);if(!c||!c.data)return x(null,Buffer.from(0));return x(null,c.data)}else if(m.path)return u(La.createReadStream(m.path),x)}if(typeof p[i].content==="string"&&!["utf8","usascii","ascii"].includes(v))m=Buffer.from(p[i].content,v);return setImmediate(()=>x(null,m)),a};ka.assign=function(){let p=Array.from(arguments),i=p.shift()||{};return p.forEach((x)=>{Object.keys(x||{}).forEach((a)=>{if(["tls","auth"].includes(a)&&x[a]&&typeof x[a]==="object")i[a]=Object.assign(i[a]||{},x[a]);else i[a]=x[a]})}),i};ka.encodeXText=(p)=>{if(!/[^\x21-\x2A\x2C-\x3C\x3E-\x7E]/.test(p))return p;let i=Buffer.from(p),x="";for(let a=0,m=i.length;a<m;a++){let v=i[a];if(v<33||v>126||v===43||v===61)x+="+"+(v<16?"0":"")+v.toString(16).toUpperCase();else x+=String.fromCharCode(v)}return x};function u(p,i){let x=!1,a=[],m=0;p.on("error",(v)=>{if(x)return;x=!0,i(v)}),p.on("readable",()=>{let v;while((v=p.read())!==null)a.push(v),m+=v.length}),p.on("end",()=>{if(x)return;x=!0;let v;try{v=Buffer.concat(a,m)}catch(c){return i(c)}i(null,v)})}function sa(p){let i=p.reduce((v,c)=>Math.max(v,c.length),0),x=new Map;p.forEach((v)=>{let c=v.toUpperCase();if(c.length<i)c+=" ".repeat(i-c.length);x.set(v,c)});let a=(v,c,l,...o)=>{let d="";if(c){if(c.tnx==="server")d="S: ";else if(c.tnx==="client")d="C: ";if(c.sid)d="["+c.sid+"] "+d;if(c.cid)d="[#"+c.cid+"] "+d}l=ba.format(l,...o),l.split(/\r?\n/).forEach((g)=>{console.log("[%s] %s %s",new Date().toISOString().substr(0,19).replace(/T/," "),x.get(v),d+g)})},m={};return p.forEach((v)=>{m[v]=a.bind(null,v)}),m}});var h=t((Xv,Ep)=>{var cx=n("path"),Hp=new Map([["application/acad","dwg"],["application/applixware","aw"],["application/arj","arj"],["application/atom+xml","xml"],["application/atomcat+xml","atomcat"],["application/atomsvc+xml","atomsvc"],["application/base64",["mm","mme"]],["application/binhex","hqx"],["application/binhex4","hqx"],["application/book",["book","boo"]],["application/ccxml+xml,","ccxml"],["application/cdf","cdf"],["application/cdmi-capability","cdmia"],["application/cdmi-container","cdmic"],["application/cdmi-domain","cdmid"],["application/cdmi-object","cdmio"],["application/cdmi-queue","cdmiq"],["application/clariscad","ccad"],["application/commonground","dp"],["application/cu-seeme","cu"],["application/davmount+xml","davmount"],["application/drafting","drw"],["application/dsptype","tsp"],["application/dssc+der","dssc"],["application/dssc+xml","xdssc"],["application/dxf","dxf"],["application/ecmascript",["js","es"]],["application/emma+xml","emma"],["application/envoy","evy"],["application/epub+zip","epub"],["application/excel",["xls","xl","xla","xlb","xlc","xld","xlk","xll","xlm","xlt","xlv","xlw"]],["application/exi","exi"],["application/font-tdpfr","pfr"],["application/fractals","fif"],["application/freeloader","frl"],["application/futuresplash","spl"],["application/geo+json","geojson"],["application/gnutar","tgz"],["application/groupwise","vew"],["application/hlp","hlp"],["application/hta","hta"],["application/hyperstudio","stk"],["application/i-deas","unv"],["application/iges",["iges","igs"]],["application/inf","inf"],["application/internet-property-stream","acx"],["application/ipfix","ipfix"],["application/java","class"],["application/java-archive","jar"],["application/java-byte-code","class"],["application/java-serialized-object","ser"],["application/java-vm","class"],["application/javascript","js"],["application/json","json"],["application/lha","lha"],["application/lzx","lzx"],["application/mac-binary","bin"],["application/mac-binhex","hqx"],["application/mac-binhex40","hqx"],["application/mac-compactpro","cpt"],["application/macbinary","bin"],["application/mads+xml","mads"],["application/marc","mrc"],["application/marcxml+xml","mrcx"],["application/mathematica","ma"],["application/mathml+xml","mathml"],["application/mbedlet","mbd"],["application/mbox","mbox"],["application/mcad","mcd"],["application/mediaservercontrol+xml","mscml"],["application/metalink4+xml","meta4"],["application/mets+xml","mets"],["application/mime","aps"],["application/mods+xml","mods"],["application/mp21","m21"],["application/mp4","mp4"],["application/mspowerpoint",["ppt","pot","pps","ppz"]],["application/msword",["doc","dot","w6w","wiz","word"]],["application/mswrite","wri"],["application/mxf","mxf"],["application/netmc","mcp"],["application/octet-stream",["*"]],["application/oda","oda"],["application/oebps-package+xml","opf"],["application/ogg","ogx"],["application/olescript","axs"],["application/onenote","onetoc"],["application/patch-ops-error+xml","xer"],["application/pdf","pdf"],["application/pgp-encrypted","asc"],["application/pgp-signature","pgp"],["application/pics-rules","prf"],["application/pkcs-12","p12"],["application/pkcs-crl","crl"],["application/pkcs10","p10"],["application/pkcs7-mime",["p7c","p7m"]],["application/pkcs7-signature","p7s"],["application/pkcs8","p8"],["application/pkix-attr-cert","ac"],["application/pkix-cert",["cer","crt"]],["application/pkix-crl","crl"],["application/pkix-pkipath","pkipath"],["application/pkixcmp","pki"],["application/plain","text"],["application/pls+xml","pls"],["application/postscript",["ps","ai","eps"]],["application/powerpoint","ppt"],["application/pro_eng",["part","prt"]],["application/prs.cww","cww"],["application/pskc+xml","pskcxml"],["application/rdf+xml","rdf"],["application/reginfo+xml","rif"],["application/relax-ng-compact-syntax","rnc"],["application/resource-lists+xml","rl"],["application/resource-lists-diff+xml","rld"],["application/ringing-tones","rng"],["application/rls-services+xml","rs"],["application/rsd+xml","rsd"],["application/rss+xml","xml"],["application/rtf",["rtf","rtx"]],["application/sbml+xml","sbml"],["application/scvp-cv-request","scq"],["application/scvp-cv-response","scs"],["application/scvp-vp-request","spq"],["application/scvp-vp-response","spp"],["application/sdp","sdp"],["application/sea","sea"],["application/set","set"],["application/set-payment-initiation","setpay"],["application/set-registration-initiation","setreg"],["application/shf+xml","shf"],["application/sla","stl"],["application/smil",["smi","smil"]],["application/smil+xml","smi"],["application/solids","sol"],["application/sounder","sdr"],["application/sparql-query","rq"],["application/sparql-results+xml","srx"],["application/srgs","gram"],["application/srgs+xml","grxml"],["application/sru+xml","sru"],["application/ssml+xml","ssml"],["application/step",["step","stp"]],["application/streamingmedia","ssm"],["application/tei+xml","tei"],["application/thraud+xml","tfi"],["application/timestamped-data","tsd"],["application/toolbook","tbk"],["application/vda","vda"],["application/vnd.3gpp.pic-bw-large","plb"],["application/vnd.3gpp.pic-bw-small","psb"],["application/vnd.3gpp.pic-bw-var","pvb"],["application/vnd.3gpp2.tcap","tcap"],["application/vnd.3m.post-it-notes","pwn"],["application/vnd.accpac.simply.aso","aso"],["application/vnd.accpac.simply.imp","imp"],["application/vnd.acucobol","acu"],["application/vnd.acucorp","atc"],["application/vnd.adobe.air-application-installer-package+zip","air"],["application/vnd.adobe.fxp","fxp"],["application/vnd.adobe.xdp+xml","xdp"],["application/vnd.adobe.xfdf","xfdf"],["application/vnd.ahead.space","ahead"],["application/vnd.airzip.filesecure.azf","azf"],["application/vnd.airzip.filesecure.azs","azs"],["application/vnd.amazon.ebook","azw"],["application/vnd.americandynamics.acc","acc"],["application/vnd.amiga.ami","ami"],["application/vnd.android.package-archive","apk"],["application/vnd.anser-web-certificate-issue-initiation","cii"],["application/vnd.anser-web-funds-transfer-initiation","fti"],["application/vnd.antix.game-component","atx"],["application/vnd.apple.installer+xml","mpkg"],["application/vnd.apple.mpegurl","m3u8"],["application/vnd.aristanetworks.swi","swi"],["application/vnd.audiograph","aep"],["application/vnd.blueice.multipass","mpm"],["application/vnd.bmi","bmi"],["application/vnd.businessobjects","rep"],["application/vnd.chemdraw+xml","cdxml"],["application/vnd.chipnuts.karaoke-mmd","mmd"],["application/vnd.cinderella","cdy"],["application/vnd.claymore","cla"],["application/vnd.cloanto.rp9","rp9"],["application/vnd.clonk.c4group","c4g"],["application/vnd.cluetrust.cartomobile-config","c11amc"],["application/vnd.cluetrust.cartomobile-config-pkg","c11amz"],["application/vnd.commonspace","csp"],["application/vnd.contact.cmsg","cdbcmsg"],["application/vnd.cosmocaller","cmc"],["application/vnd.crick.clicker","clkx"],["application/vnd.crick.clicker.keyboard","clkk"],["application/vnd.crick.clicker.palette","clkp"],["application/vnd.crick.clicker.template","clkt"],["application/vnd.crick.clicker.wordbank","clkw"],["application/vnd.criticaltools.wbs+xml","wbs"],["application/vnd.ctc-posml","pml"],["application/vnd.cups-ppd","ppd"],["application/vnd.curl.car","car"],["application/vnd.curl.pcurl","pcurl"],["application/vnd.data-vision.rdz","rdz"],["application/vnd.denovo.fcselayout-link","fe_launch"],["application/vnd.dna","dna"],["application/vnd.dolby.mlp","mlp"],["application/vnd.dpgraph","dpg"],["application/vnd.dreamfactory","dfac"],["application/vnd.dvb.ait","ait"],["application/vnd.dvb.service","svc"],["application/vnd.dynageo","geo"],["application/vnd.ecowin.chart","mag"],["application/vnd.enliven","nml"],["application/vnd.epson.esf","esf"],["application/vnd.epson.msf","msf"],["application/vnd.epson.quickanime","qam"],["application/vnd.epson.salt","slt"],["application/vnd.epson.ssf","ssf"],["application/vnd.eszigno3+xml","es3"],["application/vnd.ezpix-album","ez2"],["application/vnd.ezpix-package","ez3"],["application/vnd.fdf","fdf"],["application/vnd.fdsn.seed","seed"],["application/vnd.flographit","gph"],["application/vnd.fluxtime.clip","ftc"],["application/vnd.framemaker","fm"],["application/vnd.frogans.fnc","fnc"],["application/vnd.frogans.ltf","ltf"],["application/vnd.fsc.weblaunch","fsc"],["application/vnd.fujitsu.oasys","oas"],["application/vnd.fujitsu.oasys2","oa2"],["application/vnd.fujitsu.oasys3","oa3"],["application/vnd.fujitsu.oasysgp","fg5"],["application/vnd.fujitsu.oasysprs","bh2"],["application/vnd.fujixerox.ddd","ddd"],["application/vnd.fujixerox.docuworks","xdw"],["application/vnd.fujixerox.docuworks.binder","xbd"],["application/vnd.fuzzysheet","fzs"],["application/vnd.genomatix.tuxedo","txd"],["application/vnd.geogebra.file","ggb"],["application/vnd.geogebra.tool","ggt"],["application/vnd.geometry-explorer","gex"],["application/vnd.geonext","gxt"],["application/vnd.geoplan","g2w"],["application/vnd.geospace","g3w"],["application/vnd.gmx","gmx"],["application/vnd.google-earth.kml+xml","kml"],["application/vnd.google-earth.kmz","kmz"],["application/vnd.grafeq","gqf"],["application/vnd.groove-account","gac"],["application/vnd.groove-help","ghf"],["application/vnd.groove-identity-message","gim"],["application/vnd.groove-injector","grv"],["application/vnd.groove-tool-message","gtm"],["application/vnd.groove-tool-template","tpl"],["application/vnd.groove-vcard","vcg"],["application/vnd.hal+xml","hal"],["application/vnd.handheld-entertainment+xml","zmm"],["application/vnd.hbci","hbci"],["application/vnd.hhe.lesson-player","les"],["application/vnd.hp-hpgl",["hgl","hpg","hpgl"]],["application/vnd.hp-hpid","hpid"],["application/vnd.hp-hps","hps"],["application/vnd.hp-jlyt","jlt"],["application/vnd.hp-pcl","pcl"],["application/vnd.hp-pclxl","pclxl"],["application/vnd.hydrostatix.sof-data","sfd-hdstx"],["application/vnd.hzn-3d-crossword","x3d"],["application/vnd.ibm.minipay","mpy"],["application/vnd.ibm.modcap","afp"],["application/vnd.ibm.rights-management","irm"],["application/vnd.ibm.secure-container","sc"],["application/vnd.iccprofile","icc"],["application/vnd.igloader","igl"],["application/vnd.immervision-ivp","ivp"],["application/vnd.immervision-ivu","ivu"],["application/vnd.insors.igm","igm"],["application/vnd.intercon.formnet","xpw"],["application/vnd.intergeo","i2g"],["application/vnd.intu.qbo","qbo"],["application/vnd.intu.qfx","qfx"],["application/vnd.ipunplugged.rcprofile","rcprofile"],["application/vnd.irepository.package+xml","irp"],["application/vnd.is-xpr","xpr"],["application/vnd.isac.fcs","fcs"],["application/vnd.jam","jam"],["application/vnd.jcp.javame.midlet-rms","rms"],["application/vnd.jisp","jisp"],["application/vnd.joost.joda-archive","joda"],["application/vnd.kahootz","ktz"],["application/vnd.kde.karbon","karbon"],["application/vnd.kde.kchart","chrt"],["application/vnd.kde.kformula","kfo"],["application/vnd.kde.kivio","flw"],["application/vnd.kde.kontour","kon"],["application/vnd.kde.kpresenter","kpr"],["application/vnd.kde.kspread","ksp"],["application/vnd.kde.kword","kwd"],["application/vnd.kenameaapp","htke"],["application/vnd.kidspiration","kia"],["application/vnd.kinar","kne"],["application/vnd.koan","skp"],["application/vnd.kodak-descriptor","sse"],["application/vnd.las.las+xml","lasxml"],["application/vnd.llamagraphics.life-balance.desktop","lbd"],["application/vnd.llamagraphics.life-balance.exchange+xml","lbe"],["application/vnd.lotus-1-2-3","123"],["application/vnd.lotus-approach","apr"],["application/vnd.lotus-freelance","pre"],["application/vnd.lotus-notes","nsf"],["application/vnd.lotus-organizer","org"],["application/vnd.lotus-screencam","scm"],["application/vnd.lotus-wordpro","lwp"],["application/vnd.macports.portpkg","portpkg"],["application/vnd.mcd","mcd"],["application/vnd.medcalcdata","mc1"],["application/vnd.mediastation.cdkey","cdkey"],["application/vnd.mfer","mwf"],["application/vnd.mfmp","mfm"],["application/vnd.micrografx.flo","flo"],["application/vnd.micrografx.igx","igx"],["application/vnd.mif","mif"],["application/vnd.mobius.daf","daf"],["application/vnd.mobius.dis","dis"],["application/vnd.mobius.mbk","mbk"],["application/vnd.mobius.mqy","mqy"],["application/vnd.mobius.msl","msl"],["application/vnd.mobius.plc","plc"],["application/vnd.mobius.txf","txf"],["application/vnd.mophun.application","mpn"],["application/vnd.mophun.certificate","mpc"],["application/vnd.mozilla.xul+xml","xul"],["application/vnd.ms-artgalry","cil"],["application/vnd.ms-cab-compressed","cab"],["application/vnd.ms-excel",["xls","xla","xlc","xlm","xlt","xlw","xlb","xll"]],["application/vnd.ms-excel.addin.macroenabled.12","xlam"],["application/vnd.ms-excel.sheet.binary.macroenabled.12","xlsb"],["application/vnd.ms-excel.sheet.macroenabled.12","xlsm"],["application/vnd.ms-excel.template.macroenabled.12","xltm"],["application/vnd.ms-fontobject","eot"],["application/vnd.ms-htmlhelp","chm"],["application/vnd.ms-ims","ims"],["application/vnd.ms-lrm","lrm"],["application/vnd.ms-officetheme","thmx"],["application/vnd.ms-outlook","msg"],["application/vnd.ms-pki.certstore","sst"],["application/vnd.ms-pki.pko","pko"],["application/vnd.ms-pki.seccat","cat"],["application/vnd.ms-pki.stl","stl"],["application/vnd.ms-pkicertstore","sst"],["application/vnd.ms-pkiseccat","cat"],["application/vnd.ms-pkistl","stl"],["application/vnd.ms-powerpoint",["ppt","pot","pps","ppa","pwz"]],["application/vnd.ms-powerpoint.addin.macroenabled.12","ppam"],["application/vnd.ms-powerpoint.presentation.macroenabled.12","pptm"],["application/vnd.ms-powerpoint.slide.macroenabled.12","sldm"],["application/vnd.ms-powerpoint.slideshow.macroenabled.12","ppsm"],["application/vnd.ms-powerpoint.template.macroenabled.12","potm"],["application/vnd.ms-project","mpp"],["application/vnd.ms-word.document.macroenabled.12","docm"],["application/vnd.ms-word.template.macroenabled.12","dotm"],["application/vnd.ms-works",["wks","wcm","wdb","wps"]],["application/vnd.ms-wpl","wpl"],["application/vnd.ms-xpsdocument","xps"],["application/vnd.mseq","mseq"],["application/vnd.musician","mus"],["application/vnd.muvee.style","msty"],["application/vnd.neurolanguage.nlu","nlu"],["application/vnd.noblenet-directory","nnd"],["application/vnd.noblenet-sealer","nns"],["application/vnd.noblenet-web","nnw"],["application/vnd.nokia.configuration-message","ncm"],["application/vnd.nokia.n-gage.data","ngdat"],["application/vnd.nokia.n-gage.symbian.install","n-gage"],["application/vnd.nokia.radio-preset","rpst"],["application/vnd.nokia.radio-presets","rpss"],["application/vnd.nokia.ringing-tone","rng"],["application/vnd.novadigm.edm","edm"],["application/vnd.novadigm.edx","edx"],["application/vnd.novadigm.ext","ext"],["application/vnd.oasis.opendocument.chart","odc"],["application/vnd.oasis.opendocument.chart-template","otc"],["application/vnd.oasis.opendocument.database","odb"],["application/vnd.oasis.opendocument.formula","odf"],["application/vnd.oasis.opendocument.formula-template","odft"],["application/vnd.oasis.opendocument.graphics","odg"],["application/vnd.oasis.opendocument.graphics-template","otg"],["application/vnd.oasis.opendocument.image","odi"],["application/vnd.oasis.opendocument.image-template","oti"],["application/vnd.oasis.opendocument.presentation","odp"],["application/vnd.oasis.opendocument.presentation-template","otp"],["application/vnd.oasis.opendocument.spreadsheet","ods"],["application/vnd.oasis.opendocument.spreadsheet-template","ots"],["application/vnd.oasis.opendocument.text","odt"],["application/vnd.oasis.opendocument.text-master","odm"],["application/vnd.oasis.opendocument.text-template","ott"],["application/vnd.oasis.opendocument.text-web","oth"],["application/vnd.olpc-sugar","xo"],["application/vnd.oma.dd2+xml","dd2"],["application/vnd.openofficeorg.extension","oxt"],["application/vnd.openxmlformats-officedocument.presentationml.presentation","pptx"],["application/vnd.openxmlformats-officedocument.presentationml.slide","sldx"],["application/vnd.openxmlformats-officedocument.presentationml.slideshow","ppsx"],["application/vnd.openxmlformats-officedocument.presentationml.template","potx"],["application/vnd.openxmlformats-officedocument.spreadsheetml.sheet","xlsx"],["application/vnd.openxmlformats-officedocument.spreadsheetml.template","xltx"],["application/vnd.openxmlformats-officedocument.wordprocessingml.document","docx"],["application/vnd.openxmlformats-officedocument.wordprocessingml.template","dotx"],["application/vnd.osgeo.mapguide.package","mgp"],["application/vnd.osgi.dp","dp"],["application/vnd.palm","pdb"],["application/vnd.pawaafile","paw"],["application/vnd.pg.format","str"],["application/vnd.pg.osasli","ei6"],["application/vnd.picsel","efif"],["application/vnd.pmi.widget","wg"],["application/vnd.pocketlearn","plf"],["application/vnd.powerbuilder6","pbd"],["application/vnd.previewsystems.box","box"],["application/vnd.proteus.magazine","mgz"],["application/vnd.publishare-delta-tree","qps"],["application/vnd.pvi.ptid1","ptid"],["application/vnd.quark.quarkxpress","qxd"],["application/vnd.realvnc.bed","bed"],["application/vnd.recordare.musicxml","mxl"],["application/vnd.recordare.musicxml+xml","musicxml"],["application/vnd.rig.cryptonote","cryptonote"],["application/vnd.rim.cod","cod"],["application/vnd.rn-realmedia","rm"],["application/vnd.rn-realplayer","rnx"],["application/vnd.route66.link66+xml","link66"],["application/vnd.sailingtracker.track","st"],["application/vnd.seemail","see"],["application/vnd.sema","sema"],["application/vnd.semd","semd"],["application/vnd.semf","semf"],["application/vnd.shana.informed.formdata","ifm"],["application/vnd.shana.informed.formtemplate","itp"],["application/vnd.shana.informed.interchange","iif"],["application/vnd.shana.informed.package","ipk"],["application/vnd.simtech-mindmapper","twd"],["application/vnd.smaf","mmf"],["application/vnd.smart.teacher","teacher"],["application/vnd.solent.sdkm+xml","sdkm"],["application/vnd.spotfire.dxp","dxp"],["application/vnd.spotfire.sfs","sfs"],["application/vnd.stardivision.calc","sdc"],["application/vnd.stardivision.draw","sda"],["application/vnd.stardivision.impress","sdd"],["application/vnd.stardivision.math","smf"],["application/vnd.stardivision.writer","sdw"],["application/vnd.stardivision.writer-global","sgl"],["application/vnd.stepmania.stepchart","sm"],["application/vnd.sun.xml.calc","sxc"],["application/vnd.sun.xml.calc.template","stc"],["application/vnd.sun.xml.draw","sxd"],["application/vnd.sun.xml.draw.template","std"],["application/vnd.sun.xml.impress","sxi"],["application/vnd.sun.xml.impress.template","sti"],["application/vnd.sun.xml.math","sxm"],["application/vnd.sun.xml.writer","sxw"],["application/vnd.sun.xml.writer.global","sxg"],["application/vnd.sun.xml.writer.template","stw"],["application/vnd.sus-calendar","sus"],["application/vnd.svd","svd"],["application/vnd.symbian.install","sis"],["application/vnd.syncml+xml","xsm"],["application/vnd.syncml.dm+wbxml","bdm"],["application/vnd.syncml.dm+xml","xdm"],["application/vnd.tao.intent-module-archive","tao"],["application/vnd.tmobile-livetv","tmo"],["application/vnd.trid.tpt","tpt"],["application/vnd.triscape.mxs","mxs"],["application/vnd.trueapp","tra"],["application/vnd.ufdl","ufd"],["application/vnd.uiq.theme","utz"],["application/vnd.umajin","umj"],["application/vnd.unity","unityweb"],["application/vnd.uoml+xml","uoml"],["application/vnd.vcx","vcx"],["application/vnd.visio","vsd"],["application/vnd.visionary","vis"],["application/vnd.vsf","vsf"],["application/vnd.wap.wbxml","wbxml"],["application/vnd.wap.wmlc","wmlc"],["application/vnd.wap.wmlscriptc","wmlsc"],["application/vnd.webturbo","wtb"],["application/vnd.wolfram.player","nbp"],["application/vnd.wordperfect","wpd"],["application/vnd.wqd","wqd"],["application/vnd.wt.stf","stf"],["application/vnd.xara",["web","xar"]],["application/vnd.xfdl","xfdl"],["application/vnd.yamaha.hv-dic","hvd"],["application/vnd.yamaha.hv-script","hvs"],["application/vnd.yamaha.hv-voice","hvp"],["application/vnd.yamaha.openscoreformat","osf"],["application/vnd.yamaha.openscoreformat.osfpvg+xml","osfpvg"],["application/vnd.yamaha.smaf-audio","saf"],["application/vnd.yamaha.smaf-phrase","spf"],["application/vnd.yellowriver-custom-menu","cmp"],["application/vnd.zul","zir"],["application/vnd.zzazz.deck+xml","zaz"],["application/vocaltec-media-desc","vmd"],["application/vocaltec-media-file","vmf"],["application/voicexml+xml","vxml"],["application/widget","wgt"],["application/winhlp","hlp"],["application/wordperfect",["wp","wp5","wp6","wpd"]],["application/wordperfect6.0",["w60","wp5"]],["application/wordperfect6.1","w61"],["application/wsdl+xml","wsdl"],["application/wspolicy+xml","wspolicy"],["application/x-123","wk1"],["application/x-7z-compressed","7z"],["application/x-abiword","abw"],["application/x-ace-compressed","ace"],["application/x-aim","aim"],["application/x-authorware-bin","aab"],["application/x-authorware-map","aam"],["application/x-authorware-seg","aas"],["application/x-bcpio","bcpio"],["application/x-binary","bin"],["application/x-binhex40","hqx"],["application/x-bittorrent","torrent"],["application/x-bsh",["bsh","sh","shar"]],["application/x-bytecode.elisp","elc"],["application/x-bytecode.python","pyc"],["application/x-bzip","bz"],["application/x-bzip2",["boz","bz2"]],["application/x-cdf","cdf"],["application/x-cdlink","vcd"],["application/x-chat",["cha","chat"]],["application/x-chess-pgn","pgn"],["application/x-cmu-raster","ras"],["application/x-cocoa","cco"],["application/x-compactpro","cpt"],["application/x-compress","z"],["application/x-compressed",["tgz","gz","z","zip"]],["application/x-conference","nsc"],["application/x-cpio","cpio"],["application/x-cpt","cpt"],["application/x-csh","csh"],["application/x-debian-package","deb"],["application/x-deepv","deepv"],["application/x-director",["dir","dcr","dxr"]],["application/x-doom","wad"],["application/x-dtbncx+xml","ncx"],["application/x-dtbook+xml","dtb"],["application/x-dtbresource+xml","res"],["application/x-dvi","dvi"],["application/x-elc","elc"],["application/x-envoy",["env","evy"]],["application/x-esrehber","es"],["application/x-excel",["xls","xla","xlb","xlc","xld","xlk","xll","xlm","xlt","xlv","xlw"]],["application/x-font-bdf","bdf"],["application/x-font-ghostscript","gsf"],["application/x-font-linux-psf","psf"],["application/x-font-otf","otf"],["application/x-font-pcf","pcf"],["application/x-font-snf","snf"],["application/x-font-ttf","ttf"],["application/x-font-type1","pfa"],["application/x-font-woff","woff"],["application/x-frame","mif"],["application/x-freelance","pre"],["application/x-futuresplash","spl"],["application/x-gnumeric","gnumeric"],["application/x-gsp","gsp"],["application/x-gss","gss"],["application/x-gtar","gtar"],["application/x-gzip",["gz","gzip"]],["application/x-hdf","hdf"],["application/x-helpfile",["help","hlp"]],["application/x-httpd-imap","imap"],["application/x-ima","ima"],["application/x-internet-signup",["ins","isp"]],["application/x-internett-signup","ins"],["application/x-inventor","iv"],["application/x-ip2","ip"],["application/x-iphone","iii"],["application/x-java-class","class"],["application/x-java-commerce","jcm"],["application/x-java-jnlp-file","jnlp"],["application/x-javascript","js"],["application/x-koan",["skd","skm","skp","skt"]],["application/x-ksh","ksh"],["application/x-latex",["latex","ltx"]],["application/x-lha","lha"],["application/x-lisp","lsp"],["application/x-livescreen","ivy"],["application/x-lotus","wq1"],["application/x-lotusscreencam","scm"],["application/x-lzh","lzh"],["application/x-lzx","lzx"],["application/x-mac-binhex40","hqx"],["application/x-macbinary","bin"],["application/x-magic-cap-package-1.0","mc$"],["application/x-mathcad","mcd"],["application/x-meme","mm"],["application/x-midi",["mid","midi"]],["application/x-mif","mif"],["application/x-mix-transfer","nix"],["application/x-mobipocket-ebook","prc"],["application/x-mplayer2","asx"],["application/x-ms-application","application"],["application/x-ms-wmd","wmd"],["application/x-ms-wmz","wmz"],["application/x-ms-xbap","xbap"],["application/x-msaccess","mdb"],["application/x-msbinder","obd"],["application/x-mscardfile","crd"],["application/x-msclip","clp"],["application/x-msdownload",["exe","dll"]],["application/x-msexcel",["xls","xla","xlw"]],["application/x-msmediaview",["mvb","m13","m14"]],["application/x-msmetafile","wmf"],["application/x-msmoney","mny"],["application/x-mspowerpoint","ppt"],["application/x-mspublisher","pub"],["application/x-msschedule","scd"],["application/x-msterminal","trm"],["application/x-mswrite","wri"],["application/x-navi-animation","ani"],["application/x-navidoc","nvd"],["application/x-navimap","map"],["application/x-navistyle","stl"],["application/x-netcdf",["cdf","nc"]],["application/x-newton-compatible-pkg","pkg"],["application/x-nokia-9000-communicator-add-on-software","aos"],["application/x-omc","omc"],["application/x-omcdatamaker","omcd"],["application/x-omcregerator","omcr"],["application/x-pagemaker",["pm4","pm5"]],["application/x-pcl","pcl"],["application/x-perfmon",["pma","pmc","pml","pmr","pmw"]],["application/x-pixclscript","plx"],["application/x-pkcs10","p10"],["application/x-pkcs12",["p12","pfx"]],["application/x-pkcs7-certificates",["p7b","spc"]],["application/x-pkcs7-certreqresp","p7r"],["application/x-pkcs7-mime",["p7m","p7c"]],["application/x-pkcs7-signature",["p7s","p7a"]],["application/x-pointplus","css"],["application/x-portable-anymap","pnm"],["application/x-project",["mpc","mpt","mpv","mpx"]],["application/x-qpro","wb1"],["application/x-rar-compressed","rar"],["application/x-rtf","rtf"],["application/x-sdp","sdp"],["application/x-sea","sea"],["application/x-seelogo","sl"],["application/x-sh","sh"],["application/x-shar",["shar","sh"]],["application/x-shockwave-flash","swf"],["application/x-silverlight-app","xap"],["application/x-sit","sit"],["application/x-sprite",["spr","sprite"]],["application/x-stuffit","sit"],["application/x-stuffitx","sitx"],["application/x-sv4cpio","sv4cpio"],["application/x-sv4crc","sv4crc"],["application/x-tar","tar"],["application/x-tbook",["sbk","tbk"]],["application/x-tcl","tcl"],["application/x-tex","tex"],["application/x-tex-tfm","tfm"],["application/x-texinfo",["texi","texinfo"]],["application/x-troff",["roff","t","tr"]],["application/x-troff-man","man"],["application/x-troff-me","me"],["application/x-troff-ms","ms"],["application/x-troff-msvideo","avi"],["application/x-ustar","ustar"],["application/x-visio",["vsd","vst","vsw"]],["application/x-vnd.audioexplosion.mzz","mzz"],["application/x-vnd.ls-xpix","xpix"],["application/x-vrml","vrml"],["application/x-wais-source",["src","wsrc"]],["application/x-winhelp","hlp"],["application/x-wintalk","wtk"],["application/x-world",["wrl","svr"]],["application/x-wpwin","wpd"],["application/x-wri","wri"],["application/x-x509-ca-cert",["cer","crt","der"]],["application/x-x509-user-cert","crt"],["application/x-xfig","fig"],["application/x-xpinstall","xpi"],["application/x-zip-compressed","zip"],["application/xcap-diff+xml","xdf"],["application/xenc+xml","xenc"],["application/xhtml+xml","xhtml"],["application/xml","xml"],["application/xml-dtd","dtd"],["application/xop+xml","xop"],["application/xslt+xml","xslt"],["application/xspf+xml","xspf"],["application/xv+xml","mxml"],["application/yang","yang"],["application/yin+xml","yin"],["application/ynd.ms-pkipko","pko"],["application/zip","zip"],["audio/adpcm","adp"],["audio/aiff",["aiff","aif","aifc"]],["audio/basic",["snd","au"]],["audio/it","it"],["audio/make",["funk","my","pfunk"]],["audio/make.my.funk","pfunk"],["audio/mid",["mid","rmi"]],["audio/midi",["midi","kar","mid"]],["audio/mod","mod"],["audio/mp4","mp4a"],["audio/mpeg",["mpga","mp3","m2a","mp2","mpa","mpg"]],["audio/mpeg3","mp3"],["audio/nspaudio",["la","lma"]],["audio/ogg","oga"],["audio/s3m","s3m"],["audio/tsp-audio","tsi"],["audio/tsplayer","tsp"],["audio/vnd.dece.audio","uva"],["audio/vnd.digital-winds","eol"],["audio/vnd.dra","dra"],["audio/vnd.dts","dts"],["audio/vnd.dts.hd","dtshd"],["audio/vnd.lucent.voice","lvp"],["audio/vnd.ms-playready.media.pya","pya"],["audio/vnd.nuera.ecelp4800","ecelp4800"],["audio/vnd.nuera.ecelp7470","ecelp7470"],["audio/vnd.nuera.ecelp9600","ecelp9600"],["audio/vnd.qcelp","qcp"],["audio/vnd.rip","rip"],["audio/voc","voc"],["audio/voxware","vox"],["audio/wav","wav"],["audio/webm","weba"],["audio/x-aac","aac"],["audio/x-adpcm","snd"],["audio/x-aiff",["aiff","aif","aifc"]],["audio/x-au","au"],["audio/x-gsm",["gsd","gsm"]],["audio/x-jam","jam"],["audio/x-liveaudio","lam"],["audio/x-mid",["mid","midi"]],["audio/x-midi",["midi","mid"]],["audio/x-mod","mod"],["audio/x-mpeg","mp2"],["audio/x-mpeg-3","mp3"],["audio/x-mpegurl","m3u"],["audio/x-mpequrl","m3u"],["audio/x-ms-wax","wax"],["audio/x-ms-wma","wma"],["audio/x-nspaudio",["la","lma"]],["audio/x-pn-realaudio",["ra","ram","rm","rmm","rmp"]],["audio/x-pn-realaudio-plugin",["ra","rmp","rpm"]],["audio/x-psid","sid"],["audio/x-realaudio","ra"],["audio/x-twinvq","vqf"],["audio/x-twinvq-plugin",["vqe","vql"]],["audio/x-vnd.audioexplosion.mjuicemediafile","mjf"],["audio/x-voc","voc"],["audio/x-wav","wav"],["audio/xm","xm"],["chemical/x-cdx","cdx"],["chemical/x-cif","cif"],["chemical/x-cmdf","cmdf"],["chemical/x-cml","cml"],["chemical/x-csml","csml"],["chemical/x-pdb",["pdb","xyz"]],["chemical/x-xyz","xyz"],["drawing/x-dwf","dwf"],["i-world/i-vrml","ivr"],["image/bmp",["bmp","bm"]],["image/cgm","cgm"],["image/cis-cod","cod"],["image/cmu-raster",["ras","rast"]],["image/fif","fif"],["image/florian",["flo","turbot"]],["image/g3fax","g3"],["image/gif","gif"],["image/ief",["ief","iefs"]],["image/jpeg",["jpeg","jpe","jpg","jfif","jfif-tbnl"]],["image/jutvision","jut"],["image/ktx","ktx"],["image/naplps",["nap","naplps"]],["image/pict",["pic","pict"]],["image/pipeg","jfif"],["image/pjpeg",["jfif","jpe","jpeg","jpg"]],["image/png",["png","x-png"]],["image/prs.btif","btif"],["image/svg+xml","svg"],["image/tiff",["tif","tiff"]],["image/vasa","mcf"],["image/vnd.adobe.photoshop","psd"],["image/vnd.dece.graphic","uvi"],["image/vnd.djvu","djvu"],["image/vnd.dvb.subtitle","sub"],["image/vnd.dwg",["dwg","dxf","svf"]],["image/vnd.dxf","dxf"],["image/vnd.fastbidsheet","fbs"],["image/vnd.fpx","fpx"],["image/vnd.fst","fst"],["image/vnd.fujixerox.edmics-mmr","mmr"],["image/vnd.fujixerox.edmics-rlc","rlc"],["image/vnd.ms-modi","mdi"],["image/vnd.net-fpx",["fpx","npx"]],["image/vnd.rn-realflash","rf"],["image/vnd.rn-realpix","rp"],["image/vnd.wap.wbmp","wbmp"],["image/vnd.xiff","xif"],["image/webp","webp"],["image/x-cmu-raster","ras"],["image/x-cmx","cmx"],["image/x-dwg",["dwg","dxf","svf"]],["image/x-freehand","fh"],["image/x-icon","ico"],["image/x-jg","art"],["image/x-jps","jps"],["image/x-niff",["niff","nif"]],["image/x-pcx","pcx"],["image/x-pict",["pct","pic"]],["image/x-portable-anymap","pnm"],["image/x-portable-bitmap","pbm"],["image/x-portable-graymap","pgm"],["image/x-portable-greymap","pgm"],["image/x-portable-pixmap","ppm"],["image/x-quicktime",["qif","qti","qtif"]],["image/x-rgb","rgb"],["image/x-tiff",["tif","tiff"]],["image/x-windows-bmp","bmp"],["image/x-xbitmap","xbm"],["image/x-xbm","xbm"],["image/x-xpixmap",["xpm","pm"]],["image/x-xwd","xwd"],["image/x-xwindowdump","xwd"],["image/xbm","xbm"],["image/xpm","xpm"],["message/rfc822",["eml","mht","mhtml","nws","mime"]],["model/iges",["iges","igs"]],["model/mesh","msh"],["model/vnd.collada+xml","dae"],["model/vnd.dwf","dwf"],["model/vnd.gdl","gdl"],["model/vnd.gtw","gtw"],["model/vnd.mts","mts"],["model/vnd.vtu","vtu"],["model/vrml",["vrml","wrl","wrz"]],["model/x-pov","pov"],["multipart/x-gzip","gzip"],["multipart/x-ustar","ustar"],["multipart/x-zip","zip"],["music/crescendo",["mid","midi"]],["music/x-karaoke","kar"],["paleovu/x-pv","pvu"],["text/asp","asp"],["text/calendar","ics"],["text/css","css"],["text/csv","csv"],["text/ecmascript","js"],["text/h323","323"],["text/html",["html","htm","stm","acgi","htmls","htx","shtml"]],["text/iuls","uls"],["text/javascript","js"],["text/mcf","mcf"],["text/n3","n3"],["text/pascal","pas"],["text/plain",["txt","bas","c","h","c++","cc","com","conf","cxx","def","f","f90","for","g","hh","idc","jav","java","list","log","lst","m","mar","pl","sdml","text"]],["text/plain-bas","par"],["text/prs.lines.tag","dsc"],["text/richtext",["rtx","rt","rtf"]],["text/scriplet","wsc"],["text/scriptlet","sct"],["text/sgml",["sgm","sgml"]],["text/tab-separated-values","tsv"],["text/troff","t"],["text/turtle","ttl"],["text/uri-list",["uni","unis","uri","uris"]],["text/vnd.abc","abc"],["text/vnd.curl","curl"],["text/vnd.curl.dcurl","dcurl"],["text/vnd.curl.mcurl","mcurl"],["text/vnd.curl.scurl","scurl"],["text/vnd.fly","fly"],["text/vnd.fmi.flexstor","flx"],["text/vnd.graphviz","gv"],["text/vnd.in3d.3dml","3dml"],["text/vnd.in3d.spot","spot"],["text/vnd.rn-realtext","rt"],["text/vnd.sun.j2me.app-descriptor","jad"],["text/vnd.wap.wml","wml"],["text/vnd.wap.wmlscript","wmls"],["text/webviewhtml","htt"],["text/x-asm",["asm","s"]],["text/x-audiosoft-intra","aip"],["text/x-c",["c","cc","cpp"]],["text/x-component","htc"],["text/x-fortran",["for","f","f77","f90"]],["text/x-h",["h","hh"]],["text/x-java-source",["java","jav"]],["text/x-java-source,java","java"],["text/x-la-asf","lsx"],["text/x-m","m"],["text/x-pascal","p"],["text/x-script","hlb"],["text/x-script.csh","csh"],["text/x-script.elisp","el"],["text/x-script.guile","scm"],["text/x-script.ksh","ksh"],["text/x-script.lisp","lsp"],["text/x-script.perl","pl"],["text/x-script.perl-module","pm"],["text/x-script.phyton","py"],["text/x-script.rexx","rexx"],["text/x-script.scheme","scm"],["text/x-script.sh","sh"],["text/x-script.tcl","tcl"],["text/x-script.tcsh","tcsh"],["text/x-script.zsh","zsh"],["text/x-server-parsed-html",["shtml","ssi"]],["text/x-setext","etx"],["text/x-sgml",["sgm","sgml"]],["text/x-speech",["spc","talk"]],["text/x-uil","uil"],["text/x-uuencode",["uu","uue"]],["text/x-vcalendar","vcs"],["text/x-vcard","vcf"],["text/xml","xml"],["video/3gpp","3gp"],["video/3gpp2","3g2"],["video/animaflex","afl"],["video/avi","avi"],["video/avs-video","avs"],["video/dl","dl"],["video/fli","fli"],["video/gl","gl"],["video/h261","h261"],["video/h263","h263"],["video/h264","h264"],["video/jpeg","jpgv"],["video/jpm","jpm"],["video/mj2","mj2"],["video/mp4","mp4"],["video/mpeg",["mpeg","mp2","mpa","mpe","mpg","mpv2","m1v","m2v","mp3"]],["video/msvideo","avi"],["video/ogg","ogv"],["video/quicktime",["mov","qt","moov"]],["video/vdo","vdo"],["video/vivo",["viv","vivo"]],["video/vnd.dece.hd","uvh"],["video/vnd.dece.mobile","uvm"],["video/vnd.dece.pd","uvp"],["video/vnd.dece.sd","uvs"],["video/vnd.dece.video","uvv"],["video/vnd.fvt","fvt"],["video/vnd.mpegurl","mxu"],["video/vnd.ms-playready.media.pyv","pyv"],["video/vnd.rn-realvideo","rv"],["video/vnd.uvvu.mp4","uvu"],["video/vnd.vivo",["viv","vivo"]],["video/vosaic","vos"],["video/webm","webm"],["video/x-amt-demorun","xdr"],["video/x-amt-showrun","xsr"],["video/x-atomic3d-feature","fmf"],["video/x-dl","dl"],["video/x-dv",["dif","dv"]],["video/x-f4v","f4v"],["video/x-fli","fli"],["video/x-flv","flv"],["video/x-gl","gl"],["video/x-isvideo","isu"],["video/x-la-asf",["lsf","lsx"]],["video/x-m4v","m4v"],["video/x-motion-jpeg","mjpg"],["video/x-mpeg",["mp3","mp2"]],["video/x-mpeq2a","mp2"],["video/x-ms-asf",["asf","asr","asx"]],["video/x-ms-asf-plugin","asx"],["video/x-ms-wm","wm"],["video/x-ms-wmv","wmv"],["video/x-ms-wmx","wmx"],["video/x-ms-wvx","wvx"],["video/x-msvideo","avi"],["video/x-qtc","qtc"],["video/x-scm","scm"],["video/x-sgi-movie",["movie","mv"]],["windows/metafile","wmf"],["www/mime","mime"],["x-conference/x-cooltalk","ice"],["x-music/x-midi",["mid","midi"]],["x-world/x-3dmf",["3dm","3dmf","qd3","qd3d"]],["x-world/x-svr","svr"],["x-world/x-vrml",["flr","vrml","wrl","wrz","xaf","xof"]],["x-world/x-vrt","vrt"],["xgl/drawing","xgz"],["xgl/movie","xmz"]]),Fp=new Map([["123","application/vnd.lotus-1-2-3"],["323","text/h323"],["*","application/octet-stream"],["3dm","x-world/x-3dmf"],["3dmf","x-world/x-3dmf"],["3dml","text/vnd.in3d.3dml"],["3g2","video/3gpp2"],["3gp","video/3gpp"],["7z","application/x-7z-compressed"],["a","application/octet-stream"],["aab","application/x-authorware-bin"],["aac","audio/x-aac"],["aam","application/x-authorware-map"],["aas","application/x-authorware-seg"],["abc","text/vnd.abc"],["abw","application/x-abiword"],["ac","application/pkix-attr-cert"],["acc","application/vnd.americandynamics.acc"],["ace","application/x-ace-compressed"],["acgi","text/html"],["acu","application/vnd.acucobol"],["acx","application/internet-property-stream"],["adp","audio/adpcm"],["aep","application/vnd.audiograph"],["afl","video/animaflex"],["afp","application/vnd.ibm.modcap"],["ahead","application/vnd.ahead.space"],["ai","application/postscript"],["aif",["audio/aiff","audio/x-aiff"]],["aifc",["audio/aiff","audio/x-aiff"]],["aiff",["audio/aiff","audio/x-aiff"]],["aim","application/x-aim"],["aip","text/x-audiosoft-intra"],["air","application/vnd.adobe.air-application-installer-package+zip"],["ait","application/vnd.dvb.ait"],["ami","application/vnd.amiga.ami"],["ani","application/x-navi-animation"],["aos","application/x-nokia-9000-communicator-add-on-software"],["apk","application/vnd.android.package-archive"],["application","application/x-ms-application"],["apr","application/vnd.lotus-approach"],["aps","application/mime"],["arc","application/octet-stream"],["arj",["application/arj","application/octet-stream"]],["art","image/x-jg"],["asf","video/x-ms-asf"],["asm","text/x-asm"],["aso","application/vnd.accpac.simply.aso"],["asp","text/asp"],["asr","video/x-ms-asf"],["asx",["video/x-ms-asf","application/x-mplayer2","video/x-ms-asf-plugin"]],["atc","application/vnd.acucorp"],["atomcat","application/atomcat+xml"],["atomsvc","application/atomsvc+xml"],["atx","application/vnd.antix.game-component"],["au",["audio/basic","audio/x-au"]],["avi",["video/avi","video/msvideo","application/x-troff-msvideo","video/x-msvideo"]],["avs","video/avs-video"],["aw","application/applixware"],["axs","application/olescript"],["azf","application/vnd.airzip.filesecure.azf"],["azs","application/vnd.airzip.filesecure.azs"],["azw","application/vnd.amazon.ebook"],["bas","text/plain"],["bcpio","application/x-bcpio"],["bdf","application/x-font-bdf"],["bdm","application/vnd.syncml.dm+wbxml"],["bed","application/vnd.realvnc.bed"],["bh2","application/vnd.fujitsu.oasysprs"],["bin",["application/octet-stream","application/mac-binary","application/macbinary","application/x-macbinary","application/x-binary"]],["bm","image/bmp"],["bmi","application/vnd.bmi"],["bmp",["image/bmp","image/x-windows-bmp"]],["boo","application/book"],["book","application/book"],["box","application/vnd.previewsystems.box"],["boz","application/x-bzip2"],["bsh","application/x-bsh"],["btif","image/prs.btif"],["bz","application/x-bzip"],["bz2","application/x-bzip2"],["c",["text/plain","text/x-c"]],["c++","text/plain"],["c11amc","application/vnd.cluetrust.cartomobile-config"],["c11amz","application/vnd.cluetrust.cartomobile-config-pkg"],["c4g","application/vnd.clonk.c4group"],["cab","application/vnd.ms-cab-compressed"],["car","application/vnd.curl.car"],["cat",["application/vnd.ms-pkiseccat","application/vnd.ms-pki.seccat"]],["cc",["text/plain","text/x-c"]],["ccad","application/clariscad"],["cco","application/x-cocoa"],["ccxml","application/ccxml+xml,"],["cdbcmsg","application/vnd.contact.cmsg"],["cdf",["application/cdf","application/x-cdf","application/x-netcdf"]],["cdkey","application/vnd.mediastation.cdkey"],["cdmia","application/cdmi-capability"],["cdmic","application/cdmi-container"],["cdmid","application/cdmi-domain"],["cdmio","application/cdmi-object"],["cdmiq","application/cdmi-queue"],["cdx","chemical/x-cdx"],["cdxml","application/vnd.chemdraw+xml"],["cdy","application/vnd.cinderella"],["cer",["application/pkix-cert","application/x-x509-ca-cert"]],["cgm","image/cgm"],["cha","application/x-chat"],["chat","application/x-chat"],["chm","application/vnd.ms-htmlhelp"],["chrt","application/vnd.kde.kchart"],["cif","chemical/x-cif"],["cii","application/vnd.anser-web-certificate-issue-initiation"],["cil","application/vnd.ms-artgalry"],["cla","application/vnd.claymore"],["class",["application/octet-stream","application/java","application/java-byte-code","application/java-vm","application/x-java-class"]],["clkk","application/vnd.crick.clicker.keyboard"],["clkp","application/vnd.crick.clicker.palette"],["clkt","application/vnd.crick.clicker.template"],["clkw","application/vnd.crick.clicker.wordbank"],["clkx","application/vnd.crick.clicker"],["clp","application/x-msclip"],["cmc","application/vnd.cosmocaller"],["cmdf","chemical/x-cmdf"],["cml","chemical/x-cml"],["cmp","application/vnd.yellowriver-custom-menu"],["cmx","image/x-cmx"],["cod",["image/cis-cod","application/vnd.rim.cod"]],["com",["application/octet-stream","text/plain"]],["conf","text/plain"],["cpio","application/x-cpio"],["cpp","text/x-c"],["cpt",["application/mac-compactpro","application/x-compactpro","application/x-cpt"]],["crd","application/x-mscardfile"],["crl",["application/pkix-crl","application/pkcs-crl"]],["crt",["application/pkix-cert","application/x-x509-user-cert","application/x-x509-ca-cert"]],["cryptonote","application/vnd.rig.cryptonote"],["csh",["text/x-script.csh","application/x-csh"]],["csml","chemical/x-csml"],["csp","application/vnd.commonspace"],["css",["text/css","application/x-pointplus"]],["csv","text/csv"],["cu","application/cu-seeme"],["curl","text/vnd.curl"],["cww","application/prs.cww"],["cxx","text/plain"],["dae","model/vnd.collada+xml"],["daf","application/vnd.mobius.daf"],["davmount","application/davmount+xml"],["dcr","application/x-director"],["dcurl","text/vnd.curl.dcurl"],["dd2","application/vnd.oma.dd2+xml"],["ddd","application/vnd.fujixerox.ddd"],["deb","application/x-debian-package"],["deepv","application/x-deepv"],["def","text/plain"],["der","application/x-x509-ca-cert"],["dfac","application/vnd.dreamfactory"],["dif","video/x-dv"],["dir","application/x-director"],["dis","application/vnd.mobius.dis"],["djvu","image/vnd.djvu"],["dl",["video/dl","video/x-dl"]],["dll","application/x-msdownload"],["dms","application/octet-stream"],["dna","application/vnd.dna"],["doc","application/msword"],["docm","application/vnd.ms-word.document.macroenabled.12"],["docx","application/vnd.openxmlformats-officedocument.wordprocessingml.document"],["dot","application/msword"],["dotm","application/vnd.ms-word.template.macroenabled.12"],["dotx","application/vnd.openxmlformats-officedocument.wordprocessingml.template"],["dp",["application/commonground","application/vnd.osgi.dp"]],["dpg","application/vnd.dpgraph"],["dra","audio/vnd.dra"],["drw","application/drafting"],["dsc","text/prs.lines.tag"],["dssc","application/dssc+der"],["dtb","application/x-dtbook+xml"],["dtd","application/xml-dtd"],["dts","audio/vnd.dts"],["dtshd","audio/vnd.dts.hd"],["dump","application/octet-stream"],["dv","video/x-dv"],["dvi","application/x-dvi"],["dwf",["model/vnd.dwf","drawing/x-dwf"]],["dwg",["application/acad","image/vnd.dwg","image/x-dwg"]],["dxf",["application/dxf","image/vnd.dwg","image/vnd.dxf","image/x-dwg"]],["dxp","application/vnd.spotfire.dxp"],["dxr","application/x-director"],["ecelp4800","audio/vnd.nuera.ecelp4800"],["ecelp7470","audio/vnd.nuera.ecelp7470"],["ecelp9600","audio/vnd.nuera.ecelp9600"],["edm","application/vnd.novadigm.edm"],["edx","application/vnd.novadigm.edx"],["efif","application/vnd.picsel"],["ei6","application/vnd.pg.osasli"],["el","text/x-script.elisp"],["elc",["application/x-elc","application/x-bytecode.elisp"]],["eml","message/rfc822"],["emma","application/emma+xml"],["env","application/x-envoy"],["eol","audio/vnd.digital-winds"],["eot","application/vnd.ms-fontobject"],["eps","application/postscript"],["epub","application/epub+zip"],["es",["application/ecmascript","application/x-esrehber"]],["es3","application/vnd.eszigno3+xml"],["esf","application/vnd.epson.esf"],["etx","text/x-setext"],["evy",["application/envoy","application/x-envoy"]],["exe",["application/octet-stream","application/x-msdownload"]],["exi","application/exi"],["ext","application/vnd.novadigm.ext"],["ez2","application/vnd.ezpix-album"],["ez3","application/vnd.ezpix-package"],["f",["text/plain","text/x-fortran"]],["f4v","video/x-f4v"],["f77","text/x-fortran"],["f90",["text/plain","text/x-fortran"]],["fbs","image/vnd.fastbidsheet"],["fcs","application/vnd.isac.fcs"],["fdf","application/vnd.fdf"],["fe_launch","application/vnd.denovo.fcselayout-link"],["fg5","application/vnd.fujitsu.oasysgp"],["fh","image/x-freehand"],["fif",["application/fractals","image/fif"]],["fig","application/x-xfig"],["fli",["video/fli","video/x-fli"]],["flo",["image/florian","application/vnd.micrografx.flo"]],["flr","x-world/x-vrml"],["flv","video/x-flv"],["flw","application/vnd.kde.kivio"],["flx","text/vnd.fmi.flexstor"],["fly","text/vnd.fly"],["fm","application/vnd.framemaker"],["fmf","video/x-atomic3d-feature"],["fnc","application/vnd.frogans.fnc"],["for",["text/plain","text/x-fortran"]],["fpx",["image/vnd.fpx","image/vnd.net-fpx"]],["frl","application/freeloader"],["fsc","application/vnd.fsc.weblaunch"],["fst","image/vnd.fst"],["ftc","application/vnd.fluxtime.clip"],["fti","application/vnd.anser-web-funds-transfer-initiation"],["funk","audio/make"],["fvt","video/vnd.fvt"],["fxp","application/vnd.adobe.fxp"],["fzs","application/vnd.fuzzysheet"],["g","text/plain"],["g2w","application/vnd.geoplan"],["g3","image/g3fax"],["g3w","application/vnd.geospace"],["gac","application/vnd.groove-account"],["gdl","model/vnd.gdl"],["geo","application/vnd.dynageo"],["geojson","application/geo+json"],["gex","application/vnd.geometry-explorer"],["ggb","application/vnd.geogebra.file"],["ggt","application/vnd.geogebra.tool"],["ghf","application/vnd.groove-help"],["gif","image/gif"],["gim","application/vnd.groove-identity-message"],["gl",["video/gl","video/x-gl"]],["gmx","application/vnd.gmx"],["gnumeric","application/x-gnumeric"],["gph","application/vnd.flographit"],["gqf","application/vnd.grafeq"],["gram","application/srgs"],["grv","application/vnd.groove-injector"],["grxml","application/srgs+xml"],["gsd","audio/x-gsm"],["gsf","application/x-font-ghostscript"],["gsm","audio/x-gsm"],["gsp","application/x-gsp"],["gss","application/x-gss"],["gtar","application/x-gtar"],["gtm","application/vnd.groove-tool-message"],["gtw","model/vnd.gtw"],["gv","text/vnd.graphviz"],["gxt","application/vnd.geonext"],["gz",["application/x-gzip","application/x-compressed"]],["gzip",["multipart/x-gzip","application/x-gzip"]],["h",["text/plain","text/x-h"]],["h261","video/h261"],["h263","video/h263"],["h264","video/h264"],["hal","application/vnd.hal+xml"],["hbci","application/vnd.hbci"],["hdf","application/x-hdf"],["help","application/x-helpfile"],["hgl","application/vnd.hp-hpgl"],["hh",["text/plain","text/x-h"]],["hlb","text/x-script"],["hlp",["application/winhlp","application/hlp","application/x-helpfile","application/x-winhelp"]],["hpg","application/vnd.hp-hpgl"],["hpgl","application/vnd.hp-hpgl"],["hpid","application/vnd.hp-hpid"],["hps","application/vnd.hp-hps"],["hqx",["application/mac-binhex40","application/binhex","application/binhex4","application/mac-binhex","application/x-binhex40","application/x-mac-binhex40"]],["hta","application/hta"],["htc","text/x-component"],["htke","application/vnd.kenameaapp"],["htm","text/html"],["html","text/html"],["htmls","text/html"],["htt","text/webviewhtml"],["htx","text/html"],["hvd","application/vnd.yamaha.hv-dic"],["hvp","application/vnd.yamaha.hv-voice"],["hvs","application/vnd.yamaha.hv-script"],["i2g","application/vnd.intergeo"],["icc","application/vnd.iccprofile"],["ice","x-conference/x-cooltalk"],["ico","image/x-icon"],["ics","text/calendar"],["idc","text/plain"],["ief","image/ief"],["iefs","image/ief"],["ifm","application/vnd.shana.informed.formdata"],["iges",["application/iges","model/iges"]],["igl","application/vnd.igloader"],["igm","application/vnd.insors.igm"],["igs",["application/iges","model/iges"]],["igx","application/vnd.micrografx.igx"],["iif","application/vnd.shana.informed.interchange"],["iii","application/x-iphone"],["ima","application/x-ima"],["imap","application/x-httpd-imap"],["imp","application/vnd.accpac.simply.imp"],["ims","application/vnd.ms-ims"],["inf","application/inf"],["ins",["application/x-internet-signup","application/x-internett-signup"]],["ip","application/x-ip2"],["ipfix","application/ipfix"],["ipk","application/vnd.shana.informed.package"],["irm","application/vnd.ibm.rights-management"],["irp","application/vnd.irepository.package+xml"],["isp","application/x-internet-signup"],["isu","video/x-isvideo"],["it","audio/it"],["itp","application/vnd.shana.informed.formtemplate"],["iv","application/x-inventor"],["ivp","application/vnd.immervision-ivp"],["ivr","i-world/i-vrml"],["ivu","application/vnd.immervision-ivu"],["ivy","application/x-livescreen"],["jad","text/vnd.sun.j2me.app-descriptor"],["jam",["application/vnd.jam","audio/x-jam"]],["jar","application/java-archive"],["jav",["text/plain","text/x-java-source"]],["java",["text/plain","text/x-java-source,java","text/x-java-source"]],["jcm","application/x-java-commerce"],["jfif",["image/pipeg","image/jpeg","image/pjpeg"]],["jfif-tbnl","image/jpeg"],["jisp","application/vnd.jisp"],["jlt","application/vnd.hp-jlyt"],["jnlp","application/x-java-jnlp-file"],["joda","application/vnd.joost.joda-archive"],["jpe",["image/jpeg","image/pjpeg"]],["jpeg",["image/jpeg","image/pjpeg"]],["jpg",["image/jpeg","image/pjpeg"]],["jpgv","video/jpeg"],["jpm","video/jpm"],["jps","image/x-jps"],["js",["application/javascript","application/ecmascript","text/javascript","text/ecmascript","application/x-javascript"]],["json","application/json"],["jut","image/jutvision"],["kar",["audio/midi","music/x-karaoke"]],["karbon","application/vnd.kde.karbon"],["kfo","application/vnd.kde.kformula"],["kia","application/vnd.kidspiration"],["kml","application/vnd.google-earth.kml+xml"],["kmz","application/vnd.google-earth.kmz"],["kne","application/vnd.kinar"],["kon","application/vnd.kde.kontour"],["kpr","application/vnd.kde.kpresenter"],["ksh",["application/x-ksh","text/x-script.ksh"]],["ksp","application/vnd.kde.kspread"],["ktx","image/ktx"],["ktz","application/vnd.kahootz"],["kwd","application/vnd.kde.kword"],["la",["audio/nspaudio","audio/x-nspaudio"]],["lam","audio/x-liveaudio"],["lasxml","application/vnd.las.las+xml"],["latex","application/x-latex"],["lbd","application/vnd.llamagraphics.life-balance.desktop"],["lbe","application/vnd.llamagraphics.life-balance.exchange+xml"],["les","application/vnd.hhe.lesson-player"],["lha",["application/octet-stream","application/lha","application/x-lha"]],["lhx","application/octet-stream"],["link66","application/vnd.route66.link66+xml"],["list","text/plain"],["lma",["audio/nspaudio","audio/x-nspaudio"]],["log","text/plain"],["lrm","application/vnd.ms-lrm"],["lsf","video/x-la-asf"],["lsp",["application/x-lisp","text/x-script.lisp"]],["lst","text/plain"],["lsx",["video/x-la-asf","text/x-la-asf"]],["ltf","application/vnd.frogans.ltf"],["ltx","application/x-latex"],["lvp","audio/vnd.lucent.voice"],["lwp","application/vnd.lotus-wordpro"],["lzh",["application/octet-stream","application/x-lzh"]],["lzx",["application/lzx","application/octet-stream","application/x-lzx"]],["m",["text/plain","text/x-m"]],["m13","application/x-msmediaview"],["m14","application/x-msmediaview"],["m1v","video/mpeg"],["m21","application/mp21"],["m2a","audio/mpeg"],["m2v","video/mpeg"],["m3u",["audio/x-mpegurl","audio/x-mpequrl"]],["m3u8","application/vnd.apple.mpegurl"],["m4v","video/x-m4v"],["ma","application/mathematica"],["mads","application/mads+xml"],["mag","application/vnd.ecowin.chart"],["man","application/x-troff-man"],["map","application/x-navimap"],["mar","text/plain"],["mathml","application/mathml+xml"],["mbd","application/mbedlet"],["mbk","application/vnd.mobius.mbk"],["mbox","application/mbox"],["mc$","application/x-magic-cap-package-1.0"],["mc1","application/vnd.medcalcdata"],["mcd",["application/mcad","application/vnd.mcd","application/x-mathcad"]],["mcf",["image/vasa","text/mcf"]],["mcp","application/netmc"],["mcurl","text/vnd.curl.mcurl"],["mdb","application/x-msaccess"],["mdi","image/vnd.ms-modi"],["me","application/x-troff-me"],["meta4","application/metalink4+xml"],["mets","application/mets+xml"],["mfm","application/vnd.mfmp"],["mgp","application/vnd.osgeo.mapguide.package"],["mgz","application/vnd.proteus.magazine"],["mht","message/rfc822"],["mhtml","message/rfc822"],["mid",["audio/mid","audio/midi","music/crescendo","x-music/x-midi","audio/x-midi","application/x-midi","audio/x-mid"]],["midi",["audio/midi","music/crescendo","x-music/x-midi","audio/x-midi","application/x-midi","audio/x-mid"]],["mif",["application/vnd.mif","application/x-mif","application/x-frame"]],["mime",["message/rfc822","www/mime"]],["mj2","video/mj2"],["mjf","audio/x-vnd.audioexplosion.mjuicemediafile"],["mjpg","video/x-motion-jpeg"],["mlp","application/vnd.dolby.mlp"],["mm",["application/base64","application/x-meme"]],["mmd","application/vnd.chipnuts.karaoke-mmd"],["mme","application/base64"],["mmf","application/vnd.smaf"],["mmr","image/vnd.fujixerox.edmics-mmr"],["mny","application/x-msmoney"],["mod",["audio/mod","audio/x-mod"]],["mods","application/mods+xml"],["moov","video/quicktime"],["mov","video/quicktime"],["movie","video/x-sgi-movie"],["mp2",["video/mpeg","audio/mpeg","video/x-mpeg","audio/x-mpeg","video/x-mpeq2a"]],["mp3",["audio/mpeg","audio/mpeg3","video/mpeg","audio/x-mpeg-3","video/x-mpeg"]],["mp4",["video/mp4","application/mp4"]],["mp4a","audio/mp4"],["mpa",["video/mpeg","audio/mpeg"]],["mpc",["application/vnd.mophun.certificate","application/x-project"]],["mpe","video/mpeg"],["mpeg","video/mpeg"],["mpg",["video/mpeg","audio/mpeg"]],["mpga","audio/mpeg"],["mpkg","application/vnd.apple.installer+xml"],["mpm","application/vnd.blueice.multipass"],["mpn","application/vnd.mophun.application"],["mpp","application/vnd.ms-project"],["mpt","application/x-project"],["mpv","application/x-project"],["mpv2","video/mpeg"],["mpx","application/x-project"],["mpy","application/vnd.ibm.minipay"],["mqy","application/vnd.mobius.mqy"],["mrc","application/marc"],["mrcx","application/marcxml+xml"],["ms","application/x-troff-ms"],["mscml","application/mediaservercontrol+xml"],["mseq","application/vnd.mseq"],["msf","application/vnd.epson.msf"],["msg","application/vnd.ms-outlook"],["msh","model/mesh"],["msl","application/vnd.mobius.msl"],["msty","application/vnd.muvee.style"],["mts","model/vnd.mts"],["mus","application/vnd.musician"],["musicxml","application/vnd.recordare.musicxml+xml"],["mv","video/x-sgi-movie"],["mvb","application/x-msmediaview"],["mwf","application/vnd.mfer"],["mxf","application/mxf"],["mxl","application/vnd.recordare.musicxml"],["mxml","application/xv+xml"],["mxs","application/vnd.triscape.mxs"],["mxu","video/vnd.mpegurl"],["my","audio/make"],["mzz","application/x-vnd.audioexplosion.mzz"],["n-gage","application/vnd.nokia.n-gage.symbian.install"],["n3","text/n3"],["nap","image/naplps"],["naplps","image/naplps"],["nbp","application/vnd.wolfram.player"],["nc","application/x-netcdf"],["ncm","application/vnd.nokia.configuration-message"],["ncx","application/x-dtbncx+xml"],["ngdat","application/vnd.nokia.n-gage.data"],["nif","image/x-niff"],["niff","image/x-niff"],["nix","application/x-mix-transfer"],["nlu","application/vnd.neurolanguage.nlu"],["nml","application/vnd.enliven"],["nnd","application/vnd.noblenet-directory"],["nns","application/vnd.noblenet-sealer"],["nnw","application/vnd.noblenet-web"],["npx","image/vnd.net-fpx"],["nsc","application/x-conference"],["nsf","application/vnd.lotus-notes"],["nvd","application/x-navidoc"],["nws","message/rfc822"],["o","application/octet-stream"],["oa2","application/vnd.fujitsu.oasys2"],["oa3","application/vnd.fujitsu.oasys3"],["oas","application/vnd.fujitsu.oasys"],["obd","application/x-msbinder"],["oda","application/oda"],["odb","application/vnd.oasis.opendocument.database"],["odc","application/vnd.oasis.opendocument.chart"],["odf","application/vnd.oasis.opendocument.formula"],["odft","application/vnd.oasis.opendocument.formula-template"],["odg","application/vnd.oasis.opendocument.graphics"],["odi","application/vnd.oasis.opendocument.image"],["odm","application/vnd.oasis.opendocument.text-master"],["odp","application/vnd.oasis.opendocument.presentation"],["ods","application/vnd.oasis.opendocument.spreadsheet"],["odt","application/vnd.oasis.opendocument.text"],["oga","audio/ogg"],["ogv","video/ogg"],["ogx","application/ogg"],["omc","application/x-omc"],["omcd","application/x-omcdatamaker"],["omcr","application/x-omcregerator"],["onetoc","application/onenote"],["opf","application/oebps-package+xml"],["org","application/vnd.lotus-organizer"],["osf","application/vnd.yamaha.openscoreformat"],["osfpvg","application/vnd.yamaha.openscoreformat.osfpvg+xml"],["otc","application/vnd.oasis.opendocument.chart-template"],["otf","application/x-font-otf"],["otg","application/vnd.oasis.opendocument.graphics-template"],["oth","application/vnd.oasis.opendocument.text-web"],["oti","application/vnd.oasis.opendocument.image-template"],["otp","application/vnd.oasis.opendocument.presentation-template"],["ots","application/vnd.oasis.opendocument.spreadsheet-template"],["ott","application/vnd.oasis.opendocument.text-template"],["oxt","application/vnd.openofficeorg.extension"],["p","text/x-pascal"],["p10",["application/pkcs10","application/x-pkcs10"]],["p12",["application/pkcs-12","application/x-pkcs12"]],["p7a","application/x-pkcs7-signature"],["p7b","application/x-pkcs7-certificates"],["p7c",["application/pkcs7-mime","application/x-pkcs7-mime"]],["p7m",["application/pkcs7-mime","application/x-pkcs7-mime"]],["p7r","application/x-pkcs7-certreqresp"],["p7s",["application/pkcs7-signature","application/x-pkcs7-signature"]],["p8","application/pkcs8"],["par","text/plain-bas"],["part","application/pro_eng"],["pas","text/pascal"],["paw","application/vnd.pawaafile"],["pbd","application/vnd.powerbuilder6"],["pbm","image/x-portable-bitmap"],["pcf","application/x-font-pcf"],["pcl",["application/vnd.hp-pcl","application/x-pcl"]],["pclxl","application/vnd.hp-pclxl"],["pct","image/x-pict"],["pcurl","application/vnd.curl.pcurl"],["pcx","image/x-pcx"],["pdb",["application/vnd.palm","chemical/x-pdb"]],["pdf","application/pdf"],["pfa","application/x-font-type1"],["pfr","application/font-tdpfr"],["pfunk",["audio/make","audio/make.my.funk"]],["pfx","application/x-pkcs12"],["pgm",["image/x-portable-graymap","image/x-portable-greymap"]],["pgn","application/x-chess-pgn"],["pgp","application/pgp-signature"],["pic",["image/pict","image/x-pict"]],["pict","image/pict"],["pkg","application/x-newton-compatible-pkg"],["pki","application/pkixcmp"],["pkipath","application/pkix-pkipath"],["pko",["application/ynd.ms-pkipko","application/vnd.ms-pki.pko"]],["pl",["text/plain","text/x-script.perl"]],["plb","application/vnd.3gpp.pic-bw-large"],["plc","application/vnd.mobius.plc"],["plf","application/vnd.pocketlearn"],["pls","application/pls+xml"],["plx","application/x-pixclscript"],["pm",["text/x-script.perl-module","image/x-xpixmap"]],["pm4","application/x-pagemaker"],["pm5","application/x-pagemaker"],["pma","application/x-perfmon"],["pmc","application/x-perfmon"],["pml",["application/vnd.ctc-posml","application/x-perfmon"]],["pmr","application/x-perfmon"],["pmw","application/x-perfmon"],["png","image/png"],["pnm",["application/x-portable-anymap","image/x-portable-anymap"]],["portpkg","application/vnd.macports.portpkg"],["pot",["application/vnd.ms-powerpoint","application/mspowerpoint"]],["potm","application/vnd.ms-powerpoint.template.macroenabled.12"],["potx","application/vnd.openxmlformats-officedocument.presentationml.template"],["pov","model/x-pov"],["ppa","application/vnd.ms-powerpoint"],["ppam","application/vnd.ms-powerpoint.addin.macroenabled.12"],["ppd","application/vnd.cups-ppd"],["ppm","image/x-portable-pixmap"],["pps",["application/vnd.ms-powerpoint","application/mspowerpoint"]],["ppsm","application/vnd.ms-powerpoint.slideshow.macroenabled.12"],["ppsx","application/vnd.openxmlformats-officedocument.presentationml.slideshow"],["ppt",["application/vnd.ms-powerpoint","application/mspowerpoint","application/powerpoint","application/x-mspowerpoint"]],["pptm","application/vnd.ms-powerpoint.presentation.macroenabled.12"],["pptx","application/vnd.openxmlformats-officedocument.presentationml.presentation"],["ppz","application/mspowerpoint"],["prc","application/x-mobipocket-ebook"],["pre",["application/vnd.lotus-freelance","application/x-freelance"]],["prf","application/pics-rules"],["prt","application/pro_eng"],["ps","application/postscript"],["psb","application/vnd.3gpp.pic-bw-small"],["psd",["application/octet-stream","image/vnd.adobe.photoshop"]],["psf","application/x-font-linux-psf"],["pskcxml","application/pskc+xml"],["ptid","application/vnd.pvi.ptid1"],["pub","application/x-mspublisher"],["pvb","application/vnd.3gpp.pic-bw-var"],["pvu","paleovu/x-pv"],["pwn","application/vnd.3m.post-it-notes"],["pwz","application/vnd.ms-powerpoint"],["py","text/x-script.phyton"],["pya","audio/vnd.ms-playready.media.pya"],["pyc","application/x-bytecode.python"],["pyv","video/vnd.ms-playready.media.pyv"],["qam","application/vnd.epson.quickanime"],["qbo","application/vnd.intu.qbo"],["qcp","audio/vnd.qcelp"],["qd3","x-world/x-3dmf"],["qd3d","x-world/x-3dmf"],["qfx","application/vnd.intu.qfx"],["qif","image/x-quicktime"],["qps","application/vnd.publishare-delta-tree"],["qt","video/quicktime"],["qtc","video/x-qtc"],["qti","image/x-quicktime"],["qtif","image/x-quicktime"],["qxd","application/vnd.quark.quarkxpress"],["ra",["audio/x-realaudio","audio/x-pn-realaudio","audio/x-pn-realaudio-plugin"]],["ram","audio/x-pn-realaudio"],["rar","application/x-rar-compressed"],["ras",["image/cmu-raster","application/x-cmu-raster","image/x-cmu-raster"]],["rast","image/cmu-raster"],["rcprofile","application/vnd.ipunplugged.rcprofile"],["rdf","application/rdf+xml"],["rdz","application/vnd.data-vision.rdz"],["rep","application/vnd.businessobjects"],["res","application/x-dtbresource+xml"],["rexx","text/x-script.rexx"],["rf","image/vnd.rn-realflash"],["rgb","image/x-rgb"],["rif","application/reginfo+xml"],["rip","audio/vnd.rip"],["rl","application/resource-lists+xml"],["rlc","image/vnd.fujixerox.edmics-rlc"],["rld","application/resource-lists-diff+xml"],["rm",["application/vnd.rn-realmedia","audio/x-pn-realaudio"]],["rmi","audio/mid"],["rmm","audio/x-pn-realaudio"],["rmp",["audio/x-pn-realaudio-plugin","audio/x-pn-realaudio"]],["rms","application/vnd.jcp.javame.midlet-rms"],["rnc","application/relax-ng-compact-syntax"],["rng",["application/ringing-tones","application/vnd.nokia.ringing-tone"]],["rnx","application/vnd.rn-realplayer"],["roff","application/x-troff"],["rp","image/vnd.rn-realpix"],["rp9","application/vnd.cloanto.rp9"],["rpm","audio/x-pn-realaudio-plugin"],["rpss","application/vnd.nokia.radio-presets"],["rpst","application/vnd.nokia.radio-preset"],["rq","application/sparql-query"],["rs","application/rls-services+xml"],["rsd","application/rsd+xml"],["rt",["text/richtext","text/vnd.rn-realtext"]],["rtf",["application/rtf","text/richtext","application/x-rtf"]],["rtx",["text/richtext","application/rtf"]],["rv","video/vnd.rn-realvideo"],["s","text/x-asm"],["s3m","audio/s3m"],["saf","application/vnd.yamaha.smaf-audio"],["saveme","application/octet-stream"],["sbk","application/x-tbook"],["sbml","application/sbml+xml"],["sc","application/vnd.ibm.secure-container"],["scd","application/x-msschedule"],["scm",["application/vnd.lotus-screencam","video/x-scm","text/x-script.guile","application/x-lotusscreencam","text/x-script.scheme"]],["scq","application/scvp-cv-request"],["scs","application/scvp-cv-response"],["sct","text/scriptlet"],["scurl","text/vnd.curl.scurl"],["sda","application/vnd.stardivision.draw"],["sdc","application/vnd.stardivision.calc"],["sdd","application/vnd.stardivision.impress"],["sdkm","application/vnd.solent.sdkm+xml"],["sdml","text/plain"],["sdp",["application/sdp","application/x-sdp"]],["sdr","application/sounder"],["sdw","application/vnd.stardivision.writer"],["sea",["application/sea","application/x-sea"]],["see","application/vnd.seemail"],["seed","application/vnd.fdsn.seed"],["sema","application/vnd.sema"],["semd","application/vnd.semd"],["semf","application/vnd.semf"],["ser","application/java-serialized-object"],["set","application/set"],["setpay","application/set-payment-initiation"],["setreg","application/set-registration-initiation"],["sfd-hdstx","application/vnd.hydrostatix.sof-data"],["sfs","application/vnd.spotfire.sfs"],["sgl","application/vnd.stardivision.writer-global"],["sgm",["text/sgml","text/x-sgml"]],["sgml",["text/sgml","text/x-sgml"]],["sh",["application/x-shar","application/x-bsh","application/x-sh","text/x-script.sh"]],["shar",["application/x-bsh","application/x-shar"]],["shf","application/shf+xml"],["shtml",["text/html","text/x-server-parsed-html"]],["sid","audio/x-psid"],["sis","application/vnd.symbian.install"],["sit",["application/x-stuffit","application/x-sit"]],["sitx","application/x-stuffitx"],["skd","application/x-koan"],["skm","application/x-koan"],["skp",["application/vnd.koan","application/x-koan"]],["skt","application/x-koan"],["sl","application/x-seelogo"],["sldm","application/vnd.ms-powerpoint.slide.macroenabled.12"],["sldx","application/vnd.openxmlformats-officedocument.presentationml.slide"],["slt","application/vnd.epson.salt"],["sm","application/vnd.stepmania.stepchart"],["smf","application/vnd.stardivision.math"],["smi",["application/smil","application/smil+xml"]],["smil","application/smil"],["snd",["audio/basic","audio/x-adpcm"]],["snf","application/x-font-snf"],["sol","application/solids"],["spc",["text/x-speech","application/x-pkcs7-certificates"]],["spf","application/vnd.yamaha.smaf-phrase"],["spl",["application/futuresplash","application/x-futuresplash"]],["spot","text/vnd.in3d.spot"],["spp","application/scvp-vp-response"],["spq","application/scvp-vp-request"],["spr","application/x-sprite"],["sprite","application/x-sprite"],["src","application/x-wais-source"],["sru","application/sru+xml"],["srx","application/sparql-results+xml"],["sse","application/vnd.kodak-descriptor"],["ssf","application/vnd.epson.ssf"],["ssi","text/x-server-parsed-html"],["ssm","application/streamingmedia"],["ssml","application/ssml+xml"],["sst",["application/vnd.ms-pkicertstore","application/vnd.ms-pki.certstore"]],["st","application/vnd.sailingtracker.track"],["stc","application/vnd.sun.xml.calc.template"],["std","application/vnd.sun.xml.draw.template"],["step","application/step"],["stf","application/vnd.wt.stf"],["sti","application/vnd.sun.xml.impress.template"],["stk","application/hyperstudio"],["stl",["application/vnd.ms-pkistl","application/sla","application/vnd.ms-pki.stl","application/x-navistyle"]],["stm","text/html"],["stp","application/step"],["str","application/vnd.pg.format"],["stw","application/vnd.sun.xml.writer.template"],["sub","image/vnd.dvb.subtitle"],["sus","application/vnd.sus-calendar"],["sv4cpio","application/x-sv4cpio"],["sv4crc","application/x-sv4crc"],["svc","application/vnd.dvb.service"],["svd","application/vnd.svd"],["svf",["image/vnd.dwg","image/x-dwg"]],["svg","image/svg+xml"],["svr",["x-world/x-svr","application/x-world"]],["swf","application/x-shockwave-flash"],["swi","application/vnd.aristanetworks.swi"],["sxc","application/vnd.sun.xml.calc"],["sxd","application/vnd.sun.xml.draw"],["sxg","application/vnd.sun.xml.writer.global"],["sxi","application/vnd.sun.xml.impress"],["sxm","application/vnd.sun.xml.math"],["sxw","application/vnd.sun.xml.writer"],["t",["text/troff","application/x-troff"]],["talk","text/x-speech"],["tao","application/vnd.tao.intent-module-archive"],["tar","application/x-tar"],["tbk",["application/toolbook","application/x-tbook"]],["tcap","application/vnd.3gpp2.tcap"],["tcl",["text/x-script.tcl","application/x-tcl"]],["tcsh","text/x-script.tcsh"],["teacher","application/vnd.smart.teacher"],["tei","application/tei+xml"],["tex","application/x-tex"],["texi","application/x-texinfo"],["texinfo","application/x-texinfo"],["text",["application/plain","text/plain"]],["tfi","application/thraud+xml"],["tfm","application/x-tex-tfm"],["tgz",["application/gnutar","application/x-compressed"]],["thmx","application/vnd.ms-officetheme"],["tif",["image/tiff","image/x-tiff"]],["tiff",["image/tiff","image/x-tiff"]],["tmo","application/vnd.tmobile-livetv"],["torrent","application/x-bittorrent"],["tpl","application/vnd.groove-tool-template"],["tpt","application/vnd.trid.tpt"],["tr","application/x-troff"],["tra","application/vnd.trueapp"],["trm","application/x-msterminal"],["tsd","application/timestamped-data"],["tsi","audio/tsp-audio"],["tsp",["application/dsptype","audio/tsplayer"]],["tsv","text/tab-separated-values"],["ttf","application/x-font-ttf"],["ttl","text/turtle"],["turbot","image/florian"],["twd","application/vnd.simtech-mindmapper"],["txd","application/vnd.genomatix.tuxedo"],["txf","application/vnd.mobius.txf"],["txt","text/plain"],["ufd","application/vnd.ufdl"],["uil","text/x-uil"],["uls","text/iuls"],["umj","application/vnd.umajin"],["uni","text/uri-list"],["unis","text/uri-list"],["unityweb","application/vnd.unity"],["unv","application/i-deas"],["uoml","application/vnd.uoml+xml"],["uri","text/uri-list"],["uris","text/uri-list"],["ustar",["application/x-ustar","multipart/x-ustar"]],["utz","application/vnd.uiq.theme"],["uu",["application/octet-stream","text/x-uuencode"]],["uue","text/x-uuencode"],["uva","audio/vnd.dece.audio"],["uvh","video/vnd.dece.hd"],["uvi","image/vnd.dece.graphic"],["uvm","video/vnd.dece.mobile"],["uvp","video/vnd.dece.pd"],["uvs","video/vnd.dece.sd"],["uvu","video/vnd.uvvu.mp4"],["uvv","video/vnd.dece.video"],["vcd","application/x-cdlink"],["vcf","text/x-vcard"],["vcg","application/vnd.groove-vcard"],["vcs","text/x-vcalendar"],["vcx","application/vnd.vcx"],["vda","application/vda"],["vdo","video/vdo"],["vew","application/groupwise"],["vis","application/vnd.visionary"],["viv",["video/vivo","video/vnd.vivo"]],["vivo",["video/vivo","video/vnd.vivo"]],["vmd","application/vocaltec-media-desc"],["vmf","application/vocaltec-media-file"],["voc",["audio/voc","audio/x-voc"]],["vos","video/vosaic"],["vox","audio/voxware"],["vqe","audio/x-twinvq-plugin"],["vqf","audio/x-twinvq"],["vql","audio/x-twinvq-plugin"],["vrml",["model/vrml","x-world/x-vrml","application/x-vrml"]],["vrt","x-world/x-vrt"],["vsd",["application/vnd.visio","application/x-visio"]],["vsf","application/vnd.vsf"],["vst","application/x-visio"],["vsw","application/x-visio"],["vtu","model/vnd.vtu"],["vxml","application/voicexml+xml"],["w60","application/wordperfect6.0"],["w61","application/wordperfect6.1"],["w6w","application/msword"],["wad","application/x-doom"],["wav",["audio/wav","audio/x-wav"]],["wax","audio/x-ms-wax"],["wb1","application/x-qpro"],["wbmp","image/vnd.wap.wbmp"],["wbs","application/vnd.criticaltools.wbs+xml"],["wbxml","application/vnd.wap.wbxml"],["wcm","application/vnd.ms-works"],["wdb","application/vnd.ms-works"],["web","application/vnd.xara"],["weba","audio/webm"],["webm","video/webm"],["webp","image/webp"],["wg","application/vnd.pmi.widget"],["wgt","application/widget"],["wiz","application/msword"],["wk1","application/x-123"],["wks","application/vnd.ms-works"],["wm","video/x-ms-wm"],["wma","audio/x-ms-wma"],["wmd","application/x-ms-wmd"],["wmf",["windows/metafile","application/x-msmetafile"]],["wml","text/vnd.wap.wml"],["wmlc","application/vnd.wap.wmlc"],["wmls","text/vnd.wap.wmlscript"],["wmlsc","application/vnd.wap.wmlscriptc"],["wmv","video/x-ms-wmv"],["wmx","video/x-ms-wmx"],["wmz","application/x-ms-wmz"],["woff","application/x-font-woff"],["word","application/msword"],["wp","application/wordperfect"],["wp5",["application/wordperfect","application/wordperfect6.0"]],["wp6","application/wordperfect"],["wpd",["application/wordperfect","application/vnd.wordperfect","application/x-wpwin"]],["wpl","application/vnd.ms-wpl"],["wps","application/vnd.ms-works"],["wq1","application/x-lotus"],["wqd","application/vnd.wqd"],["wri",["application/mswrite","application/x-wri","application/x-mswrite"]],["wrl",["model/vrml","x-world/x-vrml","application/x-world"]],["wrz",["model/vrml","x-world/x-vrml"]],["wsc","text/scriplet"],["wsdl","application/wsdl+xml"],["wspolicy","application/wspolicy+xml"],["wsrc","application/x-wais-source"],["wtb","application/vnd.webturbo"],["wtk","application/x-wintalk"],["wvx","video/x-ms-wvx"],["x-png","image/png"],["x3d","application/vnd.hzn-3d-crossword"],["xaf","x-world/x-vrml"],["xap","application/x-silverlight-app"],["xar","application/vnd.xara"],["xbap","application/x-ms-xbap"],["xbd","application/vnd.fujixerox.docuworks.binder"],["xbm",["image/xbm","image/x-xbm","image/x-xbitmap"]],["xdf","application/xcap-diff+xml"],["xdm","application/vnd.syncml.dm+xml"],["xdp","application/vnd.adobe.xdp+xml"],["xdr","video/x-amt-demorun"],["xdssc","application/dssc+xml"],["xdw","application/vnd.fujixerox.docuworks"],["xenc","application/xenc+xml"],["xer","application/patch-ops-error+xml"],["xfdf","application/vnd.adobe.xfdf"],["xfdl","application/vnd.xfdl"],["xgz","xgl/drawing"],["xhtml","application/xhtml+xml"],["xif","image/vnd.xiff"],["xl","application/excel"],["xla",["application/vnd.ms-excel","application/excel","application/x-msexcel","application/x-excel"]],["xlam","application/vnd.ms-excel.addin.macroenabled.12"],["xlb",["application/excel","application/vnd.ms-excel","application/x-excel"]],["xlc",["application/vnd.ms-excel","application/excel","application/x-excel"]],["xld",["application/excel","application/x-excel"]],["xlk",["application/excel","application/x-excel"]],["xll",["application/excel","application/vnd.ms-excel","application/x-excel"]],["xlm",["application/vnd.ms-excel","application/excel","application/x-excel"]],["xls",["application/vnd.ms-excel","application/excel","application/x-msexcel","application/x-excel"]],["xlsb","application/vnd.ms-excel.sheet.binary.macroenabled.12"],["xlsm","application/vnd.ms-excel.sheet.macroenabled.12"],["xlsx","application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"],["xlt",["application/vnd.ms-excel","application/excel","application/x-excel"]],["xltm","application/vnd.ms-excel.template.macroenabled.12"],["xltx","application/vnd.openxmlformats-officedocument.spreadsheetml.template"],["xlv",["application/excel","application/x-excel"]],["xlw",["application/vnd.ms-excel","application/excel","application/x-msexcel","application/x-excel"]],["xm","audio/xm"],["xml",["application/xml","text/xml","application/atom+xml","application/rss+xml"]],["xmz","xgl/movie"],["xo","application/vnd.olpc-sugar"],["xof","x-world/x-vrml"],["xop","application/xop+xml"],["xpi","application/x-xpinstall"],["xpix","application/x-vnd.ls-xpix"],["xpm",["image/xpm","image/x-xpixmap"]],["xpr","application/vnd.is-xpr"],["xps","application/vnd.ms-xpsdocument"],["xpw","application/vnd.intercon.formnet"],["xslt","application/xslt+xml"],["xsm","application/vnd.syncml+xml"],["xspf","application/xspf+xml"],["xsr","video/x-amt-showrun"],["xul","application/vnd.mozilla.xul+xml"],["xwd",["image/x-xwd","image/x-xwindowdump"]],["xyz",["chemical/x-xyz","chemical/x-pdb"]],["yang","application/yang"],["yin","application/yin+xml"],["z",["application/x-compressed","application/x-compress"]],["zaz","application/vnd.zzazz.deck+xml"],["zip",["application/zip","multipart/x-zip","application/x-zip-compressed","application/x-compressed"]],["zir","application/vnd.zul"],["zmm","application/vnd.handheld-entertainment+xml"],["zoo","application/octet-stream"],["zsh","text/x-script.zsh"]]);Ep.exports={detectMimeType(p){if(!p)return"application/octet-stream";let i=cx.parse(p),x=(i.ext.substr(1)||i.name||"").split("?").shift().trim().toLowerCase(),a=Fp.has(x)?Fp.get(x):"application/octet-stream";if(Array.isArray(a))return a[0];return a},detectExtension(p){if(!p)return"bin";let i=(p||"").toLowerCase().trim().split("/"),x=i.shift().trim(),a=i.join("/").trim();if(Hp.has(x+"/"+a)){let m=Hp.get(x+"/"+a);if(Array.isArray(m))return m[0];return m}switch(x){case"text":return"txt";default:return"bin"}}}});var k=t((Jv,Pp)=>{var lx=/^xn--/,ox=/[^\0-\x7F]/,dx=/[\x2E\u3002\uFF0E\uFF61]/g,fx={overflow:"Overflow: input needs wider integers to process","not-basic":"Illegal input >= 0x80 (not a basic code point)","invalid-input":"Invalid input"},W=Math.floor,s=String.fromCharCode;function J(p){throw RangeError(fx[p])}function wx(p,i){let x=[],a=p.length;while(a--)x[a]=i(p[a]);return x}function Np(p,i){let x=p.split("@"),a="";if(x.length>1)a=x[0]+"@",p=x[1];p=p.replace(dx,".");let m=p.split("."),v=wx(m,i).join(".");return a+v}function Cp(p){let i=[],x=0,a=p.length;while(x<a){let m=p.charCodeAt(x++);if(m>=55296&&m<=56319&&x<a){let v=p.charCodeAt(x++);if((v&64512)==56320)i.push(((m&1023)<<10)+(v&1023)+65536);else i.push(m),x--}else i.push(m)}return i}var gx=(p)=>String.fromCodePoint(...p),zx=function(p){if(p>=48&&p<58)return 26+(p-48);if(p>=65&&p<91)return p-65;if(p>=97&&p<123)return p-97;return 36},Ip=function(p,i){return p+22+75*(p<26)-((i!=0)<<5)},Rp=function(p,i,x){let a=0;p=x?W(p/700):p>>1,p+=W(p/i);for(;p>455;a+=36)p=W(p/35);return W(a+36*p/(p+38))},Tp=function(p){let i=[],x=p.length,a=0,m=128,v=72,c=p.lastIndexOf("-");if(c<0)c=0;for(let l=0;l<c;++l){if(p.charCodeAt(l)>=128)J("not-basic");i.push(p.charCodeAt(l))}for(let l=c>0?c+1:0;l<x;){let o=a;for(let g=1,f=36;;f+=36){if(l>=x)J("invalid-input");let w=zx(p.charCodeAt(l++));if(w>=36)J("invalid-input");if(w>W((2147483647-a)/g))J("overflow");a+=w*g;let j=f<=v?1:f>=v+26?26:f-v;if(w<j)break;let z=36-j;if(g>W(2147483647/z))J("overflow");g*=z}let d=i.length+1;if(v=Rp(a-o,d,o==0),W(a/d)>2147483647-m)J("overflow");m+=W(a/d),a%=d,i.splice(a++,0,m)}return String.fromCodePoint(...i)},Dp=function(p){let i=[];p=Cp(p);let x=p.length,a=128,m=0,v=72;for(let o of p)if(o<128)i.push(s(o));let c=i.length,l=c;if(c)i.push("-");while(l<x){let o=2147483647;for(let g of p)if(g>=a&&g<o)o=g;let d=l+1;if(o-a>W((2147483647-m)/d))J("overflow");m+=(o-a)*d,a=o;for(let g of p){if(g<a&&++m>2147483647)J("overflow");if(g===a){let f=m;for(let w=36;;w+=36){let j=w<=v?1:w>=v+26?26:w-v;if(f<j)break;let z=f-j,q=36-j;i.push(s(Ip(j+z%q,0))),f=W(z/q)}i.push(s(Ip(f,0))),v=Rp(m,d,l===c),m=0,++l}}++m,++a}return i.join("")},nx=function(p){return Np(p,function(i){return lx.test(i)?Tp(i.slice(4).toLowerCase()):i})},jx=function(p){return Np(p,function(i){return ox.test(i)?"xn--"+Dp(i):i})},tx={version:"2.3.1",ucs2:{decode:Cp,encode:gx},decode:Tp,encode:Dp,toASCII:jx,toUnicode:nx};Pp.exports=tx});var e=t((Mv,Lp)=>{var{Transform:qx}=n("stream");function r(p){if(typeof p==="string")p=Buffer.from(p,"utf-8");return p.toString("base64")}function Op(p,i){if(p=(p||"").toString(),i=i||76,p.length<=i)return p;let x=[],a=0,m=i*1024,v=new RegExp(".{"+i+"}","g");while(a<p.length){let c=p.substr(a,m).replace(v,`$&\r
|
|
3
|
+
`);x.push(c),a+=m}return x.join("")}class bp extends qx{constructor(p){super();if(this.options=p||{},this.options.lineLength!==!1)this.options.lineLength=this.options.lineLength||76;this._curLine="",this._remainingBytes=!1,this.inputBytes=0,this.outputBytes=0}_transform(p,i,x){if(i!=="buffer")p=Buffer.from(p,i);if(!p||!p.length)return setImmediate(x);if(this.inputBytes+=p.length,this._remainingBytes&&this._remainingBytes.length)p=Buffer.concat([this._remainingBytes,p],this._remainingBytes.length+p.length),this._remainingBytes=!1;if(p.length%3)this._remainingBytes=p.slice(p.length-p.length%3),p=p.slice(0,p.length-p.length%3);else this._remainingBytes=!1;let a=this._curLine+r(p);if(this.options.lineLength){a=Op(a,this.options.lineLength);let m=a.lastIndexOf(`
|
|
4
4
|
`);if(m<0)this._curLine=a,a="";else if(this._curLine=a.substring(m+1),a=a.substring(0,m+1),a&&!a.endsWith(`\r
|
|
5
5
|
`))a+=`\r
|
|
6
|
-
`}else this._curLine="";if(a)this.outputBytes+=a.length,this.push(Buffer.from(a,"ascii"));setImmediate(x)}_flush(p){if(this._remainingBytes&&this._remainingBytes.length)this._curLine+=
|
|
7
|
-
`){o+=
|
|
8
|
-
`){if(
|
|
9
|
-
`}else x+=
|
|
10
|
-
`}return v},splitMimeEncodedString:(p,i)=>{let x=[],a,m,v,
|
|
6
|
+
`}else this._curLine="";if(a)this.outputBytes+=a.length,this.push(Buffer.from(a,"ascii"));setImmediate(x)}_flush(p){if(this._remainingBytes&&this._remainingBytes.length)this._curLine+=r(this._remainingBytes);if(this._curLine)this.outputBytes+=this._curLine.length,this.push(Buffer.from(this._curLine,"ascii")),this._curLine="";p()}}Lp.exports={encode:r,wrap:Op,Encoder:bp}});var ip=t((Vv,hp)=>{var{Transform:Gx}=n("stream"),Zx=[[9],[10],[13],[32,60],[62,126]];function pp(p){if(typeof p==="string")p=Buffer.from(p,"utf-8");let i="",x;for(let a=0,m=p.length;a<m;a++){if(x=p[a],$x(x,Zx)&&!((x===32||x===9)&&(a===m-1||p[a+1]===10||p[a+1]===13))){i+=String.fromCharCode(x);continue}i+="="+(x<16?"0":"")+x.toString(16).toUpperCase()}return i}function yp(p,i){if(p=(p||"").toString(),i=i||76,p.length<=i)return p;let x=0,a=p.length,m,v,c,l=Math.floor(i/3),o="";while(x<a){if(c=p.substr(x,i),m=c.match(/\r\n/)){c=c.substr(0,m.index+m[0].length),o+=c,x+=c.length;continue}if(c.substr(-1)===`
|
|
7
|
+
`){o+=c,x+=c.length;continue}if(m=c.substr(-l).match(/\n.*?$/)){c=c.substr(0,c.length-(m[0].length-1)),o+=c,x+=c.length;continue}if(c.length>i-l&&(m=c.substr(-l).match(/[ \t.,!?][^ \t.,!?]*$/)))c=c.substr(0,c.length-(m[0].length-1));else if(c.match(/[=][\da-f]{0,2}$/i)){if(m=c.match(/[=][\da-f]{0,1}$/i))c=c.substr(0,c.length-m[0].length);while(c.length>3&&c.length<a-x&&!c.match(/^(?:=[\da-f]{2}){1,4}$/i)&&(m=c.match(/[=][\da-f]{2}$/gi))){if(v=parseInt(m[0].substr(1,2),16),v<128)break;if(c=c.substr(0,c.length-3),v>=192)break}}if(x+c.length<a&&c.substr(-1)!==`
|
|
8
|
+
`){if(c.length===i&&c.match(/[=][\da-f]{2}$/i))c=c.substr(0,c.length-3);else if(c.length===i)c=c.substr(0,c.length-1);x+=c.length,c+=`=\r
|
|
9
|
+
`}else x+=c.length;o+=c}return o}function $x(p,i){for(let x=i.length-1;x>=0;x--){let a=i[x];if(!a.length)continue;if(a.length===1&&p===a[0])return!0;if(a.length===2&&p>=a[0]&&p<=a[1])return!0}return!1}class up extends Gx{constructor(p){super();if(this.options=p||{},this.options.lineLength!==!1)this.options.lineLength=this.options.lineLength||76;this._curLine="",this.inputBytes=0,this.outputBytes=0}_transform(p,i,x){let a;if(i!=="buffer")p=Buffer.from(p,i);if(!p||!p.length)return x();if(this.inputBytes+=p.length,this.options.lineLength){if(a=this._curLine+pp(p),a=yp(a,this.options.lineLength),a=a.replace(/(^|\n)([^\n]*)$/,(m,v,c)=>{return this._curLine=c,v}),a)this.outputBytes+=a.length,this.push(a)}else a=pp(p),this.outputBytes+=a.length,this.push(a,"ascii");x()}_flush(p){if(this._curLine)this.outputBytes+=this._curLine.length,this.push(this._curLine,"ascii");p()}}hp.exports={encode:pp,wrap:yp,Encoder:up}});var E=t((Kv,kp)=>{var F=e(),Bx=ip(),sp=h();kp.exports={isPlainText(p,i){return typeof p==="string"&&!(i?/[\x00-\x08\x0b\x0c\x0e-\x1f"\u0080-\uFFFF]/:/[\x00-\x08\x0b\x0c\x0e-\x1f\u0080-\uFFFF]/).test(p)},hasLongerLines(p,i){if(p.length>131072)return!0;return new RegExp("^.{"+(i+1)+",}","m").test(p)},encodeWord(p,i,x){i=(i||"Q").toString().toUpperCase().trim().charAt(0),x=x||0;let a,m="UTF-8";if(x&&x>7+m.length)x-=7+m.length;if(i==="Q")a=Bx.encode(p).replace(/[^a-z0-9!*+\-/=]/gi,(v)=>{let c=v.charCodeAt(0).toString(16).toUpperCase();if(v===" ")return"_";return"="+(c.length===1?"0"+c:c)});else if(i==="B")a=typeof p==="string"?p:F.encode(p),x=x?Math.max(3,(x-x%4)/4*3):0;if(x&&(i!=="B"?a:F.encode(p)).length>x)if(i==="Q")a=this.splitMimeEncodedString(a,x).join("?= =?"+m+"?"+i+"?");else{let v=[],c="";for(let l=0,o=a.length;l<o;l++){let d=a.charAt(l);if(/[\ud83c\ud83d\ud83e]/.test(d)&&l<o-1)d+=a.charAt(++l);if(Buffer.byteLength(c+d)<=x||l===0)c+=d;else v.push(F.encode(c)),c=d}if(c)v.push(F.encode(c));if(v.length>1)a=v.join("?= =?"+m+"?"+i+"?");else a=v.join("")}else if(i==="B")a=F.encode(p);return"=?"+m+"?"+i+"?"+a+(a.substr(-2)==="?="?"":"?=")},encodeWords(p,i,x,a){x=x||0;let m=p.match(/(?:^|\s)([^\s]*["\u0080-\uFFFF])/);if(!m)return p;if(a)return this.encodeWord(p,i,x);let v=p.match(/(["\u0080-\uFFFF][^\s]*)[^"\u0080-\uFFFF]*$/);if(!v)return p;let c=m.index+(m[0].match(/[^\s]/)||{index:0}).index,l=v.index+(v[1]||"").length;return(c?p.substr(0,c):"")+this.encodeWord(p.substring(c,l),i||"Q",x)+(l<p.length?p.substr(l):"")},buildHeaderValue(p){let i=[];return Object.keys(p.params||{}).forEach((x)=>{let a=p.params[x];if(!this.isPlainText(a,!0)||a.length>=75)this.buildHeaderParam(x,a,50).forEach((m)=>{if(!/[\s"\\;:/=(),<>@[\]?]|^[-']|'$/.test(m.value)||m.key.substr(-1)==="*")i.push(m.key+"="+m.value);else i.push(m.key+"="+JSON.stringify(m.value))});else if(/[\s'"\\;:/=(),<>@[\]?]|^-/.test(a))i.push(x+"="+JSON.stringify(a));else i.push(x+"="+a)}),p.value+(i.length?"; "+i.join("; "):"")},buildHeaderParam(p,i,x){let a=[],m=typeof i==="string"?i:(i||"").toString(),v,c,l,o=0,d,g;if(x=x||50,this.isPlainText(i,!0)){if(m.length<=x)return[{key:p,value:m}];if(m=m.replace(new RegExp(".{"+x+"}","g"),(f)=>{return a.push({line:f}),""}),m)a.push({line:m})}else{if(/[\uD800-\uDBFF]/.test(m)){let w=[];for(d=0,g=m.length;d<g;d++)if(v=m.charAt(d),c=v.charCodeAt(0),c>=55296&&c<=56319&&d<g-1)v+=m.charAt(d+1),w.push(v),d++;else w.push(v);m=w}l="utf-8''";let f=!0;o=0;for(d=0,g=m.length;d<g;d++){if(v=m[d],f)v=this.safeEncodeURIComponent(v);else if(v=v===" "?v:this.safeEncodeURIComponent(v),v!==m[d])if((this.safeEncodeURIComponent(l)+v).length>=x)a.push({line:l,encoded:f}),l="",o=d-1;else{f=!0,d=o,l="";continue}if((l+v).length>=x)if(a.push({line:l,encoded:f}),l=v=m[d]===" "?" ":this.safeEncodeURIComponent(m[d]),v===m[d])f=!1,o=d-1;else f=!0;else l+=v}if(l)a.push({line:l,encoded:f})}return a.map((f,w)=>({key:p+"*"+w+(f.encoded?"*":""),value:f.line}))},parseHeaderValue(p){let i={value:!1,params:{}},x=!1,a="",m="value",v=!1,c=!1,l;for(let o=0,d=p.length;o<d;o++)if(l=p.charAt(o),m==="key"){if(l==="="){x=a.trim().toLowerCase(),m="value",a="";continue}a+=l}else{if(c)a+=l;else if(l==="\\"){c=!0;continue}else if(v&&l===v)v=!1;else if(!v&&l==='"')v=l;else if(!v&&l===";"){if(x===!1)i.value=a.trim();else i.params[x]=a.trim();m="key",a=""}else a+=l;c=!1}if(m==="value")if(x===!1)i.value=a.trim();else i.params[x]=a.trim();else if(a.trim())i.params[a.trim().toLowerCase()]="";return Object.keys(i.params).forEach((o)=>{let d,g,f,w;if(f=o.match(/(\*(\d+)|\*(\d+)\*|\*)$/)){if(d=o.substr(0,f.index),g=Number(f[2]||f[3])||0,!i.params[d]||typeof i.params[d]!=="object")i.params[d]={charset:!1,values:[]};if(w=i.params[o],g===0&&f[0].substr(-1)==="*"&&(f=w.match(/^([^']*)'[^']*'(.*)$/)))i.params[d].charset=f[1]||"iso-8859-1",w=f[2];i.params[d].values[g]=w,delete i.params[o]}}),Object.keys(i.params).forEach((o)=>{let d;if(i.params[o]&&Array.isArray(i.params[o].values))if(d=i.params[o].values.map((g)=>g||"").join(""),i.params[o].charset)i.params[o]="=?"+i.params[o].charset+"?Q?"+d.replace(/[=?_\s]/g,(g)=>{let f=g.charCodeAt(0).toString(16);if(g===" ")return"_";return"%"+(f.length<2?"0":"")+f}).replace(/%/g,"=")+"?=";else i.params[o]=d}),i},detectExtension:(p)=>sp.detectExtension(p),detectMimeType:(p)=>sp.detectMimeType(p),foldLines(p,i,x){p=(p||"").toString(),i=i||76;let a=0,m=p.length,v="",c,l;while(a<m){if(c=p.substr(a,i),c.length<i){v+=c;break}if(l=c.match(/^[^\n\r]*(\r?\n|\r)/)){c=l[0],v+=c,a+=c.length;continue}else if((l=c.match(/(\s+)[^\s]*$/))&&l[0].length-(x?(l[1]||"").length:0)<c.length)c=c.substr(0,c.length-(l[0].length-(x?(l[1]||"").length:0)));else if(l=p.substr(a+c.length).match(/^[^\s]+(\s*)/))c=c+l[0].substr(0,l[0].length-(!x?(l[1]||"").length:0));if(v+=c,a+=c.length,a<m)v+=`\r
|
|
10
|
+
`}return v},splitMimeEncodedString:(p,i)=>{let x=[],a,m,v,c;i=Math.max(i||0,12);while(p.length){if(a=p.substr(0,i),m=a.match(/[=][0-9A-F]?$/i))a=a.substr(0,m.index);c=!1;while(!c)if(c=!0,m=p.substr(a.length).match(/^[=]([0-9A-F]{2})/i)){if(v=parseInt(m[1],16),v<194&&v>127)a=a.substr(0,a.length-3),c=!1}if(a.length)x.push(a);p=p.substr(a.length)}return x},encodeURICharComponent:(p)=>{let i="",x=p.charCodeAt(0).toString(16).toUpperCase();if(x.length%2)x="0"+x;if(x.length>2)for(let a=0,m=x.length/2;a<m;a++)i+="%"+x.substr(a,2);else i+="%"+x;return i},safeEncodeURIComponent(p){p=(p||"").toString();try{p=encodeURIComponent(p)}catch(i){return p.replace(/[^\x00-\x1F *'()<>@,;:\\"[\]?=\u007F-\uFFFF]+/g,"")}return p.replace(/[\x00-\x1F *'()<>@,;:\\"[\]?=\u007F-\uFFFF]/g,(i)=>this.encodeURICharComponent(i))}}});var ii=t((Sv,pi)=>{function _x(p,i){let x=!1,a="text",m=[],v={address:[],comment:[],group:[],text:[],textWasQuoted:[]},c=!1;for(let l=0,o=p.length;l<o;l++){let d=p[l],g=l?p[l-1]:null;if(d.type==="operator")switch(d.value){case"<":a="address",c=!1;break;case"(":a="comment",c=!1;break;case":":a="group",x=!0,c=!1;break;case'"':c=!c,a="text";break;default:a="text",c=!1;break}else if(d.value){if(a==="address")d.value=d.value.replace(/^[^<]*<\s*/,"");if(g&&g.noBreak&&v[a].length){if(v[a][v[a].length-1]+=d.value,a==="text"&&c)v.textWasQuoted[v.textWasQuoted.length-1]=!0}else if(v[a].push(d.value),a==="text")v.textWasQuoted.push(c)}}if(!v.text.length&&v.comment.length)v.text=v.comment,v.comment=[];if(x){v.text=v.text.join(" ");let l=[];if(v.group.length)ep(v.group.join(","),{_depth:i+1}).forEach((d)=>{if(d.group)l=l.concat(d.group);else l.push(d)});m.push({name:v.text||"",group:l})}else{if(!v.address.length&&v.text.length){for(let o=v.text.length-1;o>=0;o--)if(!v.textWasQuoted[o]&&/^[^@\s]+@[^@\s]+$/.test(v.text[o])){v.address=v.text.splice(o,1),v.textWasQuoted.splice(o,1);break}if(!v.address.length){let o=!1;for(let d=v.text.length-1;d>=0;d--)if(!v.textWasQuoted[d]){if(v.text[d]=v.text[d].replace(/\s*\b[^@\s]+@[^\s]+\b\s*/,(g)=>{if(!o)return v.address=[g.trim()],o=!0," ";return g}).trim(),o)break}}}if(!v.text.length&&v.comment.length)v.text=v.comment,v.comment=[];if(v.address.length>1)v.text=v.text.concat(v.address.splice(1));v.text=v.text.join(" "),v.address=v.address.join(" ");let l={address:v.address||v.text||"",name:v.text||v.address||""};if(l.address===l.name)if(/@/.test(l.address||""))l.name="";else l.address="";m.push(l)}return m}class rp{constructor(p){this.str=(p||"").toString(),this.operatorCurrent="",this.operatorExpecting="",this.node=null,this.escaped=!1,this.list=[],this.operators={'"':'"',"(":")","<":">",",":"",":":";",";":""}}tokenize(){let p=[];for(let i=0,x=this.str.length;i<x;i++){let a=this.str.charAt(i),m=i<x-1?this.str.charAt(i+1):null;this.checkChar(a,m)}return this.list.forEach((i)=>{if(i.value=(i.value||"").toString().trim(),i.value)p.push(i)}),p}checkChar(p,i){if(this.escaped);else if(p===this.operatorExpecting){if(this.node={type:"operator",value:p},i&&![" ","\t","\r",`
|
|
11
11
|
`,",",";"].includes(i))this.node.noBreak=!0;this.list.push(this.node),this.node=null,this.operatorExpecting="",this.escaped=!1;return}else if(!this.operatorExpecting&&p in this.operators){this.node={type:"operator",value:p},this.list.push(this.node),this.node=null,this.operatorExpecting=this.operators[p],this.escaped=!1;return}else if(['"',"'"].includes(this.operatorExpecting)&&p==="\\"){this.escaped=!0;return}if(!this.node)this.node={type:"text",value:""},this.list.push(this.node);if(p===`
|
|
12
|
-
`)p=" ";if(p.charCodeAt(0)>=33||[" ","\t"].includes(p))this.node.value+=p;this.escaped=!1}}var
|
|
12
|
+
`)p=" ";if(p.charCodeAt(0)>=33||[" ","\t"].includes(p))this.node.value+=p;this.escaped=!1}}var Qx=50;function ep(p,i){i=i||{};let x=i._depth||0;if(x>Qx)return[];let m=new rp(p).tokenize(),v=[],c=[],l=[];if(m.forEach((o)=>{if(o.type==="operator"&&(o.value===","||o.value===";")){if(c.length)v.push(c);c=[]}else c.push(o)}),c.length)v.push(c);v.forEach((o)=>{let d=_x(o,x);if(d.length)l=l.concat(d)});for(let o=l.length-2;o>=0;o--){let d=l[o],g=l[o+1];if(d.address===""&&d.name&&!d.group&&g.address&&g.name)g.name=d.name+", "+g.name,l.splice(o,1)}if(i.flatten){let o=[],d=(g)=>{g.forEach((f)=>{if(f.group)return d(f.group);o.push(f)})};return d(l),o}return l}pi.exports=ep});var mi=t((Uv,xi)=>{var{Transform:Ax}=n("stream");class ai extends Ax{constructor(){super();this.lastByte=!1}_transform(p,i,x){if(p.length)this.lastByte=p[p.length-1];this.push(p),x()}_flush(p){if(this.lastByte===10)return p();if(this.lastByte===13)return this.push(Buffer.from(`
|
|
13
13
|
`)),p();return this.push(Buffer.from(`\r
|
|
14
|
-
`)),p()}}
|
|
15
|
-
`)),m=v+1}}if(m&&m<p.length)a=p.slice(m),this.push(a);else if(!m)this.push(p);this.lastByte=p[p.length-1],x()}}
|
|
16
|
-
`)}createReadStream(p){p=p||{};let i=new I(p),x=i,a;this.stream(i,p,(m)=>{if(m){x.emit("error",m);return}i.end()});for(let m=0,v=this._transforms.length;m<v;m++)a=typeof this._transforms[m]==="function"?this._transforms[m]():this._transforms[m],x.once("error",(
|
|
17
|
-
`].includes(this.newline.toString().toLowerCase())?new
|
|
14
|
+
`)),p()}}xi.exports=ai});var ap=t((Hv,ci)=>{var{Transform:Yx}=n("stream");class vi extends Yx{constructor(p){super(p);this.lastByte=!1}_transform(p,i,x){let a,m=0;for(let v=0,c=p.length;v<c;v++)if(p[v]===10){if(v&&p[v-1]!==13||!v&&this.lastByte!==13){if(v>m)a=p.slice(m,v),this.push(a);this.push(Buffer.from(`\r
|
|
15
|
+
`)),m=v+1}}if(m&&m<p.length)a=p.slice(m),this.push(a);else if(!m)this.push(p);this.lastByte=p[p.length-1],x()}}ci.exports=vi});var di=t((Fv,oi)=>{var{Transform:Wx}=n("stream");class li extends Wx{constructor(p){super(p)}_transform(p,i,x){let a,m=0;for(let v=0,c=p.length;v<c;v++)if(p[v]===13)a=p.slice(m,v),m=v+1,this.push(a);if(m&&m<p.length)a=p.slice(m),this.push(a);else if(!m)this.push(p);x()}}oi.exports=li});var D=t((Ev,wi)=>{var xp=n("crypto"),Xx=n("fs"),Jx=k(),{PassThrough:I}=n("stream"),Mx=Z(),Q=E(),Vx=ip(),Kx=e(),Sx=ii(),Ux=H(),fi=_(),Hx=mi(),Fx=ap(),Ex=di(),Ix=["From","Sender","To","Cc","Bcc","Reply-To","Date","References"];class mp{constructor(p,i){if(this.nodeCounter=0,i=i||{},this.baseBoundary=i.baseBoundary||xp.randomBytes(8).toString("hex"),this.boundaryPrefix=i.boundaryPrefix||"--_NmP",this.disableFileAccess=!!i.disableFileAccess,this.disableUrlAccess=!!i.disableUrlAccess,this.normalizeHeaderKey=i.normalizeHeaderKey,this.date=i.parentNode?null:new Date,this.rootNode=i.rootNode||this,this.keepBcc=!!i.keepBcc,i.filename){if(this.filename=i.filename,!p)p=Q.detectMimeType(this.filename.split(".").pop())}if(this.textEncoding=(i.textEncoding||"").toString().trim().charAt(0).toUpperCase(),this.parentNode=i.parentNode,this.hostname=i.hostname,this.newline=i.newline,this.childNodes=[],this._nodeId=++this.rootNode.nodeCounter,this._headers=[],this._isPlainText=!1,this._hasLongLines=!1,this._envelope=!1,this._raw=!1,this._transforms=[],this._processFuncs=[],p)this.setHeader("Content-Type",p)}createChild(p,i){if(!i&&typeof p==="object")i=p,p=void 0;let x=new mp(p,i);return this.appendChild(x),x}appendChild(p){if(p.rootNode!==this.rootNode)p.rootNode=this.rootNode,p._nodeId=++this.rootNode.nodeCounter;return p.parentNode=this,this.childNodes.push(p),p}replace(p){if(p===this)return this;return this.parentNode.childNodes.forEach((i,x)=>{if(i===this)p.rootNode=this.rootNode,p.parentNode=this.parentNode,p._nodeId=this._nodeId,this.rootNode=this,this.parentNode=void 0,p.parentNode.childNodes[x]=p}),p}remove(){if(!this.parentNode)return this;for(let p=this.parentNode.childNodes.length-1;p>=0;p--)if(this.parentNode.childNodes[p]===this)return this.parentNode.childNodes.splice(p,1),this.parentNode=void 0,this.rootNode=this,this}setHeader(p,i){let x=!1;if(!i&&p&&typeof p==="object"){if(p.key&&"value"in p)this.setHeader(p.key,p.value);else if(Array.isArray(p))p.forEach((m)=>{this.setHeader(m.key,m.value)});else Object.keys(p).forEach((m)=>{this.setHeader(m,p[m])});return this}p=this._normalizeHeaderKey(p);let a={key:p,value:i};for(let m=0,v=this._headers.length;m<v;m++)if(this._headers[m].key===p)if(!x)this._headers[m]=a,x=!0;else this._headers.splice(m,1),m--,v--;if(!x)this._headers.push(a);return this}addHeader(p,i){if(!i&&p&&typeof p==="object"){if(p.key&&p.value)this.addHeader(p.key,p.value);else if(Array.isArray(p))p.forEach((x)=>{this.addHeader(x.key,x.value)});else Object.keys(p).forEach((x)=>{this.addHeader(x,p[x])});return this}else if(Array.isArray(i))return i.forEach((x)=>{this.addHeader(p,x)}),this;return this._headers.push({key:this._normalizeHeaderKey(p),value:i}),this}getHeader(p){p=this._normalizeHeaderKey(p);for(let i=0,x=this._headers.length;i<x;i++)if(this._headers[i].key===p)return this._headers[i].value}setContent(p){if(this.content=p,typeof this.content.pipe==="function")this._contentErrorHandler=(i)=>{this.content.removeListener("error",this._contentErrorHandler),this.content=i},this.content.once("error",this._contentErrorHandler);else if(typeof this.content==="string"){if(this._isPlainText=Q.isPlainText(this.content),this._isPlainText&&Q.hasLongerLines(this.content,76))this._hasLongLines=!0}return this}build(p){let i;if(!p)i=new Promise((c,l)=>{p=Mx.callbackPromise(c,l)});let x=this.createReadStream(),a=[],m=0,v=!1;return x.on("readable",()=>{let c;while((c=x.read())!==null)a.push(c),m+=c.length}),x.once("error",(c)=>{if(v)return;return v=!0,p(c)}),x.once("end",(c)=>{if(v)return;if(v=!0,c&&c.length)a.push(c),m+=c.length;return p(null,Buffer.concat(a,m))}),i}getTransferEncoding(){let p=!1,i=(this.getHeader("Content-Type")||"").toString().toLowerCase().trim();if(this.content){if(p=(this.getHeader("Content-Transfer-Encoding")||"").toString().toLowerCase().trim(),!p||!["base64","quoted-printable"].includes(p)){if(/^text\//i.test(i))if(this._isPlainText&&!this._hasLongLines)p="7bit";else if(typeof this.content==="string"||this.content instanceof Buffer)p=this._getTextEncoding(this.content)==="Q"?"quoted-printable":"base64";else p=this.textEncoding==="B"?"base64":"quoted-printable";else if(!/^(multipart|message)\//i.test(i))p=p||"base64"}}return p}buildHeaders(){let p=this.getTransferEncoding(),i=[];if(p)this.setHeader("Content-Transfer-Encoding",p);if(this.filename&&!this.getHeader("Content-Disposition"))this.setHeader("Content-Disposition","attachment");if(this.rootNode===this){if(!this.getHeader("Date"))this.setHeader("Date",this.date.toUTCString().replace(/GMT/,"+0000"));if(this.messageId(),!this.getHeader("MIME-Version"))this.setHeader("MIME-Version","1.0");for(let x=this._headers.length-2;x>=0;x--){let a=this._headers[x];if(a.key==="Content-Type")this._headers.splice(x,1),this._headers.push(a)}}return this._headers.forEach((x)=>{let{key:a,value:m}=x,v,c,l={};if(m&&typeof m==="object"&&!Ix.includes(a)){if(Object.keys(m).forEach((d)=>{if(d!=="value")l[d]=m[d]}),m=(m.value||"").toString(),!m.trim())return}if(l.prepared){if(l.foldLines)i.push(Q.foldLines(a+": "+m));else i.push(a+": "+m);return}switch(x.key){case"Content-Disposition":if(v=Q.parseHeaderValue(m),this.filename)v.params.filename=this.filename;m=Q.buildHeaderValue(v);break;case"Content-Type":if(v=Q.parseHeaderValue(m),this._handleContentType(v),v.value.match(/^text\/plain\b/)&&typeof this.content==="string"&&/[\u0080-\uFFFF]/.test(this.content))v.params.charset="utf-8";if(m=Q.buildHeaderValue(v),this.filename){if(c=this._encodeWords(this.filename),c!==this.filename||/[\s'"\\;:/=(),<>@[\]?]|^-/.test(c))c='"'+c+'"';m+="; name="+c}break;case"Bcc":if(!this.keepBcc)return;break}if(m=this._encodeHeaderValue(a,m),!(m||"").toString().trim())return;if(typeof this.normalizeHeaderKey==="function"){let d=this.normalizeHeaderKey(a,m);if(d&&typeof d==="string"&&d.length)a=d}i.push(Q.foldLines(a+": "+m,76))}),i.join(`\r
|
|
16
|
+
`)}createReadStream(p){p=p||{};let i=new I(p),x=i,a;this.stream(i,p,(m)=>{if(m){x.emit("error",m);return}i.end()});for(let m=0,v=this._transforms.length;m<v;m++)a=typeof this._transforms[m]==="function"?this._transforms[m]():this._transforms[m],x.once("error",(c)=>{a.emit("error",c)}),x=x.pipe(a);a=new Hx,x.once("error",(m)=>{a.emit("error",m)}),x=x.pipe(a);for(let m=0,v=this._processFuncs.length;m<v;m++)a=this._processFuncs[m],x=a(x);if(this.newline){let v=["win","windows","dos",`\r
|
|
17
|
+
`].includes(this.newline.toString().toLowerCase())?new Fx:new Ex,c=x.pipe(v);return x.on("error",(l)=>c.emit("error",l)),c}return x}transform(p){this._transforms.push(p)}processFunc(p){this._processFuncs.push(p)}stream(p,i,x){let a=this.getTransferEncoding(),m,v,c=!1,l=(g)=>{if(c)return;c=!0,x(g)},o=()=>{let g=0,f=()=>{if(g>=this.childNodes.length)return p.write(`\r
|
|
18
18
|
--`+this.boundary+`--\r
|
|
19
|
-
`),
|
|
19
|
+
`),l();let w=this.childNodes[g++];p.write((g>1?`\r
|
|
20
20
|
`:"")+"--"+this.boundary+`\r
|
|
21
|
-
`),w.stream(p,i,(
|
|
21
|
+
`),w.stream(p,i,(j)=>{if(j)return l(j);setImmediate(f)})};if(this.multipart)setImmediate(f);else return l()},d=()=>{if(this.content){if(Object.prototype.toString.call(this.content)==="[object Error]")return l(this.content);if(typeof this.content.pipe==="function")this.content.removeListener("error",this._contentErrorHandler),this._contentErrorHandler=(f)=>l(f),this.content.once("error",this._contentErrorHandler);let g=()=>{if(["quoted-printable","base64"].includes(a))m=new(a==="base64"?Kx:Vx).Encoder(i),m.pipe(p,{end:!1}),m.once("end",o),m.once("error",(f)=>l(f)),v=this._getStream(this.content),v.pipe(m);else v=this._getStream(this.content),v.pipe(p,{end:!1}),v.once("end",o);v.once("error",(f)=>l(f))};if(this.content._resolve){let f=[],w=0,j=!1,z=this._getStream(this.content);z.on("error",(q)=>{if(j)return;j=!0,l(q)}),z.on("readable",()=>{let q;while((q=z.read())!==null)f.push(q),w+=q.length}),z.on("end",()=>{if(j)return;j=!0,this.content._resolve=!1,this.content._resolvedValue=Buffer.concat(f,w),setImmediate(g)})}else setImmediate(g);return}return setImmediate(o)};if(this._raw)setImmediate(()=>{if(Object.prototype.toString.call(this._raw)==="[object Error]")return l(this._raw);if(typeof this._raw.pipe==="function")this._raw.removeListener("error",this._contentErrorHandler);let g=this._getStream(this._raw);g.pipe(p,{end:!1}),g.on("error",(f)=>p.emit("error",f)),g.on("end",o)});else p.write(this.buildHeaders()+`\r
|
|
22
22
|
\r
|
|
23
|
-
`),setImmediate(d)}setEnvelope(p){let i;if(this._envelope={from:!1,to:[]},p.from){if(i=[],this._convertAddresses(this._parseAddresses(p.from),i),i=i.filter((a)=>a&&a.address),i.length&&i[0])this._envelope.from=i[0].address}["to","cc","bcc"].forEach((a)=>{if(p[a])this._convertAddresses(this._parseAddresses(p[a]),this._envelope.to)}),this._envelope.to=this._envelope.to.map((a)=>a.address).filter((a)=>a);let x=["to","cc","bcc","from"];return Object.keys(p).forEach((a)=>{if(!x.includes(a))this._envelope[a]=p[a]}),this}getAddresses(){let p={};return this._headers.forEach((i)=>{let x=i.key.toLowerCase();if(["from","sender","reply-to","to","cc","bcc"].includes(x)){if(!Array.isArray(p[x]))p[x]=[];this._convertAddresses(this._parseAddresses(i.value),p[x])}}),p}getEnvelope(){if(this._envelope)return this._envelope;let p={from:!1,to:[]};return this._headers.forEach((i)=>{let x=[];if(i.key==="From"||!p.from&&["Reply-To","Sender"].includes(i.key)){if(this._convertAddresses(this._parseAddresses(i.value),x),x.length&&x[0])p.from=x[0].address}else if(["To","Cc","Bcc"].includes(i.key))this._convertAddresses(this._parseAddresses(i.value),p.to)}),p.to=p.to.map((i)=>i.address),p}messageId(){let p=this.getHeader("Message-ID");if(!p)p=this._generateMessageId(),this.setHeader("Message-ID",p);return p}setRaw(p){if(this._raw=p,this._raw&&typeof this._raw.pipe==="function")this._contentErrorHandler=(i)=>{this._raw.removeListener("error",this._contentErrorHandler),this._raw=i},this._raw.once("error",this._contentErrorHandler);return this}_getStream(p){let i;if(p._resolvedValue)return i=new I,setImmediate(()=>{try{i.end(p._resolvedValue)}catch(x){i.emit("error",x)}}),i;if(typeof p.pipe==="function")return p;if(p&&typeof p.path==="string"&&!p.href){if(this.disableFileAccess)return i=new I,setImmediate(()=>{let x=Error("File access rejected for "+p.path);x.code=oi.EFILEACCESS,i.emit("error",x)}),i;return Bx.createReadStream(p.path)}if(p&&typeof p.href==="string"){if(this.disableUrlAccess)return i=new I,setImmediate(()=>{let x=Error("Url access rejected for "+p.href);x.code=oi.EURLACCESS,i.emit("error",x)}),i;return Jx(p.href,{headers:p.httpHeaders})}return i=new I,setImmediate(()=>{try{i.end(p||"")}catch(x){i.emit("error",x)}}),i}_parseAddresses(p){return[].concat.apply([],[].concat(p).map((i)=>{if(i&&i.address)return i.address=this._normalizeAddress(i.address),i.name=i.name||"",[i];return Xx(i)}))}_normalizeHeaderKey(p){return p=(p||"").toString().replace(/\r?\n|\r/g," ").trim().toLowerCase().replace(/^X-SMTPAPI$|^(MIME|DKIM|ARC|BIMI)\b|^[a-z]|-(SPF|FBL|ID|MD5)$|-[a-z]/gi,(i)=>i.toUpperCase()).replace(/^Content-Features$/i,"Content-features"),p}_handleContentType(p){if(this.contentType=p.value.trim().toLowerCase(),this.multipart=/^multipart\//i.test(this.contentType)?this.contentType.substr(this.contentType.indexOf("/")+1):!1,this.multipart)this.boundary=p.params.boundary=p.params.boundary||this.boundary||this._generateBoundary();else this.boundary=!1}_generateBoundary(){return this.rootNode.boundaryPrefix+"-"+this.rootNode.baseBoundary+"-Part_"+this._nodeId}_encodeHeaderValue(p,i){switch(p=this._normalizeHeaderKey(p),p){case"From":case"Sender":case"To":case"Cc":case"Bcc":case"Reply-To":return this._convertAddresses(this._parseAddresses(i));case"Message-ID":case"In-Reply-To":case"Content-Id":if(i=(i||"").toString().replace(/\r?\n|\r/g," "),i.charAt(0)!=="<")i="<"+i;if(i.charAt(i.length-1)!==">")i=i+">";return i;case"References":return i=[].concat.apply([],[].concat(i||"").map((x)=>{return x=(x||"").toString().replace(/\r?\n|\r/g," ").trim(),x.replace(/<[^>]*>/g,(a)=>a.replace(/\s/g,"")).split(/\s+/)})).map((x)=>{if(x.charAt(0)!=="<")x="<"+x;if(x.charAt(x.length-1)!==">")x=x+">";return x}),i.join(" ").trim();case"Date":if(Object.prototype.toString.call(i)==="[object Date]")return i.toUTCString().replace(/GMT/,"+0000");return i=(i||"").toString().replace(/\r?\n|\r/g," "),this._encodeWords(i);case"Content-Type":case"Content-Disposition":return(i||"").toString().replace(/\r?\n|\r/g," ");default:return i=(i||"").toString().replace(/\r?\n|\r/g," "),this._encodeWords(i)}}_convertAddresses(p,i){let x=[];return i=i||[],[].concat(p||[]).forEach((a)=>{if(a.address){if(a.address=this._normalizeAddress(a.address),!a.name)x.push(a.address.indexOf(" ")>=0?`<${a.address}>`:`${a.address}`);else x.push(`${this._encodeAddressName(a.name)} <${a.address}>`);if(!i.some((m)=>m.address===a.address))i.push(a)}else if(a.group){let m=(a.group.length?this._convertAddresses(a.group,i):"").trim();x.push(`${this._encodeAddressName(a.name)}:${m};`)}}),x.join(", ")}_normalizeAddress(p){p=(p||"").toString().replace(/[\x00-\x1F<>]+/g," ").trim();let i=p.lastIndexOf("@");if(i<0)return p;let x=p.substr(0,i),a=p.substr(i+1),m;try{m=Ax.toASCII(a.toLowerCase())}catch(v){}if(x.indexOf(" ")>=0){if(x.charAt(0)!=='"')x='"'+x;if(x.substr(-1)!=='"')x=x+'"'}return`${x}@${m}`}_encodeAddressName(p){if(!/^[\w ]*$/.test(p))if(/^[\x20-\x7e]*$/.test(p))return'"'+p.replace(/([\\"])/g,"\\$1")+'"';else return A.encodeWord(p,this._getTextEncoding(p),52);return p}_encodeWords(p){return A.encodeWords(p,this._getTextEncoding(p),52,!0)}_getTextEncoding(p){if(p=(p||"").toString(),this.textEncoding)return this.textEncoding;let i=0,x=0;for(let a=0,m=p.length;a<m;a++){let v=p.charCodeAt(a);if(v>=0&&v<=8||v===11||v===12||v>=14&&v<=31||v>=128)i++;else if(v>=65&&v<=90||v>=97&&v<=122)x++}return i<x?"Q":"B"}_generateMessageId(){return"<"+[2,2,2,6].reduce((p,i)=>p+"-"+ap.randomBytes(i).toString("hex"),ap.randomBytes(4).toString("hex"))+"@"+(this.getEnvelope().from||this.hostname||"localhost").split("@").pop()+">"}}di.exports=xp});var gi=j((_v,wi)=>{var N=T(),mp=F(),{parseDataURI:Ux}=Z();class fi{constructor(p){this.mail=p||{},this.message=!1}compile(){if(this._alternatives=this.getAlternatives(),this._htmlNode=this._alternatives.filter((p)=>/^text\/html\b/i.test(p.contentType)).pop(),this._attachments=this.getAttachments(!!this._htmlNode),this._useRelated=!!(this._htmlNode&&this._attachments.related.length),this._useAlternative=this._alternatives.length>1,this._useMixed=this._attachments.attached.length>1||this._alternatives.length&&this._attachments.attached.length===1,this.mail.raw)this.message=new N("message/rfc822",{newline:this.mail.newline}).setRaw(this.mail.raw);else if(this._useMixed)this.message=this._createMixed();else if(this._useAlternative)this.message=this._createAlternative();else if(this._useRelated)this.message=this._createRelated();else this.message=this._createContentNode(!1,[].concat(this._alternatives||[]).concat(this._attachments.attached||[]).shift()||{contentType:"text/plain",content:""});if(this.mail.headers)this.message.addHeader(this.mail.headers);if(["from","sender","to","cc","bcc","reply-to","in-reply-to","references","subject","message-id","date"].forEach((p)=>{let i=p.replace(/-(\w)/g,(x,a)=>a.toUpperCase());if(this.mail[i])this.message.setHeader(p,this.mail[i])}),this.mail.envelope)this.message.setEnvelope(this.mail.envelope);return this.message.messageId(),this.message}getAttachments(p){let i,x,a=[].concat(this.mail.attachments||[]).map((m,v)=>{if(/^data:/i.test(m.path||m.href))m=this._processDataUrl(m);let l=m.contentType||mp.detectMimeType(m.filename||m.path||m.href||"bin"),c=/^image\//i.test(l),o=/^message\//i.test(l),d=m.contentDisposition||(o||c&&m.cid?"inline":"attachment"),g;if("contentTransferEncoding"in m)g=m.contentTransferEncoding;else if(o)g="8bit";else g="base64";let f={contentType:l,contentDisposition:d,contentTransferEncoding:g};if(m.filename)f.filename=m.filename;else if(!o&&m.filename!==!1){if(f.filename=(m.path||m.href||"").split("/").pop().split("?").shift()||"attachment-"+(v+1),f.filename.indexOf(".")<0)f.filename+="."+mp.detectExtension(f.contentType)}if(/^https?:\/\//i.test(m.path))m.href=m.path,m.path=void 0;if(m.cid)f.cid=m.cid;if(m.raw)f.raw=m.raw;else if(m.path)f.content={path:m.path};else if(m.href)f.content={href:m.href,httpHeaders:m.httpHeaders};else f.content=m.content||"";if(m.encoding)f.encoding=m.encoding;if(m.headers)f.headers=m.headers;return f});if(this.mail.icalEvent){if(typeof this.mail.icalEvent==="object"&&(this.mail.icalEvent.content||this.mail.icalEvent.path||this.mail.icalEvent.href||this.mail.icalEvent.raw))i=this.mail.icalEvent;else i={content:this.mail.icalEvent};if(x=Object.assign({},i),x.contentType="application/ics",!x.headers)x.headers={};x.filename=x.filename||"invite.ics",x.headers["Content-Disposition"]="attachment",x.headers["Content-Transfer-Encoding"]="base64"}if(!p)return{attached:a.concat(x||[]),related:[]};return{attached:a.filter((m)=>!m.cid).concat(x||[]),related:a.filter((m)=>!!m.cid)}}getAlternatives(){let p=[],i,x,a,m,v,l;if(this.mail.text){if(typeof this.mail.text==="object"&&(this.mail.text.content||this.mail.text.path||this.mail.text.href||this.mail.text.raw))i=this.mail.text;else i={content:this.mail.text};i.contentType="text/plain; charset=utf-8"}if(this.mail.watchHtml){if(typeof this.mail.watchHtml==="object"&&(this.mail.watchHtml.content||this.mail.watchHtml.path||this.mail.watchHtml.href||this.mail.watchHtml.raw))a=this.mail.watchHtml;else a={content:this.mail.watchHtml};a.contentType="text/watch-html; charset=utf-8"}if(this.mail.amp){if(typeof this.mail.amp==="object"&&(this.mail.amp.content||this.mail.amp.path||this.mail.amp.href||this.mail.amp.raw))m=this.mail.amp;else m={content:this.mail.amp};m.contentType="text/x-amp-html; charset=utf-8"}if(this.mail.icalEvent){if(typeof this.mail.icalEvent==="object"&&(this.mail.icalEvent.content||this.mail.icalEvent.path||this.mail.icalEvent.href||this.mail.icalEvent.raw))v=this.mail.icalEvent;else v={content:this.mail.icalEvent};if(l=Object.assign({},v),l.content&&typeof l.content==="object")l.content._resolve=!0;if(l.filename=!1,l.contentType="text/calendar; charset=utf-8; method="+(l.method||"PUBLISH").toString().trim().toUpperCase(),!l.headers)l.headers={}}if(this.mail.html){if(typeof this.mail.html==="object"&&(this.mail.html.content||this.mail.html.path||this.mail.html.href||this.mail.html.raw))x=this.mail.html;else x={content:this.mail.html};x.contentType="text/html; charset=utf-8"}return[].concat(i||[]).concat(a||[]).concat(m||[]).concat(x||[]).concat(l||[]).concat(this.mail.alternatives||[]).forEach((c)=>{if(/^data:/i.test(c.path||c.href))c=this._processDataUrl(c);let o={contentType:c.contentType||mp.detectMimeType(c.filename||c.path||c.href||"txt"),contentTransferEncoding:c.contentTransferEncoding};if(c.filename)o.filename=c.filename;if(/^https?:\/\//i.test(c.path))c.href=c.path,c.path=void 0;if(c.raw)o.raw=c.raw;else if(c.path)o.content={path:c.path};else if(c.href)o.content={href:c.href};else o.content=c.content||"";if(c.encoding)o.encoding=c.encoding;if(c.headers)o.headers=c.headers;p.push(o)}),p}_createMixed(p){let i=p?p.createChild("multipart/mixed",{disableUrlAccess:this.mail.disableUrlAccess,disableFileAccess:this.mail.disableFileAccess,normalizeHeaderKey:this.mail.normalizeHeaderKey,newline:this.mail.newline}):new N("multipart/mixed",{baseBoundary:this.mail.baseBoundary,textEncoding:this.mail.textEncoding,boundaryPrefix:this.mail.boundaryPrefix,disableUrlAccess:this.mail.disableUrlAccess,disableFileAccess:this.mail.disableFileAccess,normalizeHeaderKey:this.mail.normalizeHeaderKey,newline:this.mail.newline});if(this._useAlternative)this._createAlternative(i);else if(this._useRelated)this._createRelated(i);return[].concat(!this._useAlternative&&this._alternatives||[]).concat(this._attachments.attached||[]).forEach((x)=>{if(!this._useRelated||x!==this._htmlNode)this._createContentNode(i,x)}),i}_createAlternative(p){let i=p?p.createChild("multipart/alternative",{disableUrlAccess:this.mail.disableUrlAccess,disableFileAccess:this.mail.disableFileAccess,normalizeHeaderKey:this.mail.normalizeHeaderKey,newline:this.mail.newline}):new N("multipart/alternative",{baseBoundary:this.mail.baseBoundary,textEncoding:this.mail.textEncoding,boundaryPrefix:this.mail.boundaryPrefix,disableUrlAccess:this.mail.disableUrlAccess,disableFileAccess:this.mail.disableFileAccess,normalizeHeaderKey:this.mail.normalizeHeaderKey,newline:this.mail.newline});return this._alternatives.forEach((x)=>{if(this._useRelated&&this._htmlNode===x)this._createRelated(i);else this._createContentNode(i,x)}),i}_createRelated(p){let i=p?p.createChild('multipart/related; type="text/html"',{disableUrlAccess:this.mail.disableUrlAccess,disableFileAccess:this.mail.disableFileAccess,normalizeHeaderKey:this.mail.normalizeHeaderKey,newline:this.mail.newline}):new N('multipart/related; type="text/html"',{baseBoundary:this.mail.baseBoundary,textEncoding:this.mail.textEncoding,boundaryPrefix:this.mail.boundaryPrefix,disableUrlAccess:this.mail.disableUrlAccess,disableFileAccess:this.mail.disableFileAccess,normalizeHeaderKey:this.mail.normalizeHeaderKey,newline:this.mail.newline});return this._createContentNode(i,this._htmlNode),this._attachments.related.forEach((x)=>this._createContentNode(i,x)),i}_createContentNode(p,i){i=i||{},i.content=i.content||"";let x=(i.encoding||"utf8").toString().toLowerCase().replace(/[-_\s]/g,""),a=p?p.createChild(i.contentType,{filename:i.filename,textEncoding:this.mail.textEncoding,disableUrlAccess:this.mail.disableUrlAccess,disableFileAccess:this.mail.disableFileAccess,normalizeHeaderKey:this.mail.normalizeHeaderKey,newline:this.mail.newline}):new N(i.contentType,{filename:i.filename,baseBoundary:this.mail.baseBoundary,textEncoding:this.mail.textEncoding,boundaryPrefix:this.mail.boundaryPrefix,disableUrlAccess:this.mail.disableUrlAccess,disableFileAccess:this.mail.disableFileAccess,normalizeHeaderKey:this.mail.normalizeHeaderKey,newline:this.mail.newline});if(i.headers)a.addHeader(i.headers);if(i.cid)a.setHeader("Content-Id","<"+i.cid.replace(/[<>]/g,"")+">");if(i.contentTransferEncoding)a.setHeader("Content-Transfer-Encoding",i.contentTransferEncoding);else if(this.mail.encoding&&/^text\//i.test(i.contentType))a.setHeader("Content-Transfer-Encoding",this.mail.encoding);if(!/^text\//i.test(i.contentType)||i.contentDisposition)a.setHeader("Content-Disposition",i.contentDisposition||(i.cid&&/^image\//i.test(i.contentType)?"inline":"attachment"));if(typeof i.content==="string"&&!["utf8","usascii","ascii"].includes(x))i.content=Buffer.from(i.content,x);if(i.raw)a.setRaw(i.raw);else a.setContent(i.content);return a}_processDataUrl(p){let i=p.path||p.href;if(!i||typeof i!=="string")return p;if(!i.startsWith("data:"))return p;if(i.length>52428800){let a="application/octet-stream",m=i.indexOf(",");if(m>0&&m<200){let l=i.substring(5,m).split(";");if(l[0]&&l[0].includes("/"))a=l[0].trim()}return Object.assign({},p,{path:!1,href:!1,content:Buffer.alloc(0),contentType:p.contentType||a})}let x;try{x=Ux(i)}catch(a){return p}if(!x)return p;if(p.content=x.data,p.contentType=p.contentType||x.contentType,"path"in p)p.path=!1;if("href"in p)p.href=!1;return p}}wi.exports=fi});var ti=j(($v,zi)=>{var{Transform:Ex}=z("stream");class ni extends Ex{constructor(p){super(p);this.lastBytes=Buffer.alloc(4),this.headersParsed=!1,this.headerBytes=0,this.headerChunks=[],this.rawHeaders=!1,this.bodySize=0}updateLastBytes(p){let i=this.lastBytes.length,x=Math.min(p.length,i);for(let a=0,m=i-x;a<m;a++)this.lastBytes[a]=this.lastBytes[a+x];for(let a=1;a<=x;a++)this.lastBytes[i-a]=p[p.length-a]}checkHeaders(p){if(this.headersParsed)return!0;let i=this.lastBytes.length,x=0;for(let a=0,m=this.lastBytes.length+p.length;a<m;a++){let v;if(a<i)v=this.lastBytes[a];else v=p[a-i];if(v===10&&a){let l=a-1<i?this.lastBytes[a-1]:p[a-1-i],c=a>1?a-2<i?this.lastBytes[a-2]:p[a-2-i]:!1;if(l===10){this.headersParsed=!0,x=a-i+1,this.headerBytes+=x;break}else if(l===13&&c===10){this.headersParsed=!0,x=a-i+1,this.headerBytes+=x;break}}}if(this.headersParsed){if(this.headerChunks.push(p.slice(0,x)),this.rawHeaders=Buffer.concat(this.headerChunks,this.headerBytes),this.headerChunks=null,this.emit("headers",this.parseHeaders()),p.length-1>x){let a=p.slice(x);this.bodySize+=a.length,setImmediate(()=>this.push(a))}return!1}return this.headerBytes+=p.length,this.headerChunks.push(p),this.updateLastBytes(p),!1}_transform(p,i,x){if(!p||!p.length)return x();if(typeof p==="string")p=Buffer.from(p,i);let a;try{a=this.checkHeaders(p)}catch(m){return x(m)}if(a)this.bodySize+=p.length,this.push(p);setImmediate(x)}_flush(p){if(this.headerChunks){let i=Buffer.concat(this.headerChunks,this.headerBytes);this.bodySize+=i.length,this.push(i),this.headerChunks=null}p()}parseHeaders(){let p=(this.rawHeaders||"").toString().split(/\r?\n/);for(let i=p.length-1;i>0;i--)if(/^\s/.test(p[i]))p[i-1]+=`
|
|
24
|
-
`+p[i],p.splice(i,1);return p.filter((i)=>i.trim()).map((i)=>({key:i.substr(0,i.indexOf(":")).trim().toLowerCase(),line:i}))}}
|
|
23
|
+
`),setImmediate(d)}setEnvelope(p){let i;if(this._envelope={from:!1,to:[]},p.from){if(i=[],this._convertAddresses(this._parseAddresses(p.from),i),i=i.filter((a)=>a&&a.address),i.length&&i[0])this._envelope.from=i[0].address}["to","cc","bcc"].forEach((a)=>{if(p[a])this._convertAddresses(this._parseAddresses(p[a]),this._envelope.to)}),this._envelope.to=this._envelope.to.map((a)=>a.address).filter((a)=>a);let x=["to","cc","bcc","from"];return Object.keys(p).forEach((a)=>{if(!x.includes(a))this._envelope[a]=p[a]}),this}getAddresses(){let p={};return this._headers.forEach((i)=>{let x=i.key.toLowerCase();if(["from","sender","reply-to","to","cc","bcc"].includes(x)){if(!Array.isArray(p[x]))p[x]=[];this._convertAddresses(this._parseAddresses(i.value),p[x])}}),p}getEnvelope(){if(this._envelope)return this._envelope;let p={from:!1,to:[]};return this._headers.forEach((i)=>{let x=[];if(i.key==="From"||!p.from&&["Reply-To","Sender"].includes(i.key)){if(this._convertAddresses(this._parseAddresses(i.value),x),x.length&&x[0])p.from=x[0].address}else if(["To","Cc","Bcc"].includes(i.key))this._convertAddresses(this._parseAddresses(i.value),p.to)}),p.to=p.to.map((i)=>i.address),p}messageId(){let p=this.getHeader("Message-ID");if(!p)p=this._generateMessageId(),this.setHeader("Message-ID",p);return p}setRaw(p){if(this._raw=p,this._raw&&typeof this._raw.pipe==="function")this._contentErrorHandler=(i)=>{this._raw.removeListener("error",this._contentErrorHandler),this._raw=i},this._raw.once("error",this._contentErrorHandler);return this}_getStream(p){let i;if(p._resolvedValue)return i=new I,setImmediate(()=>{try{i.end(p._resolvedValue)}catch(x){i.emit("error",x)}}),i;if(typeof p.pipe==="function")return p;if(p&&typeof p.path==="string"&&!p.href){if(this.disableFileAccess)return i=new I,setImmediate(()=>{let x=Error("File access rejected for "+p.path);x.code=fi.EFILEACCESS,i.emit("error",x)}),i;return Xx.createReadStream(p.path)}if(p&&typeof p.href==="string"){if(this.disableUrlAccess)return i=new I,setImmediate(()=>{let x=Error("Url access rejected for "+p.href);x.code=fi.EURLACCESS,i.emit("error",x)}),i;return Ux(p.href,{headers:p.httpHeaders})}return i=new I,setImmediate(()=>{try{i.end(p||"")}catch(x){i.emit("error",x)}}),i}_parseAddresses(p){return[].concat.apply([],[].concat(p).map((i)=>{if(i&&i.address)return i.address=this._normalizeAddress(i.address),i.name=i.name||"",[i];return Sx(i)}))}_normalizeHeaderKey(p){return p=(p||"").toString().replace(/\r?\n|\r/g," ").trim().toLowerCase().replace(/^X-SMTPAPI$|^(MIME|DKIM|ARC|BIMI)\b|^[a-z]|-(SPF|FBL|ID|MD5)$|-[a-z]/gi,(i)=>i.toUpperCase()).replace(/^Content-Features$/i,"Content-features"),p}_handleContentType(p){if(this.contentType=p.value.trim().toLowerCase(),this.multipart=/^multipart\//i.test(this.contentType)?this.contentType.substr(this.contentType.indexOf("/")+1):!1,this.multipart)this.boundary=p.params.boundary=p.params.boundary||this.boundary||this._generateBoundary();else this.boundary=!1}_generateBoundary(){return this.rootNode.boundaryPrefix+"-"+this.rootNode.baseBoundary+"-Part_"+this._nodeId}_encodeHeaderValue(p,i){switch(p=this._normalizeHeaderKey(p),p){case"From":case"Sender":case"To":case"Cc":case"Bcc":case"Reply-To":return this._convertAddresses(this._parseAddresses(i));case"Message-ID":case"In-Reply-To":case"Content-Id":if(i=(i||"").toString().replace(/\r?\n|\r/g," "),i.charAt(0)!=="<")i="<"+i;if(i.charAt(i.length-1)!==">")i=i+">";return i;case"References":return i=[].concat.apply([],[].concat(i||"").map((x)=>{return x=(x||"").toString().replace(/\r?\n|\r/g," ").trim(),x.replace(/<[^>]*>/g,(a)=>a.replace(/\s/g,"")).split(/\s+/)})).map((x)=>{if(x.charAt(0)!=="<")x="<"+x;if(x.charAt(x.length-1)!==">")x=x+">";return x}),i.join(" ").trim();case"Date":if(Object.prototype.toString.call(i)==="[object Date]")return i.toUTCString().replace(/GMT/,"+0000");return i=(i||"").toString().replace(/\r?\n|\r/g," "),this._encodeWords(i);case"Content-Type":case"Content-Disposition":return(i||"").toString().replace(/\r?\n|\r/g," ");default:return i=(i||"").toString().replace(/\r?\n|\r/g," "),this._encodeWords(i)}}_convertAddresses(p,i){let x=[];return i=i||[],[].concat(p||[]).forEach((a)=>{if(a.address){if(a.address=this._normalizeAddress(a.address),!a.name)x.push(a.address.indexOf(" ")>=0?`<${a.address}>`:`${a.address}`);else x.push(`${this._encodeAddressName(a.name)} <${a.address}>`);if(!i.some((m)=>m.address===a.address))i.push(a)}else if(a.group){let m=(a.group.length?this._convertAddresses(a.group,i):"").trim();x.push(`${this._encodeAddressName(a.name)}:${m};`)}}),x.join(", ")}_normalizeAddress(p){p=(p||"").toString().replace(/[\x00-\x1F<>]+/g," ").trim();let i=p.lastIndexOf("@");if(i<0)return p;let x=p.substr(0,i),a=p.substr(i+1),m;try{m=Jx.toASCII(a.toLowerCase())}catch(v){}if(x.indexOf(" ")>=0){if(x.charAt(0)!=='"')x='"'+x;if(x.substr(-1)!=='"')x=x+'"'}return`${x}@${m}`}_encodeAddressName(p){if(!/^[\w ]*$/.test(p))if(/^[\x20-\x7e]*$/.test(p))return'"'+p.replace(/([\\"])/g,"\\$1")+'"';else return Q.encodeWord(p,this._getTextEncoding(p),52);return p}_encodeWords(p){return Q.encodeWords(p,this._getTextEncoding(p),52,!0)}_getTextEncoding(p){if(p=(p||"").toString(),this.textEncoding)return this.textEncoding;let i=0,x=0;for(let a=0,m=p.length;a<m;a++){let v=p.charCodeAt(a);if(v>=0&&v<=8||v===11||v===12||v>=14&&v<=31||v>=128)i++;else if(v>=65&&v<=90||v>=97&&v<=122)x++}return i<x?"Q":"B"}_generateMessageId(){return"<"+[2,2,2,6].reduce((p,i)=>p+"-"+xp.randomBytes(i).toString("hex"),xp.randomBytes(4).toString("hex"))+"@"+(this.getEnvelope().from||this.hostname||"localhost").split("@").pop()+">"}}wi.exports=mp});var ni=t((Iv,zi)=>{var N=D(),vp=E(),{parseDataURI:Nx}=Z();class gi{constructor(p){this.mail=p||{},this.message=!1}compile(){if(this._alternatives=this.getAlternatives(),this._htmlNode=this._alternatives.filter((p)=>/^text\/html\b/i.test(p.contentType)).pop(),this._attachments=this.getAttachments(!!this._htmlNode),this._useRelated=!!(this._htmlNode&&this._attachments.related.length),this._useAlternative=this._alternatives.length>1,this._useMixed=this._attachments.attached.length>1||this._alternatives.length&&this._attachments.attached.length===1,this.mail.raw)this.message=new N("message/rfc822",{newline:this.mail.newline}).setRaw(this.mail.raw);else if(this._useMixed)this.message=this._createMixed();else if(this._useAlternative)this.message=this._createAlternative();else if(this._useRelated)this.message=this._createRelated();else this.message=this._createContentNode(!1,[].concat(this._alternatives||[]).concat(this._attachments.attached||[]).shift()||{contentType:"text/plain",content:""});if(this.mail.headers)this.message.addHeader(this.mail.headers);if(["from","sender","to","cc","bcc","reply-to","in-reply-to","references","subject","message-id","date"].forEach((p)=>{let i=p.replace(/-(\w)/g,(x,a)=>a.toUpperCase());if(this.mail[i])this.message.setHeader(p,this.mail[i])}),this.mail.envelope)this.message.setEnvelope(this.mail.envelope);return this.message.messageId(),this.message}getAttachments(p){let i,x,a=[].concat(this.mail.attachments||[]).map((m,v)=>{if(/^data:/i.test(m.path||m.href))m=this._processDataUrl(m);let c=m.contentType||vp.detectMimeType(m.filename||m.path||m.href||"bin"),l=/^image\//i.test(c),o=/^message\//i.test(c),d=m.contentDisposition||(o||l&&m.cid?"inline":"attachment"),g;if("contentTransferEncoding"in m)g=m.contentTransferEncoding;else if(o)g="8bit";else g="base64";let f={contentType:c,contentDisposition:d,contentTransferEncoding:g};if(m.filename)f.filename=m.filename;else if(!o&&m.filename!==!1){if(f.filename=(m.path||m.href||"").split("/").pop().split("?").shift()||"attachment-"+(v+1),f.filename.indexOf(".")<0)f.filename+="."+vp.detectExtension(f.contentType)}if(/^https?:\/\//i.test(m.path))m.href=m.path,m.path=void 0;if(m.cid)f.cid=m.cid;if(m.raw)f.raw=m.raw;else if(m.path)f.content={path:m.path};else if(m.href)f.content={href:m.href,httpHeaders:m.httpHeaders};else f.content=m.content||"";if(m.encoding)f.encoding=m.encoding;if(m.headers)f.headers=m.headers;return f});if(this.mail.icalEvent){if(typeof this.mail.icalEvent==="object"&&(this.mail.icalEvent.content||this.mail.icalEvent.path||this.mail.icalEvent.href||this.mail.icalEvent.raw))i=this.mail.icalEvent;else i={content:this.mail.icalEvent};if(x=Object.assign({},i),x.contentType="application/ics",!x.headers)x.headers={};x.filename=x.filename||"invite.ics",x.headers["Content-Disposition"]="attachment",x.headers["Content-Transfer-Encoding"]="base64"}if(!p)return{attached:a.concat(x||[]),related:[]};return{attached:a.filter((m)=>!m.cid).concat(x||[]),related:a.filter((m)=>!!m.cid)}}getAlternatives(){let p=[],i,x,a,m,v,c;if(this.mail.text){if(typeof this.mail.text==="object"&&(this.mail.text.content||this.mail.text.path||this.mail.text.href||this.mail.text.raw))i=this.mail.text;else i={content:this.mail.text};i.contentType="text/plain; charset=utf-8"}if(this.mail.watchHtml){if(typeof this.mail.watchHtml==="object"&&(this.mail.watchHtml.content||this.mail.watchHtml.path||this.mail.watchHtml.href||this.mail.watchHtml.raw))a=this.mail.watchHtml;else a={content:this.mail.watchHtml};a.contentType="text/watch-html; charset=utf-8"}if(this.mail.amp){if(typeof this.mail.amp==="object"&&(this.mail.amp.content||this.mail.amp.path||this.mail.amp.href||this.mail.amp.raw))m=this.mail.amp;else m={content:this.mail.amp};m.contentType="text/x-amp-html; charset=utf-8"}if(this.mail.icalEvent){if(typeof this.mail.icalEvent==="object"&&(this.mail.icalEvent.content||this.mail.icalEvent.path||this.mail.icalEvent.href||this.mail.icalEvent.raw))v=this.mail.icalEvent;else v={content:this.mail.icalEvent};if(c=Object.assign({},v),c.content&&typeof c.content==="object")c.content._resolve=!0;if(c.filename=!1,c.contentType="text/calendar; charset=utf-8; method="+(c.method||"PUBLISH").toString().trim().toUpperCase(),!c.headers)c.headers={}}if(this.mail.html){if(typeof this.mail.html==="object"&&(this.mail.html.content||this.mail.html.path||this.mail.html.href||this.mail.html.raw))x=this.mail.html;else x={content:this.mail.html};x.contentType="text/html; charset=utf-8"}return[].concat(i||[]).concat(a||[]).concat(m||[]).concat(x||[]).concat(c||[]).concat(this.mail.alternatives||[]).forEach((l)=>{if(/^data:/i.test(l.path||l.href))l=this._processDataUrl(l);let o={contentType:l.contentType||vp.detectMimeType(l.filename||l.path||l.href||"txt"),contentTransferEncoding:l.contentTransferEncoding};if(l.filename)o.filename=l.filename;if(/^https?:\/\//i.test(l.path))l.href=l.path,l.path=void 0;if(l.raw)o.raw=l.raw;else if(l.path)o.content={path:l.path};else if(l.href)o.content={href:l.href};else o.content=l.content||"";if(l.encoding)o.encoding=l.encoding;if(l.headers)o.headers=l.headers;p.push(o)}),p}_createMixed(p){let i=p?p.createChild("multipart/mixed",{disableUrlAccess:this.mail.disableUrlAccess,disableFileAccess:this.mail.disableFileAccess,normalizeHeaderKey:this.mail.normalizeHeaderKey,newline:this.mail.newline}):new N("multipart/mixed",{baseBoundary:this.mail.baseBoundary,textEncoding:this.mail.textEncoding,boundaryPrefix:this.mail.boundaryPrefix,disableUrlAccess:this.mail.disableUrlAccess,disableFileAccess:this.mail.disableFileAccess,normalizeHeaderKey:this.mail.normalizeHeaderKey,newline:this.mail.newline});if(this._useAlternative)this._createAlternative(i);else if(this._useRelated)this._createRelated(i);return[].concat(!this._useAlternative&&this._alternatives||[]).concat(this._attachments.attached||[]).forEach((x)=>{if(!this._useRelated||x!==this._htmlNode)this._createContentNode(i,x)}),i}_createAlternative(p){let i=p?p.createChild("multipart/alternative",{disableUrlAccess:this.mail.disableUrlAccess,disableFileAccess:this.mail.disableFileAccess,normalizeHeaderKey:this.mail.normalizeHeaderKey,newline:this.mail.newline}):new N("multipart/alternative",{baseBoundary:this.mail.baseBoundary,textEncoding:this.mail.textEncoding,boundaryPrefix:this.mail.boundaryPrefix,disableUrlAccess:this.mail.disableUrlAccess,disableFileAccess:this.mail.disableFileAccess,normalizeHeaderKey:this.mail.normalizeHeaderKey,newline:this.mail.newline});return this._alternatives.forEach((x)=>{if(this._useRelated&&this._htmlNode===x)this._createRelated(i);else this._createContentNode(i,x)}),i}_createRelated(p){let i=p?p.createChild('multipart/related; type="text/html"',{disableUrlAccess:this.mail.disableUrlAccess,disableFileAccess:this.mail.disableFileAccess,normalizeHeaderKey:this.mail.normalizeHeaderKey,newline:this.mail.newline}):new N('multipart/related; type="text/html"',{baseBoundary:this.mail.baseBoundary,textEncoding:this.mail.textEncoding,boundaryPrefix:this.mail.boundaryPrefix,disableUrlAccess:this.mail.disableUrlAccess,disableFileAccess:this.mail.disableFileAccess,normalizeHeaderKey:this.mail.normalizeHeaderKey,newline:this.mail.newline});return this._createContentNode(i,this._htmlNode),this._attachments.related.forEach((x)=>this._createContentNode(i,x)),i}_createContentNode(p,i){i=i||{},i.content=i.content||"";let x=(i.encoding||"utf8").toString().toLowerCase().replace(/[-_\s]/g,""),a=p?p.createChild(i.contentType,{filename:i.filename,textEncoding:this.mail.textEncoding,disableUrlAccess:this.mail.disableUrlAccess,disableFileAccess:this.mail.disableFileAccess,normalizeHeaderKey:this.mail.normalizeHeaderKey,newline:this.mail.newline}):new N(i.contentType,{filename:i.filename,baseBoundary:this.mail.baseBoundary,textEncoding:this.mail.textEncoding,boundaryPrefix:this.mail.boundaryPrefix,disableUrlAccess:this.mail.disableUrlAccess,disableFileAccess:this.mail.disableFileAccess,normalizeHeaderKey:this.mail.normalizeHeaderKey,newline:this.mail.newline});if(i.headers)a.addHeader(i.headers);if(i.cid)a.setHeader("Content-Id","<"+i.cid.replace(/[<>]/g,"")+">");if(i.contentTransferEncoding)a.setHeader("Content-Transfer-Encoding",i.contentTransferEncoding);else if(this.mail.encoding&&/^text\//i.test(i.contentType))a.setHeader("Content-Transfer-Encoding",this.mail.encoding);if(!/^text\//i.test(i.contentType)||i.contentDisposition)a.setHeader("Content-Disposition",i.contentDisposition||(i.cid&&/^image\//i.test(i.contentType)?"inline":"attachment"));if(typeof i.content==="string"&&!["utf8","usascii","ascii"].includes(x))i.content=Buffer.from(i.content,x);if(i.raw)a.setRaw(i.raw);else a.setContent(i.content);return a}_processDataUrl(p){let i=p.path||p.href;if(!i||typeof i!=="string")return p;if(!i.startsWith("data:"))return p;if(i.length>52428800){let a="application/octet-stream",m=i.indexOf(",");if(m>0&&m<200){let c=i.substring(5,m).split(";");if(c[0]&&c[0].includes("/"))a=c[0].trim()}return Object.assign({},p,{path:!1,href:!1,content:Buffer.alloc(0),contentType:p.contentType||a})}let x;try{x=Nx(i)}catch(a){return p}if(!x)return p;if(p.content=x.data,p.contentType=p.contentType||x.contentType,"path"in p)p.path=!1;if("href"in p)p.href=!1;return p}}zi.exports=gi});var qi=t((Nv,ti)=>{var{Transform:Cx}=n("stream");class ji extends Cx{constructor(p){super(p);this.lastBytes=Buffer.alloc(4),this.headersParsed=!1,this.headerBytes=0,this.headerChunks=[],this.rawHeaders=!1,this.bodySize=0}updateLastBytes(p){let i=this.lastBytes.length,x=Math.min(p.length,i);for(let a=0,m=i-x;a<m;a++)this.lastBytes[a]=this.lastBytes[a+x];for(let a=1;a<=x;a++)this.lastBytes[i-a]=p[p.length-a]}checkHeaders(p){if(this.headersParsed)return!0;let i=this.lastBytes.length,x=0;for(let a=0,m=this.lastBytes.length+p.length;a<m;a++){let v;if(a<i)v=this.lastBytes[a];else v=p[a-i];if(v===10&&a){let c=a-1<i?this.lastBytes[a-1]:p[a-1-i],l=a>1?a-2<i?this.lastBytes[a-2]:p[a-2-i]:!1;if(c===10){this.headersParsed=!0,x=a-i+1,this.headerBytes+=x;break}else if(c===13&&l===10){this.headersParsed=!0,x=a-i+1,this.headerBytes+=x;break}}}if(this.headersParsed){if(this.headerChunks.push(p.slice(0,x)),this.rawHeaders=Buffer.concat(this.headerChunks,this.headerBytes),this.headerChunks=null,this.emit("headers",this.parseHeaders()),p.length-1>x){let a=p.slice(x);this.bodySize+=a.length,setImmediate(()=>this.push(a))}return!1}return this.headerBytes+=p.length,this.headerChunks.push(p),this.updateLastBytes(p),!1}_transform(p,i,x){if(!p||!p.length)return x();if(typeof p==="string")p=Buffer.from(p,i);let a;try{a=this.checkHeaders(p)}catch(m){return x(m)}if(a)this.bodySize+=p.length,this.push(p);setImmediate(x)}_flush(p){if(this.headerChunks){let i=Buffer.concat(this.headerChunks,this.headerBytes);this.bodySize+=i.length,this.push(i),this.headerChunks=null}p()}parseHeaders(){let p=(this.rawHeaders||"").toString().split(/\r?\n/);for(let i=p.length-1;i>0;i--)if(/^\s/.test(p[i]))p[i-1]+=`
|
|
24
|
+
`+p[i],p.splice(i,1);return p.filter((i)=>i.trim()).map((i)=>({key:i.substr(0,i.indexOf(":")).trim().toLowerCase(),line:i}))}}ti.exports=ji});var $i=t((Cv,Zi)=>{var{Transform:Rx}=n("stream"),Tx=n("crypto");class Gi extends Rx{constructor(p){super();p=p||{},this.chunkBuffer=[],this.chunkBufferLen=0,this.bodyHash=Tx.createHash(p.hashAlgo||"sha1"),this.remainder="",this.byteLength=0,this.debug=p.debug,this._debugBody=p.debug?[]:!1}updateHash(p){let i,x="",a="file";for(let v=p.length-1;v>=0;v--){let c=p[v];if(a==="file"&&(c===10||c===13));else if(a==="file"&&(c===9||c===32))a="line";else if(a==="line"&&(c===9||c===32));else if(a==="file"||a==="line"){if(a="body",v===p.length-1)break}if(v===0){if(a==="file"&&(!this.remainder||/[\r\n]$/.test(this.remainder))||a==="line"&&(!this.remainder||/[ \t]$/.test(this.remainder))){this.remainder+=p.toString("binary");return}else if(a==="line"||a==="file"){x=p.toString("binary"),p=!1;break}}if(a!=="body")continue;x=p.slice(v+1).toString("binary"),p=p.slice(0,v+1);break}let m=!!this.remainder;if(p&&!m){for(let v=0,c=p.length;v<c;v++)if(v&&p[v]===10&&p[v-1]!==13){m=!0;break}else if(v&&p[v]===13&&p[v-1]===32){m=!0;break}else if(v&&p[v]===32&&p[v-1]===32){m=!0;break}else if(p[v]===9){m=!0;break}}if(m)i=this.remainder+(p?p.toString("binary"):""),this.remainder=x,i=i.replace(/\r?\n/g,`
|
|
25
25
|
`).replace(/[ \t]*$/gm,"").replace(/[ \t]+/gm," ").replace(/\n/g,`\r
|
|
26
26
|
`),p=Buffer.from(i,"binary");else if(x)this.remainder=x;if(this.debug)this._debugBody.push(p);this.bodyHash.update(p)}_transform(p,i,x){if(!p||!p.length)return x();if(typeof p==="string")p=Buffer.from(p,i);this.updateHash(p),this.byteLength+=p.length,this.push(p),x()}_flush(p){if(/[\r\n]$/.test(this.remainder)&&this.byteLength>2)this.bodyHash.update(Buffer.from(`\r
|
|
27
27
|
`));if(!this.byteLength)this.push(Buffer.from(`\r
|
|
28
|
-
`));this.emit("hash",this.bodyHash.digest("base64"),this.debug?Buffer.concat(this._debugBody):!1),p()}}
|
|
29
|
-
`).trim()};
|
|
30
|
-
b=`}function
|
|
28
|
+
`));this.emit("hash",this.bodyHash.digest("base64"),this.debug?Buffer.concat(this._debugBody):!1),p()}}Zi.exports=Gi});var Qi=t((Rv,cp)=>{var Dx=k(),Px=E(),Ox=n("crypto");cp.exports=(p,i,x,a)=>{a=a||{};let m="From:Sender:Reply-To:Subject:Date:Message-ID:To:Cc:MIME-Version:Content-Type:Content-Transfer-Encoding:Content-ID:Content-Description:Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:In-Reply-To:References:List-Id:List-Help:List-Unsubscribe:List-Subscribe:List-Post:List-Owner:List-Archive",v=a.headerFieldNames||m,c=Bi(p,v,a.skipFields),l=bx(a.domainName,a.keySelector,c.fieldNames,i,x);c.headers+="dkim-signature:"+_i(l);let o=Ox.createSign(("rsa-"+i).toUpperCase());o.update(c.headers);let d;try{d=o.sign(a.privateKey,"base64")}catch(g){return!1}return l+d.replace(/(^.{73}|.{75}(?!\r?\n|\r))/g,`$&\r
|
|
29
|
+
`).trim()};cp.exports.relaxedHeaders=Bi;function bx(p,i,x,a,m){let v=["v=1","a=rsa-"+a,"c=relaxed/relaxed","d="+Dx.toASCII(p),"q=dns/txt","s="+i,"bh="+m,"h="+x].join("; ");return Px.foldLines("DKIM-Signature: "+v,76)+`;\r
|
|
30
|
+
b=`}function Bi(p,i,x){let a=new Set,m=new Set,v=new Map;(x||"").toLowerCase().split(":").forEach((o)=>{m.add(o.trim())}),(i||"").toLowerCase().split(":").filter((o)=>!m.has(o.trim())).forEach((o)=>{a.add(o.trim())});for(let o=p.length-1;o>=0;o--){let d=p[o];if(a.has(d.key)&&!v.has(d.key))v.set(d.key,_i(d.line))}let c=[],l=[];return a.forEach((o)=>{if(v.has(o))l.push(o),c.push(o+":"+v.get(o))}),{headers:c.join(`\r
|
|
31
31
|
`)+`\r
|
|
32
|
-
`,fieldNames:
|
|
33
|
-
`));return setImmediate(i)};if(this.bodyHash&&this.headers)return i();this.output.write(this.parser.rawHeaders),this.sendNextChunk()}createWriteCache(){this.output.usingCache=!0,this.cache=
|
|
34
|
-
`+Object.keys(f).map((
|
|
32
|
+
`,fieldNames:l.join(":")}}function _i(p){return p.substr(p.indexOf(":")+1).replace(/\r?\n/g,"").replace(/\s+/g," ").trim()}});var Xi=t((Tv,Wi)=>{var Lx=qi(),yx=$i(),ux=Qi(),{PassThrough:lp}=n("stream"),op=n("fs"),hx=n("path"),sx=n("crypto");class Ai{constructor(p,i,x,a){this.options=p||{},this.keys=i,this.cacheTreshold=Number(this.options.cacheTreshold)||2097152,this.hashAlgo=this.options.hashAlgo||"sha256",this.cacheDir=this.options.cacheDir||!1,this.chunks=[],this.chunklen=0,this.readPos=0,this.cachePath=this.cacheDir?hx.join(this.cacheDir,"message."+Date.now()+"-"+sx.randomBytes(14).toString("hex")):!1,this.cache=!1,this.headers=!1,this.bodyHash=!1,this.parser=!1,this.relaxedBody=!1,this.input=x,this.output=a,this.output.usingCache=!1,this.hasErrored=!1,this.input.on("error",(m)=>{this.hasErrored=!0,this.cleanup(),a.emit("error",m)})}cleanup(){if(!this.cache||!this.cachePath)return;op.unlink(this.cachePath,()=>!1)}createReadCache(){this.cache=op.createReadStream(this.cachePath),this.cache.once("error",(p)=>{this.cleanup(),this.output.emit("error",p)}),this.cache.once("close",()=>{this.cleanup()}),this.cache.pipe(this.output)}sendNextChunk(){if(this.hasErrored)return;if(this.readPos>=this.chunks.length){if(!this.cache)return this.output.end();return this.createReadCache()}let p=this.chunks[this.readPos++];if(this.output.write(p)===!1)return this.output.once("drain",()=>{this.sendNextChunk()});setImmediate(()=>this.sendNextChunk())}sendSignedOutput(){let p=0,i=()=>{if(p>=this.keys.length)return this.output.write(this.parser.rawHeaders),setImmediate(()=>this.sendNextChunk());let x=this.keys[p++],a=ux(this.headers,this.hashAlgo,this.bodyHash,{domainName:x.domainName,keySelector:x.keySelector,privateKey:x.privateKey,headerFieldNames:this.options.headerFieldNames,skipFields:this.options.skipFields});if(a)this.output.write(Buffer.from(a+`\r
|
|
33
|
+
`));return setImmediate(i)};if(this.bodyHash&&this.headers)return i();this.output.write(this.parser.rawHeaders),this.sendNextChunk()}createWriteCache(){this.output.usingCache=!0,this.cache=op.createWriteStream(this.cachePath),this.cache.once("error",(p)=>{this.cleanup(),this.relaxedBody.unpipe(this.cache),this.relaxedBody.on("readable",()=>{while(this.relaxedBody.read()!==null);}),this.hasErrored=!0,this.output.emit("error",p)}),this.cache.once("close",()=>{this.sendSignedOutput()}),this.relaxedBody.removeAllListeners("readable"),this.relaxedBody.pipe(this.cache)}signStream(){this.parser=new Lx,this.relaxedBody=new yx({hashAlgo:this.hashAlgo}),this.parser.on("headers",(p)=>{this.headers=p}),this.relaxedBody.on("hash",(p)=>{this.bodyHash=p}),this.relaxedBody.on("readable",()=>{let p;if(this.cache)return;while((p=this.relaxedBody.read())!==null)if(this.chunks.push(p),this.chunklen+=p.length,this.chunklen>=this.cacheTreshold&&this.cachePath)return this.createWriteCache()}),this.relaxedBody.on("end",()=>{if(this.cache)return;this.sendSignedOutput()}),this.parser.pipe(this.relaxedBody),setImmediate(()=>this.input.pipe(this.parser))}}class Yi{constructor(p){this.options=p||{},this.keys=[].concat(this.options.keys||{domainName:p.domainName,keySelector:p.keySelector,privateKey:p.privateKey})}sign(p,i){let x=new lp,a=p,m=!1;if(Buffer.isBuffer(p))m=p,a=new lp;else if(typeof p==="string")m=Buffer.from(p),a=new lp;let v=this.options;if(i&&Object.keys(i).length)v=Object.assign({},i,this.options);let c=new Ai(v,this.keys,a,x);return setImmediate(()=>{if(c.signStream(),m)setImmediate(()=>{a.end(m)})}),x}}Wi.exports=Yi});var Si=t((Dv,Ki)=>{var Ji=n("net"),Mi=n("tls"),kx=n("url"),rx=_();function Vi(p,i,x,a){let m=kx.parse(p),v={host:m.hostname,port:Number(m.port)?Number(m.port):m.protocol==="https:"?443:80},c;if(m.protocol==="https:")v.rejectUnauthorized=!1,c=Mi.connect.bind(Mi);else c=Ji.connect.bind(Ji);let l,o=!1,d=(f)=>{if(o)return;o=!0;try{l.destroy()}catch(w){}a(f)},g=()=>{let f=Error("Proxy socket timed out");f.code="ETIMEDOUT",d(f)};l=c(v,()=>{if(o)return;let f={Host:x+":"+i,Connection:"close"};if(m.auth)f["Proxy-Authorization"]="Basic "+Buffer.from(m.auth).toString("base64");l.write("CONNECT "+x+":"+i+` HTTP/1.1\r
|
|
34
|
+
`+Object.keys(f).map((z)=>z+": "+f[z]).join(`\r
|
|
35
35
|
`)+`\r
|
|
36
36
|
\r
|
|
37
|
-
`);let w="",t=(n)=>{let q,M;if(o)return;if(w+=n.toString("binary"),q=w.match(/\r\n\r\n/)){if(c.removeListener("data",t),M=w.substr(q.index+q[0].length),w=w.substr(0,q.index),M)c.unshift(Buffer.from(M,"binary"));if(o=!0,q=w.match(/^HTTP\/\d+\.\d+ (\d+)/i),!q||(q[1]||"").charAt(0)!=="2"){try{c.destroy()}catch(hm){}let zp=Error("Invalid response from proxy"+(q&&": "+q[1]||""));return zp.code=yx.EPROXY,a(zp)}return c.removeListener("error",d),c.removeListener("timeout",g),c.setTimeout(0),a(null,c)}};c.on("data",t)}),c.setTimeout(Ji.timeout||30000),c.on("timeout",g),c.once("error",d)}Mi.exports=Ji});var Ei=j((Wv,Ui)=>{var Ki=Z(),ux=T(),S=F();class Si{constructor(p,i){this.mailer=p,this.data={},this.message=null,i=i||{};let x=p.options||{},a=p._defaults||{};Object.assign(this.data,i),this.data.headers=this.data.headers||{},Object.keys(a).forEach((m)=>{if(!(m in this.data))this.data[m]=a[m];else if(m==="headers")Object.keys(a.headers).forEach((v)=>{if(!(v in this.data.headers))this.data.headers[v]=a.headers[v]})}),["disableFileAccess","disableUrlAccess","normalizeHeaderKey"].forEach((m)=>{if(m in x)this.data[m]=x[m]})}resolveContent(...p){return Ki.resolveContent(...p)}resolveAll(p){let i=[[this.data,"html"],[this.data,"text"],[this.data,"watchHtml"],[this.data,"amp"],[this.data,"icalEvent"]];if(this.data.alternatives&&this.data.alternatives.length)this.data.alternatives.forEach((c,o)=>{i.push([this.data.alternatives,o])});if(this.data.attachments&&this.data.attachments.length)this.data.attachments.forEach((c,o)=>{if(!c.filename){if(c.filename=(c.path||c.href||"").split("/").pop().split("?").shift()||"attachment-"+(o+1),c.filename.indexOf(".")<0)c.filename+="."+S.detectExtension(c.contentType)}if(!c.contentType)c.contentType=S.detectMimeType(c.filename||c.path||c.href||"bin");i.push([this.data.attachments,o])});let x=new ux;["from","to","cc","bcc","sender","replyTo"].forEach((c)=>{let o;if(this.message)o=[].concat(x._parseAddresses(this.message.getHeader(c==="replyTo"?"reply-to":c))||[]);else if(this.data[c])o=[].concat(x._parseAddresses(this.data[c])||[]);if(o&&o.length)this.data[c]=o;else if(c in this.data)this.data[c]=null}),["from","sender"].forEach((c)=>{if(this.data[c])this.data[c]=this.data[c].shift()});let v=0,l=()=>{if(v>=i.length)return p(null,this.data);let c=i[v++];if(!c[0]||!c[0][c[1]])return l();Ki.resolveContent(...c,(o,d)=>{if(o)return p(o);let g={content:d};if(c[0][c[1]]&&typeof c[0][c[1]]==="object"&&!Buffer.isBuffer(c[0][c[1]]))Object.keys(c[0][c[1]]).forEach((f)=>{if(!(f in g)&&!["content","path","href","raw"].includes(f))g[f]=c[0][c[1]][f]});c[0][c[1]]=g,l()})};setImmediate(()=>l())}normalize(p){let i=this.data.envelope||this.message.getEnvelope(),x=this.message.messageId();this.resolveAll((a,m)=>{if(a)return p(a);if(m.envelope=i,m.messageId=x,["html","text","watchHtml","amp"].forEach((v)=>{if(m[v]&&m[v].content){if(typeof m[v].content==="string")m[v]=m[v].content;else if(Buffer.isBuffer(m[v].content))m[v]=m[v].content.toString()}}),m.icalEvent&&Buffer.isBuffer(m.icalEvent.content))m.icalEvent.content=m.icalEvent.content.toString("base64"),m.icalEvent.encoding="base64";if(m.alternatives&&m.alternatives.length)m.alternatives.forEach((v)=>{if(v&&v.content&&Buffer.isBuffer(v.content))v.content=v.content.toString("base64"),v.encoding="base64"});if(m.attachments&&m.attachments.length)m.attachments.forEach((v)=>{if(v&&v.content&&Buffer.isBuffer(v.content))v.content=v.content.toString("base64"),v.encoding="base64"});if(m.normalizedHeaders={},Object.keys(m.headers||{}).forEach((v)=>{let l=[].concat(m.headers[v]||[]).shift();if(l=l&&l.value||l,l){if(["references","in-reply-to","message-id","content-id"].includes(v))l=this.message._encodeHeaderValue(v,l);m.normalizedHeaders[v]=l}}),m.list&&typeof m.list==="object")this._getListHeaders(m.list).forEach((l)=>{m.normalizedHeaders[l.key]=l.value.map((c)=>c&&c.value||c).join(", ")});if(m.references)m.normalizedHeaders.references=this.message._encodeHeaderValue("references",m.references);if(m.inReplyTo)m.normalizedHeaders["in-reply-to"]=this.message._encodeHeaderValue("in-reply-to",m.inReplyTo);return p(null,m)})}setMailerHeader(){if(!this.message||!this.data.xMailer)return;this.message.setHeader("X-Mailer",this.data.xMailer)}setPriorityHeaders(){if(!this.message||!this.data.priority)return;switch((this.data.priority||"").toString().toLowerCase()){case"high":this.message.setHeader("X-Priority","1 (Highest)"),this.message.setHeader("X-MSMail-Priority","High"),this.message.setHeader("Importance","High");break;case"low":this.message.setHeader("X-Priority","5 (Lowest)"),this.message.setHeader("X-MSMail-Priority","Low"),this.message.setHeader("Importance","Low");break;default:}}setListHeaders(){if(!this.message||!this.data.list||typeof this.data.list!=="object")return;this._getListHeaders(this.data.list).forEach((p)=>{p.value.forEach((i)=>{this.message.addHeader(p.key,i)})})}_getListHeaders(p){return Object.keys(p).map((i)=>({key:"list-"+i.toLowerCase().trim(),value:[].concat(p[i]||[]).map((x)=>({prepared:!0,foldLines:!0,value:[].concat(x||[]).map((a)=>{if(typeof a==="string")a={url:a};if(a&&a.url){if(i.toLowerCase().trim()==="id"){let v=a.comment||"";if(S.isPlainText(v))v='"'+v+'"';else v=S.encodeWord(v);return(a.comment?v+" ":"")+this._formatListUrl(a.url).replace(/^<[^:]+\/{,2}/,"")}let m=a.comment||"";if(!S.isPlainText(m))m=S.encodeWord(m);return this._formatListUrl(a.url)+(a.comment?" ("+m+")":"")}return""}).filter((a)=>a).join(", ")}))}))}_formatListUrl(p){if(p=p.replace(/[\s<]+|[\s>]+/g,""),/^(https?|mailto|ftp):/.test(p))return"<"+p+">";if(/^[^@]+@[^@]+$/.test(p))return"<mailto:"+p+">";return"<http://"+p+">"}}Ui.exports=Si});var Ri=j((Xv,Ci)=>{var hx=z("events"),Hi=Z(),sx=u(),kx=gi(),Fi=Yi(),rx=Vi(),Ii=B(),ex=z("util"),pm=z("url"),op=$(),im=Ei(),am=z("net"),xm=z("dns"),mm=z("crypto");class Ni extends hx{constructor(p,i,x){super();if(this.options=i||{},this._defaults=x||{},this._defaultPlugins={compile:[(...a)=>this._convertDataImages(...a)],stream:[]},this._userPlugins={compile:[],stream:[]},this.meta=new Map,this.dkim=this.options.dkim?new Fi(this.options.dkim):!1,this.transporter=p,this.transporter.mailer=this,this.logger=Hi.getLogger(this.options,{component:this.options.component||"mail"}),this.logger.debug({tnx:"create"},"Creating transport: %s",this.getVersionString()),typeof this.transporter.on==="function")this.transporter.on("log",(a)=>{this.logger.debug({tnx:"transport"},"%s: %s",a.type,a.message)}),this.transporter.on("error",(a)=>{this.logger.error({err:a,tnx:"transport"},"Transport Error: %s",a.message),this.emit("error",a)}),this.transporter.on("idle",(...a)=>{this.emit("idle",...a)}),this.transporter.on("clear",(...a)=>{this.emit("clear",...a)});if(["close","isIdle","verify"].forEach((a)=>{this[a]=(...m)=>{if(typeof this.transporter[a]==="function"){if(a==="verify"&&typeof this.getSocket==="function")this.transporter.getSocket=this.getSocket,this.getSocket=!1;return this.transporter[a](...m)}return this.logger.warn({tnx:"transport",methodName:a},"Non existing method %s called for transport",a),!1}}),this.options.proxy&&typeof this.options.proxy==="string")this.setupProxy(this.options.proxy)}use(p,i){if(p=(p||"").toString(),!this._userPlugins.hasOwnProperty(p))this._userPlugins[p]=[i];else this._userPlugins[p].push(i);return this}sendMail(p,i=null){let x;if(!i)x=new Promise((m,v)=>{i=Hi.callbackPromise(m,v)});if(typeof this.getSocket==="function")this.transporter.getSocket=this.getSocket,this.getSocket=!1;let a=new im(this,p);return this.logger.debug({tnx:"transport",name:this.transporter.name,version:this.transporter.version,action:"send"},"Sending mail using %s/%s",this.transporter.name,this.transporter.version),this._processPlugins("compile",a,(m)=>{if(m)return this.logger.error({err:m,tnx:"plugin",action:"compile"},"PluginCompile Error: %s",m.message),i(m);a.message=new kx(a.data).compile(),a.setMailerHeader(),a.setPriorityHeaders(),a.setListHeaders(),this._processPlugins("stream",a,(v)=>{if(v)return this.logger.error({err:v,tnx:"plugin",action:"stream"},"PluginStream Error: %s",v.message),i(v);if(a.data.dkim||this.dkim)a.message.processFunc((l)=>{let c=a.data.dkim?new Fi(a.data.dkim):this.dkim;return this.logger.debug({tnx:"DKIM",messageId:a.message.messageId(),dkimDomains:c.keys.map((o)=>o.keySelector+"."+o.domainName).join(", ")},"Signing outgoing message with %s keys",c.keys.length),c.sign(l,a.data._dkim)});this.transporter.send(a,(...l)=>{if(l[0])this.logger.error({err:l[0],tnx:"transport",action:"send"},"Send Error: %s",l[0].message);i(...l)})})}),x}getVersionString(){return ex.format("%s (%s; +%s; %s/%s)",op.name,op.version,op.homepage,this.transporter.name,this.transporter.version)}_processPlugins(p,i,x){if(p=(p||"").toString(),!this._userPlugins.hasOwnProperty(p))return x();let a=this._userPlugins[p]||[],m=this._defaultPlugins[p]||[];if(a.length)this.logger.debug({tnx:"transaction",pluginCount:a.length,step:p},"Using %s plugins for %s",a.length,p);if(a.length+m.length===0)return x();let v=0,l="default",c=()=>{let o=l==="default"?m:a;if(v>=o.length)if(l==="default"&&a.length)l="user",v=0,o=a;else return x();let d=o[v++];d(i,(g)=>{if(g)return x(g);c()})};c()}setupProxy(p){let i=pm.parse(p);this.getSocket=(x,a)=>{let m=i.protocol.replace(/:$/,"").toLowerCase();if(this.meta.has("proxy_handler_"+m))return this.meta.get("proxy_handler_"+m)(i,x,a);switch(m){case"http":case"https":rx(i.href,x.port,x.host,(l,c)=>{if(l)return a(l);return a(null,{connection:c})});return;case"socks":case"socks5":case"socks4":case"socks4a":{if(!this.meta.has("proxy_socks_module")){let c=Error("Socks module not loaded");return c.code=Ii.EPROXY,a(c)}let l=(c)=>{let o=!!this.meta.get("proxy_socks_module").SocksClient,d=o?this.meta.get("proxy_socks_module").SocksClient:this.meta.get("proxy_socks_module"),g=Number(i.protocol.replace(/\D/g,""))||5,f={proxy:{ipaddress:c,port:Number(i.port),type:g},[o?"destination":"target"]:{host:x.host,port:x.port},command:"connect"};if(i.auth){let w=decodeURIComponent(i.auth.split(":").shift()),t=decodeURIComponent(i.auth.split(":").pop());if(o)f.proxy.userId=w,f.proxy.password=t;else if(g===4)f.userid=w;else f.authentication={username:w,password:t}}d.createConnection(f,(w,t)=>{if(w)return a(w);return a(null,{connection:t.socket||t})})};if(am.isIP(i.hostname))return l(i.hostname);return xm.resolve(i.hostname,(c,o)=>{if(c)return a(c);l(Array.isArray(o)?o[0]:o)})}}let v=Error("Unknown proxy configuration");v.code=Ii.EPROXY,a(v)}}_convertDataImages(p,i){if(!this.options.attachDataUrls&&!p.data.attachDataUrls||!p.data.html)return i();p.resolveContent(p.data,"html",(x,a)=>{if(x)return i(x);let m=0;a=(a||"").toString().replace(/(<img\b[^<>]{0,1024} src\s{0,20}=[\s"']{0,20})(data:([^;]+);[^"'>\s]+)/gi,(v,l,c,o)=>{let d=mm.randomBytes(10).toString("hex")+"@localhost";if(!p.data.attachments)p.data.attachments=[];if(!Array.isArray(p.data.attachments))p.data.attachments=[].concat(p.data.attachments||[]);return p.data.attachments.push({path:c,cid:d,filename:"image-"+ ++m+"."+sx.detectExtension(o)}),l+"cid:"+d}),p.data.html=a,i()})}set(p,i){return this.meta.set(p,i)}get(p){return this.meta.get(p)}}Ci.exports=Ni});var Oi=j((Jv,Di)=>{var{Transform:vm}=z("stream");class Ti extends vm{constructor(p){super(p);this.options=p||{},this.inByteCount=0,this.outByteCount=0,this.lastByte=!1}_transform(p,i,x){let a=[],m=0,v,l,c=0,o;if(!p||!p.length)return x();if(typeof p==="string")p=Buffer.from(p);this.inByteCount+=p.length;for(v=0,l=p.length;v<l;v++)if(p[v]===46){if(v&&p[v-1]===10||!v&&(!this.lastByte||this.lastByte===10))o=p.slice(c,v+1),a.push(o),a.push(Buffer.from(".")),m+=o.length+1,c=v+1}else if(p[v]===10){if(v&&p[v-1]!==13||!v&&this.lastByte!==13){if(v>c)o=p.slice(c,v),a.push(o),m+=o.length+2;else m+=2;a.push(Buffer.from(`\r
|
|
38
|
-
`)),
|
|
37
|
+
`);let w="",j=(z)=>{let q,M;if(o)return;if(w+=z.toString("binary"),q=w.match(/\r\n\r\n/)){if(l.removeListener("data",j),M=w.substr(q.index+q[0].length),w=w.substr(0,q.index),M)l.unshift(Buffer.from(M,"binary"));if(o=!0,q=w.match(/^HTTP\/\d+\.\d+ (\d+)/i),!q||(q[1]||"").charAt(0)!=="2"){try{l.destroy()}catch(gv){}let tp=Error("Invalid response from proxy"+(q&&": "+q[1]||""));return tp.code=rx.EPROXY,a(tp)}return l.removeListener("error",d),l.removeListener("timeout",g),l.setTimeout(0),a(null,l)}};l.on("data",j)}),l.setTimeout(Vi.timeout||30000),l.on("timeout",g),l.once("error",d)}Ki.exports=Vi});var Ei=t((Pv,Fi)=>{var Ui=Z(),ex=D(),S=E();class Hi{constructor(p,i){this.mailer=p,this.data={},this.message=null,i=i||{};let x=p.options||{},a=p._defaults||{};Object.assign(this.data,i),this.data.headers=this.data.headers||{},Object.keys(a).forEach((m)=>{if(!(m in this.data))this.data[m]=a[m];else if(m==="headers")Object.keys(a.headers).forEach((v)=>{if(!(v in this.data.headers))this.data.headers[v]=a.headers[v]})}),["disableFileAccess","disableUrlAccess","normalizeHeaderKey"].forEach((m)=>{if(m in x)this.data[m]=x[m]})}resolveContent(...p){return Ui.resolveContent(...p)}resolveAll(p){let i=[[this.data,"html"],[this.data,"text"],[this.data,"watchHtml"],[this.data,"amp"],[this.data,"icalEvent"]];if(this.data.alternatives&&this.data.alternatives.length)this.data.alternatives.forEach((l,o)=>{i.push([this.data.alternatives,o])});if(this.data.attachments&&this.data.attachments.length)this.data.attachments.forEach((l,o)=>{if(!l.filename){if(l.filename=(l.path||l.href||"").split("/").pop().split("?").shift()||"attachment-"+(o+1),l.filename.indexOf(".")<0)l.filename+="."+S.detectExtension(l.contentType)}if(!l.contentType)l.contentType=S.detectMimeType(l.filename||l.path||l.href||"bin");i.push([this.data.attachments,o])});let x=new ex;["from","to","cc","bcc","sender","replyTo"].forEach((l)=>{let o;if(this.message)o=[].concat(x._parseAddresses(this.message.getHeader(l==="replyTo"?"reply-to":l))||[]);else if(this.data[l])o=[].concat(x._parseAddresses(this.data[l])||[]);if(o&&o.length)this.data[l]=o;else if(l in this.data)this.data[l]=null}),["from","sender"].forEach((l)=>{if(this.data[l])this.data[l]=this.data[l].shift()});let v=0,c=()=>{if(v>=i.length)return p(null,this.data);let l=i[v++];if(!l[0]||!l[0][l[1]])return c();Ui.resolveContent(...l,(o,d)=>{if(o)return p(o);let g={content:d};if(l[0][l[1]]&&typeof l[0][l[1]]==="object"&&!Buffer.isBuffer(l[0][l[1]]))Object.keys(l[0][l[1]]).forEach((f)=>{if(!(f in g)&&!["content","path","href","raw"].includes(f))g[f]=l[0][l[1]][f]});l[0][l[1]]=g,c()})};setImmediate(()=>c())}normalize(p){let i=this.data.envelope||this.message.getEnvelope(),x=this.message.messageId();this.resolveAll((a,m)=>{if(a)return p(a);if(m.envelope=i,m.messageId=x,["html","text","watchHtml","amp"].forEach((v)=>{if(m[v]&&m[v].content){if(typeof m[v].content==="string")m[v]=m[v].content;else if(Buffer.isBuffer(m[v].content))m[v]=m[v].content.toString()}}),m.icalEvent&&Buffer.isBuffer(m.icalEvent.content))m.icalEvent.content=m.icalEvent.content.toString("base64"),m.icalEvent.encoding="base64";if(m.alternatives&&m.alternatives.length)m.alternatives.forEach((v)=>{if(v&&v.content&&Buffer.isBuffer(v.content))v.content=v.content.toString("base64"),v.encoding="base64"});if(m.attachments&&m.attachments.length)m.attachments.forEach((v)=>{if(v&&v.content&&Buffer.isBuffer(v.content))v.content=v.content.toString("base64"),v.encoding="base64"});if(m.normalizedHeaders={},Object.keys(m.headers||{}).forEach((v)=>{let c=[].concat(m.headers[v]||[]).shift();if(c=c&&c.value||c,c){if(["references","in-reply-to","message-id","content-id"].includes(v))c=this.message._encodeHeaderValue(v,c);m.normalizedHeaders[v]=c}}),m.list&&typeof m.list==="object")this._getListHeaders(m.list).forEach((c)=>{m.normalizedHeaders[c.key]=c.value.map((l)=>l&&l.value||l).join(", ")});if(m.references)m.normalizedHeaders.references=this.message._encodeHeaderValue("references",m.references);if(m.inReplyTo)m.normalizedHeaders["in-reply-to"]=this.message._encodeHeaderValue("in-reply-to",m.inReplyTo);return p(null,m)})}setMailerHeader(){if(!this.message||!this.data.xMailer)return;this.message.setHeader("X-Mailer",this.data.xMailer)}setPriorityHeaders(){if(!this.message||!this.data.priority)return;switch((this.data.priority||"").toString().toLowerCase()){case"high":this.message.setHeader("X-Priority","1 (Highest)"),this.message.setHeader("X-MSMail-Priority","High"),this.message.setHeader("Importance","High");break;case"low":this.message.setHeader("X-Priority","5 (Lowest)"),this.message.setHeader("X-MSMail-Priority","Low"),this.message.setHeader("Importance","Low");break;default:}}setListHeaders(){if(!this.message||!this.data.list||typeof this.data.list!=="object")return;this._getListHeaders(this.data.list).forEach((p)=>{p.value.forEach((i)=>{this.message.addHeader(p.key,i)})})}_getListHeaders(p){return Object.keys(p).map((i)=>({key:"list-"+i.toLowerCase().trim(),value:[].concat(p[i]||[]).map((x)=>({prepared:!0,foldLines:!0,value:[].concat(x||[]).map((a)=>{if(typeof a==="string")a={url:a};if(a&&a.url){if(i.toLowerCase().trim()==="id"){let v=a.comment||"";if(S.isPlainText(v))v='"'+v+'"';else v=S.encodeWord(v);return(a.comment?v+" ":"")+this._formatListUrl(a.url).replace(/^<[^:]+\/{,2}/,"")}let m=a.comment||"";if(!S.isPlainText(m))m=S.encodeWord(m);return this._formatListUrl(a.url)+(a.comment?" ("+m+")":"")}return""}).filter((a)=>a).join(", ")}))}))}_formatListUrl(p){if(p=p.replace(/[\s<]+|[\s>]+/g,""),/^(https?|mailto|ftp):/.test(p))return"<"+p+">";if(/^[^@]+@[^@]+$/.test(p))return"<mailto:"+p+">";return"<http://"+p+">"}}Fi.exports=Hi});var Di=t((Ov,Ti)=>{var pm=n("events"),Ii=Z(),im=h(),am=ni(),Ni=Xi(),xm=Si(),Ci=_(),mm=n("util"),vm=n("url"),dp=B(),cm=Ei(),lm=n("net"),om=n("dns"),dm=n("crypto");class Ri extends pm{constructor(p,i,x){super();if(this.options=i||{},this._defaults=x||{},this._defaultPlugins={compile:[(...a)=>this._convertDataImages(...a)],stream:[]},this._userPlugins={compile:[],stream:[]},this.meta=new Map,this.dkim=this.options.dkim?new Ni(this.options.dkim):!1,this.transporter=p,this.transporter.mailer=this,this.logger=Ii.getLogger(this.options,{component:this.options.component||"mail"}),this.logger.debug({tnx:"create"},"Creating transport: %s",this.getVersionString()),typeof this.transporter.on==="function")this.transporter.on("log",(a)=>{this.logger.debug({tnx:"transport"},"%s: %s",a.type,a.message)}),this.transporter.on("error",(a)=>{this.logger.error({err:a,tnx:"transport"},"Transport Error: %s",a.message),this.emit("error",a)}),this.transporter.on("idle",(...a)=>{this.emit("idle",...a)}),this.transporter.on("clear",(...a)=>{this.emit("clear",...a)});if(["close","isIdle","verify"].forEach((a)=>{this[a]=(...m)=>{if(typeof this.transporter[a]==="function"){if(a==="verify"&&typeof this.getSocket==="function")this.transporter.getSocket=this.getSocket,this.getSocket=!1;return this.transporter[a](...m)}return this.logger.warn({tnx:"transport",methodName:a},"Non existing method %s called for transport",a),!1}}),this.options.proxy&&typeof this.options.proxy==="string")this.setupProxy(this.options.proxy)}use(p,i){if(p=(p||"").toString(),!this._userPlugins.hasOwnProperty(p))this._userPlugins[p]=[i];else this._userPlugins[p].push(i);return this}sendMail(p,i=null){let x;if(!i)x=new Promise((m,v)=>{i=Ii.callbackPromise(m,v)});if(typeof this.getSocket==="function")this.transporter.getSocket=this.getSocket,this.getSocket=!1;let a=new cm(this,p);return this.logger.debug({tnx:"transport",name:this.transporter.name,version:this.transporter.version,action:"send"},"Sending mail using %s/%s",this.transporter.name,this.transporter.version),this._processPlugins("compile",a,(m)=>{if(m)return this.logger.error({err:m,tnx:"plugin",action:"compile"},"PluginCompile Error: %s",m.message),i(m);a.message=new am(a.data).compile(),a.setMailerHeader(),a.setPriorityHeaders(),a.setListHeaders(),this._processPlugins("stream",a,(v)=>{if(v)return this.logger.error({err:v,tnx:"plugin",action:"stream"},"PluginStream Error: %s",v.message),i(v);if(a.data.dkim||this.dkim)a.message.processFunc((c)=>{let l=a.data.dkim?new Ni(a.data.dkim):this.dkim;return this.logger.debug({tnx:"DKIM",messageId:a.message.messageId(),dkimDomains:l.keys.map((o)=>o.keySelector+"."+o.domainName).join(", ")},"Signing outgoing message with %s keys",l.keys.length),l.sign(c,a.data._dkim)});this.transporter.send(a,(...c)=>{if(c[0])this.logger.error({err:c[0],tnx:"transport",action:"send"},"Send Error: %s",c[0].message);i(...c)})})}),x}getVersionString(){return mm.format("%s (%s; +%s; %s/%s)",dp.name,dp.version,dp.homepage,this.transporter.name,this.transporter.version)}_processPlugins(p,i,x){if(p=(p||"").toString(),!this._userPlugins.hasOwnProperty(p))return x();let a=this._userPlugins[p]||[],m=this._defaultPlugins[p]||[];if(a.length)this.logger.debug({tnx:"transaction",pluginCount:a.length,step:p},"Using %s plugins for %s",a.length,p);if(a.length+m.length===0)return x();let v=0,c="default",l=()=>{let o=c==="default"?m:a;if(v>=o.length)if(c==="default"&&a.length)c="user",v=0,o=a;else return x();let d=o[v++];d(i,(g)=>{if(g)return x(g);l()})};l()}setupProxy(p){let i=vm.parse(p);this.getSocket=(x,a)=>{let m=i.protocol.replace(/:$/,"").toLowerCase();if(this.meta.has("proxy_handler_"+m))return this.meta.get("proxy_handler_"+m)(i,x,a);switch(m){case"http":case"https":xm(i.href,x.port,x.host,(c,l)=>{if(c)return a(c);return a(null,{connection:l})});return;case"socks":case"socks5":case"socks4":case"socks4a":{if(!this.meta.has("proxy_socks_module")){let l=Error("Socks module not loaded");return l.code=Ci.EPROXY,a(l)}let c=(l)=>{let o=!!this.meta.get("proxy_socks_module").SocksClient,d=o?this.meta.get("proxy_socks_module").SocksClient:this.meta.get("proxy_socks_module"),g=Number(i.protocol.replace(/\D/g,""))||5,f={proxy:{ipaddress:l,port:Number(i.port),type:g},[o?"destination":"target"]:{host:x.host,port:x.port},command:"connect"};if(i.auth){let w=decodeURIComponent(i.auth.split(":").shift()),j=decodeURIComponent(i.auth.split(":").pop());if(o)f.proxy.userId=w,f.proxy.password=j;else if(g===4)f.userid=w;else f.authentication={username:w,password:j}}d.createConnection(f,(w,j)=>{if(w)return a(w);return a(null,{connection:j.socket||j})})};if(lm.isIP(i.hostname))return c(i.hostname);return om.resolve(i.hostname,(l,o)=>{if(l)return a(l);c(Array.isArray(o)?o[0]:o)})}}let v=Error("Unknown proxy configuration");v.code=Ci.EPROXY,a(v)}}_convertDataImages(p,i){if(!this.options.attachDataUrls&&!p.data.attachDataUrls||!p.data.html)return i();p.resolveContent(p.data,"html",(x,a)=>{if(x)return i(x);let m=0;a=(a||"").toString().replace(/(<img\b[^<>]{0,1024} src\s{0,20}=[\s"']{0,20})(data:([^;]+);[^"'>\s]+)/gi,(v,c,l,o)=>{let d=dm.randomBytes(10).toString("hex")+"@localhost";if(!p.data.attachments)p.data.attachments=[];if(!Array.isArray(p.data.attachments))p.data.attachments=[].concat(p.data.attachments||[]);return p.data.attachments.push({path:l,cid:d,filename:"image-"+ ++m+"."+im.detectExtension(o)}),c+"cid:"+d}),p.data.html=a,i()})}set(p,i){return this.meta.set(p,i)}get(p){return this.meta.get(p)}}Ti.exports=Ri});var bi=t((bv,Oi)=>{var{Transform:fm}=n("stream");class Pi extends fm{constructor(p){super(p);this.options=p||{},this.inByteCount=0,this.outByteCount=0,this.lastByte=!1}_transform(p,i,x){let a=[],m=0,v,c,l=0,o;if(!p||!p.length)return x();if(typeof p==="string")p=Buffer.from(p);this.inByteCount+=p.length;for(v=0,c=p.length;v<c;v++)if(p[v]===46){if(v&&p[v-1]===10||!v&&(!this.lastByte||this.lastByte===10))o=p.slice(l,v+1),a.push(o),a.push(Buffer.from(".")),m+=o.length+1,l=v+1}else if(p[v]===10){if(v&&p[v-1]!==13||!v&&this.lastByte!==13){if(v>l)o=p.slice(l,v),a.push(o),m+=o.length+2;else m+=2;a.push(Buffer.from(`\r
|
|
38
|
+
`)),l=v+1}}if(m){if(l<p.length)o=p.slice(l),a.push(o),m+=o.length;this.outByteCount+=m,this.push(Buffer.concat(a,m))}else this.outByteCount+=p.length,this.push(p);this.lastByte=p[p.length-1],x()}_flush(p){let i;if(this.lastByte===10)i=Buffer.from(`.\r
|
|
39
39
|
`);else if(this.lastByte===13)i=Buffer.from(`
|
|
40
40
|
.\r
|
|
41
41
|
`);else i=Buffer.from(`\r
|
|
42
42
|
.\r
|
|
43
|
-
`);this.outByteCount+=i.length,this.push(i),p()}}Di.exports=Ti});var D=j((Mv,hi)=>{var lm=$(),{EventEmitter:cm}=z("events"),Pi=z("net"),bi=z("tls"),om=z("os"),Li=z("crypto"),dm=Oi(),{PassThrough:yi}=z("stream"),V=Z(),fm=()=>{};class ui extends cm{constructor(p){super(p);if(this.id=Li.randomBytes(8).toString("base64").replace(/\W/g,""),this.stage="init",this.options=p||{},this.secureConnection=!!this.options.secure,this.alreadySecured=!!this.options.secured,this.port=Number(this.options.port)||(this.secureConnection?465:587),this.host=this.options.host||"localhost",this.servername=this.options.servername?this.options.servername:!Pi.isIP(this.host)?this.host:!1,this.allowInternalNetworkInterfaces=this.options.allowInternalNetworkInterfaces||!1,typeof this.options.secure>"u"&&this.port===465)this.secureConnection=!0;this.name=this.options.name||this._getHostname(),this.logger=V.getLogger(this.options,{component:this.options.component||"smtp-connection",sid:this.id}),this.customAuth=new Map;for(let i of Object.keys(this.options.customAuth||{})){let x=(i||"").toString().trim().toUpperCase();if(x)this.customAuth.set(x,this.options.customAuth[i])}this.version=lm.version,this.authenticated=!1,this.destroyed=!1,this.secure=!!this.secureConnection,this._remainder="",this._responseQueue=[],this.lastServerResponse=!1,this._socket=!1,this._supportedAuth=[],this.allowsAuth=!1,this._envelope=!1,this._supportedExtensions=[],this._maxAllowedSize=0,this._responseActions=[],this._recipientQueue=[],this._greetingTimeout=!1,this._connectionTimeout=!1,this._destroyed=!1,this._closing=!1,this._onSocketData=(i)=>this._onData(i),this._onSocketError=(i)=>this._onError(i,"ESOCKET",!1,"CONN"),this._onSocketClose=()=>this._onClose(),this._onSocketEnd=()=>this._onEnd(),this._onSocketTimeout=()=>this._onTimeout(),this._onConnectionSocketError=(i)=>this._onConnectionError(i,"ESOCKET"),this._connectionAttemptId=0}connect(p){if(typeof p==="function"){this.once("connect",()=>{this.logger.debug({tnx:"smtp"},"SMTP handshake finished"),p()});let x=this._isDestroyedMessage("connect");if(x)return p(this._formatError(x,"ECONNECTION",!1,"CONN"))}let i={port:this.port,host:this.host,allowInternalNetworkInterfaces:this.allowInternalNetworkInterfaces,timeout:this.options.dnsTimeout||30000};if(this.options.localAddress)i.localAddress=this.options.localAddress;if(this.options.connection){if(this._socket=this.options.connection,this._setupConnectionHandlers(),this.secureConnection&&!this.alreadySecured)setImmediate(()=>this._upgradeConnection((x)=>{if(x){this._onError(Error("Error initiating TLS - "+(x.message||x)),"ETLS",!1,"CONN");return}this._onConnect()}));else setImmediate(()=>this._onConnect());return}else if(this.options.socket)return this._socket=this.options.socket,this._resolveAndConnect(i,(x)=>{try{this._socket.connect(this.port,this.host,()=>{this._socket.setKeepAlive(!0),this._onConnect()}),this._setupConnectionHandlers()}catch(a){return setImmediate(()=>this._onError(a,"ECONNECTION",!1,"CONN"))}});else{if(this.secureConnection){if(Object.assign(i,this.options.tls||{}),this.servername&&!i.servername)i.servername=this.servername}return this._resolveAndConnect(i,(x)=>{this._fallbackAddresses=(x._addresses||[]).filter((a)=>a!==i.host),this._connectOpts=Object.assign({},i),this._connectToHost(i,this.secureConnection)})}}_resolveAndConnect(p,i){return V.resolveHostname(p,(x,a)=>{if(x)return setImmediate(()=>this._onError(x,"EDNS",!1,"CONN"));this.logger.debug({tnx:"dns",source:p.host,resolved:a.host,cached:!!a.cached},"Resolved %s as %s [cache %s]",p.host,a.host,a.cached?"hit":"miss");for(let m of Object.keys(a))if(m.charAt(0)!=="_"&&a[m])p[m]=a[m];i(a)})}_connectToHost(p,i){this._connectionAttemptId++;let x=this._connectionAttemptId,a=i?bi.connect:Pi.connect;try{this._socket=a(p,()=>{if(this._connectionAttemptId!==x)return;this._socket.setKeepAlive(!0),this._onConnect()}),this._setupConnectionHandlers()}catch(m){return setImmediate(()=>this._onError(m,"ECONNECTION",!1,"CONN"))}}_setupConnectionHandlers(){this._connectionTimeout=setTimeout(()=>{this._onConnectionError("Connection timeout","ETIMEDOUT")},this.options.connectionTimeout||120000),this._socket.on("error",this._onConnectionSocketError)}_onConnectionError(p,i){if(clearTimeout(this._connectionTimeout),!(this._fallbackAddresses&&this._fallbackAddresses.length&&this.stage==="init"&&!this._destroyed)){this._onError(p,i,!1,"CONN");return}let a=this._fallbackAddresses.shift();if(this.logger.info({tnx:"network",failedHost:this._connectOpts.host,nextHost:a,error:p.message||p},"Connection to %s failed, trying %s",this._connectOpts.host,a),this._socket){try{this._socket.removeListener("error",this._onConnectionSocketError),this._socket.destroy()}catch(m){}this._socket=null}this._connectOpts.host=a,this._connectToHost(this._connectOpts,this.secureConnection)}quit(){this._sendCommand("QUIT"),this._responseActions.push(this.close)}close(){if(clearTimeout(this._connectionTimeout),clearTimeout(this._greetingTimeout),this._responseActions=[],this._closing)return;this._closing=!0;let p=this.stage==="init"?"destroy":"end";this.logger.debug({tnx:"smtp"},'Closing connection to the server using "%s"',p);let i=this._socket&&this._socket.socket||this._socket;if(i&&!i.destroyed)try{i.setTimeout(0),i.removeListener("data",this._onSocketData),i.removeListener("timeout",this._onSocketTimeout),i.removeListener("close",this._onSocketClose),i.removeListener("end",this._onSocketEnd),i.removeListener("error",this._onSocketError),i.removeListener("error",this._onConnectionSocketError),i.on("error",fm),i[p]()}catch(x){}this._destroy()}login(p,i){let x=this._isDestroyedMessage("login");if(x)return i(this._formatError(x,"ECONNECTION",!1,"API"));if(this._auth=p||{},this._authMethod=(this._auth.method||"").toString().trim().toUpperCase()||!1,!this._authMethod&&this._auth.oauth2&&!this._auth.credentials)this._authMethod="XOAUTH2";else if(!this._authMethod||this._authMethod==="XOAUTH2"&&!this._auth.oauth2)this._authMethod=(this._supportedAuth[0]||"PLAIN").toUpperCase().trim();if(this._authMethod!=="XOAUTH2"&&(!this._auth.credentials||!this._auth.credentials.user||!this._auth.credentials.pass))if(this._auth.user&&this._auth.pass||this.customAuth.has(this._authMethod))this._auth.credentials={user:this._auth.user,pass:this._auth.pass,options:this._auth.options};else return i(this._formatError('Missing credentials for "'+this._authMethod+'"',"EAUTH",!1,"API"));if(this.customAuth.has(this._authMethod)){let a=this.customAuth.get(this._authMethod),m,v=!1,l=()=>{if(v)return;v=!0,this.logger.info({tnx:"smtp",username:this._auth.user,action:"authenticated",method:this._authMethod},"User %s authenticated",JSON.stringify(this._auth.user)),this.authenticated=!0,i(null,!0)},c=(d)=>{if(v)return;v=!0,i(this._formatError(d,"EAUTH",m,"AUTH "+this._authMethod))},o=a({auth:this._auth,method:this._authMethod,extensions:[].concat(this._supportedExtensions),authMethods:[].concat(this._supportedAuth),maxAllowedSize:this._maxAllowedSize||!1,sendCommand:(d,g)=>{let f;if(!g)f=new Promise((w,t)=>{g=V.callbackPromise(w,t)});return this._responseActions.push((w)=>{m=w;let t=w.match(/^(\d+)(?:\s(\d+\.\d+\.\d+))?\s/),n={command:d,response:w};if(t){if(n.status=Number(t[1])||0,t[2])n.code=t[2];n.text=w.substr(t[0].length)}else n.text=w,n.status=0;g(null,n)}),setImmediate(()=>this._sendCommand(d)),f},resolve:l,reject:c});if(o&&typeof o.catch==="function")o.then(l).catch(c);return}switch(this._authMethod){case"XOAUTH2":this._handleXOauth2Token(!1,i);return;case"LOGIN":this._responseActions.push((a)=>{this._actionAUTH_LOGIN_USER(a,i)}),this._sendCommand("AUTH LOGIN");return;case"PLAIN":this._responseActions.push((a)=>{this._actionAUTHComplete(a,i)}),this._sendCommand("AUTH PLAIN "+Buffer.from("\x00"+this._auth.credentials.user+"\x00"+this._auth.credentials.pass,"utf-8").toString("base64"),"AUTH PLAIN "+Buffer.from("\x00"+this._auth.credentials.user+"\x00/* secret */","utf-8").toString("base64"));return;case"CRAM-MD5":this._responseActions.push((a)=>{this._actionAUTH_CRAM_MD5(a,i)}),this._sendCommand("AUTH CRAM-MD5");return}return i(this._formatError('Unknown authentication method "'+this._authMethod+'"',"EAUTH",!1,"API"))}send(p,i,x){if(!i)return x(this._formatError("Empty message","EMESSAGE",!1,"API"));let a=this._isDestroyedMessage("send message");if(a)return x(this._formatError(a,"ECONNECTION",!1,"API"));if(this._maxAllowedSize&&p.size>this._maxAllowedSize)return setImmediate(()=>{x(this._formatError("Message size larger than allowed "+this._maxAllowedSize,"EMESSAGE",!1,"MAIL FROM"))});let m=!1,v=function(){if(m)return;m=!0,x(...arguments)};if(typeof i.on==="function")i.on("error",(c)=>v(this._formatError(c,"ESTREAM",!1,"API")));let l=Date.now();this._setEnvelope(p,(c,o)=>{if(c){let f=new yi;if(typeof i.pipe==="function")i.pipe(f);else f.write(i),f.end();return v(c)}let d=Date.now(),g=this._createSendStream((f,w)=>{if(f)return v(f);return o.envelopeTime=d-l,o.messageTime=Date.now()-d,o.messageSize=g.outByteCount,o.response=w,v(null,o)});if(typeof i.pipe==="function")i.pipe(g);else g.write(i),g.end()})}reset(p){this._sendCommand("RSET"),this._responseActions.push((i)=>{if(i.charAt(0)!=="2")return p(this._formatError("Could not reset session state. response="+i,"EPROTOCOL",i,"RSET"));return this._envelope=!1,p(null,!0)})}_onConnect(){if(clearTimeout(this._connectionTimeout),this.logger.info({tnx:"network",localAddress:this._socket.localAddress,localPort:this._socket.localPort,remoteAddress:this._socket.remoteAddress,remotePort:this._socket.remotePort},"%s established to %s:%s",this.secure?"Secure connection":"Connection",this._socket.remoteAddress,this._socket.remotePort),this._destroyed){this.close();return}this.stage="connected",this._socket.removeListener("data",this._onSocketData),this._socket.removeListener("timeout",this._onSocketTimeout),this._socket.removeListener("close",this._onSocketClose),this._socket.removeListener("end",this._onSocketEnd),this._socket.removeListener("error",this._onConnectionSocketError),this._socket.on("error",this._onSocketError),this._socket.on("data",this._onSocketData),this._socket.once("close",this._onSocketClose),this._socket.once("end",this._onSocketEnd),this._socket.setTimeout(this.options.socketTimeout||600000),this._socket.on("timeout",this._onSocketTimeout),this._greetingTimeout=setTimeout(()=>{if(this._socket&&!this._destroyed&&this._responseActions[0]===this._actionGreeting)this._onError("Greeting never received","ETIMEDOUT",!1,"CONN")},this.options.greetingTimeout||30000),this._responseActions.push(this._actionGreeting),this._socket.resume()}_onData(p){if(this._destroyed||!p||!p.length)return;let i=(p||"").toString("binary"),x=(this._remainder+i).split(/\r?\n/),a;this._remainder=x.pop();for(let m=0,v=x.length;m<v;m++){if(this._responseQueue.length){if(a=this._responseQueue[this._responseQueue.length-1],/^\d+-/.test(a.split(`
|
|
43
|
+
`);this.outByteCount+=i.length,this.push(i),p()}}Oi.exports=Pi});var P=t((Lv,ki)=>{var wm=B(),{EventEmitter:gm}=n("events"),Li=n("net"),yi=n("tls"),zm=n("os"),ui=n("crypto"),nm=bi(),{PassThrough:hi}=n("stream"),V=Z(),jm=()=>{};class si extends gm{constructor(p){super(p);if(this.id=ui.randomBytes(8).toString("base64").replace(/\W/g,""),this.stage="init",this.options=p||{},this.secureConnection=!!this.options.secure,this.alreadySecured=!!this.options.secured,this.port=Number(this.options.port)||(this.secureConnection?465:587),this.host=this.options.host||"localhost",this.servername=this.options.servername?this.options.servername:!Li.isIP(this.host)?this.host:!1,this.allowInternalNetworkInterfaces=this.options.allowInternalNetworkInterfaces||!1,typeof this.options.secure>"u"&&this.port===465)this.secureConnection=!0;this.name=this.options.name||this._getHostname(),this.logger=V.getLogger(this.options,{component:this.options.component||"smtp-connection",sid:this.id}),this.customAuth=new Map;for(let i of Object.keys(this.options.customAuth||{})){let x=(i||"").toString().trim().toUpperCase();if(x)this.customAuth.set(x,this.options.customAuth[i])}this.version=wm.version,this.authenticated=!1,this.destroyed=!1,this.secure=!!this.secureConnection,this._remainder="",this._responseQueue=[],this.lastServerResponse=!1,this._socket=!1,this._supportedAuth=[],this.allowsAuth=!1,this._envelope=!1,this._supportedExtensions=[],this._maxAllowedSize=0,this._responseActions=[],this._recipientQueue=[],this._greetingTimeout=!1,this._connectionTimeout=!1,this._destroyed=!1,this._closing=!1,this._onSocketData=(i)=>this._onData(i),this._onSocketError=(i)=>this._onError(i,"ESOCKET",!1,"CONN"),this._onSocketClose=()=>this._onClose(),this._onSocketEnd=()=>this._onEnd(),this._onSocketTimeout=()=>this._onTimeout(),this._onConnectionSocketError=(i)=>this._onConnectionError(i,"ESOCKET"),this._connectionAttemptId=0}connect(p){if(typeof p==="function"){this.once("connect",()=>{this.logger.debug({tnx:"smtp"},"SMTP handshake finished"),p()});let x=this._isDestroyedMessage("connect");if(x)return p(this._formatError(x,"ECONNECTION",!1,"CONN"))}let i={port:this.port,host:this.host,allowInternalNetworkInterfaces:this.allowInternalNetworkInterfaces,timeout:this.options.dnsTimeout||30000};if(this.options.localAddress)i.localAddress=this.options.localAddress;if(this.options.connection){if(this._socket=this.options.connection,this._setupConnectionHandlers(),this.secureConnection&&!this.alreadySecured)setImmediate(()=>this._upgradeConnection((x)=>{if(x){this._onError(Error("Error initiating TLS - "+(x.message||x)),"ETLS",!1,"CONN");return}this._onConnect()}));else setImmediate(()=>this._onConnect());return}else if(this.options.socket)return this._socket=this.options.socket,this._resolveAndConnect(i,(x)=>{try{this._socket.connect(this.port,this.host,()=>{this._socket.setKeepAlive(!0),this._onConnect()}),this._setupConnectionHandlers()}catch(a){return setImmediate(()=>this._onError(a,"ECONNECTION",!1,"CONN"))}});else{if(this.secureConnection){if(Object.assign(i,this.options.tls||{}),this.servername&&!i.servername)i.servername=this.servername}return this._resolveAndConnect(i,(x)=>{this._fallbackAddresses=(x._addresses||[]).filter((a)=>a!==i.host),this._connectOpts=Object.assign({},i),this._connectToHost(i,this.secureConnection)})}}_resolveAndConnect(p,i){return V.resolveHostname(p,(x,a)=>{if(x)return setImmediate(()=>this._onError(x,"EDNS",!1,"CONN"));this.logger.debug({tnx:"dns",source:p.host,resolved:a.host,cached:!!a.cached},"Resolved %s as %s [cache %s]",p.host,a.host,a.cached?"hit":"miss");for(let m of Object.keys(a))if(m.charAt(0)!=="_"&&a[m])p[m]=a[m];i(a)})}_connectToHost(p,i){this._connectionAttemptId++;let x=this._connectionAttemptId,a=i?yi.connect:Li.connect;try{this._socket=a(p,()=>{if(this._connectionAttemptId!==x)return;this._socket.setKeepAlive(!0),this._onConnect()}),this._setupConnectionHandlers()}catch(m){return setImmediate(()=>this._onError(m,"ECONNECTION",!1,"CONN"))}}_setupConnectionHandlers(){this._connectionTimeout=setTimeout(()=>{this._onConnectionError("Connection timeout","ETIMEDOUT")},this.options.connectionTimeout||120000),this._socket.on("error",this._onConnectionSocketError)}_onConnectionError(p,i){if(clearTimeout(this._connectionTimeout),!(this._fallbackAddresses&&this._fallbackAddresses.length&&this.stage==="init"&&!this._destroyed)){this._onError(p,i,!1,"CONN");return}let a=this._fallbackAddresses.shift();if(this.logger.info({tnx:"network",failedHost:this._connectOpts.host,nextHost:a,error:p.message||p},"Connection to %s failed, trying %s",this._connectOpts.host,a),this._socket){try{this._socket.removeListener("error",this._onConnectionSocketError),this._socket.destroy()}catch(m){}this._socket=null}this._connectOpts.host=a,this._connectToHost(this._connectOpts,this.secureConnection)}quit(){this._sendCommand("QUIT"),this._responseActions.push(this.close)}close(){if(clearTimeout(this._connectionTimeout),clearTimeout(this._greetingTimeout),this._responseActions=[],this._closing)return;this._closing=!0;let p=this.stage==="init"?"destroy":"end";this.logger.debug({tnx:"smtp"},'Closing connection to the server using "%s"',p);let i=this._socket&&this._socket.socket||this._socket;if(i&&!i.destroyed)try{i.setTimeout(0),i.removeListener("data",this._onSocketData),i.removeListener("timeout",this._onSocketTimeout),i.removeListener("close",this._onSocketClose),i.removeListener("end",this._onSocketEnd),i.removeListener("error",this._onSocketError),i.removeListener("error",this._onConnectionSocketError),i.on("error",jm),i[p]()}catch(x){}this._destroy()}login(p,i){let x=this._isDestroyedMessage("login");if(x)return i(this._formatError(x,"ECONNECTION",!1,"API"));if(this._auth=p||{},this._authMethod=(this._auth.method||"").toString().trim().toUpperCase()||!1,!this._authMethod&&this._auth.oauth2&&!this._auth.credentials)this._authMethod="XOAUTH2";else if(!this._authMethod||this._authMethod==="XOAUTH2"&&!this._auth.oauth2)this._authMethod=(this._supportedAuth[0]||"PLAIN").toUpperCase().trim();if(this._authMethod!=="XOAUTH2"&&(!this._auth.credentials||!this._auth.credentials.user||!this._auth.credentials.pass))if(this._auth.user&&this._auth.pass||this.customAuth.has(this._authMethod))this._auth.credentials={user:this._auth.user,pass:this._auth.pass,options:this._auth.options};else return i(this._formatError('Missing credentials for "'+this._authMethod+'"',"EAUTH",!1,"API"));if(this.customAuth.has(this._authMethod)){let a=this.customAuth.get(this._authMethod),m,v=!1,c=()=>{if(v)return;v=!0,this.logger.info({tnx:"smtp",username:this._auth.user,action:"authenticated",method:this._authMethod},"User %s authenticated",JSON.stringify(this._auth.user)),this.authenticated=!0,i(null,!0)},l=(d)=>{if(v)return;v=!0,i(this._formatError(d,"EAUTH",m,"AUTH "+this._authMethod))},o=a({auth:this._auth,method:this._authMethod,extensions:[].concat(this._supportedExtensions),authMethods:[].concat(this._supportedAuth),maxAllowedSize:this._maxAllowedSize||!1,sendCommand:(d,g)=>{let f;if(!g)f=new Promise((w,j)=>{g=V.callbackPromise(w,j)});return this._responseActions.push((w)=>{m=w;let j=w.match(/^(\d+)(?:\s(\d+\.\d+\.\d+))?\s/),z={command:d,response:w};if(j){if(z.status=Number(j[1])||0,j[2])z.code=j[2];z.text=w.substr(j[0].length)}else z.text=w,z.status=0;g(null,z)}),setImmediate(()=>this._sendCommand(d)),f},resolve:c,reject:l});if(o&&typeof o.catch==="function")o.then(c).catch(l);return}switch(this._authMethod){case"XOAUTH2":this._handleXOauth2Token(!1,i);return;case"LOGIN":this._responseActions.push((a)=>{this._actionAUTH_LOGIN_USER(a,i)}),this._sendCommand("AUTH LOGIN");return;case"PLAIN":this._responseActions.push((a)=>{this._actionAUTHComplete(a,i)}),this._sendCommand("AUTH PLAIN "+Buffer.from("\x00"+this._auth.credentials.user+"\x00"+this._auth.credentials.pass,"utf-8").toString("base64"),"AUTH PLAIN "+Buffer.from("\x00"+this._auth.credentials.user+"\x00/* secret */","utf-8").toString("base64"));return;case"CRAM-MD5":this._responseActions.push((a)=>{this._actionAUTH_CRAM_MD5(a,i)}),this._sendCommand("AUTH CRAM-MD5");return}return i(this._formatError('Unknown authentication method "'+this._authMethod+'"',"EAUTH",!1,"API"))}send(p,i,x){if(!i)return x(this._formatError("Empty message","EMESSAGE",!1,"API"));let a=this._isDestroyedMessage("send message");if(a)return x(this._formatError(a,"ECONNECTION",!1,"API"));if(this._maxAllowedSize&&p.size>this._maxAllowedSize)return setImmediate(()=>{x(this._formatError("Message size larger than allowed "+this._maxAllowedSize,"EMESSAGE",!1,"MAIL FROM"))});let m=!1,v=function(){if(m)return;m=!0,x(...arguments)};if(typeof i.on==="function")i.on("error",(l)=>v(this._formatError(l,"ESTREAM",!1,"API")));let c=Date.now();this._setEnvelope(p,(l,o)=>{if(l){let f=new hi;if(typeof i.pipe==="function")i.pipe(f);else f.write(i),f.end();return v(l)}let d=Date.now(),g=this._createSendStream((f,w)=>{if(f)return v(f);return o.envelopeTime=d-c,o.messageTime=Date.now()-d,o.messageSize=g.outByteCount,o.response=w,v(null,o)});if(typeof i.pipe==="function")i.pipe(g);else g.write(i),g.end()})}reset(p){this._sendCommand("RSET"),this._responseActions.push((i)=>{if(i.charAt(0)!=="2")return p(this._formatError("Could not reset session state. response="+i,"EPROTOCOL",i,"RSET"));return this._envelope=!1,p(null,!0)})}_onConnect(){if(clearTimeout(this._connectionTimeout),this.logger.info({tnx:"network",localAddress:this._socket.localAddress,localPort:this._socket.localPort,remoteAddress:this._socket.remoteAddress,remotePort:this._socket.remotePort},"%s established to %s:%s",this.secure?"Secure connection":"Connection",this._socket.remoteAddress,this._socket.remotePort),this._destroyed){this.close();return}this.stage="connected",this._socket.removeListener("data",this._onSocketData),this._socket.removeListener("timeout",this._onSocketTimeout),this._socket.removeListener("close",this._onSocketClose),this._socket.removeListener("end",this._onSocketEnd),this._socket.removeListener("error",this._onConnectionSocketError),this._socket.on("error",this._onSocketError),this._socket.on("data",this._onSocketData),this._socket.once("close",this._onSocketClose),this._socket.once("end",this._onSocketEnd),this._socket.setTimeout(this.options.socketTimeout||600000),this._socket.on("timeout",this._onSocketTimeout),this._greetingTimeout=setTimeout(()=>{if(this._socket&&!this._destroyed&&this._responseActions[0]===this._actionGreeting)this._onError("Greeting never received","ETIMEDOUT",!1,"CONN")},this.options.greetingTimeout||30000),this._responseActions.push(this._actionGreeting),this._socket.resume()}_onData(p){if(this._destroyed||!p||!p.length)return;let i=(p||"").toString("binary"),x=(this._remainder+i).split(/\r?\n/),a;this._remainder=x.pop();for(let m=0,v=x.length;m<v;m++){if(this._responseQueue.length){if(a=this._responseQueue[this._responseQueue.length-1],/^\d+-/.test(a.split(`
|
|
44
44
|
`).pop())){this._responseQueue[this._responseQueue.length-1]+=`
|
|
45
45
|
`+x[m];continue}}this._responseQueue.push(x[m])}if(this._responseQueue.length){if(a=this._responseQueue[this._responseQueue.length-1],/^\d+-/.test(a.split(`
|
|
46
|
-
`).pop()))return}this._processResponse()}_onError(p,i,x,a){if(clearTimeout(this._connectionTimeout),clearTimeout(this._greetingTimeout),this._destroyed)return;if(p=this._formatError(p,i,x,a),["ETIMEDOUT","ESOCKET","ECONNECTION"].includes(p.code))this.logger.warn(x,p.message);else this.logger.error(x,p.message);this.emit("error",p),this.close()}_formatError(p,i,x,a){let m;if(/Error\]$/i.test(Object.prototype.toString.call(p)))m=p;else m=Error(p);if(i&&i!=="Error")m.code=i;if(x)m.response=x,m.message+=": "+x;let v=typeof x==="string"&&Number((x.match(/^\d+/)||[])[0])||!1;if(v)m.responseCode=v;if(a)m.command=a;return m}_onClose(){let p=!1;if(this._remainder&&this._remainder.trim()){if(this.options.debug||this.options.transactionLog)this.logger.debug({tnx:"server"},this._remainder.replace(/\r?\n$/,""));this.lastServerResponse=p=this._remainder.trim()}if(this.logger.info({tnx:"network"},"Connection closed"),this.upgrading&&!this._destroyed)return this._onError(Error("Connection closed unexpectedly"),"ETLS",p,"CONN");else if(![this._actionGreeting,this.close].includes(this._responseActions[0])&&!this._destroyed)return this._onError(Error("Connection closed unexpectedly"),"ECONNECTION",p,"CONN");else if(/^[45]\d{2}\b/.test(p))return this._onError(Error("Connection closed unexpectedly"),"ECONNECTION",p,"CONN");this._destroy()}_onEnd(){if(this._socket&&!this._socket.destroyed)this._socket.destroy()}_onTimeout(){return this._onError(Error("Timeout"),"ETIMEDOUT",!1,"CONN")}_destroy(){if(this._destroyed)return;this._destroyed=!0,this.emit("end")}_upgradeConnection(p){this._socket.removeListener("data",this._onSocketData),this._socket.removeListener("timeout",this._onSocketTimeout);let i=this._socket,x=Object.assign({socket:this._socket,host:this.host},this.options.tls||{});if(this.servername&&!x.servername)x.servername=this.servername;this.upgrading=!0;try{this._socket=
|
|
46
|
+
`).pop()))return}this._processResponse()}_onError(p,i,x,a){if(clearTimeout(this._connectionTimeout),clearTimeout(this._greetingTimeout),this._destroyed)return;if(p=this._formatError(p,i,x,a),["ETIMEDOUT","ESOCKET","ECONNECTION"].includes(p.code))this.logger.warn(x,p.message);else this.logger.error(x,p.message);this.emit("error",p),this.close()}_formatError(p,i,x,a){let m;if(/Error\]$/i.test(Object.prototype.toString.call(p)))m=p;else m=Error(p);if(i&&i!=="Error")m.code=i;if(x)m.response=x,m.message+=": "+x;let v=typeof x==="string"&&Number((x.match(/^\d+/)||[])[0])||!1;if(v)m.responseCode=v;if(a)m.command=a;return m}_onClose(){let p=!1;if(this._remainder&&this._remainder.trim()){if(this.options.debug||this.options.transactionLog)this.logger.debug({tnx:"server"},this._remainder.replace(/\r?\n$/,""));this.lastServerResponse=p=this._remainder.trim()}if(this.logger.info({tnx:"network"},"Connection closed"),this.upgrading&&!this._destroyed)return this._onError(Error("Connection closed unexpectedly"),"ETLS",p,"CONN");else if(![this._actionGreeting,this.close].includes(this._responseActions[0])&&!this._destroyed)return this._onError(Error("Connection closed unexpectedly"),"ECONNECTION",p,"CONN");else if(/^[45]\d{2}\b/.test(p))return this._onError(Error("Connection closed unexpectedly"),"ECONNECTION",p,"CONN");this._destroy()}_onEnd(){if(this._socket&&!this._socket.destroyed)this._socket.destroy()}_onTimeout(){return this._onError(Error("Timeout"),"ETIMEDOUT",!1,"CONN")}_destroy(){if(this._destroyed)return;this._destroyed=!0,this.emit("end")}_upgradeConnection(p){this._socket.removeListener("data",this._onSocketData),this._socket.removeListener("timeout",this._onSocketTimeout);let i=this._socket,x=Object.assign({socket:this._socket,host:this.host},this.options.tls||{});if(this.servername&&!x.servername)x.servername=this.servername;this.upgrading=!0;try{this._socket=yi.connect(x,()=>{return this.secure=!0,this.upgrading=!1,this._socket.on("data",this._onSocketData),i.removeListener("close",this._onSocketClose),i.removeListener("end",this._onSocketEnd),i.removeListener("error",this._onSocketError),p(null,!0)})}catch(a){return p(a)}this._socket.on("error",this._onSocketError),this._socket.once("close",this._onSocketClose),this._socket.once("end",this._onSocketEnd),this._socket.setTimeout(this.options.socketTimeout||600000),this._socket.on("timeout",this._onSocketTimeout),i.resume()}_processResponse(){if(!this._responseQueue.length)return!1;let p=this.lastServerResponse=(this._responseQueue.shift()||"").toString();if(/^\d+-/.test(p.split(`
|
|
47
47
|
`).pop()))return;if(this.options.debug||this.options.transactionLog)this.logger.debug({tnx:"server"},p.replace(/\r?\n$/,""));if(!p.trim())setImmediate(()=>this._processResponse());let i=this._responseActions.shift();if(typeof i==="function")i.call(this,p),setImmediate(()=>this._processResponse());else return this._onError(Error("Unexpected Response"),"EPROTOCOL",p,"CONN")}_sendCommand(p,i){if(this._destroyed)return;if(this._socket.destroyed)return this.close();if(this.options.debug||this.options.transactionLog)this.logger.debug({tnx:"client"},(i||p||"").toString().replace(/\r?\n$/,""));this._socket.write(Buffer.from(p+`\r
|
|
48
|
-
`,"utf-8"))}_setEnvelope(p,i){let x=[],a=!1;if(this._envelope=p||{},this._envelope.from=(this._envelope.from&&this._envelope.from.address||this._envelope.from||"").toString().trim(),this._envelope.to=[].concat(this._envelope.to||[]).map((m)=>(m&&m.address||m||"").toString().trim()),!this._envelope.to.length)return i(this._formatError("No recipients defined","EENVELOPE",!1,"API"));if(this._envelope.from&&/[\r\n<>]/.test(this._envelope.from))return i(this._formatError("Invalid sender "+JSON.stringify(this._envelope.from),"EENVELOPE",!1,"API"));if(/[\x80-\uFFFF]/.test(this._envelope.from))a=!0;for(let m=0,v=this._envelope.to.length;m<v;m++){if(!this._envelope.to[m]||/[\r\n<>]/.test(this._envelope.to[m]))return i(this._formatError("Invalid recipient "+JSON.stringify(this._envelope.to[m]),"EENVELOPE",!1,"API"));if(/[\x80-\uFFFF]/.test(this._envelope.to[m]))a=!0}if(this._envelope.rcptQueue=[].concat(this._envelope.to||[]),this._envelope.rejected=[],this._envelope.rejectedErrors=[],this._envelope.accepted=[],this._envelope.dsn)try{this._envelope.dsn=this._setDsnEnvelope(this._envelope.dsn)}catch(m){return i(this._formatError("Invalid DSN "+m.message,"EENVELOPE",!1,"API"))}if(this._responseActions.push((m)=>{this._actionMAIL(m,i)}),a&&this._supportedExtensions.includes("SMTPUTF8"))x.push("SMTPUTF8"),this._usingSmtpUtf8=!0;if(this._envelope.use8BitMime&&this._supportedExtensions.includes("8BITMIME"))x.push("BODY=8BITMIME"),this._using8BitMime=!0;if(this._envelope.size&&this._supportedExtensions.includes("SIZE")){let m=Number(this._envelope.size)||0;if(m>0)x.push("SIZE="+m)}if(this._envelope.dsn&&this._supportedExtensions.includes("DSN")){if(this._envelope.dsn.ret)x.push("RET="+V.encodeXText(this._envelope.dsn.ret));if(this._envelope.dsn.envid)x.push("ENVID="+V.encodeXText(this._envelope.dsn.envid))}if(this._envelope.requireTLSExtensionEnabled){if(!this.secure)return i(this._formatError("REQUIRETLS can only be used over TLS connections (RFC 8689)","EREQUIRETLS",!1,"MAIL FROM"));if(!this._supportedExtensions.includes("REQUIRETLS"))return i(this._formatError("Server does not support REQUIRETLS extension (RFC 8689)","EREQUIRETLS",!1,"MAIL FROM"));x.push("REQUIRETLS")}this._sendCommand("MAIL FROM:<"+this._envelope.from+">"+(x.length?" "+x.join(" "):""))}_setDsnEnvelope(p){let i=(p.ret||p.return||"").toString().toUpperCase()||null;if(i)switch(i){case"HDRS":case"HEADERS":i="HDRS";break;case"FULL":case"BODY":i="FULL";break}if(i&&!["FULL","HDRS"].includes(i))throw Error("ret: "+JSON.stringify(i));let x=(p.envid||p.id||"").toString()||null,a=p.notify||null;if(a){if(typeof a==="string")a=a.split(",");a=a.map((c)=>c.trim().toUpperCase());let v=["NEVER","SUCCESS","FAILURE","DELAY"];if(a.filter((c)=>!v.includes(c)).length||a.length>1&&a.includes("NEVER"))throw Error("notify: "+JSON.stringify(a.join(",")));a=a.join(",")}let m=(p.recipient||p.orcpt||"").toString()||null;if(m&&m.indexOf(";")<0)m="rfc822;"+m;return{ret:i,envid:x,notify:a,orcpt:m}}_getDsnRcptToArgs(){let p=[];if(this._envelope.dsn&&this._supportedExtensions.includes("DSN")){if(this._envelope.dsn.notify)p.push("NOTIFY="+V.encodeXText(this._envelope.dsn.notify));if(this._envelope.dsn.orcpt)p.push("ORCPT="+V.encodeXText(this._envelope.dsn.orcpt))}return p.length?" "+p.join(" "):""}_createSendStream(p){let i=new dm;if(this.options.lmtp)this._envelope.accepted.forEach((x,a)=>{let m=a===this._envelope.accepted.length-1;this._responseActions.push((v)=>{this._actionLMTPStream(x,m,v,p)})});else this._responseActions.push((x)=>{this._actionSMTPStream(x,p)});if(i.pipe(this._socket,{end:!1}),this.options.debug){let x=new yi;x.on("readable",()=>{let a;while(a=x.read())this.logger.debug({tnx:"message"},a.toString("binary").replace(/\r?\n$/,""))}),i.pipe(x)}return i.once("end",()=>{this.logger.info({tnx:"message",inByteCount:i.inByteCount,outByteCount:i.outByteCount},"<%s bytes encoded mime message (source size %s bytes)>",i.outByteCount,i.inByteCount)}),i}_actionGreeting(p){if(clearTimeout(this._greetingTimeout),p.substr(0,3)!=="220"){this._onError(Error("Invalid greeting. response="+p),"EPROTOCOL",p,"CONN");return}if(this.options.lmtp)this._responseActions.push(this._actionLHLO),this._sendCommand("LHLO "+this.name);else this._responseActions.push(this._actionEHLO),this._sendCommand("EHLO "+this.name)}_actionLHLO(p){if(p.charAt(0)!=="2"){this._onError(Error("Invalid LHLO. response="+p),"EPROTOCOL",p,"LHLO");return}this._actionEHLO(p)}_actionEHLO(p){let i;if(p.substr(0,3)==="421"){this._onError(Error("Server terminates connection. response="+p),"ECONNECTION",p,"EHLO");return}if(p.charAt(0)!=="2"){if(this.options.requireTLS){this._onError(Error("EHLO failed but HELO does not support required STARTTLS. response="+p),"ECONNECTION",p,"EHLO");return}this._responseActions.push(this._actionHELO),this._sendCommand("HELO "+this.name);return}if(this._ehloLines=p.split(/\r?\n/).map((x)=>x.replace(/^\d+[ -]/,"").trim()).filter((x)=>x).slice(1),!this.secure&&!this.options.ignoreTLS&&(/[ -]STARTTLS\b/im.test(p)||this.options.requireTLS)){this._sendCommand("STARTTLS"),this._responseActions.push(this._actionSTARTTLS);return}if(/[ -]SMTPUTF8\b/im.test(p))this._supportedExtensions.push("SMTPUTF8");if(/[ -]DSN\b/im.test(p))this._supportedExtensions.push("DSN");if(/[ -]8BITMIME\b/im.test(p))this._supportedExtensions.push("8BITMIME");if(/[ -]REQUIRETLS\b/im.test(p))this._supportedExtensions.push("REQUIRETLS");if(/[ -]PIPELINING\b/im.test(p))this._supportedExtensions.push("PIPELINING");if(/[ -]AUTH\b/i.test(p))this.allowsAuth=!0;if(/[ -]AUTH(?:(\s+|=)[^\n]*\s+|\s+|=)PLAIN/i.test(p))this._supportedAuth.push("PLAIN");if(/[ -]AUTH(?:(\s+|=)[^\n]*\s+|\s+|=)LOGIN/i.test(p))this._supportedAuth.push("LOGIN");if(/[ -]AUTH(?:(\s+|=)[^\n]*\s+|\s+|=)CRAM-MD5/i.test(p))this._supportedAuth.push("CRAM-MD5");if(/[ -]AUTH(?:(\s+|=)[^\n]*\s+|\s+|=)XOAUTH2/i.test(p))this._supportedAuth.push("XOAUTH2");if(i=p.match(/[ -]SIZE(?:[ \t]+(\d+))?/im))this._supportedExtensions.push("SIZE"),this._maxAllowedSize=Number(i[1])||0;this.emit("connect")}_actionHELO(p){if(p.charAt(0)!=="2"){this._onError(Error("Invalid HELO. response="+p),"EPROTOCOL",p,"HELO");return}this.allowsAuth=!0,this.emit("connect")}_actionSTARTTLS(p){if(p.charAt(0)!=="2"){if(this.options.opportunisticTLS)return this.logger.info({tnx:"smtp"},"Failed STARTTLS upgrade, continuing unencrypted"),this.emit("connect");this._onError(Error("Error upgrading connection with STARTTLS"),"ETLS",p,"STARTTLS");return}this._upgradeConnection((i,x)=>{if(i){this._onError(Error("Error initiating TLS - "+(i.message||i)),"ETLS",!1,"STARTTLS");return}if(this.logger.info({tnx:"smtp"},"Connection upgraded with STARTTLS"),x)if(this.options.lmtp)this._responseActions.push(this._actionLHLO),this._sendCommand("LHLO "+this.name);else this._responseActions.push(this._actionEHLO),this._sendCommand("EHLO "+this.name);else this.emit("connect")})}_actionAUTH_LOGIN_USER(p,i){if(!/^334[ -]/.test(p)){i(this._formatError('Invalid login sequence while waiting for "334 VXNlcm5hbWU6"',"EAUTH",p,"AUTH LOGIN"));return}this._responseActions.push((x)=>{this._actionAUTH_LOGIN_PASS(x,i)}),this._sendCommand(Buffer.from(this._auth.credentials.user+"","utf-8").toString("base64"))}_actionAUTH_CRAM_MD5(p,i){let x=p.match(/^334\s+(.+)$/);if(!x)return i(this._formatError("Invalid login sequence while waiting for server challenge string","EAUTH",p,"AUTH CRAM-MD5"));let a=Buffer.from(x[1],"base64").toString("ascii"),m=Li.createHmac("md5",this._auth.credentials.pass);m.update(a);let v=this._auth.credentials.user+" "+m.digest("hex");this._responseActions.push((l)=>{this._actionAUTH_CRAM_MD5_PASS(l,i)}),this._sendCommand(Buffer.from(v).toString("base64"),Buffer.from(this._auth.credentials.user+" /* secret */").toString("base64"))}_actionAUTH_CRAM_MD5_PASS(p,i){if(!p.match(/^235\s+/))return i(this._formatError('Invalid login sequence while waiting for "235"',"EAUTH",p,"AUTH CRAM-MD5"));this.logger.info({tnx:"smtp",username:this._auth.user,action:"authenticated",method:this._authMethod},"User %s authenticated",JSON.stringify(this._auth.user)),this.authenticated=!0,i(null,!0)}_actionAUTH_LOGIN_PASS(p,i){if(!/^334[ -]/.test(p))return i(this._formatError('Invalid login sequence while waiting for "334 UGFzc3dvcmQ6"',"EAUTH",p,"AUTH LOGIN"));this._responseActions.push((x)=>{this._actionAUTHComplete(x,i)}),this._sendCommand(Buffer.from((this._auth.credentials.pass||"").toString(),"utf-8").toString("base64"),Buffer.from("/* secret */","utf-8").toString("base64"))}_actionAUTHComplete(p,i,x){if(!x&&typeof i==="function")x=i,i=!1;if(p.substr(0,3)==="334"){this._responseActions.push((a)=>{if(i||this._authMethod!=="XOAUTH2")this._actionAUTHComplete(a,!0,x);else setImmediate(()=>this._handleXOauth2Token(!0,x))}),this._sendCommand("");return}if(p.charAt(0)!=="2")return this.logger.info({tnx:"smtp",username:this._auth.user,action:"authfail",method:this._authMethod},"User %s failed to authenticate",JSON.stringify(this._auth.user)),x(this._formatError("Invalid login","EAUTH",p,"AUTH "+this._authMethod));this.logger.info({tnx:"smtp",username:this._auth.user,action:"authenticated",method:this._authMethod},"User %s authenticated",JSON.stringify(this._auth.user)),this.authenticated=!0,x(null,!0)}_actionMAIL(p,i){if(Number(p.charAt(0))!==2){let a=this._usingSmtpUtf8&&/^550 /.test(p)&&/[\x80-\uFFFF]/.test(this._envelope.from)?"Internationalized mailbox name not allowed":"Mail command failed";return i(this._formatError(a,"EENVELOPE",p,"MAIL FROM"))}if(!this._envelope.rcptQueue.length)return i(this._formatError("Can't send mail - no recipients defined","EENVELOPE",!1,"API"));this._recipientQueue=[];let x=this._supportedExtensions.includes("PIPELINING");do{let a=this._envelope.rcptQueue.shift();this._recipientQueue.push(a),this._responseActions.push((m)=>{this._actionRCPT(m,i)}),this._sendCommand("RCPT TO:<"+a+">"+this._getDsnRcptToArgs())}while(x&&this._envelope.rcptQueue.length)}_actionRCPT(p,i){let x,a=this._recipientQueue.shift();if(Number(p.charAt(0))!==2){let m=this._usingSmtpUtf8&&/^553 /.test(p)&&/[\x80-\uFFFF]/.test(a)?"Internationalized mailbox name not allowed":"Recipient command failed";this._envelope.rejected.push(a),x=this._formatError(m,"EENVELOPE",p,"RCPT TO"),x.recipient=a,this._envelope.rejectedErrors.push(x)}else this._envelope.accepted.push(a);if(!this._envelope.rcptQueue.length&&!this._recipientQueue.length)if(this._envelope.rejected.length<this._envelope.to.length)this._responseActions.push((m)=>{this._actionDATA(m,i)}),this._sendCommand("DATA");else return x=this._formatError("Can't send mail - all recipients were rejected","EENVELOPE",p,"RCPT TO"),x.rejected=this._envelope.rejected,x.rejectedErrors=this._envelope.rejectedErrors,i(x);else if(this._envelope.rcptQueue.length){let m=this._envelope.rcptQueue.shift();this._recipientQueue.push(m),this._responseActions.push((v)=>{this._actionRCPT(v,i)}),this._sendCommand("RCPT TO:<"+m+">"+this._getDsnRcptToArgs())}}_actionDATA(p,i){if(!/^[23]/.test(p))return i(this._formatError("Data command failed","EENVELOPE",p,"DATA"));let x={accepted:this._envelope.accepted,rejected:this._envelope.rejected};if(this._ehloLines&&this._ehloLines.length)x.ehlo=this._ehloLines;if(this._envelope.rejectedErrors.length)x.rejectedErrors=this._envelope.rejectedErrors;i(null,x)}_actionSMTPStream(p,i){if(Number(p.charAt(0))!==2)return i(this._formatError("Message failed","EMESSAGE",p,"DATA"));return i(null,p)}_actionLMTPStream(p,i,x,a){let m;if(Number(x.charAt(0))!==2){m=this._formatError("Message failed for recipient "+p,"EMESSAGE",x,"DATA"),m.recipient=p,this._envelope.rejected.push(p),this._envelope.rejectedErrors.push(m);for(let v=0,l=this._envelope.accepted.length;v<l;v++)if(this._envelope.accepted[v]===p)this._envelope.accepted.splice(v,1)}if(i)return a(null,x)}_handleXOauth2Token(p,i){this._auth.oauth2.getToken(p,(x,a)=>{if(x)return this.logger.info({tnx:"smtp",username:this._auth.user,action:"authfail",method:this._authMethod},"User %s failed to authenticate",JSON.stringify(this._auth.user)),i(this._formatError(x,"EAUTH",!1,"AUTH XOAUTH2"));this._responseActions.push((m)=>{this._actionAUTHComplete(m,p,i)}),this._sendCommand("AUTH XOAUTH2 "+this._auth.oauth2.buildXOAuth2Token(a),"AUTH XOAUTH2 "+this._auth.oauth2.buildXOAuth2Token("/* secret */"))})}_isDestroyedMessage(p){if(this._destroyed)return"Cannot "+p+" - smtp connection is already destroyed.";if(this._socket){if(this._socket.destroyed)return"Cannot "+p+" - smtp connection socket is already destroyed.";if(!this._socket.writable)return"Cannot "+p+" - smtp connection socket is already half-closed."}}_getHostname(){let p;try{p=om.hostname()||""}catch(i){p="localhost"}if(!p||p.indexOf(".")<0)p="[127.0.0.1]";if(p.match(/^\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}$/))p="["+p+"]";return p}}hi.exports=ui});var dp=j((Vv,ki)=>{var{Stream:wm}=z("stream"),gm=E(),nm=z("crypto"),zm=Z(),K=B();class si extends wm{constructor(p,i){super();if(this.options=p||{},p&&p.serviceClient){if(!p.privateKey||!p.user){let a=Error('Options "privateKey" and "user" are required for service account!');a.code=K.EOAUTH2,setImmediate(()=>this.emit("error",a));return}let x=Math.min(Math.max(Number(this.options.serviceRequestTimeout)||0,0),3600);this.options.serviceRequestTimeout=x||300}if(this.logger=zm.getLogger({logger:i},{component:this.options.component||"OAuth2"}),this.provisionCallback=typeof this.options.provisionCallback==="function"?this.options.provisionCallback:!1,this.options.accessUrl=this.options.accessUrl||"https://accounts.google.com/o/oauth2/token",this.options.customHeaders=this.options.customHeaders||{},this.options.customParams=this.options.customParams||{},this.accessToken=this.options.accessToken||!1,this.options.expires&&Number(this.options.expires))this.expires=this.options.expires;else{let x=Math.max(Number(this.options.timeout)||0,0);this.expires=x&&Date.now()+x*1000||0}this.renewing=!1,this.renewalQueue=[]}getToken(p,i){if(!p&&this.accessToken&&(!this.expires||this.expires>Date.now()))return this.logger.debug({tnx:"OAUTH2",user:this.options.user,action:"reuse"},"Reusing existing access token for %s",this.options.user),i(null,this.accessToken);if(!this.provisionCallback&&!this.options.refreshToken&&!this.options.serviceClient){if(this.accessToken)return this.logger.debug({tnx:"OAUTH2",user:this.options.user,action:"reuse"},"Reusing existing access token (no refresh capability) for %s",this.options.user),i(null,this.accessToken);this.logger.error({tnx:"OAUTH2",user:this.options.user,action:"renew"},"Cannot renew access token for %s: No refresh mechanism available",this.options.user);let a=Error("Can't create new access token for user");return a.code=K.EOAUTH2,i(a)}if(this.renewing)return this.renewalQueue.push({renew:p,callback:i});this.renewing=!0;let x=(a,m)=>{if(this.renewalQueue.forEach((v)=>v.callback(a,m)),this.renewalQueue=[],this.renewing=!1,a)this.logger.error({err:a,tnx:"OAUTH2",user:this.options.user,action:"renew"},"Failed generating new Access Token for %s",this.options.user);else this.logger.info({tnx:"OAUTH2",user:this.options.user,action:"renew"},"Generated new Access Token for %s",this.options.user);i(a,m)};if(this.provisionCallback)this.provisionCallback(this.options.user,!!p,(a,m,v)=>{if(!a&&m)this.accessToken=m,this.expires=v||0;x(a,m)});else this.generateToken(x)}updateToken(p,i){this.accessToken=p,i=Math.max(Number(i)||0,0),this.expires=i&&Date.now()+i*1000||0,this.emit("token",{user:this.options.user,accessToken:p||"",expires:this.expires})}generateToken(p){let i,x;if(this.options.serviceClient){let a=Math.floor(Date.now()/1000),m={iss:this.options.serviceClient,scope:this.options.scope||"https://mail.google.com/",sub:this.options.user,aud:this.options.accessUrl,iat:a,exp:a+this.options.serviceRequestTimeout},v;try{v=this.jwtSignRS256(m)}catch(l){let c=Error("Can't generate token. Check your auth options");return c.code=K.EOAUTH2,p(c)}i={grant_type:"urn:ietf:params:oauth:grant-type:jwt-bearer",assertion:v},x={grant_type:"urn:ietf:params:oauth:grant-type:jwt-bearer",assertion:m}}else{if(!this.options.refreshToken){let a=Error("Can't create new access token for user");return a.code=K.EOAUTH2,p(a)}i={client_id:this.options.clientId||"",client_secret:this.options.clientSecret||"",refresh_token:this.options.refreshToken,grant_type:"refresh_token"},x={client_id:this.options.clientId||"",client_secret:(this.options.clientSecret||"").substr(0,6)+"...",refresh_token:(this.options.refreshToken||"").substr(0,6)+"...",grant_type:"refresh_token"}}Object.assign(i,this.options.customParams),Object.assign(x,this.options.customParams),this.logger.debug({tnx:"OAUTH2",user:this.options.user,action:"generate"},"Requesting token using: %s",JSON.stringify(x)),this.postRequest(this.options.accessUrl,i,this.options,(a,m)=>{let v;if(a)return p(a);try{v=JSON.parse(m.toString())}catch(o){return p(o)}if(!v||typeof v!=="object"){this.logger.debug({tnx:"OAUTH2",user:this.options.user,action:"post"},"Response: %s",(m||"").toString());let o=Error("Invalid authentication response");return o.code=K.EOAUTH2,p(o)}let l=Object.assign({},v);if(l.access_token)l.access_token=(l.access_token||"").toString().substr(0,6)+"...";if(this.logger.debug({tnx:"OAUTH2",user:this.options.user,action:"post"},"Response: %s",JSON.stringify(l)),v.error){let o=v.error;if(v.error_description)o+=": "+v.error_description;if(v.error_uri)o+=" ("+v.error_uri+")";let d=Error(o);return d.code=K.EOAUTH2,p(d)}if(v.access_token)return this.updateToken(v.access_token,v.expires_in),p(null,this.accessToken);let c=Error("No access token");return c.code=K.EOAUTH2,p(c)})}buildXOAuth2Token(p){let i=["user="+(this.options.user||""),"auth=Bearer "+(p||this.accessToken),"",""];return Buffer.from(i.join("\x01"),"utf-8").toString("base64")}postRequest(p,i,x,a){let m=!1,v=[],l=0,c=gm(p,{method:"post",headers:x.customHeaders,body:i,allowErrorResponse:!0});c.on("readable",()=>{let o;while((o=c.read())!==null)v.push(o),l+=o.length}),c.once("error",(o)=>{if(m)return;return m=!0,a(o)}),c.once("end",()=>{if(m)return;return m=!0,a(null,Buffer.concat(v,l))})}toBase64URL(p){if(typeof p==="string")p=Buffer.from(p);return p.toString("base64").replace(/[=]+/g,"").replace(/\+/g,"-").replace(/\//g,"_")}jwtSignRS256(p){p=['{"alg":"RS256","typ":"JWT"}',JSON.stringify(p)].map((x)=>this.toBase64URL(x)).join(".");let i=nm.createSign("RSA-SHA256").update(p).sign(this.options.privateKey);return p+"."+this.toBase64URL(i)}}ki.exports=si});var ia=j((Kv,pa)=>{var tm=D(),jm=Z().assign,qm=dp(),ri=B(),Gm=z("events");class ei extends Gm{constructor(p){super();if(this.pool=p,this.options=p.options,this.logger=this.pool.logger,this.options.auth)switch((this.options.auth.type||"").toString().toUpperCase()){case"OAUTH2":{let i=new qm(this.options.auth,this.logger);i.provisionCallback=this.pool.mailer&&this.pool.mailer.get("oauth2_provision_cb")||i.provisionCallback,this.auth={type:"OAUTH2",user:this.options.auth.user,oauth2:i,method:"XOAUTH2"},i.on("token",(x)=>this.pool.mailer.emit("token",x)),i.on("error",(x)=>this.emit("error",x));break}default:if(!this.options.auth.user&&!this.options.auth.pass)break;this.auth={type:(this.options.auth.type||"").toString().toUpperCase()||"LOGIN",user:this.options.auth.user,credentials:{user:this.options.auth.user||"",pass:this.options.auth.pass,options:this.options.auth.options},method:(this.options.auth.method||"").trim().toUpperCase()||this.options.authMethod||!1}}this._connection=!1,this._connected=!1,this.messages=0,this.available=!0}connect(p){this.pool.getSocket(this.options,(i,x)=>{if(i)return p(i);let a=!1,m=this.options;if(x&&x.connection)this.logger.info({tnx:"proxy",remoteAddress:x.connection.remoteAddress,remotePort:x.connection.remotePort,destHost:m.host||"",destPort:m.port||"",action:"connected"},"Using proxied socket from %s:%s to %s:%s",x.connection.remoteAddress,x.connection.remotePort,m.host||"",m.port||""),m=Object.assign(jm(!1,m),x);this.connection=new tm(m),this.connection.once("error",(v)=>{if(this.emit("error",v),a)return;return a=!0,p(v)}),this.connection.once("end",()=>{if(this.close(),a)return;a=!0;let v=setTimeout(()=>{if(a)return;let l=Error("Unexpected socket close");if(this.connection&&this.connection._socket&&this.connection._socket.upgrading)l.code=ri.ETLS;p(l)},1000);try{v.unref()}catch(l){}}),this.connection.connect(()=>{if(a)return;if(this.auth&&(this.connection.allowsAuth||m.forceAuth))this.connection.login(this.auth,(v)=>{if(a)return;if(a=!0,v)return this.connection.close(),this.emit("error",v),p(v);this._connected=!0,p(null,!0)});else return a=!0,this._connected=!0,p(null,!0)})})}send(p,i){if(!this._connected)return this.connect((v)=>{if(v)return i(v);return this.send(p,i)});let x=p.message.getEnvelope(),a=p.message.messageId(),m=[].concat(x.to||[]);if(m.length>3)m.push("...and "+m.splice(2).length+" more");if(this.logger.info({tnx:"send",messageId:a,cid:this.id},"Sending message %s using #%s to <%s>",a,this.id,m.join(", ")),p.data.dsn)x.dsn=p.data.dsn;if(p.data.requireTLSExtensionEnabled)x.requireTLSExtensionEnabled=p.data.requireTLSExtensionEnabled;this.connection.send(x,p.message.createReadStream(),(v,l)=>{if(this.messages++,v)return this.connection.close(),this.emit("error",v),i(v);l.envelope={from:x.from,to:x.to},l.messageId=a,setImmediate(()=>{if(this.messages>=this.options.maxMessages){let c=Error("Resource exhausted");c.code=ri.EMAXLIMIT,this.connection.close(),this.emit("error",c)}else this.pool._checkRateLimit(()=>{this.available=!0,this.emit("available")})}),i(null,l)})}close(){if(this._connected=!1,this.auth&&this.auth.oauth2)this.auth.oauth2.removeAllListeners();if(this.connection)this.connection.close();this.emit("close")}}pa.exports=ei});var aa=j((Sv,Zm)=>{Zm.exports={"1und1":{description:"1&1 Mail (German hosting provider)",host:"smtp.1und1.de",port:465,secure:!0,authMethod:"LOGIN"},"126":{description:"126 Mail (NetEase)",host:"smtp.126.com",port:465,secure:!0},"163":{description:"163 Mail (NetEase)",host:"smtp.163.com",port:465,secure:!0},Aliyun:{description:"Alibaba Cloud Mail",domains:["aliyun.com"],host:"smtp.aliyun.com",port:465,secure:!0},AliyunQiye:{description:"Alibaba Cloud Enterprise Mail",host:"smtp.qiye.aliyun.com",port:465,secure:!0},AOL:{description:"AOL Mail",domains:["aol.com"],host:"smtp.aol.com",port:587},Aruba:{description:"Aruba PEC (Italian email provider)",domains:["aruba.it","pec.aruba.it"],aliases:["Aruba PEC"],host:"smtps.aruba.it",port:465,secure:!0,authMethod:"LOGIN"},Bluewin:{description:"Bluewin (Swiss email provider)",host:"smtpauths.bluewin.ch",domains:["bluewin.ch"],port:465},BOL:{description:"BOL Mail (Brazilian provider)",domains:["bol.com.br"],host:"smtp.bol.com.br",port:587,requireTLS:!0},DebugMail:{description:"DebugMail (email testing service)",host:"debugmail.io",port:25},Disroot:{description:"Disroot (privacy-focused provider)",domains:["disroot.org"],host:"disroot.org",port:587,secure:!1,authMethod:"LOGIN"},DynectEmail:{description:"Dyn Email Delivery",aliases:["Dynect"],host:"smtp.dynect.net",port:25},ElasticEmail:{description:"Elastic Email",aliases:["Elastic Email"],host:"smtp.elasticemail.com",port:465,secure:!0},Ethereal:{description:"Ethereal Email (email testing service)",aliases:["ethereal.email"],host:"smtp.ethereal.email",port:587},FastMail:{description:"FastMail",domains:["fastmail.fm"],host:"smtp.fastmail.com",port:465,secure:!0},"Feishu Mail":{description:"Feishu Mail (Lark)",aliases:["Feishu","FeishuMail"],domains:["www.feishu.cn"],host:"smtp.feishu.cn",port:465,secure:!0},"Forward Email":{description:"Forward Email (email forwarding service)",aliases:["FE","ForwardEmail"],domains:["forwardemail.net"],host:"smtp.forwardemail.net",port:465,secure:!0},GandiMail:{description:"Gandi Mail",aliases:["Gandi","Gandi Mail"],host:"mail.gandi.net",port:587},Gmail:{description:"Gmail",aliases:["Google Mail"],domains:["gmail.com","googlemail.com"],host:"smtp.gmail.com",port:465,secure:!0},GmailWorkspace:{description:"Gmail Workspace",aliases:["Google Workspace Mail"],host:"smtp-relay.gmail.com",port:465,secure:!0},GMX:{description:"GMX Mail",domains:["gmx.com","gmx.net","gmx.de"],host:"mail.gmx.com",port:587},Godaddy:{description:"GoDaddy Email (US)",host:"smtpout.secureserver.net",port:25},GodaddyAsia:{description:"GoDaddy Email (Asia)",host:"smtp.asia.secureserver.net",port:25},GodaddyEurope:{description:"GoDaddy Email (Europe)",host:"smtp.europe.secureserver.net",port:25},"hot.ee":{description:"Hot.ee (Estonian email provider)",host:"mail.hot.ee"},Hotmail:{description:"Outlook.com / Hotmail",aliases:["Outlook","Outlook.com","Hotmail.com"],domains:["hotmail.com","outlook.com"],host:"smtp-mail.outlook.com",port:587},iCloud:{description:"iCloud Mail",aliases:["Me","Mac"],domains:["me.com","mac.com"],host:"smtp.mail.me.com",port:587},Infomaniak:{description:"Infomaniak Mail (Swiss hosting provider)",host:"mail.infomaniak.com",domains:["ik.me","ikmail.com","etik.com"],port:587},KolabNow:{description:"KolabNow (secure email service)",domains:["kolabnow.com"],aliases:["Kolab"],host:"smtp.kolabnow.com",port:465,secure:!0,authMethod:"LOGIN"},Loopia:{description:"Loopia (Swedish hosting provider)",host:"mailcluster.loopia.se",port:465},Loops:{description:"Loops",host:"smtp.loops.so",port:587},"mail.ee":{description:"Mail.ee (Estonian email provider)",host:"smtp.mail.ee"},"Mail.ru":{description:"Mail.ru",host:"smtp.mail.ru",port:465,secure:!0},"Mailcatch.app":{description:"Mailcatch (email testing service)",host:"sandbox-smtp.mailcatch.app",port:2525},Maildev:{description:"MailDev (local email testing)",port:1025,ignoreTLS:!0},MailerSend:{description:"MailerSend",host:"smtp.mailersend.net",port:587},Mailgun:{description:"Mailgun",host:"smtp.mailgun.org",port:465,secure:!0},Mailjet:{description:"Mailjet",host:"in.mailjet.com",port:587},Mailosaur:{description:"Mailosaur (email testing service)",host:"mailosaur.io",port:25},Mailtrap:{description:"Mailtrap",host:"live.smtp.mailtrap.io",port:587},Mandrill:{description:"Mandrill (by Mailchimp)",host:"smtp.mandrillapp.com",port:587},Naver:{description:"Naver Mail (Korean email provider)",host:"smtp.naver.com",port:587},OhMySMTP:{description:"OhMySMTP (email delivery service)",host:"smtp.ohmysmtp.com",port:587,secure:!1},One:{description:"One.com Email",host:"send.one.com",port:465,secure:!0},OpenMailBox:{description:"OpenMailBox",aliases:["OMB","openmailbox.org"],host:"smtp.openmailbox.org",port:465,secure:!0},Outlook365:{description:"Microsoft 365 / Office 365",host:"smtp.office365.com",port:587,secure:!1},Postmark:{description:"Postmark",aliases:["PostmarkApp"],host:"smtp.postmarkapp.com",port:2525},Proton:{description:"Proton Mail",aliases:["ProtonMail","Proton.me","Protonmail.com","Protonmail.ch"],domains:["proton.me","protonmail.com","pm.me","protonmail.ch"],host:"smtp.protonmail.ch",port:587,requireTLS:!0},"qiye.aliyun":{description:"Alibaba Mail Enterprise Edition",host:"smtp.mxhichina.com",port:"465",secure:!0},QQ:{description:"QQ Mail",domains:["qq.com"],host:"smtp.qq.com",port:465,secure:!0},QQex:{description:"QQ Enterprise Mail",aliases:["QQ Enterprise"],domains:["exmail.qq.com"],host:"smtp.exmail.qq.com",port:465,secure:!0},Resend:{description:"Resend",host:"smtp.resend.com",port:465,secure:!0},Runbox:{description:"Runbox (Norwegian email provider)",domains:["runbox.com"],host:"smtp.runbox.com",port:465,secure:!0},SendCloud:{description:"SendCloud (Chinese email delivery)",host:"smtp.sendcloud.net",port:2525},SendGrid:{description:"SendGrid",host:"smtp.sendgrid.net",port:587},SendinBlue:{description:"Brevo (formerly Sendinblue)",aliases:["Brevo"],host:"smtp-relay.brevo.com",port:587},SendPulse:{description:"SendPulse",host:"smtp-pulse.com",port:465,secure:!0},SES:{description:"AWS SES US East (N. Virginia)",host:"email-smtp.us-east-1.amazonaws.com",port:465,secure:!0},"SES-AP-NORTHEAST-1":{description:"AWS SES Asia Pacific (Tokyo)",host:"email-smtp.ap-northeast-1.amazonaws.com",port:465,secure:!0},"SES-AP-NORTHEAST-2":{description:"AWS SES Asia Pacific (Seoul)",host:"email-smtp.ap-northeast-2.amazonaws.com",port:465,secure:!0},"SES-AP-NORTHEAST-3":{description:"AWS SES Asia Pacific (Osaka)",host:"email-smtp.ap-northeast-3.amazonaws.com",port:465,secure:!0},"SES-AP-SOUTH-1":{description:"AWS SES Asia Pacific (Mumbai)",host:"email-smtp.ap-south-1.amazonaws.com",port:465,secure:!0},"SES-AP-SOUTHEAST-1":{description:"AWS SES Asia Pacific (Singapore)",host:"email-smtp.ap-southeast-1.amazonaws.com",port:465,secure:!0},"SES-AP-SOUTHEAST-2":{description:"AWS SES Asia Pacific (Sydney)",host:"email-smtp.ap-southeast-2.amazonaws.com",port:465,secure:!0},"SES-CA-CENTRAL-1":{description:"AWS SES Canada (Central)",host:"email-smtp.ca-central-1.amazonaws.com",port:465,secure:!0},"SES-EU-CENTRAL-1":{description:"AWS SES Europe (Frankfurt)",host:"email-smtp.eu-central-1.amazonaws.com",port:465,secure:!0},"SES-EU-NORTH-1":{description:"AWS SES Europe (Stockholm)",host:"email-smtp.eu-north-1.amazonaws.com",port:465,secure:!0},"SES-EU-WEST-1":{description:"AWS SES Europe (Ireland)",host:"email-smtp.eu-west-1.amazonaws.com",port:465,secure:!0},"SES-EU-WEST-2":{description:"AWS SES Europe (London)",host:"email-smtp.eu-west-2.amazonaws.com",port:465,secure:!0},"SES-EU-WEST-3":{description:"AWS SES Europe (Paris)",host:"email-smtp.eu-west-3.amazonaws.com",port:465,secure:!0},"SES-SA-EAST-1":{description:"AWS SES South America (S\xE3o Paulo)",host:"email-smtp.sa-east-1.amazonaws.com",port:465,secure:!0},"SES-US-EAST-1":{description:"AWS SES US East (N. Virginia)",host:"email-smtp.us-east-1.amazonaws.com",port:465,secure:!0},"SES-US-EAST-2":{description:"AWS SES US East (Ohio)",host:"email-smtp.us-east-2.amazonaws.com",port:465,secure:!0},"SES-US-GOV-EAST-1":{description:"AWS SES GovCloud (US-East)",host:"email-smtp.us-gov-east-1.amazonaws.com",port:465,secure:!0},"SES-US-GOV-WEST-1":{description:"AWS SES GovCloud (US-West)",host:"email-smtp.us-gov-west-1.amazonaws.com",port:465,secure:!0},"SES-US-WEST-1":{description:"AWS SES US West (N. California)",host:"email-smtp.us-west-1.amazonaws.com",port:465,secure:!0},"SES-US-WEST-2":{description:"AWS SES US West (Oregon)",host:"email-smtp.us-west-2.amazonaws.com",port:465,secure:!0},Seznam:{description:"Seznam Email (Czech email provider)",aliases:["Seznam Email"],domains:["seznam.cz","email.cz","post.cz","spoluzaci.cz"],host:"smtp.seznam.cz",port:465,secure:!0},SMTP2GO:{description:"SMTP2GO",host:"mail.smtp2go.com",port:2525},Sparkpost:{description:"SparkPost",aliases:["SparkPost","SparkPost Mail"],domains:["sparkpost.com"],host:"smtp.sparkpostmail.com",port:587,secure:!1},Tipimail:{description:"Tipimail (email delivery service)",host:"smtp.tipimail.com",port:587},Tutanota:{description:"Tutanota (Tuta Mail)",domains:["tutanota.com","tuta.com","tutanota.de","tuta.io"],host:"smtp.tutanota.com",port:465,secure:!0},Yahoo:{description:"Yahoo Mail",domains:["yahoo.com"],host:"smtp.mail.yahoo.com",port:465,secure:!0},Yandex:{description:"Yandex Mail",domains:["yandex.ru"],host:"smtp.yandex.ru",port:465,secure:!0},Zimbra:{description:"Zimbra Mail Server",aliases:["Zimbra Collaboration"],host:"smtp.zimbra.com",port:587,requireTLS:!0},Zoho:{description:"Zoho Mail",host:"smtp.zoho.com",port:465,secure:!0,authMethod:"LOGIN"}}});var fp=j((Uv,ma)=>{var xa=aa(),O={};Object.keys(xa).forEach((p)=>{let i=xa[p],x=_m(i);O[P(p)]=x,[].concat(i.aliases||[]).forEach((a)=>{O[P(a)]=x}),[].concat(i.domains||[]).forEach((a)=>{O[P(a)]=x})});function P(p){return p.replace(/[^a-zA-Z0-9.-]/g,"").toLowerCase()}function _m(p){let i={};return Object.keys(p).forEach((x)=>{if(!["domains","aliases"].includes(x))i[x]=p[x]}),i}ma.exports=function(p){return p=P(p.split("@").pop()),O[p]||!1}});var fa=j((Ev,da)=>{var $m=z("events"),va=ia(),Bm=D(),Am=fp(),C=Z(),la=B(),ca=$();class oa extends $m{constructor(p){super();if(p=p||{},typeof p==="string")p={url:p};let i,x=p.service;if(typeof p.getSocket==="function")this.getSocket=p.getSocket;if(p.url)i=C.parseConnectionUrl(p.url),x=x||i.service;this.options=C.assign(!1,p,i,x&&Am(x)),this.options.maxConnections=this.options.maxConnections||5,this.options.maxMessages=this.options.maxMessages||100,this.logger=C.getLogger(this.options,{component:this.options.component||"smtp-pool"}),this.name="SMTP (pool)",this.version=ca.version+"[client:"+ca.version+"]",this._rateLimit={counter:0,timeout:null,waiting:[],checkpoint:!1,delta:Number(this.options.rateDelta)||1000,limit:Number(this.options.rateLimit)||0},this._closed=!1,this._queue=[],this._connections=[],this._connectionCounter=0,this.idling=!0,setImmediate(()=>{if(this.idling)this.emit("idle")})}getSocket(p,i){return setImmediate(()=>i(null,!1))}send(p,i){if(this._closed)return!1;if(this._queue.push({mail:p,requeueAttempts:0,callback:i}),this.idling&&this._queue.length>=this.options.maxConnections)this.idling=!1;return setImmediate(()=>this._processMessages()),!0}close(){let p,i=this._connections.length;if(this._closed=!0,clearTimeout(this._rateLimit.timeout),!i&&!this._queue.length)return;for(let a=i-1;a>=0;a--)if(this._connections[a]&&this._connections[a].available)p=this._connections[a],p.close(),this.logger.info({tnx:"connection",cid:p.id,action:"removed"},"Connection #%s removed",p.id);if(i&&!this._connections.length)this.logger.debug({tnx:"connection"},"All connections removed");if(!this._queue.length)return;let x=()=>{if(!this._queue.length){this.logger.debug({tnx:"connection"},"Pending queue entries cleared");return}let a=this._queue.shift();if(a&&typeof a.callback==="function")try{a.callback(Error("Connection pool was closed"))}catch(m){this.logger.error({err:m,tnx:"callback",cid:p.id},"Callback error for #%s: %s",p.id,m.message)}setImmediate(x)};setImmediate(x)}_processMessages(){if(this._closed)return;if(!this._queue.length){if(!this.idling)this.idling=!0,this.emit("idle");return}let p=this._connections.find((x)=>x.available);if(!p&&this._connections.length<this.options.maxConnections)p=this._createConnection();if(!p){this.idling=!1;return}if(!this.idling&&this._queue.length<this.options.maxConnections)this.idling=!0,this.emit("idle");let i=p.queueEntry=this._queue.shift();if(i.messageId=(p.queueEntry.mail.message.getHeader("message-id")||"").replace(/[<>\s]/g,""),p.available=!1,this.logger.debug({tnx:"pool",cid:p.id,messageId:i.messageId,action:"assign"},"Assigned message <%s> to #%s (%s)",i.messageId,p.id,p.messages+1),this._rateLimit.limit){if(this._rateLimit.counter++,!this._rateLimit.checkpoint)this._rateLimit.checkpoint=Date.now()}p.send(i.mail,(x,a)=>{if(i===p.queueEntry){try{i.callback(x,a)}catch(m){this.logger.error({err:m,tnx:"callback",cid:p.id},"Callback error for #%s: %s",p.id,m.message)}p.queueEntry=!1}})}_createConnection(){let p=new va(this);return p.id=++this._connectionCounter,this.logger.info({tnx:"pool",cid:p.id,action:"conection"},"Created new pool resource #%s",p.id),p.on("available",()=>{if(this.logger.debug({tnx:"connection",cid:p.id,action:"available"},"Connection #%s became available",p.id),this._closed)this.close();else this._processMessages()}),p.once("error",(i)=>{if(i.code!==la.EMAXLIMIT)this.logger.warn({err:i,tnx:"pool",cid:p.id},"Pool Error for #%s: %s",p.id,i.message);else this.logger.debug({tnx:"pool",cid:p.id,action:"maxlimit"},"Max messages limit exchausted for #%s",p.id);if(p.queueEntry){try{p.queueEntry.callback(i)}catch(x){this.logger.error({err:x,tnx:"callback",cid:p.id},"Callback error for #%s: %s",p.id,x.message)}p.queueEntry=!1}this._removeConnection(p),this._continueProcessing()}),p.once("close",()=>{if(this.logger.info({tnx:"connection",cid:p.id,action:"closed"},"Connection #%s was closed",p.id),this._removeConnection(p),p.queueEntry)setTimeout(()=>{if(p.queueEntry)if(this._shouldRequeuOnConnectionClose(p.queueEntry))this._requeueEntryOnConnectionClose(p);else this._failDeliveryOnConnectionClose(p);this._continueProcessing()},50);else{if(!this._closed&&this.idling&&!this._connections.length)this.emit("clear");this._continueProcessing()}}),this._connections.push(p),p}_shouldRequeuOnConnectionClose(p){if(this.options.maxRequeues===void 0||this.options.maxRequeues<0)return!0;return p.requeueAttempts<this.options.maxRequeues}_failDeliveryOnConnectionClose(p){if(p.queueEntry&&p.queueEntry.callback){try{p.queueEntry.callback(Error("Reached maximum number of retries after connection was closed"))}catch(i){this.logger.error({err:i,tnx:"callback",messageId:p.queueEntry.messageId,cid:p.id},"Callback error for #%s: %s",p.id,i.message)}p.queueEntry=!1}}_requeueEntryOnConnectionClose(p){p.queueEntry.requeueAttempts+=1,this.logger.debug({tnx:"pool",cid:p.id,messageId:p.queueEntry.messageId,action:"requeue"},"Re-queued message <%s> for #%s. Attempt: #%s",p.queueEntry.messageId,p.id,p.queueEntry.requeueAttempts),this._queue.unshift(p.queueEntry),p.queueEntry=!1}_continueProcessing(){if(this._closed)this.close();else setTimeout(()=>this._processMessages(),100)}_removeConnection(p){let i=this._connections.indexOf(p);if(i!==-1)this._connections.splice(i,1)}_checkRateLimit(p){if(!this._rateLimit.limit)return p();let i=Date.now();if(this._rateLimit.counter<this._rateLimit.limit)return p();if(this._rateLimit.waiting.push(p),this._rateLimit.checkpoint<=i-this._rateLimit.delta)return this._clearRateLimit();if(!this._rateLimit.timeout)this._rateLimit.timeout=setTimeout(()=>this._clearRateLimit(),this._rateLimit.delta-(i-this._rateLimit.checkpoint)),this._rateLimit.checkpoint=i}_clearRateLimit(){clearTimeout(this._rateLimit.timeout),this._rateLimit.timeout=null,this._rateLimit.counter=0,this._rateLimit.checkpoint=!1;while(this._rateLimit.waiting.length){let p=this._rateLimit.waiting.shift();setImmediate(p)}}isIdle(){return this.idling}verify(p){let i;if(!p)i=new Promise((a,m)=>{p=C.callbackPromise(a,m)});let x=new va(this).auth;return this.getSocket(this.options,(a,m)=>{if(a)return p(a);let v=this.options;if(m&&m.connection)this.logger.info({tnx:"proxy",remoteAddress:m.connection.remoteAddress,remotePort:m.connection.remotePort,destHost:v.host||"",destPort:v.port||"",action:"connected"},"Using proxied socket from %s:%s to %s:%s",m.connection.remoteAddress,m.connection.remotePort,v.host||"",v.port||""),v=Object.assign(C.assign(!1,v),m);let l=new Bm(v),c=!1;l.once("error",(d)=>{if(c)return;return c=!0,l.close(),p(d)}),l.once("end",()=>{if(c)return;return c=!0,p(Error("Connection closed"))});let o=()=>{if(c)return;return c=!0,l.quit(),p(null,!0)};l.connect(()=>{if(c)return;if(x&&(l.allowsAuth||v.forceAuth))l.login(x,(d)=>{if(c)return;if(d)return c=!0,l.close(),p(d);o()});else if(!x&&l.allowsAuth&&v.forceAuth){let d=Error("Authentication info was not provided");return d.code=la.ENOAUTH,c=!0,l.close(),p(d)}else o()})}),i}}da.exports=oa});var ja=j((Hv,ta)=>{var Qm=z("events"),wa=D(),Ym=fp(),U=Z(),Wm=dp(),ga=B(),na=$();class za extends Qm{constructor(p){super();if(p=p||{},typeof p==="string")p={url:p};let i,x=p.service;if(typeof p.getSocket==="function")this.getSocket=p.getSocket;if(p.url)i=U.parseConnectionUrl(p.url),x=x||i.service;if(this.options=U.assign(!1,p,i,x&&Ym(x)),this.logger=U.getLogger(this.options,{component:this.options.component||"smtp-transport"}),this.name="SMTP",this.version=na.version+"[client:"+na.version+"]",this.options.auth)this.auth=this.getAuth({})}getSocket(p,i){return setImmediate(()=>i(null,!1))}getAuth(p){if(!p)return this.auth;let i=Object.assign({},this.options.auth&&typeof this.options.auth==="object"?this.options.auth:{},p&&typeof p==="object"?p:{});if(Object.keys(i).length===0)return!1;switch((i.type||"").toString().toUpperCase()){case"OAUTH2":{if(!i.service&&!i.user)return!1;let x=new Wm(i,this.logger);return x.provisionCallback=this.mailer&&this.mailer.get("oauth2_provision_cb")||x.provisionCallback,x.on("token",(a)=>this.mailer.emit("token",a)),x.on("error",(a)=>this.emit("error",a)),{type:"OAUTH2",user:i.user,oauth2:x,method:"XOAUTH2"}}default:return{type:(i.type||"").toString().toUpperCase()||"LOGIN",user:i.user,credentials:{user:i.user||"",pass:i.pass,options:i.options},method:(i.method||"").trim().toUpperCase()||this.options.authMethod||!1}}}send(p,i){this.getSocket(this.options,(x,a)=>{if(x)return i(x);let m=!1,v=this.options;if(a&&a.connection)this.logger.info({tnx:"proxy",remoteAddress:a.connection.remoteAddress,remotePort:a.connection.remotePort,destHost:v.host||"",destPort:v.port||"",action:"connected"},"Using proxied socket from %s:%s to %s:%s",a.connection.remoteAddress,a.connection.remotePort,v.host||"",v.port||""),v=Object.assign(U.assign(!1,v),a);let l=new wa(v);l.once("error",(o)=>{if(m)return;return m=!0,l.close(),i(o)}),l.once("end",()=>{if(m)return;let o=setTimeout(()=>{if(m)return;m=!0;let d=Error("Unexpected socket close");if(l&&l._socket&&l._socket.upgrading)d.code=ga.ETLS;i(d)},1000);try{o.unref()}catch(d){}});let c=()=>{let o=p.message.getEnvelope(),d=p.message.messageId(),g=[].concat(o.to||[]);if(g.length>3)g.push("...and "+g.splice(2).length+" more");if(p.data.dsn)o.dsn=p.data.dsn;if(p.data.requireTLSExtensionEnabled)o.requireTLSExtensionEnabled=p.data.requireTLSExtensionEnabled;this.logger.info({tnx:"send",messageId:d},"Sending message %s to <%s>",d,g.join(", ")),l.send(o,p.message.createReadStream(),(f,w)=>{if(m=!0,l.close(),f)return this.logger.error({err:f,tnx:"send"},"Send error for %s: %s",d,f.message),i(f);w.envelope={from:o.from,to:o.to},w.messageId=d;try{return i(null,w)}catch(t){this.logger.error({err:t,tnx:"callback"},"Callback error for %s: %s",d,t.message)}})};l.connect(()=>{if(m)return;let o=this.getAuth(p.data.auth);if(o&&(l.allowsAuth||v.forceAuth))l.login(o,(d)=>{if(o&&o!==this.auth&&o.oauth2)o.oauth2.removeAllListeners();if(m)return;if(d)return m=!0,l.close(),i(d);c()});else c()})})}verify(p){let i;if(!p)i=new Promise((x,a)=>{p=U.callbackPromise(x,a)});return this.getSocket(this.options,(x,a)=>{if(x)return p(x);let m=this.options;if(a&&a.connection)this.logger.info({tnx:"proxy",remoteAddress:a.connection.remoteAddress,remotePort:a.connection.remotePort,destHost:m.host||"",destPort:m.port||"",action:"connected"},"Using proxied socket from %s:%s to %s:%s",a.connection.remoteAddress,a.connection.remotePort,m.host||"",m.port||""),m=Object.assign(U.assign(!1,m),a);let v=new wa(m),l=!1;v.once("error",(o)=>{if(l)return;return l=!0,v.close(),p(o)}),v.once("end",()=>{if(l)return;return l=!0,p(Error("Connection closed"))});let c=()=>{if(l)return;return l=!0,v.quit(),p(null,!0)};v.connect(()=>{if(l)return;let o=this.getAuth({});if(o&&(v.allowsAuth||m.forceAuth))v.login(o,(d)=>{if(l)return;if(d)return l=!0,v.close(),p(d);c()});else if(!o&&v.allowsAuth&&m.forceAuth){let d=Error("Authentication info was not provided");return d.code=ga.ENOAUTH,l=!0,v.close(),p(d)}else c()})}),i}close(){if(this.auth&&this.auth.oauth2)this.auth.oauth2.removeAllListeners();this.emit("close")}}ta.exports=za});var Za=j((Fv,Ga)=>{var{spawn:Xm}=z("child_process"),Jm=$(),Mm=Z(),wp=B();class qa{constructor(p){if(p=p||{},this._spawn=Xm,this.options=p,this.name="Sendmail",this.version=Jm.version,this.path="sendmail",this.args=!1,this.logger=Mm.getLogger(this.options,{component:this.options.component||"sendmail"}),typeof p==="string")this.path=p;else if(typeof p==="object"){if(p.path)this.path=p.path;if(Array.isArray(p.args))this.args=p.args}}send(p,i){p.message.keepBcc=!0;let x=p.data.envelope||p.message.getEnvelope(),a=p.message.messageId(),m;if([].concat(x.from||[]).concat(x.to||[]).some((d)=>/^-/.test(d))){let d=Error("Can not send mail. Invalid envelope addresses.");return d.code=wp.ESENDMAIL,i(d)}let l=this.args?["-i"].concat(this.args).concat(x.to):["-i"].concat(x.from?["-f",x.from]:[]).concat(x.to),c=(d)=>{if(m)return;if(m=!0,typeof i==="function"){if(d)return i(d);return i(null,{envelope:x,messageId:a,response:"Messages queued for delivery"})}},o;try{o=this._spawn(this.path,l)}catch(d){return this.logger.error({err:d,tnx:"spawn",messageId:a},"Error occurred while spawning sendmail. %s",d.message),c(d)}if(o){o.on("error",(f)=>{this.logger.error({err:f,tnx:"spawn",messageId:a},"Error occurred when sending message %s. %s",a,f.message),c(f)}),o.once("exit",(f)=>{if(!f)return c();let w=Error(f===127?"Sendmail command not found, process exited with code "+f:"Sendmail exited with code "+f);w.code=wp.ESENDMAIL,this.logger.error({err:w,tnx:"stdin",messageId:a},"Error sending message %s to sendmail. %s",a,w.message),c(w)}),o.once("close",c),o.stdin.on("error",(f)=>{this.logger.error({err:f,tnx:"stdin",messageId:a},"Error occurred when piping message %s to sendmail. %s",a,f.message),c(f)});let d=[].concat(x.to||[]);if(d.length>3)d.push("...and "+d.splice(2).length+" more");this.logger.info({tnx:"send",messageId:a},"Sending message %s to <%s>",a,d.join(", "));let g=p.message.createReadStream();g.once("error",(f)=>{this.logger.error({err:f,tnx:"stdin",messageId:a},"Error occurred when generating message %s. %s",a,f.message),o.kill("SIGINT"),c(f)}),g.pipe(o.stdin)}else{let d=Error("sendmail was not found");return d.code=wp.ESENDMAIL,c(d)}}}Ga.exports=qa});var Ba=j((Iv,$a)=>{var Vm=$(),Km=Z();class _a{constructor(p){p=p||{},this.options=p,this.name="StreamTransport",this.version=Vm.version,this.logger=Km.getLogger(this.options,{component:this.options.component||"stream-transport"}),this.winbreak=["win","windows","dos",`\r
|
|
49
|
-
`].includes((p.newline||"").toString().toLowerCase())}send(p,i){p.message.keepBcc=!0;let x=p.data.envelope||p.message.getEnvelope(),a=p.message.messageId(),m=[].concat(x.to||[]);if(m.length>3)m.push("...and "+m.splice(2).length+" more");this.logger.info({tnx:"send",messageId:a},"Sending message %s to <%s> using %s line breaks",a,m.join(", "),this.winbreak?"<CR><LF>":"<LF>"),setImmediate(()=>{let v;try{v=p.message.createReadStream()}catch(o){return this.logger.error({err:o,tnx:"send",messageId:a},"Creating send stream failed for %s. %s",a,o.message),i(o)}if(!this.options.buffer)return v.once("error",(o)=>{this.logger.error({err:o,tnx:"send",messageId:a},"Failed creating message for %s. %s",a,o.message)}),i(null,{envelope:x,messageId:a,message:v});let
|
|
48
|
+
`,"utf-8"))}_setEnvelope(p,i){let x=[],a=!1;if(this._envelope=p||{},this._envelope.from=(this._envelope.from&&this._envelope.from.address||this._envelope.from||"").toString().trim(),this._envelope.to=[].concat(this._envelope.to||[]).map((m)=>(m&&m.address||m||"").toString().trim()),!this._envelope.to.length)return i(this._formatError("No recipients defined","EENVELOPE",!1,"API"));if(this._envelope.from&&/[\r\n<>]/.test(this._envelope.from))return i(this._formatError("Invalid sender "+JSON.stringify(this._envelope.from),"EENVELOPE",!1,"API"));if(/[\x80-\uFFFF]/.test(this._envelope.from))a=!0;for(let m=0,v=this._envelope.to.length;m<v;m++){if(!this._envelope.to[m]||/[\r\n<>]/.test(this._envelope.to[m]))return i(this._formatError("Invalid recipient "+JSON.stringify(this._envelope.to[m]),"EENVELOPE",!1,"API"));if(/[\x80-\uFFFF]/.test(this._envelope.to[m]))a=!0}if(this._envelope.rcptQueue=[].concat(this._envelope.to||[]),this._envelope.rejected=[],this._envelope.rejectedErrors=[],this._envelope.accepted=[],this._envelope.dsn)try{this._envelope.dsn=this._setDsnEnvelope(this._envelope.dsn)}catch(m){return i(this._formatError("Invalid DSN "+m.message,"EENVELOPE",!1,"API"))}if(this._responseActions.push((m)=>{this._actionMAIL(m,i)}),a&&this._supportedExtensions.includes("SMTPUTF8"))x.push("SMTPUTF8"),this._usingSmtpUtf8=!0;if(this._envelope.use8BitMime&&this._supportedExtensions.includes("8BITMIME"))x.push("BODY=8BITMIME"),this._using8BitMime=!0;if(this._envelope.size&&this._supportedExtensions.includes("SIZE")){let m=Number(this._envelope.size)||0;if(m>0)x.push("SIZE="+m)}if(this._envelope.dsn&&this._supportedExtensions.includes("DSN")){if(this._envelope.dsn.ret)x.push("RET="+V.encodeXText(this._envelope.dsn.ret));if(this._envelope.dsn.envid)x.push("ENVID="+V.encodeXText(this._envelope.dsn.envid))}if(this._envelope.requireTLSExtensionEnabled){if(!this.secure)return i(this._formatError("REQUIRETLS can only be used over TLS connections (RFC 8689)","EREQUIRETLS",!1,"MAIL FROM"));if(!this._supportedExtensions.includes("REQUIRETLS"))return i(this._formatError("Server does not support REQUIRETLS extension (RFC 8689)","EREQUIRETLS",!1,"MAIL FROM"));x.push("REQUIRETLS")}this._sendCommand("MAIL FROM:<"+this._envelope.from+">"+(x.length?" "+x.join(" "):""))}_setDsnEnvelope(p){let i=(p.ret||p.return||"").toString().toUpperCase()||null;if(i)switch(i){case"HDRS":case"HEADERS":i="HDRS";break;case"FULL":case"BODY":i="FULL";break}if(i&&!["FULL","HDRS"].includes(i))throw Error("ret: "+JSON.stringify(i));let x=(p.envid||p.id||"").toString()||null,a=p.notify||null;if(a){if(typeof a==="string")a=a.split(",");a=a.map((l)=>l.trim().toUpperCase());let v=["NEVER","SUCCESS","FAILURE","DELAY"];if(a.filter((l)=>!v.includes(l)).length||a.length>1&&a.includes("NEVER"))throw Error("notify: "+JSON.stringify(a.join(",")));a=a.join(",")}let m=(p.recipient||p.orcpt||"").toString()||null;if(m&&m.indexOf(";")<0)m="rfc822;"+m;return{ret:i,envid:x,notify:a,orcpt:m}}_getDsnRcptToArgs(){let p=[];if(this._envelope.dsn&&this._supportedExtensions.includes("DSN")){if(this._envelope.dsn.notify)p.push("NOTIFY="+V.encodeXText(this._envelope.dsn.notify));if(this._envelope.dsn.orcpt)p.push("ORCPT="+V.encodeXText(this._envelope.dsn.orcpt))}return p.length?" "+p.join(" "):""}_createSendStream(p){let i=new nm;if(this.options.lmtp)this._envelope.accepted.forEach((x,a)=>{let m=a===this._envelope.accepted.length-1;this._responseActions.push((v)=>{this._actionLMTPStream(x,m,v,p)})});else this._responseActions.push((x)=>{this._actionSMTPStream(x,p)});if(i.pipe(this._socket,{end:!1}),this.options.debug){let x=new hi;x.on("readable",()=>{let a;while(a=x.read())this.logger.debug({tnx:"message"},a.toString("binary").replace(/\r?\n$/,""))}),i.pipe(x)}return i.once("end",()=>{this.logger.info({tnx:"message",inByteCount:i.inByteCount,outByteCount:i.outByteCount},"<%s bytes encoded mime message (source size %s bytes)>",i.outByteCount,i.inByteCount)}),i}_actionGreeting(p){if(clearTimeout(this._greetingTimeout),p.substr(0,3)!=="220"){this._onError(Error("Invalid greeting. response="+p),"EPROTOCOL",p,"CONN");return}if(this.options.lmtp)this._responseActions.push(this._actionLHLO),this._sendCommand("LHLO "+this.name);else this._responseActions.push(this._actionEHLO),this._sendCommand("EHLO "+this.name)}_actionLHLO(p){if(p.charAt(0)!=="2"){this._onError(Error("Invalid LHLO. response="+p),"EPROTOCOL",p,"LHLO");return}this._actionEHLO(p)}_actionEHLO(p){let i;if(p.substr(0,3)==="421"){this._onError(Error("Server terminates connection. response="+p),"ECONNECTION",p,"EHLO");return}if(p.charAt(0)!=="2"){if(this.options.requireTLS){this._onError(Error("EHLO failed but HELO does not support required STARTTLS. response="+p),"ECONNECTION",p,"EHLO");return}this._responseActions.push(this._actionHELO),this._sendCommand("HELO "+this.name);return}if(this._ehloLines=p.split(/\r?\n/).map((x)=>x.replace(/^\d+[ -]/,"").trim()).filter((x)=>x).slice(1),!this.secure&&!this.options.ignoreTLS&&(/[ -]STARTTLS\b/im.test(p)||this.options.requireTLS)){this._sendCommand("STARTTLS"),this._responseActions.push(this._actionSTARTTLS);return}if(/[ -]SMTPUTF8\b/im.test(p))this._supportedExtensions.push("SMTPUTF8");if(/[ -]DSN\b/im.test(p))this._supportedExtensions.push("DSN");if(/[ -]8BITMIME\b/im.test(p))this._supportedExtensions.push("8BITMIME");if(/[ -]REQUIRETLS\b/im.test(p))this._supportedExtensions.push("REQUIRETLS");if(/[ -]PIPELINING\b/im.test(p))this._supportedExtensions.push("PIPELINING");if(/[ -]AUTH\b/i.test(p))this.allowsAuth=!0;if(/[ -]AUTH(?:(\s+|=)[^\n]*\s+|\s+|=)PLAIN/i.test(p))this._supportedAuth.push("PLAIN");if(/[ -]AUTH(?:(\s+|=)[^\n]*\s+|\s+|=)LOGIN/i.test(p))this._supportedAuth.push("LOGIN");if(/[ -]AUTH(?:(\s+|=)[^\n]*\s+|\s+|=)CRAM-MD5/i.test(p))this._supportedAuth.push("CRAM-MD5");if(/[ -]AUTH(?:(\s+|=)[^\n]*\s+|\s+|=)XOAUTH2/i.test(p))this._supportedAuth.push("XOAUTH2");if(i=p.match(/[ -]SIZE(?:[ \t]+(\d+))?/im))this._supportedExtensions.push("SIZE"),this._maxAllowedSize=Number(i[1])||0;this.emit("connect")}_actionHELO(p){if(p.charAt(0)!=="2"){this._onError(Error("Invalid HELO. response="+p),"EPROTOCOL",p,"HELO");return}this.allowsAuth=!0,this.emit("connect")}_actionSTARTTLS(p){if(p.charAt(0)!=="2"){if(this.options.opportunisticTLS)return this.logger.info({tnx:"smtp"},"Failed STARTTLS upgrade, continuing unencrypted"),this.emit("connect");this._onError(Error("Error upgrading connection with STARTTLS"),"ETLS",p,"STARTTLS");return}this._upgradeConnection((i,x)=>{if(i){this._onError(Error("Error initiating TLS - "+(i.message||i)),"ETLS",!1,"STARTTLS");return}if(this.logger.info({tnx:"smtp"},"Connection upgraded with STARTTLS"),x)if(this.options.lmtp)this._responseActions.push(this._actionLHLO),this._sendCommand("LHLO "+this.name);else this._responseActions.push(this._actionEHLO),this._sendCommand("EHLO "+this.name);else this.emit("connect")})}_actionAUTH_LOGIN_USER(p,i){if(!/^334[ -]/.test(p)){i(this._formatError('Invalid login sequence while waiting for "334 VXNlcm5hbWU6"',"EAUTH",p,"AUTH LOGIN"));return}this._responseActions.push((x)=>{this._actionAUTH_LOGIN_PASS(x,i)}),this._sendCommand(Buffer.from(this._auth.credentials.user+"","utf-8").toString("base64"))}_actionAUTH_CRAM_MD5(p,i){let x=p.match(/^334\s+(.+)$/);if(!x)return i(this._formatError("Invalid login sequence while waiting for server challenge string","EAUTH",p,"AUTH CRAM-MD5"));let a=Buffer.from(x[1],"base64").toString("ascii"),m=ui.createHmac("md5",this._auth.credentials.pass);m.update(a);let v=this._auth.credentials.user+" "+m.digest("hex");this._responseActions.push((c)=>{this._actionAUTH_CRAM_MD5_PASS(c,i)}),this._sendCommand(Buffer.from(v).toString("base64"),Buffer.from(this._auth.credentials.user+" /* secret */").toString("base64"))}_actionAUTH_CRAM_MD5_PASS(p,i){if(!p.match(/^235\s+/))return i(this._formatError('Invalid login sequence while waiting for "235"',"EAUTH",p,"AUTH CRAM-MD5"));this.logger.info({tnx:"smtp",username:this._auth.user,action:"authenticated",method:this._authMethod},"User %s authenticated",JSON.stringify(this._auth.user)),this.authenticated=!0,i(null,!0)}_actionAUTH_LOGIN_PASS(p,i){if(!/^334[ -]/.test(p))return i(this._formatError('Invalid login sequence while waiting for "334 UGFzc3dvcmQ6"',"EAUTH",p,"AUTH LOGIN"));this._responseActions.push((x)=>{this._actionAUTHComplete(x,i)}),this._sendCommand(Buffer.from((this._auth.credentials.pass||"").toString(),"utf-8").toString("base64"),Buffer.from("/* secret */","utf-8").toString("base64"))}_actionAUTHComplete(p,i,x){if(!x&&typeof i==="function")x=i,i=!1;if(p.substr(0,3)==="334"){this._responseActions.push((a)=>{if(i||this._authMethod!=="XOAUTH2")this._actionAUTHComplete(a,!0,x);else setImmediate(()=>this._handleXOauth2Token(!0,x))}),this._sendCommand("");return}if(p.charAt(0)!=="2")return this.logger.info({tnx:"smtp",username:this._auth.user,action:"authfail",method:this._authMethod},"User %s failed to authenticate",JSON.stringify(this._auth.user)),x(this._formatError("Invalid login","EAUTH",p,"AUTH "+this._authMethod));this.logger.info({tnx:"smtp",username:this._auth.user,action:"authenticated",method:this._authMethod},"User %s authenticated",JSON.stringify(this._auth.user)),this.authenticated=!0,x(null,!0)}_actionMAIL(p,i){if(Number(p.charAt(0))!==2){let a=this._usingSmtpUtf8&&/^550 /.test(p)&&/[\x80-\uFFFF]/.test(this._envelope.from)?"Internationalized mailbox name not allowed":"Mail command failed";return i(this._formatError(a,"EENVELOPE",p,"MAIL FROM"))}if(!this._envelope.rcptQueue.length)return i(this._formatError("Can't send mail - no recipients defined","EENVELOPE",!1,"API"));this._recipientQueue=[];let x=this._supportedExtensions.includes("PIPELINING");do{let a=this._envelope.rcptQueue.shift();this._recipientQueue.push(a),this._responseActions.push((m)=>{this._actionRCPT(m,i)}),this._sendCommand("RCPT TO:<"+a+">"+this._getDsnRcptToArgs())}while(x&&this._envelope.rcptQueue.length)}_actionRCPT(p,i){let x,a=this._recipientQueue.shift();if(Number(p.charAt(0))!==2){let m=this._usingSmtpUtf8&&/^553 /.test(p)&&/[\x80-\uFFFF]/.test(a)?"Internationalized mailbox name not allowed":"Recipient command failed";this._envelope.rejected.push(a),x=this._formatError(m,"EENVELOPE",p,"RCPT TO"),x.recipient=a,this._envelope.rejectedErrors.push(x)}else this._envelope.accepted.push(a);if(!this._envelope.rcptQueue.length&&!this._recipientQueue.length)if(this._envelope.rejected.length<this._envelope.to.length)this._responseActions.push((m)=>{this._actionDATA(m,i)}),this._sendCommand("DATA");else return x=this._formatError("Can't send mail - all recipients were rejected","EENVELOPE",p,"RCPT TO"),x.rejected=this._envelope.rejected,x.rejectedErrors=this._envelope.rejectedErrors,i(x);else if(this._envelope.rcptQueue.length){let m=this._envelope.rcptQueue.shift();this._recipientQueue.push(m),this._responseActions.push((v)=>{this._actionRCPT(v,i)}),this._sendCommand("RCPT TO:<"+m+">"+this._getDsnRcptToArgs())}}_actionDATA(p,i){if(!/^[23]/.test(p))return i(this._formatError("Data command failed","EENVELOPE",p,"DATA"));let x={accepted:this._envelope.accepted,rejected:this._envelope.rejected};if(this._ehloLines&&this._ehloLines.length)x.ehlo=this._ehloLines;if(this._envelope.rejectedErrors.length)x.rejectedErrors=this._envelope.rejectedErrors;i(null,x)}_actionSMTPStream(p,i){if(Number(p.charAt(0))!==2)return i(this._formatError("Message failed","EMESSAGE",p,"DATA"));return i(null,p)}_actionLMTPStream(p,i,x,a){let m;if(Number(x.charAt(0))!==2){m=this._formatError("Message failed for recipient "+p,"EMESSAGE",x,"DATA"),m.recipient=p,this._envelope.rejected.push(p),this._envelope.rejectedErrors.push(m);for(let v=0,c=this._envelope.accepted.length;v<c;v++)if(this._envelope.accepted[v]===p)this._envelope.accepted.splice(v,1)}if(i)return a(null,x)}_handleXOauth2Token(p,i){this._auth.oauth2.getToken(p,(x,a)=>{if(x)return this.logger.info({tnx:"smtp",username:this._auth.user,action:"authfail",method:this._authMethod},"User %s failed to authenticate",JSON.stringify(this._auth.user)),i(this._formatError(x,"EAUTH",!1,"AUTH XOAUTH2"));this._responseActions.push((m)=>{this._actionAUTHComplete(m,p,i)}),this._sendCommand("AUTH XOAUTH2 "+this._auth.oauth2.buildXOAuth2Token(a),"AUTH XOAUTH2 "+this._auth.oauth2.buildXOAuth2Token("/* secret */"))})}_isDestroyedMessage(p){if(this._destroyed)return"Cannot "+p+" - smtp connection is already destroyed.";if(this._socket){if(this._socket.destroyed)return"Cannot "+p+" - smtp connection socket is already destroyed.";if(!this._socket.writable)return"Cannot "+p+" - smtp connection socket is already half-closed."}}_getHostname(){let p;try{p=zm.hostname()||""}catch(i){p="localhost"}if(!p||p.indexOf(".")<0)p="[127.0.0.1]";if(p.match(/^\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}$/))p="["+p+"]";return p}}ki.exports=si});var fp=t((yv,ei)=>{var{Stream:tm}=n("stream"),qm=H(),Gm=n("crypto"),Zm=Z(),K=_();class ri extends tm{constructor(p,i){super();if(this.options=p||{},p&&p.serviceClient){if(!p.privateKey||!p.user){let a=Error('Options "privateKey" and "user" are required for service account!');a.code=K.EOAUTH2,setImmediate(()=>this.emit("error",a));return}let x=Math.min(Math.max(Number(this.options.serviceRequestTimeout)||0,0),3600);this.options.serviceRequestTimeout=x||300}if(this.logger=Zm.getLogger({logger:i},{component:this.options.component||"OAuth2"}),this.provisionCallback=typeof this.options.provisionCallback==="function"?this.options.provisionCallback:!1,this.options.accessUrl=this.options.accessUrl||"https://accounts.google.com/o/oauth2/token",this.options.customHeaders=this.options.customHeaders||{},this.options.customParams=this.options.customParams||{},this.accessToken=this.options.accessToken||!1,this.options.expires&&Number(this.options.expires))this.expires=this.options.expires;else{let x=Math.max(Number(this.options.timeout)||0,0);this.expires=x&&Date.now()+x*1000||0}this.renewing=!1,this.renewalQueue=[]}getToken(p,i){if(!p&&this.accessToken&&(!this.expires||this.expires>Date.now()))return this.logger.debug({tnx:"OAUTH2",user:this.options.user,action:"reuse"},"Reusing existing access token for %s",this.options.user),i(null,this.accessToken);if(!this.provisionCallback&&!this.options.refreshToken&&!this.options.serviceClient){if(this.accessToken)return this.logger.debug({tnx:"OAUTH2",user:this.options.user,action:"reuse"},"Reusing existing access token (no refresh capability) for %s",this.options.user),i(null,this.accessToken);this.logger.error({tnx:"OAUTH2",user:this.options.user,action:"renew"},"Cannot renew access token for %s: No refresh mechanism available",this.options.user);let a=Error("Can't create new access token for user");return a.code=K.EOAUTH2,i(a)}if(this.renewing)return this.renewalQueue.push({renew:p,callback:i});this.renewing=!0;let x=(a,m)=>{if(this.renewalQueue.forEach((v)=>v.callback(a,m)),this.renewalQueue=[],this.renewing=!1,a)this.logger.error({err:a,tnx:"OAUTH2",user:this.options.user,action:"renew"},"Failed generating new Access Token for %s",this.options.user);else this.logger.info({tnx:"OAUTH2",user:this.options.user,action:"renew"},"Generated new Access Token for %s",this.options.user);i(a,m)};if(this.provisionCallback)this.provisionCallback(this.options.user,!!p,(a,m,v)=>{if(!a&&m)this.accessToken=m,this.expires=v||0;x(a,m)});else this.generateToken(x)}updateToken(p,i){this.accessToken=p,i=Math.max(Number(i)||0,0),this.expires=i&&Date.now()+i*1000||0,this.emit("token",{user:this.options.user,accessToken:p||"",expires:this.expires})}generateToken(p){let i,x;if(this.options.serviceClient){let a=Math.floor(Date.now()/1000),m={iss:this.options.serviceClient,scope:this.options.scope||"https://mail.google.com/",sub:this.options.user,aud:this.options.accessUrl,iat:a,exp:a+this.options.serviceRequestTimeout},v;try{v=this.jwtSignRS256(m)}catch(c){let l=Error("Can't generate token. Check your auth options");return l.code=K.EOAUTH2,p(l)}i={grant_type:"urn:ietf:params:oauth:grant-type:jwt-bearer",assertion:v},x={grant_type:"urn:ietf:params:oauth:grant-type:jwt-bearer",assertion:m}}else{if(!this.options.refreshToken){let a=Error("Can't create new access token for user");return a.code=K.EOAUTH2,p(a)}i={client_id:this.options.clientId||"",client_secret:this.options.clientSecret||"",refresh_token:this.options.refreshToken,grant_type:"refresh_token"},x={client_id:this.options.clientId||"",client_secret:(this.options.clientSecret||"").substr(0,6)+"...",refresh_token:(this.options.refreshToken||"").substr(0,6)+"...",grant_type:"refresh_token"}}Object.assign(i,this.options.customParams),Object.assign(x,this.options.customParams),this.logger.debug({tnx:"OAUTH2",user:this.options.user,action:"generate"},"Requesting token using: %s",JSON.stringify(x)),this.postRequest(this.options.accessUrl,i,this.options,(a,m)=>{let v;if(a)return p(a);try{v=JSON.parse(m.toString())}catch(o){return p(o)}if(!v||typeof v!=="object"){this.logger.debug({tnx:"OAUTH2",user:this.options.user,action:"post"},"Response: %s",(m||"").toString());let o=Error("Invalid authentication response");return o.code=K.EOAUTH2,p(o)}let c=Object.assign({},v);if(c.access_token)c.access_token=(c.access_token||"").toString().substr(0,6)+"...";if(this.logger.debug({tnx:"OAUTH2",user:this.options.user,action:"post"},"Response: %s",JSON.stringify(c)),v.error){let o=v.error;if(v.error_description)o+=": "+v.error_description;if(v.error_uri)o+=" ("+v.error_uri+")";let d=Error(o);return d.code=K.EOAUTH2,p(d)}if(v.access_token)return this.updateToken(v.access_token,v.expires_in),p(null,this.accessToken);let l=Error("No access token");return l.code=K.EOAUTH2,p(l)})}buildXOAuth2Token(p){let i=["user="+(this.options.user||""),"auth=Bearer "+(p||this.accessToken),"",""];return Buffer.from(i.join("\x01"),"utf-8").toString("base64")}postRequest(p,i,x,a){let m=!1,v=[],c=0,l=qm(p,{method:"post",headers:x.customHeaders,body:i,allowErrorResponse:!0});l.on("readable",()=>{let o;while((o=l.read())!==null)v.push(o),c+=o.length}),l.once("error",(o)=>{if(m)return;return m=!0,a(o)}),l.once("end",()=>{if(m)return;return m=!0,a(null,Buffer.concat(v,c))})}toBase64URL(p){if(typeof p==="string")p=Buffer.from(p);return p.toString("base64").replace(/[=]+/g,"").replace(/\+/g,"-").replace(/\//g,"_")}jwtSignRS256(p){p=['{"alg":"RS256","typ":"JWT"}',JSON.stringify(p)].map((x)=>this.toBase64URL(x)).join(".");let i=Gm.createSign("RSA-SHA256").update(p).sign(this.options.privateKey);return p+"."+this.toBase64URL(i)}}ei.exports=ri});var xa=t((uv,aa)=>{var $m=P(),Bm=Z().assign,_m=fp(),pa=_(),Qm=n("events");class ia extends Qm{constructor(p){super();if(this.pool=p,this.options=p.options,this.logger=this.pool.logger,this.options.auth)switch((this.options.auth.type||"").toString().toUpperCase()){case"OAUTH2":{let i=new _m(this.options.auth,this.logger);i.provisionCallback=this.pool.mailer&&this.pool.mailer.get("oauth2_provision_cb")||i.provisionCallback,this.auth={type:"OAUTH2",user:this.options.auth.user,oauth2:i,method:"XOAUTH2"},i.on("token",(x)=>this.pool.mailer.emit("token",x)),i.on("error",(x)=>this.emit("error",x));break}default:if(!this.options.auth.user&&!this.options.auth.pass)break;this.auth={type:(this.options.auth.type||"").toString().toUpperCase()||"LOGIN",user:this.options.auth.user,credentials:{user:this.options.auth.user||"",pass:this.options.auth.pass,options:this.options.auth.options},method:(this.options.auth.method||"").trim().toUpperCase()||this.options.authMethod||!1}}this._connection=!1,this._connected=!1,this.messages=0,this.available=!0}connect(p){this.pool.getSocket(this.options,(i,x)=>{if(i)return p(i);let a=!1,m=this.options;if(x&&x.connection)this.logger.info({tnx:"proxy",remoteAddress:x.connection.remoteAddress,remotePort:x.connection.remotePort,destHost:m.host||"",destPort:m.port||"",action:"connected"},"Using proxied socket from %s:%s to %s:%s",x.connection.remoteAddress,x.connection.remotePort,m.host||"",m.port||""),m=Object.assign(Bm(!1,m),x);this.connection=new $m(m),this.connection.once("error",(v)=>{if(this.emit("error",v),a)return;return a=!0,p(v)}),this.connection.once("end",()=>{if(this.close(),a)return;a=!0;let v=setTimeout(()=>{if(a)return;let c=Error("Unexpected socket close");if(this.connection&&this.connection._socket&&this.connection._socket.upgrading)c.code=pa.ETLS;p(c)},1000);try{v.unref()}catch(c){}}),this.connection.connect(()=>{if(a)return;if(this.auth&&(this.connection.allowsAuth||m.forceAuth))this.connection.login(this.auth,(v)=>{if(a)return;if(a=!0,v)return this.connection.close(),this.emit("error",v),p(v);this._connected=!0,p(null,!0)});else return a=!0,this._connected=!0,p(null,!0)})})}send(p,i){if(!this._connected)return this.connect((v)=>{if(v)return i(v);return this.send(p,i)});let x=p.message.getEnvelope(),a=p.message.messageId(),m=[].concat(x.to||[]);if(m.length>3)m.push("...and "+m.splice(2).length+" more");if(this.logger.info({tnx:"send",messageId:a,cid:this.id},"Sending message %s using #%s to <%s>",a,this.id,m.join(", ")),p.data.dsn)x.dsn=p.data.dsn;if(p.data.requireTLSExtensionEnabled)x.requireTLSExtensionEnabled=p.data.requireTLSExtensionEnabled;this.connection.send(x,p.message.createReadStream(),(v,c)=>{if(this.messages++,v)return this.connection.close(),this.emit("error",v),i(v);c.envelope={from:x.from,to:x.to},c.messageId=a,setImmediate(()=>{if(this.messages>=this.options.maxMessages){let l=Error("Resource exhausted");l.code=pa.EMAXLIMIT,this.connection.close(),this.emit("error",l)}else this.pool._checkRateLimit(()=>{this.available=!0,this.emit("available")})}),i(null,c)})}close(){if(this._connected=!1,this.auth&&this.auth.oauth2)this.auth.oauth2.removeAllListeners();if(this.connection)this.connection.close();this.emit("close")}}aa.exports=ia});var ma=t((hv,Am)=>{Am.exports={"1und1":{description:"1&1 Mail (German hosting provider)",host:"smtp.1und1.de",port:465,secure:!0,authMethod:"LOGIN"},"126":{description:"126 Mail (NetEase)",host:"smtp.126.com",port:465,secure:!0},"163":{description:"163 Mail (NetEase)",host:"smtp.163.com",port:465,secure:!0},Aliyun:{description:"Alibaba Cloud Mail",domains:["aliyun.com"],host:"smtp.aliyun.com",port:465,secure:!0},AliyunQiye:{description:"Alibaba Cloud Enterprise Mail",host:"smtp.qiye.aliyun.com",port:465,secure:!0},AOL:{description:"AOL Mail",domains:["aol.com"],host:"smtp.aol.com",port:587},Aruba:{description:"Aruba PEC (Italian email provider)",domains:["aruba.it","pec.aruba.it"],aliases:["Aruba PEC"],host:"smtps.aruba.it",port:465,secure:!0,authMethod:"LOGIN"},Bluewin:{description:"Bluewin (Swiss email provider)",host:"smtpauths.bluewin.ch",domains:["bluewin.ch"],port:465},BOL:{description:"BOL Mail (Brazilian provider)",domains:["bol.com.br"],host:"smtp.bol.com.br",port:587,requireTLS:!0},DebugMail:{description:"DebugMail (email testing service)",host:"debugmail.io",port:25},Disroot:{description:"Disroot (privacy-focused provider)",domains:["disroot.org"],host:"disroot.org",port:587,secure:!1,authMethod:"LOGIN"},DynectEmail:{description:"Dyn Email Delivery",aliases:["Dynect"],host:"smtp.dynect.net",port:25},ElasticEmail:{description:"Elastic Email",aliases:["Elastic Email"],host:"smtp.elasticemail.com",port:465,secure:!0},Ethereal:{description:"Ethereal Email (email testing service)",aliases:["ethereal.email"],host:"smtp.ethereal.email",port:587},FastMail:{description:"FastMail",domains:["fastmail.fm"],host:"smtp.fastmail.com",port:465,secure:!0},"Feishu Mail":{description:"Feishu Mail (Lark)",aliases:["Feishu","FeishuMail"],domains:["www.feishu.cn"],host:"smtp.feishu.cn",port:465,secure:!0},"Forward Email":{description:"Forward Email (email forwarding service)",aliases:["FE","ForwardEmail"],domains:["forwardemail.net"],host:"smtp.forwardemail.net",port:465,secure:!0},GandiMail:{description:"Gandi Mail",aliases:["Gandi","Gandi Mail"],host:"mail.gandi.net",port:587},Gmail:{description:"Gmail",aliases:["Google Mail"],domains:["gmail.com","googlemail.com"],host:"smtp.gmail.com",port:465,secure:!0},GmailWorkspace:{description:"Gmail Workspace",aliases:["Google Workspace Mail"],host:"smtp-relay.gmail.com",port:465,secure:!0},GMX:{description:"GMX Mail",domains:["gmx.com","gmx.net","gmx.de"],host:"mail.gmx.com",port:587},Godaddy:{description:"GoDaddy Email (US)",host:"smtpout.secureserver.net",port:25},GodaddyAsia:{description:"GoDaddy Email (Asia)",host:"smtp.asia.secureserver.net",port:25},GodaddyEurope:{description:"GoDaddy Email (Europe)",host:"smtp.europe.secureserver.net",port:25},"hot.ee":{description:"Hot.ee (Estonian email provider)",host:"mail.hot.ee"},Hotmail:{description:"Outlook.com / Hotmail",aliases:["Outlook","Outlook.com","Hotmail.com"],domains:["hotmail.com","outlook.com"],host:"smtp-mail.outlook.com",port:587},iCloud:{description:"iCloud Mail",aliases:["Me","Mac"],domains:["me.com","mac.com"],host:"smtp.mail.me.com",port:587},Infomaniak:{description:"Infomaniak Mail (Swiss hosting provider)",host:"mail.infomaniak.com",domains:["ik.me","ikmail.com","etik.com"],port:587},KolabNow:{description:"KolabNow (secure email service)",domains:["kolabnow.com"],aliases:["Kolab"],host:"smtp.kolabnow.com",port:465,secure:!0,authMethod:"LOGIN"},Loopia:{description:"Loopia (Swedish hosting provider)",host:"mailcluster.loopia.se",port:465},Loops:{description:"Loops",host:"smtp.loops.so",port:587},"mail.ee":{description:"Mail.ee (Estonian email provider)",host:"smtp.mail.ee"},"Mail.ru":{description:"Mail.ru",host:"smtp.mail.ru",port:465,secure:!0},"Mailcatch.app":{description:"Mailcatch (email testing service)",host:"sandbox-smtp.mailcatch.app",port:2525},Maildev:{description:"MailDev (local email testing)",port:1025,ignoreTLS:!0},MailerSend:{description:"MailerSend",host:"smtp.mailersend.net",port:587},Mailgun:{description:"Mailgun",host:"smtp.mailgun.org",port:465,secure:!0},Mailjet:{description:"Mailjet",host:"in.mailjet.com",port:587},Mailosaur:{description:"Mailosaur (email testing service)",host:"mailosaur.io",port:25},Mailtrap:{description:"Mailtrap",host:"live.smtp.mailtrap.io",port:587},Mandrill:{description:"Mandrill (by Mailchimp)",host:"smtp.mandrillapp.com",port:587},Naver:{description:"Naver Mail (Korean email provider)",host:"smtp.naver.com",port:587},OhMySMTP:{description:"OhMySMTP (email delivery service)",host:"smtp.ohmysmtp.com",port:587,secure:!1},One:{description:"One.com Email",host:"send.one.com",port:465,secure:!0},OpenMailBox:{description:"OpenMailBox",aliases:["OMB","openmailbox.org"],host:"smtp.openmailbox.org",port:465,secure:!0},Outlook365:{description:"Microsoft 365 / Office 365",host:"smtp.office365.com",port:587,secure:!1},Postmark:{description:"Postmark",aliases:["PostmarkApp"],host:"smtp.postmarkapp.com",port:2525},Proton:{description:"Proton Mail",aliases:["ProtonMail","Proton.me","Protonmail.com","Protonmail.ch"],domains:["proton.me","protonmail.com","pm.me","protonmail.ch"],host:"smtp.protonmail.ch",port:587,requireTLS:!0},"qiye.aliyun":{description:"Alibaba Mail Enterprise Edition",host:"smtp.mxhichina.com",port:"465",secure:!0},QQ:{description:"QQ Mail",domains:["qq.com"],host:"smtp.qq.com",port:465,secure:!0},QQex:{description:"QQ Enterprise Mail",aliases:["QQ Enterprise"],domains:["exmail.qq.com"],host:"smtp.exmail.qq.com",port:465,secure:!0},Resend:{description:"Resend",host:"smtp.resend.com",port:465,secure:!0},Runbox:{description:"Runbox (Norwegian email provider)",domains:["runbox.com"],host:"smtp.runbox.com",port:465,secure:!0},SendCloud:{description:"SendCloud (Chinese email delivery)",host:"smtp.sendcloud.net",port:2525},SendGrid:{description:"SendGrid",host:"smtp.sendgrid.net",port:587},SendinBlue:{description:"Brevo (formerly Sendinblue)",aliases:["Brevo"],host:"smtp-relay.brevo.com",port:587},SendPulse:{description:"SendPulse",host:"smtp-pulse.com",port:465,secure:!0},SES:{description:"AWS SES US East (N. Virginia)",host:"email-smtp.us-east-1.amazonaws.com",port:465,secure:!0},"SES-AP-NORTHEAST-1":{description:"AWS SES Asia Pacific (Tokyo)",host:"email-smtp.ap-northeast-1.amazonaws.com",port:465,secure:!0},"SES-AP-NORTHEAST-2":{description:"AWS SES Asia Pacific (Seoul)",host:"email-smtp.ap-northeast-2.amazonaws.com",port:465,secure:!0},"SES-AP-NORTHEAST-3":{description:"AWS SES Asia Pacific (Osaka)",host:"email-smtp.ap-northeast-3.amazonaws.com",port:465,secure:!0},"SES-AP-SOUTH-1":{description:"AWS SES Asia Pacific (Mumbai)",host:"email-smtp.ap-south-1.amazonaws.com",port:465,secure:!0},"SES-AP-SOUTHEAST-1":{description:"AWS SES Asia Pacific (Singapore)",host:"email-smtp.ap-southeast-1.amazonaws.com",port:465,secure:!0},"SES-AP-SOUTHEAST-2":{description:"AWS SES Asia Pacific (Sydney)",host:"email-smtp.ap-southeast-2.amazonaws.com",port:465,secure:!0},"SES-CA-CENTRAL-1":{description:"AWS SES Canada (Central)",host:"email-smtp.ca-central-1.amazonaws.com",port:465,secure:!0},"SES-EU-CENTRAL-1":{description:"AWS SES Europe (Frankfurt)",host:"email-smtp.eu-central-1.amazonaws.com",port:465,secure:!0},"SES-EU-NORTH-1":{description:"AWS SES Europe (Stockholm)",host:"email-smtp.eu-north-1.amazonaws.com",port:465,secure:!0},"SES-EU-WEST-1":{description:"AWS SES Europe (Ireland)",host:"email-smtp.eu-west-1.amazonaws.com",port:465,secure:!0},"SES-EU-WEST-2":{description:"AWS SES Europe (London)",host:"email-smtp.eu-west-2.amazonaws.com",port:465,secure:!0},"SES-EU-WEST-3":{description:"AWS SES Europe (Paris)",host:"email-smtp.eu-west-3.amazonaws.com",port:465,secure:!0},"SES-SA-EAST-1":{description:"AWS SES South America (S\xE3o Paulo)",host:"email-smtp.sa-east-1.amazonaws.com",port:465,secure:!0},"SES-US-EAST-1":{description:"AWS SES US East (N. Virginia)",host:"email-smtp.us-east-1.amazonaws.com",port:465,secure:!0},"SES-US-EAST-2":{description:"AWS SES US East (Ohio)",host:"email-smtp.us-east-2.amazonaws.com",port:465,secure:!0},"SES-US-GOV-EAST-1":{description:"AWS SES GovCloud (US-East)",host:"email-smtp.us-gov-east-1.amazonaws.com",port:465,secure:!0},"SES-US-GOV-WEST-1":{description:"AWS SES GovCloud (US-West)",host:"email-smtp.us-gov-west-1.amazonaws.com",port:465,secure:!0},"SES-US-WEST-1":{description:"AWS SES US West (N. California)",host:"email-smtp.us-west-1.amazonaws.com",port:465,secure:!0},"SES-US-WEST-2":{description:"AWS SES US West (Oregon)",host:"email-smtp.us-west-2.amazonaws.com",port:465,secure:!0},Seznam:{description:"Seznam Email (Czech email provider)",aliases:["Seznam Email"],domains:["seznam.cz","email.cz","post.cz","spoluzaci.cz"],host:"smtp.seznam.cz",port:465,secure:!0},SMTP2GO:{description:"SMTP2GO",host:"mail.smtp2go.com",port:2525},Sparkpost:{description:"SparkPost",aliases:["SparkPost","SparkPost Mail"],domains:["sparkpost.com"],host:"smtp.sparkpostmail.com",port:587,secure:!1},Tipimail:{description:"Tipimail (email delivery service)",host:"smtp.tipimail.com",port:587},Tutanota:{description:"Tutanota (Tuta Mail)",domains:["tutanota.com","tuta.com","tutanota.de","tuta.io"],host:"smtp.tutanota.com",port:465,secure:!0},Yahoo:{description:"Yahoo Mail",domains:["yahoo.com"],host:"smtp.mail.yahoo.com",port:465,secure:!0},Yandex:{description:"Yandex Mail",domains:["yandex.ru"],host:"smtp.yandex.ru",port:465,secure:!0},Zimbra:{description:"Zimbra Mail Server",aliases:["Zimbra Collaboration"],host:"smtp.zimbra.com",port:587,requireTLS:!0},Zoho:{description:"Zoho Mail",host:"smtp.zoho.com",port:465,secure:!0,authMethod:"LOGIN"}}});var wp=t((sv,ca)=>{var va=ma(),O={};Object.keys(va).forEach((p)=>{let i=va[p],x=Ym(i);O[b(p)]=x,[].concat(i.aliases||[]).forEach((a)=>{O[b(a)]=x}),[].concat(i.domains||[]).forEach((a)=>{O[b(a)]=x})});function b(p){return p.replace(/[^a-zA-Z0-9.-]/g,"").toLowerCase()}function Ym(p){let i={};return Object.keys(p).forEach((x)=>{if(!["domains","aliases"].includes(x))i[x]=p[x]}),i}ca.exports=function(p){return p=b(p.split("@").pop()),O[p]||!1}});var ga=t((kv,wa)=>{var Wm=n("events"),la=xa(),Xm=P(),Jm=wp(),C=Z(),oa=_(),da=B();class fa extends Wm{constructor(p){super();if(p=p||{},typeof p==="string")p={url:p};let i,x=p.service;if(typeof p.getSocket==="function")this.getSocket=p.getSocket;if(p.url)i=C.parseConnectionUrl(p.url),x=x||i.service;this.options=C.assign(!1,p,i,x&&Jm(x)),this.options.maxConnections=this.options.maxConnections||5,this.options.maxMessages=this.options.maxMessages||100,this.logger=C.getLogger(this.options,{component:this.options.component||"smtp-pool"}),this.name="SMTP (pool)",this.version=da.version+"[client:"+da.version+"]",this._rateLimit={counter:0,timeout:null,waiting:[],checkpoint:!1,delta:Number(this.options.rateDelta)||1000,limit:Number(this.options.rateLimit)||0},this._closed=!1,this._queue=[],this._connections=[],this._connectionCounter=0,this.idling=!0,setImmediate(()=>{if(this.idling)this.emit("idle")})}getSocket(p,i){return setImmediate(()=>i(null,!1))}send(p,i){if(this._closed)return!1;if(this._queue.push({mail:p,requeueAttempts:0,callback:i}),this.idling&&this._queue.length>=this.options.maxConnections)this.idling=!1;return setImmediate(()=>this._processMessages()),!0}close(){let p,i=this._connections.length;if(this._closed=!0,clearTimeout(this._rateLimit.timeout),!i&&!this._queue.length)return;for(let a=i-1;a>=0;a--)if(this._connections[a]&&this._connections[a].available)p=this._connections[a],p.close(),this.logger.info({tnx:"connection",cid:p.id,action:"removed"},"Connection #%s removed",p.id);if(i&&!this._connections.length)this.logger.debug({tnx:"connection"},"All connections removed");if(!this._queue.length)return;let x=()=>{if(!this._queue.length){this.logger.debug({tnx:"connection"},"Pending queue entries cleared");return}let a=this._queue.shift();if(a&&typeof a.callback==="function")try{a.callback(Error("Connection pool was closed"))}catch(m){this.logger.error({err:m,tnx:"callback",cid:p.id},"Callback error for #%s: %s",p.id,m.message)}setImmediate(x)};setImmediate(x)}_processMessages(){if(this._closed)return;if(!this._queue.length){if(!this.idling)this.idling=!0,this.emit("idle");return}let p=this._connections.find((x)=>x.available);if(!p&&this._connections.length<this.options.maxConnections)p=this._createConnection();if(!p){this.idling=!1;return}if(!this.idling&&this._queue.length<this.options.maxConnections)this.idling=!0,this.emit("idle");let i=p.queueEntry=this._queue.shift();if(i.messageId=(p.queueEntry.mail.message.getHeader("message-id")||"").replace(/[<>\s]/g,""),p.available=!1,this.logger.debug({tnx:"pool",cid:p.id,messageId:i.messageId,action:"assign"},"Assigned message <%s> to #%s (%s)",i.messageId,p.id,p.messages+1),this._rateLimit.limit){if(this._rateLimit.counter++,!this._rateLimit.checkpoint)this._rateLimit.checkpoint=Date.now()}p.send(i.mail,(x,a)=>{if(i===p.queueEntry){try{i.callback(x,a)}catch(m){this.logger.error({err:m,tnx:"callback",cid:p.id},"Callback error for #%s: %s",p.id,m.message)}p.queueEntry=!1}})}_createConnection(){let p=new la(this);return p.id=++this._connectionCounter,this.logger.info({tnx:"pool",cid:p.id,action:"conection"},"Created new pool resource #%s",p.id),p.on("available",()=>{if(this.logger.debug({tnx:"connection",cid:p.id,action:"available"},"Connection #%s became available",p.id),this._closed)this.close();else this._processMessages()}),p.once("error",(i)=>{if(i.code!==oa.EMAXLIMIT)this.logger.warn({err:i,tnx:"pool",cid:p.id},"Pool Error for #%s: %s",p.id,i.message);else this.logger.debug({tnx:"pool",cid:p.id,action:"maxlimit"},"Max messages limit exchausted for #%s",p.id);if(p.queueEntry){try{p.queueEntry.callback(i)}catch(x){this.logger.error({err:x,tnx:"callback",cid:p.id},"Callback error for #%s: %s",p.id,x.message)}p.queueEntry=!1}this._removeConnection(p),this._continueProcessing()}),p.once("close",()=>{if(this.logger.info({tnx:"connection",cid:p.id,action:"closed"},"Connection #%s was closed",p.id),this._removeConnection(p),p.queueEntry)setTimeout(()=>{if(p.queueEntry)if(this._shouldRequeuOnConnectionClose(p.queueEntry))this._requeueEntryOnConnectionClose(p);else this._failDeliveryOnConnectionClose(p);this._continueProcessing()},50);else{if(!this._closed&&this.idling&&!this._connections.length)this.emit("clear");this._continueProcessing()}}),this._connections.push(p),p}_shouldRequeuOnConnectionClose(p){if(this.options.maxRequeues===void 0||this.options.maxRequeues<0)return!0;return p.requeueAttempts<this.options.maxRequeues}_failDeliveryOnConnectionClose(p){if(p.queueEntry&&p.queueEntry.callback){try{p.queueEntry.callback(Error("Reached maximum number of retries after connection was closed"))}catch(i){this.logger.error({err:i,tnx:"callback",messageId:p.queueEntry.messageId,cid:p.id},"Callback error for #%s: %s",p.id,i.message)}p.queueEntry=!1}}_requeueEntryOnConnectionClose(p){p.queueEntry.requeueAttempts+=1,this.logger.debug({tnx:"pool",cid:p.id,messageId:p.queueEntry.messageId,action:"requeue"},"Re-queued message <%s> for #%s. Attempt: #%s",p.queueEntry.messageId,p.id,p.queueEntry.requeueAttempts),this._queue.unshift(p.queueEntry),p.queueEntry=!1}_continueProcessing(){if(this._closed)this.close();else setTimeout(()=>this._processMessages(),100)}_removeConnection(p){let i=this._connections.indexOf(p);if(i!==-1)this._connections.splice(i,1)}_checkRateLimit(p){if(!this._rateLimit.limit)return p();let i=Date.now();if(this._rateLimit.counter<this._rateLimit.limit)return p();if(this._rateLimit.waiting.push(p),this._rateLimit.checkpoint<=i-this._rateLimit.delta)return this._clearRateLimit();if(!this._rateLimit.timeout)this._rateLimit.timeout=setTimeout(()=>this._clearRateLimit(),this._rateLimit.delta-(i-this._rateLimit.checkpoint)),this._rateLimit.checkpoint=i}_clearRateLimit(){clearTimeout(this._rateLimit.timeout),this._rateLimit.timeout=null,this._rateLimit.counter=0,this._rateLimit.checkpoint=!1;while(this._rateLimit.waiting.length){let p=this._rateLimit.waiting.shift();setImmediate(p)}}isIdle(){return this.idling}verify(p){let i;if(!p)i=new Promise((a,m)=>{p=C.callbackPromise(a,m)});let x=new la(this).auth;return this.getSocket(this.options,(a,m)=>{if(a)return p(a);let v=this.options;if(m&&m.connection)this.logger.info({tnx:"proxy",remoteAddress:m.connection.remoteAddress,remotePort:m.connection.remotePort,destHost:v.host||"",destPort:v.port||"",action:"connected"},"Using proxied socket from %s:%s to %s:%s",m.connection.remoteAddress,m.connection.remotePort,v.host||"",v.port||""),v=Object.assign(C.assign(!1,v),m);let c=new Xm(v),l=!1;c.once("error",(d)=>{if(l)return;return l=!0,c.close(),p(d)}),c.once("end",()=>{if(l)return;return l=!0,p(Error("Connection closed"))});let o=()=>{if(l)return;return l=!0,c.quit(),p(null,!0)};c.connect(()=>{if(l)return;if(x&&(c.allowsAuth||v.forceAuth))c.login(x,(d)=>{if(l)return;if(d)return l=!0,c.close(),p(d);o()});else if(!x&&c.allowsAuth&&v.forceAuth){let d=Error("Authentication info was not provided");return d.code=oa.ENOAUTH,l=!0,c.close(),p(d)}else o()})}),i}}wa.exports=fa});var Ga=t((rv,qa)=>{var Mm=n("events"),za=P(),Vm=wp(),U=Z(),Km=fp(),na=_(),ja=B();class ta extends Mm{constructor(p){super();if(p=p||{},typeof p==="string")p={url:p};let i,x=p.service;if(typeof p.getSocket==="function")this.getSocket=p.getSocket;if(p.url)i=U.parseConnectionUrl(p.url),x=x||i.service;if(this.options=U.assign(!1,p,i,x&&Vm(x)),this.logger=U.getLogger(this.options,{component:this.options.component||"smtp-transport"}),this.name="SMTP",this.version=ja.version+"[client:"+ja.version+"]",this.options.auth)this.auth=this.getAuth({})}getSocket(p,i){return setImmediate(()=>i(null,!1))}getAuth(p){if(!p)return this.auth;let i=Object.assign({},this.options.auth&&typeof this.options.auth==="object"?this.options.auth:{},p&&typeof p==="object"?p:{});if(Object.keys(i).length===0)return!1;switch((i.type||"").toString().toUpperCase()){case"OAUTH2":{if(!i.service&&!i.user)return!1;let x=new Km(i,this.logger);return x.provisionCallback=this.mailer&&this.mailer.get("oauth2_provision_cb")||x.provisionCallback,x.on("token",(a)=>this.mailer.emit("token",a)),x.on("error",(a)=>this.emit("error",a)),{type:"OAUTH2",user:i.user,oauth2:x,method:"XOAUTH2"}}default:return{type:(i.type||"").toString().toUpperCase()||"LOGIN",user:i.user,credentials:{user:i.user||"",pass:i.pass,options:i.options},method:(i.method||"").trim().toUpperCase()||this.options.authMethod||!1}}}send(p,i){this.getSocket(this.options,(x,a)=>{if(x)return i(x);let m=!1,v=this.options;if(a&&a.connection)this.logger.info({tnx:"proxy",remoteAddress:a.connection.remoteAddress,remotePort:a.connection.remotePort,destHost:v.host||"",destPort:v.port||"",action:"connected"},"Using proxied socket from %s:%s to %s:%s",a.connection.remoteAddress,a.connection.remotePort,v.host||"",v.port||""),v=Object.assign(U.assign(!1,v),a);let c=new za(v);c.once("error",(o)=>{if(m)return;return m=!0,c.close(),i(o)}),c.once("end",()=>{if(m)return;let o=setTimeout(()=>{if(m)return;m=!0;let d=Error("Unexpected socket close");if(c&&c._socket&&c._socket.upgrading)d.code=na.ETLS;i(d)},1000);try{o.unref()}catch(d){}});let l=()=>{let o=p.message.getEnvelope(),d=p.message.messageId(),g=[].concat(o.to||[]);if(g.length>3)g.push("...and "+g.splice(2).length+" more");if(p.data.dsn)o.dsn=p.data.dsn;if(p.data.requireTLSExtensionEnabled)o.requireTLSExtensionEnabled=p.data.requireTLSExtensionEnabled;this.logger.info({tnx:"send",messageId:d},"Sending message %s to <%s>",d,g.join(", ")),c.send(o,p.message.createReadStream(),(f,w)=>{if(m=!0,c.close(),f)return this.logger.error({err:f,tnx:"send"},"Send error for %s: %s",d,f.message),i(f);w.envelope={from:o.from,to:o.to},w.messageId=d;try{return i(null,w)}catch(j){this.logger.error({err:j,tnx:"callback"},"Callback error for %s: %s",d,j.message)}})};c.connect(()=>{if(m)return;let o=this.getAuth(p.data.auth);if(o&&(c.allowsAuth||v.forceAuth))c.login(o,(d)=>{if(o&&o!==this.auth&&o.oauth2)o.oauth2.removeAllListeners();if(m)return;if(d)return m=!0,c.close(),i(d);l()});else l()})})}verify(p){let i;if(!p)i=new Promise((x,a)=>{p=U.callbackPromise(x,a)});return this.getSocket(this.options,(x,a)=>{if(x)return p(x);let m=this.options;if(a&&a.connection)this.logger.info({tnx:"proxy",remoteAddress:a.connection.remoteAddress,remotePort:a.connection.remotePort,destHost:m.host||"",destPort:m.port||"",action:"connected"},"Using proxied socket from %s:%s to %s:%s",a.connection.remoteAddress,a.connection.remotePort,m.host||"",m.port||""),m=Object.assign(U.assign(!1,m),a);let v=new za(m),c=!1;v.once("error",(o)=>{if(c)return;return c=!0,v.close(),p(o)}),v.once("end",()=>{if(c)return;return c=!0,p(Error("Connection closed"))});let l=()=>{if(c)return;return c=!0,v.quit(),p(null,!0)};v.connect(()=>{if(c)return;let o=this.getAuth({});if(o&&(v.allowsAuth||m.forceAuth))v.login(o,(d)=>{if(c)return;if(d)return c=!0,v.close(),p(d);l()});else if(!o&&v.allowsAuth&&m.forceAuth){let d=Error("Authentication info was not provided");return d.code=na.ENOAUTH,c=!0,v.close(),p(d)}else l()})}),i}close(){if(this.auth&&this.auth.oauth2)this.auth.oauth2.removeAllListeners();this.emit("close")}}qa.exports=ta});var Ba=t((ev,$a)=>{var{spawn:Sm}=n("child_process"),Um=B(),Hm=Z(),gp=_();class Za{constructor(p){if(p=p||{},this._spawn=Sm,this.options=p,this.name="Sendmail",this.version=Um.version,this.path="sendmail",this.args=!1,this.logger=Hm.getLogger(this.options,{component:this.options.component||"sendmail"}),typeof p==="string")this.path=p;else if(typeof p==="object"){if(p.path)this.path=p.path;if(Array.isArray(p.args))this.args=p.args}}send(p,i){p.message.keepBcc=!0;let x=p.data.envelope||p.message.getEnvelope(),a=p.message.messageId(),m;if([].concat(x.from||[]).concat(x.to||[]).some((d)=>/^-/.test(d))){let d=Error("Can not send mail. Invalid envelope addresses.");return d.code=gp.ESENDMAIL,i(d)}let c=this.args?["-i"].concat(this.args).concat(x.to):["-i"].concat(x.from?["-f",x.from]:[]).concat(x.to),l=(d)=>{if(m)return;if(m=!0,typeof i==="function"){if(d)return i(d);return i(null,{envelope:x,messageId:a,response:"Messages queued for delivery"})}},o;try{o=this._spawn(this.path,c)}catch(d){return this.logger.error({err:d,tnx:"spawn",messageId:a},"Error occurred while spawning sendmail. %s",d.message),l(d)}if(o){o.on("error",(f)=>{this.logger.error({err:f,tnx:"spawn",messageId:a},"Error occurred when sending message %s. %s",a,f.message),l(f)}),o.once("exit",(f)=>{if(!f)return l();let w=Error(f===127?"Sendmail command not found, process exited with code "+f:"Sendmail exited with code "+f);w.code=gp.ESENDMAIL,this.logger.error({err:w,tnx:"stdin",messageId:a},"Error sending message %s to sendmail. %s",a,w.message),l(w)}),o.once("close",l),o.stdin.on("error",(f)=>{this.logger.error({err:f,tnx:"stdin",messageId:a},"Error occurred when piping message %s to sendmail. %s",a,f.message),l(f)});let d=[].concat(x.to||[]);if(d.length>3)d.push("...and "+d.splice(2).length+" more");this.logger.info({tnx:"send",messageId:a},"Sending message %s to <%s>",a,d.join(", "));let g=p.message.createReadStream();g.once("error",(f)=>{this.logger.error({err:f,tnx:"stdin",messageId:a},"Error occurred when generating message %s. %s",a,f.message),o.kill("SIGINT"),l(f)}),g.pipe(o.stdin)}else{let d=Error("sendmail was not found");return d.code=gp.ESENDMAIL,l(d)}}}$a.exports=Za});var Aa=t((pc,Qa)=>{var Fm=B(),Em=Z();class _a{constructor(p){p=p||{},this.options=p,this.name="StreamTransport",this.version=Fm.version,this.logger=Em.getLogger(this.options,{component:this.options.component||"stream-transport"}),this.winbreak=["win","windows","dos",`\r
|
|
49
|
+
`].includes((p.newline||"").toString().toLowerCase())}send(p,i){p.message.keepBcc=!0;let x=p.data.envelope||p.message.getEnvelope(),a=p.message.messageId(),m=[].concat(x.to||[]);if(m.length>3)m.push("...and "+m.splice(2).length+" more");this.logger.info({tnx:"send",messageId:a},"Sending message %s to <%s> using %s line breaks",a,m.join(", "),this.winbreak?"<CR><LF>":"<LF>"),setImmediate(()=>{let v;try{v=p.message.createReadStream()}catch(o){return this.logger.error({err:o,tnx:"send",messageId:a},"Creating send stream failed for %s. %s",a,o.message),i(o)}if(!this.options.buffer)return v.once("error",(o)=>{this.logger.error({err:o,tnx:"send",messageId:a},"Failed creating message for %s. %s",a,o.message)}),i(null,{envelope:x,messageId:a,message:v});let c=[],l=0;v.on("readable",()=>{let o;while((o=v.read())!==null)c.push(o),l+=o.length}),v.once("error",(o)=>{return this.logger.error({err:o,tnx:"send",messageId:a},"Failed creating message for %s. %s",a,o.message),i(o)}),v.on("end",()=>i(null,{envelope:x,messageId:a,message:Buffer.concat(c,l)}))})}}Qa.exports=_a});var Xa=t((ic,Wa)=>{var Im=B(),Nm=Z();class Ya{constructor(p){p=p||{},this.options=p,this.name="JSONTransport",this.version=Im.version,this.logger=Nm.getLogger(this.options,{component:this.options.component||"json-transport"})}send(p,i){p.message.keepBcc=!0;let x=p.data.envelope||p.message.getEnvelope(),a=p.message.messageId(),m=[].concat(x.to||[]);if(m.length>3)m.push("...and "+m.splice(2).length+" more");this.logger.info({tnx:"send",messageId:a},"Composing JSON structure of %s to <%s>",a,m.join(", ")),setImmediate(()=>{p.normalize((v,c)=>{if(v)return this.logger.error({err:v,tnx:"send",messageId:a},"Failed building JSON structure for %s. %s",a,v.message),i(v);return delete c.envelope,delete c.normalizedHeaders,i(null,{envelope:x,messageId:a,message:this.options.skipEncoding?c:JSON.stringify(c)})})})}}Wa.exports=Ya});var Ka=t((ac,Va)=>{var Cm=n("events"),Rm=B(),Ja=Z(),Tm=ap(),Dm=D();class Ma extends Cm{constructor(p){super();p=p||{},this.options=p,this.ses=this.options.SES,this.name="SESTransport",this.version=Rm.version,this.logger=Ja.getLogger(this.options,{component:this.options.component||"ses-transport"})}getRegion(p){if(this.ses.sesClient.config&&typeof this.ses.sesClient.config.region==="function")return this.ses.sesClient.config.region().then((i)=>p(null,i)).catch((i)=>p(i));return p(null,!1)}send(p,i){let x=p.message._headers.find((l)=>/^from$/i.test(l.key));if(x){let l=new Dm("text/plain");x=l._convertAddresses(l._parseAddresses(x.value))}let a=p.data.envelope||p.message.getEnvelope(),m=p.message.messageId(),v=[].concat(a.to||[]);if(v.length>3)v.push("...and "+v.splice(2).length+" more");this.logger.info({tnx:"send",messageId:m},"Sending message %s to <%s>",m,v.join(", "));let c=(l)=>{if(!p.data._dkim)p.data._dkim={};if(p.data._dkim.skipFields&&typeof p.data._dkim.skipFields==="string")p.data._dkim.skipFields+=":date:message-id";else p.data._dkim.skipFields="date:message-id";let o=p.message.createReadStream(),d=o.pipe(new Tm),g=[],f=0;d.on("readable",()=>{let w;while((w=d.read())!==null)g.push(w),f+=w.length}),o.once("error",(w)=>d.emit("error",w)),d.once("error",(w)=>l(w)),d.once("end",()=>l(null,Buffer.concat(g,f)))};setImmediate(()=>c((l,o)=>{if(l)return this.logger.error({err:l,tnx:"send",messageId:m},"Failed creating message for %s. %s",m,l.message),i(l);let d=Object.assign({Content:{Raw:{Data:o}},FromEmailAddress:x||a.from,Destination:{ToAddresses:a.to}},p.data.ses||{});this.getRegion((g,f)=>{if(g||!f)f="us-east-1";let w=new this.ses.SendEmailCommand(d);this.ses.sesClient.send(w).then((z)=>{if(f==="us-east-1")f="email";i(null,{envelope:{from:a.from,to:a.to},messageId:"<"+z.MessageId+(!/@/.test(z.MessageId)?"@"+f+".amazonses.com":"")+">",response:z.MessageId,raw:o})}).catch((z)=>{this.logger.error({err:z,tnx:"send"},"Send error for %s: %s",m,z.message),i(z)})})}))}verify(p){let i;if(!p)i=new Promise((m,v)=>{p=Ja.callbackPromise(m,v)});let x=(m)=>{if(m&&!["InvalidParameterValue","MessageRejected"].includes(m.code||m.Code||m.name))return p(m);return p(null,!0)},a={Content:{Raw:{Data:Buffer.from(`From: <invalid@invalid>\r
|
|
50
50
|
To: <invalid@invalid>\r
|
|
51
51
|
Subject: Invalid\r
|
|
52
52
|
\r
|
|
53
|
-
Invalid`)}},FromEmailAddress:"invalid@invalid",Destination:{ToAddresses:["invalid@invalid"]}};return this.getRegion((m,v)=>{if(m||!v)v="us-east-1";let
|
|
54
|
-
export{
|
|
53
|
+
Invalid`)}},FromEmailAddress:"invalid@invalid",Destination:{ToAddresses:["invalid@invalid"]}};return this.getRegion((m,v)=>{if(m||!v)v="us-east-1";let c=new this.ses.SendEmailCommand(a);this.ses.sesClient.send(c).then((o)=>x(null,o)).catch((o)=>x(o))}),i}}Va.exports=Ma});var qp=["sunnylqm@qq.com"];var jv=(p)=>qp.includes(p);var Fa=/^[A-Za-z0-9.!#$%&'*+/=?^_`{|}~-]+@[A-Za-z0-9](?:[A-Za-z0-9-]{0,61}[A-Za-z0-9])?(?:\.[A-Za-z0-9](?:[A-Za-z0-9-]{0,61}[A-Za-z0-9])?)+$/;function Gp(p){return p.trim()}function Ea(p){let i=Gp(p);return i.length>0&&Fa.test(i)}function qv(p,i="email"){let x=Gp(p);if(!Ea(x))throw Error(`Invalid email address in ${i}: ${p}`);return x}var Zv={free:{app:3,package:30,packageSize:"30m",bundle:30,bundleSize:"3m",pv:1000},standard:{app:5,package:50,packageSize:"150m",bundle:50,bundleSize:"15m",pv:1e4},premium:{app:10,package:60,packageSize:"500m",bundle:60,bundleSize:"50m",pv:1e5},pro:{app:50,package:100,packageSize:"2000m",bundle:100,bundleSize:"200m",pv:1e6},vip1:{app:50,package:100,packageSize:"2000m",bundle:100,bundleSize:"200m",pv:1e7},vip2:{app:50,package:100,packageSize:"2000m",bundle:100,bundleSize:"200m",pv:50000000},vip3:{app:50,package:100,packageSize:"2000m",bundle:100,bundleSize:"200m",pv:1e8}},$v={free:{price:0,title:"Pushy \u70ED\u66F4\u65B0\u670D\u52A1\u514D\u8D39\u7248",summary:"Pushy \u70ED\u66F4\u65B0\u670D\u52A1\u514D\u8D39\u7248"},standard:{price:800,title:"Pushy \u70ED\u66F4\u65B0\u670D\u52A1\u6807\u51C6\u7248",summary:"Pushy \u70ED\u66F4\u65B0\u670D\u52A1\u6807\u51C6\u7248\u4E00\u5E74\u671F\u670D\u52A1"},premium:{price:2400,title:"Pushy \u70ED\u66F4\u65B0\u670D\u52A1\u9AD8\u7EA7\u7248",summary:"Pushy \u70ED\u66F4\u65B0\u670D\u52A1\u9AD8\u7EA7\u7248\u4E00\u5E74\u671F\u670D\u52A1"},pro:{price:7200,title:"Pushy \u70ED\u66F4\u65B0\u670D\u52A1\u4E13\u4E1A\u7248",summary:"Pushy \u70ED\u66F4\u65B0\u670D\u52A1\u4E13\u4E1A\u7248\u4E00\u5E74\u671F\u670D\u52A1"},vip1:{price:30000,title:"Pushy \u70ED\u66F4\u65B0\u670D\u52A1\u5927\u5BA2\u6237 VIP1",summary:"Pushy \u70ED\u66F4\u65B0\u670D\u52A1\u5927\u5BA2\u6237 VIP1 \u4E00\u5E74\u671F\u670D\u52A1"},vip2:{price:60000,title:"Pushy \u70ED\u66F4\u65B0\u670D\u52A1\u5927\u5BA2\u6237 VIP2",summary:"Pushy \u70ED\u66F4\u65B0\u670D\u52A1\u5927\u5BA2\u6237 VIP2 \u4E00\u5E74\u671F\u670D\u52A1"},vip3:{price:120000,title:"Pushy \u70ED\u66F4\u65B0\u670D\u52A1\u5927\u5BA2\u6237 VIP3",summary:"Pushy \u70ED\u66F4\u65B0\u670D\u52A1\u5927\u5BA2\u6237 VIP3 \u4E00\u5E74\u671F\u670D\u52A1"},custom:{price:0,title:"Pushy \u70ED\u66F4\u65B0\u670D\u52A1\u5B9A\u5236\u7248",summary:"Pushy \u70ED\u66F4\u65B0\u670D\u52A1\u5B9A\u5236\u7248\u4E00\u5E74\u671F\u670D\u52A1"}};var Pm=Di(),Om=Z(),bm=ga(),Lm=Ga(),ym=Ba(),um=Aa(),hm=Xa(),sm=Ka(),km=_(),xc=H(),mc=B(),vc=(process.env.ETHEREAL_API||"https://api.nodemailer.com").replace(/\/+$/,""),cc=(process.env.ETHEREAL_WEB||"https://ethereal.email").replace(/\/+$/,""),lc=(process.env.ETHEREAL_API_KEY||"").replace(/\s*/g,"")||null,oc=["true","yes","y","1"].includes((process.env.ETHEREAL_CACHE||"yes").toString().trim().toLowerCase());var zp=function(p,i){let x;if(typeof p==="object"&&typeof p.send!=="function"||typeof p==="string"&&/^(smtps?|direct):/i.test(p)){let a=typeof p==="string"?p:p.url;if(a)x=Om.parseConnectionUrl(a);else x=p;if(x.pool)p=new bm(x);else if(x.sendmail)p=new ym(x);else if(x.streamTransport)p=new um(x);else if(x.jsonTransport)p=new hm(x);else if(x.SES){if(x.SES.ses&&x.SES.aws){let m=Error("Using legacy SES configuration, expecting @aws-sdk/client-sesv2, see https://nodemailer.com/transports/ses/");throw m.code=km.ECONFIG,m}p=new sm(x)}else p=new Lm(x)}return new Pm(p,x,i)};var np={pool:!0,host:process.env.SMTP_HOST,secure:!0,rateLimit:10,auth:{user:process.env.SMTP_USER,pass:process.env.SMTP_PASS},from:process.env.SMTP_FROM};var em=3000,pv=2,iv=30000,R=null,Sa=Promise.resolve(),Ua=0;function jp(p,i){let x=process.env[p]?.trim();if(!x)return i;let a=Number(x);return Number.isInteger(a)&&a>=0?a:i}var av=jp("SMTP_SEND_INTERVAL_MS",em),xv=jp("SMTP_TRANSIENT_RETRY_COUNT",pv),mv=jp("SMTP_TRANSIENT_RETRY_DELAY_MS",iv);function Ha(p){return new Promise((i)=>setTimeout(i,p))}function vv(){if(!R)R=zp(np);return R}function cv(){R?.close(),R=null}function lv(p){return mv*2**p}function ov(p){if(!(p instanceof Error))return!1;let{code:i,response:x,responseCode:a}=p;if(typeof a==="number"&&a>=400&&a<500)return!0;if(i&&["ECONNECTION","ECONNRESET","ESOCKET","ETIMEDOUT"].includes(i))return!0;return/transient reject|try again later|greylist|temporar/i.test(`${p.message} ${x??""}`)}async function dv(){let p=Ua-Date.now();if(p>0)await Ha(p)}function fv(p){let i=Sa.then(p,p);return Sa=i.then(()=>{return},()=>{return}),i}async function wv(p,i=!0){for(let x=0;;x+=1){await dv();try{let a=await vv().sendMail({...p,from:p.from??np.from});if(Array.isArray(a.rejected)&&a.rejected.length>0)console.error("SMTP rejected recipients",{rejected:a.rejected,subject:p.subject});return a}catch(a){let m=a,v=i&&ov(m)&&x<xv;if(console.error("Failed to send email",{error:a,message:m instanceof Error?m.message:String(m),subject:p.subject,to:p.to,cc:p.cc,bcc:p.bcc,code:m.code,command:m.command,response:m.response,responseCode:m.responseCode,attempt:x+1,willRetry:v}),cv(),!v)throw a;let c=lv(x);console.warn("Retrying email send after transient SMTP failure",{subject:p.subject,to:p.to,retryDelayMs:c,attempt:x+1}),await Ha(c)}finally{Ua=Date.now()+av}}}async function zc(p,i={}){try{return await fv(()=>wv(p,i.retryOnError!==!1))}catch(x){if(i.throwOnError)throw x;return}}
|
|
54
|
+
export{qp as a,jv as b,Fa as c,qv as d,Zv as e,$v as f,zc as g};
|
|
55
55
|
|
|
56
|
-
//# debugId=
|
|
57
|
-
//# sourceMappingURL=chunk-
|
|
56
|
+
//# debugId=6C4D2A47A29A298264756E2164756E21
|
|
57
|
+
//# sourceMappingURL=chunk-0q3j183c.js.map
|