Socket
Socket
Sign inDemoInstall

email-addresses

Package Overview
Dependencies
Maintainers
1
Versions
14
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

email-addresses - npm Package Compare versions

Comparing version 3.0.3 to 3.1.0

2

bower.json
{
"name": "email-addresses",
"version": "3.0.3",
"version": "3.1.0",
"homepage": "https://github.com/jackbearheart/email-addresses",

@@ -5,0 +5,0 @@ "authors": [

## 2019-10-24 - 3.1.0
- Added "atInDisplayName" option (#46)
- Added "comments" field to result mailbox (#46)
## 2018-11-09 - 3.0.3

@@ -3,0 +7,0 @@ - No changes

// email-addresses.js - RFC 5322 email address parser
// v 3.0.3
// v 3.1.0
//

@@ -662,4 +662,9 @@ // http://tools.ietf.org/html/rfc5322

function obsPhrase() {
return opts.strict ? null : wrap('obs-phrase', and(
if (opts.strict ) return null;
return opts.atInDisplayName ? wrap('obs-phrase', and(
word,
star(or(word, literal('.'), literal('@'), colwsp(cfws)))
)()) :
wrap('obs-phrase', and(
word,
star(or(word, literal('.'), colwsp(cfws)))

@@ -897,4 +902,6 @@ )());

var aspec = findNode('addr-spec', mailbox);
var comments = findAllNodes('cfws', mailbox);
var cfws = findAllNodes('cfws', mailbox);
var comments = findAllNodesNoChildren(['comment'], mailbox);
var local = findNode('local-part', aspec);

@@ -909,3 +916,3 @@ var domain = findNode('domain', aspec);

domain: domain,
comments: comments
comments: cfws
},

@@ -917,2 +924,3 @@ type: mailbox.name, // 'mailbox'

domain: grabSemantic(domain),
comments: concatComments(comments),
groupName: grabSemantic(mailbox.groupName),

@@ -936,2 +944,12 @@ };

function concatComments(comments) {
var result = '';
if (comments) {
for (var i = 0; i < comments.length; i += 1) {
result += grabSemantic(comments[i]);
}
}
return result;
}
function oneResult(result) {

@@ -1054,2 +1072,3 @@ if (!result) { return null; }

strict: false,
atInDisplayName: false
};

@@ -1056,0 +1075,0 @@

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

(function(a){function b(a){function b(){return bG<bH}function c(){return bF[bG]}function d(){return bG}function e(a){bG=a}function f(){bG+=1}function g(){bG=0,bH=bF.length}function i(a,b){return{name:a,tokens:b||"",semantic:b||"",children:[]}}function j(a,b){var c;return b===null?null:(c=i(a),c.tokens=b.tokens,c.semantic=b.semantic,c.children.push(b),c)}function k(a,b){return b!==null&&(a.tokens+=b.tokens,a.semantic+=b.semantic),a.children.push(b),a}function l(a){var d;return b()?(d=c(),a(d)?(f(),i("token",d)):null):null}function m(a){return function(){return j("literal",l(function(b){return b===a}))}}function n(){var a=arguments;return function b(){var b,c,f,g;g=d(),c=i("and");for(b=0;b<a.length;b+=1){f=a[b]();if(f===null)return e(g),null;k(c,f)}return c}}function o(){var a=arguments;return function b(){var b,c,f;f=d();for(b=0;b<a.length;b+=1){c=a[b]();if(c!==null)return c;e(f)}return null}}function p(a){return function b(){var b,c;return c=d(),b=a(),b!==null?b:(e(c),i("opt"))}}function q(a){return function b(){var b=a();return b!==null&&(b.semantic=""),b}}function r(a){return function b(){var b=a();return b!==null&&b.semantic.length>0&&(b.semantic=" "),b}}function s(a,b){return function c(){var c,f,g,h,j;h=d(),c=i("star"),g=0,j=b===undefined?0:b;while((f=a())!==null)g+=1,k(c,f);return g>=j?c:(e(h),null)}}function t(a){return a.replace(/([ \t]|\r\n)+/g," ").replace(/^\s*/,"").replace(/\s*$/,"")}function u(a){return a.charCodeAt(0)>=128}function v(){return j("cr",m("\r")())}function w(){return j("crlf",n(v,z)())}function x(){return j("dquote",m('"')())}function y(){return j("htab",m("\t")())}function z(){return j("lf",m("\n")())}function A(){return j("sp",m(" ")())}function B(){return j("vchar",l(function b(b){var c=b.charCodeAt(0),d=33<=c&&c<=126;return a.rfc6532&&(d=d||u(b)),d}))}function C(){return j("wsp",o(A,y)())}function D(){var a=j("quoted-pair",o(n(m("\\"),o(B,C)),bk)());return a===null?null:(a.semantic=a.semantic[1],a)}function E(){return j("fws",o(bm,n(p(n(s(C),q(w))),s(C,1)))())}function F(){return j("ctext",o(function(){return l(function b(b){var c=b.charCodeAt(0),d=33<=c&&c<=39||42<=c&&c<=91||93<=c&&c<=126;return a.rfc6532&&(d=d||u(b)),d})},bi)())}function G(){return j("ccontent",o(F,D,H)())}function H(){return j("comment",n(m("("),s(n(p(E),G)),p(E),m(")"))())}function I(){return j("cfws",o(n(s(n(p(E),H),1),p(E)),E)())}function J(){return j("atext",l(function b(b){var c="a"<=b&&b<="z"||"A"<=b&&b<="Z"||"0"<=b&&b<="9"||["!","#","$","%","&","'","*","+","-","/","=","?","^","_","`","{","|","}","~"].indexOf(b)>=0;return a.rfc6532&&(c=c||u(b)),c}))}function K(){return j("atom",n(r(p(I)),s(J,1),r(p(I)))())}function L(){var a,b;return a=j("dot-atom-text",s(J,1)()),a===null?a:(b=s(n(m("."),s(J,1)))(),b!==null&&k(a,b),a)}function M(){return j("dot-atom",n(q(p(I)),L,q(p(I)))())}function N(){return j("qtext",o(function(){return l(function b(b){var c=b.charCodeAt(0),d=33===c||35<=c&&c<=91||93<=c&&c<=126;return a.rfc6532&&(d=d||u(b)),d})},bj)())}function O(){return j("qcontent",o(N,D)())}function P(){return j("quoted-string",n(q(p(I)),q(x),s(n(p(r(E)),O)),p(q(E)),q(x),q(p(I)))())}function Q(){return j("word",o(K,P)())}function R(){return j("phrase",o(bl,s(Q,1))())}function S(){return j("address",o(T,W)())}function T(){return j("mailbox",o(U,bd)())}function U(){return j("name-addr",n(p(X),V)())}function V(){return j("angle-addr",o(n(q(p(I)),m("<"),bd,m(">"),q(p(I))),bn)())}function W(){return j("group",n(X,m(":"),p($),m(";"),q(p(I)))())}function X(){return j("display-name",function a(){var a=R();return a!==null&&(a.semantic=t(a.semantic)),a}())}function Y(){return j("mailbox-list",o(n(T,s(n(m(","),T))),bq)())}function Z(){return j("address-list",o(n(S,s(n(m(","),S))),br)())}function $(){return j("group-list",o(Y,q(I),bs)())}function _(){return j("local-part",o(bt,M,P)())}function ba(){return j("dtext",o(function(){return l(function b(b){var c=b.charCodeAt(0),d=33<=c&&c<=90||94<=c&&c<=126;return a.rfc6532&&(d=d||u(b)),d})},bv)())}function bb(){return j("domain-literal",n(q(p(I)),m("["),s(n(p(E),ba)),p(E),m("]"),q(p(I)))())}function bc(){return j("domain",function b(){var b=o(bu,M,bb)();return a.rejectTLD&&b&&b.semantic&&b.semantic.indexOf(".")<0?null:(b&&(b.semantic=b.semantic.replace(/\s+/g,"")),b)}())}function bd(){return j("addr-spec",n(_,m("@"),bc)())}function be(){return j("from",o(Y,Z)())}function bf(){return j("sender",o(T,S)())}function bg(){return j("reply-to",Z())}function bh(){return a.strict?null:j("obs-NO-WS-CTL",l(function(a){var b=a.charCodeAt(0);return 1<=b&&b<=8||11===b||12===b||14<=b&&b<=31||127===b}))}function bi(){return a.strict?null:j("obs-ctext",bh())}function bj(){return a.strict?null:j("obs-qtext",bh())}function bk(){return a.strict?null:j("obs-qp",n(m("\\"),o(m("\0"),bh,z,v))())}function bl(){return a.strict?null:j("obs-phrase",n(Q,s(o(Q,m("."),r(I))))())}function bm(){return a.strict?null:j("obs-FWS",s(n(q(p(w)),C),1)())}function bn(){return a.strict?null:j("obs-angle-addr",n(q(p(I)),m("<"),bo,bd,m(">"),q(p(I)))())}function bo(){return a.strict?null:j("obs-route",n(bp,m(":"))())}function bp(){return a.strict?null:j("obs-domain-list",n(s(o(q(I),m(","))),m("@"),bc,s(n(m(","),q(p(I)),p(n(m("@"),bc)))))())}function bq(){return a.strict?null:j("obs-mbox-list",n(s(n(q(p(I)),m(","))),T,s(n(m(","),p(n(T,q(I))))))())}function br(){return a.strict?null:j("obs-addr-list",n(s(n(q(p(I)),m(","))),S,s(n(m(","),p(n(S,q(I))))))())}function bs(){return a.strict?null:j("obs-group-list",n(s(n(q(p(I)),m(",")),1),q(p(I)))())}function bt(){return a.strict?null:j("obs-local-part",n(Q,s(n(m("."),Q)))())}function bu(){return a.strict?null:j("obs-domain",n(K,s(n(m("."),K)))())}function bv(){return a.strict?null:j("obs-dtext",o(bh,D)())}function bw(a,b){var c,d,e;if(b===null||b===undefined)return null;d=[b];while(d.length>0){e=d.pop();if(e.name===a)return e;for(c=e.children.length-1;c>=0;c-=1)d.push(e.children[c])}return null}function bx(a,b){var c,d,e,f;if(b===null||b===undefined)return null;d=[b],f=[];while(d.length>0){e=d.pop(),e.name===a&&f.push(e);for(c=e.children.length-1;c>=0;c-=1)d.push(e.children[c])}return f}function by(a,b){var c,d,e,f,g;if(b===null||b===undefined)return null;d=[b],f=[],g={};for(c=0;c<a.length;c+=1)g[a[c]]=!0;while(d.length>0){e=d.pop();if(e.name in g)f.push(e);else for(c=e.children.length-1;c>=0;c-=1)d.push(e.children[c])}return f}function bz(b){var c,d,e,f,g;if(b===null)return null;c=[],d=by(["group","mailbox"],b);for(e=0;e<d.length;e+=1)f=d[e],f.name==="group"?c.push(bA(f)):f.name==="mailbox"&&c.push(bB(f));return g={ast:b,addresses:c},a.simple&&(g=bD(g)),a.oneResult?bE(g):a.simple?g&&g.addresses:g}function bA(a){var b,c=bw("display-name",a),d=[],e=by(["mailbox"],a);for(b=0;b<e.length;b+=1)d.push(bB(e[b]));return{node:a,parts:{name:c},type:a.name,name:bC(c),addresses:d}}function bB(a){var b=bw("display-name",a),c=bw("addr-spec",a),d=bx("cfws",a),e=bw("local-part",c),f=bw("domain",c);return{node:a,parts:{name:b,address:c,local:e,domain:f,comments:d},type:a.name,name:bC(b),address:bC(c),local:bC(e),domain:bC(f),groupName:bC(a.groupName)}}function bC(a){return a!==null&&a!==undefined?a.semantic:null}function bD(a){var b;if(a&&a.addresses)for(b=0;b<a.addresses.length;b+=1)delete a.addresses[b].node;return a}function bE(b){return b?!a.partial&&b.addresses.length>1?null:b.addresses&&b.addresses[0]:null}var bF,bG,bH,bI,bJ;a=h(a,{});if(a===null)return null;bF=a.input,bJ={address:S,"address-list":Z,"angle-addr":V,from:be,group:W,mailbox:T,"mailbox-list":Y,"reply-to":bg,sender:bf}[a.startAt]||Z;if(!a.strict){g(),a.strict=!0,bI=bJ(bF);if(a.partial||!b())return bz(bI);a.strict=!1}return g(),bI=bJ(bF),!a.partial&&b()?null:bz(bI)}function c(a){return b(h(a,{oneResult:!0,rfc6532:!0,simple:!0,startAt:"address-list"}))}function d(a){return b(h(a,{rfc6532:!0,simple:!0,startAt:"address-list"}))}function e(a){return b(h(a,{rfc6532:!0,simple:!0,startAt:"from"}))}function f(a){return b(h(a,{oneResult:!0,rfc6532:!0,simple:!0,startAt:"sender"}))}function g(a){return b(h(a,{rfc6532:!0,simple:!0,startAt:"reply-to"}))}function h(a,b){function c(a){return Object.prototype.toString.call(a)==="[object String]"}function d(a){return a===Object(a)}function e(a){return a===null||a===undefined}var f,g;if(c(a))a={input:a};else if(!d(a))return null;if(!c(a.input))return null;if(!b)return null;f={oneResult:!1,partial:!1,rejectTLD:!1,rfc6532:!1,simple:!1,startAt:"address-list",strict:!1};for(g in f)e(a[g])&&(a[g]=e(b[g])?f[g]:b[g]);return a}"use strict",b.parseOneAddress=c,b.parseAddressList=d,b.parseFrom=e,b.parseSender=f,b.parseReplyTo=g,typeof module!="undefined"&&typeof module.exports!="undefined"?module.exports=b:a.emailAddresses=b})(this);
(function(global){"use strict";function parse5322(opts){function inStr(){return pos<len}function curTok(){return parseString[pos]}function getPos(){return pos}function setPos(i){pos=i}function nextTok(){pos+=1}function initialize(){pos=0;len=parseString.length}function o(name,value){return{name:name,tokens:value||"",semantic:value||"",children:[]}}function wrap(name,ast){var n;if(ast===null){return null}n=o(name);n.tokens=ast.tokens;n.semantic=ast.semantic;n.children.push(ast);return n}function add(parent,child){if(child!==null){parent.tokens+=child.tokens;parent.semantic+=child.semantic}parent.children.push(child);return parent}function compareToken(fxnCompare){var tok;if(!inStr()){return null}tok=curTok();if(fxnCompare(tok)){nextTok();return o("token",tok)}return null}function literal(lit){return function literalFunc(){return wrap("literal",compareToken(function(tok){return tok===lit}))}}function and(){var args=arguments;return function andFunc(){var i,s,result,start;start=getPos();s=o("and");for(i=0;i<args.length;i+=1){result=args[i]();if(result===null){setPos(start);return null}add(s,result)}return s}}function or(){var args=arguments;return function orFunc(){var i,result,start;start=getPos();for(i=0;i<args.length;i+=1){result=args[i]();if(result!==null){return result}setPos(start)}return null}}function opt(prod){return function optFunc(){var result,start;start=getPos();result=prod();if(result!==null){return result}else{setPos(start);return o("opt")}}}function invis(prod){return function invisFunc(){var result=prod();if(result!==null){result.semantic=""}return result}}function colwsp(prod){return function collapseSemanticWhitespace(){var result=prod();if(result!==null&&result.semantic.length>0){result.semantic=" "}return result}}function star(prod,minimum){return function starFunc(){var s,result,count,start,min;start=getPos();s=o("star");count=0;min=minimum===undefined?0:minimum;while((result=prod())!==null){count=count+1;add(s,result)}if(count>=min){return s}else{setPos(start);return null}}}function collapseWhitespace(s){return s.replace(/([ \t]|\r\n)+/g," ").replace(/^\s*/,"").replace(/\s*$/,"")}function isUTF8NonAscii(tok){return tok.charCodeAt(0)>=128}function cr(){return wrap("cr",literal("\r")())}function crlf(){return wrap("crlf",and(cr,lf)())}function dquote(){return wrap("dquote",literal('"')())}function htab(){return wrap("htab",literal("\t")())}function lf(){return wrap("lf",literal("\n")())}function sp(){return wrap("sp",literal(" ")())}function vchar(){return wrap("vchar",compareToken(function vcharFunc(tok){var code=tok.charCodeAt(0);var accept=33<=code&&code<=126;if(opts.rfc6532){accept=accept||isUTF8NonAscii(tok)}return accept}))}function wsp(){return wrap("wsp",or(sp,htab)())}function quotedPair(){var qp=wrap("quoted-pair",or(and(literal("\\"),or(vchar,wsp)),obsQP)());if(qp===null){return null}qp.semantic=qp.semantic[1];return qp}function fws(){return wrap("fws",or(obsFws,and(opt(and(star(wsp),invis(crlf))),star(wsp,1)))())}function ctext(){return wrap("ctext",or(function ctextFunc1(){return compareToken(function ctextFunc2(tok){var code=tok.charCodeAt(0);var accept=33<=code&&code<=39||42<=code&&code<=91||93<=code&&code<=126;if(opts.rfc6532){accept=accept||isUTF8NonAscii(tok)}return accept})},obsCtext)())}function ccontent(){return wrap("ccontent",or(ctext,quotedPair,comment)())}function comment(){return wrap("comment",and(literal("("),star(and(opt(fws),ccontent)),opt(fws),literal(")"))())}function cfws(){return wrap("cfws",or(and(star(and(opt(fws),comment),1),opt(fws)),fws)())}function atext(){return wrap("atext",compareToken(function atextFunc(tok){var accept="a"<=tok&&tok<="z"||"A"<=tok&&tok<="Z"||"0"<=tok&&tok<="9"||["!","#","$","%","&","'","*","+","-","/","=","?","^","_","`","{","|","}","~"].indexOf(tok)>=0;if(opts.rfc6532){accept=accept||isUTF8NonAscii(tok)}return accept}))}function atom(){return wrap("atom",and(colwsp(opt(cfws)),star(atext,1),colwsp(opt(cfws)))())}function dotAtomText(){var s,maybeText;s=wrap("dot-atom-text",star(atext,1)());if(s===null){return s}maybeText=star(and(literal("."),star(atext,1)))();if(maybeText!==null){add(s,maybeText)}return s}function dotAtom(){return wrap("dot-atom",and(invis(opt(cfws)),dotAtomText,invis(opt(cfws)))())}function qtext(){return wrap("qtext",or(function qtextFunc1(){return compareToken(function qtextFunc2(tok){var code=tok.charCodeAt(0);var accept=33===code||35<=code&&code<=91||93<=code&&code<=126;if(opts.rfc6532){accept=accept||isUTF8NonAscii(tok)}return accept})},obsQtext)())}function qcontent(){return wrap("qcontent",or(qtext,quotedPair)())}function quotedString(){return wrap("quoted-string",and(invis(opt(cfws)),invis(dquote),star(and(opt(colwsp(fws)),qcontent)),opt(invis(fws)),invis(dquote),invis(opt(cfws)))())}function word(){return wrap("word",or(atom,quotedString)())}function phrase(){return wrap("phrase",or(obsPhrase,star(word,1))())}function address(){return wrap("address",or(mailbox,group)())}function mailbox(){return wrap("mailbox",or(nameAddr,addrSpec)())}function nameAddr(){return wrap("name-addr",and(opt(displayName),angleAddr)())}function angleAddr(){return wrap("angle-addr",or(and(invis(opt(cfws)),literal("<"),addrSpec,literal(">"),invis(opt(cfws))),obsAngleAddr)())}function group(){return wrap("group",and(displayName,literal(":"),opt(groupList),literal(";"),invis(opt(cfws)))())}function displayName(){return wrap("display-name",function phraseFixedSemantic(){var result=phrase();if(result!==null){result.semantic=collapseWhitespace(result.semantic)}return result}())}function mailboxList(){return wrap("mailbox-list",or(and(mailbox,star(and(literal(","),mailbox))),obsMboxList)())}function addressList(){return wrap("address-list",or(and(address,star(and(literal(","),address))),obsAddrList)())}function groupList(){return wrap("group-list",or(mailboxList,invis(cfws),obsGroupList)())}function localPart(){return wrap("local-part",or(obsLocalPart,dotAtom,quotedString)())}function dtext(){return wrap("dtext",or(function dtextFunc1(){return compareToken(function dtextFunc2(tok){var code=tok.charCodeAt(0);var accept=33<=code&&code<=90||94<=code&&code<=126;if(opts.rfc6532){accept=accept||isUTF8NonAscii(tok)}return accept})},obsDtext)())}function domainLiteral(){return wrap("domain-literal",and(invis(opt(cfws)),literal("["),star(and(opt(fws),dtext)),opt(fws),literal("]"),invis(opt(cfws)))())}function domain(){return wrap("domain",function domainCheckTLD(){var result=or(obsDomain,dotAtom,domainLiteral)();if(opts.rejectTLD){if(result&&result.semantic&&result.semantic.indexOf(".")<0){return null}}if(result){result.semantic=result.semantic.replace(/\s+/g,"")}return result}())}function addrSpec(){return wrap("addr-spec",and(localPart,literal("@"),domain)())}function fromSpec(){return wrap("from",or(mailboxList,addressList)())}function senderSpec(){return wrap("sender",or(mailbox,address)())}function replyToSpec(){return wrap("reply-to",addressList())}function obsNoWsCtl(){return opts.strict?null:wrap("obs-NO-WS-CTL",compareToken(function(tok){var code=tok.charCodeAt(0);return 1<=code&&code<=8||(11===code||12===code)||14<=code&&code<=31||127===code}))}function obsCtext(){return opts.strict?null:wrap("obs-ctext",obsNoWsCtl())}function obsQtext(){return opts.strict?null:wrap("obs-qtext",obsNoWsCtl())}function obsQP(){return opts.strict?null:wrap("obs-qp",and(literal("\\"),or(literal("\0"),obsNoWsCtl,lf,cr))())}function obsPhrase(){if(opts.strict)return null;return opts.atInDisplayName?wrap("obs-phrase",and(word,star(or(word,literal("."),literal("@"),colwsp(cfws))))()):wrap("obs-phrase",and(word,star(or(word,literal("."),colwsp(cfws))))())}function obsFws(){return opts.strict?null:wrap("obs-FWS",star(and(invis(opt(crlf)),wsp),1)())}function obsAngleAddr(){return opts.strict?null:wrap("obs-angle-addr",and(invis(opt(cfws)),literal("<"),obsRoute,addrSpec,literal(">"),invis(opt(cfws)))())}function obsRoute(){return opts.strict?null:wrap("obs-route",and(obsDomainList,literal(":"))())}function obsDomainList(){return opts.strict?null:wrap("obs-domain-list",and(star(or(invis(cfws),literal(","))),literal("@"),domain,star(and(literal(","),invis(opt(cfws)),opt(and(literal("@"),domain)))))())}function obsMboxList(){return opts.strict?null:wrap("obs-mbox-list",and(star(and(invis(opt(cfws)),literal(","))),mailbox,star(and(literal(","),opt(and(mailbox,invis(cfws))))))())}function obsAddrList(){return opts.strict?null:wrap("obs-addr-list",and(star(and(invis(opt(cfws)),literal(","))),address,star(and(literal(","),opt(and(address,invis(cfws))))))())}function obsGroupList(){return opts.strict?null:wrap("obs-group-list",and(star(and(invis(opt(cfws)),literal(",")),1),invis(opt(cfws)))())}function obsLocalPart(){return opts.strict?null:wrap("obs-local-part",and(word,star(and(literal("."),word)))())}function obsDomain(){return opts.strict?null:wrap("obs-domain",and(atom,star(and(literal("."),atom)))())}function obsDtext(){return opts.strict?null:wrap("obs-dtext",or(obsNoWsCtl,quotedPair)())}function findNode(name,root){var i,stack,node;if(root===null||root===undefined){return null}stack=[root];while(stack.length>0){node=stack.pop();if(node.name===name){return node}for(i=node.children.length-1;i>=0;i-=1){stack.push(node.children[i])}}return null}function findAllNodes(name,root){var i,stack,node,result;if(root===null||root===undefined){return null}stack=[root];result=[];while(stack.length>0){node=stack.pop();if(node.name===name){result.push(node)}for(i=node.children.length-1;i>=0;i-=1){stack.push(node.children[i])}}return result}function findAllNodesNoChildren(names,root){var i,stack,node,result,namesLookup;if(root===null||root===undefined){return null}stack=[root];result=[];namesLookup={};for(i=0;i<names.length;i+=1){namesLookup[names[i]]=true}while(stack.length>0){node=stack.pop();if(node.name in namesLookup){result.push(node)}else{for(i=node.children.length-1;i>=0;i-=1){stack.push(node.children[i])}}}return result}function giveResult(ast){var addresses,groupsAndMailboxes,i,groupOrMailbox,result;if(ast===null){return null}addresses=[];groupsAndMailboxes=findAllNodesNoChildren(["group","mailbox"],ast);for(i=0;i<groupsAndMailboxes.length;i+=1){groupOrMailbox=groupsAndMailboxes[i];if(groupOrMailbox.name==="group"){addresses.push(giveResultGroup(groupOrMailbox))}else if(groupOrMailbox.name==="mailbox"){addresses.push(giveResultMailbox(groupOrMailbox))}}result={ast:ast,addresses:addresses};if(opts.simple){result=simplifyResult(result)}if(opts.oneResult){return oneResult(result)}if(opts.simple){return result&&result.addresses}else{return result}}function giveResultGroup(group){var i;var groupName=findNode("display-name",group);var groupResultMailboxes=[];var mailboxes=findAllNodesNoChildren(["mailbox"],group);for(i=0;i<mailboxes.length;i+=1){groupResultMailboxes.push(giveResultMailbox(mailboxes[i]))}return{node:group,parts:{name:groupName},type:group.name,name:grabSemantic(groupName),addresses:groupResultMailboxes}}function giveResultMailbox(mailbox){var name=findNode("display-name",mailbox);var aspec=findNode("addr-spec",mailbox);var cfws=findAllNodes("cfws",mailbox);var comments=findAllNodesNoChildren(["comment"],mailbox);var local=findNode("local-part",aspec);var domain=findNode("domain",aspec);return{node:mailbox,parts:{name:name,address:aspec,local:local,domain:domain,comments:cfws},type:mailbox.name,name:grabSemantic(name),address:grabSemantic(aspec),local:grabSemantic(local),domain:grabSemantic(domain),comments:concatComments(comments),groupName:grabSemantic(mailbox.groupName)}}function grabSemantic(n){return n!==null&&n!==undefined?n.semantic:null}function simplifyResult(result){var i;if(result&&result.addresses){for(i=0;i<result.addresses.length;i+=1){delete result.addresses[i].node}}return result}function concatComments(comments){var result="";if(comments){for(var i=0;i<comments.length;i+=1){result+=grabSemantic(comments[i])}}return result}function oneResult(result){if(!result){return null}if(!opts.partial&&result.addresses.length>1){return null}return result.addresses&&result.addresses[0]}var parseString,pos,len,parsed,startProduction;opts=handleOpts(opts,{});if(opts===null){return null}parseString=opts.input;startProduction={address:address,"address-list":addressList,"angle-addr":angleAddr,from:fromSpec,group:group,mailbox:mailbox,"mailbox-list":mailboxList,"reply-to":replyToSpec,sender:senderSpec}[opts.startAt]||addressList;if(!opts.strict){initialize();opts.strict=true;parsed=startProduction(parseString);if(opts.partial||!inStr()){return giveResult(parsed)}opts.strict=false}initialize();parsed=startProduction(parseString);if(!opts.partial&&inStr()){return null}return giveResult(parsed)}function parseOneAddressSimple(opts){return parse5322(handleOpts(opts,{oneResult:true,rfc6532:true,simple:true,startAt:"address-list"}))}function parseAddressListSimple(opts){return parse5322(handleOpts(opts,{rfc6532:true,simple:true,startAt:"address-list"}))}function parseFromSimple(opts){return parse5322(handleOpts(opts,{rfc6532:true,simple:true,startAt:"from"}))}function parseSenderSimple(opts){return parse5322(handleOpts(opts,{oneResult:true,rfc6532:true,simple:true,startAt:"sender"}))}function parseReplyToSimple(opts){return parse5322(handleOpts(opts,{rfc6532:true,simple:true,startAt:"reply-to"}))}function handleOpts(opts,defs){function isString(str){return Object.prototype.toString.call(str)==="[object String]"}function isObject(o){return o===Object(o)}function isNullUndef(o){return o===null||o===undefined}var defaults,o;if(isString(opts)){opts={input:opts}}else if(!isObject(opts)){return null}if(!isString(opts.input)){return null}if(!defs){return null}defaults={oneResult:false,partial:false,rejectTLD:false,rfc6532:false,simple:false,startAt:"address-list",strict:false,atInDisplayName:false};for(o in defaults){if(isNullUndef(opts[o])){opts[o]=!isNullUndef(defs[o])?defs[o]:defaults[o]}}return opts}parse5322.parseOneAddress=parseOneAddressSimple;parse5322.parseAddressList=parseAddressListSimple;parse5322.parseFrom=parseFromSimple;parse5322.parseSender=parseSenderSimple;parse5322.parseReplyTo=parseReplyToSimple;if(typeof module!=="undefined"&&typeof module.exports!=="undefined"){module.exports=parse5322}else{global.emailAddresses=parse5322}})(this);
{
"version": "3.0.3",
"version": "3.1.0",
"name": "email-addresses",

@@ -22,4 +22,4 @@ "description": "An email address parser based on rfc5322",

"devDependencies": {
"libxmljs": "~0.18.4",
"tap": "~0.4.0"
"libxmljs": "~0.19.7",
"tap": "^14.8.2"
},

@@ -26,0 +26,0 @@ "scripts": {

@@ -6,3 +6,3 @@ email-addresses.js

v 3.0.3
v 3.1.0

@@ -9,0 +9,0 @@ What?

@@ -36,2 +36,19 @@

test("address with @ in the name", function (t) {
var fxn, result;
fxn = addrs.parseOneAddress;
result = fxn({input: "ABC@abc (comment) < a@b.c>", atInDisplayName: true }) || {};
t.equal(result.name, "ABC@abc", "display name");
t.end();
});
test("address with comments", function (t) {
var fxn, result;
fxn = addrs.parseOneAddress;
result = fxn("ABC (comment) < a@b.c>" ) || {};
t.equal(result.name, "ABC", "display name");
t.equal(result.comments, '(comment)');
t.end();
});
test("simple address list function", function (t) {

@@ -38,0 +55,0 @@ var fxn, result;

SocketSocket SOC 2 Logo

Product

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

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc