{"version":3,"sources":["jsdelivr-header.js","/npm/nodemailer-mock@2.0.11/dist/nodemailer-mock.js"],"names":[],"mappings":"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","file":"/npm/nodemailer-mock@2.0.11/dist/nodemailer-mock.js","sourceRoot":"","sourcesContent":["/**\n * Minified by jsDelivr using Terser v5.39.0.\n * Original file: /npm/nodemailer-mock@2.0.11/dist/nodemailer-mock.js\n *\n * Do NOT use SRI with dynamically generated files! More information: https://www.jsdelivr.com/using-sri-with-dynamic-files\n */\n","var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    var desc = Object.getOwnPropertyDescriptor(m, k);\n    if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n      desc = { enumerable: true, get: function() { return m[k]; } };\n    }\n    Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n    Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n    o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || (function () {\n    var ownKeys = function(o) {\n        ownKeys = Object.getOwnPropertyNames || function (o) {\n            var ar = [];\n            for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;\n            return ar;\n        };\n        return ownKeys(o);\n    };\n    return function (mod) {\n        if (mod && mod.__esModule) return mod;\n        var result = {};\n        if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== \"default\") __createBinding(result, mod, k[i]);\n        __setModuleDefault(result, mod);\n        return result;\n    };\n})();\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n    return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\n(function (factory) {\n    if (typeof module === \"object\" && typeof module.exports === \"object\") {\n        var v = factory(require, exports);\n        if (v !== undefined) module.exports = v;\n    }\n    else if (typeof define === \"function\" && define.amd) {\n        define([\"require\", \"exports\", \"debug\", \"nodemailer\", \"nodemailer\", \"nodemailer/lib/mailer\", \"./lib/messages\"], factory);\n    }\n})(function (require, exports) {\n    \"use strict\";\n    Object.defineProperty(exports, \"__esModule\", { value: true });\n    exports.getMockFor = exports.nodemailer = exports.mock = exports.createTransport = exports.mocked = exports.NodemailerMockMail = exports.NodemailerMockTransport = exports.NodemailerMocked = void 0;\n    const debug_1 = __importDefault(require(\"debug\"));\n    const Nodemailer = __importStar(require(\"nodemailer\"));\n    const nodemailer_1 = require(\"nodemailer\");\n    const mailer_1 = __importDefault(require(\"nodemailer/lib/mailer\"));\n    const messages_1 = require(\"./lib/messages\");\n    const debug = (0, debug_1.default)('nodemailer-mock');\n    class NodemailerMocked {\n        nodemailer;\n        _mockedVerify = true;\n        _mockedClose = true;\n        // our response messages\n        _successResponse = messages_1.messages.success_response;\n        _failResponse = messages_1.messages.fail_response;\n        _transporters = [];\n        // Sent mail cache\n        _sentMail = [];\n        _closeCount = 0;\n        // Should the callback be a success or failure?\n        _shouldFail = false;\n        _shouldFailOnce = false;\n        _shouldFailCheck = null;\n        _shouldUsePlugins = false;\n        constructor(mailer) {\n            this.nodemailer = mailer;\n            // legacy aliases\n            Object.assign(this.mock, {\n                shouldFailOnce: this.mock.setShouldFailOnce,\n                shouldFail: this.mock.setShouldFail,\n                mockedVerify: this.mock.setMockedVerify,\n                successResponse: this.mock.setSuccessResponse,\n                failResponse: this.mock.setFailResponse,\n                sentMail: this.mock.getSentMail,\n                shouldFailCheck: this.mock.setShouldFailCheck,\n            });\n        }\n        createTransport = (transport, options) => {\n            // indicate that we are creating a transport\n            debug('createTransport', options);\n            const _transport = new NodemailerMockTransport(this, {\n                addSentMail: (mail) => this._sentMail.push(mail),\n                incrementCloseCallCount: () => this._closeCount++,\n            }, transport, options);\n            const _transporter = new NodemailerMockMail(this, _transport);\n            _transport.nodemailer = _transporter;\n            this._transporters.push(_transporter);\n            return _transporter;\n        };\n        mock = {\n            /**\n             * reset mock values to defaults\n             */\n            reset: () => {\n                this._sentMail = [];\n                this._closeCount = 0;\n                this._shouldFail = this._shouldFailOnce = false;\n                this._successResponse = messages_1.messages.success_response;\n                this._failResponse = messages_1.messages.fail_response;\n                this._mockedVerify = true;\n                this._shouldFailCheck = null;\n                this._shouldUsePlugins = false;\n            },\n            /**\n             * the transporters that have been created by this mock\n             * @returns {Object[]} an array of transporters\n             */\n            getTransporters: () => this._transporters,\n            /**\n             * get an array of sent emails\n             * @return {Object[]} an array of emails\n             */\n            getSentMail: () => this._sentMail,\n            /**\n             * get the number of times close() has been called\n             * @return {number} the number of times close() has been called\n             */\n            getCloseCallCount: () => this._closeCount,\n            /**\n             * determine if sendMail() should return errors once then succeed\n             */\n            setShouldFailOnce: (isSet) => (this._shouldFail = this._shouldFailOnce =\n                typeof isSet !== 'undefined' ? isSet : true),\n            /**\n             * determine if nodemailer should return errors once then succeed\n             * @return {boolean} true if sendMail() should return errors once then succeed\n             */\n            isShouldFailOnce: () => this._shouldFailOnce,\n            /**\n             * determine if sendMail() should return errors\n             * @param  {boolean} isFail true will return errors, false will return successes\n             */\n            setShouldFail: (isFail) => {\n                this._shouldFail = isFail;\n                if (!isFail) {\n                    this._shouldFailOnce = false;\n                }\n            },\n            /**\n             * determine if sendMail() should return errors\n             * @return {boolean} true if sendMail() should return errors\n             */\n            isShouldFail: () => this._shouldFail,\n            /**\n             * determine if transport.verify() should be mocked or not\n             * @param  {boolean} isMocked if the function should be mocked\n             */\n            setMockedVerify: (isMocked) => (this._mockedVerify = isMocked),\n            /**\n             * determine if transport.verify() should be mocked or not\n             * @return {boolean} true if the function should be mocked\n             */\n            isMockedVerify: () => this._mockedVerify,\n            /**\n             * determine if transport.close() should be mocked or not\n             * @param  {boolean} isMocked if the function should be mocked\n             * @return {void}\n             */\n            setMockedClose: (isMocked) => (this._mockedClose = isMocked),\n            /**\n             * determine if transport.close() will be mocked or not\n             * @return {boolean} true if the function will be mocked\n             */\n            isMockedClose: () => this._mockedClose,\n            /**\n             * set the response messages for successes\n             * @param  {string} success\n             */\n            setSuccessResponse: (success) => (this._successResponse = success),\n            /**\n             * get the response messages for successes\n             * @return {string} success\n             */\n            getSuccessResponse: () => this._successResponse,\n            /**\n             * set the response messages for failures\n             * @param  {Error} failure\n             */\n            setFailResponse: (failure) => (this._failResponse = failure),\n            /**\n             * get the response messages for failures\n             * @return {Error} failure\n             */\n            getFailResponse: () => this._failResponse,\n            /**\n             * set the check function that returns true if a message send should fail\n             * @param  {CheckMailMessageOrNull} check\n             */\n            setShouldFailCheck: (check) => {\n                this._shouldFailCheck = check;\n            },\n            /**\n             * get the check function that returns true if a message send should fail\n             * @return {CheckMailMessageOrNull} check\n             * @return {boolean} true if the message should fail\n             */\n            getShouldFailCheck: () => this._shouldFailCheck,\n            /**\n             * schedule the mocked transports to be idle\n             * @param timeout the time in ms to wait before setting the transport to idle\n             */\n            scheduleIsIdle: (isIdle, timeout) => {\n                setTimeout(() => {\n                    // iterate over all transporters and set them to idle\n                    return this._transporters.forEach((transporter) => transporter.mock.setIdle(isIdle));\n                }, timeout);\n            },\n            /**\n             * set the mocked transports to be idle\n             * @param isIdle true if the transport should be idle\n             * @return {void}\n             */\n            setIsIdle: (isIdle) => {\n                // iterate over all transporters and set them to idle\n                return this._transporters.forEach((transporter) => transporter.mock.setIdle(isIdle));\n            },\n            /**\n             * set if plugins should be used\n             * @param {boolean} shouldUsePlugins\n             * @return {void}\n             */\n            setUnmockedUsePlugins: (shouldUsePlugins) => (this._shouldUsePlugins = shouldUsePlugins),\n            /**\n             * get if plugins should be used\n             * @return {boolean} true if plugins should be used\n             */\n            isUnmockedUsePlugins: () => this._shouldUsePlugins,\n        };\n    }\n    exports.NodemailerMocked = NodemailerMocked;\n    class NodemailerMockTransport {\n        nodemailermock;\n        nodemailer;\n        realmailer;\n        name = 'Nodemailer Mock Transport';\n        version = '0.0.0';\n        // handlers passed from the mock to the transport\n        handlers;\n        _isIdle = false;\n        _closeCallCount = 0;\n        constructor(nodemailermock, handlers, transport, options) {\n            this.nodemailermock = nodemailermock;\n            this.handlers = handlers;\n            // in some mocks the real nodemailer won't be available\n            /* istanbul ignore else  */\n            if (typeof nodemailer_1.createTransport === 'function') {\n                this.realmailer = (0, nodemailer_1.createTransport)(transport, options);\n            }\n        }\n        /**\n         * send an email through this transport\n         * @param  {Object}   email\n         * @param  {Function} callback\n         * @return {void}\n         */\n        send(email, callback) {\n            // indicate that sendMail() has been called\n            debug('transporter.send', email);\n            // start with a basic info object\n            const info = messages_1.messages.info();\n            const { mock: parent } = this.nodemailermock;\n            this.determineResponseSuccess(email)\n                .then(() => {\n                // Resolve/Success\n                // add the email to our cache\n                this.handlers.addSentMail(email.data);\n                // update the response\n                info.response = parent.getSuccessResponse();\n                // indicate that we are sending success\n                debug('transporter.send', 'SUCCESS', info);\n                // return success\n                return callback && callback(null, info);\n            })\n                .catch(() => {\n                // Reject/Failure\n                // update the response\n                info.response = parent.getFailResponse();\n                // indicate that we are sending an error\n                debug('transporter.send', 'FAIL', info.response, info);\n                // return the error\n                return callback && callback(info.response, info);\n            });\n        }\n        verify(callback) {\n            const { mock: parent } = this.nodemailermock;\n            // should we mock the verify request?\n            const isPromise = !callback && typeof Promise === 'function';\n            if (!this.realmailer || parent.isMockedVerify()) {\n                if (!isPromise) {\n                    this.determineResponseSuccess()\n                        .then(() => callback && callback(null, true))\n                        .catch(() => callback && callback(parent.getFailResponse(), true));\n                    return;\n                }\n                return this.determineResponseSuccess()\n                    .then(() => Promise.resolve(true))\n                    .catch(() => Promise.reject(parent.getFailResponse()));\n            }\n            // use the real nodemailer transport to verify\n            return typeof callback !== 'undefined'\n                ? this.realmailer.verify(callback)\n                : this.realmailer.verify();\n        }\n        isIdle() {\n            return this._isIdle;\n        }\n        close() {\n            this._closeCallCount += 1;\n            this.handlers.incrementCloseCallCount();\n            debug('transport.close()', this._closeCallCount, this.nodemailermock.mock.getCloseCallCount());\n            const { mock: parent } = this.nodemailermock;\n            if (this.realmailer && !parent.isMockedClose()) {\n                this.realmailer.close();\n            }\n        }\n        async determineResponseSuccess(email) {\n            const { mock: parent } = this.nodemailermock;\n            // if shouldFailCheck defined use it\n            const _shouldFailCheck = parent.getShouldFailCheck();\n            if (email && _shouldFailCheck && _shouldFailCheck(email)) {\n                throw new Error('nodemailer-mock fail response');\n            }\n            // determine if we want to return an error\n            if (parent.isShouldFail()) {\n                // if this is a one time failure, reset the status\n                if (parent.isShouldFailOnce()) {\n                    parent.setShouldFail(false);\n                    parent.setShouldFailOnce(false);\n                }\n                throw new Error('nodemailer-mock fail response');\n            }\n            return true;\n        }\n    }\n    exports.NodemailerMockTransport = NodemailerMockTransport;\n    class NodemailerMockMail extends mailer_1.default {\n        mock;\n        nodemailermock;\n        transporter;\n        // transport plugins\n        _userPluginsDefault = {\n            compile: [],\n            stream: [],\n        };\n        _userPlugins = new Map(Object.entries(this._userPluginsDefault));\n        constructor(nodemailermock, transport) {\n            super(transport);\n            this.nodemailermock = nodemailermock;\n            this.transporter = transport;\n            this.mock = {\n                /**\n                 * get a dictionary of plugins used by this transport\n                 * @return {{ [key: string]: Mail.PluginFunction<Mail.Options>[] }} plugins keyed by the step id\n                 */\n                getPlugins: () => Object.fromEntries(this._userPlugins),\n                getCloseCallCount: () => {\n                    return this.transporter._closeCallCount;\n                },\n                setIdle: (isIdle) => {\n                    if (isIdle) {\n                        this.transporter._isIdle = true;\n                        this.emit('idle');\n                    }\n                    else {\n                        this.transporter._isIdle = false;\n                    }\n                },\n            };\n        }\n        use(step, plugin) {\n            const stepId = (step || '').toString();\n            let plugins = this._userPlugins.get(stepId);\n            if (typeof plugins !== 'undefined') {\n                plugins.push(plugin);\n            }\n            else {\n                plugins = [plugin];\n            }\n            this._userPlugins.set(stepId, plugins);\n            if (this.nodemailermock.mock.isUnmockedUsePlugins()) {\n                return super.use(step, plugin);\n            }\n            return this;\n        }\n    }\n    exports.NodemailerMockMail = NodemailerMockMail;\n    // export the mock instance\n    exports.mocked = new NodemailerMocked(Nodemailer);\n    // expose the mock functions\n    exports.createTransport = exports.mocked.createTransport, exports.mock = exports.mocked.mock, exports.nodemailer = exports.mocked.nodemailer;\n    // use this to pass in a real nodemailer instance\n    const getMockFor = (nodemailer) => {\n        return new NodemailerMocked(nodemailer);\n    };\n    exports.getMockFor = getMockFor;\n    exports.default = exports.mocked;\n});\n"]}