{"version":3,"sources":["jsdelivr-header.js","/npm/slack-notifier@0.0.3/slack-notifier.js"],"names":[],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA,CCFC,WACG,aAGA,IAAI,EAAyB,oBAAX,QAA0B,OAAO,QAAW,SAAW,SAErE,EAAgB,SAAS,GACzB,IAAI,EAAW,CAAC,EACZ,EAAgB,WAAR,EAAoB,sBAAwB,wBACpD,EAAW,KAEf,MAAO,CAaH,UAAW,SAAS,GAChB,IAAK,EACD,KAAM,4CAGuB,mBAAtB,EAAgB,WACvB,EAAW,EAAQ,gBACZ,EAAQ,UAEnB,EAAW,CACf,EAeA,KAAM,SAAS,EAAM,GACjB,IAAyB,IAArB,EAAS,QAAb,CAKA,IAAI,EAAK,KAyBT,GAxBsB,iBAAZ,GAEF,EAAM,MACN,EAAS,IAAM,EAAM,KAErB,EAAM,WACN,EAAS,SAAW,EAAM,UAE1B,EAAM,WACN,EAAS,QAAU,EAAM,UAEzB,EAAM,aACN,EAAS,UAAY,EAAM,YAE3B,EAAM,UACN,EAAS,QAAU,EAAM,SAEzB,EAAM,WACN,EAAK,EAAM,WAEU,mBAAZ,IACb,EAAK,IAGJ,EAAS,IACV,MAAM,EAAO,uCAGZ,EAAS,WACV,EAAS,SAAW,GAGH,iBAAX,EACN,EAAS,KAAO,EACQ,iBAAX,IACT,EAAK,MACL,EAAS,KAAO,MAAQ,EAAK,MAAQ,MAErC,EAAS,KAAO,GAIxB,IAAI,EAAW,CACX,KAAM,EAAS,MAEf,EAAS,WACT,EAAS,SAAW,EAAS,UAE7B,EAAS,UACT,EAAS,SAAW,EAAS,SAE7B,EAAS,YACT,EAAS,WAAa,EAAS,WAE/B,EAAS,UACT,EAAS,QAAU,EAAS,SAGpB,WAAR,EACA,EAAQ,KAAK,EAAS,KACjB,KAAK,GACL,KAAI,SAAS,GACV,GAAI,EACA,MAAM,EAGV,QAAQ,IAAI,EAAO,kCAEf,EACA,IACO,GACP,GAER,IAEJ,EAAQ,KAAK,CACT,KAAM,OACN,IAAK,EAAS,IACd,KAAM,KAAK,UAAU,GACrB,aAAa,EACb,QAAS,SAAS,GACD,OAAT,GACA,QAAQ,IAAI,EAAO,kCAEf,EACA,IACO,GACP,KAGJ,QAAQ,IAAI,EAAO,KAAO,EAElC,EACA,MAAO,SAAS,EAAK,EAAQ,GACzB,MAAM,CACV,GAlGR,MAFI,QAAQ,IAAI,EAAO,gBAuG3B,EAER,EAGY,WAAR,EAEA,QAAU,OAAO,QAAU,EAAc,QAAQ,eAGjD,OAAO,cAAgB,EAAc,OAE7C,CAtKA","file":"/npm/slack-notifier@0.0.3/slack-notifier.js","sourceRoot":"","sourcesContent":["/**\n * Minified by jsDelivr using Terser v5.37.0.\n * Original file: /npm/slack-notifier@0.0.3/slack-notifier.js\n *\n * Do NOT use SRI with dynamically generated files! More information: https://www.jsdelivr.com/using-sri-with-dynamic-files\n */\n","/**\r\n * slack-notifier.js 0.0.3\r\n * slack-notifier may be freely distributed under the MIT license.\r\n */\r\n(function() {\r\n    'use strict';\r\n\r\n    // Establish the running environment: server (node.js) or client (browser)\r\n    var env = (typeof module !== 'undefined' && module.exports) ? 'server' : 'client';\r\n\r\n    var slackNotifier = function(request) {\r\n        var settings = {};\r\n        var name = (env === 'server') ? 'Node Slack Notifier' : 'Client Slack Notifier';\r\n        var callback = null;\r\n\r\n        return {\r\n            /**\r\n             * Configure a Slack Incoming Webhook\r\n             * This will be used as global configuration\r\n             * @param {Object}   options            The configuration options\r\n             * @param {Boolean}  options.enabled    Notification sending On or Off; defaults to `true`\r\n             * @param {String}   options.url        (require) Send your JSON payloads to this URL.\r\n             * @param {String}   options.username   The username that this integration will post as.\r\n             * @param {String}   options.icon_url   The icon image URL that is used for sender avator\r\n             * @param {String}   options.icon_emoji The slack emoji icon that is used for sender avator, e.g., :ghost:\r\n             * @param {String}   options.channel    The slack channel where messages are sent to\r\n             * @param {Function} options.callback   The callback function to be called when the notification is sent\r\n             */\r\n            configure: function(options) {\r\n                if (!options) {\r\n                    throw 'The parameter \"options\" must be provided.';\r\n                }\r\n\r\n                if (typeof(options.callback) === 'function') {\r\n                    callback = options.callback;\r\n                    delete options.callback;\r\n                }\r\n                settings = options;\r\n            },\r\n            /**\r\n             * Post to Slack\r\n             * @param {String|Object} data             The text or the error object that will be posted\r\n             *\r\n             * @param {Function}      param            The callback function to be called when the notification is sent\r\n             *                                         [OR]\r\n             * @param {Object}        param            Optional configuration that overwrites the global setting for the current hook\r\n             * @param {String}        param.url        Send your JSON payloads to this URL.\r\n             * @param {String}        param.username   The username that this integration will post as.\r\n             * @param {String}        param.icon_url   The icon image URL that is used for sender avator\r\n             * @param {String}        param.icon_emoji The slack emoji icon that is used for sender avator, e.g., :ghost:\r\n             * @param {String}        param.channel    The slack channel where messages are sent to\r\n             * @param {Function}      param.callback   The callback function to be called when the notification is sent\r\n             */\r\n            send: function(data, param) {\r\n                if (settings.enabled === false) {\r\n                    console.log(name + ' is disabled.');\r\n                    return;\r\n                }\r\n\r\n                var fn = null;\r\n                if (typeof(param) === 'object') {\r\n                    // overwrite settings\r\n                    if (param.url) {\r\n                        settings.url = param.url;\r\n                    }\r\n                    if (param.username) {\r\n                        settings.username = param.username;\r\n                    }\r\n                    if (param.icon_url) {\r\n                        settings.iconUrl = param.icon_url;\r\n                    }\r\n                    if (param.icon_emoji) {\r\n                        settings.iconEmoji = param.icon_emoji;\r\n                    }\r\n                    if (param.channel) {\r\n                        settings.channel = param.channel;\r\n                    }\r\n                    if (param.callback) {\r\n                        fn = param.callback;\r\n                    }\r\n                } else if (typeof(param) === 'function') {\r\n                    fn = param;\r\n                }\r\n\r\n                if (!settings.url) {\r\n                    throw name + ': Slack Webhook URL must be defined.';\r\n                }\r\n\r\n                if (!settings.username) { // use default name\r\n                    settings.username = name;\r\n                }\r\n\r\n                if (typeof(data) === 'string') {\r\n                    settings.text = data;\r\n                } else if (typeof(data) === 'object') {\r\n                    if (data.stack) {\r\n                        settings.text = '```' + data.stack + '```';\r\n                    } else {\r\n                        settings.text = data;\r\n                    }\r\n                }\r\n\r\n                var playload = {\r\n                    text: settings.text\r\n                };\r\n                if (settings.username) {\r\n                    playload.username = settings.username;\r\n                }\r\n                if (settings.iconUrl) {\r\n                    playload.icon_url = settings.iconUrl;\r\n                }\r\n                if (settings.iconEmoji) {\r\n                    playload.icon_emoji = settings.iconEmoji;\r\n                }\r\n                if (settings.channel) {\r\n                    playload.channel = settings.channel;\r\n                }\r\n\r\n                if (env === 'server') {\r\n                    request.post(settings.url)\r\n                        .send(playload)\r\n                        .end(function(err) {\r\n                            if (err) {\r\n                                throw err;\r\n                            }\r\n\r\n                            console.log(name + ' sent a notification to Slack.');\r\n\r\n                            if (fn) { // callback function given here\r\n                                fn();\r\n                            } else if (callback) { // callback functions for all\r\n                                callback();\r\n                            }\r\n                        });\r\n                } else {\r\n                    request.ajax({\r\n                        type: 'POST',\r\n                        url: settings.url,\r\n                        data: JSON.stringify(playload),\r\n                        crossDomain: true,\r\n                        success: function(data) {\r\n                            if (data === 'ok') {\r\n                                console.log(name + ' sent a notification to Slack.');\r\n\r\n                                if (fn) { // callback function given here\r\n                                    fn();\r\n                                } else if (callback) { // callback functions for all\r\n                                    callback();\r\n                                }\r\n                            } else {\r\n                                console.log(name + ': ' + data);\r\n                            }\r\n                        },\r\n                        error: function(xhr, status, error) {\r\n                            throw error;\r\n                        }\r\n                    });\r\n                }\r\n            }\r\n        };\r\n    };\r\n\r\n    // \"sync\" the behavior of node require() and browser <script> tag\r\n    if (env === 'server') {\r\n        // we're on node.js where we have the sweet module system to support exports and require\r\n        exports = module.exports = slackNotifier(require('superagent'));\r\n    } else {\r\n        // we're on browser, so let's \"call\" the defered self-executing function\r\n        window.slackNotifier = slackNotifier(jQuery); // given that jQuery library is included already\r\n    }\r\n}());\r\n"]}