{"version":3,"sources":["jsdelivr-header.js","/npm/node-mailforspam@1.0.1/index.js"],"names":[],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA,ACDA,MAAM,MAAQ,QAAQ,cAChB,QAAU,QAAQ,WAClB,SAAW,QAAQ,iBAAiB,gBACpC,SAAW,IAAI,SAEf,iBAAmB,mCAEzB,OAAO,QAAU,MAOb,WAAA,CAAY,EAAS,EAAU,CAAC,GAC5B,KAAK,QAAU,EACf,KAAK,QAAU,CACnB,CAOA,aAAA,CAAc,GACV,KAAK,QAAU,CACnB,CAOA,UAAM,CAAK,EAAO,GACd,IAAI,EAAe,KAAK,QACrB,EAAO,IACN,EAAe,EAAe,IAAM,GAIxC,IAAI,cAAoB,MAAM,GAAG,oBAAoB,MAAiB,OAElE,EAAI,QAAQ,KAAK,GAGjB,EAAQ,EAAE,YAAY,KAAK,MAC3B,EAAS,GAoBb,OAlBA,EAAM,MAAK,CAAC,EAAG,KAGX,IAAI,GAFJ,EAAK,EAAE,IAEM,KAAK,MAEd,EAAQ,CACR,KAAM,SAAS,OAAO,EAAE,EAAI,IAAI,QAAQ,OACxC,IAAK,EAAE,EAAI,IAAI,KAAK,KAAK,KAAK,QAC9B,QAAS,SAAS,OAAO,EAAE,EAAI,IAAI,QAAQ,OAC3C,KAAM,SAAS,OAAO,EAAE,EAAI,IAAI,QAAQ,QAGzC,EAAM,MACL,EAAM,GAAK,EAAM,IAAI,MAAM,KAAK,GAChC,EAAO,KAAK,GAChB,IAGG,CACX,CAQA,WAAM,CAAM,GACR,IAAI,cAAoB,MAAM,GAAG,oBAAoB,KAAK,WAAW,MAAO,OACxE,EAAI,QAAQ,KAAK,GAKrB,OAHA,EAAE,WAAW,KAAK,kBAAkB,SAG7B,EAAE,UACb,CAQA,UAAM,CAAK,EAAI,EAAS,QAEpB,MACS,UAFT,EAAS,EAAO,cAAc,eAGR,KAAK,MAAM,IAAK,OAAO,cAGvB,KAAK,MAAM,IAAK,OAAO,MAEjD","file":"/npm/node-mailforspam@1.0.1/index.js","sourceRoot":"","sourcesContent":["/**\n * Minified by jsDelivr using Terser v5.37.0.\n * Original file: /npm/node-mailforspam@1.0.1/index.js\n *\n * Do NOT use SRI with dynamically generated files! More information: https://www.jsdelivr.com/using-sri-with-dynamic-files\n */\n","/**\n * Mail for spam node module\n * @author Andrey Nedobylsky (admin@twister-vl.ru)\n */\n\nconst fetch = require('node-fetch');\nconst cheerio = require('cheerio');\nconst Entities = require('html-entities').AllHtmlEntities;\nconst entities = new Entities();\n\nconst MAILFORSPAM_BASE = 'https://www.mailforspam.com/mail';\n\nmodule.exports = class Mailforspam {\n\n    /**\n     * Mailforspam node module\n     * @param {string} account Mail for spam account\n     * @param {object} options Reserved for future\n     */\n    constructor(account, options = {}) {\n        this.options = options;\n        this.account = account;\n    }\n\n\n    /**\n     * Change current account\n     * @param {string} account\n     */\n    changeAccount(account) {\n        this.account = account;\n    }\n\n    /**\n     * Get emails list from selected page\n     * @param {number} page\n     * @returns {Promise<[]>}\n     */\n    async list(page = 1) {\n        let checkAccount = this.account;\n        if(page > 1) {\n            checkAccount = checkAccount + '_' + page;\n        }\n\n        //Request selected page\n        let body = await (await fetch(`${MAILFORSPAM_BASE}/${checkAccount}`)).text();\n\n        let $ = cheerio.load(body);\n\n        //Get all elements in table\n        let table = $('#mailbox').find('tr');\n        let emails = [];\n\n        table.each((i, tr) => {\n            tr = $(tr);\n\n            let tds = tr.find('td');\n\n            let email = {\n                from: entities.decode($(tds[0]).text()).trim(),\n                url: $(tds[1]).find('a').attr('href'),\n                subject: entities.decode($(tds[1]).text()).trim(),\n                date: entities.decode($(tds[2]).text()).trim(),\n            };\n\n            if(email.url) {\n                email.id = email.url.split('/')[3];\n                emails.push(email);\n            }\n        });\n\n        return emails;\n    }\n\n    /**\n     * Load email\n     * @param {number|string} id\n     * @returns {Promise<jQuery|HTMLElement>}\n     * @private\n     */\n    async _read(id) {\n        let body = await (await fetch(`${MAILFORSPAM_BASE}/${this.account}/${id}`)).text();\n        let $ = cheerio.load(body);\n\n        $('.letter').find('table.vertical').remove();\n\n\n        return $('.letter');\n    }\n\n    /**\n     * Read email in selected format\n     * @param {number|string} id Email id\n     * @param {string} format HTML|TEXT\n     * @returns {Promise<string>}\n     */\n    async read(id, format = 'html') {\n        format = format.toLowerCase().trim();\n        switch (format) {\n            case 'text':\n                return (await this._read(id)).text().trim();\n            case \"html\":\n            default:\n                return (await this._read(id)).html().trim();\n        }\n    }\n\n}"]}