{"version":3,"sources":["jsdelivr-header.js","/npm/slack-markdown@0.3.0/index.js"],"names":[],"mappings":"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","file":"/npm/slack-markdown@0.3.0/index.js","sourceRoot":"","sourcesContent":["/**\n * Minified by jsDelivr using Terser v5.39.0.\n * Original file: /npm/slack-markdown@0.3.0/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","const markdown = require(\"simple-markdown\");\nconst escapeHtml = require(\"escape-html\");\nconst emoji = require(\"node-emoji\");\n\nfunction htmlTag(tagName, content, attributes, isClosed = true, state = {}) {\n\tif (typeof isClosed === \"object\") {\n\t\tstate = isClosed;\n\t\tisClosed = true;\n\t}\n\tif (!attributes) {\n\t\tattributes = {};\n\t}\n\tif (attributes.class) {\n\t\tattributes.class = attributes.class.split(\" \").map((cl) => state.cssModuleNames[cl] || cl).join(\" \");\n\t}\n\tlet attributeString = \"\";\n\tfor (let attr in attributes) {\n\t\tif (Object.prototype.hasOwnProperty.call(attributes, attr) && attributes[attr]) {\n\t\t\tattributeString += ` ${markdown.sanitizeText(attr)}=\"${markdown.sanitizeText(attributes[attr])}\"`;\n\t\t}\n\t}\n\tlet unclosedTag = `<${tagName}${attributeString}>`;\n\tif (isClosed) {\n\t\treturn unclosedTag + content + `</${tagName}>`;\n\t}\n\treturn unclosedTag;\n}\nmarkdown.htmlTag = htmlTag;\n\nfunction htmlSlackTag(content, attributes, state) {\n\tif (state.noExtraSpanTags) {\n\t\treturn content;\n\t}\n\treturn htmlTag(\"span\", content, attributes, state);\n}\n\nconst rulesUniversal = {\n\temoji: {\n\t\torder: markdown.defaultRules.strong.order,\n\t\tmatch: (source) => /^:([a-zA-Z0-9_\\-+]+):/.exec(source),\n\t\tparse: (capture) => {\n\t\t\tconst code = capture[1];\n\n\t\t\t// slack uses <emoji>_face sometimes, so fallback to that\n\t\t\tconst result = emoji.findByName(code) || emoji.findByName(code + \"_face\");\n\n\t\t\treturn {\n\t\t\t\tcontent: result ? result.emoji : `:${code}:`,\n\t\t\t\tisEmoji: !!result,\n\t\t\t};\n\t\t},\n\t\thtml: (node, output, state) => {\n\t\t\tconst content = markdown.sanitizeText(node.content);\n\t\t\tif (!node.isEmoji || state.noExtraEmojiSpanTags) return content;\n\t\t\treturn htmlTag(\"span\", content, { class: \"s-emoji\" }, state);\n\t\t},\n\t},\n\ttext: Object.assign({}, markdown.defaultRules.text, {\n\t\tmatch: (source) => /^[\\s\\S]+?(?=[^0-9A-Za-z\\s\\u00c0-\\uffff-]|\\n\\n|\\n|\\w+:\\S|$)/.exec(source),\n\t\thtml: (node, output, state) => {\n\t\t\tconst content = emoji.emojify(node.content);\n\t\t\tif (state.escapeHTML) {\n\t\t\t\treturn markdown.sanitizeText(content);\n\t\t\t}\n\n\t\t\treturn content;\n\t\t},\n\t}),\n};\n\nconst rules = {\n\tblockQuote: Object.assign({}, markdown.defaultRules.blockQuote, {\n\t\tmatch: (source, state, prevSource) => !/^$|\\n *$/.test(prevSource) || state.inQuote ? null : /^( *> [^\\n]*(\\n *> [^\\n]*)*\\n?)/.exec(source),\n\t\tparse: (capture, parse, state) => {\n\t\t\tconst all = capture[0];\n\t\t\tconst removeSyntaxRegex = /^ *> ?/gm;\n\t\t\tconst content = all.replace(removeSyntaxRegex, \"\");\n\n\t\t\tstate.inQuote = true;\n\t\t\tstate.inline = true;\n\t\t\tconst parsed = parse(content, state);\n\t\t\tstate.inQuote = state.inQuote || false;\n\t\t\tstate.inline = state.inline || false;\n\n\t\t\treturn {\n\t\t\t\tcontent: parsed,\n\t\t\t\ttype: \"blockQuote\",\n\t\t\t};\n\t\t},\n\t}),\n\tcodeBlock: Object.assign({}, markdown.defaultRules.codeBlock, {\n\t\tmatch: markdown.inlineRegex(/^```([^]+?`*)\\n*```/i),\n\t\tparse: (capture, parse, state) => {\n\t\t\treturn {\n\t\t\t\tcontent: capture[1] || \"\",\n\t\t\t\tinQuote: state.inQuote || false,\n\t\t\t};\n\t\t},\n\t\thtml: (node, output, state) => {\n\t\t\tconst codeHtml = escapeHtml(node.content);\n\t\t\treturn htmlTag(\"pre\", htmlTag(\"code\", codeHtml, null, state), null, state);\n\t\t},\n\t}),\n\tnewline: markdown.defaultRules.newline,\n\tautolink: Object.assign({}, markdown.defaultRules.autolink, {\n\t\torder: markdown.defaultRules.strong.order + 1,\n\t\tmatch: markdown.inlineRegex(/^<((?:(?:(?:ht|f)tps?|ssh|irc):\\/\\/|mailto:|tel:)[^|>]+)(\\|([^>]*))?>/),\n\t\tparse: (capture, parse, state) => {\n\t\t\tconst content = capture[3] ? parse(capture[3], state) : [{\n\t\t\t\ttype: \"text\",\n\t\t\t\tcontent: capture[1],\n\t\t\t}];\n\t\t\treturn {\n\t\t\t\tcontent,\n\t\t\t\ttarget: capture[1],\n\t\t\t};\n\t\t},\n\t\thtml: (node, output, state) => {\n\t\t\tconst attrs = { href: markdown.sanitizeUrl(node.target) };\n\t\t\tif (state.hrefTarget) {\n\t\t\t\tattrs.target = state.hrefTarget;\n\t\t\t}\n\t\t\treturn htmlTag(\"a\", output(node.content, state), attrs, state);\n\t\t},\n\t}),\n\turl: Object.assign({ }, markdown.defaultRules.url, {\n\t\tparse: (capture) => {\n\t\t\treturn {\n\t\t\t\tcontent: [{\n\t\t\t\t\ttype: \"text\",\n\t\t\t\t\tcontent: capture[1],\n\t\t\t\t}],\n\t\t\t\ttarget: capture[1]\n\t\t\t}\n\t\t},\n\t\thtml: (node, output, state) => {\n\t\t\tconst attrs = { href: markdown.sanitizeUrl(node.target) };\n\t\t\tif (state.hrefTarget) {\n\t\t\t\tattrs.target = state.hrefTarget;\n\t\t\t}\n\t\t\treturn htmlTag(\"a\", output(node.content, state), attrs, state);\n\t\t},\n\t}),\n\tnoem: {\n\t\torder: markdown.defaultRules.text.order,\n\t\tmatch: (source) => /^\\\\_/.exec(source),\n\t\tparse: function() {\n\t\t\treturn {\n\t\t\t\ttype: \"text\",\n\t\t\t\tcontent: \"\\\\_\",\n\t\t\t};\n\t\t},\n\t\thtml: function(node, output, state) {\n\t\t\treturn output(node.content, state);\n\t\t},\n\t},\n\tem: Object.assign({}, markdown.defaultRules.em, {\n\t\tmatch: markdown.inlineRegex(/^\\b_(\\S(?:\\\\[\\s\\S]|[^\\\\])*?\\S|\\S)_(?!_)\\b/),\n\t\tparse: (capture, parse) => {\n\t\t\treturn {\n\t\t\t\tcontent: parse(capture[1]),\n\t\t\t\ttype: \"em\",\n\t\t\t};\n\t\t},\n\t}),\n\tstrong: Object.assign({}, markdown.defaultRules.strong, {\n\t\tmatch: markdown.inlineRegex(/^\\*(\\S(?:\\\\[\\s\\S]|[^\\\\])*?\\S|\\S)\\*(?!\\*)/),\n\t}),\n\tstrike: Object.assign({}, markdown.defaultRules.del, {\n\t\tmatch: markdown.inlineRegex(/^~(\\S(?:\\\\[\\s\\S]|[^\\\\])*?\\S|\\S)~(?!~)/),\n\t}),\n\tinlineCode: markdown.defaultRules.inlineCode,\n\tbr: Object.assign({ }, markdown.defaultRules.br, {\n\t\tmatch: markdown.anyScopeRegex(/^\\n/),\n\t}),\n};\n\nconst slackCallbackDefaults = {\n\tuser: (node) => \"@\" + (node.name || node.id),\n\tchannel: (node) => \"#\" + (node.name || node.id),\n\tusergroup: (node) => \"^\" + (node.name || node.id),\n\tatHere: (node) => \"@\" + (node.name || \"here\"),\n\tatChannel: (node) => \"@\" + (node.name || \"channel\"),\n\tatEveryone: (node) => \"@\" + (node.name || \"everyone\"),\n\tdate: (node) => node.fallback,\n};\n\nconst rulesSlack = {\n\tslackUser: {\n\t\torder: markdown.defaultRules.strong.order,\n\t\tmatch: (source) => /^<@([^|>]+)(\\|([^>]*))?>/.exec(source),\n\t\tparse: (capture, parse, state) => {\n\t\t\tconst name = capture[3] ? parse(capture[3], state) : \"\";\n\t\t\treturn {\n\t\t\t\tid: capture[1],\n\t\t\t\tcontent: name,\n\t\t\t};\n\t\t},\n\t\thtml: (node, output, state) => {\n\t\t\tconst newNode = {\n\t\t\t\tid: node.id,\n\t\t\t\tname: node.content ? output(node.content, state) : \"\",\n\t\t\t};\n\t\t\treturn htmlSlackTag(state.slackCallbacks.user(newNode), { class: \"s-mention s-user\" }, state);\n\t\t},\n\t},\n\tslackChannel: {\n\t\torder: markdown.defaultRules.strong.order,\n\t\tmatch: (source) => /^<#([^|>]+)(\\|([^>]*))?>/.exec(source),\n\t\tparse: (capture, parse, state) => {\n\t\t\tconst name = capture[3] ? parse(capture[3], state) : \"\";\n\t\t\treturn {\n\t\t\t\tid: capture[1],\n\t\t\t\tcontent: name,\n\t\t\t};\n\t\t},\n\t\thtml: (node, output, state) => {\n\t\t\tconst newNode = {\n\t\t\t\tid: node.id,\n\t\t\t\tname: node.content ? output(node.content, state) : \"\",\n\t\t\t};\n\t\t\treturn htmlSlackTag(state.slackCallbacks.channel(newNode), { class: \"s-mention s-channel\" }, state);\n\t\t},\n\t},\n\tslackUserGroup: {\n\t\torder: markdown.defaultRules.strong.order,\n\t\tmatch: (source) => /^<!subteam\\^([^|>]+)(\\|([^>]+))?>/.exec(source),\n\t\tparse: (capture, parse, state) => {\n\t\t\tconst name = capture[3] ? parse(capture[3], state) : \"\";\n\t\t\treturn {\n\t\t\t\tid: capture[1],\n\t\t\t\tcontent: name,\n\t\t\t};\n\t\t},\n\t\thtml: (node, output, state) => {\n\t\t\tconst newNode = {\n\t\t\t\tid: node.id,\n\t\t\t\tname: node.content ? output(node.content, state) : \"\",\n\t\t\t};\n\t\t\treturn htmlSlackTag(state.slackCallbacks.usergroup(newNode), { class: \"s-mention s-usergroup\" }, state);\n\t\t},\n\t},\n\tslackAtHere: {\n\t\torder: markdown.defaultRules.strong.order,\n\t\tmatch: (source) => /^<!here(\\|([^>]*))?>/.exec(source),\n\t\tparse: (capture, parse, state) => {\n\t\t\tconst name = capture[2] ? parse(capture[2], state) : \"\";\n\t\t\treturn {\n\t\t\t\tcontent: name,\n\t\t\t};\n\t\t},\n\t\thtml: (node, output, state) => {\n\t\t\tconst newNode = {\n\t\t\t\tname: node.content ? output(node.content, state) : \"\",\n\t\t\t};\n\t\t\treturn htmlSlackTag(state.slackCallbacks.atHere(newNode), { class: \"s-mention s-at-here\" }, state);\n\t\t},\n\t},\n\tslackAtChannel: {\n\t\torder: markdown.defaultRules.strong.order,\n\t\tmatch: (source) => /^<!channel(\\|([^>]*))?>/.exec(source),\n\t\tparse: (capture, parse, state) => {\n\t\t\tconst name = capture[2] ? parse(capture[2], state) : \"\";\n\t\t\treturn {\n\t\t\t\tcontent: name,\n\t\t\t};\n\t\t},\n\t\thtml: (node, output, state) => {\n\t\t\tconst newNode = {\n\t\t\t\tname: node.content ? output(node.content, state) : \"\",\n\t\t\t};\n\t\t\treturn htmlSlackTag(state.slackCallbacks.atChannel(newNode), { class: \"s-mention s-at-channel\" }, state);\n\t\t},\n\t},\n\tslackAtEveryone: {\n\t\torder: markdown.defaultRules.strong.order,\n\t\tmatch: (source) => /^<!everyone(\\|([^>]*))?>/.exec(source),\n\t\tparse: (capture, parse, state) => {\n\t\t\tconst name = capture[2] ? parse(capture[2], state) : \"\";\n\t\t\treturn {\n\t\t\t\tcontent: name,\n\t\t\t};\n\t\t},\n\t\thtml: (node, output, state) => {\n\t\t\tconst newNode = {\n\t\t\t\tname: node.content ? output(node.content, state) : \"\",\n\t\t\t};\n\t\t\treturn htmlSlackTag(state.slackCallbacks.atEveryone(newNode), { class: \"s-mention s-at-everyone\" }, state);\n\t\t},\n\t},\n\tslackDate: {\n\t\torder: markdown.defaultRules.strong.order,\n\t\tmatch: (source) => /^<!date\\^([^|>^]+)\\^([^|>^]+)(\\^([^|>^]+))?(\\|([^>]*))?>/.exec(source),\n\t\tparse: (capture, parse, state) => {\n\t\t\tconst name = capture[6] ? parse(capture[6], state) : \"\";\n\t\t\tconst timestamp = capture[1];\n\t\t\tconst format = capture[2];\n\t\t\tconst link = capture[4];\n\t\t\treturn {\n\t\t\t\ttimestamp,\n\t\t\t\tformat,\n\t\t\t\tlink,\n\t\t\t\tcontent: name,\n\t\t\t};\n\t\t},\n\t\thtml: (node, output, state) => {\n\t\t\tconst newNode = {\n\t\t\t\ttimestamp: node.timestamp,\n\t\t\t\tformat: node.format,\n\t\t\t\tlink: node.link,\n\t\t\t\tfallback: node.content ? output(node.content, state) : \"\",\n\t\t\t};\n\t\t\treturn htmlSlackTag(state.slackCallbacks.date(newNode), { class: \"s-mention s-date\" }, state);\n\t\t},\n\t}\n};\nObject.assign(rules, rulesSlack);\nObject.assign(rules, rulesUniversal);\n\nconst rulesSlackOnly = Object.assign({}, rulesSlack, rulesUniversal);\n\nconst parser = markdown.parserFor(rules);\nconst htmlOutput = markdown.htmlFor(markdown.ruleOutput(rules, \"html\"));\nconst parserSlack = markdown.parserFor(rulesSlackOnly);\nconst htmlOutputSlack = markdown.htmlFor(markdown.ruleOutput(rulesSlackOnly, \"html\"));\n\nfunction toHTML(source, opts) {\n\tconst options = Object.assign({\n\t\tescapeHTML: true,\n\t\tslackOnly: false,\n\t\tslackCallbacks: {},\n\t\tcssModuleNames: {},\n\t\tnoExtraSpanTags: false,\n\t\tnoExtraEmojiSpanTags: false,\n\t\threfTarget: \"\",\n\t}, opts || {});\n\tlet _parser = parser;\n\tlet _htmlOutput = htmlOutput;\n\tif (options.slackOnly) {\n\t\t_parser = parserSlack;\n\t\t_htmlOutput = htmlOutputSlack;\n\t}\n\n\tconst state = {\n\t\tinline: true,\n\t\tinQuote: false,\n\t\tescapeHTML: options.escapeHTML,\n\t\tcssModuleNames: options.cssModuleNames,\n\t\tslackCallbacks: Object.assign({}, slackCallbackDefaults, options.slackCallbacks),\n\t\tnoExtraSpanTags: options.noExtraSpanTags,\n\t\tnoExtraEmojiSpanTags: options.noExtraEmojiSpanTags,\n\t\threfTarget: options.hrefTarget,\n\t};\n\n\treturn _htmlOutput(_parser(source, state), state);\n}\n\nmodule.exports = {\n\trules,\n\trulesSlack,\n\trulesUniversal,\n\ttoHTML,\n};\n"]}