diff options
Diffstat (limited to 'tools/node_modules/nodemailer/node_modules/simplesmtp/node_modules/rai/jsdoc')
24 files changed, 4834 insertions, 0 deletions
diff --git a/tools/node_modules/nodemailer/node_modules/simplesmtp/node_modules/rai/jsdoc/css/all.css b/tools/node_modules/nodemailer/node_modules/simplesmtp/node_modules/rai/jsdoc/css/all.css new file mode 100644 index 0000000..c253cb0 --- /dev/null +++ b/tools/node_modules/nodemailer/node_modules/simplesmtp/node_modules/rai/jsdoc/css/all.css @@ -0,0 +1,358 @@ +/* TABLE OF CONTENTS: + * - Browser reset + * - HTML elements + * - JsDoc styling + */ + + + + + + +/* + * BEGIN BROWSER RESET + */ + +body,div,dl,dt,dd,ul,ol,li,h1,h2,h3,h4,h5,h6,p,pre,form,fieldset,input,textarea,p,blockquote,th,td { + margin:0; + padding:0 +} +html { + height:100%; + overflow:-moz-scrollbars-vertical; + overflow-x:auto +} +table { + border:0; + border-collapse:collapse; + border-spacing:0 +} +fieldset,img { + border:0 +} +address,caption,cite,code,dfn,em,strong,th,var { + font-style:normal; + font-weight:normal +} +em,cite { + font-style:italic +} +strong { + font-weight:bold +} +ol,ul { + list-style:none +} +caption,th { + text-align:left +} +h1,h2,h3,h4,h5,h6 { + font-size:100%; + font-weight:normal; + margin:0; + padding:0 +} +q:before,q:after { + content:'' +} +abbr,acronym { + border:0 +} +section,article,header,footer,nav,aside,hgroup { + display:block +} + +/* + * END BROWSER RESET + */ + + + + + + +/* + * HTML ELEMENTS + */ + +@font-face { + font-family: 'M1m'; + src: url('fonts/mplus-1m-regular-webfont.eot'); + src: local('☺'), url('fonts/mplus-1m-regular-webfont.woff') format('woff'), url('fonts/mplus-1m-regular-webfont.ttf') format('truetype'), url('fonts/mplus-1m-regular-webfont.svg#webfontVd14f4NN') format('svg'); + font-weight: normal; + font-style: normal; +} + +@font-face { + font-family: 'M1m'; + src: url('fonts/mplus-1m-bold-webfont.eot'); + src: local('☺'), url('fonts/mplus-1m-bold-webfont.woff') format('woff'), url('fonts/mplus-1m-bold-webfont.ttf') format('truetype'), url('fonts/mplus-1m-bold-webfont.svg#webfontIjI5mZqE') format('svg'); + font-weight: bold; + font-style: normal; +} + + + +* { + line-height: 1.4em; +} + +html { + font-size: 100%; +} + +body { + font-size: 0.75em; + padding: 15px 0; + background: #eee; + background-image: -moz-linear-gradient(left, #dddddd, #f9f9f9) fixed; + background-image: -webkit-gradient(linear,left bottom,right bottom,color-stop(0, #dddddd),color-stop(1, #f9f9f9)) fixed; + } + +body, +input, +select, +textarea { + color: #000; + font-family: Arial, Geneva, sans-serif; +} + +a:link, +a:hover, +a:active, +a:visited { + color: #19199e; +} +a:hover, +a:focus { + color: #00f; + text-decoration: none; +} + +p { + margin: 0 0 1.5em 0; +} + +/* + * END HTML ELEMENTS + */ + + + +/* + * BEGIN HACK + */ + +div.containerMain:after, +div.safeBox:after { + content:""; + display:block; + height:0; + clear:both; +} + +/* + * END HACK + */ + + + +/* + * BEGIN JSDOC + */ + +/* Start menu */ +div.index *.heading1 { + margin-bottom: 0.5em; + border-bottom: 1px solid #999999; + font-family: M1m, Arial, sans-serif; + font-size: 1.6em; + letter-spacing: 1px; + line-height: 1.3em; +} + +div.index div.menu { + background-color: #FFFFFF; +} +*+html div.index div.menu { + background-color: #FFFFFF; +} +* html div.index div.menu { + background-color: #FFFFFF; +} + +div.index div.menu div { + text-align: left; +} + +div.index div.menu a { + text-decoration: none; +} +div.index div.menu a:hover { + text-decoration: underline; +} + +div.index ul.classList { + padding-left: 0; +} + +div.index ul.classList a { + display: block; + margin: 1px 0; + padding: 4px 0 2px 10px; + text-indent: -10px; +} + +div.index div.fineprint { + color: #777; + font-size: 0.9em; +} +div.index div.fineprint a { + color: #777; +} +/* End menu */ + + + +/* Start content */ +div.content ul { + padding-left: 0; +} + +div.content *.classTitle { + font-size: 1.2em; + font-weight: bold; + line-height: 1em; +} + +div.content *.classTitle span { + display: block; + font-size: 2em; + letter-spacing: 2px; + line-height: 1em; + padding-top: 5px; + text-shadow: 1px 1px 1px #999999; + word-wrap: break-word; +} + +div.content p.summary { + font-size: 1.25em; +} + +div.content ul *.classname a, +div.content ul *.filename a { + font-family: Consolas, "Courier New", Courier, monospace; + text-decoration: none; + font-weight: bold; +} +div.content ul *.classname a:hover, +div.content ul *.filename a:hover { + text-decoration: underline; +} + +div.content div.props { + -moz-border-radius: 5px; + -webkit-border-radius: 5px; + border-radius: 5px; + background: #fff; + background: -moz-linear-gradient(top, rgba(255, 255, 255, 0.7), rgba(255, 255, 255, 0.2)); /* FF3.6 */ + background: -webkit-gradient(linear,left top,left bottom,color-stop(0, rgba(255, 255, 255, 0.7)),color-stop(1, rgba(255, 255, 255, 0.2))); + -moz-box-shadow: 0px 0px 10px #ccc; + -webkit-box-shadow: 0px 0px 5px #bbb; + box-shadow: 0px 0px 5px #bbb; +} + + + +*.sectionTitle { + font-family: M1m, sans-serif; + font-size: 1.6em; + letter-spacing: 1px; +} + +table.summaryTable td, +table.summaryTable th { + vertical-align: top; +} +table.summaryTable tr:last-child td { + padding-bottom: 0; +} + +table.summaryTable th { + font-weight: bold; +} + +table.summaryTable td.attributes { + font-family: Consolas, "Courier New", Courier, monospace; + color: #666; +} + +table.summaryTable td.nameDescription div.fixedFont { + font-weight: bold; +} + +table.summaryTable div.description { + color: #333; +} + + + +dl.detailList dt { + font-weight: bold; +} + +dl.inheritsList dd + dt { + margin-top: 10px; +} + +dl.inheritsList dd { + display: inline; +} + + + +.fixedFont { + font-family: Consolas, "Courier New", Courier, monospace; +} + +.fixedFont.heading { + font-size: 1.25em; + line-height: 1.1em +} + +.fixedFont.heading + .description { + font-size: 1.2em; +} + +.fixedFont.heading .light, +.fixedFont.heading .lighter { + font-weight: bold; +} + +pre.code { + overflow: auto; + font-family: Consolas, "Courier New", Courier, monospace; + background: #eee; +} +/* Start content */ + + + +/* Start general styles */ +.light { + color: #666; +} + +.lighter { + color: #999; +} + +span.break { + font-size: 1px; + line-height: 1px; +} +/* End general styles */ + +/* + * END JSDOC + */ diff --git a/tools/node_modules/nodemailer/node_modules/simplesmtp/node_modules/rai/jsdoc/css/fonts/mplus-1m-bold-webfont.eot b/tools/node_modules/nodemailer/node_modules/simplesmtp/node_modules/rai/jsdoc/css/fonts/mplus-1m-bold-webfont.eot Binary files differnew file mode 100644 index 0000000..6c64f8d --- /dev/null +++ b/tools/node_modules/nodemailer/node_modules/simplesmtp/node_modules/rai/jsdoc/css/fonts/mplus-1m-bold-webfont.eot diff --git a/tools/node_modules/nodemailer/node_modules/simplesmtp/node_modules/rai/jsdoc/css/fonts/mplus-1m-bold-webfont.svg b/tools/node_modules/nodemailer/node_modules/simplesmtp/node_modules/rai/jsdoc/css/fonts/mplus-1m-bold-webfont.svg new file mode 100644 index 0000000..5129512 --- /dev/null +++ b/tools/node_modules/nodemailer/node_modules/simplesmtp/node_modules/rai/jsdoc/css/fonts/mplus-1m-bold-webfont.svg @@ -0,0 +1,134 @@ +<?xml version="1.0" standalone="no"?> +<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" > +<svg xmlns="http://www.w3.org/2000/svg"> +<metadata> +This is a custom SVG webfont generated by Font Squirrel. +Foundry URL : http://mplus-fonts.sourceforge.jp +</metadata> +<defs> +<font id="webfontIjI5mZqE" horiz-adv-x="500" > +<font-face units-per-em="1000" ascent="860" descent="-140" /> +<missing-glyph horiz-adv-x="500" /> +<glyph unicode=" " /> +<glyph unicode="!" d="M165 730h170l-20 -495h-130zM170 0v150h160v-150h-160z" /> +<glyph unicode=""" d="M270 780h160l-30 -320h-100zM70 780h160l-30 -320h-100z" /> +<glyph unicode="#" d="M20 165v120h62l24 185h-51v120h67l18 140h135l-18 -140h45l18 140h135l-18 -140h43v-120h-59l-24 -185h48v-120h-64l-21 -165h-135l21 165h-45l-21 -165h-135l21 165h-46zM217 285h45l24 185h-45z" /> +<glyph unicode="$" d="M357 397q55 -32 76.5 -74t21.5 -108q0 -190 -192 -199v-101h-110v112q-51 16 -88 43v140q38 -35 88 -55v191q-53 33 -75.5 75.5t-22.5 103.5q0 89 50 138.5t142 51.5v100h110v-112q42 -12 78 -33v-135q-32 25 -78 42v-180zM247 445v149q-54 -9 -54 -69q0 -55 54 -80z M263 295v-157q52 13 52 77q0 55 -52 80z" /> +<glyph unicode="%" d="M40 310l420 220v-110l-420 -220v110zM160 740q70 0 110 -41t40 -119t-40 -119t-110 -41t-110 41t-40 119t40 119t110 41zM340 310q70 0 110 -41t40 -119t-40 -119t-110 -41t-110 41t-40 119t40 119t110 41zM160 518q38 0 38 62t-38 62t-38 -62t38 -62zM340 88q38 0 38 62 t-38 62t-38 -62t38 -62z" /> +<glyph unicode="&" d="M235 615q-23 0 -36.5 -14.5t-13.5 -40.5q0 -18 7.5 -37.5t33.5 -65.5q35 30 47 52.5t12 50.5q0 26 -13.5 40.5t-36.5 14.5zM118 368q-47 77 -62.5 116t-15.5 76q0 80 51.5 130t138.5 50t141 -50.5t54 -129.5q0 -114 -130 -220l55 -94v2v132h125v-225q-16 -25 -41 -52 l61 -103h-150l-15 24q-66 -34 -130 -34q-88 0 -136.5 45.5t-48.5 134.5q0 99 103 198zM269 124l-77 125q-27 -37 -27 -74q0 -60 65 -60q20 0 39 9z" /> +<glyph unicode="'" d="M160 780h180l-35 -320h-110z" /> +<glyph unicode="(" d="M100 300q0 136 50 256.5t144 213.5h126q-196 -194 -196 -470t196 -470h-126q-94 93 -144 213.5t-50 256.5z" /> +<glyph unicode=")" d="M400 300q0 -136 -50 -256.5t-144 -213.5h-126q196 194 196 470t-196 470h126q94 -93 144 -213.5t50 -256.5z" /> +<glyph unicode="*" d="M193 750h114l-4 -144l136 48l35 -109l-138 -40l88 -115l-93 -67l-81 119l-81 -119l-93 67l88 115l-138 40l35 109l136 -48z" /> +<glyph unicode="+" d="M315 545v-195h135v-110h-135v-195h-130v195h-135v110h135v195h130z" /> +<glyph unicode="," d="M180 190h190l-130 -320h-120z" /> +<glyph unicode="-" d="M90 240v110h320v-110h-320z" /> +<glyph unicode="." d="M155 0v190h190v-190h-190z" /> +<glyph unicode="/" d="M465 730l-310 -770h-120l310 770h120z" /> +<glyph unicode="0" d="M250 740q73 0 117.5 -32.5t68.5 -116t24 -226.5t-24 -226.5t-68.5 -116t-117.5 -32.5t-117.5 32.5t-68.5 116t-24 226.5t24 226.5t68.5 116t117.5 32.5zM171 317l142 248q-9 34 -24.5 47t-38.5 13q-28 0 -44.5 -19.5t-26 -77.5t-9.5 -163q0 -33 1 -48zM183 179 q9 -41 25.5 -57.5t41.5 -16.5q28 0 44.5 19.5t26 77.5t9.5 163q0 47 -1 67z" /> +<glyph unicode="1" d="M240 592l-2 1l-173 -91v128l175 100h140v-730h-140v592z" /> +<glyph unicode="2" d="M220 122v-2h220v-120h-380v120q127 141 181 237t54 173q0 43 -21 66.5t-59 23.5q-31 0 -74 -22t-81 -58v130q78 70 185 70q90 0 140 -51t50 -149q0 -180 -215 -418z" /> +<glyph unicode="3" d="M290 608v2h-230v120h385v-120l-170 -178v-2h10q79 0 122 -51.5t43 -153.5q0 -121 -54 -178t-166 -57q-51 0 -81.5 6.5t-78.5 28.5v130q80 -45 150 -45q46 0 68 27t22 88q0 58 -26 76.5t-114 18.5h-40v120z" /> +<glyph unicode="4" d="M400 150v-150h-135v150h-245v120l230 460h150v-460h80v-120h-80zM265 270v255h-2l-127 -253v-2h129z" /> +<glyph unicode="5" d="M202 455q36 19 82 19q161 0 161 -239q0 -245 -230 -245q-76 0 -150 35v130q80 -45 140 -45q51 0 75.5 29t24.5 96t-14.5 93t-46.5 26q-34 0 -64 -34h-110l10 410h345v-120h-220l-5 -155h2z" /> +<glyph unicode="6" d="M295 625q-54 0 -76.5 -34.5t-28.5 -135.5h2q45 35 98 35q92 0 133.5 -54.5t41.5 -185.5q0 -141 -51 -200.5t-159 -59.5q-75 0 -119 28.5t-67.5 101t-23.5 200.5q0 162 25 254t75 129t135 37q66 0 135 -20v-125q-57 30 -120 30zM255 107q39 0 55.5 29.5t16.5 113.5 q0 79 -14 104.5t-53 25.5q-38 0 -56.5 -29.5t-18.5 -100.5q0 -81 17 -112t53 -31z" /> +<glyph unicode="7" d="M55 730h390v-120q-113 -273 -200 -610h-146q92 325 216 608v2h-260v120z" /> +<glyph unicode="8" d="M258 625q-41 0 -59.5 -20.5t-18.5 -64.5q0 -74 75 -105q33 16 51.5 43.5t18.5 61.5q0 40 -18 62.5t-49 22.5zM250 -10q-105 0 -162.5 52t-57.5 148q0 116 105 179v2q-42 31 -66 80t-24 104q0 87 53.5 136t151.5 49t151.5 -48.5t53.5 -136.5q0 -98 -100 -164v-2 q115 -62 115 -199q0 -96 -58 -148t-162 -52zM242 105q93 0 93 100q0 75 -103 115q-33 -17 -52.5 -48.5t-19.5 -66.5q0 -48 22.5 -74t59.5 -26z" /> +<glyph unicode="9" d="M205 110q55 0 77 32.5t28 132.5h-2q-45 -35 -98 -35q-89 0 -132 57.5t-43 192.5q0 131 51 190.5t159 59.5q79 0 123 -27.5t65.5 -99.5t21.5 -203q0 -162 -25 -254t-75 -129t-135 -37q-66 0 -135 20v130q57 -30 120 -30zM245 623q-39 0 -55.5 -28t-16.5 -105 q0 -83 15.5 -111.5t51.5 -28.5q75 0 75 140q0 73 -17 103t-53 30z" /> +<glyph unicode=":" d="M160 390v190h180v-190h-180zM160 0v190h180v-190h-180z" /> +<glyph unicode=";" d="M170 190h190l-130 -320h-120zM170 390v190h180v-190h-180z" /> +<glyph unicode="<" d="M445 470l-320 -174v-2l320 -174v-120l-400 225v140l400 225v-120z" /> +<glyph unicode="=" d="M50 125v110h400v-110h-400zM50 362v103h400v-103h-400z" /> +<glyph unicode=">" d="M55 470v120l400 -225v-140l-400 -225v120l320 174v2z" /> +<glyph unicode="?" d="M460 575q0 -36 -12.5 -69t-25 -51t-38.5 -49q-25 -30 -38 -48.5t-27.5 -52.5t-18.5 -70h-130q0 49 17 94.5t32 66.5t44 57q21 25 30.5 38t19 33.5t9.5 40.5q0 58 -82 58t-180 -53v130q95 40 200 40q95 0 147.5 -44t52.5 -121zM155 0v150h160v-150h-160z" /> +<glyph unicode="@" d="M285 635q-72 0 -108.5 -62.5t-36.5 -207.5q0 -265 160 -265q58 0 125 30v-115q-70 -25 -150 -25q-260 0 -260 375q0 194 64 284.5t191 90.5q99 0 152 -51.5t53 -148.5v-325q-28 -28 -76 -46.5t-94 -18.5q-69 0 -102 49t-33 166q0 114 31.5 164.5t93.5 50.5q36 0 68 -25h2 v15q0 26 -23.5 45.5t-56.5 19.5zM290 365q0 -72 8 -93.5t29 -21.5q20 0 28 18v147q0 41 -6 53t-25 12t-26.5 -22t-7.5 -93z" /> +<glyph unicode="A" d="M249 620h-2l-55 -335h112zM323 170h-150l-28 -170h-140l165 730h160l165 -730h-144z" /> +<glyph unicode="B" d="M190 445h15q59 0 85 20.5t26 64.5q0 49 -23 71t-73 22q-17 0 -30 -5v-173zM190 330v-218q20 -5 45 -5q51 0 75 27.5t24 90.5q0 57 -25.5 81t-88.5 24h-30zM470 210q0 -220 -240 -220q-93 0 -180 15v720q92 15 190 15q210 0 210 -185q0 -62 -32 -105t-83 -54v-2 q57 -10 96 -61.5t39 -122.5z" /> +<glyph unicode="C" d="M30 365q0 195 64.5 285t190.5 90q80 0 150 -25v-115q-70 25 -125 25q-74 0 -109.5 -58.5t-35.5 -201.5q0 -260 150 -260q57 0 125 30v-120q-70 -25 -150 -25q-260 0 -260 375z" /> +<glyph unicode="D" d="M344 365q0 142 -30 198.5t-94 56.5q-23 0 -40 -5v-500q17 -5 40 -5q63 0 93.5 55.5t30.5 199.5zM480 365q0 -144 -28.5 -226.5t-83.5 -115.5t-148 -33q-92 0 -180 15v720q88 15 180 15q141 0 200.5 -82t59.5 -293z" /> +<glyph unicode="E" d="M210 610v-165h220v-115h-220v-210h230v-120h-370v730h370v-120h-230z" /> +<glyph unicode="F" d="M220 330v-330h-140v730h360v-120h-220v-165h210v-115h-210z" /> +<glyph unicode="G" d="M310 625q-82 0 -116 -55t-34 -205q0 -143 32 -201.5t93 -58.5q27 0 48 10v215h-98v115h230v-415q-83 -40 -180 -40q-260 0 -260 375q0 196 69.5 285.5t215.5 89.5q70 0 130 -25v-115q-72 25 -130 25z" /> +<glyph unicode="H" d="M318 330h-140v-330h-138v730h138v-280h140v280h142v-730h-142v330z" /> +<glyph unicode="I" d="M430 0h-360v115h108v500h-108v115h360v-115h-108v-500h108v-115z" /> +<glyph unicode="J" d="M410 730v-515q0 -126 -48.5 -175.5t-166.5 -49.5q-86 0 -155 30v130q29 -18 68 -30t67 -12q50 0 71 26.5t21 95.5v385h-147v115h290z" /> +<glyph unicode="K" d="M192 330h-2v-330h-140v730h140v-300h2l135 300h148l-160 -345l165 -385h-150z" /> +<glyph unicode="L" d="M230 730v-610h210v-120h-350v730h140z" /> +<glyph unicode="M" d="M338 500h-2l-38 -300h-100l-38 300h-2v-500h-133v730h167l59 -400h2l59 400h163v-730h-137v500z" /> +<glyph unicode="N" d="M187 460h-2v-460h-140v730h147l125 -460h2v460h136v-730h-143z" /> +<glyph unicode="O" d="M250 740q121 0 175.5 -84t54.5 -291t-54.5 -291t-175.5 -84t-175.5 84t-54.5 291t54.5 291t175.5 84zM250 108q52 0 75 53.5t23 203.5t-23 203.5t-75 53.5t-75 -53.5t-23 -203.5t23 -203.5t75 -53.5z" /> +<glyph unicode="P" d="M334 503q0 120 -104 120q-23 0 -40 -5v-235q18 -5 40 -5q53 0 78.5 28t25.5 97zM470 503q0 -127 -57 -184.5t-173 -57.5q-26 0 -50 5v-266h-140v725q90 15 185 15q122 0 178.5 -56t56.5 -181z" /> +<glyph unicode="Q" d="M250 740q121 0 175.5 -84t54.5 -291q0 -257 -92 -333v-2q39 -22 68.5 -74t33.5 -106h-145q-15 81 -36.5 110.5t-58.5 29.5q-121 0 -175.5 84t-54.5 291t54.5 291t175.5 84zM250 108q52 0 75 53.5t23 203.5t-23 203.5t-75 53.5t-75 -53.5t-23 -203.5t23 -203.5t75 -53.5z " /> +<glyph unicode="R" d="M465 513q0 -151 -98 -199l-1 -2q27 -19 58 -118l61 -194h-145l-57 204q-12 43 -25.5 57.5t-42.5 14.5h-30v-276h-140v725q90 15 185 15q124 0 179.5 -53.5t55.5 -173.5zM185 393h30q64 0 89 24.5t25 95.5q0 58 -25.5 84t-78.5 26q-23 0 -40 -5v-225z" /> +<glyph unicode="S" d="M440 575q-84 48 -165 48q-41 0 -65 -21t-24 -57q0 -71 69 -100q116 -48 160.5 -103t44.5 -142q0 -210 -225 -210q-100 0 -180 50v135q83 -68 173 -68q94 0 94 88q0 76 -77 110q-108 46 -151.5 99.5t-43.5 135.5q0 90 57 145t153 55q102 0 180 -35v-130z" /> +<glyph unicode="T" d="M320 615v-615h-140v615h-145v115h430v-115h-145z" /> +<glyph unicode="U" d="M250 -10q-112 0 -161 54t-49 186v500h142v-460q0 -101 14.5 -131.5t55.5 -30.5t55.5 30.5t14.5 131.5v460h138v-500q0 -132 -49 -186t-161 -54z" /> +<glyph unicode="V" d="M253 110l92 620h140l-155 -730h-160l-155 730h144l92 -620h2z" /> +<glyph unicode="W" d="M164 190h2l38 440h100l38 -440h2l15 540h126l-45 -730h-157l-34 420h-2l-34 -420h-153l-45 730h134z" /> +<glyph unicode="X" d="M251 470h2l74 260h145l-132 -360l135 -370h-152l-74 270h-2l-74 -270h-148l135 370l-132 360h149z" /> +<glyph unicode="Y" d="M251 415h2l84 315h148l-165 -455v-275h-140v275l-165 455h152z" /> +<glyph unicode="Z" d="M290 613v2h-235v115h390v-115l-235 -498v-2h235v-115h-390v115z" /> +<glyph unicode="[" d="M410 675h-170v-750h170v-95h-290v940h290v-95z" /> +<glyph unicode="\" d="M35 730h120l310 -770h-120z" /> +<glyph unicode="]" d="M90 675v95h290v-940h-290v95h170v750h-170z" /> +<glyph unicode="^" d="M251 655h-2l-111 -375h-123l145 450h180l145 -450h-123z" /> +<glyph unicode="_" d="M40 -170v88h420v-88h-420z" /> +<glyph unicode="`" d="M90 810h190l100 -320h-120z" /> +<glyph unicode="a" d="M65 495q39 14 95 24.5t90 10.5q111 0 155.5 -45t44.5 -160v-325h-127l-2 65h-2q-49 -75 -134 -75q-68 0 -106.5 42t-38.5 118q0 88 63.5 136.5t186.5 48.5h25v10q0 40 -16 56.5t-54 16.5q-32 0 -86.5 -11.5t-93.5 -26.5v115zM315 245h-25q-59 0 -89.5 -23t-30.5 -62 q0 -31 15 -48t40 -17q90 0 90 130v20z" /> +<glyph unicode="b" d="M45 730h137v-275h2q49 75 116 75q83 0 129 -66.5t46 -203.5q0 -133 -47.5 -201.5t-127.5 -68.5q-35 0 -62.5 17.5t-56.5 62.5h-2l-2 -70h-132v730zM338 260q0 150 -78 150q-80 0 -80 -145v-10q0 -145 80 -145q35 0 56.5 36.5t21.5 113.5z" /> +<glyph unicode="c" d="M305 420q-115 0 -115 -160q0 -163 120 -163q60 0 120 28v-110q-68 -25 -140 -25q-116 0 -178 67.5t-62 202.5t60 202.5t175 67.5q67 0 135 -25v-110q-61 25 -115 25z" /> +<glyph unicode="d" d="M455 0h-132l-2 70h-2q-29 -45 -56.5 -62.5t-62.5 -17.5q-80 0 -127.5 68.5t-47.5 201.5q0 137 46 203.5t129 66.5q67 0 116 -75h2v275h137v-730zM162 260q0 -77 21.5 -113.5t56.5 -36.5q80 0 80 145v10q0 145 -80 145q-78 0 -78 -150z" /> +<glyph unicode="e" d="M182 206q7 -62 33 -85.5t80 -23.5q52 0 135 28v-110q-84 -25 -155 -25q-112 0 -173.5 68t-61.5 202q0 270 220 270q200 0 200 -270q0 -31 -2 -54h-276zM181 310h142q-1 63 -15.5 88t-47.5 25q-41 0 -58 -23t-21 -90z" /> +<glyph unicode="f" d="M60 391v109h100v45q0 104 40.5 149.5t129.5 45.5q56 0 110 -15v-110q-36 16 -80 16q-37 0 -50 -20.5t-13 -85.5v-25h143v-109h-143v-391h-137v391h-100z" /> +<glyph unicode="g" d="M323 75h-2q-45 -75 -116 -75q-78 0 -126.5 66.5t-48.5 193.5q0 137 46 203.5t129 66.5q35 0 62.5 -17.5t56.5 -62.5h2l2 70h132v-505q0 -245 -240 -245q-81 0 -150 25v115q76 -33 145 -33q55 0 81.5 34t26.5 114v50zM167 260q0 -70 22 -105t56 -35q80 0 80 135v10 q0 145 -80 145q-78 0 -78 -150z" /> +<glyph unicode="h" d="M50 730h137v-275h2q47 75 126 75t112 -47.5t33 -172.5v-310h-135v290q0 74 -12.5 98t-47.5 24t-56.5 -43.5t-21.5 -131.5v-237h-137v730z" /> +<glyph unicode="i" d="M110 520h240v-413h100v-107h-370v107h130v306h-100v107zM190 630v130h160v-130h-160z" /> +<glyph unicode="j" d="M225 -20v433h-110v107h250v-540q0 -68 -10.5 -106t-44 -63t-87.5 -33t-148 -8v109q39 0 60.5 0.5t41 5t27 9.5t13.5 18t7 27.5t1 40.5zM205 630v130h160v-130h-160z" /> +<glyph unicode="k" d="M480 520l-185 -250l185 -270h-162l-131 224v-224h-137v730h137v-418l133 208h160z" /> +<glyph unicode="l" d="M310 190q0 -68 9 -80.5t56 -12.5q31 0 75 6v-108q-44 -5 -100 -5q-111 0 -145.5 32.5t-34.5 137.5v463h-120v107h260v-540z" /> +<glyph unicode="m" d="M360 0v340q0 40 -21 40q-8 0 -12.5 -5t-7 -22.5t-2.5 -52.5v-300h-130v340q0 40 -21 40q-8 0 -12.5 -5t-7 -22.5t-2.5 -52.5v-300h-134v520h120l2 -65h2q15 34 39.5 54.5t48.5 20.5q28 0 45 -16t32 -59h2q42 75 99 75q48 0 69 -36t21 -134v-360h-130z" /> +<glyph unicode="n" d="M50 520h132l2 -70h2q49 80 129 80q79 0 112 -47.5t33 -172.5v-310h-135v290q0 74 -12.5 98t-47.5 24t-56.5 -43.5t-21.5 -131.5v-237h-137v520z" /> +<glyph unicode="o" d="M250 530q220 0 220 -270t-220 -270t-220 270t220 270zM250 97q44 0 62 33.5t18 129.5t-18 129.5t-62 33.5t-62 -33.5t-18 -129.5t18 -129.5t62 -33.5z" /> +<glyph unicode="p" d="M179 70h-2v-290h-137v740h132l2 -70h2q29 45 56.5 62.5t62.5 17.5q83 0 129 -66.5t46 -203.5q0 -133 -47.5 -201.5t-127.5 -68.5q-71 0 -116 80zM333 260q0 150 -78 150q-80 0 -80 -145v-10q0 -145 80 -145q35 0 56.5 36.5t21.5 113.5z" /> +<glyph unicode="q" d="M321 70q-45 -80 -116 -80q-80 0 -127.5 68.5t-47.5 201.5q0 137 46 203.5t129 66.5q35 0 62.5 -17.5t56.5 -62.5h2l2 70h132v-740h-137v290h-2zM167 260q0 -77 21.5 -113.5t56.5 -36.5q80 0 80 145v10q0 145 -80 145q-78 0 -78 -150z" /> +<glyph unicode="r" d="M375 416q-69 0 -111 -52t-42 -144v-220h-137v520h135v-85h2q36 53 70.5 74t82.5 21q36 0 70 -10v-115q-36 11 -70 11z" /> +<glyph unicode="s" d="M265 418q-73 0 -73 -43q0 -22 14.5 -35t48.5 -20q109 -21 149.5 -60t40.5 -115q0 -74 -50.5 -114.5t-144.5 -40.5q-107 0 -190 35v120q87 -43 165 -43q45 0 64 11.5t19 36.5q0 22 -14 34t-54 21q-99 21 -142 62.5t-43 112.5t49 110.5t146 39.5q99 0 180 -30v-115 q-87 33 -165 33z" /> +<glyph unicode="t" d="M445 500v-109h-158v-201q0 -61 10.5 -74.5t57.5 -13.5q43 0 80 17v-114q-50 -15 -110 -15q-98 0 -136.5 36.5t-38.5 133.5v231h-105v109h105v190h137v-190h158z" /> +<glyph unicode="u" d="M445 0h-132l-2 70h-2q-50 -80 -124 -80q-77 0 -108.5 44.5t-31.5 165.5v320h135v-300q0 -70 11 -91t44 -21q73 0 73 175v237h137v-520z" /> +<glyph unicode="v" d="M251 90h2l79 430h138l-130 -520h-180l-130 520h142z" /> +<glyph unicode="w" d="M343 120h2l29 400h116l-70 -520h-137l-37 358h-2l-31 -358h-133l-70 520h124l29 -400h2l39 400h100z" /> +<glyph unicode="x" d="M251 335h2l69 185h143l-125 -260l125 -260h-152l-64 180h-2l-64 -180h-148l125 260l-125 260h147z" /> +<glyph unicode="y" d="M254 170h2l87 350h142l-237 -740h-138l85 230l-170 510h142z" /> +<glyph unicode="z" d="M275 411h-210v109h370v-109l-210 -300v-2h210v-109h-370v109l210 300v2z" /> +<glyph unicode="{" d="M187 301v-2q58 -24 85.5 -62t27.5 -100v-112q0 -73 12 -86.5t75 -13.5h53v-95h-107q-80 0 -116.5 37t-36.5 123v147q0 61 -22 88t-68 27h-40v96h40q46 0 68 27t22 88v147q0 86 36.5 123t116.5 37h107v-95h-53q-63 0 -75 -13.5t-12 -86.5v-112q0 -62 -27.5 -100t-85.5 -62 z" /> +<glyph unicode="|" d="M188 -220v1030h124v-1030h-124z" /> +<glyph unicode="}" d="M313 301q-58 24 -85.5 62t-27.5 100v112q0 73 -12 86.5t-75 13.5h-53v95h107q80 0 116.5 -37t36.5 -123v-147q0 -61 22 -88t68 -27h40v-96h-40q-46 0 -68 -27t-22 -88v-147q0 -86 -36.5 -123t-116.5 -37h-107v95h53q63 0 75 13.5t12 86.5v112q0 62 27.5 100t85.5 62v2z " /> +<glyph unicode="~" d="M40 568v107q45 35 100 35q63 0 131 -50q49 -37 84 -37q49 0 105 51v-107q-45 -35 -100 -35q-63 0 -131 50q-49 37 -84 37q-49 0 -105 -51z" /> +<glyph unicode=" " /> +<glyph unicode="¥" d="M251 415h2l84 315h148l-132 -365h97v-95h-130v-65h130v-95h-130v-110h-140v110h-130v95h130v65h-130v95h97l-132 365h152z" /> +<glyph unicode="­" d="M90 240v110h320v-110h-320z" /> +<glyph unicode=" " horiz-adv-x="407" /> +<glyph unicode=" " horiz-adv-x="815" /> +<glyph unicode=" " horiz-adv-x="407" /> +<glyph unicode=" " horiz-adv-x="815" /> +<glyph unicode=" " horiz-adv-x="271" /> +<glyph unicode=" " horiz-adv-x="203" /> +<glyph unicode=" " horiz-adv-x="135" /> +<glyph unicode=" " horiz-adv-x="135" /> +<glyph unicode=" " horiz-adv-x="101" /> +<glyph unicode=" " horiz-adv-x="163" /> +<glyph unicode=" " horiz-adv-x="45" /> +<glyph unicode="‐" d="M90 240v110h320v-110h-320z" /> +<glyph unicode="‑" d="M90 240v110h320v-110h-320z" /> +<glyph unicode="–" d="M50 240v110h400v-110h-400z" /> +<glyph unicode="—" d="M10 240v110h480v-110h-480z" /> +<glyph unicode="‘" d="M305 460h-190l130 320h120z" /> +<glyph unicode="’" d="M190 780h190l-130 -320h-120z" /> +<glyph unicode="“" d="M405 460h-170l130 320h100zM195 460h-170l130 320h100z" /> +<glyph unicode="”" d="M300 780h170l-130 -320h-100zM90 780h170l-130 -320h-100z" /> +<glyph unicode="…" horiz-adv-x="1000" d="M72 270v190h190v-190h-190zM405 270v190h190v-190h-190zM738 270v190h190v-190h-190z" /> +<glyph unicode=" " horiz-adv-x="163" /> +<glyph unicode=" " horiz-adv-x="203" /> +<glyph unicode="™" horiz-adv-x="1000" d="M838 500h-2l-38 -300h-100l-38 300h-2v-500h-133v730h167l59 -400h2l59 400h163v-730h-137v500zM320 615v-615h-140v615h-145v115h430v-115h-145z" /> +</font> +</defs></svg>
\ No newline at end of file diff --git a/tools/node_modules/nodemailer/node_modules/simplesmtp/node_modules/rai/jsdoc/css/fonts/mplus-1m-bold-webfont.ttf b/tools/node_modules/nodemailer/node_modules/simplesmtp/node_modules/rai/jsdoc/css/fonts/mplus-1m-bold-webfont.ttf Binary files differnew file mode 100644 index 0000000..0cf54cb --- /dev/null +++ b/tools/node_modules/nodemailer/node_modules/simplesmtp/node_modules/rai/jsdoc/css/fonts/mplus-1m-bold-webfont.ttf diff --git a/tools/node_modules/nodemailer/node_modules/simplesmtp/node_modules/rai/jsdoc/css/fonts/mplus-1m-bold-webfont.woff b/tools/node_modules/nodemailer/node_modules/simplesmtp/node_modules/rai/jsdoc/css/fonts/mplus-1m-bold-webfont.woff Binary files differnew file mode 100644 index 0000000..f90475d --- /dev/null +++ b/tools/node_modules/nodemailer/node_modules/simplesmtp/node_modules/rai/jsdoc/css/fonts/mplus-1m-bold-webfont.woff diff --git a/tools/node_modules/nodemailer/node_modules/simplesmtp/node_modules/rai/jsdoc/css/fonts/mplus-1m-regular-webfont.eot b/tools/node_modules/nodemailer/node_modules/simplesmtp/node_modules/rai/jsdoc/css/fonts/mplus-1m-regular-webfont.eot Binary files differnew file mode 100644 index 0000000..a53f8b5 --- /dev/null +++ b/tools/node_modules/nodemailer/node_modules/simplesmtp/node_modules/rai/jsdoc/css/fonts/mplus-1m-regular-webfont.eot diff --git a/tools/node_modules/nodemailer/node_modules/simplesmtp/node_modules/rai/jsdoc/css/fonts/mplus-1m-regular-webfont.svg b/tools/node_modules/nodemailer/node_modules/simplesmtp/node_modules/rai/jsdoc/css/fonts/mplus-1m-regular-webfont.svg new file mode 100644 index 0000000..3c835a3 --- /dev/null +++ b/tools/node_modules/nodemailer/node_modules/simplesmtp/node_modules/rai/jsdoc/css/fonts/mplus-1m-regular-webfont.svg @@ -0,0 +1,134 @@ +<?xml version="1.0" standalone="no"?> +<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" > +<svg xmlns="http://www.w3.org/2000/svg"> +<metadata> +This is a custom SVG webfont generated by Font Squirrel. +Foundry URL : http://mplus-fonts.sourceforge.jp +</metadata> +<defs> +<font id="webfontVd14f4NN" horiz-adv-x="500" > +<font-face units-per-em="1000" ascent="860" descent="-140" /> +<missing-glyph horiz-adv-x="500" /> +<glyph unicode=" " /> +<glyph unicode="!" d="M200 730h100l-10 -515h-80zM195 0v130h110v-130h-110z" /> +<glyph unicode=""" d="M275 780h100l-20 -280h-60zM125 780h100l-20 -280h-60z" /> +<glyph unicode="#" d="M40 188v72h77l29 228h-71v72h80l21 170h82l-21 -170h76l21 170h82l-21 -170h65v-72h-74l-29 -228h68v-72h-77l-23 -188h-82l23 188h-76l-23 -188h-82l23 188h-68zM199 260h76l29 228h-76z" /> +<glyph unicode="$" d="M293 311v-214q58 21 58 108q0 71 -58 106zM293 19v-104h-76v101q-70 6 -137 49v95q65 -57 137 -69v251q-77 31 -109.5 75.5t-32.5 117.5q0 76 37 122.5t105 55.5v102h76v-102q69 -8 127 -38v-90q-52 38 -127 52v-237q77 -31 109.5 -76.5t32.5 -118.5q0 -163 -142 -186z M217 429v207q-58 -18 -58 -101q0 -73 58 -106z" /> +<glyph unicode="%" d="M60 260l380 290v-80l-380 -290v80zM160 740q61 0 95.5 -41t34.5 -119t-34.5 -119t-95.5 -41t-95.5 41t-34.5 119t34.5 119t95.5 41zM340 310q61 0 95.5 -41t34.5 -119t-34.5 -119t-95.5 -41t-95.5 41t-34.5 119t34.5 119t95.5 41zM160 488q52 0 52 92t-52 92t-52 -92 t52 -92zM340 58q52 0 52 92t-52 92t-52 -92t52 -92z" /> +<glyph unicode="&" d="M228 665q-38 0 -60.5 -20t-22.5 -55q0 -29 12.5 -59t53.5 -95q59 51 79 83.5t20 70.5q0 33 -22 54t-60 21zM151 385l-9 14q-47 71 -63.5 111.5t-16.5 79.5q0 66 45 108t118 42t119 -42t46 -108q0 -57 -30.5 -106.5t-106.5 -112.5l119 -183v217h80v-253q-13 -28 -26 -46 l69 -106h-87l-33 49q-69 -59 -175 -59q-82 0 -128.5 46t-46.5 129q0 107 126 220zM331 115l-137 206q-84 -79 -84 -153q0 -51 27 -77t78 -26q70 0 116 50z" /> +<glyph unicode="'" d="M195 780h110l-25 -280h-60z" /> +<glyph unicode="(" d="M125 315q0 275 194 455h76q-196 -184 -196 -455t196 -455h-76q-194 180 -194 455z" /> +<glyph unicode=")" d="M375 315q0 -275 -194 -455h-76q196 184 196 455t-196 455h76q194 -180 194 -455z" /> +<glyph unicode="*" d="M214 750h72l-3 -169l160 55l22 -68l-161 -50l101 -135l-58 -42l-97 138l-97 -138l-58 42l101 135l-161 50l22 68l160 -55z" /> +<glyph unicode="+" d="M291 555v-214h149v-72h-149v-214h-82v214h-149v72h149v214h82z" /> +<glyph unicode="," d="M210 150h120l-110 -280h-70z" /> +<glyph unicode="-" d="M100 269v72h300v-72h-300z" /> +<glyph unicode="." d="M185 0v150h130v-150h-130z" /> +<glyph unicode="/" d="M452 730l-332 -770h-72l332 770h72z" /> +<glyph unicode="0" d="M250 740q48 0 82 -18t59 -60t37 -115.5t12 -181.5t-12 -181.5t-37 -115.5t-59 -60t-82 -18t-82 18t-59 60t-37 115.5t-12 181.5t12 181.5t37 115.5t59 60t82 18zM142 249l196 339q-26 82 -88 82q-36 0 -60 -26t-38 -95t-14 -184q0 -50 4 -116zM158 155q26 -95 92 -95 q36 0 60 26t38 95t14 184q0 78 -6 133z" /> +<glyph unicode="1" d="M258 0v645l-2 1l-173 -101v80l175 105h82v-730h-82z" /> +<glyph unicode="2" d="M175 74v-2h245v-72h-340v72q251 288 251 478q0 116 -93 116q-30 0 -76 -22.5t-82 -55.5v87q75 65 170 65q85 0 125 -47t40 -143q0 -99 -54 -208t-186 -268z" /> +<glyph unicode="3" d="M330 656v2h-250v72h345v-72l-180 -229v-2h10q91 0 133 -51t42 -166q0 -220 -195 -220q-73 0 -145 30v87q77 -43 130 -43q64 0 95 34.5t31 111.5q0 89 -25 117t-101 28h-70v72z" /> +<glyph unicode="4" d="M293 590h-2l-175 -341v-2h177v343zM293 175h-253v82l243 473h92v-483h85v-72h-85v-175h-82v175z" /> +<glyph unicode="5" d="M180 430h2q33 30 88 30q160 0 160 -230q0 -125 -49.5 -182.5t-145.5 -57.5q-74 0 -145 30v87q75 -43 140 -43q116 0 116 166q0 156 -96 156q-46 0 -80 -41h-75l10 385h305v-72h-223z" /> +<glyph unicode="6" d="M285 740q61 0 115 -20v-77q-50 25 -105 25q-70 0 -101 -48.5t-39 -184.5h2q50 50 113 50q87 0 128.5 -56t41.5 -184q0 -134 -46.5 -194.5t-138.5 -60.5q-65 0 -104 28.5t-60 101.5t-21 200q0 158 25.5 252t71 131t118.5 37zM255 62q54 0 78.5 39t24.5 144q0 94 -23.5 132 t-74.5 38q-106 0 -106 -160q0 -107 25 -150t76 -43z" /> +<glyph unicode="7" d="M345 656v2h-270v72h350v-72q-128 -296 -210 -658h-88q84 353 218 656z" /> +<glyph unicode="8" d="M255 670q-53 0 -81.5 -27.5t-28.5 -77.5q0 -54 29 -94t76 -51q52 14 80.5 51.5t28.5 93.5q0 47 -28.5 76t-75.5 29zM250 -10q-96 0 -148 51t-52 149q0 68 33 119t92 75v2q-48 23 -79 73.5t-31 105.5q0 82 49 128.5t136 46.5t136 -47t49 -128q0 -56 -30.5 -103.5 t-79.5 -70.5v-2q59 -23 92 -75t33 -124q0 -98 -52 -149t-148 -51zM255 60q53 0 84 33.5t31 96.5q0 130 -125 160q-61 -16 -90 -54.5t-29 -105.5q0 -62 35 -96t94 -34z" /> +<glyph unicode="9" d="M215 -10q-61 0 -115 20v80q52 -26 105 -26q70 0 101 47.5t39 183.5h-2q-50 -50 -113 -50q-84 0 -127 59t-43 191q0 126 46 185.5t139 59.5q68 0 107 -28t58.5 -100.5t19.5 -201.5q0 -158 -25.5 -252t-71 -131t-118.5 -37zM245 668q-55 0 -79 -38t-24 -135t25 -138.5 t73 -41.5q49 0 77.5 41.5t28.5 128.5q0 100 -25 141.5t-76 41.5z" /> +<glyph unicode=":" d="M190 390v150h120v-150h-120zM190 0v150h120v-150h-120z" /> +<glyph unicode=";" d="M200 150h120l-110 -280h-70zM200 390v150h120v-150h-120z" /> +<glyph unicode="<" d="M435 510l-330 -204v-2l330 -204v-80l-380 245v80l380 245v-80z" /> +<glyph unicode="=" d="M60 165v72h380v-72h-380zM60 373v72h380v-72h-380z" /> +<glyph unicode=">" d="M65 510v80l380 -245v-80l-380 -245v80l330 204v2z" /> +<glyph unicode="?" d="M445 580q0 -41 -14 -77t-28.5 -55t-42.5 -49q-29 -33 -43 -52t-28 -55t-14 -77h-80q0 55 16.5 101.5t32.5 68t47 56.5q24 27 36 42.5t23 41.5t11 55q0 41 -29.5 63.5t-86.5 22.5q-85 0 -180 -61v90q93 45 190 45q91 0 140.5 -42t49.5 -118zM180 0v130h110v-130h-110z" /> +<glyph unicode="@" d="M375 258v167q0 41 -16 63t-44 22q-40 0 -56 -29.5t-16 -115.5q0 -82 17 -113.5t55 -31.5q44 0 60 38zM165 365q0 215 140 215q38 0 73 -25h2v5q0 50 -27.5 79t-72.5 29q-83 0 -124 -70.5t-41 -232.5q0 -166 40 -234.5t125 -68.5q62 0 125 38v-80q-59 -30 -130 -30 q-122 0 -181 86t-59 289q0 197 60.5 286t179.5 89q87 0 133.5 -50t46.5 -150v-325q-65 -65 -140 -65q-76 0 -113 49t-37 166z" /> +<glyph unicode="A" d="M249 660h-2l-83 -380h168zM348 210h-200l-46 -210h-82l180 730h100l180 -730h-86z" /> +<glyph unicode="B" d="M157 430h45q80 0 116.5 29.5t36.5 90.5q0 57 -36 88.5t-102 31.5q-36 0 -60 -8v-232zM157 360v-292q37 -8 90 -8q126 0 126 160q0 140 -161 140h-55zM455 210q0 -220 -225 -220q-80 0 -155 15v720q75 15 155 15q205 0 205 -180q0 -61 -30.5 -103t-84.5 -56v-2 q58 -11 96.5 -64t38.5 -125z" /> +<glyph unicode="C" d="M55 365q0 197 60.5 286t179.5 89q66 0 125 -30v-75q-60 33 -120 33q-165 0 -165 -303q0 -164 42 -233.5t123 -69.5q62 0 125 38v-80q-59 -30 -130 -30q-122 0 -181 86t-59 289z" /> +<glyph unicode="D" d="M383 365q0 168 -43.5 235.5t-137.5 67.5q-33 0 -55 -8v-590q22 -8 55 -8q65 0 102.5 24.5t58 91.5t20.5 187zM465 365q0 -207 -63.5 -291t-199.5 -84q-70 0 -137 15v720q67 15 137 15q137 0 200 -85.5t63 -289.5z" /> +<glyph unicode="E" d="M162 658v-228h248v-70h-248v-288h258v-72h-340v730h340v-72h-258z" /> +<glyph unicode="F" d="M172 360v-360h-82v730h330v-72h-248v-228h238v-70h-238z" /> +<glyph unicode="G" d="M370 85v275h-155v70h235v-400q-80 -40 -170 -40q-118 0 -179 89t-61 286q0 196 63.5 285.5t191.5 89.5q59 0 130 -25v-77q-66 30 -130 30q-87 0 -132 -72t-45 -231q0 -303 167 -303q45 0 85 23z" /> +<glyph unicode="H" d="M140 730v-298h216v298h84v-730h-84v360h-216v-360h-80v730h80z" /> +<glyph unicode="I" d="M410 0h-320v70h118v590h-118v70h320v-70h-118v-590h118v-70z" /> +<glyph unicode="J" d="M400 730v-540q0 -110 -43.5 -155t-146.5 -45q-82 0 -150 30v87q29 -17 75.5 -31t74.5 -14q53 0 79 30.5t26 99.5v468h-165v70h250z" /> +<glyph unicode="K" d="M157 400h2l206 330h95l-225 -350l230 -380h-95l-211 360h-2v-360h-82v730h82v-330z" /> +<glyph unicode="L" d="M182 730v-658h238v-72h-320v730h82z" /> +<glyph unicode="M" d="M378 540h-2l-88 -340h-80l-88 340h-2v-540h-78v730h92l119 -450h2l119 450h88v-730h-82v540z" /> +<glyph unicode="N" d="M151 550h-2v-550h-84v730h84l204 -550h2v550h80v-730h-80z" /> +<glyph unicode="O" d="M250 740q107 0 158.5 -84.5t51.5 -290.5t-51.5 -290.5t-158.5 -84.5t-158.5 84.5t-51.5 290.5t51.5 290.5t158.5 84.5zM250 62q44 0 71 25.5t43 93.5t16 184t-16 184t-43 93.5t-71 25.5t-71 -25.5t-43 -93.5t-16 -184t16 -184t43 -93.5t71 -25.5z" /> +<glyph unicode="P" d="M375 520q0 79 -36 114.5t-112 35.5q-41 0 -70 -8v-292q30 -5 70 -5q77 0 112.5 35.5t35.5 119.5zM455 520q0 -120 -52.5 -172.5t-165.5 -52.5q-35 0 -80 5v-300h-82v725q78 15 160 15q114 0 167 -52.5t53 -167.5z" /> +<glyph unicode="Q" d="M250 740q107 0 158.5 -84.5t51.5 -290.5q0 -273 -100 -344v-2q41 -21 73 -66t47 -103h-88q-21 78 -54 109t-88 31q-107 0 -158.5 84.5t-51.5 290.5t51.5 290.5t158.5 84.5zM250 62q44 0 71 25.5t43 93.5t16 184t-16 184t-43 93.5t-71 25.5t-71 -25.5t-43 -93.5t-16 -184 t16 -184t43 -93.5t71 -25.5z" /> +<glyph unicode="R" d="M370 540q0 130 -148 130q-41 0 -70 -8v-272h60q87 0 122.5 33.5t35.5 116.5zM152 320v-320h-82v725q78 15 160 15q112 0 166 -49.5t54 -150.5q0 -143 -109 -193v-2q31 -15 66 -131l63 -214h-86l-59 216q-17 64 -41 84t-82 20h-50z" /> +<glyph unicode="S" d="M260 668q-47 0 -77.5 -30.5t-30.5 -77.5q0 -50 21.5 -82.5t71.5 -55.5q111 -49 153 -102.5t42 -139.5q0 -94 -51.5 -142t-148.5 -48q-91 0 -165 55v95q80 -78 170 -78q113 0 113 118q0 55 -26 91t-87 64q-94 42 -134.5 95.5t-40.5 129.5q0 80 51 130t134 50q53 0 87 -8 t78 -32v-90q-77 58 -160 58z" /> +<glyph unicode="T" d="M209 0v660h-154v70h390v-70h-154v-660h-82z" /> +<glyph unicode="U" d="M250 -10q-95 0 -142.5 48.5t-47.5 151.5v540h84v-520q0 -81 26.5 -114.5t81.5 -33.5t81.5 33.5t26.5 114.5v520h80v-540q0 -103 -47.5 -151.5t-142.5 -48.5z" /> +<glyph unicode="V" d="M253 70l135 660h82l-170 -730h-100l-170 730h86l135 -660h2z" /> +<glyph unicode="W" d="M153 120h2l54 510h90l54 -510h2l45 610h75l-60 -730h-109l-55 520h-2l-55 -520h-109l-60 730h83z" /> +<glyph unicode="X" d="M251 440h2l112 290h83l-148 -355l150 -375h-90l-111 305h-2l-112 -305h-85l150 375l-148 355h88z" /> +<glyph unicode="Y" d="M251 375h2l132 355h85l-179 -440v-290h-82v290l-179 440h90z" /> +<glyph unicode="Z" d="M335 658v2h-260v70h350v-70l-260 -588v-2h260v-70h-350v70z" /> +<glyph unicode="[" d="M390 710h-178v-790h178v-60h-250v910h250v-60z" /> +<glyph unicode="\" d="M48 730h72l332 -770h-72z" /> +<glyph unicode="]" d="M110 710v60h250v-910h-250v60h178v790h-178z" /> +<glyph unicode="^" d="M251 680h-2l-147 -400h-72l170 450h100l170 -450h-72z" /> +<glyph unicode="_" d="M50 -140v56h400v-56h-400z" /> +<glyph unicode="`" d="M130 810h120l100 -280h-70z" /> +<glyph unicode="a" d="M255 530q100 0 137.5 -40t37.5 -150v-340h-72l-2 75h-2q-47 -85 -149 -85q-65 0 -105 41.5t-40 113.5q0 91 61.5 140.5t183.5 49.5h48v25q0 57 -22 80t-76 23q-33 0 -84 -12t-86 -28v72q35 15 85 25t85 10zM353 275h-48q-170 0 -170 -125q0 -45 23 -69t62 -24q59 0 96 48 t37 135v35z" /> +<glyph unicode="b" d="M144 445h2q43 85 134 85q175 0 175 -270q0 -135 -48 -202.5t-127 -67.5q-84 0 -137 85h-2l-2 -75h-74v730h79v-285zM376 260q0 195 -116 195q-51 0 -83.5 -49.5t-32.5 -140.5v-10q0 -91 32.5 -140.5t83.5 -49.5q53 0 84.5 48.5t31.5 146.5z" /> +<glyph unicode="c" d="M70 260q0 134 55 202t155 68q61 0 125 -25v-80q-60 33 -120 33q-63 0 -98 -50t-35 -148q0 -101 37 -151t101 -50q59 0 120 36v-80q-64 -25 -125 -25q-102 0 -158.5 67.5t-56.5 202.5z" /> +<glyph unicode="d" d="M356 730h79v-730h-74l-2 75h-2q-53 -85 -137 -85q-79 0 -127 67.5t-48 202.5q0 270 175 270q91 0 134 -85h2v285zM124 260q0 -98 31.5 -146.5t84.5 -48.5q51 0 83.5 49.5t32.5 140.5v10q0 91 -32.5 140.5t-83.5 49.5q-116 0 -116 -195z" /> +<glyph unicode="e" d="M138 234q4 -93 38 -134t99 -41q61 0 135 36v-80q-74 -25 -140 -25q-215 0 -215 270q0 141 50 205.5t150 64.5q91 0 135.5 -62t44.5 -203q0 -11 -2 -31h-295zM138 300h218q-1 161 -101 161q-57 0 -85 -36t-32 -125z" /> +<glyph unicode="f" d="M75 431v69h120v60q0 98 33 139t107 41q45 0 90 -15v-72q-38 18 -75 18q-47 0 -61.5 -23.5t-14.5 -107.5v-40h151v-69h-151v-431h-79v431h-120z" /> +<glyph unicode="g" d="M50 260q0 270 175 270q83 0 137 -85h2l2 75h74v-515q0 -125 -50.5 -180t-154.5 -55q-71 0 -140 25v80q71 -36 140 -36q126 0 126 166v80h-2q-43 -85 -134 -85q-80 0 -127.5 66t-47.5 194zM129 260q0 -92 31.5 -138.5t84.5 -46.5q52 0 84 45.5t32 134.5v10 q0 91 -32.5 140.5t-83.5 49.5q-58 0 -87 -46.5t-29 -148.5z" /> +<glyph unicode="h" d="M440 330v-330h-77v312q0 88 -20 117.5t-73 29.5q-50 0 -85.5 -56t-35.5 -151v-252h-79v730h79v-285h2q19 39 56.5 62t82.5 23q79 0 114.5 -45.5t35.5 -154.5z" /> +<glyph unicode="i" d="M316 520v-452h109v-68h-330v68h139v384h-109v68h191zM214 640v120h102v-120h-102z" /> +<glyph unicode="j" d="M249 -33v485h-119v68h201v-553q0 -65 -8.5 -101t-36.5 -59t-72 -30t-123 -7v68q40 0 63 1t42.5 6.5t28.5 12.5t15.5 23.5t7.5 34.5t1 51zM229 640v120h102v-120h-102z" /> +<glyph unicode="k" d="M460 520l-230 -250l230 -270h-95l-206 253v-253h-79v730h79v-444l207 234h94z" /> +<glyph unicode="l" d="M281 150q0 -66 10.5 -79t63.5 -13q33 0 75 6v-69q-47 -5 -85 -5q-90 0 -118 28.5t-28 121.5v522h-129v68h211v-580z" /> +<glyph unicode="m" d="M290 0h-78v360q-1 58 -10.5 77.5t-32.5 19.5q-20 0 -35 -24t-25 -83.5t-10 -149.5v-200h-79v520h70l2 -70h2q17 38 42.5 59t53.5 21q31 0 50.5 -18.5t33.5 -61.5h2q39 80 104 80q53 0 76.5 -32.5t23.5 -117.5v-380h-77v360q-1 59 -11.5 78t-37.5 19q-64 0 -64 -197v-260z " /> +<glyph unicode="n" d="M440 330v-330h-77v312q0 88 -20 117.5t-73 29.5q-50 0 -85.5 -56t-35.5 -151v-252h-79v520h74l2 -75h2q19 38 58 61.5t84 23.5q79 0 114.5 -45.5t35.5 -154.5z" /> +<glyph unicode="o" d="M250 530q200 0 200 -270t-200 -270t-200 270t200 270zM250 59q61 0 89.5 45.5t28.5 155.5t-28.5 155.5t-89.5 45.5t-89.5 -45.5t-28.5 -155.5t28.5 -155.5t89.5 -45.5z" /> +<glyph unicode="p" d="M141 75h-2v-295h-79v740h74l2 -75h2q54 85 137 85q175 0 175 -270q0 -135 -48 -202.5t-127 -67.5q-91 0 -134 85zM371 260q0 195 -116 195q-51 0 -83.5 -49.5t-32.5 -140.5v-10q0 -91 32.5 -140.5t83.5 -49.5q53 0 84.5 48.5t31.5 146.5z" /> +<glyph unicode="q" d="M359 75q-43 -85 -134 -85q-79 0 -127 67.5t-48 202.5q0 270 175 270q83 0 137 -85h2l2 75h74v-740h-79v295h-2zM129 260q0 -98 31.5 -146.5t84.5 -48.5q51 0 83.5 49.5t32.5 140.5v10q0 91 -32.5 140.5t-83.5 49.5q-116 0 -116 -195z" /> +<glyph unicode="r" d="M186 520v-100h2q62 110 172 110q37 0 70 -10v-70q-35 11 -70 11q-73 0 -122 -61t-49 -160v-240h-79v520h76z" /> +<glyph unicode="s" d="M255 463q-96 0 -96 -73q0 -34 21 -54.5t75 -35.5q106 -30 140.5 -63t34.5 -102t-47 -107t-133 -38t-165 40v80q78 -53 155 -53q111 0 111 78q0 37 -21.5 57t-84.5 38q-92 26 -128.5 62t-36.5 98q0 66 43.5 103t126.5 37q84 0 160 -35v-75q-79 43 -155 43z" /> +<glyph unicode="t" d="M244 500h181v-69h-181v-281q0 -56 16.5 -74.5t64.5 -18.5q50 0 90 18v-70q-48 -15 -100 -15q-84 0 -117 32.5t-33 117.5v291h-100v69h100v190h79v-190z" /> +<glyph unicode="u" d="M65 180v340h77v-322q0 -83 18.5 -110t69.5 -27q49 0 82.5 55t33.5 152v252h79v-520h-74l-2 75h-2q-19 -40 -56 -62.5t-81 -22.5q-77 0 -111 43t-34 147z" /> +<glyph unicode="v" d="M251 60h2l115 460h82l-145 -520h-110l-145 520h86z" /> +<glyph unicode="w" d="M351 80h2l49 440h78l-80 -520h-99l-54 440h-2l-49 -440h-96l-80 520h82l49 -440h2l49 440h100z" /> +<glyph unicode="x" d="M251 305h2l104 215h88l-145 -260l145 -260h-94l-102 215h-2l-102 -215h-90l145 260l-145 260h92z" /> +<glyph unicode="y" d="M259 120h2l117 400h87l-240 -740h-83l78 230l-175 510h88z" /> +<glyph unicode="z" d="M80 520h340v-69l-248 -380v-2h248v-69h-340v69l248 380v2h-248v69z" /> +<glyph unicode="{" d="M195 316l4 -2q81 -38 81 -149v-135q0 -72 16.5 -91t78.5 -19h40v-60h-65q-73 0 -107.5 35.5t-34.5 114.5v150q0 66 -21.5 95.5t-66.5 29.5h-45v60h45q45 0 66.5 29.5t21.5 95.5v150q0 79 34.5 114.5t107.5 35.5h65v-60h-40q-62 0 -78.5 -19t-16.5 -91v-135q0 -61 -20 -95 t-65 -54z" /> +<glyph unicode="|" d="M212 -220v1030h76v-1030h-76z" /> +<glyph unicode="}" d="M305 316q-45 20 -65 54t-20 95v135q0 72 -16.5 91t-78.5 19h-40v60h65q73 0 107.5 -35.5t34.5 -114.5v-150q0 -66 21.5 -95.5t66.5 -29.5h45v-60h-45q-45 0 -66.5 -29.5t-21.5 -95.5v-150q0 -79 -34.5 -114.5t-107.5 -35.5h-65v60h40q62 0 78.5 19t16.5 91v135 q0 111 81 149z" /> +<glyph unicode="~" d="M50 602v75q42 33 95 33q61 0 125 -48q48 -35 80 -35q25 0 47 10t53 39v-75q-42 -33 -95 -33q-61 0 -125 48q-47 35 -80 35q-25 0 -47 -10t-53 -39z" /> +<glyph unicode=" " /> +<glyph unicode="¥" d="M251 375h2l132 355h85l-153 -375h123v-65h-149v-85h149v-65h-149v-140h-82v140h-149v65h149v85h-149v65h123l-153 375h90z" /> +<glyph unicode="­" d="M100 269v72h300v-72h-300z" /> +<glyph unicode=" " horiz-adv-x="407" /> +<glyph unicode=" " horiz-adv-x="815" /> +<glyph unicode=" " horiz-adv-x="407" /> +<glyph unicode=" " horiz-adv-x="815" /> +<glyph unicode=" " horiz-adv-x="271" /> +<glyph unicode=" " horiz-adv-x="203" /> +<glyph unicode=" " horiz-adv-x="135" /> +<glyph unicode=" " horiz-adv-x="135" /> +<glyph unicode=" " horiz-adv-x="101" /> +<glyph unicode=" " horiz-adv-x="163" /> +<glyph unicode=" " horiz-adv-x="45" /> +<glyph unicode="‐" d="M100 269v72h300v-72h-300z" /> +<glyph unicode="‑" d="M100 269v72h300v-72h-300z" /> +<glyph unicode="–" d="M60 269v72h380v-72h-380z" /> +<glyph unicode="—" d="M20 269v72h460v-72h-460z" /> +<glyph unicode="‘" d="M275 500h-120l110 280h70z" /> +<glyph unicode="’" d="M220 780h120l-110 -280h-70z" /> +<glyph unicode="“" d="M340 500h-110l110 280h60zM190 500h-110l110 280h60z" /> +<glyph unicode="”" d="M300 780h110l-110 -280h-60zM150 780h110l-110 -280h-60z" /> +<glyph unicode="…" horiz-adv-x="1000" d="M102 288v150h130v-150h-130zM435 288v150h130v-150h-130zM768 288v150h130v-150h-130z" /> +<glyph unicode=" " horiz-adv-x="163" /> +<glyph unicode=" " horiz-adv-x="203" /> +<glyph unicode="™" horiz-adv-x="1000" d="M878 540h-2l-88 -340h-80l-88 340h-2v-540h-78v730h92l119 -450h2l119 450h88v-730h-82v540zM209 0v660h-154v70h390v-70h-154v-660h-82z" /> +</font> +</defs></svg>
\ No newline at end of file diff --git a/tools/node_modules/nodemailer/node_modules/simplesmtp/node_modules/rai/jsdoc/css/fonts/mplus-1m-regular-webfont.ttf b/tools/node_modules/nodemailer/node_modules/simplesmtp/node_modules/rai/jsdoc/css/fonts/mplus-1m-regular-webfont.ttf Binary files differnew file mode 100644 index 0000000..684abfd --- /dev/null +++ b/tools/node_modules/nodemailer/node_modules/simplesmtp/node_modules/rai/jsdoc/css/fonts/mplus-1m-regular-webfont.ttf diff --git a/tools/node_modules/nodemailer/node_modules/simplesmtp/node_modules/rai/jsdoc/css/fonts/mplus-1m-regular-webfont.woff b/tools/node_modules/nodemailer/node_modules/simplesmtp/node_modules/rai/jsdoc/css/fonts/mplus-1m-regular-webfont.woff Binary files differnew file mode 100644 index 0000000..49585d8 --- /dev/null +++ b/tools/node_modules/nodemailer/node_modules/simplesmtp/node_modules/rai/jsdoc/css/fonts/mplus-1m-regular-webfont.woff diff --git a/tools/node_modules/nodemailer/node_modules/simplesmtp/node_modules/rai/jsdoc/css/handheld.css b/tools/node_modules/nodemailer/node_modules/simplesmtp/node_modules/rai/jsdoc/css/handheld.css new file mode 100644 index 0000000..073c0d1 --- /dev/null +++ b/tools/node_modules/nodemailer/node_modules/simplesmtp/node_modules/rai/jsdoc/css/handheld.css @@ -0,0 +1,217 @@ +/* + * TABLE OF CONTENTS: + * - Browser reset + * - HTML elements + * - JsDoc styling + * - Media query check + */ + + + + + + +/* + * HTML ELEMENTS + */ + +body { + padding: 1% 4% 1% 4%; +} + +/* + * HTML ELEMENTS + */ + + + + + +/* + * BEGIN JSDOC + */ + +/* Start menu */ +div.index div.menu { + position: fixed; + top: 0; + right: 0; + -moz-border-radius-bottomleft: 15px; + -webkit-border-bottom-left-radius: 15px; + -border-bottom-left-radius: 15px; + padding: 4px 5px 8px 10px; + -moz-box-shadow: 0px 0px 10px #c4c4c4; + -webkit-box-shadow: 0px 0px 10px #c4c4c4; + box-shadow: 0px 0px 10px #c4c4c4; + background-color: rgba(255, 255, 255, 0.9); +} + +div.index input.classFilter { + display: none; +} + +div.index div.indexLinks a { + float: right; + clear: both; + font-size: 1.1em; +} + +div.index *.heading1 { + display:none; +} + +div.index ul.classList { + display:none; +} + +div.index div.fineprint { + display:none; +} + +div.indexStatic { + display: none; +} +/* End menu */ + + + +/* Start content */ +div.content *.classTitle { + margin-right: 60px; + margin-bottom: 15px; +} + +div.content div.intro { + margin: 15px 0 35px; +} + +div.content p.description.summary { + margin-bottom: 0.2em; +} + +div.content div.props { + margin: 1.5em -2% 0 -2%; + padding: 2%; +} + +table.summaryTable { + position: relative; + left: -10px; + width: 100%; + border-collapse: collapse; + box-sizing: content-box; + -moz-box-sizing: content-box; + -webkit-box-sizing: content-box; + -ms-box-sizing: content-box; + -o-box-sizing: content-box; + -icab-box-sizing: content-box; + -khtml-box-sizing: content-box; +} + +*.sectionTitle { + padding: 0 10px 10px 0; +} +caption.sectionTitle { + padding-left: 10px; +} + +table.summaryTable td, +table.summaryTable th { + padding: 0px 10px 10px 10px; +} +table.summaryTable tr:last-child td { + padding-bottom: 0; +} + +table.summaryTable td.attributes { + width: 35%; +} + +table.summaryTable td.nameDescription { + width: 65% +} + + + +dl.detailList { + margin-top: 0.5em; +} + +dl.detailList.nomargin + dl.detailList.nomargin { + margin-top: 0; +} + +dl.detailList dt { + display: inline; + margin-right: 5px; +} + +dl.detailList dt:before { + display: block; + content: ""; +} + +dl.detailList dd { + display: inline; +} + +dl.detailList.params dt { + display: block; +} +dl.detailList.params dd { + display: block; + padding-left: 2em; + padding-bottom: 0.4em; +} + + + + +ul.fileList li { + margin-bottom: 1.5em; +} + + + +.fixedFont.heading { + margin-bottom: 0.5em; +} + +pre.code { + margin: 10px 0 10px 0; + padding: 10px; + border: 1px solid #ccc; + -moz-border-radius: 2px; + -webkit-border-radius: 2px; + border-radius: 2px; +} +/* End content */ + +/* + * END JSDOC + */ + + + + + + + +/* + * START MEDIA QUERY CHECK + */ + +.cssLoadCheck { + position: absolute; + top: -99999px; + left: -99999px; + border: 0; + width: 100px; + padding: 0; + overflow: hidden; +} + +/* + * END MEDIA QUERY CHECK + */ + diff --git a/tools/node_modules/nodemailer/node_modules/simplesmtp/node_modules/rai/jsdoc/css/screen.css b/tools/node_modules/nodemailer/node_modules/simplesmtp/node_modules/rai/jsdoc/css/screen.css new file mode 100644 index 0000000..8cb4bba --- /dev/null +++ b/tools/node_modules/nodemailer/node_modules/simplesmtp/node_modules/rai/jsdoc/css/screen.css @@ -0,0 +1,297 @@ +/* + * TABLE OF CONTENTS: + * - JsDoc styling + * - Media query check + */ + + + + + + +/* + * BEGIN JSDOC + */ + +/* Start menu */ +div.index { + position: fixed; + top: 0; + bottom: 0; + float: left; + width: 30%; + min-width: 100px; + max-width: 300px; + padding: 0 0 10px 0; + overflow: auto; +} + +div.index *.heading1 { + padding: 8px 0 0 0; +} + +div.index div.menu { + margin: 0 15px 0 -15px; + -moz-border-radius-bottomright: 15px; + -webkit-border-bottom-right-radius: 15px; + -border-bottom-right-radius: 15px; + padding: 15px 15px 15px 30px; + -moz-box-shadow: 0px 0px 10px #c4c4c4; + -webkit-box-shadow: 0px 0px 10px #c4c4c4; + box-shadow: 0px 0px 10px #c4c4c4; + background-color: rgba(255, 255, 255, 0.5); +} + +div.index div.indexLinks { + margin-top: 13px; + position: absolute; + right: 30px; +} + +div.index div.indexLinks a { + color: #999999; + text-transform: lowercase; +} + +div.index div.indexLinks a:first-child { + margin-right: 3px; + border-right: 1px solid #999999; + padding-right: 5px; +} + +div.index input.classFilter { + margin-bottom: 4px; + width: 100%; + border-width: 1px; + border-style: solid; + border-color: #CCCCCC #999999 #999999 #CCCCCC; + -moz-border-radius: 3px; + -webkit-border-radius: 3px; + -border-radius: 3px; +} + +div.index ul.classList a { + line-height: 1.3em; +} + +div.index ul.classList a + a { + margin-left: 0.5em; +} + +div.index div.fineprint { + margin: 1em 0 0 15px; + color: #777; + font-size: 0.9em; +} + +div.index div.fineprint a { + color: #777; +} + +div.indexStatic { + position: static; + min-height: 1em; +} +/* End menu */ + + +/* Start content */ +div.content { + float: left; + width: 70%; + min-width: 300px; + max-width: 600px; +} +div.innerContent { + padding: 0 0 0 2.5em; +} + +div.content ul, +div.content ol { + margin-bottom: 3em; +} + +div.content ul.methodDetail { + margin-bottom: 0; +} + +div.content *.classTitle { + position: relative; + left: -10px; + margin: -30px 0 15px 0; + -moz-border-radius: 15px; + -webkit-border-radius: 15px; + border-radius: 15px; + padding: 25px 15px 15px 15px; + background-color: #FFFFFF; + background-color: rgba(255, 255, 255, 0.5); + -moz-box-shadow: 0px 0px 10px #c4c4c4; + -webkit-box-shadow: 0px 0px 10px #c4c4c4; + box-shadow: 0px 0px 10px #c4c4c4; +} + +div.content div.intro { + margin: 15px 0 45px +} + +div.content p.summary { + margin-bottom: 0.5em; +} + +div.content ul.summary { + margin-bottom: 1.5em; +} + +div.content ul *.classname a, +div.content ul *.filename a { + font-family: Consolas, "Courier New", Courier, monospace; + text-decoration: none; + font-weight: bold; +} +div.content ul *.classname a:hover, +div.content ul *.filename a:hover { + text-decoration: underline; +} + +div.content div.props { + position: relative; + left: -10px; + margin-bottom: 2.5em; + padding: 10px 15px 15px 15px; + overflow: hidden; +} + +div.content div.hr { + margin: 0 10px 0 0; + height: 4em; +} + + + +table.summaryTable { + position: relative; + left: -10px; + width: 100%; + border-collapse: collapse; + box-sizing: content-box; + -moz-box-sizing: content-box; + -webkit-box-sizing: content-box; + -ms-box-sizing: content-box; + -o-box-sizing: content-box; + -icab-box-sizing: content-box; + -khtml-box-sizing: content-box; +} + +*.sectionTitle { + padding: 0 10px 10px 0; +} +caption.sectionTitle { + padding-left: 10px; +} + +table.summaryTable td, +table.summaryTable th { + padding: 0px 10px 10px 10px; +} +table.summaryTable tr:last-child td { + padding-bottom: 0; +} + +table.summaryTable td.attributes { + width: 35%; +} + +table.summaryTable td.nameDescription { + width: 65% +} + + + +dl.detailList { + margin-top: 0.5em; +} + +dl.detailList.nomargin + dl.detailList.nomargin { + margin-top: 0; +} + +dl.detailList dt { + display: inline; + margin-right: 5px; +} + +dl.detailList dt:before { + display: block; + content: ""; +} + +dl.detailList dd { + display: inline; +} + +dl.detailList.params dt { + display: block; +} +dl.detailList.params dd { + display: block; + padding-left: 2em; + padding-bottom: 0.4em; +} + + + + +ul.fileList li { + margin-bottom: 1.5em; +} + + + +.fixedFont.heading { + margin-bottom: 0.5em; +} + +pre.code { + margin: 10px 0 10px 0; + padding: 10px; + border: 1px solid #ccc; + -moz-border-radius: 2px; + -webkit-border-radius: 2px; + border-radius: 2px; +} +/* End content */ + +.clear { + clear: both; + width: 100%; + min-height: 0; +} + +/* + * END JSDOC + */ + + + + + + + +/* + * START MEDIA QUERY CHECK + */ + +.cssLoadCheck { + position: absolute; + top: -99999px; + left: -99999px; + border: 0; + width: 100px; + padding: 0; + overflow: hidden; +} + +/* + * END MEDIA QUERY CHECK + */ + diff --git a/tools/node_modules/nodemailer/node_modules/simplesmtp/node_modules/rai/jsdoc/files.html b/tools/node_modules/nodemailer/node_modules/simplesmtp/node_modules/rai/jsdoc/files.html new file mode 100644 index 0000000..a4f372a --- /dev/null +++ b/tools/node_modules/nodemailer/node_modules/simplesmtp/node_modules/rai/jsdoc/files.html @@ -0,0 +1,133 @@ + +<!DOCTYPE html> +<html lang="en"> + <head> + <meta charset="UTF-8" /> + <meta name="generator" content="JsDoc Toolkit" /> + <title>File Index | JsDoc Reference</title> + + <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0" /> + <meta name="mobileoptimized" content="0" /> + + <link rel="stylesheet" href="css/all.css" media="all" /> + <link rel="stylesheet" href="css/handheld.css" media="only screen and (max-width: 660px)" /> + <link rel="stylesheet" href="css/handheld.css" media="handheld" /> + <link rel="stylesheet" href="css/screen.css" media="screen and (min-width: 661px)" /> + + <script src="javascript/all.js"></script> + <!--[if lt IE 9]> + <script src="javascript/html5.js"></script> + <![endif]--> + </head> + + <body> + +<div class="index"> + <div class="menu"> + <div class="indexLinks"> + <a href="index.html">Classes</a> + <a href="files.html">Files</a> + </div> + + <h2 class="heading1">Classes</h2> + + <input type="text" name="classFilter" class="classFilter" id="ClassFilter" placeholder="Filter"></input> + + <nav> + <ul class="classList" id="ClassList"> + + <li><a href="symbols/_global_.html">_global_</a></li> + + <li><a href="symbols/mockup.html">mockup</a></li> + + <li><a href="symbols/RAIServer.html">RAIServer</a></li> + + <li><a href="symbols/RAISocket.html">RAISocket</a></li> + + <li><a href="symbols/starttls.html">starttls</a></li> + + </ul> + </nav> + </div> + <div class="fineprint" style="clear:both"> + <footer> + + Documentation generator: <a href="http://code.google.com/p/jsdoc-toolkit/" target="_blank">JsDoc Toolkit</a> 2.4.0<br /> + Template: <a href="http://www.thebrightlines.com/2010/05/06/new-template-for-jsdoctoolkit-codeview/" target="_blank">Codeview</a> 1.2<br /> + Generated on: + <time datetime='2012-0-22' pubdate>2012-0-22 12:15</time> + </footer> + </div> +</div> + +<div class="index indexStatic"></div> + +<div class="content"> + <div class="innerContent"> + <article> + <h1 class="classTitle"><span>File Index</span></h1> + + <ul class="fileList" id="FileList"> + + <li> + <h2 class="filename"><a href="symbols/src/RAI_lib_rai.js.html">rai.js</a></h2> + + +This is the main file for the RAI library to create text based servers + + <dl class="detailList"> + + <dt class="heading">Author:</dt> + <dd><a href="mailto:andris@node.ee">Andris Reinman</a></dd> + + + + <dt class="heading">Version:</dt> + <dd>0.1.3</dd> + + + + + </dl> + </li> + + <li> + <h2 class="filename"><a href="symbols/src/RAI_lib_mockup.js.html">RAI/lib/mockup.js</a></h2> + + + + <dl class="detailList"> + + + + + + + </dl> + </li> + + <li> + <h2 class="filename"><a href="symbols/src/RAI_lib_starttls.js.html">RAI/lib/starttls.js</a></h2> + + + + <dl class="detailList"> + + + + + + + </dl> + </li> + + </ul> + </article> + </div> +</div> + <script type="text/javascript"> + wbos.CssTools.MediaQueryFallBack.LoadCss('css/screen.css', 'css/handheld.css', 660) + codeview.classFilter.Init() + </script> + </body> +</html> diff --git a/tools/node_modules/nodemailer/node_modules/simplesmtp/node_modules/rai/jsdoc/index.html b/tools/node_modules/nodemailer/node_modules/simplesmtp/node_modules/rai/jsdoc/index.html new file mode 100644 index 0000000..544613f --- /dev/null +++ b/tools/node_modules/nodemailer/node_modules/simplesmtp/node_modules/rai/jsdoc/index.html @@ -0,0 +1,107 @@ + +<!DOCTYPE html> +<html lang="en"> + <head> + <meta charset="UTF-8" /> + <meta name="generator" content="JsDoc Toolkit" /> + <title>Class Index | JsDoc Reference</title> + + <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0" /> + <meta name="mobileoptimized" content="0" /> + + <link rel="stylesheet" href="css/all.css" media="all" /> + <link rel="stylesheet" href="css/handheld.css" media="only screen and (max-width: 660px)" /> + <link rel="stylesheet" href="css/handheld.css" media="handheld" /> + <link rel="stylesheet" href="css/screen.css" media="screen and (min-width: 661px)" /> + + <script src="javascript/all.js"></script> + <!--[if lt IE 9]> + <script src="javascript/html5.js"></script> + <![endif]--> + </head> + + <body> + +<div class="index"> + <div class="menu"> + <div class="indexLinks"> + <a href="index.html">Classes</a> + <a href="files.html">Files</a> + </div> + + <h2 class="heading1">Classes</h2> + + <input type="text" name="classFilter" class="classFilter" id="ClassFilter" placeholder="Filter"></input> + + <nav> + <ul class="classList" id="ClassList"> + + <li><a href="symbols/_global_.html">_global_</a></li> + + <li><a href="symbols/mockup.html">mockup</a></li> + + <li><a href="symbols/RAIServer.html">RAIServer</a></li> + + <li><a href="symbols/RAISocket.html">RAISocket</a></li> + + <li><a href="symbols/starttls.html">starttls</a></li> + + </ul> + </nav> + </div> + <div class="fineprint" style="clear:both"> + <footer> + + Documentation generator: <a href="http://code.google.com/p/jsdoc-toolkit/" target="_blank">JsDoc Toolkit</a> 2.4.0<br /> + Template: <a href="http://www.thebrightlines.com/2010/05/06/new-template-for-jsdoctoolkit-codeview/" target="_blank">Codeview</a> 1.2<br /> + Generated on: + <time datetime='2012-0-22' pubdate>2012-0-22 12:15</time> + </footer> + </div> +</div> + +<div class="index indexStatic"></div> + +<div class="content"> + <div class="innerContent"> + <article> + <h1 class="classTitle"><span>Class Index</span></h1> + + <ul id="ClassList2"> + + <li> + <h2 class="classname"><a href="symbols/_global_.html">_global_</a></h2> + <p></p> + </li> + + <li> + <h2 class="classname"><a href="symbols/mockup.html">mockup</a></h2> + <p>Mockup module</p> + </li> + + <li> + <h2 class="classname"><a href="symbols/RAIServer.html">RAIServer</a></h2> + <p></p> + </li> + + <li> + <h2 class="classname"><a href="symbols/RAISocket.html">RAISocket</a></h2> + <p></p> + </li> + + <li> + <h2 class="classname"><a href="symbols/starttls.html">starttls</a></h2> + <p>STARTTLS module</p> + </li> + + </ul> + </article> + </div> +</div> + <script type="text/javascript"> + wbos.CssTools.MediaQueryFallBack.LoadCss('css/screen.css', 'css/handheld.css', 660) + codeview.classFilter.Init() + </script> + </body> +</html> + diff --git a/tools/node_modules/nodemailer/node_modules/simplesmtp/node_modules/rai/jsdoc/javascript/all.js b/tools/node_modules/nodemailer/node_modules/simplesmtp/node_modules/rai/jsdoc/javascript/all.js new file mode 100644 index 0000000..5b6876a --- /dev/null +++ b/tools/node_modules/nodemailer/node_modules/simplesmtp/node_modules/rai/jsdoc/javascript/all.js @@ -0,0 +1,326 @@ +/** + * @fileOverview Contains standard code in the namespace 'wbos' and code specifically written for Codeview in the namespace 'codeview' + * @author Wouter Bos (www.thebrightlines.com) + * @since 1.0 - 2010-09-10 + * @version 1.0 - 2010-09-10 + */ + + + + + + +if (typeof(wbos) == "undefined") { + /** + * @namespace Standard code of Wouter Bos (wbos) + */ + wbos = {} +} +if (typeof(wbos.CssTools) == "undefined") { + /** + * @namespace Namespace for CSS-related functionality + */ + wbos.CssTools = {} +} + + + + +/** + * @namespace Fallback for CSS advanced media query + * @class + * @since 1.0 - 2010-09-10 + * @version 1.0 - 2010-09-10 + */ +wbos.CssTools.MediaQueryFallBack = ( function() { + var config = { + cssScreen: "/css/screen.css", + cssHandheld: "/css/handheld.css", + mobileMaxWidth: 660, + testDivClass: "cssLoadCheck", + dynamicCssLinkId: "DynCssLink", + resizeDelay: 30 + } + var noMediaQuery = false; + var delay; + var currentCssMediaType; + + // Adding events to elements in the DOM without overwriting it + function addEvent(element, newFunction, eventType) { + var oldEvent = eval("element." + eventType); + var eventContentType = eval("typeof element." + eventType) + + if ( eventContentType != 'function' ) { + eval("element." + eventType + " = newFunction") + } else { + eval("element." + eventType + " = function(e) { oldEvent(e); newFunction(e); }") + } + } + + // Get the the inner width of the browser window + function getWindowWidth() { + if (window.innerWidth) { + return window.innerWidth; + } else if (document.documentElement.clientWidth) { + return document.documentElement.clientWidth; + } else if (document.body.clientWidth) { + return document.body.clientWidth; + } else{ + return 0; + } + } + + function addCssLink(cssHref) { + var cssNode = document.createElement('link'); + var windowWidth; + cssNode.type = 'text/css'; + cssNode.rel = 'stylesheet'; + cssNode.media = 'screen, handheld, fallback'; + cssNode.href = cssHref; + document.getElementsByTagName("head")[0].appendChild(cssNode); + } + + + + /* Start public */ + return { + /** + * Adds link to CSS in the head if no CSS is loaded + * + * @since 1.0 - 2010-08-21 + * @version 1.0 - 2010-08-21 + * @param {String|Object} cssScreen URL to CSS file for larger screens + * @param {String|Object} cssHandheld URL to CSS file for smaller screens + * @param {Number} mobileMaxWidth Maximum width for handheld devices + * @example + * wbos.CssTools.MediaQueryFallBack.LoadCss(['screen.css', 'screen2.css'], 'mobile.css', 480) + */ + LoadCss: function(cssScreen, cssHandheld, mobileMaxWidth) { + // Set config values + if (typeof(cssScreen) != "undefined") { + config.cssScreen = cssScreen; + } + if (typeof(cssHandheld) != "undefined") { + config.cssHandheld = cssHandheld; + } + if (typeof(mobileMaxWidth) != "undefined") { + config.mobileMaxWidth = mobileMaxWidth; + } + + // Check if CSS is loaded + var cssloadCheckNode = document.createElement('div'); + cssloadCheckNode.className = config.testDivClass; + document.getElementsByTagName("body")[0].appendChild(cssloadCheckNode); + if (cssloadCheckNode.offsetWidth != 100 && noMediaQuery == false) { + noMediaQuery = true; + } + cssloadCheckNode.parentNode.removeChild(cssloadCheckNode) + + if (noMediaQuery == true) { + // Browser does not support Media Queries, so JavaScript will supply a fallback + var cssHref = ""; + + // Determines what CSS file to load + if (getWindowWidth() <= config.mobileMaxWidth) { + cssHref = config.cssHandheld; + newCssMediaType = "handheld"; + } else { + cssHref = config.cssScreen; + newCssMediaType = "screen"; + } + + // Add CSS link to <head> of page + if (cssHref != "" && currentCssMediaType != newCssMediaType) { + var currentCssLinks = document.styleSheets + for (var i = 0; i < currentCssLinks.length; i++) { + for (var ii = 0; ii < currentCssLinks[i].media.length; ii++) { + if (typeof(currentCssLinks[i].media) == "object") { + if (currentCssLinks[i].media.item(ii) == "fallback") { + currentCssLinks[i].ownerNode.parentNode.removeChild(currentCssLinks[i].ownerNode) + i-- + break; + } + } else { + if (currentCssLinks[i].media.indexOf("fallback") >= 0) { + currentCssLinks[i].owningElement.parentNode.removeChild(currentCssLinks[i].owningElement) + i-- + break; + } + } + } + } + if (typeof(cssHref) == "object") { + for (var i = 0; i < cssHref.length; i++) { + addCssLink(cssHref[i]) + } + } else { + addCssLink(cssHref) + } + + currentCssMediaType = newCssMediaType; + } + + + // Check screen size again if user resizes window + addEvent(window, wbos.CssTools.MediaQueryFallBack.LoadCssDelayed, 'onresize') + } + }, + + /** + * Runs LoadCSS after a short delay + * + * @since 1.0 - 2010-08-21 + * @version 1.0 - 2010-08-21 + * @example + * wbos.CssTools.MediaQueryFallBack.LoadCssDelayed() + */ + LoadCssDelayed: function() { + clearTimeout(delay); + delay = setTimeout( "wbos.CssTools.MediaQueryFallBack.LoadCss()", config.resizeDelay) + } + + } + /* End public */ +})(); + + + + + + +/** + * @namespace Adds a function to an event of a single element. Use this if + * you don't want to use jQuery + * @class + * @since 1.0 - 2010-02-23 + * @version 1.0 - 2010-02-23 + */ +wbos.Events = ( function() { + /* Start public */ + return { + /** + * Adds a function to an event of a single element + * + * @since 1.0 - 2010-02-23 + * @version 1.0 - 2010-02-23 + * @param {Object} element The element on which the event is placed + * @param {Function} newFunction The function that has to be linked to the event + * @param {String} eventType Name of the event + * @example + * wbos.Events.AddEvent( document.getElementById('elementId'), functionName, "onclick" ) + */ + AddEvent: function( element, newFunction, eventType ) { + var oldEvent = eval("element." + eventType); + var eventContentType = eval("typeof element." + eventType) + + if ( eventContentType != 'function' ) { + eval("element." + eventType + " = newFunction") + } else { + eval("element." + eventType + " = function(e) { oldEvent(e); newFunction(e); }") + } + } + } + /* End public */ +})(); + + + + + + +if (typeof(codeview) == "undefined") { + /** + * @namespace Code written for the Codeview template + */ + codeview = {} +} + + + + + + + +/** + * @namespace Enables filtering in class lists + * @class + * @since 1.0 - 2010-11-08 + * @version 1.0 - 2010-11-08 + */ +codeview.classFilter = ( function() { + function onkeyup_ClassFilter() { + var listItems + var search = document.getElementById('ClassFilter').value + search = search.toLowerCase() + if (document.getElementById('ClassList')) { + listItems = document.getElementById('ClassList').getElementsByTagName('li') + filterList(listItems, search) + } + if (document.getElementById('ClassList2')) { + listItems = document.getElementById('ClassList2').getElementsByTagName('li') + filterList(listItems, search) + } + if (document.getElementById('FileList')) { + listItems = document.getElementById('FileList').getElementsByTagName('li') + filterList(listItems, search) + } + if (document.getElementById('MethodsListInherited')) { + var links = document.getElementById('MethodsListInherited').getElementsByTagName('a') + var linksSelected = new Array() + for (var i=0; i < links.length; i++) { + if (links[i].parentNode.parentNode.tagName == "DD") { + linksSelected.push(links[i]) + } + } + filterList(linksSelected, search) + } + if (document.getElementById('MethodsList')) { + listItems = document.getElementById('MethodsList').getElementsByTagName('tbody')[0].getElementsByTagName('tr') + filterList(listItems, search, document.getElementById('MethodDetail').getElementsByTagName('li')) + } + } + + function filterList(listItems, search, relatedElements) { + var itemContent = "" + for (var i=0; i < listItems.length; i++) { + itemContent = listItems[i].textContent||listItems[i].innerText + if (itemContent != undefined) { + itemContent = itemContent.toLowerCase() + itemContent = itemContent.replace(/\s/g, "") + if (itemContent.indexOf(search) >= 0 || itemContent == "") { + listItems[i].style.display = "" + } else { + listItems[i].style.display = "none" + } + if (relatedElements != null) { + filterRelatedList(listItems[i], search, relatedElements) + } + } + } + } + + function filterRelatedList(listItem, search, relatedElements) { + var itemIndex = parseInt(listItem.className.replace('item', '')) + if (itemIndex <= relatedElements.length) { + if (relatedElements[itemIndex].className == "item"+ itemIndex) { + relatedElements[itemIndex].style.display = listItem.style.display + } + } + } + + + + + + /* Start public */ + return { + Init: function() { + wbos.Events.AddEvent( + document.getElementById('ClassFilter'), + onkeyup_ClassFilter, + "onkeyup" + ) + } + } + /* End public */ +})(); diff --git a/tools/node_modules/nodemailer/node_modules/simplesmtp/node_modules/rai/jsdoc/javascript/html5.js b/tools/node_modules/nodemailer/node_modules/simplesmtp/node_modules/rai/jsdoc/javascript/html5.js new file mode 100644 index 0000000..3587bf7 --- /dev/null +++ b/tools/node_modules/nodemailer/node_modules/simplesmtp/node_modules/rai/jsdoc/javascript/html5.js @@ -0,0 +1,6 @@ +// html5shiv MIT @rem remysharp.com/html5-enabling-script +// iepp v1.6.2 MIT @jon_neal iecss.com/print-protector +/*@cc_on(function(m,c){var z="abbr|article|aside|audio|canvas|details|figcaption|figure|footer|header|hgroup|mark|meter|nav|output|progress|section|summary|time|video";function n(d){for(var a=-1;++a<o;)d.createElement(i[a])}function p(d,a){for(var e=-1,b=d.length,j,q=[];++e<b;){j=d[e];if((a=j.media||a)!="screen")q.push(p(j.imports,a),j.cssText)}return q.join("")}var g=c.createElement("div");g.innerHTML="<z>i</z>";if(g.childNodes.length!==1){var i=z.split("|"),o=i.length,s=RegExp("(^|\\s)("+z+")", +"gi"),t=RegExp("<(/*)("+z+")","gi"),u=RegExp("(^|[^\\n]*?\\s)("+z+")([^\\n]*)({[\\n\\w\\W]*?})","gi"),r=c.createDocumentFragment(),k=c.documentElement;g=k.firstChild;var h=c.createElement("body"),l=c.createElement("style"),f;n(c);n(r);g.insertBefore(l, +g.firstChild);l.media="print";m.attachEvent("onbeforeprint",function(){var d=-1,a=p(c.styleSheets,"all"),e=[],b;for(f=f||c.body;(b=u.exec(a))!=null;)e.push((b[1]+b[2]+b[3]).replace(s,"$1.iepp_$2")+b[4]);for(l.styleSheet.cssText=e.join("\n");++d<o;){a=c.getElementsByTagName(i[d]);e=a.length;for(b=-1;++b<e;)if(a[b].className.indexOf("iepp_")<0)a[b].className+=" iepp_"+i[d]}r.appendChild(f);k.appendChild(h);h.className=f.className;h.innerHTML=f.innerHTML.replace(t,"<$1font")});m.attachEvent("onafterprint", +function(){h.innerHTML="";k.removeChild(h);k.appendChild(f);l.styleSheet.cssText=""})}})(this,document);@*/
\ No newline at end of file diff --git a/tools/node_modules/nodemailer/node_modules/simplesmtp/node_modules/rai/jsdoc/symbols/RAIServer.html b/tools/node_modules/nodemailer/node_modules/simplesmtp/node_modules/rai/jsdoc/symbols/RAIServer.html new file mode 100644 index 0000000..3e91613 --- /dev/null +++ b/tools/node_modules/nodemailer/node_modules/simplesmtp/node_modules/rai/jsdoc/symbols/RAIServer.html @@ -0,0 +1,565 @@ + +<!DOCTYPE html> +<html lang="en"> + <head> + <meta charset="UTF-8" /> + <meta name="generator" content="JsDoc Toolkit" /> + <title>RAIServer | JsDoc Reference</title> + + <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0" /> + <meta name="mobileoptimized" content="0" /> + + <link rel="stylesheet" href="../css/all.css" media="all" /> + <link rel="stylesheet" href="../css/handheld.css" media="only screen and (max-width: 660px)" /> + <link rel="stylesheet" href="../css/handheld.css" media="handheld" /> + <link rel="stylesheet" href="../css/screen.css" media="screen and (min-width: 661px)" /> + + <script src="../javascript/all.js"></script> + <!--[if lt IE 9]> + <script src="../javascript/html5.js"></script> + <![endif]--> + </head> + + <body> + +<div class="index"> + <div class="menu"> + <div class="indexLinks"> + <a href="../index.html">Classes</a> + <a href="../files.html">Files</a> + </div> + + <h2 class="heading1">Classes</h2> + + <input type="text" name="classFilter" class="classFilter" id="ClassFilter" placeholder="Filter"></input> + + <nav> + <ul class="classList" id="ClassList"> + + <li><a href="../symbols/_global_.html">_global_</a></li> + + <li><a href="../symbols/mockup.html">mockup</a></li> + + <li><a href="../symbols/RAIServer.html">RAIServer</a></li> + + <li><a href="../symbols/RAISocket.html">RAISocket</a></li> + + <li><a href="../symbols/starttls.html">starttls</a></li> + + </ul> + </nav> + </div> + <div class="fineprint" style="clear:both"> + <footer> + + Documentation generator: <a href="http://code.google.com/p/jsdoc-toolkit/" target="_blank">JsDoc Toolkit</a> 2.4.0<br /> + Template: <a href="http://www.thebrightlines.com/2010/05/06/new-template-for-jsdoctoolkit-codeview/" target="_blank">Codeview</a> 1.2<br /> + Generated on: + <time datetime='2012-0-22' pubdate>2012-0-22 12:15</time> + </footer> + </div> +</div> + +<div class="index indexStatic"></div> + +<div class="content"> + <div class="innerContent"> + <article> + <header> + <h1 class="classTitle"> + + Class <span>RAIServer</span> + </h1> + + <div class="intro"> + <p class="description summary"> + + </p> + + + <ul class="summary"> + + + + <li>Defined in: <a href="../symbols/src/RAI_lib_rai.js.html">rai.js</a></li> + + + </ul> + + </div> + </header> + + + <section> + <div class="props"> + <table class="summaryTable" cellspacing="0" summary="A summary of the constructor documented in the class RAIServer."> + <caption class="sectionTitle">Class Summary</caption> + <thead> + <tr> + <th scope="col">Constructor Attributes</th> + <th scope="col">Constructor Name and Description</th> + </tr> + </thead> + <tbody> + <tr> + <td class="attributes"> </td> + <td class="nameDescription" > + <div class="fixedFont"> + <b><a href="../symbols/RAIServer.html#constructor">RAIServer</a></b>(options) + </div> + <div class="description"><p>Creates instance of RAIServer</p> + +<p>Options object has the following properties:</p> + +<ul> + <li><b>debug</b> - if set to true print traffic to console</li> + <li><b>disconnectOnTimeout</b> - if set to true close the connection on disconnect</li> + <li><b>timeout</b> - timeout in milliseconds for disconnecting the client, + defaults to 0 (no timeout)</li> +</ul> + +<p><b>Events</b></p> + +<ul> + <li><b>'connect'</b> - emitted if a client connects to the server, param + is a client (<a href="../symbols/RAISocket.html">RAISocket</a>) object</li> + <li><b>'error'</b> - emitted on error, has an error object as a param</li> +</ul></div> + </td> + </tr> + </tbody> + </table> + </div> + </section> + + + + <!-- + #### METHODS SUMMARY + --> + + <section> + + + <div class="props"> + <h2 class="sectionTitle">Method Summary</h2> + + + <nav> + <table class="summaryTable" id="MethodsList" cellspacing="0" summary="A summary of the methods documented in the class RAIServer."> + <thead> + <tr> + <th scope="col">Method Attributes</th> + <th scope="col">Method Name and Description</th> + </tr> + </thead> + + <tbody> + + + <tr + class='item0' + > + <td class="attributes"><private> </td> + <td class="nameDescription"> + <div class="fixedFont"><b><a href="../symbols/RAIServer.html#_createServer">_createServer</a></b>() + </div> + <div class="description"><p>Creates a server with listener callback</p></div> + </td> + </tr> + + <tr + class='item1' + > + <td class="attributes"><private> </td> + <td class="nameDescription"> + <div class="fixedFont"><b><a href="../symbols/RAIServer.html#_serverListener">_serverListener</a></b>(socket) + </div> + <div class="description"><p>Server listener that is run on client connection</p> + +<p><a href="../symbols/RAISocket.html">RAISocket</a> object instance is created based on the client socket + and a <code>'connection'</code> event is emitted</p></div> + </td> + </tr> + + <tr + class='item2' + > + <td class="attributes"> </td> + <td class="nameDescription"> + <div class="fixedFont"><b><a href="../symbols/RAIServer.html#end">end</a></b>(callback) + </div> + <div class="description"><p>Stops the server</p></div> + </td> + </tr> + + <tr + class='item3' + > + <td class="attributes"> </td> + <td class="nameDescription"> + <div class="fixedFont"><b><a href="../symbols/RAIServer.html#listen">listen</a></b>(port, host, callback) + </div> + <div class="description"><p>Starts listening on selected port</p></div> + </td> + </tr> + + </tbody> + </table> + </nav> + + + + </div> + </section> + + + <!-- + #### EVENTS SUMMARY + --> + + + <section> + + <nav> + <div class="props"> + <table class="summaryTable" cellspacing="0" summary="A summary of the events documented in the class RAIServer."> + <caption class="sectionTitle">Event Summary</caption> + + <thead> + <tr> + <th scope="col">Event Attributes</th> + <th scope="col">Event Name and Description</th> + </tr> + </thead> + + <tbody> + + <tr> + <td class="attributes"><private> </td> + <td class="nameDescription"> + <div class="fixedFont"><b><a href="../symbols/RAIServer.html#event:_onError">_onError</a></b>(err) + </div> + <div class="description"><p>Listens for errors</p></div> + </td> + </tr> + + </tbody> + </table> + </div> + </nav> + + + + </section> + + <!-- + #### CONSTRUCTOR DETAILS + --> + + <section> + <div class="details props"> + <div class="innerProps"> + <h2 class="sectionTitle" id="constructor"> + Class Detail + </h2> + + <div class="fixedFont"> + <b>RAIServer</b>(options) + </div> + + <div class="description"> + <p>Creates instance of RAIServer</p> + +<p>Options object has the following properties:</p> + +<ul> + <li><b>debug</b> - if set to true print traffic to console</li> + <li><b>disconnectOnTimeout</b> - if set to true close the connection on disconnect</li> + <li><b>timeout</b> - timeout in milliseconds for disconnecting the client, + defaults to 0 (no timeout)</li> +</ul> + +<p><b>Events</b></p> + +<ul> + <li><b>'connect'</b> - emitted if a client connects to the server, param + is a client (<a href="../symbols/RAISocket.html">RAISocket</a>) object</li> + <li><b>'error'</b> - emitted on error, has an error object as a param</li> +</ul> + + </div> + + + + + <dl class="detailList params"> + <dt class="heading">Parameters:</dt> + + <dt> + <span class="light fixedFont">{Object}</span> <b>options</b> + <i>Optional</i> + </dt> + <dd>Optional options object</dd> + + </dl> + + + + </div> + </div> + </section> + + <!-- + #### FIELD DETAILS + --> + + <!-- + #### METHOD DETAILS + --> + + <section> + <div class="details props"> + <div class="innerProps"> + <h2 class="sectionTitle"> + Method Detail + </h2> + + <ul class="methodDetail" id="MethodDetail"> + + + <li + class='item0' + > + <div class="fixedFont heading" id="_createServer"> + <span class='lighter'> + <private> + </span> + + + + <b>_createServer</b>() + </div> + + <div class="description"> + <p>Creates a server with listener callback</p> + + + + + </div> + + + + + + + <div class="hr"></div> + </li> + + <li + class='item1' + > + <div class="fixedFont heading" id="_serverListener"> + <span class='lighter'> + <private> + </span> + + + + <b>_serverListener</b>(socket) + </div> + + <div class="description"> + <p>Server listener that is run on client connection</p> + +<p><a href="../symbols/RAISocket.html">RAISocket</a> object instance is created based on the client socket + and a <code>'connection'</code> event is emitted</p> + + + + + </div> + + + + + <dl class="detailList params"> + <dt class="heading">Parameters:</dt> + + <dt> + <span class="light fixedFont">{Object}</span> <b>socket</b> + + </dt> + <dd>The socket to the client</dd> + + </dl> + + + + <div class="hr"></div> + </li> + + <li + class='item2' + > + <div class="fixedFont heading" id="end"> + <span class='lighter'> + + </span> + + + + <b>end</b>(callback) + </div> + + <div class="description"> + <p>Stops the server</p> + + + + + </div> + + + + + <dl class="detailList params"> + <dt class="heading">Parameters:</dt> + + <dt> + <span class="light fixedFont">{Function}</span> <b>callback</b> + + </dt> + <dd>Is run when the server is closed</dd> + + </dl> + + + + <div class="hr"></div> + </li> + + <li + class='item3' + > + <div class="fixedFont heading" id="listen"> + <span class='lighter'> + + </span> + + + + <b>listen</b>(port, host, callback) + </div> + + <div class="description"> + <p>Starts listening on selected port</p> + + + + + </div> + + + + + <dl class="detailList params"> + <dt class="heading">Parameters:</dt> + + <dt> + <span class="light fixedFont">{Number}</span> <b>port</b> + + </dt> + <dd>The port to listen</dd> + + <dt> + <span class="light fixedFont">{String}</span> <b>host</b> + <i>Optional</i> + </dt> + <dd>The IP address to listen</dd> + + <dt> + <span class="light fixedFont">{Function}</span> <b>callback</b> + + </dt> + <dd>The callback function to be run after the server +is listening, the only param is an error message if the operation failed</dd> + + </dl> + + + + + </li> + + </ul> + </div> + </div> + </section> + + + <!-- + #### EVENT DETAILS + --> + + <section> + <div class="details props"> + <div class="innerProps"> + <h2 class="sectionTitle"> + Event Detail + </h2> + + + <div class="fixedFont heading" id="event:_onError"> + <span class='lighter'> + <private> + </span> + + + + <b>_onError</b>(err) + </div> + + <div class="description"> + <p>Listens for errors</p> + + + + + </div> + + + + + <dl class="detailList params"> + <dt class="heading">Parameters:</dt> + + <dt> + <span class="light fixedFont">{Object}</span> <b>err</b> + + </dt> + <dd>Error object</dd> + + </dl> + + + + + + + </div> + </div> + </section> + + </article> + </div> +</div> + + <script type="text/javascript"> + wbos.CssTools.MediaQueryFallBack.LoadCss('../css/screen.css', '../css/handheld.css', 660) + codeview.classFilter.Init() + </script> + </body> +</html> + diff --git a/tools/node_modules/nodemailer/node_modules/simplesmtp/node_modules/rai/jsdoc/symbols/RAISocket.html b/tools/node_modules/nodemailer/node_modules/simplesmtp/node_modules/rai/jsdoc/symbols/RAISocket.html new file mode 100644 index 0000000..15cad38 --- /dev/null +++ b/tools/node_modules/nodemailer/node_modules/simplesmtp/node_modules/rai/jsdoc/symbols/RAISocket.html @@ -0,0 +1,826 @@ + +<!DOCTYPE html> +<html lang="en"> + <head> + <meta charset="UTF-8" /> + <meta name="generator" content="JsDoc Toolkit" /> + <title>RAISocket | JsDoc Reference</title> + + <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0" /> + <meta name="mobileoptimized" content="0" /> + + <link rel="stylesheet" href="../css/all.css" media="all" /> + <link rel="stylesheet" href="../css/handheld.css" media="only screen and (max-width: 660px)" /> + <link rel="stylesheet" href="../css/handheld.css" media="handheld" /> + <link rel="stylesheet" href="../css/screen.css" media="screen and (min-width: 661px)" /> + + <script src="../javascript/all.js"></script> + <!--[if lt IE 9]> + <script src="../javascript/html5.js"></script> + <![endif]--> + </head> + + <body> + +<div class="index"> + <div class="menu"> + <div class="indexLinks"> + <a href="../index.html">Classes</a> + <a href="../files.html">Files</a> + </div> + + <h2 class="heading1">Classes</h2> + + <input type="text" name="classFilter" class="classFilter" id="ClassFilter" placeholder="Filter"></input> + + <nav> + <ul class="classList" id="ClassList"> + + <li><a href="../symbols/_global_.html">_global_</a></li> + + <li><a href="../symbols/mockup.html">mockup</a></li> + + <li><a href="../symbols/RAIServer.html">RAIServer</a></li> + + <li><a href="../symbols/RAISocket.html">RAISocket</a></li> + + <li><a href="../symbols/starttls.html">starttls</a></li> + + </ul> + </nav> + </div> + <div class="fineprint" style="clear:both"> + <footer> + + Documentation generator: <a href="http://code.google.com/p/jsdoc-toolkit/" target="_blank">JsDoc Toolkit</a> 2.4.0<br /> + Template: <a href="http://www.thebrightlines.com/2010/05/06/new-template-for-jsdoctoolkit-codeview/" target="_blank">Codeview</a> 1.2<br /> + Generated on: + <time datetime='2012-0-22' pubdate>2012-0-22 12:15</time> + </footer> + </div> +</div> + +<div class="index indexStatic"></div> + +<div class="content"> + <div class="innerContent"> + <article> + <header> + <h1 class="classTitle"> + + Class <span>RAISocket</span> + </h1> + + <div class="intro"> + <p class="description summary"> + + </p> + + + <ul class="summary"> + + + + <li>Defined in: <a href="../symbols/src/RAI_lib_rai.js.html">rai.js</a></li> + + + </ul> + + </div> + </header> + + + <section> + <div class="props"> + <table class="summaryTable" cellspacing="0" summary="A summary of the constructor documented in the class RAISocket."> + <caption class="sectionTitle">Class Summary</caption> + <thead> + <tr> + <th scope="col">Constructor Attributes</th> + <th scope="col">Constructor Name and Description</th> + </tr> + </thead> + <tbody> + <tr> + <td class="attributes"> </td> + <td class="nameDescription" > + <div class="fixedFont"> + <b><a href="../symbols/RAISocket.html#constructor">RAISocket</a></b>(socket, options) + </div> + <div class="description"><p>Creates a instance for interacting with a client (socket)</p> + +<p>Optional options object is the same that is passed to the parent +<a href="../symbols/RAIServer.html">RAIServer</a> object</p> + +<p><b>Events</b></p> + +<ul> + <li><b>'command'</b> - emitted if a client sends a command.</div> + </td> + </tr> + </tbody> + </table> + </div> + </section> + + + + <!-- + #### METHODS SUMMARY + --> + + <section> + + + <div class="props"> + <h2 class="sectionTitle">Method Summary</h2> + + + <nav> + <table class="summaryTable" id="MethodsList" cellspacing="0" summary="A summary of the methods documented in the class RAISocket."> + <thead> + <tr> + <th scope="col">Method Attributes</th> + <th scope="col">Method Name and Description</th> + </tr> + </thead> + + <tbody> + + + <tr + class='item0' + > + <td class="attributes"><private> </td> + <td class="nameDescription"> + <div class="fixedFont"><b><a href="../symbols/RAISocket.html#_destroy">_destroy</a></b>() + </div> + <div class="description"><p>Called when the connection is or is going to be ended</p></div> + </td> + </tr> + + <tr + class='item1' + > + <td class="attributes"><private> </td> + <td class="nameDescription"> + <div class="fixedFont"><b><a href="../symbols/RAISocket.html#_processData">_processData</a></b>(str) + </div> + <div class="description"><p>Processed incoming command lines and emits found data as +<code>'command'</code> with the command name as the first param and the rest +of the data as second (Buffer)</p></div> + </td> + </tr> + + <tr + class='item2' + > + <td class="attributes"> </td> + <td class="nameDescription"> + <div class="fixedFont"><b><a href="../symbols/RAISocket.html#end">end</a></b>() + </div> + <div class="description"><p>Closes the connection to the client</p></div> + </td> + </tr> + + <tr + class='item3' + > + <td class="attributes"> </td> + <td class="nameDescription"> + <div class="fixedFont"><b><a href="../symbols/RAISocket.html#send">send</a></b>(data) + </div> + <div class="description"><p>Sends some data to the client.</div> + </td> + </tr> + + <tr + class='item4' + > + <td class="attributes"> </td> + <td class="nameDescription"> + <div class="fixedFont"><b><a href="../symbols/RAISocket.html#startDataMode">startDataMode</a></b>(sequence) + </div> + <div class="description"><p>Instructs the server to be listening for mixed data instead of line based + commands</p></div> + </td> + </tr> + + <tr + class='item5' + > + <td class="attributes"> </td> + <td class="nameDescription"> + <div class="fixedFont"><b><a href="../symbols/RAISocket.html#startTLS">startTLS</a></b>(credentials, callback) + </div> + <div class="description"><p>Instructs the server to upgrade the connection to secure TLS connection</p> + +<p>Fires <code>callback</code> on successful connection upgrade if set, +otherwise emits <code>'tls'</code></p></div> + </td> + </tr> + + </tbody> + </table> + </nav> + + + + </div> + </section> + + + <!-- + #### EVENTS SUMMARY + --> + + + <section> + + <nav> + <div class="props"> + <table class="summaryTable" cellspacing="0" summary="A summary of the events documented in the class RAISocket."> + <caption class="sectionTitle">Event Summary</caption> + + <thead> + <tr> + <th scope="col">Event Attributes</th> + <th scope="col">Event Name and Description</th> + </tr> + </thead> + + <tbody> + + <tr> + <td class="attributes"><private> </td> + <td class="nameDescription"> + <div class="fixedFont"><b><a href="../symbols/RAISocket.html#event:_onClose">_onClose</a></b>(hadError) + </div> + <div class="description"><p>Called when the connection is closed</p></div> + </td> + </tr> + + <tr> + <td class="attributes"><private> </td> + <td class="nameDescription"> + <div class="fixedFont"><b><a href="../symbols/RAISocket.html#event:_onEnd">_onEnd</a></b>() + </div> + <div class="description"><p>Called when the connection is ended.</div> + </td> + </tr> + + <tr> + <td class="attributes"><private> </td> + <td class="nameDescription"> + <div class="fixedFont"><b><a href="../symbols/RAISocket.html#event:_onError">_onError</a></b>(err) + </div> + <div class="description"><p>Called when an error has appeared.</div> + </td> + </tr> + + <tr> + <td class="attributes"><private> </td> + <td class="nameDescription"> + <div class="fixedFont"><b><a href="../symbols/RAISocket.html#event:_onReceiveData">_onReceiveData</a></b>(chunk) + </div> + <div class="description"><p>Called when a chunk of data arrives from the client.</div> + </td> + </tr> + + <tr> + <td class="attributes"><private> </td> + <td class="nameDescription"> + <div class="fixedFont"><b><a href="../symbols/RAISocket.html#event:_onTimeout">_onTimeout</a></b>() + </div> + <div class="description"><p>Called when a timeout has occured.</div> + </td> + </tr> + + </tbody> + </table> + </div> + </nav> + + + + </section> + + <!-- + #### CONSTRUCTOR DETAILS + --> + + <section> + <div class="details props"> + <div class="innerProps"> + <h2 class="sectionTitle" id="constructor"> + Class Detail + </h2> + + <div class="fixedFont"> + <b>RAISocket</b>(socket, options) + </div> + + <div class="description"> + <p>Creates a instance for interacting with a client (socket)</p> + +<p>Optional options object is the same that is passed to the parent +<a href="../symbols/RAIServer.html">RAIServer</a> object</p> + +<p><b>Events</b></p> + +<ul> + <li><b>'command'</b> - emitted if a client sends a command. Gets two + params - command (String) and payload (Buffer)</li> + <li><b>'data'</b> - emitted when a chunk is received in data mode, the + param being the payload (Buffer)</li> + <li><b>'ready'</b> - emitted when data stream ends and normal command + flow is recovered</li> + <li><b>'tls'</b> - emitted when the connection is secured by TLS</li> + <li><b>'error'</b> - emitted when an error occurs. Connection to the + client is disconnected automatically. Param is an error object.</l> + <li><b>'timeout'</b> - emitted when a timeout occurs. Connection to the + client is disconnected automatically if disconnectOnTimeout option + is set to true.</l> + <li><b>'end'</b> - emitted when the client disconnects</l> +</ul> + + </div> + + + + + <dl class="detailList params"> + <dt class="heading">Parameters:</dt> + + <dt> + <span class="light fixedFont">{Object}</span> <b>socket</b> + + </dt> + <dd>Socket for the client</dd> + + <dt> + <span class="light fixedFont">{Object}</span> <b>options</b> + <i>Optional</i> + </dt> + <dd>Optional options object</dd> + + </dl> + + + + </div> + </div> + </section> + + <!-- + #### FIELD DETAILS + --> + + <!-- + #### METHOD DETAILS + --> + + <section> + <div class="details props"> + <div class="innerProps"> + <h2 class="sectionTitle"> + Method Detail + </h2> + + <ul class="methodDetail" id="MethodDetail"> + + + <li + class='item0' + > + <div class="fixedFont heading" id="_destroy"> + <span class='lighter'> + <private> + </span> + + + + <b>_destroy</b>() + </div> + + <div class="description"> + <p>Called when the connection is or is going to be ended</p> + + + + + </div> + + + + + + + <div class="hr"></div> + </li> + + <li + class='item1' + > + <div class="fixedFont heading" id="_processData"> + <span class='lighter'> + <private> + </span> + + + + <b>_processData</b>(str) + </div> + + <div class="description"> + <p>Processed incoming command lines and emits found data as +<code>'command'</code> with the command name as the first param and the rest +of the data as second (Buffer)</p> + + + + + </div> + + + + + <dl class="detailList params"> + <dt class="heading">Parameters:</dt> + + <dt> + <span class="light fixedFont">{String}</span> <b>str</b> + + </dt> + <dd>Binary string to be processed</dd> + + </dl> + + + + <div class="hr"></div> + </li> + + <li + class='item2' + > + <div class="fixedFont heading" id="end"> + <span class='lighter'> + + </span> + + + + <b>end</b>() + </div> + + <div class="description"> + <p>Closes the connection to the client</p> + + + + + </div> + + + + + + + <div class="hr"></div> + </li> + + <li + class='item3' + > + <div class="fixedFont heading" id="send"> + <span class='lighter'> + + </span> + + + + <b>send</b>(data) + </div> + + <div class="description"> + <p>Sends some data to the client. <code><CR><LF></code> is automatically appended to + the data</p> + + + + + </div> + + + + + <dl class="detailList params"> + <dt class="heading">Parameters:</dt> + + <dt> + <span class="light fixedFont">{String|Buffer}</span> <b>data</b> + + </dt> + <dd>Data to be sent to the client</dd> + + </dl> + + + + <div class="hr"></div> + </li> + + <li + class='item4' + > + <div class="fixedFont heading" id="startDataMode"> + <span class='lighter'> + + </span> + + + + <b>startDataMode</b>(sequence) + </div> + + <div class="description"> + <p>Instructs the server to be listening for mixed data instead of line based + commands</p> + + + + + </div> + + + + + <dl class="detailList params"> + <dt class="heading">Parameters:</dt> + + <dt> + <span class="light fixedFont">{String}</span> <b>sequence</b> + <i>Optional, Default: "."</i> + </dt> + <dd>- optional sequence on separate line for + matching the data end</dd> + + </dl> + + + + <div class="hr"></div> + </li> + + <li + class='item5' + > + <div class="fixedFont heading" id="startTLS"> + <span class='lighter'> + + </span> + + + + <b>startTLS</b>(credentials, callback) + </div> + + <div class="description"> + <p>Instructs the server to upgrade the connection to secure TLS connection</p> + +<p>Fires <code>callback</code> on successful connection upgrade if set, +otherwise emits <code>'tls'</code></p> + + + + + </div> + + + + + <dl class="detailList params"> + <dt class="heading">Parameters:</dt> + + <dt> + <span class="light fixedFont">{Object}</span> <b>credentials</b> + <i>Optional</i> + </dt> + <dd>An object with PEM encoded key and + certificate <code>{key:"---BEGIN...", cert:"---BEGIN..."}</code>, + if not set autogenerated values will be used.</dd> + + <dt> + <span class="light fixedFont">{Function}</span> <b>callback</b> + <i>Optional</i> + </dt> + <dd>If calback is set fire it after successful connection + upgrade, otherwise <code>'tls'</code> is emitted</dd> + + </dl> + + + + + </li> + + </ul> + </div> + </div> + </section> + + + <!-- + #### EVENT DETAILS + --> + + <section> + <div class="details props"> + <div class="innerProps"> + <h2 class="sectionTitle"> + Event Detail + </h2> + + + <div class="fixedFont heading" id="event:_onClose"> + <span class='lighter'> + <private> + </span> + + + + <b>_onClose</b>(hadError) + </div> + + <div class="description"> + <p>Called when the connection is closed</p> + + + + + </div> + + + + + <dl class="detailList params"> + <dt class="heading">Parameters:</dt> + + <dt> + <span class="light fixedFont">{Boolean}</span> <b>hadError</b> + + </dt> + <dd>did the connection end because of an error?</dd> + + </dl> + + + + + <div class="hr"></div> + + <div class="fixedFont heading" id="event:_onEnd"> + <span class='lighter'> + <private> + </span> + + + + <b>_onEnd</b>() + </div> + + <div class="description"> + <p>Called when the connection is ended. Emits <code>'end'</code></p> + + + + + </div> + + + + + + + + <div class="hr"></div> + + <div class="fixedFont heading" id="event:_onError"> + <span class='lighter'> + <private> + </span> + + + + <b>_onError</b>(err) + </div> + + <div class="description"> + <p>Called when an error has appeared. Emits <code>'error'</code> with +the error object as a parameter.</p> + + + + + </div> + + + + + <dl class="detailList params"> + <dt class="heading">Parameters:</dt> + + <dt> + <span class="light fixedFont">{Object}</span> <b>err</b> + + </dt> + <dd>Error object</dd> + + </dl> + + + + + <div class="hr"></div> + + <div class="fixedFont heading" id="event:_onReceiveData"> + <span class='lighter'> + <private> + </span> + + + + <b>_onReceiveData</b>(chunk) + </div> + + <div class="description"> + <p>Called when a chunk of data arrives from the client. If currently in data +mode, transmit the data otherwise send it to <code>_processData</code></p> + + + + + </div> + + + + + <dl class="detailList params"> + <dt class="heading">Parameters:</dt> + + <dt> + <span class="light fixedFont">{Buffer|String}</span> <b>chunk</b> + + </dt> + <dd>Data sent by the client</dd> + + </dl> + + + + + <div class="hr"></div> + + <div class="fixedFont heading" id="event:_onTimeout"> + <span class='lighter'> + <private> + </span> + + + + <b>_onTimeout</b>() + </div> + + <div class="description"> + <p>Called when a timeout has occured. Connection will be closed and +<code>'timeout'</code> is emitted.</p> + + + + + </div> + + + + + + + + + + </div> + </div> + </section> + + </article> + </div> +</div> + + <script type="text/javascript"> + wbos.CssTools.MediaQueryFallBack.LoadCss('../css/screen.css', '../css/handheld.css', 660) + codeview.classFilter.Init() + </script> + </body> +</html> + diff --git a/tools/node_modules/nodemailer/node_modules/simplesmtp/node_modules/rai/jsdoc/symbols/_global_.html b/tools/node_modules/nodemailer/node_modules/simplesmtp/node_modules/rai/jsdoc/symbols/_global_.html new file mode 100644 index 0000000..b215cf7 --- /dev/null +++ b/tools/node_modules/nodemailer/node_modules/simplesmtp/node_modules/rai/jsdoc/symbols/_global_.html @@ -0,0 +1,122 @@ + +<!DOCTYPE html> +<html lang="en"> + <head> + <meta charset="UTF-8" /> + <meta name="generator" content="JsDoc Toolkit" /> + <title>_global_ | JsDoc Reference</title> + + <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0" /> + <meta name="mobileoptimized" content="0" /> + + <link rel="stylesheet" href="../css/all.css" media="all" /> + <link rel="stylesheet" href="../css/handheld.css" media="only screen and (max-width: 660px)" /> + <link rel="stylesheet" href="../css/handheld.css" media="handheld" /> + <link rel="stylesheet" href="../css/screen.css" media="screen and (min-width: 661px)" /> + + <script src="../javascript/all.js"></script> + <!--[if lt IE 9]> + <script src="../javascript/html5.js"></script> + <![endif]--> + </head> + + <body> + +<div class="index"> + <div class="menu"> + <div class="indexLinks"> + <a href="../index.html">Classes</a> + <a href="../files.html">Files</a> + </div> + + <h2 class="heading1">Classes</h2> + + <input type="text" name="classFilter" class="classFilter" id="ClassFilter" placeholder="Filter"></input> + + <nav> + <ul class="classList" id="ClassList"> + + <li><a href="../symbols/_global_.html">_global_</a></li> + + <li><a href="../symbols/mockup.html">mockup</a></li> + + <li><a href="../symbols/RAIServer.html">RAIServer</a></li> + + <li><a href="../symbols/RAISocket.html">RAISocket</a></li> + + <li><a href="../symbols/starttls.html">starttls</a></li> + + </ul> + </nav> + </div> + <div class="fineprint" style="clear:both"> + <footer> + + Documentation generator: <a href="http://code.google.com/p/jsdoc-toolkit/" target="_blank">JsDoc Toolkit</a> 2.4.0<br /> + Template: <a href="http://www.thebrightlines.com/2010/05/06/new-template-for-jsdoctoolkit-codeview/" target="_blank">Codeview</a> 1.2<br /> + Generated on: + <time datetime='2012-0-22' pubdate>2012-0-22 12:15</time> + </footer> + </div> +</div> + +<div class="index indexStatic"></div> + +<div class="content"> + <div class="innerContent"> + <article> + <header> + <h1 class="classTitle"> + + Built-In Namespace <span>_global_</span> + </h1> + + <div class="intro"> + <p class="description summary"> + + </p> + + + </div> + </header> + + + + + <!-- + #### METHODS SUMMARY + --> + + + <!-- + #### EVENTS SUMMARY + --> + + <!-- + #### CONSTRUCTOR DETAILS + --> + + <!-- + #### FIELD DETAILS + --> + + <!-- + #### METHOD DETAILS + --> + + + <!-- + #### EVENT DETAILS + --> + + </article> + </div> +</div> + + <script type="text/javascript"> + wbos.CssTools.MediaQueryFallBack.LoadCss('../css/screen.css', '../css/handheld.css', 660) + codeview.classFilter.Init() + </script> + </body> +</html> + diff --git a/tools/node_modules/nodemailer/node_modules/simplesmtp/node_modules/rai/jsdoc/symbols/mockup.html b/tools/node_modules/nodemailer/node_modules/simplesmtp/node_modules/rai/jsdoc/symbols/mockup.html new file mode 100644 index 0000000..987f5be --- /dev/null +++ b/tools/node_modules/nodemailer/node_modules/simplesmtp/node_modules/rai/jsdoc/symbols/mockup.html @@ -0,0 +1,264 @@ + +<!DOCTYPE html> +<html lang="en"> + <head> + <meta charset="UTF-8" /> + <meta name="generator" content="JsDoc Toolkit" /> + <title>mockup | JsDoc Reference</title> + + <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0" /> + <meta name="mobileoptimized" content="0" /> + + <link rel="stylesheet" href="../css/all.css" media="all" /> + <link rel="stylesheet" href="../css/handheld.css" media="only screen and (max-width: 660px)" /> + <link rel="stylesheet" href="../css/handheld.css" media="handheld" /> + <link rel="stylesheet" href="../css/screen.css" media="screen and (min-width: 661px)" /> + + <script src="../javascript/all.js"></script> + <!--[if lt IE 9]> + <script src="../javascript/html5.js"></script> + <![endif]--> + </head> + + <body> + +<div class="index"> + <div class="menu"> + <div class="indexLinks"> + <a href="../index.html">Classes</a> + <a href="../files.html">Files</a> + </div> + + <h2 class="heading1">Classes</h2> + + <input type="text" name="classFilter" class="classFilter" id="ClassFilter" placeholder="Filter"></input> + + <nav> + <ul class="classList" id="ClassList"> + + <li><a href="../symbols/_global_.html">_global_</a></li> + + <li><a href="../symbols/mockup.html">mockup</a></li> + + <li><a href="../symbols/RAIServer.html">RAIServer</a></li> + + <li><a href="../symbols/RAISocket.html">RAISocket</a></li> + + <li><a href="../symbols/starttls.html">starttls</a></li> + + </ul> + </nav> + </div> + <div class="fineprint" style="clear:both"> + <footer> + + Documentation generator: <a href="http://code.google.com/p/jsdoc-toolkit/" target="_blank">JsDoc Toolkit</a> 2.4.0<br /> + Template: <a href="http://www.thebrightlines.com/2010/05/06/new-template-for-jsdoctoolkit-codeview/" target="_blank">Codeview</a> 1.2<br /> + Generated on: + <time datetime='2012-0-22' pubdate>2012-0-22 12:15</time> + </footer> + </div> +</div> + +<div class="index indexStatic"></div> + +<div class="content"> + <div class="innerContent"> + <article> + <header> + <h1 class="classTitle"> + + Namespace <span>mockup</span> + </h1> + + <div class="intro"> + <p class="description summary"> + Mockup module + </p> + + + <ul class="summary"> + + + + <li>Defined in: <a href="../symbols/src/RAI_lib_mockup.js.html">mockup.js</a></li> + + + </ul> + + </div> + </header> + + + + + <!-- + #### METHODS SUMMARY + --> + + <section> + + + <div class="props"> + <h2 class="sectionTitle">Method Summary</h2> + + + <nav> + <table class="summaryTable" id="MethodsList" cellspacing="0" summary="A summary of the methods documented in the class mockup."> + <thead> + <tr> + <th scope="col">Method Attributes</th> + <th scope="col">Method Name and Description</th> + </tr> + </thead> + + <tbody> + + + <tr + class='item0' + > + <td class="attributes"><static> </td> + <td class="nameDescription"> + <div class="fixedFont">mockup.<b><a href="../symbols/mockup.html#.runClientMockup">runClientMockup</a></b>(port, host, commands, callback, debug) + </div> + <div class="description"><p>Runs a batch of commands against a server</p> + +<pre> +var cmds = ["EHLO FOOBAR", "STARTTLS", "QUIT"]; +runClientMockup(25, "mail.hot.ee", cmds, function(resp){ + console.log("Final:", resp.toString("utf-8").trim()); +}); +</pre></div> + </td> + </tr> + + </tbody> + </table> + </nav> + + + + </div> + </section> + + + <!-- + #### EVENTS SUMMARY + --> + + <!-- + #### CONSTRUCTOR DETAILS + --> + + <!-- + #### FIELD DETAILS + --> + + <!-- + #### METHOD DETAILS + --> + + <section> + <div class="details props"> + <div class="innerProps"> + <h2 class="sectionTitle"> + Method Detail + </h2> + + <ul class="methodDetail" id="MethodDetail"> + + + <li + class='item0' + > + <div class="fixedFont heading" id=".runClientMockup"> + <span class='lighter'> + <static> + </span> + + + + <span class="light">mockup.</span><b>runClientMockup</b>(port, host, commands, callback, debug) + </div> + + <div class="description"> + <p>Runs a batch of commands against a server</p> + +<pre> +var cmds = ["EHLO FOOBAR", "STARTTLS", "QUIT"]; +runClientMockup(25, "mail.hot.ee", cmds, function(resp){ + console.log("Final:", resp.toString("utf-8").trim()); +}); +</pre> + + + + + </div> + + + + + <dl class="detailList params"> + <dt class="heading">Parameters:</dt> + + <dt> + <span class="light fixedFont">{Number}</span> <b>port</b> + + </dt> + <dd>Port number</dd> + + <dt> + <span class="light fixedFont">{String}</span> <b>host</b> + + </dt> + <dd>Hostname to connect to</dd> + + <dt> + <span class="light fixedFont">{Array}</span> <b>commands</b> + + </dt> + <dd>Command list to be sent to server</dd> + + <dt> + <span class="light fixedFont">{Function}</span> <b>callback</b> + + </dt> + <dd>Callback function to run on completion, + has the last response from the server as a param</dd> + + <dt> + <span class="light fixedFont">{Boolean}</span> <b>debug</b> + <i>Optional</i> + </dt> + <dd>if set to true log all input/output</dd> + + </dl> + + + + + </li> + + </ul> + </div> + </div> + </section> + + + <!-- + #### EVENT DETAILS + --> + + </article> + </div> +</div> + + <script type="text/javascript"> + wbos.CssTools.MediaQueryFallBack.LoadCss('../css/screen.css', '../css/handheld.css', 660) + codeview.classFilter.Init() + </script> + </body> +</html> + diff --git a/tools/node_modules/nodemailer/node_modules/simplesmtp/node_modules/rai/jsdoc/symbols/src/RAI_index.js.html b/tools/node_modules/nodemailer/node_modules/simplesmtp/node_modules/rai/jsdoc/symbols/src/RAI_index.js.html new file mode 100644 index 0000000..3cee0e3 --- /dev/null +++ b/tools/node_modules/nodemailer/node_modules/simplesmtp/node_modules/rai/jsdoc/symbols/src/RAI_index.js.html @@ -0,0 +1,394 @@ +<html><head><meta http-equiv="content-type" content="text/html; charset=UTF-8"> <style> + .KEYW {color: #933;} + .COMM {color: #bbb; font-style: italic;} + .NUMB {color: #393;} + .STRN {color: #393;} + .REGX {color: #339;} + .line {border-right: 1px dotted #666; color: #666; font-style: normal;} + </style></head><body><pre><span class='line'> 1</span> <span class="COMM">/** +<span class='line'> 2</span> * @fileOverview This is the main file for the RAI library to create text based servers +<span class='line'> 3</span> * @author <a href="mailto:andris@node.ee">Andris Reinman</a> +<span class='line'> 4</span> * @version 0.1.0 +<span class='line'> 5</span> */</span><span class="WHIT"> +<span class='line'> 6</span> +<span class='line'> 7</span> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">netlib</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">require</span><span class="PUNC">(</span><span class="STRN">"net"</span><span class="PUNC">)</span><span class="PUNC">,</span><span class="WHIT"> +<span class='line'> 8</span> </span><span class="WHIT"> </span><span class="NAME">utillib</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">require</span><span class="PUNC">(</span><span class="STRN">"util"</span><span class="PUNC">)</span><span class="PUNC">,</span><span class="WHIT"> +<span class='line'> 9</span> </span><span class="WHIT"> </span><span class="NAME">EventEmitter</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">require</span><span class="PUNC">(</span><span class="STRN">'events'</span><span class="PUNC">)</span><span class="PUNC">.</span><span class="NAME">EventEmitter</span><span class="PUNC">,</span><span class="WHIT"> +<span class='line'> 10</span> </span><span class="WHIT"> </span><span class="NAME">starttls</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">require</span><span class="PUNC">(</span><span class="STRN">"./starttls"</span><span class="PUNC">)</span><span class="PUNC">,</span><span class="WHIT"> +<span class='line'> 11</span> </span><span class="WHIT"> </span><span class="NAME">tlslib</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">require</span><span class="PUNC">(</span><span class="STRN">"tls"</span><span class="PUNC">)</span><span class="PUNC">,</span><span class="WHIT"> +<span class='line'> 12</span> </span><span class="WHIT"> </span><span class="NAME">crypto</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">require</span><span class="PUNC">(</span><span class="STRN">"crypto"</span><span class="PUNC">)</span><span class="PUNC">,</span><span class="WHIT"> +<span class='line'> 13</span> </span><span class="WHIT"> </span><span class="NAME">fs</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">require</span><span class="PUNC">(</span><span class="STRN">"fs"</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT"> +<span class='line'> 14</span> +<span class='line'> 15</span> </span><span class="COMM">// Default credentials for starting TLS server</span><span class="WHIT"> +<span class='line'> 16</span> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">defaultCredentials</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT"> +<span class='line'> 17</span> </span><span class="WHIT"> </span><span class="NAME">key</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="NAME">fs.readFileSync</span><span class="PUNC">(</span><span class="NAME">__dirname</span><span class="PUNC">+</span><span class="STRN">"/cert/key.pem"</span><span class="PUNC">)</span><span class="PUNC">,</span><span class="WHIT"> +<span class='line'> 18</span> </span><span class="WHIT"> </span><span class="NAME">cert</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="NAME">fs.readFileSync</span><span class="PUNC">(</span><span class="NAME">__dirname</span><span class="PUNC">+</span><span class="STRN">"/cert/cert.pem"</span><span class="PUNC">)</span><span class="WHIT"> +<span class='line'> 19</span> </span><span class="PUNC">}</span><span class="WHIT"> +<span class='line'> 20</span> +<span class='line'> 21</span> </span><span class="COMM">// Expose to the world</span><span class="WHIT"> +<span class='line'> 22</span> </span><span class="NAME">module.exports.RAIServer</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">RAIServer</span><span class="PUNC">;</span><span class="WHIT"> +<span class='line'> 23</span> +<span class='line'> 24</span> </span><span class="COMM">/** +<span class='line'> 25</span> * <p>Creates instance of RAIServer</p> +<span class='line'> 26</span> * +<span class='line'> 27</span> * <p>Options object has the following properties:</p> +<span class='line'> 28</span> * +<span class='line'> 29</span> * <ul> +<span class='line'> 30</span> * <li><b>debug</b> - if set to true print traffic to console</li> +<span class='line'> 31</span> * <li><b>timeout</b> - timeout in milliseconds for disconnecting the client, +<span class='line'> 32</span> * defaults to 0 (no timeout)</li> +<span class='line'> 33</span> * </ul> +<span class='line'> 34</span> * +<span class='line'> 35</span> * <p><b>Events</b></p> +<span class='line'> 36</span> * +<span class='line'> 37</span> * <ul> +<span class='line'> 38</span> * <li><b>'connect'</b> - emitted if a client connects to the server, param +<span class='line'> 39</span> * is a client ({@link RAISocket}) object</li> +<span class='line'> 40</span> * </ul> +<span class='line'> 41</span> * +<span class='line'> 42</span> * @constructor +<span class='line'> 43</span> * @param {Object} [options] Optional options object +<span class='line'> 44</span> */</span><span class="WHIT"> +<span class='line'> 45</span> </span><span class="KEYW">function</span><span class="WHIT"> </span><span class="NAME">RAIServer</span><span class="PUNC">(</span><span class="NAME">options</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="WHIT"> +<span class='line'> 46</span> </span><span class="WHIT"> </span><span class="NAME">EventEmitter.call</span><span class="PUNC">(</span><span class="KEYW">this</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT"> +<span class='line'> 47</span> </span><span class="WHIT"> +<span class='line'> 48</span> </span><span class="NAME">this.options</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">options</span><span class="TOKN"> </span><span class="PUNC">||</span><span class="TOKN"> </span><span class="PUNC">{</span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT"> +<span class='line'> 49</span> </span><span class="WHIT"> +<span class='line'> 50</span> </span><span class="NAME">this._createServer</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT"> +<span class='line'> 51</span> </span><span class="PUNC">}</span><span class="WHIT"> +<span class='line'> 52</span> </span><span class="NAME">utillib.inherits</span><span class="PUNC">(</span><span class="NAME">RAIServer</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">EventEmitter</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT"> +<span class='line'> 53</span> +<span class='line'> 54</span> </span><span class="COMM">/** +<span class='line'> 55</span> * <p>Starts listening on selected port</p> +<span class='line'> 56</span> * +<span class='line'> 57</span> * @param {Number} port The port to listen +<span class='line'> 58</span> * @param {String} [host] The IP address to listen +<span class='line'> 59</span> * @param {Function} callback The callback function to be run after the server +<span class='line'> 60</span> * is listening, the only param is an error message if the operation failed +<span class='line'> 61</span> */</span><span class="WHIT"> +<span class='line'> 62</span> </span><span class="NAME">RAIServer.prototype.listen</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">port</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">host</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">callback</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="WHIT"> +<span class='line'> 63</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="PUNC">!</span><span class="NAME">callback</span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT"> </span><span class="KEYW">typeof</span><span class="WHIT"> </span><span class="NAME">host</span><span class="PUNC">==</span><span class="STRN">"function"</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="WHIT"> +<span class='line'> 64</span> </span><span class="WHIT"> </span><span class="NAME">callback</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">host</span><span class="PUNC">;</span><span class="WHIT"> +<span class='line'> 65</span> </span><span class="WHIT"> </span><span class="NAME">host</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">undefined</span><span class="PUNC">;</span><span class="WHIT"> +<span class='line'> 66</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT"> +<span class='line'> 67</span> </span><span class="WHIT"> </span><span class="NAME">this._port</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">port</span><span class="PUNC">;</span><span class="WHIT"> +<span class='line'> 68</span> </span><span class="WHIT"> </span><span class="NAME">this._host</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">host</span><span class="PUNC">;</span><span class="WHIT"> +<span class='line'> 69</span> </span><span class="WHIT"> +<span class='line'> 70</span> </span><span class="NAME">this._server.listen</span><span class="PUNC">(</span><span class="NAME">port</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">host</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">err</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="WHIT"> +<span class='line'> 71</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="NAME">err</span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT"> </span><span class="PUNC">!</span><span class="NAME">callback</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="WHIT"> +<span class='line'> 72</span> </span><span class="WHIT"> </span><span class="NAME">this.emit</span><span class="PUNC">(</span><span class="STRN">"error"</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">err</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT"> +<span class='line'> 73</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="KEYW">else</span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="NAME">callback</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="WHIT"> +<span class='line'> 74</span> </span><span class="WHIT"> </span><span class="NAME">callback</span><span class="PUNC">(</span><span class="NAME">err</span><span class="WHIT"> </span><span class="PUNC">||</span><span class="WHIT"> </span><span class="KEYW">null</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT"> +<span class='line'> 75</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT"> +<span class='line'> 76</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT"> +<span class='line'> 77</span> </span><span class="PUNC">}</span><span class="WHIT"> +<span class='line'> 78</span> +<span class='line'> 79</span> </span><span class="COMM">/** +<span class='line'> 80</span> * <p>Creates a server with listener callback</p> +<span class='line'> 81</span> */</span><span class="WHIT"> +<span class='line'> 82</span> </span><span class="NAME">RAIServer.prototype._createServer</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="WHIT"> +<span class='line'> 83</span> </span><span class="WHIT"> </span><span class="NAME">this._server</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">netlib.createServer</span><span class="PUNC">(</span><span class="NAME">this._serverListener.bind</span><span class="PUNC">(</span><span class="KEYW">this</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT"> +<span class='line'> 84</span> </span><span class="PUNC">}</span><span class="WHIT"> +<span class='line'> 85</span> +<span class='line'> 86</span> </span><span class="COMM">/** +<span class='line'> 87</span> * <p>Server listener that is run on client connection</p> +<span class='line'> 88</span> * +<span class='line'> 89</span> * <p>{@link RAISocket} object instance is created based on the client socket +<span class='line'> 90</span> * and a <code>'connection'</code> event is emitted</p> +<span class='line'> 91</span> * +<span class='line'> 92</span> * @param {Object} socket The socket to the client +<span class='line'> 93</span> */</span><span class="WHIT"> +<span class='line'> 94</span> </span><span class="NAME">RAIServer.prototype._serverListener</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">socket</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="WHIT"> +<span class='line'> 95</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="NAME">this.options.debug</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="WHIT"> +<span class='line'> 96</span> </span><span class="WHIT"> </span><span class="NAME">console.log</span><span class="PUNC">(</span><span class="STRN">"CONNECTION FROM "</span><span class="PUNC">+</span><span class="NAME">socket.remoteAddress</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT"> +<span class='line'> 97</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT"> +<span class='line'> 98</span> </span><span class="WHIT"> +<span class='line'> 99</span> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">handler</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">new</span><span class="WHIT"> </span><span class="NAME">RAISocket</span><span class="PUNC">(</span><span class="NAME">socket</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">this.options</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT"> +<span class='line'>100</span> </span><span class="WHIT"> +<span class='line'>101</span> </span><span class="NAME">socket.on</span><span class="PUNC">(</span><span class="STRN">"data"</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">handler._onReceiveData.bind</span><span class="PUNC">(</span><span class="NAME">handler</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT"> +<span class='line'>102</span> </span><span class="WHIT"> </span><span class="NAME">socket.on</span><span class="PUNC">(</span><span class="STRN">"end"</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">handler._onEnd.bind</span><span class="PUNC">(</span><span class="NAME">handler</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT"> +<span class='line'>103</span> </span><span class="WHIT"> </span><span class="NAME">socket.on</span><span class="PUNC">(</span><span class="STRN">"error"</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">handler._onError.bind</span><span class="PUNC">(</span><span class="NAME">handler</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT"> +<span class='line'>104</span> </span><span class="WHIT"> </span><span class="NAME">socket.on</span><span class="PUNC">(</span><span class="STRN">"timeout"</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">handler._onTimeout.bind</span><span class="PUNC">(</span><span class="NAME">handler</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT"> +<span class='line'>105</span> </span><span class="WHIT"> </span><span class="NAME">socket.on</span><span class="PUNC">(</span><span class="STRN">"close"</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">handler._onClose.bind</span><span class="PUNC">(</span><span class="NAME">handler</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT"> +<span class='line'>106</span> +<span class='line'>107</span> </span><span class="WHIT"> </span><span class="NAME">this.emit</span><span class="PUNC">(</span><span class="STRN">"connection"</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">handler</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT"> +<span class='line'>108</span> </span><span class="PUNC">}</span><span class="WHIT"> +<span class='line'>109</span> +<span class='line'>110</span> </span><span class="COMM">/** +<span class='line'>111</span> * <p>Creates a instance for interacting with a client (socket)</p> +<span class='line'>112</span> * +<span class='line'>113</span> * <p>Optional options object is the same that is passed to the parent +<span class='line'>114</span> * {@link RAIServer} object</p> +<span class='line'>115</span> * +<span class='line'>116</span> * <p><b>Events</b></p> +<span class='line'>117</span> * +<span class='line'>118</span> * <ul> +<span class='line'>119</span> * <li><b>'command'</b> - emitted if a client sends a command. Gets two +<span class='line'>120</span> * params - command (String) and payload (Buffer)</li> +<span class='line'>121</span> * <li><b>'data'</b> - emitted when a chunk is received in data mode, the +<span class='line'>122</span> * param being the payload (Buffer)</li> +<span class='line'>123</span> * <li><b>'ready'</b> - emitted when data stream ends and normal command +<span class='line'>124</span> * flow is recovered</li> +<span class='line'>125</span> * <li><b>'tls'</b> - emitted when the connection is secured by TLS</li> +<span class='line'>126</span> * <li><b>'error'</b> - emitted when an error occurs. Connection to the +<span class='line'>127</span> * client is disconnected automatically. Param is an error object.</l> +<span class='line'>128</span> * <li><b>'timeout'</b> - emitted when a timeout occurs. Connection to the +<span class='line'>129</span> * client is disconnected automatically.</l> +<span class='line'>130</span> * <li><b>'end'</b> - emitted when the client disconnects</l> +<span class='line'>131</span> * </ul> +<span class='line'>132</span> * +<span class='line'>133</span> * @constructor +<span class='line'>134</span> * @param {Object} socket Socket for the client +<span class='line'>135</span> * @param {Object} [options] Optional options object +<span class='line'>136</span> */</span><span class="WHIT"> +<span class='line'>137</span> </span><span class="KEYW">function</span><span class="WHIT"> </span><span class="NAME">RAISocket</span><span class="PUNC">(</span><span class="NAME">socket</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">options</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="WHIT"> +<span class='line'>138</span> </span><span class="WHIT"> </span><span class="NAME">EventEmitter.call</span><span class="PUNC">(</span><span class="KEYW">this</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT"> +<span class='line'>139</span> </span><span class="WHIT"> +<span class='line'>140</span> </span><span class="NAME">this.socket</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">socket</span><span class="PUNC">;</span><span class="WHIT"> +<span class='line'>141</span> </span><span class="WHIT"> </span><span class="NAME">this.options</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">options</span><span class="WHIT"> </span><span class="PUNC">||</span><span class="TOKN"> </span><span class="PUNC">{</span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT"> +<span class='line'>142</span> </span><span class="WHIT"> +<span class='line'>143</span> </span><span class="NAME">this.remoteAddress</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">socket.remoteAddress</span><span class="PUNC">;</span><span class="WHIT"> +<span class='line'>144</span> </span><span class="WHIT"> +<span class='line'>145</span> </span><span class="NAME">this._dataMode</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">false</span><span class="PUNC">;</span><span class="WHIT"> +<span class='line'>146</span> </span><span class="WHIT"> </span><span class="NAME">this._endDataModeSequence</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="REGX">/\r\n\.\r\n|^\.\r\n/</span><span class="PUNC">;</span><span class="WHIT"> +<span class='line'>147</span> </span><span class="WHIT"> +<span class='line'>148</span> </span><span class="NAME">this._secureConnection</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">false</span><span class="PUNC">;</span><span class="WHIT"> +<span class='line'>149</span> </span><span class="WHIT"> </span><span class="NAME">this._destroyed</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">false</span><span class="PUNC">;</span><span class="WHIT"> +<span class='line'>150</span> </span><span class="WHIT"> </span><span class="NAME">this._remainder</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="STRN">""</span><span class="PUNC">;</span><span class="WHIT"> +<span class='line'>151</span> </span><span class="WHIT"> +<span class='line'>152</span> </span><span class="NAME">this._ignore_data</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">false</span><span class="PUNC">;</span><span class="WHIT"> +<span class='line'>153</span> </span><span class="WHIT"> +<span class='line'>154</span> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="NAME">this.options.timeout</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="WHIT"> +<span class='line'>155</span> </span><span class="WHIT"> </span><span class="NAME">socket.setTimeout</span><span class="PUNC">(</span><span class="NAME">this.options.timeout</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT"> +<span class='line'>156</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT"> +<span class='line'>157</span> </span><span class="PUNC">}</span><span class="WHIT"> +<span class='line'>158</span> </span><span class="NAME">utillib.inherits</span><span class="PUNC">(</span><span class="NAME">RAISocket</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">EventEmitter</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT"> +<span class='line'>159</span> +<span class='line'>160</span> </span><span class="COMM">/** +<span class='line'>161</span> * <p>Sends some data to the client. <CR><LF> is automatically appended to +<span class='line'>162</span> * the data</p> +<span class='line'>163</span> * +<span class='line'>164</span> * @param {String|Buffer} data Data to be sent to the client +<span class='line'>165</span> */</span><span class="WHIT"> +<span class='line'>166</span> </span><span class="NAME">RAISocket.prototype.send</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">data</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="WHIT"> +<span class='line'>167</span> </span><span class="WHIT"> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">buffer</span><span class="PUNC">;</span><span class="WHIT"> +<span class='line'>168</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="NAME">data</span><span class="WHIT"> </span><span class="KEYW">instanceof</span><span class="WHIT"> </span><span class="NAME">Buffer</span><span class="WHIT"> </span><span class="PUNC">||</span><span class="TOKN"> </span><span class="PUNC">(</span><span class="KEYW">typeof</span><span class="WHIT"> </span><span class="NAME">SlowBuffer</span><span class="WHIT"> </span><span class="PUNC">!=</span><span class="WHIT"> </span><span class="STRN">"undefined"</span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT"> </span><span class="NAME">data</span><span class="WHIT"> </span><span class="KEYW">instanceof</span><span class="WHIT"> </span><span class="NAME">SlowBuffer</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="WHIT"> +<span class='line'>169</span> </span><span class="WHIT"> </span><span class="NAME">buffer</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">new</span><span class="WHIT"> </span><span class="NAME">Buffer</span><span class="PUNC">(</span><span class="NAME">data.length</span><span class="PUNC">+</span><span class="NUMB">2</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT"> +<span class='line'>170</span> </span><span class="WHIT"> </span><span class="NAME">buffer</span><span class="PUNC">[</span><span class="NAME">buffer.length</span><span class="PUNC">-</span><span class="NUMB">2</span><span class="PUNC">]</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NUMB">0xD</span><span class="PUNC">;</span><span class="WHIT"> +<span class='line'>171</span> </span><span class="WHIT"> </span><span class="NAME">buffer</span><span class="PUNC">[</span><span class="NAME">buffer.length</span><span class="PUNC">-</span><span class="NUMB">1</span><span class="PUNC">]</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NUMB">0xA</span><span class="PUNC">;</span><span class="WHIT"> +<span class='line'>172</span> </span><span class="WHIT"> </span><span class="NAME">data.copy</span><span class="PUNC">(</span><span class="NAME">buffer</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT"> +<span class='line'>173</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="KEYW">else</span><span class="PUNC">{</span><span class="WHIT"> +<span class='line'>174</span> </span><span class="WHIT"> </span><span class="NAME">buffer</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">new</span><span class="WHIT"> </span><span class="NAME">Buffer</span><span class="PUNC">(</span><span class="PUNC">(</span><span class="NAME">data</span><span class="WHIT"> </span><span class="PUNC">||</span><span class="TOKN"> </span><span class="STRN">""</span><span class="PUNC">)</span><span class="PUNC">.</span><span class="NAME">toString</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">+</span><span class="STRN">"\r\n"</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="STRN">"binary"</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT"> +<span class='line'>175</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT"> +<span class='line'>176</span> </span><span class="WHIT"> +<span class='line'>177</span> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="NAME">this.options.debug</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="WHIT"> +<span class='line'>178</span> </span><span class="WHIT"> </span><span class="NAME">console.log</span><span class="PUNC">(</span><span class="STRN">"OUT: \""</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="NAME">buffer.toString</span><span class="PUNC">(</span><span class="STRN">"utf-8"</span><span class="PUNC">)</span><span class="PUNC">.</span><span class="NAME">trim</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">+</span><span class="STRN">"\""</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT"> +<span class='line'>179</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT"> +<span class='line'>180</span> </span><span class="WHIT"> +<span class='line'>181</span> </span><span class="NAME">this.socket.write</span><span class="PUNC">(</span><span class="NAME">buffer</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT"> +<span class='line'>182</span> </span><span class="PUNC">}</span><span class="WHIT"> +<span class='line'>183</span> +<span class='line'>184</span> </span><span class="COMM">/** +<span class='line'>185</span> * <p>Instructs the server to be listening for mixed data instead of line based +<span class='line'>186</span> * commands</p> +<span class='line'>187</span> * +<span class='line'>188</span> * @param {String|RegExp} [sequence="\r\n.\r\n"] - optional sequence for +<span class='line'>189</span> * matching the data end +<span class='line'>190</span> */</span><span class="WHIT"> +<span class='line'>191</span> </span><span class="NAME">RAISocket.prototype.startDataMode</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">sequence</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="WHIT"> +<span class='line'>192</span> </span><span class="WHIT"> </span><span class="NAME">this._dataMode</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">true</span><span class="PUNC">;</span><span class="WHIT"> +<span class='line'>193</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="NAME">sequence</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="WHIT"> +<span class='line'>194</span> </span><span class="WHIT"> </span><span class="NAME">this._endDataModeSequence</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">typeof</span><span class="WHIT"> </span><span class="NAME">sequence</span><span class="WHIT"> </span><span class="PUNC">==</span><span class="WHIT"> </span><span class="STRN">"string"</span><span class="WHIT"> </span><span class="PUNC">?</span><span class="WHIT"> </span><span class="KEYW">new</span><span class="WHIT"> </span><span class="NAME">RegExp</span><span class="PUNC">(</span><span class="NAME">sequence</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">:</span><span class="WHIT"> </span><span class="NAME">sequence</span><span class="PUNC">;</span><span class="WHIT"> +<span class='line'>195</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT"> +<span class='line'>196</span> </span><span class="PUNC">}</span><span class="WHIT"> +<span class='line'>197</span> +<span class='line'>198</span> </span><span class="COMM">/** +<span class='line'>199</span> * <p>Instructs the server to upgrade the connection to secure TLS connection</p> +<span class='line'>200</span> * +<span class='line'>201</span> * <p>Emits <code>'tls'</code> on successful upgrade</p> +<span class='line'>202</span> * +<span class='line'>203</span> * @param {Object} [credentials] - An object with PEM encoded key and +<span class='line'>204</span> * certificate <code>{key:"---BEGIN...", cert:"---BEGIN..."}</code>, +<span class='line'>205</span> * if not set autogenerated values will be used. +<span class='line'>206</span> */</span><span class="WHIT"> +<span class='line'>207</span> </span><span class="NAME">RAISocket.prototype.startTLS</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">credentials</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="WHIT"> +<span class='line'>208</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="NAME">this._secureConnection</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="WHIT"> +<span class='line'>209</span> </span><span class="WHIT"> </span><span class="NAME">this._onError</span><span class="PUNC">(</span><span class="KEYW">new</span><span class="WHIT"> </span><span class="NAME">Error</span><span class="PUNC">(</span><span class="STRN">"Secure connection already established"</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT"> +<span class='line'>210</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT"> +<span class='line'>211</span> </span><span class="WHIT"> +<span class='line'>212</span> </span><span class="NAME">credentials</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">credentials</span><span class="WHIT"> </span><span class="PUNC">||</span><span class="WHIT"> </span><span class="NAME">defaultCredentials</span><span class="PUNC">;</span><span class="WHIT"> +<span class='line'>213</span> </span><span class="WHIT"> +<span class='line'>214</span> </span><span class="NAME">this._ignore_data</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">true</span><span class="PUNC">;</span><span class="WHIT"> +<span class='line'>215</span> </span><span class="WHIT"> +<span class='line'>216</span> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">secure_connector</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">starttls</span><span class="PUNC">(</span><span class="NAME">this.socket</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">credentials</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">ssl_socket</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="WHIT"> +<span class='line'>217</span> +<span class='line'>218</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="NAME">this.options.debug</span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT"> </span><span class="PUNC">!</span><span class="NAME">ssl_socket.authorized</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="WHIT"> +<span class='line'>219</span> </span><span class="WHIT"> </span><span class="NAME">console.log</span><span class="PUNC">(</span><span class="STRN">"WARNING: TLS ERROR ("</span><span class="PUNC">+</span><span class="NAME">ssl_socket.authorizationError</span><span class="PUNC">+</span><span class="STRN">")"</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT"> +<span class='line'>220</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT"> +<span class='line'>221</span> </span><span class="WHIT"> +<span class='line'>222</span> </span><span class="NAME">this._remainder</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="STRN">""</span><span class="PUNC">;</span><span class="WHIT"> +<span class='line'>223</span> </span><span class="WHIT"> </span><span class="NAME">this._ignore_data</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">false</span><span class="PUNC">;</span><span class="WHIT"> +<span class='line'>224</span> </span><span class="WHIT"> +<span class='line'>225</span> </span><span class="NAME">this._secureConnection</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">true</span><span class="PUNC">;</span><span class="WHIT"> +<span class='line'>226</span> </span><span class="WHIT"> +<span class='line'>227</span> </span><span class="NAME">this.socket</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">ssl_socket</span><span class="PUNC">;</span><span class="WHIT"> +<span class='line'>228</span> </span><span class="WHIT"> </span><span class="NAME">this.socket.on</span><span class="PUNC">(</span><span class="STRN">"data"</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">this._onReceiveData.bind</span><span class="PUNC">(</span><span class="KEYW">this</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT"> +<span class='line'>229</span> </span><span class="WHIT"> +<span class='line'>230</span> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="NAME">this.options.debug</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="WHIT"> +<span class='line'>231</span> </span><span class="WHIT"> </span><span class="NAME">console.log</span><span class="PUNC">(</span><span class="STRN">"TLS CONNECTION STARTED"</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT"> +<span class='line'>232</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT"> +<span class='line'>233</span> </span><span class="WHIT"> +<span class='line'>234</span> </span><span class="NAME">this.emit</span><span class="PUNC">(</span><span class="STRN">"tls"</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT"> +<span class='line'>235</span> </span><span class="WHIT"> +<span class='line'>236</span> </span><span class="PUNC">}</span><span class="PUNC">)</span><span class="PUNC">.</span><span class="NAME">bind</span><span class="PUNC">(</span><span class="KEYW">this</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT"> +<span class='line'>237</span> </span><span class="WHIT"> +<span class='line'>238</span> </span><span class="NAME">secure_connector.on</span><span class="PUNC">(</span><span class="STRN">"error"</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">err</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="WHIT"> +<span class='line'>239</span> </span><span class="WHIT"> </span><span class="NAME">this._onError</span><span class="PUNC">(</span><span class="NAME">err</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT"> +<span class='line'>240</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="PUNC">)</span><span class="PUNC">.</span><span class="NAME">bind</span><span class="PUNC">(</span><span class="KEYW">this</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT"> +<span class='line'>241</span> </span><span class="PUNC">}</span><span class="WHIT"> +<span class='line'>242</span> +<span class='line'>243</span> </span><span class="COMM">/** +<span class='line'>244</span> * <p>Closes the connection to the client</p> +<span class='line'>245</span> */</span><span class="WHIT"> +<span class='line'>246</span> </span><span class="NAME">RAISocket.prototype.end</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="WHIT"> +<span class='line'>247</span> </span><span class="WHIT"> </span><span class="NAME">this.socket.end</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT"> +<span class='line'>248</span> </span><span class="PUNC">}</span><span class="WHIT"> +<span class='line'>249</span> +<span class='line'>250</span> </span><span class="COMM">/** +<span class='line'>251</span> * <p>Called when a chunk of data arrives from the client. If currently in data +<span class='line'>252</span> * mode, transmit the data otherwise send it to <code>_processData</code></p> +<span class='line'>253</span> * +<span class='line'>254</span> * @param {Buffer|String} chunk Data sent by the client +<span class='line'>255</span> */</span><span class="WHIT"> +<span class='line'>256</span> </span><span class="NAME">RAISocket.prototype._onReceiveData</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">chunk</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="WHIT"> +<span class='line'>257</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="NAME">this._ignore_data</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="WHIT"> </span><span class="COMM">// if currently setting up TLS connection</span><span class="WHIT"> +<span class='line'>258</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="PUNC">;</span><span class="WHIT"> +<span class='line'>259</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT"> +<span class='line'>260</span> </span><span class="WHIT"> +<span class='line'>261</span> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">str</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">typeof</span><span class="WHIT"> </span><span class="NAME">chunk</span><span class="PUNC">==</span><span class="STRN">"string"</span><span class="PUNC">?</span><span class="NAME">chunk</span><span class="PUNC">:</span><span class="NAME">chunk.toString</span><span class="PUNC">(</span><span class="STRN">"binary"</span><span class="PUNC">)</span><span class="PUNC">,</span><span class="WHIT"> +<span class='line'>262</span> </span><span class="WHIT"> </span><span class="NAME">dataEndMatch</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">dataRemainderMatch</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">data</span><span class="PUNC">;</span><span class="WHIT"> +<span class='line'>263</span> </span><span class="WHIT"> +<span class='line'>264</span> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="NAME">this._dataMode</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="WHIT"> +<span class='line'>265</span> </span><span class="WHIT"> +<span class='line'>266</span> </span><span class="NAME">str</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">this._remainder</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">str</span><span class="PUNC">;</span><span class="WHIT"> +<span class='line'>267</span> </span><span class="WHIT"> +<span class='line'>268</span> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="NAME">dataEndMatch</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">str.match</span><span class="PUNC">(</span><span class="REGX">/\r\n.*?$/</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="WHIT"> +<span class='line'>269</span> </span><span class="WHIT"> </span><span class="COMM">// if theres a line that is not ended, keep it for later</span><span class="WHIT"> +<span class='line'>270</span> </span><span class="WHIT"> </span><span class="NAME">this._remainder</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">str.substr</span><span class="PUNC">(</span><span class="NAME">dataEndMatch.index</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT"> +<span class='line'>271</span> </span><span class="WHIT"> </span><span class="NAME">str</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">str.substr</span><span class="PUNC">(</span><span class="NUMB">0</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">dataEndMatch.index</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT"> +<span class='line'>272</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="KEYW">else</span><span class="PUNC">{</span><span class="WHIT"> +<span class='line'>273</span> </span><span class="WHIT"> </span><span class="NAME">this._remainder</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="STRN">""</span><span class="PUNC">;</span><span class="WHIT"> +<span class='line'>274</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT"> +<span class='line'>275</span> </span><span class="WHIT"> +<span class='line'>276</span> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="PUNC">(</span><span class="NAME">dataRemainderMatch</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">str</span><span class="PUNC">+</span><span class="NAME">this._remainder</span><span class="PUNC">)</span><span class="PUNC">.</span><span class="NAME">match</span><span class="PUNC">(</span><span class="NAME">this._endDataModeSequence</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="WHIT"> +<span class='line'>277</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="NAME">dataRemainderMatch.index</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="WHIT"> +<span class='line'>278</span> </span><span class="WHIT"> </span><span class="NAME">data</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">new</span><span class="WHIT"> </span><span class="NAME">Buffer</span><span class="PUNC">(</span><span class="PUNC">(</span><span class="NAME">str</span><span class="PUNC">+</span><span class="NAME">this._remainder</span><span class="PUNC">)</span><span class="PUNC">.</span><span class="NAME">substr</span><span class="PUNC">(</span><span class="NUMB">0</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">dataRemainderMatch.index</span><span class="PUNC">)</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="STRN">"binary"</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT"> +<span class='line'>279</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="NAME">this.options.debug</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="WHIT"> +<span class='line'>280</span> </span><span class="WHIT"> </span><span class="NAME">console.log</span><span class="PUNC">(</span><span class="STRN">"DATA:"</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">data.toString</span><span class="PUNC">(</span><span class="STRN">"utf-8"</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT"> +<span class='line'>281</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT"> +<span class='line'>282</span> </span><span class="WHIT"> </span><span class="NAME">this.emit</span><span class="PUNC">(</span><span class="STRN">"data"</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">data</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT"> +<span class='line'>283</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT"> +<span class='line'>284</span> </span><span class="WHIT"> </span><span class="NAME">this._remainder</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="STRN">""</span><span class="PUNC">;</span><span class="WHIT"> +<span class='line'>285</span> </span><span class="WHIT"> </span><span class="NAME">this.emit</span><span class="PUNC">(</span><span class="STRN">"ready"</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT"> +<span class='line'>286</span> </span><span class="WHIT"> </span><span class="NAME">this._dataMode</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">false</span><span class="PUNC">;</span><span class="WHIT"> +<span class='line'>287</span> </span><span class="WHIT"> +<span class='line'>288</span> </span><span class="COMM">// send the remaining data for processing</span><span class="WHIT"> +<span class='line'>289</span> </span><span class="WHIT"> </span><span class="NAME">this._processData</span><span class="PUNC">(</span><span class="NAME">str.substr</span><span class="PUNC">(</span><span class="NAME">dataRemainderMatch.index</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">dataRemainderMatch</span><span class="PUNC">[</span><span class="NUMB">0</span><span class="PUNC">]</span><span class="PUNC">.</span><span class="NAME">length</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT"> +<span class='line'>290</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="KEYW">else</span><span class="PUNC">{</span><span class="WHIT"> +<span class='line'>291</span> </span><span class="WHIT"> </span><span class="NAME">data</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">new</span><span class="WHIT"> </span><span class="NAME">Buffer</span><span class="PUNC">(</span><span class="NAME">str</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="STRN">"binary"</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT"> +<span class='line'>292</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="NAME">this.options.debug</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="WHIT"> +<span class='line'>293</span> </span><span class="WHIT"> </span><span class="NAME">console.log</span><span class="PUNC">(</span><span class="STRN">"DATA:"</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">data.toString</span><span class="PUNC">(</span><span class="STRN">"utf-8"</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT"> +<span class='line'>294</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT"> +<span class='line'>295</span> </span><span class="WHIT"> </span><span class="NAME">this.emit</span><span class="PUNC">(</span><span class="STRN">"data"</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">data</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT"> +<span class='line'>296</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT"> +<span class='line'>297</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="KEYW">else</span><span class="PUNC">{</span><span class="WHIT"> +<span class='line'>298</span> </span><span class="WHIT"> </span><span class="NAME">this._processData</span><span class="PUNC">(</span><span class="NAME">str</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT"> +<span class='line'>299</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT"> +<span class='line'>300</span> </span><span class="WHIT"> +<span class='line'>301</span> </span><span class="PUNC">}</span><span class="WHIT"> +<span class='line'>302</span> +<span class='line'>303</span> </span><span class="COMM">/** +<span class='line'>304</span> * <p>Processed incoming command lines and emits found data as +<span class='line'>305</span> * <code>'command'</code> with the command name as the first param and the rest +<span class='line'>306</span> * of the data as second (Buffer)</p> +<span class='line'>307</span> * +<span class='line'>308</span> * @param {String} str Binary string to be processed +<span class='line'>309</span> */</span><span class="WHIT"> +<span class='line'>310</span> </span><span class="NAME">RAISocket.prototype._processData</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">str</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="WHIT"> +<span class='line'>311</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="PUNC">!</span><span class="NAME">str.length</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="WHIT"> +<span class='line'>312</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="PUNC">;</span><span class="WHIT"> +<span class='line'>313</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT"> +<span class='line'>314</span> </span><span class="WHIT"> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">lines</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">this._remainder</span><span class="PUNC">+</span><span class="NAME">str</span><span class="PUNC">)</span><span class="PUNC">.</span><span class="NAME">split</span><span class="PUNC">(</span><span class="STRN">"\r\n"</span><span class="PUNC">)</span><span class="PUNC">,</span><span class="WHIT"> +<span class='line'>315</span> </span><span class="WHIT"> </span><span class="NAME">match</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">command</span><span class="PUNC">;</span><span class="WHIT"> +<span class='line'>316</span> </span><span class="WHIT"> +<span class='line'>317</span> </span><span class="NAME">this._remainder</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">lines.pop</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT"> +<span class='line'>318</span> </span><span class="WHIT"> +<span class='line'>319</span> </span><span class="KEYW">for</span><span class="PUNC">(</span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">i</span><span class="PUNC">=</span><span class="NUMB">0</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">len</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">lines.length</span><span class="PUNC">;</span><span class="WHIT"> </span><span class="NAME">i</span><span class="PUNC"><</span><span class="NAME">len</span><span class="PUNC">;</span><span class="WHIT"> </span><span class="NAME">i</span><span class="PUNC">++</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="WHIT"> +<span class='line'>320</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="PUNC">!</span><span class="NAME">this._dataMode</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="WHIT"> +<span class='line'>321</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="NAME">match</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">lines</span><span class="PUNC">[</span><span class="NAME">i</span><span class="PUNC">]</span><span class="PUNC">.</span><span class="NAME">match</span><span class="PUNC">(</span><span class="REGX">/\s*[\S]+\s?/</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="WHIT"> +<span class='line'>322</span> </span><span class="WHIT"> </span><span class="NAME">command</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">match</span><span class="PUNC">[</span><span class="NUMB">0</span><span class="PUNC">]</span><span class="WHIT"> </span><span class="PUNC">||</span><span class="WHIT"> </span><span class="STRN">""</span><span class="PUNC">)</span><span class="PUNC">.</span><span class="NAME">trim</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT"> +<span class='line'>323</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="NAME">this.options.debug</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="WHIT"> +<span class='line'>324</span> </span><span class="WHIT"> </span><span class="NAME">console.log</span><span class="PUNC">(</span><span class="STRN">"COMMAND:"</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">lines</span><span class="PUNC">[</span><span class="NAME">i</span><span class="PUNC">]</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT"> +<span class='line'>325</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT"> +<span class='line'>326</span> </span><span class="WHIT"> </span><span class="NAME">this.emit</span><span class="PUNC">(</span><span class="STRN">"command"</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">command</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="KEYW">new</span><span class="WHIT"> </span><span class="NAME">Buffer</span><span class="PUNC">(</span><span class="NAME">lines</span><span class="PUNC">[</span><span class="NAME">i</span><span class="PUNC">]</span><span class="PUNC">.</span><span class="NAME">substr</span><span class="PUNC">(</span><span class="NAME">match.index</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">match</span><span class="PUNC">[</span><span class="NUMB">0</span><span class="PUNC">]</span><span class="PUNC">.</span><span class="NAME">length</span><span class="PUNC">)</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="STRN">"binary"</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT"> +<span class='line'>327</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT"> +<span class='line'>328</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="KEYW">else</span><span class="PUNC">{</span><span class="WHIT"> +<span class='line'>329</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="NAME">this._remainder</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="WHIT"> +<span class='line'>330</span> </span><span class="WHIT"> </span><span class="NAME">this._remainder</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="PUNC">=</span><span class="WHIT"> </span><span class="STRN">"\r\n"</span><span class="PUNC">;</span><span class="WHIT"> +<span class='line'>331</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT"> +<span class='line'>332</span> </span><span class="WHIT"> </span><span class="NAME">this._onReceiveData</span><span class="PUNC">(</span><span class="NAME">lines.slice</span><span class="PUNC">(</span><span class="NAME">i</span><span class="PUNC">)</span><span class="PUNC">.</span><span class="NAME">join</span><span class="PUNC">(</span><span class="STRN">"\r\n"</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT"> +<span class='line'>333</span> </span><span class="WHIT"> </span><span class="KEYW">break</span><span class="PUNC">;</span><span class="WHIT"> +<span class='line'>334</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT"> +<span class='line'>335</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT"> +<span class='line'>336</span> </span><span class="WHIT"> +<span class='line'>337</span> </span><span class="PUNC">}</span><span class="WHIT"> +<span class='line'>338</span> +<span class='line'>339</span> </span><span class="COMM">/** +<span class='line'>340</span> * <p>Called when the connection is or is going to be ended</p> +<span class='line'>341</span> */</span><span class="WHIT"> +<span class='line'>342</span> </span><span class="NAME">RAISocket.prototype._destroy</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="WHIT"> +<span class='line'>343</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="NAME">this._destroyed</span><span class="PUNC">)</span><span class="KEYW">return</span><span class="PUNC">;</span><span class="WHIT"> +<span class='line'>344</span> </span><span class="WHIT"> </span><span class="NAME">this._destroyed</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">true</span><span class="PUNC">;</span><span class="WHIT"> +<span class='line'>345</span> </span><span class="WHIT"> +<span class='line'>346</span> </span><span class="NAME">this.removeAllListeners</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT"> +<span class='line'>347</span> </span><span class="PUNC">}</span><span class="WHIT"> +<span class='line'>348</span> +<span class='line'>349</span> </span><span class="COMM">/** +<span class='line'>350</span> * <p>Called when the connection is ended. Emits <code>'end'</code></p> +<span class='line'>351</span> */</span><span class="WHIT"> +<span class='line'>352</span> </span><span class="NAME">RAISocket.prototype._onEnd</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="WHIT"> +<span class='line'>353</span> </span><span class="WHIT"> </span><span class="NAME">this.emit</span><span class="PUNC">(</span><span class="STRN">"end"</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT"> +<span class='line'>354</span> </span><span class="WHIT"> </span><span class="NAME">this._destroy</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT"> +<span class='line'>355</span> </span><span class="PUNC">}</span><span class="WHIT"> +<span class='line'>356</span> +<span class='line'>357</span> </span><span class="COMM">/** +<span class='line'>358</span> * <p>Called when an error has appeared. Emits <code>'error'</code> with +<span class='line'>359</span> * the error object as a parameter.</p> +<span class='line'>360</span> * +<span class='line'>361</span> * @param {Object} err Error object +<span class='line'>362</span> */</span><span class="WHIT"> +<span class='line'>363</span> </span><span class="NAME">RAISocket.prototype._onError</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">err</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="WHIT"> +<span class='line'>364</span> </span><span class="WHIT"> </span><span class="NAME">this.emit</span><span class="PUNC">(</span><span class="STRN">"error"</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">err</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT"> +<span class='line'>365</span> </span><span class="WHIT"> </span><span class="NAME">this._destroy</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT"> +<span class='line'>366</span> </span><span class="PUNC">}</span><span class="WHIT"> +<span class='line'>367</span> +<span class='line'>368</span> </span><span class="COMM">/** +<span class='line'>369</span> * <p>Called when a timeout has occured. Connection will be closed and +<span class='line'>370</span> * <code>'timeout'</code> is emitted.</p> +<span class='line'>371</span> */</span><span class="WHIT"> +<span class='line'>372</span> </span><span class="NAME">RAISocket.prototype._onTimeout</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="WHIT"> +<span class='line'>373</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="NAME">this.socket</span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT"> </span><span class="PUNC">!</span><span class="NAME">this.socket.destroyed</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="WHIT"> +<span class='line'>374</span> </span><span class="WHIT"> </span><span class="NAME">this.socket.end</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT"> +<span class='line'>375</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT"> +<span class='line'>376</span> </span><span class="WHIT"> </span><span class="NAME">this.emit</span><span class="PUNC">(</span><span class="STRN">"timeout"</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT"> +<span class='line'>377</span> </span><span class="WHIT"> </span><span class="NAME">this._destroy</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT"> +<span class='line'>378</span> </span><span class="PUNC">}</span><span class="WHIT"> +<span class='line'>379</span> +<span class='line'>380</span> </span><span class="COMM">/** +<span class='line'>381</span> * <p>Called when the connection is closed</p> +<span class='line'>382</span> * +<span class='line'>383</span> * @param {Boolean} hadError did the connection end because of an error? +<span class='line'>384</span> */</span><span class="WHIT"> +<span class='line'>385</span> </span><span class="NAME">RAISocket.prototype._onClose</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">hadError</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="WHIT"> +<span class='line'>386</span> </span><span class="WHIT"> </span><span class="NAME">this._destroy</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT"> +<span class='line'>387</span> </span><span class="PUNC">}</span></pre></body></html>
\ No newline at end of file diff --git a/tools/node_modules/nodemailer/node_modules/simplesmtp/node_modules/rai/jsdoc/symbols/src/RAI_lib_mockup.js.html b/tools/node_modules/nodemailer/node_modules/simplesmtp/node_modules/rai/jsdoc/symbols/src/RAI_lib_mockup.js.html new file mode 100644 index 0000000..2690ce4 --- /dev/null +++ b/tools/node_modules/nodemailer/node_modules/simplesmtp/node_modules/rai/jsdoc/symbols/src/RAI_lib_mockup.js.html @@ -0,0 +1,110 @@ +<html><head><meta http-equiv="content-type" content="text/html; charset=UTF-8"> <style> + .KEYW {color: #933;} + .COMM {color: #bbb; font-style: italic;} + .NUMB {color: #393;} + .STRN {color: #393;} + .REGX {color: #339;} + .line {border-right: 1px dotted #666; color: #666; font-style: normal;} + </style></head><body><pre><span class='line'> 1</span> <span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">net</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">require</span><span class="PUNC">(</span><span class="STRN">"net"</span><span class="PUNC">)</span><span class="PUNC">,</span><span class="WHIT"> +<span class='line'> 2</span> </span><span class="WHIT"> </span><span class="NAME">crypto</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">require</span><span class="PUNC">(</span><span class="STRN">"crypto"</span><span class="PUNC">)</span><span class="PUNC">,</span><span class="WHIT"> +<span class='line'> 3</span> </span><span class="WHIT"> </span><span class="NAME">tlslib</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">require</span><span class="PUNC">(</span><span class="STRN">"tls"</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT"> +<span class='line'> 4</span> +<span class='line'> 5</span> </span><span class="COMM">/** +<span class='line'> 6</span> * @namespace Mockup module +<span class='line'> 7</span> * @name mockup +<span class='line'> 8</span> */</span><span class="WHIT"> +<span class='line'> 9</span> </span><span class="NAME">module.exports</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">runClientMockup</span><span class="PUNC">;</span><span class="WHIT"> +<span class='line'> 10</span> +<span class='line'> 11</span> </span><span class="COMM">/** +<span class='line'> 12</span> * <p>Runs a batch of commands against a server</p> +<span class='line'> 13</span> * +<span class='line'> 14</span> * <pre> +<span class='line'> 15</span> * var cmds = ["EHLO FOOBAR", "STARTTLS", "QUIT"]; +<span class='line'> 16</span> * runClientMockup(25, "mail.hot.ee", cmds, function(resp){ +<span class='line'> 17</span> * console.log("Final:", resp.toString("utf-8").trim()); +<span class='line'> 18</span> * }); +<span class='line'> 19</span> * </pre> +<span class='line'> 20</span> * +<span class='line'> 21</span> * @memberOf mockup +<span class='line'> 22</span> * @param {Number} port Port number +<span class='line'> 23</span> * @param {String} host Hostname to connect to +<span class='line'> 24</span> * @param {Array} commands Command list to be sent to server +<span class='line'> 25</span> * @param {Function} callback Callback function to run on completion, +<span class='line'> 26</span> * has the last response from the server as a param +<span class='line'> 27</span> * @param {Boolean} [debug] if set to true log all input/output +<span class='line'> 28</span> */</span><span class="WHIT"> +<span class='line'> 29</span> </span><span class="KEYW">function</span><span class="WHIT"> </span><span class="NAME">runClientMockup</span><span class="PUNC">(</span><span class="NAME">port</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">host</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">commands</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">callback</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">debug</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="WHIT"> +<span class='line'> 30</span> </span><span class="WHIT"> </span><span class="NAME">host</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">host</span><span class="WHIT"> </span><span class="PUNC">||</span><span class="TOKN"> </span><span class="STRN">"localhost"</span><span class="PUNC">;</span><span class="WHIT"> +<span class='line'> 31</span> </span><span class="WHIT"> </span><span class="NAME">port</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">port</span><span class="WHIT"> </span><span class="PUNC">||</span><span class="TOKN"> </span><span class="NUMB">25</span><span class="PUNC">;</span><span class="WHIT"> +<span class='line'> 32</span> </span><span class="WHIT"> </span><span class="NAME">commands</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">Array.isArray</span><span class="PUNC">(</span><span class="NAME">commands</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">?</span><span class="WHIT"> </span><span class="NAME">commands</span><span class="WHIT"> </span><span class="PUNC">:</span><span class="WHIT"> </span><span class="PUNC">[</span><span class="PUNC">]</span><span class="PUNC">;</span><span class="WHIT"> +<span class='line'> 33</span> +<span class='line'> 34</span> </span><span class="WHIT"> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">command</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">ignore_data</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">false</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">sslcontext</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">pair</span><span class="PUNC">;</span><span class="WHIT"> +<span class='line'> 35</span> +<span class='line'> 36</span> </span><span class="WHIT"> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">socket</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">net.connect</span><span class="PUNC">(</span><span class="NAME">port</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">host</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="WHIT"> +<span class='line'> 37</span> </span><span class="WHIT"> </span><span class="NAME">socket.on</span><span class="PUNC">(</span><span class="STRN">"data"</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">chunk</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="WHIT"> +<span class='line'> 38</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="NAME">ignore_data</span><span class="PUNC">)</span><span class="KEYW">return</span><span class="PUNC">;</span><span class="WHIT"> +<span class='line'> 39</span> </span><span class="WHIT"> +<span class='line'> 40</span> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="NAME">debug</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="WHIT"> +<span class='line'> 41</span> </span><span class="WHIT"> </span><span class="NAME">console.log</span><span class="PUNC">(</span><span class="STRN">"S: "</span><span class="PUNC">+</span><span class="NAME">chunk.toString</span><span class="PUNC">(</span><span class="STRN">"utf-8"</span><span class="PUNC">)</span><span class="PUNC">.</span><span class="NAME">trim</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT"> +<span class='line'> 42</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT"> +<span class='line'> 43</span> </span><span class="WHIT"> +<span class='line'> 44</span> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="PUNC">!</span><span class="NAME">commands.length</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="WHIT"> +<span class='line'> 45</span> </span><span class="WHIT"> </span><span class="NAME">socket.end</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT"> +<span class='line'> 46</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="KEYW">typeof</span><span class="WHIT"> </span><span class="NAME">callback</span><span class="WHIT"> </span><span class="PUNC">==</span><span class="WHIT"> </span><span class="STRN">"function"</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="WHIT"> +<span class='line'> 47</span> </span><span class="WHIT"> </span><span class="NAME">callback</span><span class="PUNC">(</span><span class="NAME">chunk</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT"> +<span class='line'> 48</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT"> +<span class='line'> 49</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="PUNC">;</span><span class="WHIT"> +<span class='line'> 50</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT"> +<span class='line'> 51</span> </span><span class="WHIT"> +<span class='line'> 52</span> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="PUNC">[</span><span class="STRN">"STARTTLS"</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="STRN">"STLS"</span><span class="PUNC">]</span><span class="PUNC">.</span><span class="NAME">indexOf</span><span class="PUNC">(</span><span class="PUNC">(</span><span class="NAME">command</span><span class="WHIT"> </span><span class="PUNC">||</span><span class="WHIT"> </span><span class="STRN">""</span><span class="PUNC">)</span><span class="PUNC">.</span><span class="NAME">trim</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">.</span><span class="NAME">toUpperCase</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="PUNC">>=</span><span class="NUMB">0</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="WHIT"> +<span class='line'> 53</span> </span><span class="WHIT"> </span><span class="NAME">ignore_data</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">true</span><span class="PUNC">;</span><span class="WHIT"> +<span class='line'> 54</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="NAME">debug</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="WHIT"> +<span class='line'> 55</span> </span><span class="WHIT"> </span><span class="NAME">console.log</span><span class="PUNC">(</span><span class="STRN">"Initiated TLS connection"</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT"> +<span class='line'> 56</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT"> +<span class='line'> 57</span> </span><span class="WHIT"> </span><span class="NAME">sslcontext</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">crypto.createCredentials</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT"> +<span class='line'> 58</span> </span><span class="WHIT"> </span><span class="NAME">pair</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">tlslib.createSecurePair</span><span class="PUNC">(</span><span class="NAME">sslcontext</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="KEYW">false</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT"> +<span class='line'> 59</span> </span><span class="WHIT"> +<span class='line'> 60</span> </span><span class="NAME">pair.encrypted.pipe</span><span class="PUNC">(</span><span class="NAME">socket</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT"> +<span class='line'> 61</span> </span><span class="WHIT"> </span><span class="NAME">socket.pipe</span><span class="PUNC">(</span><span class="NAME">pair.encrypted</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT"> +<span class='line'> 62</span> </span><span class="WHIT"> </span><span class="NAME">pair.fd</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">socket.fd</span><span class="PUNC">;</span><span class="WHIT"> +<span class='line'> 63</span> </span><span class="WHIT"> +<span class='line'> 64</span> </span><span class="NAME">pair.on</span><span class="PUNC">(</span><span class="STRN">"secure"</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="WHIT"> +<span class='line'> 65</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="NAME">debug</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="WHIT"> +<span class='line'> 66</span> </span><span class="WHIT"> </span><span class="NAME">console.log</span><span class="PUNC">(</span><span class="STRN">"TLS connection secured"</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT"> +<span class='line'> 67</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT"> +<span class='line'> 68</span> </span><span class="WHIT"> </span><span class="NAME">command</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">commands.shift</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT"> +<span class='line'> 69</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="NAME">debug</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="WHIT"> +<span class='line'> 70</span> </span><span class="WHIT"> </span><span class="NAME">console.log</span><span class="PUNC">(</span><span class="STRN">"C: "</span><span class="PUNC">+</span><span class="NAME">command</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT"> +<span class='line'> 71</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT"> +<span class='line'> 72</span> </span><span class="WHIT"> </span><span class="NAME">pair.cleartext.write</span><span class="PUNC">(</span><span class="NAME">command</span><span class="PUNC">+</span><span class="STRN">"\r\n"</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT"> +<span class='line'> 73</span> +<span class='line'> 74</span> </span><span class="WHIT"> </span><span class="NAME">pair.cleartext.on</span><span class="PUNC">(</span><span class="STRN">"data"</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">chunk</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="WHIT"> +<span class='line'> 75</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="NAME">debug</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="WHIT"> +<span class='line'> 76</span> </span><span class="WHIT"> </span><span class="NAME">console.log</span><span class="PUNC">(</span><span class="STRN">"S: "</span><span class="PUNC">+</span><span class="NAME">chunk.toString</span><span class="PUNC">(</span><span class="STRN">"utf-8"</span><span class="PUNC">)</span><span class="PUNC">.</span><span class="NAME">trim</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT"> +<span class='line'> 77</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT"> +<span class='line'> 78</span> </span><span class="WHIT"> +<span class='line'> 79</span> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="PUNC">!</span><span class="NAME">commands.length</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="WHIT"> +<span class='line'> 80</span> </span><span class="WHIT"> </span><span class="NAME">pair.cleartext.end</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT"> +<span class='line'> 81</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="KEYW">typeof</span><span class="WHIT"> </span><span class="NAME">callback</span><span class="WHIT"> </span><span class="PUNC">==</span><span class="WHIT"> </span><span class="STRN">"function"</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="WHIT"> +<span class='line'> 82</span> </span><span class="WHIT"> </span><span class="NAME">callback</span><span class="PUNC">(</span><span class="NAME">chunk</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT"> +<span class='line'> 83</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT"> +<span class='line'> 84</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="PUNC">;</span><span class="WHIT"> +<span class='line'> 85</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT"> +<span class='line'> 86</span> </span><span class="WHIT"> </span><span class="NAME">command</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">commands.shift</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT"> +<span class='line'> 87</span> </span><span class="WHIT"> </span><span class="NAME">pair.cleartext.write</span><span class="PUNC">(</span><span class="NAME">command</span><span class="PUNC">+</span><span class="STRN">"\r\n"</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT"> +<span class='line'> 88</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="NAME">debug</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="WHIT"> +<span class='line'> 89</span> </span><span class="WHIT"> </span><span class="NAME">console.log</span><span class="PUNC">(</span><span class="STRN">"C: "</span><span class="PUNC">+</span><span class="NAME">command</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT"> +<span class='line'> 90</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT"> +<span class='line'> 91</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT"> +<span class='line'> 92</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT"> +<span class='line'> 93</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="KEYW">else</span><span class="PUNC">{</span><span class="WHIT"> +<span class='line'> 94</span> </span><span class="WHIT"> </span><span class="NAME">command</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">commands.shift</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT"> +<span class='line'> 95</span> </span><span class="WHIT"> </span><span class="NAME">socket.write</span><span class="PUNC">(</span><span class="NAME">command</span><span class="PUNC">+</span><span class="STRN">"\r\n"</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT"> +<span class='line'> 96</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="NAME">debug</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="WHIT"> +<span class='line'> 97</span> </span><span class="WHIT"> </span><span class="NAME">console.log</span><span class="PUNC">(</span><span class="STRN">"C: "</span><span class="PUNC">+</span><span class="NAME">command</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT"> +<span class='line'> 98</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT"> +<span class='line'> 99</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT"> +<span class='line'>100</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT"> +<span class='line'>101</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT"> +<span class='line'>102</span> </span><span class="WHIT"> +<span class='line'>103</span> </span><span class="PUNC">}</span></pre></body></html>
\ No newline at end of file diff --git a/tools/node_modules/nodemailer/node_modules/simplesmtp/node_modules/rai/jsdoc/symbols/src/RAI_lib_rai.js.html b/tools/node_modules/nodemailer/node_modules/simplesmtp/node_modules/rai/jsdoc/symbols/src/RAI_lib_rai.js.html new file mode 100644 index 0000000..4e12b24 --- /dev/null +++ b/tools/node_modules/nodemailer/node_modules/simplesmtp/node_modules/rai/jsdoc/symbols/src/RAI_lib_rai.js.html @@ -0,0 +1,484 @@ +<html><head><meta http-equiv="content-type" content="text/html; charset=UTF-8"> <style> + .KEYW {color: #933;} + .COMM {color: #bbb; font-style: italic;} + .NUMB {color: #393;} + .STRN {color: #393;} + .REGX {color: #339;} + .line {border-right: 1px dotted #666; color: #666; font-style: normal;} + </style></head><body><pre><span class='line'> 1</span> <span class="COMM">/** +<span class='line'> 2</span> * @fileOverview This is the main file for the RAI library to create text based servers +<span class='line'> 3</span> * @author <a href="mailto:andris@node.ee">Andris Reinman</a> +<span class='line'> 4</span> * @version 0.1.3 +<span class='line'> 5</span> */</span><span class="WHIT"> +<span class='line'> 6</span> +<span class='line'> 7</span> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">netlib</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">require</span><span class="PUNC">(</span><span class="STRN">"net"</span><span class="PUNC">)</span><span class="PUNC">,</span><span class="WHIT"> +<span class='line'> 8</span> </span><span class="WHIT"> </span><span class="NAME">utillib</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">require</span><span class="PUNC">(</span><span class="STRN">"util"</span><span class="PUNC">)</span><span class="PUNC">,</span><span class="WHIT"> +<span class='line'> 9</span> </span><span class="WHIT"> </span><span class="NAME">EventEmitter</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">require</span><span class="PUNC">(</span><span class="STRN">'events'</span><span class="PUNC">)</span><span class="PUNC">.</span><span class="NAME">EventEmitter</span><span class="PUNC">,</span><span class="WHIT"> +<span class='line'> 10</span> </span><span class="WHIT"> </span><span class="NAME">starttls</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">require</span><span class="PUNC">(</span><span class="STRN">"./starttls"</span><span class="PUNC">)</span><span class="PUNC">.</span><span class="NAME">starttls</span><span class="PUNC">,</span><span class="WHIT"> +<span class='line'> 11</span> </span><span class="WHIT"> </span><span class="NAME">tlslib</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">require</span><span class="PUNC">(</span><span class="STRN">"tls"</span><span class="PUNC">)</span><span class="PUNC">,</span><span class="WHIT"> +<span class='line'> 12</span> </span><span class="WHIT"> </span><span class="NAME">crypto</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">require</span><span class="PUNC">(</span><span class="STRN">"crypto"</span><span class="PUNC">)</span><span class="PUNC">,</span><span class="WHIT"> +<span class='line'> 13</span> </span><span class="WHIT"> </span><span class="NAME">fs</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">require</span><span class="PUNC">(</span><span class="STRN">"fs"</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT"> +<span class='line'> 14</span> +<span class='line'> 15</span> </span><span class="COMM">// Default credentials for starting TLS server</span><span class="WHIT"> +<span class='line'> 16</span> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">defaultCredentials</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT"> +<span class='line'> 17</span> </span><span class="WHIT"> </span><span class="NAME">key</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="NAME">fs.readFileSync</span><span class="PUNC">(</span><span class="NAME">__dirname</span><span class="PUNC">+</span><span class="STRN">"/../cert/key.pem"</span><span class="PUNC">)</span><span class="PUNC">,</span><span class="WHIT"> +<span class='line'> 18</span> </span><span class="WHIT"> </span><span class="NAME">cert</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="NAME">fs.readFileSync</span><span class="PUNC">(</span><span class="NAME">__dirname</span><span class="PUNC">+</span><span class="STRN">"/../cert/cert.pem"</span><span class="PUNC">)</span><span class="WHIT"> +<span class='line'> 19</span> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT"> +<span class='line'> 20</span> +<span class='line'> 21</span> </span><span class="COMM">// Expose to the world</span><span class="WHIT"> +<span class='line'> 22</span> </span><span class="NAME">module.exports.RAIServer</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">RAIServer</span><span class="PUNC">;</span><span class="WHIT"> +<span class='line'> 23</span> </span><span class="NAME">module.exports.runClientMockup</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">require</span><span class="PUNC">(</span><span class="STRN">"./mockup"</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT"> +<span class='line'> 24</span> +<span class='line'> 25</span> </span><span class="COMM">/** +<span class='line'> 26</span> * <p>Creates instance of RAIServer</p> +<span class='line'> 27</span> * +<span class='line'> 28</span> * <p>Options object has the following properties:</p> +<span class='line'> 29</span> * +<span class='line'> 30</span> * <ul> +<span class='line'> 31</span> * <li><b>debug</b> - if set to true print traffic to console</li> +<span class='line'> 32</span> * <li><b>disconnectOnTimeout</b> - if set to true close the connection on disconnect</li> +<span class='line'> 33</span> * <li><b>timeout</b> - timeout in milliseconds for disconnecting the client, +<span class='line'> 34</span> * defaults to 0 (no timeout)</li> +<span class='line'> 35</span> * </ul> +<span class='line'> 36</span> * +<span class='line'> 37</span> * <p><b>Events</b></p> +<span class='line'> 38</span> * +<span class='line'> 39</span> * <ul> +<span class='line'> 40</span> * <li><b>'connect'</b> - emitted if a client connects to the server, param +<span class='line'> 41</span> * is a client ({@link RAISocket}) object</li> +<span class='line'> 42</span> * <li><b>'error'</b> - emitted on error, has an error object as a param</li> +<span class='line'> 43</span> * </ul> +<span class='line'> 44</span> * +<span class='line'> 45</span> * @constructor +<span class='line'> 46</span> * @param {Object} [options] Optional options object +<span class='line'> 47</span> */</span><span class="WHIT"> +<span class='line'> 48</span> </span><span class="KEYW">function</span><span class="WHIT"> </span><span class="NAME">RAIServer</span><span class="PUNC">(</span><span class="NAME">options</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="WHIT"> +<span class='line'> 49</span> </span><span class="WHIT"> </span><span class="NAME">EventEmitter.call</span><span class="PUNC">(</span><span class="KEYW">this</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT"> +<span class='line'> 50</span> </span><span class="WHIT"> +<span class='line'> 51</span> </span><span class="NAME">this.options</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">options</span><span class="WHIT"> </span><span class="PUNC">||</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT"> +<span class='line'> 52</span> </span><span class="WHIT"> +<span class='line'> 53</span> </span><span class="NAME">this._createServer</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT"> +<span class='line'> 54</span> </span><span class="PUNC">}</span><span class="WHIT"> +<span class='line'> 55</span> </span><span class="NAME">utillib.inherits</span><span class="PUNC">(</span><span class="NAME">RAIServer</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">EventEmitter</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT"> +<span class='line'> 56</span> +<span class='line'> 57</span> </span><span class="COMM">/** +<span class='line'> 58</span> * <p>Starts listening on selected port</p> +<span class='line'> 59</span> * +<span class='line'> 60</span> * @param {Number} port The port to listen +<span class='line'> 61</span> * @param {String} [host] The IP address to listen +<span class='line'> 62</span> * @param {Function} callback The callback function to be run after the server +<span class='line'> 63</span> * is listening, the only param is an error message if the operation failed +<span class='line'> 64</span> */</span><span class="WHIT"> +<span class='line'> 65</span> </span><span class="NAME">RAIServer.prototype.listen</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">port</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">host</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">callback</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="WHIT"> +<span class='line'> 66</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="PUNC">!</span><span class="NAME">callback</span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT"> </span><span class="KEYW">typeof</span><span class="WHIT"> </span><span class="NAME">host</span><span class="PUNC">==</span><span class="STRN">"function"</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="WHIT"> +<span class='line'> 67</span> </span><span class="WHIT"> </span><span class="NAME">callback</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">host</span><span class="PUNC">;</span><span class="WHIT"> +<span class='line'> 68</span> </span><span class="WHIT"> </span><span class="NAME">host</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">undefined</span><span class="PUNC">;</span><span class="WHIT"> +<span class='line'> 69</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT"> +<span class='line'> 70</span> </span><span class="WHIT"> </span><span class="NAME">this._port</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">port</span><span class="PUNC">;</span><span class="WHIT"> +<span class='line'> 71</span> </span><span class="WHIT"> </span><span class="NAME">this._host</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">host</span><span class="PUNC">;</span><span class="WHIT"> +<span class='line'> 72</span> </span><span class="WHIT"> +<span class='line'> 73</span> </span><span class="NAME">this._connected</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">false</span><span class="PUNC">;</span><span class="WHIT"> +<span class='line'> 74</span> </span><span class="WHIT"> +<span class='line'> 75</span> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="NAME">callback</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="WHIT"> +<span class='line'> 76</span> </span><span class="WHIT"> +<span class='line'> 77</span> </span><span class="NAME">this._server.on</span><span class="PUNC">(</span><span class="STRN">"listening"</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="KEYW">function</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="WHIT"> +<span class='line'> 78</span> </span><span class="WHIT"> </span><span class="NAME">this._connected</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">true</span><span class="PUNC">;</span><span class="WHIT"> +<span class='line'> 79</span> </span><span class="WHIT"> </span><span class="NAME">callback</span><span class="PUNC">(</span><span class="KEYW">null</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT"> +<span class='line'> 80</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="PUNC">)</span><span class="PUNC">.</span><span class="NAME">bind</span><span class="PUNC">(</span><span class="KEYW">this</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT"> +<span class='line'> 81</span> </span><span class="WHIT"> +<span class='line'> 82</span> </span><span class="NAME">this._server.on</span><span class="PUNC">(</span><span class="STRN">"error"</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">err</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="WHIT"> +<span class='line'> 83</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="PUNC">!</span><span class="NAME">this._connected</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="WHIT"> +<span class='line'> 84</span> </span><span class="WHIT"> </span><span class="NAME">callback</span><span class="PUNC">(</span><span class="NAME">err</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT"> +<span class='line'> 85</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT"> +<span class='line'> 86</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="PUNC">)</span><span class="PUNC">.</span><span class="NAME">bind</span><span class="PUNC">(</span><span class="KEYW">this</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT"> +<span class='line'> 87</span> </span><span class="WHIT"> +<span class='line'> 88</span> </span><span class="PUNC">}</span><span class="WHIT"> +<span class='line'> 89</span> </span><span class="WHIT"> +<span class='line'> 90</span> </span><span class="NAME">this._server.listen</span><span class="PUNC">(</span><span class="NAME">this._port</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">this._host</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT"> +<span class='line'> 91</span> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT"> +<span class='line'> 92</span> +<span class='line'> 93</span> </span><span class="COMM">/** +<span class='line'> 94</span> * <p>Stops the server</p> +<span class='line'> 95</span> * +<span class='line'> 96</span> * @param {Function} callback Is run when the server is closed +<span class='line'> 97</span> */</span><span class="WHIT"> +<span class='line'> 98</span> </span><span class="NAME">RAIServer.prototype.end</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">callback</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="WHIT"> +<span class='line'> 99</span> </span><span class="WHIT"> </span><span class="NAME">this._server.on</span><span class="PUNC">(</span><span class="STRN">"close"</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">callback</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT"> +<span class='line'>100</span> </span><span class="WHIT"> </span><span class="NAME">this._server.close</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT"> +<span class='line'>101</span> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT"> +<span class='line'>102</span> +<span class='line'>103</span> </span><span class="COMM">/** +<span class='line'>104</span> * <p>Creates a server with listener callback</p> +<span class='line'>105</span> */</span><span class="WHIT"> +<span class='line'>106</span> </span><span class="NAME">RAIServer.prototype._createServer</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="WHIT"> +<span class='line'>107</span> </span><span class="WHIT"> </span><span class="NAME">this._server</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">netlib.createServer</span><span class="PUNC">(</span><span class="NAME">this._serverListener.bind</span><span class="PUNC">(</span><span class="KEYW">this</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT"> +<span class='line'>108</span> </span><span class="WHIT"> </span><span class="NAME">this._server.on</span><span class="PUNC">(</span><span class="STRN">"error"</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">this._onError.bind</span><span class="PUNC">(</span><span class="KEYW">this</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT"> +<span class='line'>109</span> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT"> +<span class='line'>110</span> +<span class='line'>111</span> </span><span class="COMM">/** +<span class='line'>112</span> * <p>Listens for errors</p> +<span class='line'>113</span> * +<span class='line'>114</span> * @event +<span class='line'>115</span> * @param {Object} err Error object +<span class='line'>116</span> */</span><span class="WHIT"> +<span class='line'>117</span> </span><span class="NAME">RAIServer.prototype._onError</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">err</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="WHIT"> +<span class='line'>118</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="NAME">this._connected</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="WHIT"> +<span class='line'>119</span> </span><span class="WHIT"> </span><span class="NAME">this.emit</span><span class="PUNC">(</span><span class="STRN">"error"</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">err</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT"> +<span class='line'>120</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT"> +<span class='line'>121</span> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT"> +<span class='line'>122</span> +<span class='line'>123</span> </span><span class="COMM">/** +<span class='line'>124</span> * <p>Server listener that is run on client connection</p> +<span class='line'>125</span> * +<span class='line'>126</span> * <p>{@link RAISocket} object instance is created based on the client socket +<span class='line'>127</span> * and a <code>'connection'</code> event is emitted</p> +<span class='line'>128</span> * +<span class='line'>129</span> * @param {Object} socket The socket to the client +<span class='line'>130</span> */</span><span class="WHIT"> +<span class='line'>131</span> </span><span class="NAME">RAIServer.prototype._serverListener</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">socket</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="WHIT"> +<span class='line'>132</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="NAME">this.options.debug</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="WHIT"> +<span class='line'>133</span> </span><span class="WHIT"> </span><span class="NAME">console.log</span><span class="PUNC">(</span><span class="STRN">"CONNECTION FROM "</span><span class="PUNC">+</span><span class="NAME">socket.remoteAddress</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT"> +<span class='line'>134</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT"> +<span class='line'>135</span> </span><span class="WHIT"> +<span class='line'>136</span> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">handler</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">new</span><span class="WHIT"> </span><span class="NAME">RAISocket</span><span class="PUNC">(</span><span class="NAME">socket</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">this.options</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT"> +<span class='line'>137</span> </span><span class="WHIT"> +<span class='line'>138</span> </span><span class="NAME">socket.on</span><span class="PUNC">(</span><span class="STRN">"data"</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">handler._onReceiveData.bind</span><span class="PUNC">(</span><span class="NAME">handler</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT"> +<span class='line'>139</span> </span><span class="WHIT"> </span><span class="NAME">socket.on</span><span class="PUNC">(</span><span class="STRN">"end"</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">handler._onEnd.bind</span><span class="PUNC">(</span><span class="NAME">handler</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT"> +<span class='line'>140</span> </span><span class="WHIT"> </span><span class="NAME">socket.on</span><span class="PUNC">(</span><span class="STRN">"error"</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">handler._onError.bind</span><span class="PUNC">(</span><span class="NAME">handler</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT"> +<span class='line'>141</span> </span><span class="WHIT"> </span><span class="NAME">socket.on</span><span class="PUNC">(</span><span class="STRN">"timeout"</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">handler._onTimeout.bind</span><span class="PUNC">(</span><span class="NAME">handler</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT"> +<span class='line'>142</span> </span><span class="WHIT"> </span><span class="NAME">socket.on</span><span class="PUNC">(</span><span class="STRN">"close"</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">handler._onClose.bind</span><span class="PUNC">(</span><span class="NAME">handler</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT"> +<span class='line'>143</span> +<span class='line'>144</span> </span><span class="WHIT"> </span><span class="NAME">this.emit</span><span class="PUNC">(</span><span class="STRN">"connection"</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">handler</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT"> +<span class='line'>145</span> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT"> +<span class='line'>146</span> +<span class='line'>147</span> </span><span class="COMM">/** +<span class='line'>148</span> * <p>Creates a instance for interacting with a client (socket)</p> +<span class='line'>149</span> * +<span class='line'>150</span> * <p>Optional options object is the same that is passed to the parent +<span class='line'>151</span> * {@link RAIServer} object</p> +<span class='line'>152</span> * +<span class='line'>153</span> * <p><b>Events</b></p> +<span class='line'>154</span> * +<span class='line'>155</span> * <ul> +<span class='line'>156</span> * <li><b>'command'</b> - emitted if a client sends a command. Gets two +<span class='line'>157</span> * params - command (String) and payload (Buffer)</li> +<span class='line'>158</span> * <li><b>'data'</b> - emitted when a chunk is received in data mode, the +<span class='line'>159</span> * param being the payload (Buffer)</li> +<span class='line'>160</span> * <li><b>'ready'</b> - emitted when data stream ends and normal command +<span class='line'>161</span> * flow is recovered</li> +<span class='line'>162</span> * <li><b>'tls'</b> - emitted when the connection is secured by TLS</li> +<span class='line'>163</span> * <li><b>'error'</b> - emitted when an error occurs. Connection to the +<span class='line'>164</span> * client is disconnected automatically. Param is an error object.</l> +<span class='line'>165</span> * <li><b>'timeout'</b> - emitted when a timeout occurs. Connection to the +<span class='line'>166</span> * client is disconnected automatically if disconnectOnTimeout option +<span class='line'>167</span> * is set to true.</l> +<span class='line'>168</span> * <li><b>'end'</b> - emitted when the client disconnects</l> +<span class='line'>169</span> * </ul> +<span class='line'>170</span> * +<span class='line'>171</span> * @constructor +<span class='line'>172</span> * @param {Object} socket Socket for the client +<span class='line'>173</span> * @param {Object} [options] Optional options object +<span class='line'>174</span> */</span><span class="WHIT"> +<span class='line'>175</span> </span><span class="KEYW">function</span><span class="WHIT"> </span><span class="NAME">RAISocket</span><span class="PUNC">(</span><span class="NAME">socket</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">options</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="WHIT"> +<span class='line'>176</span> </span><span class="WHIT"> </span><span class="NAME">EventEmitter.call</span><span class="PUNC">(</span><span class="KEYW">this</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT"> +<span class='line'>177</span> </span><span class="WHIT"> +<span class='line'>178</span> </span><span class="NAME">this.socket</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">socket</span><span class="PUNC">;</span><span class="WHIT"> +<span class='line'>179</span> </span><span class="WHIT"> </span><span class="NAME">this.options</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">options</span><span class="WHIT"> </span><span class="PUNC">||</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT"> +<span class='line'>180</span> </span><span class="WHIT"> +<span class='line'>181</span> </span><span class="NAME">this.remoteAddress</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">socket.remoteAddress</span><span class="PUNC">;</span><span class="WHIT"> +<span class='line'>182</span> </span><span class="WHIT"> +<span class='line'>183</span> </span><span class="NAME">this._dataMode</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">false</span><span class="PUNC">;</span><span class="WHIT"> +<span class='line'>184</span> </span><span class="WHIT"> </span><span class="NAME">this._endDataModeSequence</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="STRN">"\r\n.\r\n"</span><span class="PUNC">;</span><span class="WHIT"> +<span class='line'>185</span> </span><span class="WHIT"> </span><span class="NAME">this._endDataModeSequenceRegEx</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="REGX">/\r\n\.\r\n|^\.\r\n/</span><span class="PUNC">;</span><span class="WHIT"> +<span class='line'>186</span> </span><span class="WHIT"> +<span class='line'>187</span> </span><span class="NAME">this.secureConnection</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">false</span><span class="PUNC">;</span><span class="WHIT"> +<span class='line'>188</span> </span><span class="WHIT"> </span><span class="NAME">this._destroyed</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">false</span><span class="PUNC">;</span><span class="WHIT"> +<span class='line'>189</span> </span><span class="WHIT"> </span><span class="NAME">this._remainder</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="STRN">""</span><span class="PUNC">;</span><span class="WHIT"> +<span class='line'>190</span> </span><span class="WHIT"> +<span class='line'>191</span> </span><span class="NAME">this._ignore_data</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">false</span><span class="PUNC">;</span><span class="WHIT"> +<span class='line'>192</span> </span><span class="WHIT"> +<span class='line'>193</span> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="NAME">this.options.timeout</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="WHIT"> +<span class='line'>194</span> </span><span class="WHIT"> </span><span class="NAME">socket.setTimeout</span><span class="PUNC">(</span><span class="NAME">this.options.timeout</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT"> +<span class='line'>195</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT"> +<span class='line'>196</span> </span><span class="PUNC">}</span><span class="WHIT"> +<span class='line'>197</span> </span><span class="NAME">utillib.inherits</span><span class="PUNC">(</span><span class="NAME">RAISocket</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">EventEmitter</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT"> +<span class='line'>198</span> +<span class='line'>199</span> </span><span class="COMM">/** +<span class='line'>200</span> * <p>Sends some data to the client. <code><CR><LF></code> is automatically appended to +<span class='line'>201</span> * the data</p> +<span class='line'>202</span> * +<span class='line'>203</span> * @param {String|Buffer} data Data to be sent to the client +<span class='line'>204</span> */</span><span class="WHIT"> +<span class='line'>205</span> </span><span class="NAME">RAISocket.prototype.send</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">data</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="WHIT"> +<span class='line'>206</span> </span><span class="WHIT"> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">buffer</span><span class="PUNC">;</span><span class="WHIT"> +<span class='line'>207</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="NAME">data</span><span class="WHIT"> </span><span class="KEYW">instanceof</span><span class="WHIT"> </span><span class="NAME">Buffer</span><span class="WHIT"> </span><span class="PUNC">||</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="KEYW">typeof</span><span class="WHIT"> </span><span class="NAME">SlowBuffer</span><span class="WHIT"> </span><span class="PUNC">!=</span><span class="WHIT"> </span><span class="STRN">"undefined"</span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT"> </span><span class="NAME">data</span><span class="WHIT"> </span><span class="KEYW">instanceof</span><span class="WHIT"> </span><span class="NAME">SlowBuffer</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="WHIT"> +<span class='line'>208</span> </span><span class="WHIT"> </span><span class="NAME">buffer</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">new</span><span class="WHIT"> </span><span class="NAME">Buffer</span><span class="PUNC">(</span><span class="NAME">data.length</span><span class="PUNC">+</span><span class="NUMB">2</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT"> +<span class='line'>209</span> </span><span class="WHIT"> </span><span class="NAME">buffer</span><span class="PUNC">[</span><span class="NAME">buffer.length</span><span class="PUNC">-</span><span class="NUMB">2</span><span class="PUNC">]</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NUMB">0xD</span><span class="PUNC">;</span><span class="WHIT"> +<span class='line'>210</span> </span><span class="WHIT"> </span><span class="NAME">buffer</span><span class="PUNC">[</span><span class="NAME">buffer.length</span><span class="PUNC">-</span><span class="NUMB">1</span><span class="PUNC">]</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NUMB">0xA</span><span class="PUNC">;</span><span class="WHIT"> +<span class='line'>211</span> </span><span class="WHIT"> </span><span class="NAME">data.copy</span><span class="PUNC">(</span><span class="NAME">buffer</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT"> +<span class='line'>212</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="KEYW">else</span><span class="PUNC">{</span><span class="WHIT"> +<span class='line'>213</span> </span><span class="WHIT"> </span><span class="NAME">buffer</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">new</span><span class="WHIT"> </span><span class="NAME">Buffer</span><span class="PUNC">(</span><span class="PUNC">(</span><span class="NAME">data</span><span class="WHIT"> </span><span class="PUNC">||</span><span class="WHIT"> </span><span class="STRN">""</span><span class="PUNC">)</span><span class="PUNC">.</span><span class="NAME">toString</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">+</span><span class="STRN">"\r\n"</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="STRN">"binary"</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT"> +<span class='line'>214</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT"> +<span class='line'>215</span> </span><span class="WHIT"> +<span class='line'>216</span> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="NAME">this.options.debug</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="WHIT"> +<span class='line'>217</span> </span><span class="WHIT"> </span><span class="NAME">console.log</span><span class="PUNC">(</span><span class="STRN">"OUT: \""</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="NAME">buffer.toString</span><span class="PUNC">(</span><span class="STRN">"utf-8"</span><span class="PUNC">)</span><span class="PUNC">.</span><span class="NAME">trim</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">+</span><span class="STRN">"\""</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT"> +<span class='line'>218</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT"> +<span class='line'>219</span> </span><span class="WHIT"> +<span class='line'>220</span> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="NAME">this.socket</span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT"> </span><span class="NAME">this.socket.writable</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="WHIT"> +<span class='line'>221</span> </span><span class="WHIT"> </span><span class="NAME">this.socket.write</span><span class="PUNC">(</span><span class="NAME">buffer</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT"> +<span class='line'>222</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="KEYW">else</span><span class="PUNC">{</span><span class="WHIT"> +<span class='line'>223</span> </span><span class="WHIT"> </span><span class="NAME">this.socket.end</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT"> +<span class='line'>224</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT"> +<span class='line'>225</span> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT"> +<span class='line'>226</span> +<span class='line'>227</span> </span><span class="COMM">/** +<span class='line'>228</span> * <p>Instructs the server to be listening for mixed data instead of line based +<span class='line'>229</span> * commands</p> +<span class='line'>230</span> * +<span class='line'>231</span> * @param {String} [sequence="."] - optional sequence on separate line for +<span class='line'>232</span> * matching the data end +<span class='line'>233</span> */</span><span class="WHIT"> +<span class='line'>234</span> </span><span class="NAME">RAISocket.prototype.startDataMode</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">sequence</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="WHIT"> +<span class='line'>235</span> </span><span class="WHIT"> </span><span class="NAME">this._dataMode</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">true</span><span class="PUNC">;</span><span class="WHIT"> +<span class='line'>236</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="NAME">sequence</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="WHIT"> +<span class='line'>237</span> </span><span class="WHIT"> </span><span class="NAME">sequence</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">sequence.replace</span><span class="PUNC">(</span><span class="REGX">/\.\=\(\)\-\?\*\\\[\]\^\+\:\|\,/g</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="STRN">"\\$1"</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT"> +<span class='line'>238</span> </span><span class="WHIT"> </span><span class="NAME">this._endDataModeSequence</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="STRN">"\r\n"</span><span class="PUNC">+</span><span class="NAME">sequence</span><span class="PUNC">+</span><span class="STRN">"\r\n"</span><span class="PUNC">;</span><span class="WHIT"> +<span class='line'>239</span> </span><span class="WHIT"> </span><span class="NAME">this._endDataModeSequenceRegEx</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">new</span><span class="WHIT"> </span><span class="NAME">RegExp</span><span class="PUNC">(</span><span class="STRN">"/\r\n"</span><span class="PUNC">+</span><span class="NAME">sequence</span><span class="PUNC">+</span><span class="STRN">"\r\n|^"</span><span class="PUNC">+</span><span class="NAME">sequence</span><span class="PUNC">+</span><span class="STRN">"\r\n/"</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT"> +<span class='line'>240</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT"> +<span class='line'>241</span> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT"> +<span class='line'>242</span> +<span class='line'>243</span> </span><span class="COMM">/** +<span class='line'>244</span> * <p>Instructs the server to upgrade the connection to secure TLS connection</p> +<span class='line'>245</span> * +<span class='line'>246</span> * <p>Fires <code>callback</code> on successful connection upgrade if set, +<span class='line'>247</span> * otherwise emits <code>'tls'</code></p> +<span class='line'>248</span> * +<span class='line'>249</span> * @param {Object} [credentials] An object with PEM encoded key and +<span class='line'>250</span> * certificate <code>{key:"---BEGIN...", cert:"---BEGIN..."}</code>, +<span class='line'>251</span> * if not set autogenerated values will be used. +<span class='line'>252</span> * @param {Function} [callback] If calback is set fire it after successful connection +<span class='line'>253</span> * upgrade, otherwise <code>'tls'</code> is emitted +<span class='line'>254</span> */</span><span class="WHIT"> +<span class='line'>255</span> </span><span class="NAME">RAISocket.prototype.startTLS</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">credentials</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">callback</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="WHIT"> +<span class='line'>256</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="NAME">this.secureConnection</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="WHIT"> +<span class='line'>257</span> </span><span class="WHIT"> </span><span class="NAME">this._onError</span><span class="PUNC">(</span><span class="KEYW">new</span><span class="WHIT"> </span><span class="NAME">Error</span><span class="PUNC">(</span><span class="STRN">"Secure connection already established"</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT"> +<span class='line'>258</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT"> +<span class='line'>259</span> </span><span class="WHIT"> +<span class='line'>260</span> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="PUNC">!</span><span class="NAME">callback</span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT"> </span><span class="KEYW">typeof</span><span class="WHIT"> </span><span class="NAME">credentials</span><span class="WHIT"> </span><span class="PUNC">==</span><span class="WHIT"> </span><span class="STRN">"function"</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="WHIT"> +<span class='line'>261</span> </span><span class="WHIT"> </span><span class="NAME">callback</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">credentials</span><span class="PUNC">;</span><span class="WHIT"> +<span class='line'>262</span> </span><span class="WHIT"> </span><span class="NAME">credentials</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">undefined</span><span class="PUNC">;</span><span class="WHIT"> +<span class='line'>263</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT"> +<span class='line'>264</span> </span><span class="WHIT"> +<span class='line'>265</span> </span><span class="NAME">credentials</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">credentials</span><span class="WHIT"> </span><span class="PUNC">||</span><span class="WHIT"> </span><span class="NAME">defaultCredentials</span><span class="PUNC">;</span><span class="WHIT"> +<span class='line'>266</span> </span><span class="WHIT"> +<span class='line'>267</span> </span><span class="NAME">this._ignore_data</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">true</span><span class="PUNC">;</span><span class="WHIT"> +<span class='line'>268</span> </span><span class="WHIT"> +<span class='line'>269</span> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">secure_connector</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">starttls</span><span class="PUNC">(</span><span class="NAME">this.socket</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">credentials</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">ssl_socket</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="WHIT"> +<span class='line'>270</span> +<span class='line'>271</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="NAME">this.options.debug</span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT"> </span><span class="PUNC">!</span><span class="NAME">ssl_socket.authorized</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="WHIT"> +<span class='line'>272</span> </span><span class="WHIT"> </span><span class="NAME">console.log</span><span class="PUNC">(</span><span class="STRN">"WARNING: TLS ERROR ("</span><span class="PUNC">+</span><span class="NAME">ssl_socket.authorizationError</span><span class="PUNC">+</span><span class="STRN">")"</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT"> +<span class='line'>273</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT"> +<span class='line'>274</span> </span><span class="WHIT"> +<span class='line'>275</span> </span><span class="NAME">this._remainder</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="STRN">""</span><span class="PUNC">;</span><span class="WHIT"> +<span class='line'>276</span> </span><span class="WHIT"> </span><span class="NAME">this._ignore_data</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">false</span><span class="PUNC">;</span><span class="WHIT"> +<span class='line'>277</span> </span><span class="WHIT"> +<span class='line'>278</span> </span><span class="NAME">this.secureConnection</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">true</span><span class="PUNC">;</span><span class="WHIT"> +<span class='line'>279</span> </span><span class="WHIT"> +<span class='line'>280</span> </span><span class="NAME">this.socket</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">ssl_socket</span><span class="PUNC">;</span><span class="WHIT"> +<span class='line'>281</span> </span><span class="WHIT"> </span><span class="NAME">this.socket.on</span><span class="PUNC">(</span><span class="STRN">"data"</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">this._onReceiveData.bind</span><span class="PUNC">(</span><span class="KEYW">this</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT"> +<span class='line'>282</span> </span><span class="WHIT"> +<span class='line'>283</span> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="NAME">this.options.debug</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="WHIT"> +<span class='line'>284</span> </span><span class="WHIT"> </span><span class="NAME">console.log</span><span class="PUNC">(</span><span class="STRN">"TLS CONNECTION STARTED"</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT"> +<span class='line'>285</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT"> +<span class='line'>286</span> </span><span class="WHIT"> +<span class='line'>287</span> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="NAME">callback</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="WHIT"> +<span class='line'>288</span> </span><span class="WHIT"> </span><span class="NAME">callback</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT"> +<span class='line'>289</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="KEYW">else</span><span class="PUNC">{</span><span class="WHIT"> +<span class='line'>290</span> </span><span class="WHIT"> </span><span class="NAME">this.emit</span><span class="PUNC">(</span><span class="STRN">"tls"</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT"> +<span class='line'>291</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT"> +<span class='line'>292</span> </span><span class="WHIT"> +<span class='line'>293</span> </span><span class="PUNC">}</span><span class="PUNC">)</span><span class="PUNC">.</span><span class="NAME">bind</span><span class="PUNC">(</span><span class="KEYW">this</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT"> +<span class='line'>294</span> </span><span class="WHIT"> +<span class='line'>295</span> </span><span class="NAME">secure_connector.on</span><span class="PUNC">(</span><span class="STRN">"error"</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">err</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="WHIT"> +<span class='line'>296</span> </span><span class="WHIT"> </span><span class="NAME">this._onError</span><span class="PUNC">(</span><span class="NAME">err</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT"> +<span class='line'>297</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="PUNC">)</span><span class="PUNC">.</span><span class="NAME">bind</span><span class="PUNC">(</span><span class="KEYW">this</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT"> +<span class='line'>298</span> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT"> +<span class='line'>299</span> +<span class='line'>300</span> </span><span class="COMM">/** +<span class='line'>301</span> * <p>Closes the connection to the client</p> +<span class='line'>302</span> */</span><span class="WHIT"> +<span class='line'>303</span> </span><span class="NAME">RAISocket.prototype.end</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="WHIT"> +<span class='line'>304</span> </span><span class="WHIT"> </span><span class="NAME">this.socket.end</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT"> +<span class='line'>305</span> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT"> +<span class='line'>306</span> +<span class='line'>307</span> </span><span class="COMM">/** +<span class='line'>308</span> * <p>Called when a chunk of data arrives from the client. If currently in data +<span class='line'>309</span> * mode, transmit the data otherwise send it to <code>_processData</code></p> +<span class='line'>310</span> * +<span class='line'>311</span> * @event +<span class='line'>312</span> * @param {Buffer|String} chunk Data sent by the client +<span class='line'>313</span> */</span><span class="WHIT"> +<span class='line'>314</span> </span><span class="NAME">RAISocket.prototype._onReceiveData</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">chunk</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="WHIT"> +<span class='line'>315</span> +<span class='line'>316</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="NAME">this._ignore_data</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="WHIT"> </span><span class="COMM">// if currently setting up TLS connection</span><span class="WHIT"> +<span class='line'>317</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="PUNC">;</span><span class="WHIT"> +<span class='line'>318</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT"> +<span class='line'>319</span> </span><span class="WHIT"> +<span class='line'>320</span> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">str</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">typeof</span><span class="WHIT"> </span><span class="NAME">chunk</span><span class="PUNC">==</span><span class="STRN">"string"</span><span class="PUNC">?</span><span class="NAME">chunk</span><span class="PUNC">:</span><span class="NAME">chunk.toString</span><span class="PUNC">(</span><span class="STRN">"binary"</span><span class="PUNC">)</span><span class="PUNC">,</span><span class="WHIT"> +<span class='line'>321</span> </span><span class="WHIT"> </span><span class="NAME">dataEndMatch</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">dataRemainderMatch</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">data</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">match</span><span class="PUNC">;</span><span class="WHIT"> +<span class='line'>322</span> </span><span class="WHIT"> +<span class='line'>323</span> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="NAME">this._dataMode</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="WHIT"> +<span class='line'>324</span> </span><span class="WHIT"> +<span class='line'>325</span> </span><span class="NAME">str</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">this._remainder</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">str</span><span class="PUNC">;</span><span class="WHIT"> +<span class='line'>326</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="PUNC">(</span><span class="NAME">dataEndMatch</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">str.match</span><span class="PUNC">(</span><span class="REGX">/\r\n.*?$/</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="WHIT"> +<span class='line'>327</span> </span><span class="WHIT"> </span><span class="COMM">// if theres a line that is not ended, keep it for later</span><span class="WHIT"> +<span class='line'>328</span> </span><span class="WHIT"> </span><span class="NAME">this._remainder</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">str.substr</span><span class="PUNC">(</span><span class="NAME">dataEndMatch.index</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT"> +<span class='line'>329</span> </span><span class="WHIT"> </span><span class="NAME">str</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">str.substr</span><span class="PUNC">(</span><span class="NUMB">0</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">dataEndMatch.index</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT"> +<span class='line'>330</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="KEYW">else</span><span class="PUNC">{</span><span class="WHIT"> +<span class='line'>331</span> </span><span class="WHIT"> </span><span class="NAME">this._remainder</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="STRN">""</span><span class="PUNC">;</span><span class="WHIT"> +<span class='line'>332</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT"> +<span class='line'>333</span> +<span class='line'>334</span> </span><span class="WHIT"> </span><span class="COMM">// check if a data end sequence is found from the data</span><span class="WHIT"> +<span class='line'>335</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="PUNC">(</span><span class="NAME">dataRemainderMatch</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">str</span><span class="PUNC">+</span><span class="NAME">this._remainder</span><span class="PUNC">)</span><span class="PUNC">.</span><span class="NAME">match</span><span class="PUNC">(</span><span class="NAME">this._endDataModeSequenceRegEx</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="WHIT"> +<span class='line'>336</span> </span><span class="WHIT"> </span><span class="NAME">str</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">str</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">this._remainder</span><span class="PUNC">;</span><span class="WHIT"> +<span class='line'>337</span> </span><span class="WHIT"> </span><span class="COMM">// if the sequence is not on byte 0 emit remaining data</span><span class="WHIT"> +<span class='line'>338</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="NAME">dataRemainderMatch.index</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="WHIT"> +<span class='line'>339</span> </span><span class="WHIT"> </span><span class="NAME">data</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">new</span><span class="WHIT"> </span><span class="NAME">Buffer</span><span class="PUNC">(</span><span class="NAME">str.substr</span><span class="PUNC">(</span><span class="NUMB">0</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">dataRemainderMatch.index</span><span class="PUNC">)</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="STRN">"binary"</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT"> +<span class='line'>340</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="NAME">this.options.debug</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="WHIT"> +<span class='line'>341</span> </span><span class="WHIT"> </span><span class="NAME">console.log</span><span class="PUNC">(</span><span class="STRN">"DATA:"</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">data.toString</span><span class="PUNC">(</span><span class="STRN">"utf-8"</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT"> +<span class='line'>342</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT"> +<span class='line'>343</span> </span><span class="WHIT"> </span><span class="NAME">this.emit</span><span class="PUNC">(</span><span class="STRN">"data"</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">data</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT"> +<span class='line'>344</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT"> +<span class='line'>345</span> </span><span class="WHIT"> </span><span class="COMM">// emit data ready</span><span class="WHIT"> +<span class='line'>346</span> </span><span class="WHIT"> </span><span class="NAME">this._remainder</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="STRN">""</span><span class="PUNC">;</span><span class="WHIT"> +<span class='line'>347</span> </span><span class="WHIT"> </span><span class="NAME">this.emit</span><span class="PUNC">(</span><span class="STRN">"ready"</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT"> +<span class='line'>348</span> </span><span class="WHIT"> </span><span class="NAME">this._dataMode</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">false</span><span class="PUNC">;</span><span class="WHIT"> +<span class='line'>349</span> </span><span class="WHIT"> </span><span class="COMM">// send the remaining data for processing</span><span class="WHIT"> +<span class='line'>350</span> </span><span class="WHIT"> </span><span class="NAME">this._processData</span><span class="PUNC">(</span><span class="NAME">str.substr</span><span class="PUNC">(</span><span class="NAME">dataRemainderMatch.index</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">dataRemainderMatch</span><span class="PUNC">[</span><span class="NUMB">0</span><span class="PUNC">]</span><span class="PUNC">.</span><span class="NAME">length</span><span class="PUNC">)</span><span class="PUNC">+</span><span class="STRN">"\r\n"</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT"> +<span class='line'>351</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="KEYW">else</span><span class="PUNC">{</span><span class="WHIT"> +<span class='line'>352</span> </span><span class="WHIT"> </span><span class="COMM">// check if there's not something in the end of the data that resembles</span><span class="WHIT"> +<span class='line'>353</span> </span><span class="WHIT"> </span><span class="COMM">// end sequence - if so, cut it off and save it to the remainder</span><span class="WHIT"> +<span class='line'>354</span> </span><span class="WHIT"> </span><span class="NAME">str</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">str</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">this._remainder</span><span class="PUNC">;</span><span class="WHIT"> +<span class='line'>355</span> </span><span class="WHIT"> </span><span class="NAME">this._remainder</span><span class="PUNC">=</span><span class="WHIT"> </span><span class="STRN">""</span><span class="PUNC">;</span><span class="WHIT"> +<span class='line'>356</span> </span><span class="WHIT"> </span><span class="KEYW">for</span><span class="PUNC">(</span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">i</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">Math.min</span><span class="PUNC">(</span><span class="NAME">this._endDataModeSequence.length</span><span class="PUNC">-</span><span class="NUMB">1</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">str.length</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT"> </span><span class="NAME">i</span><span class="PUNC">></span><span class="NUMB">0</span><span class="PUNC">;</span><span class="WHIT"> </span><span class="NAME">i</span><span class="PUNC">--</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="WHIT"> +<span class='line'>357</span> </span><span class="WHIT"> </span><span class="NAME">match</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">this._endDataModeSequence.substr</span><span class="PUNC">(</span><span class="NUMB">0</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">i</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT"> +<span class='line'>358</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="NAME">str.substr</span><span class="PUNC">(</span><span class="PUNC">-</span><span class="NAME">match.length</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">==</span><span class="WHIT"> </span><span class="NAME">match</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="WHIT"> +<span class='line'>359</span> </span><span class="WHIT"> </span><span class="NAME">this._remainder</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">str.substr</span><span class="PUNC">(</span><span class="PUNC">-</span><span class="NAME">match.length</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT"> +<span class='line'>360</span> </span><span class="WHIT"> </span><span class="NAME">str</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">str.substr</span><span class="PUNC">(</span><span class="NUMB">0</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">str.length</span><span class="WHIT"> </span><span class="PUNC">-</span><span class="WHIT"> </span><span class="NAME">match.length</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT"> +<span class='line'>361</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT"> +<span class='line'>362</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT"> +<span class='line'>363</span> +<span class='line'>364</span> </span><span class="WHIT"> </span><span class="COMM">// if there's some data leht, emit it</span><span class="WHIT"> +<span class='line'>365</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="NAME">str.length</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="WHIT"> +<span class='line'>366</span> </span><span class="WHIT"> </span><span class="NAME">data</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">new</span><span class="WHIT"> </span><span class="NAME">Buffer</span><span class="PUNC">(</span><span class="NAME">str</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="STRN">"binary"</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT"> +<span class='line'>367</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="NAME">this.options.debug</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="WHIT"> +<span class='line'>368</span> </span><span class="WHIT"> </span><span class="NAME">console.log</span><span class="PUNC">(</span><span class="STRN">"DATA:"</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">data.toString</span><span class="PUNC">(</span><span class="STRN">"utf-8"</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT"> +<span class='line'>369</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT"> +<span class='line'>370</span> </span><span class="WHIT"> </span><span class="NAME">this.emit</span><span class="PUNC">(</span><span class="STRN">"data"</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">data</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT"> +<span class='line'>371</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT"> +<span class='line'>372</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT"> +<span class='line'>373</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="KEYW">else</span><span class="PUNC">{</span><span class="WHIT"> +<span class='line'>374</span> </span><span class="WHIT"> </span><span class="COMM">// Not in data mode, process as command</span><span class="WHIT"> +<span class='line'>375</span> </span><span class="WHIT"> </span><span class="NAME">this._processData</span><span class="PUNC">(</span><span class="NAME">str</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT"> +<span class='line'>376</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT"> +<span class='line'>377</span> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT"> +<span class='line'>378</span> +<span class='line'>379</span> </span><span class="COMM">/** +<span class='line'>380</span> * <p>Processed incoming command lines and emits found data as +<span class='line'>381</span> * <code>'command'</code> with the command name as the first param and the rest +<span class='line'>382</span> * of the data as second (Buffer)</p> +<span class='line'>383</span> * +<span class='line'>384</span> * @param {String} str Binary string to be processed +<span class='line'>385</span> */</span><span class="WHIT"> +<span class='line'>386</span> </span><span class="NAME">RAISocket.prototype._processData</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">str</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="WHIT"> +<span class='line'>387</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="PUNC">!</span><span class="NAME">str.length</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="WHIT"> +<span class='line'>388</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="PUNC">;</span><span class="WHIT"> +<span class='line'>389</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT"> +<span class='line'>390</span> </span><span class="WHIT"> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">lines</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">this._remainder</span><span class="PUNC">+</span><span class="NAME">str</span><span class="PUNC">)</span><span class="PUNC">.</span><span class="NAME">split</span><span class="PUNC">(</span><span class="STRN">"\r\n"</span><span class="PUNC">)</span><span class="PUNC">,</span><span class="WHIT"> +<span class='line'>391</span> </span><span class="WHIT"> </span><span class="NAME">match</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">command</span><span class="PUNC">;</span><span class="WHIT"> +<span class='line'>392</span> </span><span class="WHIT"> +<span class='line'>393</span> </span><span class="NAME">this._remainder</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">lines.pop</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT"> +<span class='line'>394</span> </span><span class="WHIT"> +<span class='line'>395</span> </span><span class="KEYW">for</span><span class="PUNC">(</span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">i</span><span class="PUNC">=</span><span class="NUMB">0</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">len</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">lines.length</span><span class="PUNC">;</span><span class="WHIT"> </span><span class="NAME">i</span><span class="PUNC"><</span><span class="NAME">len</span><span class="PUNC">;</span><span class="WHIT"> </span><span class="NAME">i</span><span class="PUNC">++</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="WHIT"> +<span class='line'>396</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="NAME">this._ignore_data</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="WHIT"> +<span class='line'>397</span> </span><span class="WHIT"> </span><span class="COMM">// If TLS upgrade is initiated do not process current buffer</span><span class="WHIT"> +<span class='line'>398</span> </span><span class="WHIT"> </span><span class="NAME">this._remainder</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="STRN">""</span><span class="PUNC">;</span><span class="WHIT"> +<span class='line'>399</span> </span><span class="WHIT"> </span><span class="KEYW">break</span><span class="PUNC">;</span><span class="WHIT"> +<span class='line'>400</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT"> +<span class='line'>401</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="PUNC">!</span><span class="NAME">this._dataMode</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="WHIT"> +<span class='line'>402</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="PUNC">(</span><span class="NAME">match</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">lines</span><span class="PUNC">[</span><span class="NAME">i</span><span class="PUNC">]</span><span class="PUNC">.</span><span class="NAME">match</span><span class="PUNC">(</span><span class="REGX">/\s*[\S]+\s?/</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="WHIT"> +<span class='line'>403</span> </span><span class="WHIT"> </span><span class="NAME">command</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">match</span><span class="PUNC">[</span><span class="NUMB">0</span><span class="PUNC">]</span><span class="WHIT"> </span><span class="PUNC">||</span><span class="WHIT"> </span><span class="STRN">""</span><span class="PUNC">)</span><span class="PUNC">.</span><span class="NAME">trim</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT"> +<span class='line'>404</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="NAME">this.options.debug</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="WHIT"> +<span class='line'>405</span> </span><span class="WHIT"> </span><span class="NAME">console.log</span><span class="PUNC">(</span><span class="STRN">"COMMAND:"</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">lines</span><span class="PUNC">[</span><span class="NAME">i</span><span class="PUNC">]</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT"> +<span class='line'>406</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT"> +<span class='line'>407</span> </span><span class="WHIT"> </span><span class="NAME">this.emit</span><span class="PUNC">(</span><span class="STRN">"command"</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">command</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="KEYW">new</span><span class="WHIT"> </span><span class="NAME">Buffer</span><span class="PUNC">(</span><span class="NAME">lines</span><span class="PUNC">[</span><span class="NAME">i</span><span class="PUNC">]</span><span class="PUNC">.</span><span class="NAME">substr</span><span class="PUNC">(</span><span class="NAME">match.index</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">match</span><span class="PUNC">[</span><span class="NUMB">0</span><span class="PUNC">]</span><span class="PUNC">.</span><span class="NAME">length</span><span class="PUNC">)</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="STRN">"binary"</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT"> +<span class='line'>408</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT"> +<span class='line'>409</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="KEYW">else</span><span class="PUNC">{</span><span class="WHIT"> +<span class='line'>410</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="NAME">this._remainder</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="WHIT"> +<span class='line'>411</span> </span><span class="WHIT"> </span><span class="NAME">this._remainder</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="PUNC">=</span><span class="WHIT"> </span><span class="STRN">"\r\n"</span><span class="PUNC">;</span><span class="WHIT"> +<span class='line'>412</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT"> +<span class='line'>413</span> </span><span class="WHIT"> </span><span class="NAME">this._onReceiveData</span><span class="PUNC">(</span><span class="NAME">lines.slice</span><span class="PUNC">(</span><span class="NAME">i</span><span class="PUNC">)</span><span class="PUNC">.</span><span class="NAME">join</span><span class="PUNC">(</span><span class="STRN">"\r\n"</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT"> +<span class='line'>414</span> </span><span class="WHIT"> </span><span class="KEYW">break</span><span class="PUNC">;</span><span class="WHIT"> +<span class='line'>415</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT"> +<span class='line'>416</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT"> +<span class='line'>417</span> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT"> +<span class='line'>418</span> +<span class='line'>419</span> </span><span class="COMM">/** +<span class='line'>420</span> * <p>Called when the connection is or is going to be ended</p> +<span class='line'>421</span> */</span><span class="WHIT"> +<span class='line'>422</span> </span><span class="NAME">RAISocket.prototype._destroy</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="WHIT"> +<span class='line'>423</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="NAME">this._destroyed</span><span class="PUNC">)</span><span class="KEYW">return</span><span class="PUNC">;</span><span class="WHIT"> +<span class='line'>424</span> </span><span class="WHIT"> </span><span class="NAME">this._destroyed</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">true</span><span class="PUNC">;</span><span class="WHIT"> +<span class='line'>425</span> </span><span class="WHIT"> +<span class='line'>426</span> </span><span class="NAME">this.removeAllListeners</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT"> +<span class='line'>427</span> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT"> +<span class='line'>428</span> +<span class='line'>429</span> </span><span class="COMM">/** +<span class='line'>430</span> * <p>Called when the connection is ended. Emits <code>'end'</code></p> +<span class='line'>431</span> * +<span class='line'>432</span> * @event +<span class='line'>433</span> */</span><span class="WHIT"> +<span class='line'>434</span> </span><span class="NAME">RAISocket.prototype._onEnd</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="WHIT"> +<span class='line'>435</span> </span><span class="WHIT"> </span><span class="NAME">this.emit</span><span class="PUNC">(</span><span class="STRN">"end"</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT"> +<span class='line'>436</span> </span><span class="WHIT"> </span><span class="NAME">this._destroy</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT"> +<span class='line'>437</span> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT"> +<span class='line'>438</span> +<span class='line'>439</span> </span><span class="COMM">/** +<span class='line'>440</span> * <p>Called when an error has appeared. Emits <code>'error'</code> with +<span class='line'>441</span> * the error object as a parameter.</p> +<span class='line'>442</span> * +<span class='line'>443</span> * @event +<span class='line'>444</span> * @param {Object} err Error object +<span class='line'>445</span> */</span><span class="WHIT"> +<span class='line'>446</span> </span><span class="NAME">RAISocket.prototype._onError</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">err</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="WHIT"> +<span class='line'>447</span> </span><span class="WHIT"> </span><span class="NAME">this.emit</span><span class="PUNC">(</span><span class="STRN">"error"</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">err</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT"> +<span class='line'>448</span> </span><span class="WHIT"> </span><span class="NAME">this._destroy</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT"> +<span class='line'>449</span> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT"> +<span class='line'>450</span> +<span class='line'>451</span> </span><span class="COMM">/** +<span class='line'>452</span> * <p>Called when a timeout has occured. Connection will be closed and +<span class='line'>453</span> * <code>'timeout'</code> is emitted.</p> +<span class='line'>454</span> * +<span class='line'>455</span> * @event +<span class='line'>456</span> */</span><span class="WHIT"> +<span class='line'>457</span> </span><span class="NAME">RAISocket.prototype._onTimeout</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="WHIT"> +<span class='line'>458</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="NAME">this.options.disconnectOnTimeout</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="WHIT"> +<span class='line'>459</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="NAME">this.socket</span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT"> </span><span class="PUNC">!</span><span class="NAME">this.socket.destroyed</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="WHIT"> +<span class='line'>460</span> </span><span class="WHIT"> </span><span class="NAME">this.socket.end</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT"> +<span class='line'>461</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT"> +<span class='line'>462</span> </span><span class="WHIT"> </span><span class="NAME">this.emit</span><span class="PUNC">(</span><span class="STRN">"timeout"</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT"> +<span class='line'>463</span> </span><span class="WHIT"> </span><span class="NAME">this._destroy</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT"> +<span class='line'>464</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="KEYW">else</span><span class="PUNC">{</span><span class="WHIT"> +<span class='line'>465</span> </span><span class="WHIT"> </span><span class="NAME">this.emit</span><span class="PUNC">(</span><span class="STRN">"timeout"</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT"> +<span class='line'>466</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT"> +<span class='line'>467</span> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT"> +<span class='line'>468</span> +<span class='line'>469</span> </span><span class="COMM">/** +<span class='line'>470</span> * <p>Called when the connection is closed</p> +<span class='line'>471</span> * +<span class='line'>472</span> * @event +<span class='line'>473</span> * @param {Boolean} hadError did the connection end because of an error? +<span class='line'>474</span> */</span><span class="WHIT"> +<span class='line'>475</span> </span><span class="NAME">RAISocket.prototype._onClose</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">hadError</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="WHIT"> +<span class='line'>476</span> </span><span class="WHIT"> </span><span class="NAME">this._destroy</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT"> +<span class='line'>477</span> </span><span class="PUNC">}</span><span class="PUNC">;</span></pre></body></html>
\ No newline at end of file diff --git a/tools/node_modules/nodemailer/node_modules/simplesmtp/node_modules/rai/jsdoc/symbols/src/RAI_lib_starttls.js.html b/tools/node_modules/nodemailer/node_modules/simplesmtp/node_modules/rai/jsdoc/symbols/src/RAI_lib_starttls.js.html new file mode 100644 index 0000000..dd1b2ea --- /dev/null +++ b/tools/node_modules/nodemailer/node_modules/simplesmtp/node_modules/rai/jsdoc/symbols/src/RAI_lib_starttls.js.html @@ -0,0 +1,120 @@ +<html><head><meta http-equiv="content-type" content="text/html; charset=UTF-8"> <style> + .KEYW {color: #933;} + .COMM {color: #bbb; font-style: italic;} + .NUMB {color: #393;} + .STRN {color: #393;} + .REGX {color: #339;} + .line {border-right: 1px dotted #666; color: #666; font-style: normal;} + </style></head><body><pre><span class='line'> 1</span> <span class="COMM">// SOURCE: https://gist.github.com/848444</span><span class="WHIT"> +<span class='line'> 2</span> +<span class='line'> 3</span> </span><span class="COMM">// Target API:</span><span class="WHIT"> +<span class='line'> 4</span> </span><span class="COMM">//</span><span class="WHIT"> +<span class='line'> 5</span> </span><span class="COMM">// var s = require('net').createStream(25, 'smtp.example.com');</span><span class="WHIT"> +<span class='line'> 6</span> </span><span class="COMM">// s.on('connect', function() {</span><span class="WHIT"> +<span class='line'> 7</span> </span><span class="COMM">// require('starttls')(s, options, function() {</span><span class="WHIT"> +<span class='line'> 8</span> </span><span class="COMM">// if (!s.authorized) {</span><span class="WHIT"> +<span class='line'> 9</span> </span><span class="COMM">// s.destroy();</span><span class="WHIT"> +<span class='line'> 10</span> </span><span class="COMM">// return;</span><span class="WHIT"> +<span class='line'> 11</span> </span><span class="COMM">// }</span><span class="WHIT"> +<span class='line'> 12</span> </span><span class="COMM">//</span><span class="WHIT"> +<span class='line'> 13</span> </span><span class="COMM">// s.end("hello world\n");</span><span class="WHIT"> +<span class='line'> 14</span> </span><span class="COMM">// });</span><span class="WHIT"> +<span class='line'> 15</span> </span><span class="COMM">// });</span><span class="WHIT"> +<span class='line'> 16</span> </span><span class="COMM">//</span><span class="WHIT"> +<span class='line'> 17</span> </span><span class="COMM">//</span><span class="WHIT"> +<span class='line'> 18</span> +<span class='line'> 19</span> </span><span class="COMM">/** +<span class='line'> 20</span> * @namespace STARTTLS module +<span class='line'> 21</span> * @name starttls +<span class='line'> 22</span> */</span><span class="WHIT"> +<span class='line'> 23</span> </span><span class="NAME">module.exports.starttls</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">starttls</span><span class="PUNC">;</span><span class="WHIT"> +<span class='line'> 24</span> +<span class='line'> 25</span> </span><span class="COMM">/** +<span class='line'> 26</span> * <p>Upgrades a socket to a secure TLS connection</p> +<span class='line'> 27</span> * +<span class='line'> 28</span> * @memberOf starttls +<span class='line'> 29</span> * @param {Object} socket Plaintext socket to be upgraded +<span class='line'> 30</span> * @param {Object} options Certificate data for the server +<span class='line'> 31</span> * @param {Function} callback Callback function to be run after upgrade +<span class='line'> 32</span> */</span><span class="WHIT"> +<span class='line'> 33</span> </span><span class="KEYW">function</span><span class="WHIT"> </span><span class="NAME">starttls</span><span class="PUNC">(</span><span class="NAME">socket</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">options</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">callback</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT"> +<span class='line'> 34</span> </span><span class="WHIT"> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">sslcontext</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">pair</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">cleartext</span><span class="PUNC">;</span><span class="WHIT"> +<span class='line'> 35</span> </span><span class="WHIT"> +<span class='line'> 36</span> </span><span class="NAME">socket.removeAllListeners</span><span class="PUNC">(</span><span class="STRN">"data"</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT"> +<span class='line'> 37</span> </span><span class="WHIT"> </span><span class="NAME">sslcontext</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">require</span><span class="PUNC">(</span><span class="STRN">'crypto'</span><span class="PUNC">)</span><span class="PUNC">.</span><span class="NAME">createCredentials</span><span class="PUNC">(</span><span class="NAME">options</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT"> +<span class='line'> 38</span> </span><span class="WHIT"> </span><span class="NAME">pair</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">require</span><span class="PUNC">(</span><span class="STRN">'tls'</span><span class="PUNC">)</span><span class="PUNC">.</span><span class="NAME">createSecurePair</span><span class="PUNC">(</span><span class="NAME">sslcontext</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="KEYW">true</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT"> +<span class='line'> 39</span> </span><span class="WHIT"> </span><span class="NAME">cleartext</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">pipe</span><span class="PUNC">(</span><span class="NAME">pair</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">socket</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT"> +<span class='line'> 40</span> +<span class='line'> 41</span> </span><span class="WHIT"> </span><span class="NAME">pair.on</span><span class="PUNC">(</span><span class="STRN">'secure'</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT"> +<span class='line'> 42</span> </span><span class="WHIT"> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">verifyError</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">pair._ssl</span><span class="WHIT"> </span><span class="PUNC">||</span><span class="WHIT"> </span><span class="NAME">pair.ssl</span><span class="PUNC">)</span><span class="PUNC">.</span><span class="NAME">verifyError</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT"> +<span class='line'> 43</span> +<span class='line'> 44</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">verifyError</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT"> +<span class='line'> 45</span> </span><span class="WHIT"> </span><span class="NAME">cleartext.authorized</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">false</span><span class="PUNC">;</span><span class="WHIT"> +<span class='line'> 46</span> </span><span class="WHIT"> </span><span class="NAME">cleartext.authorizationError</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">verifyError</span><span class="PUNC">;</span><span class="WHIT"> +<span class='line'> 47</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT"> </span><span class="KEYW">else</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT"> +<span class='line'> 48</span> </span><span class="WHIT"> </span><span class="NAME">cleartext.authorized</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">true</span><span class="PUNC">;</span><span class="WHIT"> +<span class='line'> 49</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT"> +<span class='line'> 50</span> +<span class='line'> 51</span> </span><span class="WHIT"> </span><span class="NAME">callback</span><span class="PUNC">(</span><span class="NAME">cleartext</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT"> +<span class='line'> 52</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT"> +<span class='line'> 53</span> +<span class='line'> 54</span> </span><span class="WHIT"> </span><span class="NAME">cleartext._controlReleased</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">true</span><span class="PUNC">;</span><span class="WHIT"> +<span class='line'> 55</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">pair</span><span class="PUNC">;</span><span class="WHIT"> +<span class='line'> 56</span> </span><span class="PUNC">}</span><span class="WHIT"> +<span class='line'> 57</span> +<span class='line'> 58</span> </span><span class="KEYW">function</span><span class="WHIT"> </span><span class="NAME">forwardEvents</span><span class="PUNC">(</span><span class="NAME">events</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">emitterSource</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">emitterDestination</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT"> +<span class='line'> 59</span> </span><span class="WHIT"> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">map</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="PUNC">[</span><span class="PUNC">]</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">name</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">handler</span><span class="PUNC">;</span><span class="WHIT"> +<span class='line'> 60</span> </span><span class="WHIT"> +<span class='line'> 61</span> </span><span class="KEYW">for</span><span class="PUNC">(</span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">i</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NUMB">0</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">len</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">events.length</span><span class="PUNC">;</span><span class="WHIT"> </span><span class="NAME">i</span><span class="WHIT"> </span><span class="PUNC"><</span><span class="WHIT"> </span><span class="NAME">len</span><span class="PUNC">;</span><span class="WHIT"> </span><span class="NAME">i</span><span class="PUNC">++</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT"> +<span class='line'> 62</span> </span><span class="WHIT"> </span><span class="NAME">name</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">events</span><span class="PUNC">[</span><span class="NAME">i</span><span class="PUNC">]</span><span class="PUNC">;</span><span class="WHIT"> +<span class='line'> 63</span> +<span class='line'> 64</span> </span><span class="WHIT"> </span><span class="NAME">handler</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">forwardEvent.bind</span><span class="PUNC">(</span><span class="NAME">emitterDestination</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">name</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT"> +<span class='line'> 65</span> </span><span class="WHIT"> +<span class='line'> 66</span> </span><span class="NAME">map.push</span><span class="PUNC">(</span><span class="NAME">name</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT"> +<span class='line'> 67</span> </span><span class="WHIT"> </span><span class="NAME">emitterSource.on</span><span class="PUNC">(</span><span class="NAME">name</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">handler</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT"> +<span class='line'> 68</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT"> +<span class='line'> 69</span> </span><span class="WHIT"> +<span class='line'> 70</span> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">map</span><span class="PUNC">;</span><span class="WHIT"> +<span class='line'> 71</span> </span><span class="PUNC">}</span><span class="WHIT"> +<span class='line'> 72</span> +<span class='line'> 73</span> </span><span class="KEYW">function</span><span class="WHIT"> </span><span class="NAME">forwardEvent</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT"> +<span class='line'> 74</span> </span><span class="WHIT"> </span><span class="NAME">this.emit.apply</span><span class="PUNC">(</span><span class="KEYW">this</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">arguments</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT"> +<span class='line'> 75</span> </span><span class="PUNC">}</span><span class="WHIT"> +<span class='line'> 76</span> +<span class='line'> 77</span> </span><span class="KEYW">function</span><span class="WHIT"> </span><span class="NAME">removeEvents</span><span class="PUNC">(</span><span class="NAME">map</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">emitterSource</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT"> +<span class='line'> 78</span> </span><span class="WHIT"> </span><span class="KEYW">for</span><span class="PUNC">(</span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">i</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NUMB">0</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">len</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">map.length</span><span class="PUNC">;</span><span class="WHIT"> </span><span class="NAME">i</span><span class="WHIT"> </span><span class="PUNC"><</span><span class="WHIT"> </span><span class="NAME">len</span><span class="PUNC">;</span><span class="WHIT"> </span><span class="NAME">i</span><span class="PUNC">++</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="WHIT"> +<span class='line'> 79</span> </span><span class="WHIT"> </span><span class="NAME">emitterSource.removeAllListeners</span><span class="PUNC">(</span><span class="NAME">map</span><span class="PUNC">[</span><span class="NAME">i</span><span class="PUNC">]</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT"> +<span class='line'> 80</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT"> +<span class='line'> 81</span> </span><span class="PUNC">}</span><span class="WHIT"> +<span class='line'> 82</span> +<span class='line'> 83</span> </span><span class="KEYW">function</span><span class="WHIT"> </span><span class="NAME">pipe</span><span class="PUNC">(</span><span class="NAME">pair</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">socket</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT"> +<span class='line'> 84</span> </span><span class="WHIT"> </span><span class="NAME">pair.encrypted.pipe</span><span class="PUNC">(</span><span class="NAME">socket</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT"> +<span class='line'> 85</span> </span><span class="WHIT"> </span><span class="NAME">socket.pipe</span><span class="PUNC">(</span><span class="NAME">pair.encrypted</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT"> +<span class='line'> 86</span> +<span class='line'> 87</span> </span><span class="WHIT"> </span><span class="NAME">pair.fd</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">socket.fd</span><span class="PUNC">;</span><span class="WHIT"> +<span class='line'> 88</span> </span><span class="WHIT"> +<span class='line'> 89</span> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">cleartext</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">pair.cleartext</span><span class="PUNC">;</span><span class="WHIT"> +<span class='line'> 90</span> </span><span class="WHIT"> +<span class='line'> 91</span> </span><span class="NAME">cleartext.socket</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">socket</span><span class="PUNC">;</span><span class="WHIT"> +<span class='line'> 92</span> </span><span class="WHIT"> </span><span class="NAME">cleartext.encrypted</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">pair.encrypted</span><span class="PUNC">;</span><span class="WHIT"> +<span class='line'> 93</span> </span><span class="WHIT"> </span><span class="NAME">cleartext.authorized</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">false</span><span class="PUNC">;</span><span class="WHIT"> +<span class='line'> 94</span> +<span class='line'> 95</span> </span><span class="WHIT"> </span><span class="KEYW">function</span><span class="WHIT"> </span><span class="NAME">onerror</span><span class="PUNC">(</span><span class="NAME">e</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT"> +<span class='line'> 96</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">cleartext._controlReleased</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT"> +<span class='line'> 97</span> </span><span class="WHIT"> </span><span class="NAME">cleartext.emit</span><span class="PUNC">(</span><span class="STRN">'error'</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">e</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT"> +<span class='line'> 98</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT"> +<span class='line'> 99</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT"> +<span class='line'>100</span> +<span class='line'>101</span> </span><span class="WHIT"> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">map</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">forwardEvents</span><span class="PUNC">(</span><span class="PUNC">[</span><span class="STRN">"timeout"</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="STRN">"end"</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="STRN">"close"</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="STRN">"drain"</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="STRN">"error"</span><span class="PUNC">]</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">socket</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">cleartext</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT"> +<span class='line'>102</span> </span><span class="WHIT"> +<span class='line'>103</span> </span><span class="KEYW">function</span><span class="WHIT"> </span><span class="NAME">onclose</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT"> +<span class='line'>104</span> </span><span class="WHIT"> </span><span class="NAME">socket.removeListener</span><span class="PUNC">(</span><span class="STRN">'error'</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">onerror</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT"> +<span class='line'>105</span> </span><span class="WHIT"> </span><span class="NAME">socket.removeListener</span><span class="PUNC">(</span><span class="STRN">'close'</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">onclose</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT"> +<span class='line'>106</span> </span><span class="WHIT"> </span><span class="NAME">removeEvents</span><span class="PUNC">(</span><span class="NAME">map</span><span class="PUNC">,</span><span class="NAME">socket</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT"> +<span class='line'>107</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT"> +<span class='line'>108</span> +<span class='line'>109</span> </span><span class="WHIT"> </span><span class="NAME">socket.on</span><span class="PUNC">(</span><span class="STRN">'error'</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">onerror</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT"> +<span class='line'>110</span> </span><span class="WHIT"> </span><span class="NAME">socket.on</span><span class="PUNC">(</span><span class="STRN">'close'</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">onclose</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT"> +<span class='line'>111</span> +<span class='line'>112</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">cleartext</span><span class="PUNC">;</span><span class="WHIT"> +<span class='line'>113</span> </span><span class="PUNC">}</span></pre></body></html>
\ No newline at end of file diff --git a/tools/node_modules/nodemailer/node_modules/simplesmtp/node_modules/rai/jsdoc/symbols/starttls.html b/tools/node_modules/nodemailer/node_modules/simplesmtp/node_modules/rai/jsdoc/symbols/starttls.html new file mode 100644 index 0000000..e16b915 --- /dev/null +++ b/tools/node_modules/nodemailer/node_modules/simplesmtp/node_modules/rai/jsdoc/symbols/starttls.html @@ -0,0 +1,237 @@ + +<!DOCTYPE html> +<html lang="en"> + <head> + <meta charset="UTF-8" /> + <meta name="generator" content="JsDoc Toolkit" /> + <title>starttls | JsDoc Reference</title> + + <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0" /> + <meta name="mobileoptimized" content="0" /> + + <link rel="stylesheet" href="../css/all.css" media="all" /> + <link rel="stylesheet" href="../css/handheld.css" media="only screen and (max-width: 660px)" /> + <link rel="stylesheet" href="../css/handheld.css" media="handheld" /> + <link rel="stylesheet" href="../css/screen.css" media="screen and (min-width: 661px)" /> + + <script src="../javascript/all.js"></script> + <!--[if lt IE 9]> + <script src="../javascript/html5.js"></script> + <![endif]--> + </head> + + <body> + +<div class="index"> + <div class="menu"> + <div class="indexLinks"> + <a href="../index.html">Classes</a> + <a href="../files.html">Files</a> + </div> + + <h2 class="heading1">Classes</h2> + + <input type="text" name="classFilter" class="classFilter" id="ClassFilter" placeholder="Filter"></input> + + <nav> + <ul class="classList" id="ClassList"> + + <li><a href="../symbols/_global_.html">_global_</a></li> + + <li><a href="../symbols/mockup.html">mockup</a></li> + + <li><a href="../symbols/RAIServer.html">RAIServer</a></li> + + <li><a href="../symbols/RAISocket.html">RAISocket</a></li> + + <li><a href="../symbols/starttls.html">starttls</a></li> + + </ul> + </nav> + </div> + <div class="fineprint" style="clear:both"> + <footer> + + Documentation generator: <a href="http://code.google.com/p/jsdoc-toolkit/" target="_blank">JsDoc Toolkit</a> 2.4.0<br /> + Template: <a href="http://www.thebrightlines.com/2010/05/06/new-template-for-jsdoctoolkit-codeview/" target="_blank">Codeview</a> 1.2<br /> + Generated on: + <time datetime='2012-0-22' pubdate>2012-0-22 12:15</time> + </footer> + </div> +</div> + +<div class="index indexStatic"></div> + +<div class="content"> + <div class="innerContent"> + <article> + <header> + <h1 class="classTitle"> + + Namespace <span>starttls</span> + </h1> + + <div class="intro"> + <p class="description summary"> + STARTTLS module + </p> + + + <ul class="summary"> + + + + <li>Defined in: <a href="../symbols/src/RAI_lib_starttls.js.html">starttls.js</a></li> + + + </ul> + + </div> + </header> + + + + + <!-- + #### METHODS SUMMARY + --> + + <section> + + + <div class="props"> + <h2 class="sectionTitle">Method Summary</h2> + + + <nav> + <table class="summaryTable" id="MethodsList" cellspacing="0" summary="A summary of the methods documented in the class starttls."> + <thead> + <tr> + <th scope="col">Method Attributes</th> + <th scope="col">Method Name and Description</th> + </tr> + </thead> + + <tbody> + + + <tr + class='item0' + > + <td class="attributes"><static> </td> + <td class="nameDescription"> + <div class="fixedFont">starttls.<b><a href="../symbols/starttls.html#.starttls">starttls</a></b>(socket, options, callback) + </div> + <div class="description"><p>Upgrades a socket to a secure TLS connection</p></div> + </td> + </tr> + + </tbody> + </table> + </nav> + + + + </div> + </section> + + + <!-- + #### EVENTS SUMMARY + --> + + <!-- + #### CONSTRUCTOR DETAILS + --> + + <!-- + #### FIELD DETAILS + --> + + <!-- + #### METHOD DETAILS + --> + + <section> + <div class="details props"> + <div class="innerProps"> + <h2 class="sectionTitle"> + Method Detail + </h2> + + <ul class="methodDetail" id="MethodDetail"> + + + <li + class='item0' + > + <div class="fixedFont heading" id=".starttls"> + <span class='lighter'> + <static> + </span> + + + + <span class="light">starttls.</span><b>starttls</b>(socket, options, callback) + </div> + + <div class="description"> + <p>Upgrades a socket to a secure TLS connection</p> + + + + + </div> + + + + + <dl class="detailList params"> + <dt class="heading">Parameters:</dt> + + <dt> + <span class="light fixedFont">{Object}</span> <b>socket</b> + + </dt> + <dd>Plaintext socket to be upgraded</dd> + + <dt> + <span class="light fixedFont">{Object}</span> <b>options</b> + + </dt> + <dd>Certificate data for the server</dd> + + <dt> + <span class="light fixedFont">{Function}</span> <b>callback</b> + + </dt> + <dd>Callback function to be run after upgrade</dd> + + </dl> + + + + + </li> + + </ul> + </div> + </div> + </section> + + + <!-- + #### EVENT DETAILS + --> + + </article> + </div> +</div> + + <script type="text/javascript"> + wbos.CssTools.MediaQueryFallBack.LoadCss('../css/screen.css', '../css/handheld.css', 660) + codeview.classFilter.Init() + </script> + </body> +</html> + |