diff --git a/dist/browser/cjs/index.js b/dist/browser/cjs/index.js index 1bdd933..a6e4ab8 100644 --- a/dist/browser/cjs/index.js +++ b/dist/browser/cjs/index.js @@ -616,7 +616,7 @@ var MIMEMessage = /*#__PURE__*/function () { key: "setMessage", value: function setMessage(type, data) { var moreHeaders = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {}; - var validTypes = ['text/html', 'text/plain']; + var validTypes = ['text/html', 'text/plain', 'text/x-amp-html']; if (_indexOfInstanceProperty__default["default"](validTypes).call(validTypes, type) === -1) { var _context4; @@ -681,13 +681,17 @@ var MIMEMessage = /*#__PURE__*/function () { var lines = this.headers.dump(this.envctx); var plainTextMessage = this.getMessageByType('text/plain'); var htmlMessage = this.getMessageByType('text/html'); + var ampMessage = this.getMessageByType('text/x-amp-html'); var hasAttachments = this.getAttachments().length > 0; var hasPlainTextAlt = plainTextMessage instanceof MIMEMessageContent && htmlMessage instanceof MIMEMessageContent; + var hasAmpAlt = plainTextMessage instanceof MIMEMessageContent && htmlMessage instanceof MIMEMessageContent && ampMessage instanceof MIMEMessageContent; if (hasAttachments && hasPlainTextAlt) { return this.asRawMixedAlt(lines); } else if (hasAttachments) { return this.asRawMixed(lines); + } else if (hasAmpAlt) { + return this.asRawAmp(lines); } else if (hasPlainTextAlt) { return this.asRawAlt(lines); } else { @@ -720,52 +724,63 @@ var MIMEMessage = /*#__PURE__*/function () { lines = _concatInstanceProperty__default["default"](_context9 = _concatInstanceProperty__default["default"](_context10 = _concatInstanceProperty__default["default"](_context11 = _concatInstanceProperty__default["default"](_context12 = _concatInstanceProperty__default["default"](_context13 = _concatInstanceProperty__default["default"](_context14 = "".concat(lines, "\nContent-Type: multipart/alternative; boundary=")).call(_context14, this.boundaries.alt, "\n\n--")).call(_context13, this.boundaries.alt, "\n")).call(_context12, plainTextMessage.dump(this.envctx, this.boundaries), "\n\n--")).call(_context11, this.boundaries.alt, "\n")).call(_context10, htmlMessage.dump(this.envctx, this.boundaries), "\n\n--")).call(_context9, this.boundaries.alt, "--"); return lines; } + }, { + key: "asRawAmp", + value: function asRawAmp(lines) { + var _context15, _context16, _context17, _context18, _context19, _context20, _context21, _context22; + + var plainTextMessage = this.getMessageByType('text/plain'); + var htmlMessage = this.getMessageByType('text/html'); + var ampMessage = this.getMessageByType('text/x-amp-html'); + lines = _concatInstanceProperty__default["default"](_context15 = _concatInstanceProperty__default["default"](_context16 = _concatInstanceProperty__default["default"](_context17 = _concatInstanceProperty__default["default"](_context18 = _concatInstanceProperty__default["default"](_context19 = _concatInstanceProperty__default["default"](_context20 = _concatInstanceProperty__default["default"](_context21 = _concatInstanceProperty__default["default"](_context22 = "".concat(lines, "\nContent-Type: multipart/alternative; boundary=")).call(_context22, this.boundaries.alt, "\n\n--")).call(_context21, this.boundaries.alt, "\n")).call(_context20, plainTextMessage.dump(this.envctx, this.boundaries), "\n\n--")).call(_context19, this.boundaries.alt, "\n")).call(_context18, ampMessage.dump(this.envctx, this.boundaries), "\n\n--")).call(_context17, this.boundaries.alt, "\n")).call(_context16, htmlMessage.dump(this.envctx, this.boundaries), "\n\n--")).call(_context15, this.boundaries.alt, "--"); + return lines; + } }, { key: "asRawMixed", value: function asRawMixed(lines) { - var _context15, + var _context23, _this2 = this, - _context16, - _context17, - _context18, - _context19, - _context20; + _context24, + _context25, + _context26, + _context27, + _context28; var plainTextMessage = this.getMessageByType('text/plain'); var htmlMessage = this.getMessageByType('text/html'); var message = htmlMessage || plainTextMessage; - var attachments = _mapInstanceProperty__default["default"](_context15 = this.getAttachments()).call(_context15, function (a) { + var attachments = _mapInstanceProperty__default["default"](_context23 = this.getAttachments()).call(_context23, function (a) { return a.dump(_this2.envctx, _this2.boundaries); }).join('').replace(/[\r\n]$/g, ''); - lines = _concatInstanceProperty__default["default"](_context16 = _concatInstanceProperty__default["default"](_context17 = _concatInstanceProperty__default["default"](_context18 = _concatInstanceProperty__default["default"](_context19 = _concatInstanceProperty__default["default"](_context20 = "".concat(lines, "\nContent-Type: multipart/mixed; boundary=")).call(_context20, this.boundaries.mixed, "\n\n--")).call(_context19, this.boundaries.mixed, "\n")).call(_context18, message.dump(this.envctx, this.boundaries), "\n\n")).call(_context17, attachments, "\n\n--")).call(_context16, this.boundaries.mixed, "--"); + lines = _concatInstanceProperty__default["default"](_context24 = _concatInstanceProperty__default["default"](_context25 = _concatInstanceProperty__default["default"](_context26 = _concatInstanceProperty__default["default"](_context27 = _concatInstanceProperty__default["default"](_context28 = "".concat(lines, "\nContent-Type: multipart/mixed; boundary=")).call(_context28, this.boundaries.mixed, "\n\n--")).call(_context27, this.boundaries.mixed, "\n")).call(_context26, message.dump(this.envctx, this.boundaries), "\n\n")).call(_context25, attachments, "\n\n--")).call(_context24, this.boundaries.mixed, "--"); return lines; } }, { key: "asRawMixedAlt", value: function asRawMixedAlt(lines) { - var _context21, + var _context29, _this3 = this, - _context22, - _context23, - _context24, - _context25, - _context26, - _context27, - _context28, - _context29, _context30, - _context31; + _context31, + _context32, + _context33, + _context34, + _context35, + _context36, + _context37, + _context38, + _context39; var plainTextMessage = this.getMessageByType('text/plain'); var htmlMessage = this.getMessageByType('text/html'); - var attachments = _mapInstanceProperty__default["default"](_context21 = this.getAttachments()).call(_context21, function (a) { + var attachments = _mapInstanceProperty__default["default"](_context29 = this.getAttachments()).call(_context29, function (a) { return a.dump(_this3.envctx, _this3.boundaries); }).join('').replace(/[\r\n]$/g, ''); - lines = _concatInstanceProperty__default["default"](_context22 = _concatInstanceProperty__default["default"](_context23 = _concatInstanceProperty__default["default"](_context24 = _concatInstanceProperty__default["default"](_context25 = _concatInstanceProperty__default["default"](_context26 = _concatInstanceProperty__default["default"](_context27 = _concatInstanceProperty__default["default"](_context28 = _concatInstanceProperty__default["default"](_context29 = _concatInstanceProperty__default["default"](_context30 = _concatInstanceProperty__default["default"](_context31 = "".concat(lines, "\nContent-Type: multipart/mixed; boundary=")).call(_context31, this.boundaries.mixed, "\n\n--")).call(_context30, this.boundaries.mixed, "\nContent-Type: multipart/alternative; boundary=")).call(_context29, this.boundaries.alt, "\n\n--")).call(_context28, this.boundaries.alt, "\n")).call(_context27, plainTextMessage.dump(this.envctx, this.boundaries), "\n\n--")).call(_context26, this.boundaries.alt, "\n")).call(_context25, htmlMessage.dump(this.envctx, this.boundaries), "\n\n--")).call(_context24, this.boundaries.alt, "--\n")).call(_context23, attachments, "\n\n--")).call(_context22, this.boundaries.mixed, "--"); + lines = _concatInstanceProperty__default["default"](_context30 = _concatInstanceProperty__default["default"](_context31 = _concatInstanceProperty__default["default"](_context32 = _concatInstanceProperty__default["default"](_context33 = _concatInstanceProperty__default["default"](_context34 = _concatInstanceProperty__default["default"](_context35 = _concatInstanceProperty__default["default"](_context36 = _concatInstanceProperty__default["default"](_context37 = _concatInstanceProperty__default["default"](_context38 = _concatInstanceProperty__default["default"](_context39 = "".concat(lines, "\nContent-Type: multipart/mixed; boundary=")).call(_context39, this.boundaries.mixed, "\n\n--")).call(_context38, this.boundaries.mixed, "\nContent-Type: multipart/alternative; boundary=")).call(_context37, this.boundaries.alt, "\n\n--")).call(_context36, this.boundaries.alt, "\n")).call(_context35, plainTextMessage.dump(this.envctx, this.boundaries), "\n\n--")).call(_context34, this.boundaries.alt, "\n")).call(_context33, htmlMessage.dump(this.envctx, this.boundaries), "\n\n--")).call(_context32, this.boundaries.alt, "--\n")).call(_context31, attachments, "\n\n--")).call(_context30, this.boundaries.mixed, "--"); return lines; } }, { diff --git a/dist/browser/cjs/index.js.map b/dist/browser/cjs/index.js.map index edaea5c..0d4389b 100644 --- a/dist/browser/cjs/index.js.map +++ b/dist/browser/cjs/index.js.map @@ -1 +1 @@ -{"version":3,"file":"index.js","sources":["../../../src/MIMETextError.js","../../../src/MIMEMessageHeader.js","../../../src/MIMEMessageContent.js","../../../src/Mailbox.js","../../../src/MIMEMessage.js","../../../src/entrypoints/browser.js"],"sourcesContent":["export default class MIMETextError extends Error {\n constructor(message, description) {\n super(message)\n this.description = description ? description.trim().replace(/[\\s]{2,}/, ' ') : null\n this.name = 'MIMETextError'\n }\n}\n","import MIMETextError from './MIMETextError.js'\n\n/*\n* Headers are based on: https://www.rfc-editor.org/rfc/rfc4021#section-2.1\n* (Some are ignored as they can be added later or as a custom header.)\n*/\n\nexport default class MIMEMessageHeader {\n constructor(placement) {\n this.placement = placement\n this.store = [\n {\n placement: 'header',\n name: 'Date',\n // value property is what user sets for this header\n value: null,\n // the generator function generates a value for this header unless\n // user specified a value or user disabled this property\n generator: () => (new Date().toGMTString()).replace(/GMT|UTC/gi, '+0000'),\n disabled: false,\n dump: (v) => {\n return v\n }\n },\n {\n placement: 'header',\n name: 'From',\n // required property indicates that this property must be set\n required: true,\n dump: (v) => {\n return v.dump()\n }\n },\n {\n placement: 'header',\n name: 'Sender',\n dump: (v) => {\n return v.dump()\n }\n },\n {\n placement: 'header',\n name: 'Reply-To',\n dump: (v) => {\n return v\n }\n },\n {\n placement: 'header',\n name: 'To',\n required: true,\n dump: (vs) => {\n return vs.map(v => v.dump()).join(', ')\n }\n },\n {\n placement: 'header',\n name: 'Cc',\n dump: (vs) => {\n return vs.map(v => v.dump()).join(', ')\n }\n },\n {\n placement: 'header',\n name: 'Bcc',\n dump: (vs) => {\n return vs.map(v => v.dump()).join(', ')\n }\n },\n {\n placement: 'header',\n name: 'Message-ID',\n disabled: false,\n generator: (ctx) => {\n const datestr = Date.now().toString()\n const randomstr = Math.random().toString(36).slice(2)\n const domain = ctx.store.filter(item => item.name == 'From')[0].value.getAddrDomain()\n return '<' + randomstr + '-' + datestr + '@' + domain + '>'\n },\n dump: (v) => {\n return v\n }\n },\n {\n placement: 'header',\n name: 'Subject',\n required: true,\n dump: (v, ctx) => {\n return '=?utf-8?B?' + ctx.toBase64(v) + '?='\n }\n },\n {\n placement: 'header',\n name: 'MIME-Version',\n generator: () => '1.0',\n dump: (v) => {\n return v\n }\n },\n {\n placement: 'content',\n name: 'Content-ID',\n dump: (v) => {\n return v\n }\n },\n {\n placement: 'content',\n name: 'Content-Type',\n dump: (v) => {\n return v\n }\n },\n {\n placement: 'content',\n name: 'Content-Transfer-Encoding',\n dump: (v) => {\n return v\n }\n },\n {\n placement: 'content',\n name: 'Content-Disposition',\n dump: (v) => {\n return v\n }\n }\n ]\n }\n\n set(name, value) {\n for (const item of this.store) {\n if (item.name.toLowerCase() == name.toLowerCase()) {\n item.value = value\n return item\n }\n }\n\n const newHeader = {\n custom: true,\n placement: this.placement,\n name: name,\n value: value,\n dump: (v) => {\n return v\n }\n }\n\n this.store.push(newHeader)\n\n return newHeader\n }\n\n get(name) {\n for (const item of this.store) {\n if (item.name.toLowerCase() == name.toLowerCase()) {\n return item.value\n }\n }\n return undefined\n }\n\n toObject() {\n return this.store.reduce((memo, item) => {\n memo[item.name] = item.value\n return memo\n }, {})\n }\n\n dump(envctx) {\n const ctx = {\n toBase64: envctx.toBase64,\n store: this.store\n }\n\n let lines = ''\n for (const item of this.store) {\n if (item.placement != this.placement) continue;\n\n const v = item.value\n ? item.value\n : !item.disabled && typeof item.generator == 'function'\n ? item.generator(ctx)\n : null\n\n if (!v && item.required) {\n throw new MIMETextError('MISSING_HEADER', `The \"${item.name}\" header is required.`)\n }\n\n if (!v) continue;\n\n lines += `${item.name}: ${item.dump(v, ctx)}\\r\\n`\n }\n\n return lines.slice(0, -2)\n }\n}\n","import MIMEMessageHeader from './MIMEMessageHeader.js'\n\nexport default class MIMEMessageContent {\n constructor(data) {\n this.data = data\n this.headers = new MIMEMessageHeader('content')\n }\n\n setHeader() {\n this.headers.set(arguments[0], arguments[1])\n return this\n }\n\n setHeaders(obj) {\n Object.keys(obj).map(prop => this.setHeader(prop, obj[prop]))\n return this\n }\n\n getHeaders() {\n return this.headers.toObject()\n }\n\n getHeader(name) {\n return this.headers.get(name)\n }\n\n isAttachment() {\n const d = this.headers.get('Content-Disposition')\n return d && d.indexOf('attachment') !== -1 ? true : false\n }\n\n dump(envctx, boundaries) {\n const headerBlock = this.headers.dump(envctx)\n\n if (this.isAttachment()) {\n return `--${boundaries.mixed}\n${headerBlock}\n\n${this.data}\n`\n }\n else {\n return `${headerBlock}\\r\\n\\r\\n${this.data}`\n }\n }\n}\n","import MIMETextError from './MIMETextError.js'\n\nexport default class Mailbox {\n constructor(input, opts={type: 'to'}) {\n this.reSpecCompliantAddr = /(([^<>\\n\\r]+)\\s)?<[^\\n\\r]+>/\n\n this.name = null\n this.addr = null\n this.type = opts.type || 'to'\n this.input = input\n this.inputType = this.findInputType(input)\n\n this.createMailbox()\n }\n\n findInputType(input) {\n if (Object.prototype.toString.call(input) === '[object Object]') {\n if (!input.addr) {\n throw new MIMETextError('INVALID_MAILBOX', `\n The input should have an \"addr\" property that specifies the email address \\\n of the recipient.\n `)\n }\n return 'OBJECT'\n }\n else if (this.reSpecCompliantAddr.test(input)) {\n return 'SPEC_COMPLIANT_TEXT'\n }\n else if (typeof input == 'string') {\n return 'TEXT'\n }\n else {\n throw new MIMETextError('INVALID_MAILBOX')\n }\n }\n\n parseSpecCompliantText(text) {\n text.trim()\n\n if (text.slice(0, 1) == '<' && text.slice(-1) == '>') {\n return {addr: text.slice(1, -1)}\n }\n\n const arr = text.split(' <')\n arr[0] = /^(\"|')/.test(arr[0]) ? arr[0].slice(1) : arr[0]\n arr[0] = /(\"|')$/.test(arr[0]) ? arr[0].slice(0, -1) : arr[0]\n arr[1] = arr[1].slice(0, -1)\n\n return {name: arr[0], addr: arr[1]}\n }\n\n createMailbox() {\n switch (this.inputType) {\n case 'OBJECT':\n this.addr = this.input.addr\n this.name = this.input.name || null\n this.type = this.input.type || this.type\n break;\n\n case 'SPEC_COMPLIANT_TEXT':\n const obj = this.parseSpecCompliantText(this.input)\n this.addr = obj.addr\n this.name = obj.name || null\n break;\n\n case 'TEXT':\n this.addr = this.input\n break;\n\n default:\n break;\n }\n }\n\n getAddrDomain() {\n if (!this.addr) {\n return ''\n }\n\n return this.addr.split('@')[1]\n }\n\n dump() {\n let result = `<${this.addr}>`\n\n if (this.name) {\n result = `\"${this.name}\" ${result}`\n }\n\n return result\n }\n\n toObject() {\n return {\n name: this.name,\n addr: this.addr,\n type: this.type\n }\n }\n}\n","import MIMEMessageHeader from './MIMEMessageHeader.js'\nimport MIMEMessageContent from './MIMEMessageContent.js'\nimport MIMETextError from './MIMETextError.js'\nimport Mailbox from './Mailbox.js'\n\nexport default class MIMEMessage {\n constructor(envctx) {\n this.envctx = envctx\n this.headers = new MIMEMessageHeader('header')\n this.messages = []\n\n this.generateBoundaries()\n }\n\n generateBoundaries() {\n this.boundaries = {\n mixed: Math.random().toString(36).slice(2),\n alt: Math.random().toString(36).slice(2)\n }\n }\n\n setSender(input) {\n const mailbox = new Mailbox(input, {type: 'from'})\n\n this.setHeader('From', mailbox)\n\n return mailbox\n }\n\n getSender() {\n return this.getHeader('From')\n }\n\n setRecipients(input, opts={type: 'to'}) {\n const recs = []\n\n if (Array.isArray(input)) {\n input.map(input => recs.push( new Mailbox(input, opts) ))\n }\n else {\n recs.push( new Mailbox(input, opts) )\n }\n\n this.setHeader(opts.type, recs)\n\n return recs\n }\n\n getRecipients(opts={type: 'to'}) {\n return this.getHeader(opts.type) || []\n }\n\n setRecipient(input) {\n return this.setRecipients(input, {type: 'to'})\n }\n\n setTo(input) {\n return this.setRecipients(input, {type: 'to'})\n }\n\n setCc(input) {\n return this.setRecipients(input, {type: 'cc'})\n }\n\n setBcc(input) {\n return this.setRecipients(input, {type: 'bcc'})\n }\n\n setSubject(value) {\n this.setHeader('subject', value)\n return value\n }\n\n getSubject() {\n return this.getHeader('subject')\n }\n\n setHeader() {\n this.headers.set(arguments[0], arguments[1])\n return arguments[0]\n }\n\n getHeader(name) {\n return this.headers.get(name)\n }\n\n setHeaders(obj) {\n Object.keys(obj).map(prop => this.setHeader(prop, obj[prop]))\n return this\n }\n\n getHeaders() {\n return this.headers.toObject()\n }\n\n setMessage(type, data, moreHeaders={}) {\n const validTypes = ['text/html', 'text/plain']\n\n if (validTypes.indexOf(type) === -1) {\n throw new MIMETextError('INVALID_MESSAGE_TYPE', `\n Invalid content type for the message. Supported content types \\\n are ${validTypes.join(', ')} but you specified \"${type}\".\n `)\n }\n\n const headers = Object.assign({}, moreHeaders, {\n 'Content-Type': `${type}; charset=UTF-8`\n })\n const msg = new MIMEMessageContent(data)\n\n msg.setHeaders(headers)\n\n this.messages.push(msg)\n\n return msg\n }\n\n setAttachment(filename, type, data, moreHeaders={}) {\n const headers = Object.assign({}, moreHeaders, {\n 'Content-Type': `${type}; charset=UTF-8`,\n 'Content-Transfer-Encoding': 'base64',\n 'Content-Disposition': `attachment;filename=\"${filename}\"`\n })\n const msg = new MIMEMessageContent(data)\n\n msg.setHeaders(headers)\n\n this.messages.push(msg)\n\n return this\n }\n\n getMessageByType(type) {\n const matches = this.messages.filter(m => m.getHeader('Content-Type').indexOf(type) !== -1)\n if (Array.isArray(matches) && matches.length > 0) {\n return matches[0]\n }\n else {\n return undefined\n }\n }\n\n getAttachments() {\n return this.messages.filter(m => m.isAttachment() === true) || []\n }\n\n asRaw() {\n let lines = this.headers.dump(this.envctx)\n\n const plainTextMessage = this.getMessageByType('text/plain')\n const htmlMessage = this.getMessageByType('text/html')\n const hasAttachments = this.getAttachments().length > 0\n const hasPlainTextAlt = plainTextMessage instanceof MIMEMessageContent && htmlMessage instanceof MIMEMessageContent\n\n if (hasAttachments && hasPlainTextAlt) {\n return this.asRawMixedAlt(lines)\n }\n else if (hasAttachments) {\n return this.asRawMixed(lines)\n }\n else if (hasPlainTextAlt) {\n return this.asRawAlt(lines)\n }\n else {\n return this.asRawMessage(lines)\n }\n }\n\n asEncoded() {\n return this.envctx.toBase64WebSafe( this.asRaw() )\n }\n\n asRawMessage(lines) {\n const plainTextMessage = this.getMessageByType('text/plain')\n const htmlMessage = this.getMessageByType('text/html')\n const message = htmlMessage || plainTextMessage\n\n lines = `${lines}\n${message.dump(this.envctx, this.boundaries)}`\n\n return lines\n }\n\n asRawAlt(lines) {\n const plainTextMessage = this.getMessageByType('text/plain')\n const htmlMessage = this.getMessageByType('text/html')\n\n lines = `${lines}\nContent-Type: multipart/alternative; boundary=${this.boundaries.alt}\n\n--${this.boundaries.alt}\n${plainTextMessage.dump(this.envctx, this.boundaries)}\n\n--${this.boundaries.alt}\n${htmlMessage.dump(this.envctx, this.boundaries)}\n\n--${this.boundaries.alt}--`\n\n return lines\n }\n\n asRawMixed(lines) {\n const plainTextMessage = this.getMessageByType('text/plain')\n const htmlMessage = this.getMessageByType('text/html')\n const message = htmlMessage || plainTextMessage\n const attachments = this.getAttachments()\n .map(a => a.dump(this.envctx, this.boundaries))\n .join('')\n .replace(/[\\r\\n]$/g, '')\n\n lines = `${lines}\nContent-Type: multipart/mixed; boundary=${this.boundaries.mixed}\n\n--${this.boundaries.mixed}\n${message.dump(this.envctx, this.boundaries)}\n\n${attachments}\n\n--${this.boundaries.mixed}--`\n\n return lines\n }\n\n asRawMixedAlt(lines) {\n const plainTextMessage = this.getMessageByType('text/plain')\n const htmlMessage = this.getMessageByType('text/html')\n const attachments = this.getAttachments()\n .map(a => a.dump(this.envctx, this.boundaries))\n .join('')\n .replace(/[\\r\\n]$/g, '')\n\n lines = `${lines}\nContent-Type: multipart/mixed; boundary=${this.boundaries.mixed}\n\n--${this.boundaries.mixed}\nContent-Type: multipart/alternative; boundary=${this.boundaries.alt}\n\n--${this.boundaries.alt}\n${plainTextMessage.dump(this.envctx, this.boundaries)}\n\n--${this.boundaries.alt}\n${htmlMessage.dump(this.envctx, this.boundaries)}\n\n--${this.boundaries.alt}--\n${attachments}\n\n--${this.boundaries.mixed}--`\n\n return lines\n }\n\n toBase64(v) {\n return this.envctx.toBase64(v)\n }\n}\n","import MIMEMessage from '../MIMEMessage.js'\n\nconst envctx = {\n toBase64: function toBase64(data) {\n return btoa(data)\n },\n toBase64WebSafe: function toBase64WebSafe(data) {\n return btoa(data)\n .replace(/\\+/g, '-')\n .replace(/\\//g, '_')\n .replace(/=+$/, '')\n }\n}\n\nclass NodeMIMEMessage extends MIMEMessage {\n constructor() {\n super(envctx)\n }\n}\n\nexport function createMimeMessage() {\n return new NodeMIMEMessage()\n}\n"],"names":["MIMETextError","message","description","_trimInstanceProperty","replace","name","Error","MIMEMessageHeader","placement","store","value","generator","Date","toGMTString","disabled","dump","v","required","vs","_mapInstanceProperty","join","ctx","datestr","now","toString","randomstr","_sliceInstanceProperty","Math","random","domain","_filterInstanceProperty","item","getAddrDomain","toBase64","toLowerCase","newHeader","custom","push","undefined","_reduceInstanceProperty","memo","envctx","lines","MIMEMessageContent","data","headers","set","arguments","obj","prop","setHeader","toObject","get","d","_indexOfInstanceProperty","boundaries","headerBlock","isAttachment","mixed","Mailbox","input","opts","type","reSpecCompliantAddr","addr","inputType","findInputType","createMailbox","Object","prototype","call","test","text","arr","split","parseSpecCompliantText","result","MIMEMessage","messages","generateBoundaries","alt","mailbox","getHeader","recs","Array","isArray","setRecipients","moreHeaders","validTypes","_Object$assign","msg","setHeaders","filename","matches","m","length","plainTextMessage","getMessageByType","htmlMessage","hasAttachments","getAttachments","hasPlainTextAlt","asRawMixedAlt","asRawMixed","asRawAlt","asRawMessage","toBase64WebSafe","asRaw","attachments","a","btoa","NodeMIMEMessage","createMimeMessage"],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"index.js","sources":["../../../src/MIMETextError.js","../../../src/MIMEMessageHeader.js","../../../src/MIMEMessageContent.js","../../../src/Mailbox.js","../../../src/MIMEMessage.js","../../../src/entrypoints/browser.js"],"sourcesContent":["export default class MIMETextError extends Error {\n constructor(message, description) {\n super(message)\n this.description = description ? description.trim().replace(/[\\s]{2,}/, ' ') : null\n this.name = 'MIMETextError'\n }\n}\n","import MIMETextError from './MIMETextError.js'\n\n/*\n* Headers are based on: https://www.rfc-editor.org/rfc/rfc4021#section-2.1\n* (Some are ignored as they can be added later or as a custom header.)\n*/\n\nexport default class MIMEMessageHeader {\n constructor(placement) {\n this.placement = placement\n this.store = [\n {\n placement: 'header',\n name: 'Date',\n // value property is what user sets for this header\n value: null,\n // the generator function generates a value for this header unless\n // user specified a value or user disabled this property\n generator: () => (new Date().toGMTString()).replace(/GMT|UTC/gi, '+0000'),\n disabled: false,\n dump: (v) => {\n return v\n }\n },\n {\n placement: 'header',\n name: 'From',\n // required property indicates that this property must be set\n required: true,\n dump: (v) => {\n return v.dump()\n }\n },\n {\n placement: 'header',\n name: 'Sender',\n dump: (v) => {\n return v.dump()\n }\n },\n {\n placement: 'header',\n name: 'Reply-To',\n dump: (v) => {\n return v\n }\n },\n {\n placement: 'header',\n name: 'To',\n required: true,\n dump: (vs) => {\n return vs.map(v => v.dump()).join(', ')\n }\n },\n {\n placement: 'header',\n name: 'Cc',\n dump: (vs) => {\n return vs.map(v => v.dump()).join(', ')\n }\n },\n {\n placement: 'header',\n name: 'Bcc',\n dump: (vs) => {\n return vs.map(v => v.dump()).join(', ')\n }\n },\n {\n placement: 'header',\n name: 'Message-ID',\n disabled: false,\n generator: (ctx) => {\n const datestr = Date.now().toString()\n const randomstr = Math.random().toString(36).slice(2)\n const domain = ctx.store.filter(item => item.name == 'From')[0].value.getAddrDomain()\n return '<' + randomstr + '-' + datestr + '@' + domain + '>'\n },\n dump: (v) => {\n return v\n }\n },\n {\n placement: 'header',\n name: 'Subject',\n required: true,\n dump: (v, ctx) => {\n return '=?utf-8?B?' + ctx.toBase64(v) + '?='\n }\n },\n {\n placement: 'header',\n name: 'MIME-Version',\n generator: () => '1.0',\n dump: (v) => {\n return v\n }\n },\n {\n placement: 'content',\n name: 'Content-ID',\n dump: (v) => {\n return v\n }\n },\n {\n placement: 'content',\n name: 'Content-Type',\n dump: (v) => {\n return v\n }\n },\n {\n placement: 'content',\n name: 'Content-Transfer-Encoding',\n dump: (v) => {\n return v\n }\n },\n {\n placement: 'content',\n name: 'Content-Disposition',\n dump: (v) => {\n return v\n }\n }\n ]\n }\n\n set(name, value) {\n for (const item of this.store) {\n if (item.name.toLowerCase() == name.toLowerCase()) {\n item.value = value\n return item\n }\n }\n\n const newHeader = {\n custom: true,\n placement: this.placement,\n name: name,\n value: value,\n dump: (v) => {\n return v\n }\n }\n\n this.store.push(newHeader)\n\n return newHeader\n }\n\n get(name) {\n for (const item of this.store) {\n if (item.name.toLowerCase() == name.toLowerCase()) {\n return item.value\n }\n }\n return undefined\n }\n\n toObject() {\n return this.store.reduce((memo, item) => {\n memo[item.name] = item.value\n return memo\n }, {})\n }\n\n dump(envctx) {\n const ctx = {\n toBase64: envctx.toBase64,\n store: this.store\n }\n\n let lines = ''\n for (const item of this.store) {\n if (item.placement != this.placement) continue;\n\n const v = item.value\n ? item.value\n : !item.disabled && typeof item.generator == 'function'\n ? item.generator(ctx)\n : null\n\n if (!v && item.required) {\n throw new MIMETextError('MISSING_HEADER', `The \"${item.name}\" header is required.`)\n }\n\n if (!v) continue;\n\n lines += `${item.name}: ${item.dump(v, ctx)}\\r\\n`\n }\n\n return lines.slice(0, -2)\n }\n}\n","import MIMEMessageHeader from './MIMEMessageHeader.js'\n\nexport default class MIMEMessageContent {\n constructor(data) {\n this.data = data\n this.headers = new MIMEMessageHeader('content')\n }\n\n setHeader() {\n this.headers.set(arguments[0], arguments[1])\n return this\n }\n\n setHeaders(obj) {\n Object.keys(obj).map(prop => this.setHeader(prop, obj[prop]))\n return this\n }\n\n getHeaders() {\n return this.headers.toObject()\n }\n\n getHeader(name) {\n return this.headers.get(name)\n }\n\n isAttachment() {\n const d = this.headers.get('Content-Disposition')\n return d && d.indexOf('attachment') !== -1 ? true : false\n }\n\n dump(envctx, boundaries) {\n const headerBlock = this.headers.dump(envctx)\n\n if (this.isAttachment()) {\n return `--${boundaries.mixed}\n${headerBlock}\n\n${this.data}\n`\n }\n else {\n return `${headerBlock}\\r\\n\\r\\n${this.data}`\n }\n }\n}\n","import MIMETextError from './MIMETextError.js'\n\nexport default class Mailbox {\n constructor(input, opts={type: 'to'}) {\n this.reSpecCompliantAddr = /(([^<>\\n\\r]+)\\s)?<[^\\n\\r]+>/\n\n this.name = null\n this.addr = null\n this.type = opts.type || 'to'\n this.input = input\n this.inputType = this.findInputType(input)\n\n this.createMailbox()\n }\n\n findInputType(input) {\n if (Object.prototype.toString.call(input) === '[object Object]') {\n if (!input.addr) {\n throw new MIMETextError('INVALID_MAILBOX', `\n The input should have an \"addr\" property that specifies the email address \\\n of the recipient.\n `)\n }\n return 'OBJECT'\n }\n else if (this.reSpecCompliantAddr.test(input)) {\n return 'SPEC_COMPLIANT_TEXT'\n }\n else if (typeof input == 'string') {\n return 'TEXT'\n }\n else {\n throw new MIMETextError('INVALID_MAILBOX')\n }\n }\n\n parseSpecCompliantText(text) {\n text.trim()\n\n if (text.slice(0, 1) == '<' && text.slice(-1) == '>') {\n return {addr: text.slice(1, -1)}\n }\n\n const arr = text.split(' <')\n arr[0] = /^(\"|')/.test(arr[0]) ? arr[0].slice(1) : arr[0]\n arr[0] = /(\"|')$/.test(arr[0]) ? arr[0].slice(0, -1) : arr[0]\n arr[1] = arr[1].slice(0, -1)\n\n return {name: arr[0], addr: arr[1]}\n }\n\n createMailbox() {\n switch (this.inputType) {\n case 'OBJECT':\n this.addr = this.input.addr\n this.name = this.input.name || null\n this.type = this.input.type || this.type\n break;\n\n case 'SPEC_COMPLIANT_TEXT':\n const obj = this.parseSpecCompliantText(this.input)\n this.addr = obj.addr\n this.name = obj.name || null\n break;\n\n case 'TEXT':\n this.addr = this.input\n break;\n\n default:\n break;\n }\n }\n\n getAddrDomain() {\n if (!this.addr) {\n return ''\n }\n\n return this.addr.split('@')[1]\n }\n\n dump() {\n let result = `<${this.addr}>`\n\n if (this.name) {\n result = `\"${this.name}\" ${result}`\n }\n\n return result\n }\n\n toObject() {\n return {\n name: this.name,\n addr: this.addr,\n type: this.type\n }\n }\n}\n","import MIMEMessageHeader from './MIMEMessageHeader.js'\nimport MIMEMessageContent from './MIMEMessageContent.js'\nimport MIMETextError from './MIMETextError.js'\nimport Mailbox from './Mailbox.js'\n\nexport default class MIMEMessage {\n constructor(envctx) {\n this.envctx = envctx\n this.headers = new MIMEMessageHeader('header')\n this.messages = []\n\n this.generateBoundaries()\n }\n\n generateBoundaries() {\n this.boundaries = {\n mixed: Math.random().toString(36).slice(2),\n alt: Math.random().toString(36).slice(2)\n }\n }\n\n setSender(input) {\n const mailbox = new Mailbox(input, {type: 'from'})\n\n this.setHeader('From', mailbox)\n\n return mailbox\n }\n\n getSender() {\n return this.getHeader('From')\n }\n\n setRecipients(input, opts={type: 'to'}) {\n const recs = []\n\n if (Array.isArray(input)) {\n input.map(input => recs.push( new Mailbox(input, opts) ))\n }\n else {\n recs.push( new Mailbox(input, opts) )\n }\n\n this.setHeader(opts.type, recs)\n\n return recs\n }\n\n getRecipients(opts={type: 'to'}) {\n return this.getHeader(opts.type) || []\n }\n\n setRecipient(input) {\n return this.setRecipients(input, {type: 'to'})\n }\n\n setTo(input) {\n return this.setRecipients(input, {type: 'to'})\n }\n\n setCc(input) {\n return this.setRecipients(input, {type: 'cc'})\n }\n\n setBcc(input) {\n return this.setRecipients(input, {type: 'bcc'})\n }\n\n setSubject(value) {\n this.setHeader('subject', value)\n return value\n }\n\n getSubject() {\n return this.getHeader('subject')\n }\n\n setHeader() {\n this.headers.set(arguments[0], arguments[1])\n return arguments[0]\n }\n\n getHeader(name) {\n return this.headers.get(name)\n }\n\n setHeaders(obj) {\n Object.keys(obj).map(prop => this.setHeader(prop, obj[prop]))\n return this\n }\n\n getHeaders() {\n return this.headers.toObject()\n }\n\n setMessage(type, data, moreHeaders={}) {\n const validTypes = ['text/html', 'text/plain', 'text/x-amp-html']\n\n if (validTypes.indexOf(type) === -1) {\n throw new MIMETextError('INVALID_MESSAGE_TYPE', `\n Invalid content type for the message. Supported content types \\\n are ${validTypes.join(', ')} but you specified \"${type}\".\n `)\n }\n\n const headers = Object.assign({}, moreHeaders, {\n 'Content-Type': `${type}; charset=UTF-8`\n })\n const msg = new MIMEMessageContent(data)\n\n msg.setHeaders(headers)\n\n this.messages.push(msg)\n\n return msg\n }\n\n setAttachment(filename, type, data, moreHeaders={}) {\n const headers = Object.assign({}, moreHeaders, {\n 'Content-Type': `${type}; charset=UTF-8`,\n 'Content-Transfer-Encoding': 'base64',\n 'Content-Disposition': `attachment;filename=\"${filename}\"`\n })\n const msg = new MIMEMessageContent(data)\n\n msg.setHeaders(headers)\n\n this.messages.push(msg)\n\n return this\n }\n\n getMessageByType(type) {\n const matches = this.messages.filter(m => m.getHeader('Content-Type').indexOf(type) !== -1)\n if (Array.isArray(matches) && matches.length > 0) {\n return matches[0]\n }\n else {\n return undefined\n }\n }\n\n getAttachments() {\n return this.messages.filter(m => m.isAttachment() === true) || []\n }\n\n asRaw() {\n let lines = this.headers.dump(this.envctx)\n\n const plainTextMessage = this.getMessageByType('text/plain')\n const htmlMessage = this.getMessageByType('text/html')\n const ampMessage = this.getMessageByType('text/x-amp-html')\n const hasAttachments = this.getAttachments().length > 0\n const hasPlainTextAlt = plainTextMessage instanceof MIMEMessageContent && htmlMessage instanceof MIMEMessageContent\n const hasAmpAlt = plainTextMessage instanceof MIMEMessageContent && htmlMessage instanceof MIMEMessageContent && ampMessage instanceof MIMEMessageContent\n\n if (hasAttachments && hasPlainTextAlt) {\n return this.asRawMixedAlt(lines)\n }\n else if (hasAttachments) {\n return this.asRawMixed(lines)\n }\n else if(hasAmpAlt) {\n return this.asRawAmp(lines)\n }\n else if (hasPlainTextAlt) {\n return this.asRawAlt(lines)\n }\n else {\n return this.asRawMessage(lines)\n }\n }\n\n asEncoded() {\n return this.envctx.toBase64WebSafe( this.asRaw() )\n }\n\n asRawMessage(lines) {\n const plainTextMessage = this.getMessageByType('text/plain')\n const htmlMessage = this.getMessageByType('text/html')\n const message = htmlMessage || plainTextMessage\n\n lines = `${lines}\n${message.dump(this.envctx, this.boundaries)}`\n\n return lines\n }\n\n asRawAlt(lines) {\n const plainTextMessage = this.getMessageByType('text/plain')\n const htmlMessage = this.getMessageByType('text/html')\n\n lines = `${lines}\nContent-Type: multipart/alternative; boundary=${this.boundaries.alt}\n\n--${this.boundaries.alt}\n${plainTextMessage.dump(this.envctx, this.boundaries)}\n\n--${this.boundaries.alt}\n${htmlMessage.dump(this.envctx, this.boundaries)}\n\n--${this.boundaries.alt}--`\n\n return lines\n }\n\n asRawAmp(lines) {\n const plainTextMessage = this.getMessageByType('text/plain')\n const htmlMessage = this.getMessageByType('text/html')\n const ampMessage = this.getMessageByType('text/x-amp-html')\n\n lines = `${lines}\nContent-Type: multipart/alternative; boundary=${this.boundaries.alt}\n\n--${this.boundaries.alt}\n${plainTextMessage.dump(this.envctx, this.boundaries)}\n\n--${this.boundaries.alt}\n${ampMessage.dump(this.envctx, this.boundaries)}\n\n--${this.boundaries.alt}\n${htmlMessage.dump(this.envctx, this.boundaries)}\n\n--${this.boundaries.alt}--`\n\n return lines\n }\n\n asRawMixed(lines) {\n const plainTextMessage = this.getMessageByType('text/plain')\n const htmlMessage = this.getMessageByType('text/html')\n const message = htmlMessage || plainTextMessage\n const attachments = this.getAttachments()\n .map(a => a.dump(this.envctx, this.boundaries))\n .join('')\n .replace(/[\\r\\n]$/g, '')\n\n lines = `${lines}\nContent-Type: multipart/mixed; boundary=${this.boundaries.mixed}\n\n--${this.boundaries.mixed}\n${message.dump(this.envctx, this.boundaries)}\n\n${attachments}\n\n--${this.boundaries.mixed}--`\n\n return lines\n }\n\n asRawMixedAlt(lines) {\n const plainTextMessage = this.getMessageByType('text/plain')\n const htmlMessage = this.getMessageByType('text/html')\n const attachments = this.getAttachments()\n .map(a => a.dump(this.envctx, this.boundaries))\n .join('')\n .replace(/[\\r\\n]$/g, '')\n\n lines = `${lines}\nContent-Type: multipart/mixed; boundary=${this.boundaries.mixed}\n\n--${this.boundaries.mixed}\nContent-Type: multipart/alternative; boundary=${this.boundaries.alt}\n\n--${this.boundaries.alt}\n${plainTextMessage.dump(this.envctx, this.boundaries)}\n\n--${this.boundaries.alt}\n${htmlMessage.dump(this.envctx, this.boundaries)}\n\n--${this.boundaries.alt}--\n${attachments}\n\n--${this.boundaries.mixed}--`\n\n return lines\n }\n\n toBase64(v) {\n return this.envctx.toBase64(v)\n }\n}\n","import MIMEMessage from '../MIMEMessage.js'\n\nconst envctx = {\n toBase64: function toBase64(data) {\n return btoa(data)\n },\n toBase64WebSafe: function toBase64WebSafe(data) {\n return btoa(data)\n .replace(/\\+/g, '-')\n .replace(/\\//g, '_')\n .replace(/=+$/, '')\n }\n}\n\nclass NodeMIMEMessage extends MIMEMessage {\n constructor() {\n super(envctx)\n }\n}\n\nexport function createMimeMessage() {\n return new NodeMIMEMessage()\n}\n"],"names":["MIMETextError","message","description","_trimInstanceProperty","replace","name","Error","MIMEMessageHeader","placement","store","value","generator","Date","toGMTString","disabled","dump","v","required","vs","_mapInstanceProperty","join","ctx","datestr","now","toString","randomstr","_sliceInstanceProperty","Math","random","domain","_filterInstanceProperty","item","getAddrDomain","toBase64","toLowerCase","newHeader","custom","push","undefined","_reduceInstanceProperty","memo","envctx","lines","MIMEMessageContent","data","headers","set","arguments","obj","prop","setHeader","toObject","get","d","_indexOfInstanceProperty","boundaries","headerBlock","isAttachment","mixed","Mailbox","input","opts","type","reSpecCompliantAddr","addr","inputType","findInputType","createMailbox","Object","prototype","call","test","text","arr","split","parseSpecCompliantText","result","MIMEMessage","messages","generateBoundaries","alt","mailbox","getHeader","recs","Array","isArray","setRecipients","moreHeaders","validTypes","_Object$assign","msg","setHeaders","filename","matches","m","length","plainTextMessage","getMessageByType","htmlMessage","ampMessage","hasAttachments","getAttachments","hasPlainTextAlt","hasAmpAlt","asRawMixedAlt","asRawMixed","asRawAmp","asRawAlt","asRawMessage","toBase64WebSafe","asRaw","attachments","a","btoa","NodeMIMEMessage","createMimeMessage"],"mappings":"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"} \ No newline at end of file diff --git a/dist/browser/es/index.js b/dist/browser/es/index.js index 6a0d3cf..1893df9 100644 --- a/dist/browser/es/index.js +++ b/dist/browser/es/index.js @@ -590,7 +590,7 @@ var MIMEMessage = /*#__PURE__*/function () { key: "setMessage", value: function setMessage(type, data) { var moreHeaders = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {}; - var validTypes = ['text/html', 'text/plain']; + var validTypes = ['text/html', 'text/plain', 'text/x-amp-html']; if (_indexOfInstanceProperty(validTypes).call(validTypes, type) === -1) { var _context4; @@ -655,13 +655,17 @@ var MIMEMessage = /*#__PURE__*/function () { var lines = this.headers.dump(this.envctx); var plainTextMessage = this.getMessageByType('text/plain'); var htmlMessage = this.getMessageByType('text/html'); + var ampMessage = this.getMessageByType('text/x-amp-html'); var hasAttachments = this.getAttachments().length > 0; var hasPlainTextAlt = plainTextMessage instanceof MIMEMessageContent && htmlMessage instanceof MIMEMessageContent; + var hasAmpAlt = plainTextMessage instanceof MIMEMessageContent && htmlMessage instanceof MIMEMessageContent && ampMessage instanceof MIMEMessageContent; if (hasAttachments && hasPlainTextAlt) { return this.asRawMixedAlt(lines); } else if (hasAttachments) { return this.asRawMixed(lines); + } else if (hasAmpAlt) { + return this.asRawAmp(lines); } else if (hasPlainTextAlt) { return this.asRawAlt(lines); } else { @@ -694,52 +698,63 @@ var MIMEMessage = /*#__PURE__*/function () { lines = _concatInstanceProperty(_context9 = _concatInstanceProperty(_context10 = _concatInstanceProperty(_context11 = _concatInstanceProperty(_context12 = _concatInstanceProperty(_context13 = _concatInstanceProperty(_context14 = "".concat(lines, "\nContent-Type: multipart/alternative; boundary=")).call(_context14, this.boundaries.alt, "\n\n--")).call(_context13, this.boundaries.alt, "\n")).call(_context12, plainTextMessage.dump(this.envctx, this.boundaries), "\n\n--")).call(_context11, this.boundaries.alt, "\n")).call(_context10, htmlMessage.dump(this.envctx, this.boundaries), "\n\n--")).call(_context9, this.boundaries.alt, "--"); return lines; } + }, { + key: "asRawAmp", + value: function asRawAmp(lines) { + var _context15, _context16, _context17, _context18, _context19, _context20, _context21, _context22; + + var plainTextMessage = this.getMessageByType('text/plain'); + var htmlMessage = this.getMessageByType('text/html'); + var ampMessage = this.getMessageByType('text/x-amp-html'); + lines = _concatInstanceProperty(_context15 = _concatInstanceProperty(_context16 = _concatInstanceProperty(_context17 = _concatInstanceProperty(_context18 = _concatInstanceProperty(_context19 = _concatInstanceProperty(_context20 = _concatInstanceProperty(_context21 = _concatInstanceProperty(_context22 = "".concat(lines, "\nContent-Type: multipart/alternative; boundary=")).call(_context22, this.boundaries.alt, "\n\n--")).call(_context21, this.boundaries.alt, "\n")).call(_context20, plainTextMessage.dump(this.envctx, this.boundaries), "\n\n--")).call(_context19, this.boundaries.alt, "\n")).call(_context18, ampMessage.dump(this.envctx, this.boundaries), "\n\n--")).call(_context17, this.boundaries.alt, "\n")).call(_context16, htmlMessage.dump(this.envctx, this.boundaries), "\n\n--")).call(_context15, this.boundaries.alt, "--"); + return lines; + } }, { key: "asRawMixed", value: function asRawMixed(lines) { - var _context15, + var _context23, _this2 = this, - _context16, - _context17, - _context18, - _context19, - _context20; + _context24, + _context25, + _context26, + _context27, + _context28; var plainTextMessage = this.getMessageByType('text/plain'); var htmlMessage = this.getMessageByType('text/html'); var message = htmlMessage || plainTextMessage; - var attachments = _mapInstanceProperty(_context15 = this.getAttachments()).call(_context15, function (a) { + var attachments = _mapInstanceProperty(_context23 = this.getAttachments()).call(_context23, function (a) { return a.dump(_this2.envctx, _this2.boundaries); }).join('').replace(/[\r\n]$/g, ''); - lines = _concatInstanceProperty(_context16 = _concatInstanceProperty(_context17 = _concatInstanceProperty(_context18 = _concatInstanceProperty(_context19 = _concatInstanceProperty(_context20 = "".concat(lines, "\nContent-Type: multipart/mixed; boundary=")).call(_context20, this.boundaries.mixed, "\n\n--")).call(_context19, this.boundaries.mixed, "\n")).call(_context18, message.dump(this.envctx, this.boundaries), "\n\n")).call(_context17, attachments, "\n\n--")).call(_context16, this.boundaries.mixed, "--"); + lines = _concatInstanceProperty(_context24 = _concatInstanceProperty(_context25 = _concatInstanceProperty(_context26 = _concatInstanceProperty(_context27 = _concatInstanceProperty(_context28 = "".concat(lines, "\nContent-Type: multipart/mixed; boundary=")).call(_context28, this.boundaries.mixed, "\n\n--")).call(_context27, this.boundaries.mixed, "\n")).call(_context26, message.dump(this.envctx, this.boundaries), "\n\n")).call(_context25, attachments, "\n\n--")).call(_context24, this.boundaries.mixed, "--"); return lines; } }, { key: "asRawMixedAlt", value: function asRawMixedAlt(lines) { - var _context21, + var _context29, _this3 = this, - _context22, - _context23, - _context24, - _context25, - _context26, - _context27, - _context28, - _context29, _context30, - _context31; + _context31, + _context32, + _context33, + _context34, + _context35, + _context36, + _context37, + _context38, + _context39; var plainTextMessage = this.getMessageByType('text/plain'); var htmlMessage = this.getMessageByType('text/html'); - var attachments = _mapInstanceProperty(_context21 = this.getAttachments()).call(_context21, function (a) { + var attachments = _mapInstanceProperty(_context29 = this.getAttachments()).call(_context29, function (a) { return a.dump(_this3.envctx, _this3.boundaries); }).join('').replace(/[\r\n]$/g, ''); - lines = _concatInstanceProperty(_context22 = _concatInstanceProperty(_context23 = _concatInstanceProperty(_context24 = _concatInstanceProperty(_context25 = _concatInstanceProperty(_context26 = _concatInstanceProperty(_context27 = _concatInstanceProperty(_context28 = _concatInstanceProperty(_context29 = _concatInstanceProperty(_context30 = _concatInstanceProperty(_context31 = "".concat(lines, "\nContent-Type: multipart/mixed; boundary=")).call(_context31, this.boundaries.mixed, "\n\n--")).call(_context30, this.boundaries.mixed, "\nContent-Type: multipart/alternative; boundary=")).call(_context29, this.boundaries.alt, "\n\n--")).call(_context28, this.boundaries.alt, "\n")).call(_context27, plainTextMessage.dump(this.envctx, this.boundaries), "\n\n--")).call(_context26, this.boundaries.alt, "\n")).call(_context25, htmlMessage.dump(this.envctx, this.boundaries), "\n\n--")).call(_context24, this.boundaries.alt, "--\n")).call(_context23, attachments, "\n\n--")).call(_context22, this.boundaries.mixed, "--"); + lines = _concatInstanceProperty(_context30 = _concatInstanceProperty(_context31 = _concatInstanceProperty(_context32 = _concatInstanceProperty(_context33 = _concatInstanceProperty(_context34 = _concatInstanceProperty(_context35 = _concatInstanceProperty(_context36 = _concatInstanceProperty(_context37 = _concatInstanceProperty(_context38 = _concatInstanceProperty(_context39 = "".concat(lines, "\nContent-Type: multipart/mixed; boundary=")).call(_context39, this.boundaries.mixed, "\n\n--")).call(_context38, this.boundaries.mixed, "\nContent-Type: multipart/alternative; boundary=")).call(_context37, this.boundaries.alt, "\n\n--")).call(_context36, this.boundaries.alt, "\n")).call(_context35, plainTextMessage.dump(this.envctx, this.boundaries), "\n\n--")).call(_context34, this.boundaries.alt, "\n")).call(_context33, htmlMessage.dump(this.envctx, this.boundaries), "\n\n--")).call(_context32, this.boundaries.alt, "--\n")).call(_context31, attachments, "\n\n--")).call(_context30, this.boundaries.mixed, "--"); return lines; } }, { diff --git a/dist/browser/es/index.js.map b/dist/browser/es/index.js.map index 25d49e9..5d16e35 100644 --- a/dist/browser/es/index.js.map +++ b/dist/browser/es/index.js.map @@ -1 +1 @@ -{"version":3,"file":"index.js","sources":["../../../src/MIMETextError.js","../../../src/MIMEMessageHeader.js","../../../src/MIMEMessageContent.js","../../../src/Mailbox.js","../../../src/MIMEMessage.js","../../../src/entrypoints/browser.js"],"sourcesContent":["export default class MIMETextError extends Error {\n constructor(message, description) {\n super(message)\n this.description = description ? description.trim().replace(/[\\s]{2,}/, ' ') : null\n this.name = 'MIMETextError'\n }\n}\n","import MIMETextError from './MIMETextError.js'\n\n/*\n* Headers are based on: https://www.rfc-editor.org/rfc/rfc4021#section-2.1\n* (Some are ignored as they can be added later or as a custom header.)\n*/\n\nexport default class MIMEMessageHeader {\n constructor(placement) {\n this.placement = placement\n this.store = [\n {\n placement: 'header',\n name: 'Date',\n // value property is what user sets for this header\n value: null,\n // the generator function generates a value for this header unless\n // user specified a value or user disabled this property\n generator: () => (new Date().toGMTString()).replace(/GMT|UTC/gi, '+0000'),\n disabled: false,\n dump: (v) => {\n return v\n }\n },\n {\n placement: 'header',\n name: 'From',\n // required property indicates that this property must be set\n required: true,\n dump: (v) => {\n return v.dump()\n }\n },\n {\n placement: 'header',\n name: 'Sender',\n dump: (v) => {\n return v.dump()\n }\n },\n {\n placement: 'header',\n name: 'Reply-To',\n dump: (v) => {\n return v\n }\n },\n {\n placement: 'header',\n name: 'To',\n required: true,\n dump: (vs) => {\n return vs.map(v => v.dump()).join(', ')\n }\n },\n {\n placement: 'header',\n name: 'Cc',\n dump: (vs) => {\n return vs.map(v => v.dump()).join(', ')\n }\n },\n {\n placement: 'header',\n name: 'Bcc',\n dump: (vs) => {\n return vs.map(v => v.dump()).join(', ')\n }\n },\n {\n placement: 'header',\n name: 'Message-ID',\n disabled: false,\n generator: (ctx) => {\n const datestr = Date.now().toString()\n const randomstr = Math.random().toString(36).slice(2)\n const domain = ctx.store.filter(item => item.name == 'From')[0].value.getAddrDomain()\n return '<' + randomstr + '-' + datestr + '@' + domain + '>'\n },\n dump: (v) => {\n return v\n }\n },\n {\n placement: 'header',\n name: 'Subject',\n required: true,\n dump: (v, ctx) => {\n return '=?utf-8?B?' + ctx.toBase64(v) + '?='\n }\n },\n {\n placement: 'header',\n name: 'MIME-Version',\n generator: () => '1.0',\n dump: (v) => {\n return v\n }\n },\n {\n placement: 'content',\n name: 'Content-ID',\n dump: (v) => {\n return v\n }\n },\n {\n placement: 'content',\n name: 'Content-Type',\n dump: (v) => {\n return v\n }\n },\n {\n placement: 'content',\n name: 'Content-Transfer-Encoding',\n dump: (v) => {\n return v\n }\n },\n {\n placement: 'content',\n name: 'Content-Disposition',\n dump: (v) => {\n return v\n }\n }\n ]\n }\n\n set(name, value) {\n for (const item of this.store) {\n if (item.name.toLowerCase() == name.toLowerCase()) {\n item.value = value\n return item\n }\n }\n\n const newHeader = {\n custom: true,\n placement: this.placement,\n name: name,\n value: value,\n dump: (v) => {\n return v\n }\n }\n\n this.store.push(newHeader)\n\n return newHeader\n }\n\n get(name) {\n for (const item of this.store) {\n if (item.name.toLowerCase() == name.toLowerCase()) {\n return item.value\n }\n }\n return undefined\n }\n\n toObject() {\n return this.store.reduce((memo, item) => {\n memo[item.name] = item.value\n return memo\n }, {})\n }\n\n dump(envctx) {\n const ctx = {\n toBase64: envctx.toBase64,\n store: this.store\n }\n\n let lines = ''\n for (const item of this.store) {\n if (item.placement != this.placement) continue;\n\n const v = item.value\n ? item.value\n : !item.disabled && typeof item.generator == 'function'\n ? item.generator(ctx)\n : null\n\n if (!v && item.required) {\n throw new MIMETextError('MISSING_HEADER', `The \"${item.name}\" header is required.`)\n }\n\n if (!v) continue;\n\n lines += `${item.name}: ${item.dump(v, ctx)}\\r\\n`\n }\n\n return lines.slice(0, -2)\n }\n}\n","import MIMEMessageHeader from './MIMEMessageHeader.js'\n\nexport default class MIMEMessageContent {\n constructor(data) {\n this.data = data\n this.headers = new MIMEMessageHeader('content')\n }\n\n setHeader() {\n this.headers.set(arguments[0], arguments[1])\n return this\n }\n\n setHeaders(obj) {\n Object.keys(obj).map(prop => this.setHeader(prop, obj[prop]))\n return this\n }\n\n getHeaders() {\n return this.headers.toObject()\n }\n\n getHeader(name) {\n return this.headers.get(name)\n }\n\n isAttachment() {\n const d = this.headers.get('Content-Disposition')\n return d && d.indexOf('attachment') !== -1 ? true : false\n }\n\n dump(envctx, boundaries) {\n const headerBlock = this.headers.dump(envctx)\n\n if (this.isAttachment()) {\n return `--${boundaries.mixed}\n${headerBlock}\n\n${this.data}\n`\n }\n else {\n return `${headerBlock}\\r\\n\\r\\n${this.data}`\n }\n }\n}\n","import MIMETextError from './MIMETextError.js'\n\nexport default class Mailbox {\n constructor(input, opts={type: 'to'}) {\n this.reSpecCompliantAddr = /(([^<>\\n\\r]+)\\s)?<[^\\n\\r]+>/\n\n this.name = null\n this.addr = null\n this.type = opts.type || 'to'\n this.input = input\n this.inputType = this.findInputType(input)\n\n this.createMailbox()\n }\n\n findInputType(input) {\n if (Object.prototype.toString.call(input) === '[object Object]') {\n if (!input.addr) {\n throw new MIMETextError('INVALID_MAILBOX', `\n The input should have an \"addr\" property that specifies the email address \\\n of the recipient.\n `)\n }\n return 'OBJECT'\n }\n else if (this.reSpecCompliantAddr.test(input)) {\n return 'SPEC_COMPLIANT_TEXT'\n }\n else if (typeof input == 'string') {\n return 'TEXT'\n }\n else {\n throw new MIMETextError('INVALID_MAILBOX')\n }\n }\n\n parseSpecCompliantText(text) {\n text.trim()\n\n if (text.slice(0, 1) == '<' && text.slice(-1) == '>') {\n return {addr: text.slice(1, -1)}\n }\n\n const arr = text.split(' <')\n arr[0] = /^(\"|')/.test(arr[0]) ? arr[0].slice(1) : arr[0]\n arr[0] = /(\"|')$/.test(arr[0]) ? arr[0].slice(0, -1) : arr[0]\n arr[1] = arr[1].slice(0, -1)\n\n return {name: arr[0], addr: arr[1]}\n }\n\n createMailbox() {\n switch (this.inputType) {\n case 'OBJECT':\n this.addr = this.input.addr\n this.name = this.input.name || null\n this.type = this.input.type || this.type\n break;\n\n case 'SPEC_COMPLIANT_TEXT':\n const obj = this.parseSpecCompliantText(this.input)\n this.addr = obj.addr\n this.name = obj.name || null\n break;\n\n case 'TEXT':\n this.addr = this.input\n break;\n\n default:\n break;\n }\n }\n\n getAddrDomain() {\n if (!this.addr) {\n return ''\n }\n\n return this.addr.split('@')[1]\n }\n\n dump() {\n let result = `<${this.addr}>`\n\n if (this.name) {\n result = `\"${this.name}\" ${result}`\n }\n\n return result\n }\n\n toObject() {\n return {\n name: this.name,\n addr: this.addr,\n type: this.type\n }\n }\n}\n","import MIMEMessageHeader from './MIMEMessageHeader.js'\nimport MIMEMessageContent from './MIMEMessageContent.js'\nimport MIMETextError from './MIMETextError.js'\nimport Mailbox from './Mailbox.js'\n\nexport default class MIMEMessage {\n constructor(envctx) {\n this.envctx = envctx\n this.headers = new MIMEMessageHeader('header')\n this.messages = []\n\n this.generateBoundaries()\n }\n\n generateBoundaries() {\n this.boundaries = {\n mixed: Math.random().toString(36).slice(2),\n alt: Math.random().toString(36).slice(2)\n }\n }\n\n setSender(input) {\n const mailbox = new Mailbox(input, {type: 'from'})\n\n this.setHeader('From', mailbox)\n\n return mailbox\n }\n\n getSender() {\n return this.getHeader('From')\n }\n\n setRecipients(input, opts={type: 'to'}) {\n const recs = []\n\n if (Array.isArray(input)) {\n input.map(input => recs.push( new Mailbox(input, opts) ))\n }\n else {\n recs.push( new Mailbox(input, opts) )\n }\n\n this.setHeader(opts.type, recs)\n\n return recs\n }\n\n getRecipients(opts={type: 'to'}) {\n return this.getHeader(opts.type) || []\n }\n\n setRecipient(input) {\n return this.setRecipients(input, {type: 'to'})\n }\n\n setTo(input) {\n return this.setRecipients(input, {type: 'to'})\n }\n\n setCc(input) {\n return this.setRecipients(input, {type: 'cc'})\n }\n\n setBcc(input) {\n return this.setRecipients(input, {type: 'bcc'})\n }\n\n setSubject(value) {\n this.setHeader('subject', value)\n return value\n }\n\n getSubject() {\n return this.getHeader('subject')\n }\n\n setHeader() {\n this.headers.set(arguments[0], arguments[1])\n return arguments[0]\n }\n\n getHeader(name) {\n return this.headers.get(name)\n }\n\n setHeaders(obj) {\n Object.keys(obj).map(prop => this.setHeader(prop, obj[prop]))\n return this\n }\n\n getHeaders() {\n return this.headers.toObject()\n }\n\n setMessage(type, data, moreHeaders={}) {\n const validTypes = ['text/html', 'text/plain']\n\n if (validTypes.indexOf(type) === -1) {\n throw new MIMETextError('INVALID_MESSAGE_TYPE', `\n Invalid content type for the message. Supported content types \\\n are ${validTypes.join(', ')} but you specified \"${type}\".\n `)\n }\n\n const headers = Object.assign({}, moreHeaders, {\n 'Content-Type': `${type}; charset=UTF-8`\n })\n const msg = new MIMEMessageContent(data)\n\n msg.setHeaders(headers)\n\n this.messages.push(msg)\n\n return msg\n }\n\n setAttachment(filename, type, data, moreHeaders={}) {\n const headers = Object.assign({}, moreHeaders, {\n 'Content-Type': `${type}; charset=UTF-8`,\n 'Content-Transfer-Encoding': 'base64',\n 'Content-Disposition': `attachment;filename=\"${filename}\"`\n })\n const msg = new MIMEMessageContent(data)\n\n msg.setHeaders(headers)\n\n this.messages.push(msg)\n\n return this\n }\n\n getMessageByType(type) {\n const matches = this.messages.filter(m => m.getHeader('Content-Type').indexOf(type) !== -1)\n if (Array.isArray(matches) && matches.length > 0) {\n return matches[0]\n }\n else {\n return undefined\n }\n }\n\n getAttachments() {\n return this.messages.filter(m => m.isAttachment() === true) || []\n }\n\n asRaw() {\n let lines = this.headers.dump(this.envctx)\n\n const plainTextMessage = this.getMessageByType('text/plain')\n const htmlMessage = this.getMessageByType('text/html')\n const hasAttachments = this.getAttachments().length > 0\n const hasPlainTextAlt = plainTextMessage instanceof MIMEMessageContent && htmlMessage instanceof MIMEMessageContent\n\n if (hasAttachments && hasPlainTextAlt) {\n return this.asRawMixedAlt(lines)\n }\n else if (hasAttachments) {\n return this.asRawMixed(lines)\n }\n else if (hasPlainTextAlt) {\n return this.asRawAlt(lines)\n }\n else {\n return this.asRawMessage(lines)\n }\n }\n\n asEncoded() {\n return this.envctx.toBase64WebSafe( this.asRaw() )\n }\n\n asRawMessage(lines) {\n const plainTextMessage = this.getMessageByType('text/plain')\n const htmlMessage = this.getMessageByType('text/html')\n const message = htmlMessage || plainTextMessage\n\n lines = `${lines}\n${message.dump(this.envctx, this.boundaries)}`\n\n return lines\n }\n\n asRawAlt(lines) {\n const plainTextMessage = this.getMessageByType('text/plain')\n const htmlMessage = this.getMessageByType('text/html')\n\n lines = `${lines}\nContent-Type: multipart/alternative; boundary=${this.boundaries.alt}\n\n--${this.boundaries.alt}\n${plainTextMessage.dump(this.envctx, this.boundaries)}\n\n--${this.boundaries.alt}\n${htmlMessage.dump(this.envctx, this.boundaries)}\n\n--${this.boundaries.alt}--`\n\n return lines\n }\n\n asRawMixed(lines) {\n const plainTextMessage = this.getMessageByType('text/plain')\n const htmlMessage = this.getMessageByType('text/html')\n const message = htmlMessage || plainTextMessage\n const attachments = this.getAttachments()\n .map(a => a.dump(this.envctx, this.boundaries))\n .join('')\n .replace(/[\\r\\n]$/g, '')\n\n lines = `${lines}\nContent-Type: multipart/mixed; boundary=${this.boundaries.mixed}\n\n--${this.boundaries.mixed}\n${message.dump(this.envctx, this.boundaries)}\n\n${attachments}\n\n--${this.boundaries.mixed}--`\n\n return lines\n }\n\n asRawMixedAlt(lines) {\n const plainTextMessage = this.getMessageByType('text/plain')\n const htmlMessage = this.getMessageByType('text/html')\n const attachments = this.getAttachments()\n .map(a => a.dump(this.envctx, this.boundaries))\n .join('')\n .replace(/[\\r\\n]$/g, '')\n\n lines = `${lines}\nContent-Type: multipart/mixed; boundary=${this.boundaries.mixed}\n\n--${this.boundaries.mixed}\nContent-Type: multipart/alternative; boundary=${this.boundaries.alt}\n\n--${this.boundaries.alt}\n${plainTextMessage.dump(this.envctx, this.boundaries)}\n\n--${this.boundaries.alt}\n${htmlMessage.dump(this.envctx, this.boundaries)}\n\n--${this.boundaries.alt}--\n${attachments}\n\n--${this.boundaries.mixed}--`\n\n return lines\n }\n\n toBase64(v) {\n return this.envctx.toBase64(v)\n }\n}\n","import MIMEMessage from '../MIMEMessage.js'\n\nconst envctx = {\n toBase64: function toBase64(data) {\n return btoa(data)\n },\n toBase64WebSafe: function toBase64WebSafe(data) {\n return btoa(data)\n .replace(/\\+/g, '-')\n .replace(/\\//g, '_')\n .replace(/=+$/, '')\n }\n}\n\nclass NodeMIMEMessage extends MIMEMessage {\n constructor() {\n super(envctx)\n }\n}\n\nexport function createMimeMessage() {\n return new NodeMIMEMessage()\n}\n"],"names":["MIMETextError","message","description","replace","name","Error","MIMEMessageHeader","placement","store","value","generator","Date","toGMTString","disabled","dump","v","required","vs","join","ctx","datestr","now","toString","randomstr","Math","random","domain","item","getAddrDomain","toBase64","toLowerCase","newHeader","custom","push","undefined","memo","envctx","lines","MIMEMessageContent","data","headers","set","arguments","obj","prop","setHeader","toObject","get","d","boundaries","headerBlock","isAttachment","mixed","Mailbox","input","opts","type","reSpecCompliantAddr","addr","inputType","findInputType","createMailbox","Object","prototype","call","test","text","arr","split","parseSpecCompliantText","result","MIMEMessage","messages","generateBoundaries","alt","mailbox","getHeader","recs","Array","isArray","setRecipients","moreHeaders","validTypes","msg","setHeaders","filename","matches","m","length","plainTextMessage","getMessageByType","htmlMessage","hasAttachments","getAttachments","hasPlainTextAlt","asRawMixedAlt","asRawMixed","asRawAlt","asRawMessage","toBase64WebSafe","asRaw","attachments","a","btoa","NodeMIMEMessage","createMimeMessage"],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"index.js","sources":["../../../src/MIMETextError.js","../../../src/MIMEMessageHeader.js","../../../src/MIMEMessageContent.js","../../../src/Mailbox.js","../../../src/MIMEMessage.js","../../../src/entrypoints/browser.js"],"sourcesContent":["export default class MIMETextError extends Error {\n constructor(message, description) {\n super(message)\n this.description = description ? description.trim().replace(/[\\s]{2,}/, ' ') : null\n this.name = 'MIMETextError'\n }\n}\n","import MIMETextError from './MIMETextError.js'\n\n/*\n* Headers are based on: https://www.rfc-editor.org/rfc/rfc4021#section-2.1\n* (Some are ignored as they can be added later or as a custom header.)\n*/\n\nexport default class MIMEMessageHeader {\n constructor(placement) {\n this.placement = placement\n this.store = [\n {\n placement: 'header',\n name: 'Date',\n // value property is what user sets for this header\n value: null,\n // the generator function generates a value for this header unless\n // user specified a value or user disabled this property\n generator: () => (new Date().toGMTString()).replace(/GMT|UTC/gi, '+0000'),\n disabled: false,\n dump: (v) => {\n return v\n }\n },\n {\n placement: 'header',\n name: 'From',\n // required property indicates that this property must be set\n required: true,\n dump: (v) => {\n return v.dump()\n }\n },\n {\n placement: 'header',\n name: 'Sender',\n dump: (v) => {\n return v.dump()\n }\n },\n {\n placement: 'header',\n name: 'Reply-To',\n dump: (v) => {\n return v\n }\n },\n {\n placement: 'header',\n name: 'To',\n required: true,\n dump: (vs) => {\n return vs.map(v => v.dump()).join(', ')\n }\n },\n {\n placement: 'header',\n name: 'Cc',\n dump: (vs) => {\n return vs.map(v => v.dump()).join(', ')\n }\n },\n {\n placement: 'header',\n name: 'Bcc',\n dump: (vs) => {\n return vs.map(v => v.dump()).join(', ')\n }\n },\n {\n placement: 'header',\n name: 'Message-ID',\n disabled: false,\n generator: (ctx) => {\n const datestr = Date.now().toString()\n const randomstr = Math.random().toString(36).slice(2)\n const domain = ctx.store.filter(item => item.name == 'From')[0].value.getAddrDomain()\n return '<' + randomstr + '-' + datestr + '@' + domain + '>'\n },\n dump: (v) => {\n return v\n }\n },\n {\n placement: 'header',\n name: 'Subject',\n required: true,\n dump: (v, ctx) => {\n return '=?utf-8?B?' + ctx.toBase64(v) + '?='\n }\n },\n {\n placement: 'header',\n name: 'MIME-Version',\n generator: () => '1.0',\n dump: (v) => {\n return v\n }\n },\n {\n placement: 'content',\n name: 'Content-ID',\n dump: (v) => {\n return v\n }\n },\n {\n placement: 'content',\n name: 'Content-Type',\n dump: (v) => {\n return v\n }\n },\n {\n placement: 'content',\n name: 'Content-Transfer-Encoding',\n dump: (v) => {\n return v\n }\n },\n {\n placement: 'content',\n name: 'Content-Disposition',\n dump: (v) => {\n return v\n }\n }\n ]\n }\n\n set(name, value) {\n for (const item of this.store) {\n if (item.name.toLowerCase() == name.toLowerCase()) {\n item.value = value\n return item\n }\n }\n\n const newHeader = {\n custom: true,\n placement: this.placement,\n name: name,\n value: value,\n dump: (v) => {\n return v\n }\n }\n\n this.store.push(newHeader)\n\n return newHeader\n }\n\n get(name) {\n for (const item of this.store) {\n if (item.name.toLowerCase() == name.toLowerCase()) {\n return item.value\n }\n }\n return undefined\n }\n\n toObject() {\n return this.store.reduce((memo, item) => {\n memo[item.name] = item.value\n return memo\n }, {})\n }\n\n dump(envctx) {\n const ctx = {\n toBase64: envctx.toBase64,\n store: this.store\n }\n\n let lines = ''\n for (const item of this.store) {\n if (item.placement != this.placement) continue;\n\n const v = item.value\n ? item.value\n : !item.disabled && typeof item.generator == 'function'\n ? item.generator(ctx)\n : null\n\n if (!v && item.required) {\n throw new MIMETextError('MISSING_HEADER', `The \"${item.name}\" header is required.`)\n }\n\n if (!v) continue;\n\n lines += `${item.name}: ${item.dump(v, ctx)}\\r\\n`\n }\n\n return lines.slice(0, -2)\n }\n}\n","import MIMEMessageHeader from './MIMEMessageHeader.js'\n\nexport default class MIMEMessageContent {\n constructor(data) {\n this.data = data\n this.headers = new MIMEMessageHeader('content')\n }\n\n setHeader() {\n this.headers.set(arguments[0], arguments[1])\n return this\n }\n\n setHeaders(obj) {\n Object.keys(obj).map(prop => this.setHeader(prop, obj[prop]))\n return this\n }\n\n getHeaders() {\n return this.headers.toObject()\n }\n\n getHeader(name) {\n return this.headers.get(name)\n }\n\n isAttachment() {\n const d = this.headers.get('Content-Disposition')\n return d && d.indexOf('attachment') !== -1 ? true : false\n }\n\n dump(envctx, boundaries) {\n const headerBlock = this.headers.dump(envctx)\n\n if (this.isAttachment()) {\n return `--${boundaries.mixed}\n${headerBlock}\n\n${this.data}\n`\n }\n else {\n return `${headerBlock}\\r\\n\\r\\n${this.data}`\n }\n }\n}\n","import MIMETextError from './MIMETextError.js'\n\nexport default class Mailbox {\n constructor(input, opts={type: 'to'}) {\n this.reSpecCompliantAddr = /(([^<>\\n\\r]+)\\s)?<[^\\n\\r]+>/\n\n this.name = null\n this.addr = null\n this.type = opts.type || 'to'\n this.input = input\n this.inputType = this.findInputType(input)\n\n this.createMailbox()\n }\n\n findInputType(input) {\n if (Object.prototype.toString.call(input) === '[object Object]') {\n if (!input.addr) {\n throw new MIMETextError('INVALID_MAILBOX', `\n The input should have an \"addr\" property that specifies the email address \\\n of the recipient.\n `)\n }\n return 'OBJECT'\n }\n else if (this.reSpecCompliantAddr.test(input)) {\n return 'SPEC_COMPLIANT_TEXT'\n }\n else if (typeof input == 'string') {\n return 'TEXT'\n }\n else {\n throw new MIMETextError('INVALID_MAILBOX')\n }\n }\n\n parseSpecCompliantText(text) {\n text.trim()\n\n if (text.slice(0, 1) == '<' && text.slice(-1) == '>') {\n return {addr: text.slice(1, -1)}\n }\n\n const arr = text.split(' <')\n arr[0] = /^(\"|')/.test(arr[0]) ? arr[0].slice(1) : arr[0]\n arr[0] = /(\"|')$/.test(arr[0]) ? arr[0].slice(0, -1) : arr[0]\n arr[1] = arr[1].slice(0, -1)\n\n return {name: arr[0], addr: arr[1]}\n }\n\n createMailbox() {\n switch (this.inputType) {\n case 'OBJECT':\n this.addr = this.input.addr\n this.name = this.input.name || null\n this.type = this.input.type || this.type\n break;\n\n case 'SPEC_COMPLIANT_TEXT':\n const obj = this.parseSpecCompliantText(this.input)\n this.addr = obj.addr\n this.name = obj.name || null\n break;\n\n case 'TEXT':\n this.addr = this.input\n break;\n\n default:\n break;\n }\n }\n\n getAddrDomain() {\n if (!this.addr) {\n return ''\n }\n\n return this.addr.split('@')[1]\n }\n\n dump() {\n let result = `<${this.addr}>`\n\n if (this.name) {\n result = `\"${this.name}\" ${result}`\n }\n\n return result\n }\n\n toObject() {\n return {\n name: this.name,\n addr: this.addr,\n type: this.type\n }\n }\n}\n","import MIMEMessageHeader from './MIMEMessageHeader.js'\nimport MIMEMessageContent from './MIMEMessageContent.js'\nimport MIMETextError from './MIMETextError.js'\nimport Mailbox from './Mailbox.js'\n\nexport default class MIMEMessage {\n constructor(envctx) {\n this.envctx = envctx\n this.headers = new MIMEMessageHeader('header')\n this.messages = []\n\n this.generateBoundaries()\n }\n\n generateBoundaries() {\n this.boundaries = {\n mixed: Math.random().toString(36).slice(2),\n alt: Math.random().toString(36).slice(2)\n }\n }\n\n setSender(input) {\n const mailbox = new Mailbox(input, {type: 'from'})\n\n this.setHeader('From', mailbox)\n\n return mailbox\n }\n\n getSender() {\n return this.getHeader('From')\n }\n\n setRecipients(input, opts={type: 'to'}) {\n const recs = []\n\n if (Array.isArray(input)) {\n input.map(input => recs.push( new Mailbox(input, opts) ))\n }\n else {\n recs.push( new Mailbox(input, opts) )\n }\n\n this.setHeader(opts.type, recs)\n\n return recs\n }\n\n getRecipients(opts={type: 'to'}) {\n return this.getHeader(opts.type) || []\n }\n\n setRecipient(input) {\n return this.setRecipients(input, {type: 'to'})\n }\n\n setTo(input) {\n return this.setRecipients(input, {type: 'to'})\n }\n\n setCc(input) {\n return this.setRecipients(input, {type: 'cc'})\n }\n\n setBcc(input) {\n return this.setRecipients(input, {type: 'bcc'})\n }\n\n setSubject(value) {\n this.setHeader('subject', value)\n return value\n }\n\n getSubject() {\n return this.getHeader('subject')\n }\n\n setHeader() {\n this.headers.set(arguments[0], arguments[1])\n return arguments[0]\n }\n\n getHeader(name) {\n return this.headers.get(name)\n }\n\n setHeaders(obj) {\n Object.keys(obj).map(prop => this.setHeader(prop, obj[prop]))\n return this\n }\n\n getHeaders() {\n return this.headers.toObject()\n }\n\n setMessage(type, data, moreHeaders={}) {\n const validTypes = ['text/html', 'text/plain', 'text/x-amp-html']\n\n if (validTypes.indexOf(type) === -1) {\n throw new MIMETextError('INVALID_MESSAGE_TYPE', `\n Invalid content type for the message. Supported content types \\\n are ${validTypes.join(', ')} but you specified \"${type}\".\n `)\n }\n\n const headers = Object.assign({}, moreHeaders, {\n 'Content-Type': `${type}; charset=UTF-8`\n })\n const msg = new MIMEMessageContent(data)\n\n msg.setHeaders(headers)\n\n this.messages.push(msg)\n\n return msg\n }\n\n setAttachment(filename, type, data, moreHeaders={}) {\n const headers = Object.assign({}, moreHeaders, {\n 'Content-Type': `${type}; charset=UTF-8`,\n 'Content-Transfer-Encoding': 'base64',\n 'Content-Disposition': `attachment;filename=\"${filename}\"`\n })\n const msg = new MIMEMessageContent(data)\n\n msg.setHeaders(headers)\n\n this.messages.push(msg)\n\n return this\n }\n\n getMessageByType(type) {\n const matches = this.messages.filter(m => m.getHeader('Content-Type').indexOf(type) !== -1)\n if (Array.isArray(matches) && matches.length > 0) {\n return matches[0]\n }\n else {\n return undefined\n }\n }\n\n getAttachments() {\n return this.messages.filter(m => m.isAttachment() === true) || []\n }\n\n asRaw() {\n let lines = this.headers.dump(this.envctx)\n\n const plainTextMessage = this.getMessageByType('text/plain')\n const htmlMessage = this.getMessageByType('text/html')\n const ampMessage = this.getMessageByType('text/x-amp-html')\n const hasAttachments = this.getAttachments().length > 0\n const hasPlainTextAlt = plainTextMessage instanceof MIMEMessageContent && htmlMessage instanceof MIMEMessageContent\n const hasAmpAlt = plainTextMessage instanceof MIMEMessageContent && htmlMessage instanceof MIMEMessageContent && ampMessage instanceof MIMEMessageContent\n\n if (hasAttachments && hasPlainTextAlt) {\n return this.asRawMixedAlt(lines)\n }\n else if (hasAttachments) {\n return this.asRawMixed(lines)\n }\n else if(hasAmpAlt) {\n return this.asRawAmp(lines)\n }\n else if (hasPlainTextAlt) {\n return this.asRawAlt(lines)\n }\n else {\n return this.asRawMessage(lines)\n }\n }\n\n asEncoded() {\n return this.envctx.toBase64WebSafe( this.asRaw() )\n }\n\n asRawMessage(lines) {\n const plainTextMessage = this.getMessageByType('text/plain')\n const htmlMessage = this.getMessageByType('text/html')\n const message = htmlMessage || plainTextMessage\n\n lines = `${lines}\n${message.dump(this.envctx, this.boundaries)}`\n\n return lines\n }\n\n asRawAlt(lines) {\n const plainTextMessage = this.getMessageByType('text/plain')\n const htmlMessage = this.getMessageByType('text/html')\n\n lines = `${lines}\nContent-Type: multipart/alternative; boundary=${this.boundaries.alt}\n\n--${this.boundaries.alt}\n${plainTextMessage.dump(this.envctx, this.boundaries)}\n\n--${this.boundaries.alt}\n${htmlMessage.dump(this.envctx, this.boundaries)}\n\n--${this.boundaries.alt}--`\n\n return lines\n }\n\n asRawAmp(lines) {\n const plainTextMessage = this.getMessageByType('text/plain')\n const htmlMessage = this.getMessageByType('text/html')\n const ampMessage = this.getMessageByType('text/x-amp-html')\n\n lines = `${lines}\nContent-Type: multipart/alternative; boundary=${this.boundaries.alt}\n\n--${this.boundaries.alt}\n${plainTextMessage.dump(this.envctx, this.boundaries)}\n\n--${this.boundaries.alt}\n${ampMessage.dump(this.envctx, this.boundaries)}\n\n--${this.boundaries.alt}\n${htmlMessage.dump(this.envctx, this.boundaries)}\n\n--${this.boundaries.alt}--`\n\n return lines\n }\n\n asRawMixed(lines) {\n const plainTextMessage = this.getMessageByType('text/plain')\n const htmlMessage = this.getMessageByType('text/html')\n const message = htmlMessage || plainTextMessage\n const attachments = this.getAttachments()\n .map(a => a.dump(this.envctx, this.boundaries))\n .join('')\n .replace(/[\\r\\n]$/g, '')\n\n lines = `${lines}\nContent-Type: multipart/mixed; boundary=${this.boundaries.mixed}\n\n--${this.boundaries.mixed}\n${message.dump(this.envctx, this.boundaries)}\n\n${attachments}\n\n--${this.boundaries.mixed}--`\n\n return lines\n }\n\n asRawMixedAlt(lines) {\n const plainTextMessage = this.getMessageByType('text/plain')\n const htmlMessage = this.getMessageByType('text/html')\n const attachments = this.getAttachments()\n .map(a => a.dump(this.envctx, this.boundaries))\n .join('')\n .replace(/[\\r\\n]$/g, '')\n\n lines = `${lines}\nContent-Type: multipart/mixed; boundary=${this.boundaries.mixed}\n\n--${this.boundaries.mixed}\nContent-Type: multipart/alternative; boundary=${this.boundaries.alt}\n\n--${this.boundaries.alt}\n${plainTextMessage.dump(this.envctx, this.boundaries)}\n\n--${this.boundaries.alt}\n${htmlMessage.dump(this.envctx, this.boundaries)}\n\n--${this.boundaries.alt}--\n${attachments}\n\n--${this.boundaries.mixed}--`\n\n return lines\n }\n\n toBase64(v) {\n return this.envctx.toBase64(v)\n }\n}\n","import MIMEMessage from '../MIMEMessage.js'\n\nconst envctx = {\n toBase64: function toBase64(data) {\n return btoa(data)\n },\n toBase64WebSafe: function toBase64WebSafe(data) {\n return btoa(data)\n .replace(/\\+/g, '-')\n .replace(/\\//g, '_')\n .replace(/=+$/, '')\n }\n}\n\nclass NodeMIMEMessage extends MIMEMessage {\n constructor() {\n super(envctx)\n }\n}\n\nexport function createMimeMessage() {\n return new NodeMIMEMessage()\n}\n"],"names":["MIMETextError","message","description","replace","name","Error","MIMEMessageHeader","placement","store","value","generator","Date","toGMTString","disabled","dump","v","required","vs","join","ctx","datestr","now","toString","randomstr","Math","random","domain","item","getAddrDomain","toBase64","toLowerCase","newHeader","custom","push","undefined","memo","envctx","lines","MIMEMessageContent","data","headers","set","arguments","obj","prop","setHeader","toObject","get","d","boundaries","headerBlock","isAttachment","mixed","Mailbox","input","opts","type","reSpecCompliantAddr","addr","inputType","findInputType","createMailbox","Object","prototype","call","test","text","arr","split","parseSpecCompliantText","result","MIMEMessage","messages","generateBoundaries","alt","mailbox","getHeader","recs","Array","isArray","setRecipients","moreHeaders","validTypes","msg","setHeaders","filename","matches","m","length","plainTextMessage","getMessageByType","htmlMessage","ampMessage","hasAttachments","getAttachments","hasPlainTextAlt","hasAmpAlt","asRawMixedAlt","asRawMixed","asRawAmp","asRawAlt","asRawMessage","toBase64WebSafe","asRaw","attachments","a","btoa","NodeMIMEMessage","createMimeMessage"],"mappings":"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"} \ No newline at end of file diff --git a/dist/browser/iife/index.js b/dist/browser/iife/index.js index 4c79865..e78f306 100644 --- a/dist/browser/iife/index.js +++ b/dist/browser/iife/index.js @@ -1,2 +1,2 @@ -var MimeText=function(t){"use strict";var e="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{},r=function(t){return t&&t.Math==Math&&t},n=r("object"==typeof globalThis&&globalThis)||r("object"==typeof window&&window)||r("object"==typeof self&&self)||r("object"==typeof e&&e)||function(){return this}()||Function("return this")(),o=function(t){return"function"==typeof t},i={},a=function(t){try{return!!t()}catch(t){return!0}},u=!a((function(){return 7!=Object.defineProperty({},1,{get:function(){return 7}})[1]})),c={},s={}.propertyIsEnumerable,f=Object.getOwnPropertyDescriptor,l=f&&!s.call({1:2},1);c.f=l?function(t){var e=f(this,t);return!!e&&e.enumerable}:s;var p,h,v=function(t,e){return{enumerable:!(1&t),configurable:!(2&t),writable:!(4&t),value:e}},d={}.toString,y=function(t){return d.call(t).slice(8,-1)},g=y,m="".split,b=a((function(){return!Object("z").propertyIsEnumerable(0)}))?function(t){return"String"==g(t)?m.call(t,""):Object(t)}:Object,S=function(t){if(null==t)throw TypeError("Can't call method on "+t);return t},w=b,O=S,x=function(t){return w(O(t))},T=o,E=function(t){return"object"==typeof t?null!==t:T(t)},j={},A=j,R=n,I=o,P=function(t){return I(t)?t:void 0},M=function(t,e){return arguments.length<2?P(A[t])||P(R[t]):A[t]&&A[t][e]||R[t]&&R[t][e]},k=n,_=M("navigator","userAgent")||"",C=k.process,N=k.Deno,F=C&&C.versions||N&&N.version,L=F&&F.v8;L?h=(p=L.split("."))[0]<4?1:p[0]+p[1]:_&&(!(p=_.match(/Edge\/(\d+)/))||p[1]>=74)&&(p=_.match(/Chrome\/(\d+)/))&&(h=p[1]);var D=h&&+h,B=D,z=a,U=!!Object.getOwnPropertySymbols&&!z((function(){var t=Symbol();return!String(t)||!(Object(t)instanceof Symbol)||!Symbol.sham&&B&&B<41})),G=U&&!Symbol.sham&&"symbol"==typeof Symbol.iterator,H=o,$=M,V=G?function(t){return"symbol"==typeof t}:function(t){var e=$("Symbol");return H(e)&&Object(t)instanceof e},W=function(t){try{return String(t)}catch(t){return"Object"}},X=o,q=W,J=function(t){if(X(t))return t;throw TypeError(q(t)+" is not a function")},Y=J,K=function(t,e){var r=t[e];return null==r?void 0:Y(r)},Q=o,Z=E,tt={exports:{}},et=n,rt=function(t,e){try{Object.defineProperty(et,t,{value:e,configurable:!0,writable:!0})}catch(r){et[t]=e}return e},nt="__core-js_shared__",ot=n[nt]||rt(nt,{}),it=ot;(tt.exports=function(t,e){return it[t]||(it[t]=void 0!==e?e:{})})("versions",[]).push({version:"3.18.3",mode:"pure",copyright:"© 2021 Denis Pushkarev (zloirock.ru)"});var at=S,ut=function(t){return Object(at(t))},ct=ut,st={}.hasOwnProperty,ft=Object.hasOwn||function(t,e){return st.call(ct(t),e)},lt=0,pt=Math.random(),ht=function(t){return"Symbol("+String(void 0===t?"":t)+")_"+(++lt+pt).toString(36)},vt=n,dt=tt.exports,yt=ft,gt=ht,mt=U,bt=G,St=dt("wks"),wt=vt.Symbol,Ot=bt?wt:wt&&wt.withoutSetter||gt,xt=function(t){return yt(St,t)&&(mt||"string"==typeof St[t])||(mt&&yt(wt,t)?St[t]=wt[t]:St[t]=Ot("Symbol."+t)),St[t]},Tt=E,Et=V,jt=K,At=function(t,e){var r,n;if("string"===e&&Q(r=t.toString)&&!Z(n=r.call(t)))return n;if(Q(r=t.valueOf)&&!Z(n=r.call(t)))return n;if("string"!==e&&Q(r=t.toString)&&!Z(n=r.call(t)))return n;throw TypeError("Can't convert object to primitive value")},Rt=xt("toPrimitive"),It=function(t,e){if(!Tt(t)||Et(t))return t;var r,n=jt(t,Rt);if(n){if(void 0===e&&(e="default"),r=n.call(t,e),!Tt(r)||Et(r))return r;throw TypeError("Can't convert object to primitive value")}return void 0===e&&(e="number"),At(t,e)},Pt=V,Mt=function(t){var e=It(t,"string");return Pt(e)?e:String(e)},kt=E,_t=n.document,Ct=kt(_t)&&kt(_t.createElement),Nt=function(t){return Ct?_t.createElement(t):{}},Ft=Nt,Lt=!u&&!a((function(){return 7!=Object.defineProperty(Ft("div"),"a",{get:function(){return 7}}).a})),Dt=u,Bt=c,zt=v,Ut=x,Gt=Mt,Ht=ft,$t=Lt,Vt=Object.getOwnPropertyDescriptor;i.f=Dt?Vt:function(t,e){if(t=Ut(t),e=Gt(e),$t)try{return Vt(t,e)}catch(t){}if(Ht(t,e))return zt(!Bt.f.call(t,e),t[e])};var Wt=a,Xt=o,qt=/#|\.prototype\./,Jt=function(t,e){var r=Kt[Yt(t)];return r==Zt||r!=Qt&&(Xt(e)?Wt(e):!!e)},Yt=Jt.normalize=function(t){return String(t).replace(qt,".").toLowerCase()},Kt=Jt.data={},Qt=Jt.NATIVE="N",Zt=Jt.POLYFILL="P",te=Jt,ee=J,re=function(t,e,r){if(ee(t),void 0===e)return t;switch(r){case 0:return function(){return t.call(e)};case 1:return function(r){return t.call(e,r)};case 2:return function(r,n){return t.call(e,r,n)};case 3:return function(r,n,o){return t.call(e,r,n,o)}}return function(){return t.apply(e,arguments)}},ne={},oe=E,ie=function(t){if(oe(t))return t;throw TypeError(String(t)+" is not an object")},ae=u,ue=Lt,ce=ie,se=Mt,fe=Object.defineProperty;ne.f=ae?fe:function(t,e,r){if(ce(t),e=se(e),ce(r),ue)try{return fe(t,e,r)}catch(t){}if("get"in r||"set"in r)throw TypeError("Accessors not supported");return"value"in r&&(t[e]=r.value),t};var le=ne,pe=v,he=u?function(t,e,r){return le.f(t,e,pe(1,r))}:function(t,e,r){return t[e]=r,t},ve=n,de=o,ye=i.f,ge=te,me=j,be=re,Se=he,we=ft,Oe=function(t){var e=function(e,r,n){if(this instanceof t){switch(arguments.length){case 0:return new t;case 1:return new t(e);case 2:return new t(e,r)}return new t(e,r,n)}return t.apply(this,arguments)};return e.prototype=t.prototype,e},xe=function(t,e){var r,n,o,i,a,u,c,s,f=t.target,l=t.global,p=t.stat,h=t.proto,v=l?ve:p?ve[f]:(ve[f]||{}).prototype,d=l?me:me[f]||Se(me,f,{})[f],y=d.prototype;for(o in e)r=!ge(l?o:f+(p?".":"#")+o,t.forced)&&v&&we(v,o),a=d[o],r&&(u=t.noTargetGet?(s=ye(v,o))&&s.value:v[o]),i=r&&u?u:e[o],r&&typeof a==typeof i||(c=t.bind&&r?be(i,ve):t.wrap&&r?Oe(i):h&&de(i)?be(Function.call,i):i,(t.sham||i&&i.sham||a&&a.sham)&&Se(c,"sham",!0),Se(d,o,c),h&&(we(me,n=f+"Prototype")||Se(me,n,{}),Se(me[n],o,i),t.real&&y&&!y[o]&&Se(y,o,i)))},Te={};Te[xt("toStringTag")]="z";var Ee="[object z]"===String(Te),je=Ee,Ae=o,Re=y,Ie=xt("toStringTag"),Pe="Arguments"==Re(function(){return arguments}()),Me=je?Re:function(t){var e,r,n;return void 0===t?"Undefined":null===t?"Null":"string"==typeof(r=function(t,e){try{return t[e]}catch(t){}}(e=Object(t),Ie))?r:Pe?Re(e):"Object"==(n=Re(e))&&Ae(e.callee)?"Arguments":n},ke=o,_e=ot,Ce=Function.toString;ke(_e.inspectSource)||(_e.inspectSource=function(t){return Ce.call(t)});var Ne,Fe=_e.inspectSource,Le=a,De=o,Be=Me,ze=Fe,Ue=[],Ge=M("Reflect","construct"),He=/^\s*(?:class|function)\b/,$e=He.exec,Ve=!He.exec((function(){})),We=function(t){if(!De(t))return!1;try{return Ge(Object,Ue,t),!0}catch(t){return!1}},Xe=!Ge||Le((function(){var t;return We(We.call)||!We(Object)||!We((function(){t=!0}))||t}))?function(t){if(!De(t))return!1;switch(Be(t)){case"AsyncFunction":case"GeneratorFunction":case"AsyncGeneratorFunction":return!1}return Ve||!!$e.call(He,ze(t))}:We,qe=Xe,Je=W,Ye=function(t){if(qe(t))return t;throw TypeError(Je(t)+" is not a constructor")},Ke=Math.ceil,Qe=Math.floor,Ze=function(t){var e=+t;return e!=e||0===e?0:(e>0?Qe:Ke)(e)},tr=Ze,er=Math.max,rr=Math.min,nr=function(t,e){var r=tr(t);return r<0?er(r+e,0):rr(r,e)},or=Ze,ir=Math.min,ar=function(t){return t>0?ir(or(t),9007199254740991):0},ur=function(t){return ar(t.length)},cr=x,sr=nr,fr=ur,lr=function(t){return function(e,r,n){var o,i=cr(e),a=fr(i),u=sr(n,a);if(t&&r!=r){for(;a>u;)if((o=i[u++])!=o)return!0}else for(;a>u;u++)if((t||u in i)&&i[u]===r)return t||u||0;return!t&&-1}},pr={includes:lr(!0),indexOf:lr(!1)},hr={},vr=ft,dr=x,yr=pr.indexOf,gr=hr,mr=function(t,e){var r,n=dr(t),o=0,i=[];for(r in n)!vr(gr,r)&&vr(n,r)&&i.push(r);for(;e.length>o;)vr(n,r=e[o++])&&(~yr(i,r)||i.push(r));return i},br=["constructor","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","toLocaleString","toString","valueOf"],Sr=mr,wr=br,Or=Object.keys||function(t){return Sr(t,wr)},xr=ne,Tr=ie,Er=Or,jr=u?Object.defineProperties:function(t,e){Tr(t);for(var r,n=Er(e),o=n.length,i=0;o>i;)xr.f(t,r=n[i++],e[r]);return t},Ar=M("document","documentElement"),Rr=tt.exports,Ir=ht,Pr=Rr("keys"),Mr=function(t){return Pr[t]||(Pr[t]=Ir(t))},kr=ie,_r=jr,Cr=br,Nr=hr,Fr=Ar,Lr=Nt,Dr=Mr("IE_PROTO"),Br=function(){},zr=function(t){return"