/** * marked v16.2.1 - a markdown parser * Copyright (c) 2011-2025, Christopher Jeffrey. (MIT Licensed) * https://github.com/markedjs/marked */ /** * DO NOT EDIT THIS FILE * The code in this file is generated from files in ./src/ */ ((g, f) => { if (typeof exports == "object" && typeof module < "u") { module.exports = f(); } else if ("function" == typeof define && define.amd) { define("marked", f); } else { g["marked"] = f(); } })( typeof globalThis < "u" ? globalThis : typeof self < "u" ? self : this, function () { var exports = {}; var __exports = exports; var module = { exports }; ("use strict"); var H = Object.defineProperty; var be = Object.getOwnPropertyDescriptor; var Re = Object.getOwnPropertyNames; var Oe = Object.prototype.hasOwnProperty; var Te = (a, e) => { for (var t in e) H(a, t, { get: e[t], enumerable: !0 }); }, we = (a, e, t, n) => { if ((e && typeof e == "object") || typeof e == "function") for (const r of Re(e)) !Oe.call(a, r) && r !== t && H(a, r, { get: () => e[r], enumerable: !(n = be(e, r)) || n.enumerable, }); return a; }; var ye = (a) => we(H({}, "__esModule", { value: !0 }), a); var dt = {}; Te(dt, { Hooks: () => $, Lexer: () => x, Marked: () => A, Parser: () => b, Renderer: () => P, TextRenderer: () => S, Tokenizer: () => y, defaults: () => O, getDefaults: () => _, lexer: () => ht, marked: () => d, options: () => it, parse: () => pt, parseInline: () => ut, parser: () => ct, setOptions: () => ot, use: () => at, walkTokens: () => lt, }); module.exports = ye(dt); function _() { return { async: !1, breaks: !1, extensions: null, gfm: !0, hooks: null, pedantic: !1, renderer: null, silent: !1, tokenizer: null, walkTokens: null, }; } var O = _(); function N(a) { O = a; } var C = { exec: () => null }; function h(a, e = "") { let t = typeof a == "string" ? a : a.source, n = { replace: (r, i) => { let s = typeof i == "string" ? i : i.source; return (s = s.replace(m.caret, "$1")), (t = t.replace(r, s)), n; }, getRegex: () => new RegExp(t, e), }; return n; } var m = { codeRemoveIndent: /^(?: {1,4}| {0,3}\t)/gm, outputLinkReplace: /\\([[\]])/g, indentCodeCompensation: /^(\s+)(?:```)/, beginningSpace: /^\s+/, endingHash: /#$/, startingSpaceChar: /^ /, endingSpaceChar: / $/, nonSpaceChar: /[^ ]/, newLineCharGlobal: /\n/g, tabCharGlobal: /\t/g, multipleSpaceGlobal: /\s+/g, blankLine: /^[ \t]*$/, doubleBlankLine: /\n[ \t]*\n[ \t]*$/, blockquoteStart: /^ {0,3}>/, blockquoteSetextReplace: /\n {0,3}((?:=+|-+) *)(?=\n|$)/g, blockquoteSetextReplace2: /^ {0,3}>[ \t]?/gm, listReplaceTabs: /^\t+/, listReplaceNesting: /^ {1,4}(?=( {4})*[^ ])/g, listIsTask: /^\[[ xX]\] /, listReplaceTask: /^\[[ xX]\] +/, anyLine: /\n.*\n/, hrefBrackets: /^<(.*)>$/, tableDelimiter: /[:|]/, tableAlignChars: /^\||\| *$/g, tableRowBlankLine: /\n[ \t]*$/, tableAlignRight: /^ *-+: *$/, tableAlignCenter: /^ *:-+: *$/, tableAlignLeft: /^ *:-+ *$/, startATag: /^/i, startPreScriptTag: /^<(pre|code|kbd|script)(\s|>)/i, endPreScriptTag: /^<\/(pre|code|kbd|script)(\s|>)/i, startAngleBracket: /^$/, pedanticHrefTitle: /^([^'"]*[^\s])\s+(['"])(.*)\2/, unicodeAlphaNumeric: /[\p{L}\p{N}]/u, escapeTest: /[&<>"']/, escapeReplace: /[&<>"']/g, escapeTestNoEncode: /[<>"']|&(?!(#\d{1,7}|#[Xx][a-fA-F0-9]{1,6}|\w+);)/, escapeReplaceNoEncode: /[<>"']|&(?!(#\d{1,7}|#[Xx][a-fA-F0-9]{1,6}|\w+);)/g, unescapeTest: /&(#(?:\d+)|(?:#x[0-9A-Fa-f]+)|(?:\w+));?/gi, caret: /(^|[^[])\^/g, percentDecode: /%25/g, findPipe: /\|/g, splitPipe: / \|/, slashPipe: /\\\|/g, carriageReturn: /\r\n|\r/g, spaceLine: /^ +$/gm, notSpaceStart: /^\S*/, endingNewline: /\n$/, listItemRegex: (a) => new RegExp(`^( {0,3}${a})((?:[ ][^\\n]*)?(?:\\n|$))`), nextBulletRegex: (a) => new RegExp( `^ {0,${Math.min(3, a - 1)}}(?:[*+-]|\\d{1,9}[.)])((?:[ ][^\\n]*)?(?:\\n|$))`, ), hrRegex: (a) => new RegExp( `^ {0,${Math.min(3, a - 1)}}((?:- *){3,}|(?:_ *){3,}|(?:\\* *){3,})(?:\\n+|$)`, ), fencesBeginRegex: (a) => new RegExp(`^ {0,${Math.min(3, a - 1)}}(?:\`\`\`|~~~)`), headingBeginRegex: (a) => new RegExp(`^ {0,${Math.min(3, a - 1)}}#`), htmlBeginRegex: (a) => new RegExp(`^ {0,${Math.min(3, a - 1)}}<(?:[a-z].*>|!--)`, "i"), }, Pe = /^(?:[ \t]*(?:\n|$))+/, Se = /^((?: {4}| {0,3}\t)[^\n]+(?:\n(?:[ \t]*(?:\n|$))*)?)+/, $e = /^ {0,3}(`{3,}(?=[^`\n]*(?:\n|$))|~{3,})([^\n]*)(?:\n|$)(?:|([\s\S]*?)(?:\n|$))(?: {0,3}\1[~`]* *(?=\n|$)|$)/, I = /^ {0,3}((?:-[\t ]*){3,}|(?:_[ \t]*){3,}|(?:\*[ \t]*){3,})(?:\n+|$)/, _e = /^ {0,3}(#{1,6})(?=\s|$)(.*)(?:\n+|$)/, F = /(?:[*+-]|\d{1,9}[.)])/, ie = /^(?!bull |blockCode|fences|blockquote|heading|html|table)((?:.|\n(?!\s*?\n|bull |blockCode|fences|blockquote|heading|html|table))+?)\n {0,3}(=+|-+) *(?:\n+|$)/, oe = h(ie) .replace(/bull/g, F) .replace(/blockCode/g, /(?: {4}| {0,3}\t)/) .replace(/fences/g, / {0,3}(?:`{3,}|~{3,})/) .replace(/blockquote/g, / {0,3}>/) .replace(/heading/g, / {0,3}#{1,6}/) .replace(/html/g, / {0,3}<[^\n>]+>\n/) .replace(/\|table/g, "") .getRegex(), Le = h(ie) .replace(/bull/g, F) .replace(/blockCode/g, /(?: {4}| {0,3}\t)/) .replace(/fences/g, / {0,3}(?:`{3,}|~{3,})/) .replace(/blockquote/g, / {0,3}>/) .replace(/heading/g, / {0,3}#{1,6}/) .replace(/html/g, / {0,3}<[^\n>]+>\n/) .replace(/table/g, / {0,3}\|?(?:[:\- ]*\|)+[:\- ]*\n/) .getRegex(), Q = /^([^\n]+(?:\n(?!hr|heading|lheading|blockquote|fences|list|html|table| +\n)[^\n]+)*)/, Me = /^[^\n]+/, U = /(?!\s*\])(?:\\[\s\S]|[^[\]\\])+/, ze = h( /^ {0,3}\[(label)\]: *(?:\n[ \t]*)?([^<\s][^\s]*|<.*?>)(?:(?: +(?:\n[ \t]*)?| *\n[ \t]*)(title))? *(?:\n+|$)/, ) .replace("label", U) .replace( "title", /(?:"(?:\\"?|[^"\\])*"|'[^'\n]*(?:\n[^'\n]+)*\n?'|\([^()]*\))/, ) .getRegex(), Ae = h(/^( {0,3}bull)([ \t][^\n]+?)?(?:\n|$)/) .replace(/bull/g, F) .getRegex(), v = "address|article|aside|base|basefont|blockquote|body|caption|center|col|colgroup|dd|details|dialog|dir|div|dl|dt|fieldset|figcaption|figure|footer|form|frame|frameset|h[1-6]|head|header|hr|html|iframe|legend|li|link|main|menu|menuitem|meta|nav|noframes|ol|optgroup|option|p|param|search|section|summary|table|tbody|td|tfoot|th|thead|title|tr|track|ul", K = /|$))/, Ee = h( "^ {0,3}(?:<(script|pre|style|textarea)[\\s>][\\s\\S]*?(?:[^\\n]*\\n+|$)|comment[^\\n]*(\\n+|$)|<\\?[\\s\\S]*?(?:\\?>\\n*|$)|\\n*|$)|\\n*|$)|)[\\s\\S]*?(?:(?:\\n[ ]*)+\\n|$)|<(?!script|pre|style|textarea)([a-z][\\w-]*)(?:attribute)*? */?>(?=[ \\t]*(?:\\n|$))[\\s\\S]*?(?:(?:\\n[ ]*)+\\n|$)|(?=[ \\t]*(?:\\n|$))[\\s\\S]*?(?:(?:\\n[ ]*)+\\n|$))", "i", ) .replace("comment", K) .replace("tag", v) .replace( "attribute", / +[a-zA-Z:_][\w.:-]*(?: *= *"[^"\n]*"| *= *'[^'\n]*'| *= *[^\s"'=<>`]+)?/, ) .getRegex(), ae = h(Q) .replace("hr", I) .replace("heading", " {0,3}#{1,6}(?:\\s|$)") .replace("|lheading", "") .replace("|table", "") .replace("blockquote", " {0,3}>") .replace("fences", " {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n") .replace("list", " {0,3}(?:[*+-]|1[.)]) ") .replace( "html", ")|<(?:script|pre|style|textarea|!--)", ) .replace("tag", v) .getRegex(), Ce = h(/^( {0,3}> ?(paragraph|[^\n]*)(?:\n|$))+/) .replace("paragraph", ae) .getRegex(), W = { blockquote: Ce, code: Se, def: ze, fences: $e, heading: _e, hr: I, html: Ee, lheading: oe, list: Ae, newline: Pe, paragraph: ae, table: C, text: Me, }, se = h( "^ *([^\\n ].*)\\n {0,3}((?:\\| *)?:?-+:? *(?:\\| *:?-+:? *)*(?:\\| *)?)(?:\\n((?:(?! *\\n|hr|heading|blockquote|code|fences|list|html).*(?:\\n|$))*)\\n*|$)", ) .replace("hr", I) .replace("heading", " {0,3}#{1,6}(?:\\s|$)") .replace("blockquote", " {0,3}>") .replace("code", "(?: {4}| {0,3} )[^\\n]") .replace("fences", " {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n") .replace("list", " {0,3}(?:[*+-]|1[.)]) ") .replace( "html", ")|<(?:script|pre|style|textarea|!--)", ) .replace("tag", v) .getRegex(), Ie = { ...W, lheading: Le, table: se, paragraph: h(Q) .replace("hr", I) .replace("heading", " {0,3}#{1,6}(?:\\s|$)") .replace("|lheading", "") .replace("table", se) .replace("blockquote", " {0,3}>") .replace("fences", " {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n") .replace("list", " {0,3}(?:[*+-]|1[.)]) ") .replace( "html", ")|<(?:script|pre|style|textarea|!--)", ) .replace("tag", v) .getRegex(), }, Be = { ...W, html: h( `^ *(?:comment *(?:\\n|\\s*$)|<(tag)[\\s\\S]+? *(?:\\n{2,}|\\s*$)|\\s]*)*?/?> *(?:\\n{2,}|\\s*$))`, ) .replace("comment", K) .replace( /tag/g, "(?!(?:a|em|strong|small|s|cite|q|dfn|abbr|data|time|code|var|samp|kbd|sub|sup|i|b|u|mark|ruby|rt|rp|bdi|bdo|span|br|wbr|ins|del|img)\\b)\\w+(?!:|[^\\w\\s@]*@)\\b", ) .getRegex(), def: /^ *\[([^\]]+)\]: *]+)>?(?: +(["(][^\n]+[")]))? *(?:\n+|$)/, heading: /^(#{1,6})(.*)(?:\n+|$)/, fences: C, lheading: /^(.+?)\n {0,3}(=+|-+) *(?:\n+|$)/, paragraph: h(Q) .replace("hr", I) .replace( "heading", ` *#{1,6} *[^ ]`, ) .replace("lheading", oe) .replace("|table", "") .replace("blockquote", " {0,3}>") .replace("|fences", "") .replace("|list", "") .replace("|html", "") .replace("|tag", "") .getRegex(), }, qe = /^\\([!"#$%&'()*+,\-./:;<=>?@[\]\\^_`{|}~])/, ve = /^(`+)([^`]|[^`][\s\S]*?[^`])\1(?!`)/, le = /^( {2,}|\\)\n(?!\s*$)/, De = /^(`+|[^`])(?:(?= {2,}\n)|[\s\S]*?(?:(?=[\\]*?>/g, ce = /^(?:\*+(?:((?!\*)punct)|[^\s*]))|^_+(?:((?!_)punct)|([^\s_]))/, je = h(ce, "u").replace(/punct/g, D).getRegex(), Fe = h(ce, "u").replace(/punct/g, pe).getRegex(), he = "^[^_*]*?__[^_*]*?\\*[^_*]*?(?=__)|[^*]+(?=[^*])|(?!\\*)punct(\\*+)(?=[\\s]|$)|notPunctSpace(\\*+)(?!\\*)(?=punctSpace|$)|(?!\\*)punctSpace(\\*+)(?=notPunctSpace)|[\\s](\\*+)(?!\\*)(?=punct)|(?!\\*)punct(\\*+)(?!\\*)(?=punct)|notPunctSpace(\\*+)(?=notPunctSpace)", Qe = h(he, "gu") .replace(/notPunctSpace/g, ue) .replace(/punctSpace/g, X) .replace(/punct/g, D) .getRegex(), Ue = h(he, "gu") .replace(/notPunctSpace/g, He) .replace(/punctSpace/g, Ge) .replace(/punct/g, pe) .getRegex(), Ke = h( "^[^_*]*?\\*\\*[^_*]*?_[^_*]*?(?=\\*\\*)|[^_]+(?=[^_])|(?!_)punct(_+)(?=[\\s]|$)|notPunctSpace(_+)(?!_)(?=punctSpace|$)|(?!_)punctSpace(_+)(?=notPunctSpace)|[\\s](_+)(?!_)(?=punct)|(?!_)punct(_+)(?!_)(?=punct)", "gu", ) .replace(/notPunctSpace/g, ue) .replace(/punctSpace/g, X) .replace(/punct/g, D) .getRegex(), We = h(/\\(punct)/, "gu") .replace(/punct/g, D) .getRegex(), Xe = h(/^<(scheme:[^\s\x00-\x1f<>]*|email)>/) .replace("scheme", /[a-zA-Z][a-zA-Z0-9+.-]{1,31}/) .replace( "email", /[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+(@)[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)+(?![-_])/, ) .getRegex(), Je = h(K).replace("(?:-->|$)", "-->").getRegex(), Ve = h( "^comment|^|^<[a-zA-Z][\\w-]*(?:attribute)*?\\s*/?>|^<\\?[\\s\\S]*?\\?>|^|^", ) .replace("comment", Je) .replace( "attribute", /\s+[a-zA-Z:_][\w.:-]*(?:\s*=\s*"[^"]*"|\s*=\s*'[^']*'|\s*=\s*[^\s"'=<>`]+)?/, ) .getRegex(), q = /(?:\[(?:\\[\s\S]|[^[\]\\])*\]|\\[\s\S]|`[^`]*`|[^[\]\\`])*?/, Ye = h( /^!?\[(label)\]\(\s*(href)(?:(?:[ \t]*(?:\n[ \t]*)?)(title))?\s*\)/, ) .replace("label", q) .replace("href", /<(?:\\.|[^\n<>\\])+>|[^ \t\n\x00-\x1f]*/) .replace( "title", /"(?:\\"?|[^"\\])*"|'(?:\\'?|[^'\\])*'|\((?:\\\)?|[^)\\])*\)/, ) .getRegex(), de = h(/^!?\[(label)\]\[(ref)\]/) .replace("label", q) .replace("ref", U) .getRegex(), ke = h(/^!?\[(ref)\](?:\[\])?/) .replace("ref", U) .getRegex(), et = h("reflink|nolink(?!\\()", "g") .replace("reflink", de) .replace("nolink", ke) .getRegex(), J = { _backpedal: C, anyPunctuation: We, autolink: Xe, blockSkip: Ne, br: le, code: ve, del: C, emStrongLDelim: je, emStrongRDelimAst: Qe, emStrongRDelimUnd: Ke, escape: qe, link: Ye, nolink: ke, punctuation: Ze, reflink: de, reflinkSearch: et, tag: Ve, text: De, url: C, }, tt = { ...J, link: h(/^!?\[(label)\]\((.*?)\)/) .replace("label", q) .getRegex(), reflink: h(/^!?\[(label)\]\s*\[([^\]]*)\]/) .replace("label", q) .getRegex(), }, j = { ...J, emStrongRDelimAst: Ue, emStrongLDelim: Fe, url: h( /^((?:ftp|https?):\/\/|www\.)(?:[a-zA-Z0-9-]+\.?)+[^\s<]*|^email/, "i", ) .replace( "email", /[A-Za-z0-9._+-]+(@)[a-zA-Z0-9-_]+(?:\.[a-zA-Z0-9-_]*[a-zA-Z0-9])+(?![-_])/, ) .getRegex(), _backpedal: /(?:[^?!.,:;*_'"~()&]+|\([^)]*\)|&(?![a-zA-Z0-9]+;$)|[?!.,:;*_'"~)]+(?!$))+/, del: /^(~~?)(?=[^\s~])((?:\\[\s\S]|[^\\])*?(?:\\[\s\S]|[^\s~\\]))\1(?=[^~]|$)/, text: /^([`~]+|[^`~])(?:(?= {2,}\n)|(?=[a-zA-Z0-9.!#$%&'*+/=?_`{|}~-]+@)|[\s\S]*?(?:(?=[\\": ">", '"': """, "'": "'", }, ge = (a) => rt[a]; function w(a, e) { if (e) { if (m.escapeTest.test(a)) return a.replace(m.escapeReplace, ge); } else if (m.escapeTestNoEncode.test(a)) return a.replace(m.escapeReplaceNoEncode, ge); return a; } function V(a) { try { a = encodeURI(a).replace(m.percentDecode, "%"); } catch { return null; } return a; } function Y(a, e) { let t = a.replace(m.findPipe, (i, s, o) => { let l = !1, u = s; for (; --u >= 0 && o[u] === "\\"; ) l = !l; return l ? "|" : " |"; }), n = t.split(m.splitPipe), r = 0; if ( (n[0].trim() || n.shift(), n.length > 0 && !n.at(-1)?.trim() && n.pop(), e) ) if (n.length > e) n.splice(e); else for (; n.length < e; ) n.push(""); for (; r < n.length; r++) n[r] = n[r].trim().replace(m.slashPipe, "|"); return n; } function z(a, e, t) { const n = a.length; if (n === 0) return ""; let r = 0; for (; r < n; ) { const i = a.charAt(n - r - 1); if (i === e && !t) r++; else if (i !== e && t) r++; else break; } return a.slice(0, n - r); } function fe(a, e) { if (a.indexOf(e[1]) === -1) return -1; let t = 0; for (let n = 0; n < a.length; n++) if (a[n] === "\\") n++; else if (a[n] === e[0]) t++; else if (a[n] === e[1] && (t--, t < 0)) return n; return t > 0 ? -2 : -1; } function me(a, e, t, n, r) { const i = e.href, s = e.title || null, o = a[1].replace(r.other.outputLinkReplace, "$1"); n.state.inLink = !0; const l = { type: a[0].charAt(0) === "!" ? "image" : "link", raw: t, href: i, title: s, text: o, tokens: n.inlineTokens(o), }; return (n.state.inLink = !1), l; } function st(a, e, t) { const n = a.match(t.other.indentCodeCompensation); if (n === null) return e; const r = n[1]; return e .split(` `) .map((i) => { const s = i.match(t.other.beginningSpace); if (s === null) return i; const [o] = s; return o.length >= r.length ? i.slice(r.length) : i; }) .join(` `); } var y = class { options; rules; lexer; constructor(e) { this.options = e || O; } space(e) { const t = this.rules.block.newline.exec(e); if (t && t[0].length > 0) return { type: "space", raw: t[0] }; } code(e) { const t = this.rules.block.code.exec(e); if (t) { const n = t[0].replace(this.rules.other.codeRemoveIndent, ""); return { type: "code", raw: t[0], codeBlockStyle: "indented", text: this.options.pedantic ? n : z( n, ` `, ), }; } } fences(e) { const t = this.rules.block.fences.exec(e); if (t) { const n = t[0], r = st(n, t[3] || "", this.rules); return { type: "code", raw: n, lang: t[2] ? t[2].trim().replace(this.rules.inline.anyPunctuation, "$1") : t[2], text: r, }; } } heading(e) { const t = this.rules.block.heading.exec(e); if (t) { let n = t[2].trim(); if (this.rules.other.endingHash.test(n)) { const r = z(n, "#"); (this.options.pedantic || !r || this.rules.other.endingSpaceChar.test(r)) && (n = r.trim()); } return { type: "heading", raw: t[0], depth: t[1].length, text: n, tokens: this.lexer.inline(n), }; } } hr(e) { const t = this.rules.block.hr.exec(e); if (t) return { type: "hr", raw: z( t[0], ` `, ), }; } blockquote(e) { const t = this.rules.block.blockquote.exec(e); if (t) { let n = z( t[0], ` `, ).split(` `), r = "", i = "", s = []; for (; n.length > 0; ) { let o = !1, l = [], u; for (u = 0; u < n.length; u++) if (this.rules.other.blockquoteStart.test(n[u])) l.push(n[u]), (o = !0); else if (!o) l.push(n[u]); else break; n = n.slice(u); const p = l.join(` `), c = p .replace( this.rules.other.blockquoteSetextReplace, ` $1`, ) .replace(this.rules.other.blockquoteSetextReplace2, ""); (r = r ? `${r} ${p}` : p), (i = i ? `${i} ${c}` : c); const f = this.lexer.state.top; if ( ((this.lexer.state.top = !0), this.lexer.blockTokens(c, s, !0), (this.lexer.state.top = f), n.length === 0) ) break; const k = s.at(-1); if (k?.type === "code") break; if (k?.type === "blockquote") { const R = k, g = R.raw + ` ` + n.join(` `), T = this.blockquote(g); (s[s.length - 1] = T), (r = r.substring(0, r.length - R.raw.length) + T.raw), (i = i.substring(0, i.length - R.text.length) + T.text); break; } if (k?.type === "list") { const R = k, g = R.raw + ` ` + n.join(` `), T = this.list(g); (s[s.length - 1] = T), (r = r.substring(0, r.length - k.raw.length) + T.raw), (i = i.substring(0, i.length - R.raw.length) + T.raw), (n = g.substring(s.at(-1).raw.length).split(` `)); } } return { type: "blockquote", raw: r, tokens: s, text: i }; } } list(e) { let t = this.rules.block.list.exec(e); if (t) { let n = t[1].trim(), r = n.length > 1, i = { type: "list", raw: "", ordered: r, start: r ? +n.slice(0, -1) : "", loose: !1, items: [], }; (n = r ? `\\d{1,9}\\${n.slice(-1)}` : `\\${n}`), this.options.pedantic && (n = r ? n : "[*+-]"); let s = this.rules.other.listItemRegex(n), o = !1; for (; e; ) { let u = !1, p = "", c = ""; if (!(t = s.exec(e)) || this.rules.block.hr.test(e)) break; (p = t[0]), (e = e.substring(p.length)); let f = t[2] .split( ` `, 1, )[0] .replace(this.rules.other.listReplaceTabs, (Z) => " ".repeat(3 * Z.length), ), k = e.split( ` `, 1, )[0], R = !f.trim(), g = 0; if ( (this.options.pedantic ? ((g = 2), (c = f.trimStart())) : R ? (g = t[1].length + 1) : ((g = t[2].search(this.rules.other.nonSpaceChar)), (g = g > 4 ? 1 : g), (c = f.slice(g)), (g += t[1].length)), R && this.rules.other.blankLine.test(k) && ((p += k + ` `), (e = e.substring(k.length + 1)), (u = !0)), !u) ) { const Z = this.rules.other.nextBulletRegex(g), te = this.rules.other.hrRegex(g), ne = this.rules.other.fencesBeginRegex(g), re = this.rules.other.headingBeginRegex(g), xe = this.rules.other.htmlBeginRegex(g); for (; e; ) { let G = e.split( ` `, 1, )[0], E; if ( ((k = G), this.options.pedantic ? ((k = k.replace( this.rules.other.listReplaceNesting, " ", )), (E = k)) : (E = k.replace(this.rules.other.tabCharGlobal, " ")), ne.test(k) || re.test(k) || xe.test(k) || Z.test(k) || te.test(k)) ) break; if (E.search(this.rules.other.nonSpaceChar) >= g || !k.trim()) c += ` ` + E.slice(g); else { if ( R || f .replace(this.rules.other.tabCharGlobal, " ") .search(this.rules.other.nonSpaceChar) >= 4 || ne.test(f) || re.test(f) || te.test(f) ) break; c += ` ` + k; } !R && !k.trim() && (R = !0), (p += G + ` `), (e = e.substring(G.length + 1)), (f = E.slice(g)); } } i.loose || (o ? (i.loose = !0) : this.rules.other.doubleBlankLine.test(p) && (o = !0)); let T = null, ee; this.options.gfm && ((T = this.rules.other.listIsTask.exec(c)), T && ((ee = T[0] !== "[ ] "), (c = c.replace(this.rules.other.listReplaceTask, "")))), i.items.push({ type: "list_item", raw: p, task: !!T, checked: ee, loose: !1, text: c, tokens: [], }), (i.raw += p); } const l = i.items.at(-1); if (l) (l.raw = l.raw.trimEnd()), (l.text = l.text.trimEnd()); else return; i.raw = i.raw.trimEnd(); for (let u = 0; u < i.items.length; u++) if ( ((this.lexer.state.top = !1), (i.items[u].tokens = this.lexer.blockTokens(i.items[u].text, [])), !i.loose) ) { const p = i.items[u].tokens.filter((f) => f.type === "space"), c = p.length > 0 && p.some((f) => this.rules.other.anyLine.test(f.raw)); i.loose = c; } if (i.loose) for (let u = 0; u < i.items.length; u++) i.items[u].loose = !0; return i; } } html(e) { const t = this.rules.block.html.exec(e); if (t) return { type: "html", block: !0, raw: t[0], pre: t[1] === "pre" || t[1] === "script" || t[1] === "style", text: t[0], }; } def(e) { const t = this.rules.block.def.exec(e); if (t) { const n = t[1] .toLowerCase() .replace(this.rules.other.multipleSpaceGlobal, " "), r = t[2] ? t[2] .replace(this.rules.other.hrefBrackets, "$1") .replace(this.rules.inline.anyPunctuation, "$1") : "", i = t[3] ? t[3] .substring(1, t[3].length - 1) .replace(this.rules.inline.anyPunctuation, "$1") : t[3]; return { type: "def", tag: n, raw: t[0], href: r, title: i }; } } table(e) { const t = this.rules.block.table.exec(e); if (!t || !this.rules.other.tableDelimiter.test(t[2])) return; const n = Y(t[1]), r = t[2].replace(this.rules.other.tableAlignChars, "").split("|"), i = t[3]?.trim() ? t[3].replace(this.rules.other.tableRowBlankLine, "").split(` `) : [], s = { type: "table", raw: t[0], header: [], align: [], rows: [] }; if (n.length === r.length) { for (const o of r) this.rules.other.tableAlignRight.test(o) ? s.align.push("right") : this.rules.other.tableAlignCenter.test(o) ? s.align.push("center") : this.rules.other.tableAlignLeft.test(o) ? s.align.push("left") : s.align.push(null); for (let o = 0; o < n.length; o++) s.header.push({ text: n[o], tokens: this.lexer.inline(n[o]), header: !0, align: s.align[o], }); for (const o of i) s.rows.push( Y(o, s.header.length).map((l, u) => ({ text: l, tokens: this.lexer.inline(l), header: !1, align: s.align[u], })), ); return s; } } lheading(e) { const t = this.rules.block.lheading.exec(e); if (t) return { type: "heading", raw: t[0], depth: t[2].charAt(0) === "=" ? 1 : 2, text: t[1], tokens: this.lexer.inline(t[1]), }; } paragraph(e) { const t = this.rules.block.paragraph.exec(e); if (t) { const n = t[1].charAt(t[1].length - 1) === ` ` ? t[1].slice(0, -1) : t[1]; return { type: "paragraph", raw: t[0], text: n, tokens: this.lexer.inline(n), }; } } text(e) { const t = this.rules.block.text.exec(e); if (t) return { type: "text", raw: t[0], text: t[0], tokens: this.lexer.inline(t[0]), }; } escape(e) { const t = this.rules.inline.escape.exec(e); if (t) return { type: "escape", raw: t[0], text: t[1] }; } tag(e) { const t = this.rules.inline.tag.exec(e); if (t) return ( !this.lexer.state.inLink && this.rules.other.startATag.test(t[0]) ? (this.lexer.state.inLink = !0) : this.lexer.state.inLink && this.rules.other.endATag.test(t[0]) && (this.lexer.state.inLink = !1), !this.lexer.state.inRawBlock && this.rules.other.startPreScriptTag.test(t[0]) ? (this.lexer.state.inRawBlock = !0) : this.lexer.state.inRawBlock && this.rules.other.endPreScriptTag.test(t[0]) && (this.lexer.state.inRawBlock = !1), { type: "html", raw: t[0], inLink: this.lexer.state.inLink, inRawBlock: this.lexer.state.inRawBlock, block: !1, text: t[0], } ); } link(e) { const t = this.rules.inline.link.exec(e); if (t) { const n = t[2].trim(); if ( !this.options.pedantic && this.rules.other.startAngleBracket.test(n) ) { if (!this.rules.other.endAngleBracket.test(n)) return; const s = z(n.slice(0, -1), "\\"); if ((n.length - s.length) % 2 === 0) return; } else { const s = fe(t[2], "()"); if (s === -2) return; if (s > -1) { const l = (t[0].indexOf("!") === 0 ? 5 : 4) + t[1].length + s; (t[2] = t[2].substring(0, s)), (t[0] = t[0].substring(0, l).trim()), (t[3] = ""); } } let r = t[2], i = ""; if (this.options.pedantic) { const s = this.rules.other.pedanticHrefTitle.exec(r); s && ((r = s[1]), (i = s[3])); } else i = t[3] ? t[3].slice(1, -1) : ""; return ( (r = r.trim()), this.rules.other.startAngleBracket.test(r) && (this.options.pedantic && !this.rules.other.endAngleBracket.test(n) ? (r = r.slice(1)) : (r = r.slice(1, -1))), me( t, { href: r && r.replace(this.rules.inline.anyPunctuation, "$1"), title: i && i.replace(this.rules.inline.anyPunctuation, "$1"), }, t[0], this.lexer, this.rules, ) ); } } reflink(e, t) { let n; if ( (n = this.rules.inline.reflink.exec(e)) || (n = this.rules.inline.nolink.exec(e)) ) { const r = (n[2] || n[1]).replace( this.rules.other.multipleSpaceGlobal, " ", ), i = t[r.toLowerCase()]; if (!i) { const s = n[0].charAt(0); return { type: "text", raw: s, text: s }; } return me(n, i, n[0], this.lexer, this.rules); } } emStrong(e, t, n = "") { let r = this.rules.inline.emStrongLDelim.exec(e); if (!r || (r[3] && n.match(this.rules.other.unicodeAlphaNumeric))) return; if ( !(r[1] || r[2] || "") || !n || this.rules.inline.punctuation.exec(n) ) { let s = [...r[0]].length - 1, o, l, u = s, p = 0, c = r[0][0] === "*" ? this.rules.inline.emStrongRDelimAst : this.rules.inline.emStrongRDelimUnd; for ( c.lastIndex = 0, t = t.slice(-1 * e.length + s); (r = c.exec(t)) != null; ) { if (((o = r[1] || r[2] || r[3] || r[4] || r[5] || r[6]), !o)) continue; if (((l = [...o].length), r[3] || r[4])) { u += l; continue; } if ((r[5] || r[6]) && s % 3 && !((s + l) % 3)) { p += l; continue; } if (((u -= l), u > 0)) continue; l = Math.min(l, l + u + p); const f = [...r[0]][0].length, k = e.slice(0, s + r.index + f + l); if (Math.min(s, l) % 2) { const g = k.slice(1, -1); return { type: "em", raw: k, text: g, tokens: this.lexer.inlineTokens(g), }; } const R = k.slice(2, -2); return { type: "strong", raw: k, text: R, tokens: this.lexer.inlineTokens(R), }; } } } codespan(e) { const t = this.rules.inline.code.exec(e); if (t) { let n = t[2].replace(this.rules.other.newLineCharGlobal, " "), r = this.rules.other.nonSpaceChar.test(n), i = this.rules.other.startingSpaceChar.test(n) && this.rules.other.endingSpaceChar.test(n); return ( r && i && (n = n.substring(1, n.length - 1)), { type: "codespan", raw: t[0], text: n } ); } } br(e) { const t = this.rules.inline.br.exec(e); if (t) return { type: "br", raw: t[0] }; } del(e) { const t = this.rules.inline.del.exec(e); if (t) return { type: "del", raw: t[0], text: t[2], tokens: this.lexer.inlineTokens(t[2]), }; } autolink(e) { const t = this.rules.inline.autolink.exec(e); if (t) { let n, r; return ( t[2] === "@" ? ((n = t[1]), (r = "mailto:" + n)) : ((n = t[1]), (r = n)), { type: "link", raw: t[0], text: n, href: r, tokens: [{ type: "text", raw: n, text: n }], } ); } } url(e) { let t; if ((t = this.rules.inline.url.exec(e))) { let n, r; if (t[2] === "@") (n = t[0]), (r = "mailto:" + n); else { let i; do (i = t[0]), (t[0] = this.rules.inline._backpedal.exec(t[0])?.[0] ?? ""); while (i !== t[0]); (n = t[0]), t[1] === "www." ? (r = "http://" + t[0]) : (r = t[0]); } return { type: "link", raw: t[0], text: n, href: r, tokens: [{ type: "text", raw: n, text: n }], }; } } inlineText(e) { const t = this.rules.inline.text.exec(e); if (t) { const n = this.lexer.state.inRawBlock; return { type: "text", raw: t[0], text: t[0], escaped: n }; } } }; var x = class a { tokens; options; state; tokenizer; inlineQueue; constructor(e) { (this.tokens = []), (this.tokens.links = Object.create(null)), (this.options = e || O), (this.options.tokenizer = this.options.tokenizer || new y()), (this.tokenizer = this.options.tokenizer), (this.tokenizer.options = this.options), (this.tokenizer.lexer = this), (this.inlineQueue = []), (this.state = { inLink: !1, inRawBlock: !1, top: !0 }); const t = { other: m, block: B.normal, inline: M.normal }; this.options.pedantic ? ((t.block = B.pedantic), (t.inline = M.pedantic)) : this.options.gfm && ((t.block = B.gfm), this.options.breaks ? (t.inline = M.breaks) : (t.inline = M.gfm)), (this.tokenizer.rules = t); } static get rules() { return { block: B, inline: M }; } static lex(e, t) { return new a(t).lex(e); } static lexInline(e, t) { return new a(t).inlineTokens(e); } lex(e) { (e = e.replace( m.carriageReturn, ` `, )), this.blockTokens(e, this.tokens); for (let t = 0; t < this.inlineQueue.length; t++) { const n = this.inlineQueue[t]; this.inlineTokens(n.src, n.tokens); } return (this.inlineQueue = []), this.tokens; } blockTokens(e, t = [], n = !1) { for ( this.options.pedantic && (e = e.replace(m.tabCharGlobal, " ").replace(m.spaceLine, "")); e; ) { let r; if ( this.options.extensions?.block?.some((s) => (r = s.call({ lexer: this }, e, t)) ? ((e = e.substring(r.raw.length)), t.push(r), !0) : !1, ) ) continue; if ((r = this.tokenizer.space(e))) { e = e.substring(r.raw.length); const s = t.at(-1); r.raw.length === 1 && s !== void 0 ? (s.raw += ` `) : t.push(r); continue; } if ((r = this.tokenizer.code(e))) { e = e.substring(r.raw.length); const s = t.at(-1); s?.type === "paragraph" || s?.type === "text" ? ((s.raw += (s.raw.endsWith(` `) ? "" : ` `) + r.raw), (s.text += ` ` + r.text), (this.inlineQueue.at(-1).src = s.text)) : t.push(r); continue; } if ((r = this.tokenizer.fences(e))) { (e = e.substring(r.raw.length)), t.push(r); continue; } if ((r = this.tokenizer.heading(e))) { (e = e.substring(r.raw.length)), t.push(r); continue; } if ((r = this.tokenizer.hr(e))) { (e = e.substring(r.raw.length)), t.push(r); continue; } if ((r = this.tokenizer.blockquote(e))) { (e = e.substring(r.raw.length)), t.push(r); continue; } if ((r = this.tokenizer.list(e))) { (e = e.substring(r.raw.length)), t.push(r); continue; } if ((r = this.tokenizer.html(e))) { (e = e.substring(r.raw.length)), t.push(r); continue; } if ((r = this.tokenizer.def(e))) { e = e.substring(r.raw.length); const s = t.at(-1); s?.type === "paragraph" || s?.type === "text" ? ((s.raw += (s.raw.endsWith(` `) ? "" : ` `) + r.raw), (s.text += ` ` + r.raw), (this.inlineQueue.at(-1).src = s.text)) : this.tokens.links[r.tag] || ((this.tokens.links[r.tag] = { href: r.href, title: r.title }), t.push(r)); continue; } if ((r = this.tokenizer.table(e))) { (e = e.substring(r.raw.length)), t.push(r); continue; } if ((r = this.tokenizer.lheading(e))) { (e = e.substring(r.raw.length)), t.push(r); continue; } let i = e; if (this.options.extensions?.startBlock) { let s = 1 / 0, o = e.slice(1), l; this.options.extensions.startBlock.forEach((u) => { (l = u.call({ lexer: this }, o)), typeof l == "number" && l >= 0 && (s = Math.min(s, l)); }), s < 1 / 0 && s >= 0 && (i = e.substring(0, s + 1)); } if (this.state.top && (r = this.tokenizer.paragraph(i))) { const s = t.at(-1); n && s?.type === "paragraph" ? ((s.raw += (s.raw.endsWith(` `) ? "" : ` `) + r.raw), (s.text += ` ` + r.text), this.inlineQueue.pop(), (this.inlineQueue.at(-1).src = s.text)) : t.push(r), (n = i.length !== e.length), (e = e.substring(r.raw.length)); continue; } if ((r = this.tokenizer.text(e))) { e = e.substring(r.raw.length); const s = t.at(-1); s?.type === "text" ? ((s.raw += (s.raw.endsWith(` `) ? "" : ` `) + r.raw), (s.text += ` ` + r.text), this.inlineQueue.pop(), (this.inlineQueue.at(-1).src = s.text)) : t.push(r); continue; } if (e) { const s = "Infinite loop on byte: " + e.charCodeAt(0); if (this.options.silent) { console.error(s); break; } throw new Error(s); } } return (this.state.top = !0), t; } inline(e, t = []) { return this.inlineQueue.push({ src: e, tokens: t }), t; } inlineTokens(e, t = []) { let n = e, r = null; if (this.tokens.links) { const o = Object.keys(this.tokens.links); if (o.length > 0) for ( ; (r = this.tokenizer.rules.inline.reflinkSearch.exec(n)) != null; ) o.includes(r[0].slice(r[0].lastIndexOf("[") + 1, -1)) && (n = n.slice(0, r.index) + "[" + "a".repeat(r[0].length - 2) + "]" + n.slice(this.tokenizer.rules.inline.reflinkSearch.lastIndex)); } for ( ; (r = this.tokenizer.rules.inline.anyPunctuation.exec(n)) != null; ) n = n.slice(0, r.index) + "++" + n.slice(this.tokenizer.rules.inline.anyPunctuation.lastIndex); for (; (r = this.tokenizer.rules.inline.blockSkip.exec(n)) != null; ) n = n.slice(0, r.index) + "[" + "a".repeat(r[0].length - 2) + "]" + n.slice(this.tokenizer.rules.inline.blockSkip.lastIndex); let i = !1, s = ""; for (; e; ) { i || (s = ""), (i = !1); let o; if ( this.options.extensions?.inline?.some((u) => (o = u.call({ lexer: this }, e, t)) ? ((e = e.substring(o.raw.length)), t.push(o), !0) : !1, ) ) continue; if ((o = this.tokenizer.escape(e))) { (e = e.substring(o.raw.length)), t.push(o); continue; } if ((o = this.tokenizer.tag(e))) { (e = e.substring(o.raw.length)), t.push(o); continue; } if ((o = this.tokenizer.link(e))) { (e = e.substring(o.raw.length)), t.push(o); continue; } if ((o = this.tokenizer.reflink(e, this.tokens.links))) { e = e.substring(o.raw.length); const u = t.at(-1); o.type === "text" && u?.type === "text" ? ((u.raw += o.raw), (u.text += o.text)) : t.push(o); continue; } if ((o = this.tokenizer.emStrong(e, n, s))) { (e = e.substring(o.raw.length)), t.push(o); continue; } if ((o = this.tokenizer.codespan(e))) { (e = e.substring(o.raw.length)), t.push(o); continue; } if ((o = this.tokenizer.br(e))) { (e = e.substring(o.raw.length)), t.push(o); continue; } if ((o = this.tokenizer.del(e))) { (e = e.substring(o.raw.length)), t.push(o); continue; } if ((o = this.tokenizer.autolink(e))) { (e = e.substring(o.raw.length)), t.push(o); continue; } if (!this.state.inLink && (o = this.tokenizer.url(e))) { (e = e.substring(o.raw.length)), t.push(o); continue; } let l = e; if (this.options.extensions?.startInline) { let u = 1 / 0, p = e.slice(1), c; this.options.extensions.startInline.forEach((f) => { (c = f.call({ lexer: this }, p)), typeof c == "number" && c >= 0 && (u = Math.min(u, c)); }), u < 1 / 0 && u >= 0 && (l = e.substring(0, u + 1)); } if ((o = this.tokenizer.inlineText(l))) { (e = e.substring(o.raw.length)), o.raw.slice(-1) !== "_" && (s = o.raw.slice(-1)), (i = !0); const u = t.at(-1); u?.type === "text" ? ((u.raw += o.raw), (u.text += o.text)) : t.push(o); continue; } if (e) { const u = "Infinite loop on byte: " + e.charCodeAt(0); if (this.options.silent) { console.error(u); break; } throw new Error(u); } } return t; } }; var P = class { options; parser; constructor(e) { this.options = e || O; } space(e) { return ""; } code({ text: e, lang: t, escaped: n }) { const r = (t || "").match(m.notSpaceStart)?.[0], i = e.replace(m.endingNewline, "") + ` `; return r ? '
' +
							(n ? i : w(i, !0)) +
							`
` : "
" +
							(n ? i : w(i, !0)) +
							`
`; } blockquote({ tokens: e }) { return `
${this.parser.parse(e)}
`; } html({ text: e }) { return e; } def(e) { return ""; } heading({ tokens: e, depth: t }) { return `${this.parser.parseInline(e)} `; } hr(e) { return `
`; } list(e) { let t = e.ordered, n = e.start, r = ""; for (let o = 0; o < e.items.length; o++) { const l = e.items[o]; r += this.listitem(l); } const i = t ? "ol" : "ul", s = t && n !== 1 ? ' start="' + n + '"' : ""; return ( "<" + i + s + `> ` + r + " ` ); } listitem(e) { let t = ""; if (e.task) { const n = this.checkbox({ checked: !!e.checked }); e.loose ? e.tokens[0]?.type === "paragraph" ? ((e.tokens[0].text = n + " " + e.tokens[0].text), e.tokens[0].tokens && e.tokens[0].tokens.length > 0 && e.tokens[0].tokens[0].type === "text" && ((e.tokens[0].tokens[0].text = n + " " + w(e.tokens[0].tokens[0].text)), (e.tokens[0].tokens[0].escaped = !0))) : e.tokens.unshift({ type: "text", raw: n + " ", text: n + " ", escaped: !0, }) : (t += n + " "); } return ( (t += this.parser.parse(e.tokens, !!e.loose)), `
  • ${t}
  • ` ); } checkbox({ checked: e }) { return ( "' ); } paragraph({ tokens: e }) { return `

    ${this.parser.parseInline(e)}

    `; } table(e) { let t = "", n = ""; for (let i = 0; i < e.header.length; i++) n += this.tablecell(e.header[i]); t += this.tablerow({ text: n }); let r = ""; for (let i = 0; i < e.rows.length; i++) { const s = e.rows[i]; n = ""; for (let o = 0; o < s.length; o++) n += this.tablecell(s[o]); r += this.tablerow({ text: n }); } return ( r && (r = `${r}`), ` ` + t + ` ` + r + `
    ` ); } tablerow({ text: e }) { return ` ${e} `; } tablecell(e) { const t = this.parser.parseInline(e.tokens), n = e.header ? "th" : "td"; return ( (e.align ? `<${n} align="${e.align}">` : `<${n}>`) + t + ` ` ); } strong({ tokens: e }) { return `${this.parser.parseInline(e)}`; } em({ tokens: e }) { return `${this.parser.parseInline(e)}`; } codespan({ text: e }) { return `${w(e, !0)}`; } br(e) { return "
    "; } del({ tokens: e }) { return `${this.parser.parseInline(e)}`; } link({ href: e, title: t, tokens: n }) { const r = this.parser.parseInline(n), i = V(e); if (i === null) return r; e = i; let s = '
    "), s; } image({ href: e, title: t, text: n, tokens: r }) { r && (n = this.parser.parseInline(r, this.parser.textRenderer)); const i = V(e); if (i === null) return w(n); e = i; let s = `${n} { const o = i[s].flat(1 / 0); n = n.concat(this.walkTokens(o, t)); }) : i.tokens && (n = n.concat(this.walkTokens(i.tokens, t))); } } return n; } use(...e) { const t = this.defaults.extensions || { renderers: {}, childTokens: {}, }; return ( e.forEach((n) => { const r = { ...n }; if ( ((r.async = this.defaults.async || r.async || !1), n.extensions && (n.extensions.forEach((i) => { if (!i.name) throw new Error("extension name required"); if ("renderer" in i) { const s = t.renderers[i.name]; s ? (t.renderers[i.name] = function (...o) { let l = i.renderer.apply(this, o); return l === !1 && (l = s.apply(this, o)), l; }) : (t.renderers[i.name] = i.renderer); } if ("tokenizer" in i) { if ( !i.level || (i.level !== "block" && i.level !== "inline") ) throw new Error( "extension level must be 'block' or 'inline'", ); const s = t[i.level]; s ? s.unshift(i.tokenizer) : (t[i.level] = [i.tokenizer]), i.start && (i.level === "block" ? t.startBlock ? t.startBlock.push(i.start) : (t.startBlock = [i.start]) : i.level === "inline" && (t.startInline ? t.startInline.push(i.start) : (t.startInline = [i.start]))); } "childTokens" in i && i.childTokens && (t.childTokens[i.name] = i.childTokens); }), (r.extensions = t)), n.renderer) ) { const i = this.defaults.renderer || new P(this.defaults); for (const s in n.renderer) { if (!(s in i)) throw new Error(`renderer '${s}' does not exist`); if (["options", "parser"].includes(s)) continue; const o = s, l = n.renderer[o], u = i[o]; i[o] = (...p) => { let c = l.apply(i, p); return c === !1 && (c = u.apply(i, p)), c || ""; }; } r.renderer = i; } if (n.tokenizer) { const i = this.defaults.tokenizer || new y(this.defaults); for (const s in n.tokenizer) { if (!(s in i)) throw new Error(`tokenizer '${s}' does not exist`); if (["options", "rules", "lexer"].includes(s)) continue; const o = s, l = n.tokenizer[o], u = i[o]; i[o] = (...p) => { let c = l.apply(i, p); return c === !1 && (c = u.apply(i, p)), c; }; } r.tokenizer = i; } if (n.hooks) { const i = this.defaults.hooks || new $(); for (const s in n.hooks) { if (!(s in i)) throw new Error(`hook '${s}' does not exist`); if (["options", "block"].includes(s)) continue; const o = s, l = n.hooks[o], u = i[o]; $.passThroughHooks.has(s) ? (i[o] = (p) => { if (this.defaults.async) return Promise.resolve(l.call(i, p)).then((f) => u.call(i, f), ); const c = l.call(i, p); return u.call(i, c); }) : (i[o] = (...p) => { let c = l.apply(i, p); return c === !1 && (c = u.apply(i, p)), c; }); } r.hooks = i; } if (n.walkTokens) { const i = this.defaults.walkTokens, s = n.walkTokens; r.walkTokens = function (o) { let l = []; return ( l.push(s.call(this, o)), i && (l = l.concat(i.call(this, o))), l ); }; } this.defaults = { ...this.defaults, ...r }; }), this ); } setOptions(e) { return (this.defaults = { ...this.defaults, ...e }), this; } lexer(e, t) { return x.lex(e, t ?? this.defaults); } parser(e, t) { return b.parse(e, t ?? this.defaults); } parseMarkdown(e) { return (n, r) => { const i = { ...r }, s = { ...this.defaults, ...i }, o = this.onError(!!s.silent, !!s.async); if (this.defaults.async === !0 && i.async === !1) return o( new Error( "marked(): The async option was set to true by an extension. Remove async: false from the parse options object to return a Promise.", ), ); if (typeof n > "u" || n === null) return o( new Error("marked(): input parameter is undefined or null"), ); if (typeof n != "string") return o( new Error( "marked(): input parameter is of type " + Object.prototype.toString.call(n) + ", string expected", ), ); s.hooks && ((s.hooks.options = s), (s.hooks.block = e)); const l = s.hooks ? s.hooks.provideLexer() : e ? x.lex : x.lexInline, u = s.hooks ? s.hooks.provideParser() : e ? b.parse : b.parseInline; if (s.async) return Promise.resolve(s.hooks ? s.hooks.preprocess(n) : n) .then((p) => l(p, s)) .then((p) => (s.hooks ? s.hooks.processAllTokens(p) : p)) .then((p) => s.walkTokens ? Promise.all(this.walkTokens(p, s.walkTokens)).then(() => p) : p, ) .then((p) => u(p, s)) .then((p) => (s.hooks ? s.hooks.postprocess(p) : p)) .catch(o); try { s.hooks && (n = s.hooks.preprocess(n)); let p = l(n, s); s.hooks && (p = s.hooks.processAllTokens(p)), s.walkTokens && this.walkTokens(p, s.walkTokens); let c = u(p, s); return s.hooks && (c = s.hooks.postprocess(c)), c; } catch (p) { return o(p); } }; } onError(e, t) { return (n) => { if ( ((n.message += ` Please report this to https://github.com/markedjs/marked.`), e) ) { const r = "

    An error occurred:

    " +
    							w(n.message + "", !0) +
    							"
    "; return t ? Promise.resolve(r) : r; } if (t) return Promise.reject(n); throw n; }; } }; var L = new A(); function d(a, e) { return L.parse(a, e); } d.options = d.setOptions = (a) => ( L.setOptions(a), (d.defaults = L.defaults), N(d.defaults), d ); d.getDefaults = _; d.defaults = O; d.use = (...a) => ( L.use(...a), (d.defaults = L.defaults), N(d.defaults), d ); d.walkTokens = (a, e) => L.walkTokens(a, e); d.parseInline = L.parseInline; d.Parser = b; d.parser = b.parse; d.Renderer = P; d.TextRenderer = S; d.Lexer = x; d.lexer = x.lex; d.Tokenizer = y; d.Hooks = $; d.parse = d; var it = d.options, ot = d.setOptions, at = d.use, lt = d.walkTokens, ut = d.parseInline, pt = d, ct = b.parse, ht = x.lex; if (__exports != exports) module.exports = exports; return module.exports; }, ); //# sourceMappingURL=marked.umd.js.map