@clevertask/scribe 0.1.3 → 0.1.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (85) hide show
  1. package/README.md +3 -0
  2. package/dist/BarMenu-V1uRL3bt.js +272 -0
  3. package/dist/assets/index.css +1 -1
  4. package/dist/components/Menu/BarMenu.d.ts.map +1 -1
  5. package/dist/components/Menu/BarMenu.js +2 -10
  6. package/dist/components/Menu/BubbleMenu.d.ts.map +1 -1
  7. package/dist/components/Menu/BubbleMenu.js +165 -2090
  8. package/dist/components/Menu/LinkBubbleMenu.d.ts +8 -0
  9. package/dist/components/Menu/LinkBubbleMenu.d.ts.map +1 -0
  10. package/dist/components/Menu/LinkBubbleMenu.js +78 -0
  11. package/dist/components/Menu/LinkEditor.d.ts +14 -0
  12. package/dist/components/Menu/LinkEditor.d.ts.map +1 -0
  13. package/dist/components/Menu/LinkEditor.js +140 -0
  14. package/dist/components/Menu/Mobile/ListOptionBar.d.ts +1 -1
  15. package/dist/components/Menu/Mobile/ListOptionBar.d.ts.map +1 -1
  16. package/dist/components/Menu/Mobile/ListOptionBar.js +38 -44
  17. package/dist/components/Menu/linkBubbleMenuPlugin.d.ts +5 -0
  18. package/dist/components/Menu/linkBubbleMenuPlugin.d.ts.map +1 -0
  19. package/dist/components/Menu/linkBubbleMenuPlugin.js +7 -0
  20. package/dist/components/Menu/linkUrl.d.ts +2 -0
  21. package/dist/components/Menu/linkUrl.d.ts.map +1 -0
  22. package/dist/components/Menu/linkUrl.js +21 -0
  23. package/dist/components/Scribe/extension/emoji/EmojiList.js +58 -45
  24. package/dist/components/Scribe/extension/emoji/suggest.d.ts +2 -2
  25. package/dist/components/Scribe/extension/emoji/suggest.d.ts.map +1 -1
  26. package/dist/components/Scribe/extension/emoji/suggest.js +39 -43
  27. package/dist/components/Scribe/extension/extension-link.d.ts.map +1 -1
  28. package/dist/components/Scribe/extension/extension-link.js +2 -4
  29. package/dist/components/Scribe/extension/extension-markdown-paste.d.ts.map +1 -1
  30. package/dist/components/Scribe/extension/extension-markdown-paste.js +50 -45
  31. package/dist/components/Scribe/extension/extension-selectedText.d.ts.map +1 -1
  32. package/dist/components/Scribe/extension/extension-selectedText.js +10 -12
  33. package/dist/components/Scribe/extension/getPopupMountTarget.d.ts.map +1 -1
  34. package/dist/components/Scribe/extension/getPopupMountTarget.js +12 -15
  35. package/dist/components/Scribe/extension/index.d.ts +4 -4
  36. package/dist/components/Scribe/extension/index.d.ts.map +1 -1
  37. package/dist/components/Scribe/extension/index.js +2 -37169
  38. package/dist/components/Scribe/extension/slashCommand/SlashCommandList.js +3369 -3731
  39. package/dist/components/Scribe/extension/slashCommand/index.js +2 -6
  40. package/dist/components/Scribe/extension/slashCommand/items.d.ts.map +1 -1
  41. package/dist/components/Scribe/extension/slashCommand/items.js +177 -176
  42. package/dist/components/Scribe/extension/slashCommand/renderItems.d.ts.map +1 -1
  43. package/dist/components/Scribe/extension/slashCommand/renderItems.js +35 -41
  44. package/dist/components/Scribe/extension/tableOfContents.js +153 -180
  45. package/dist/components/Scribe/index.d.ts.map +1 -1
  46. package/dist/components/Scribe/index.js +113 -153
  47. package/dist/dist-BQjH-i-q.js +7016 -0
  48. package/dist/dist-CnXCIcnl.js +3506 -0
  49. package/dist/dist-RuuEA1GJ.js +686 -0
  50. package/dist/extension-CZOsheCI.js +56236 -0
  51. package/dist/extension-link-DZID_SYl.js +908 -0
  52. package/dist/floating-ui.dom-rih69525.js +928 -0
  53. package/dist/html-to-markdown-CrNOkSye.js +497 -0
  54. package/dist/icons/ToolbarIcons.d.ts.map +1 -1
  55. package/dist/icons/ToolbarIcons.js +76 -135
  56. package/dist/main.css +10 -0
  57. package/dist/main.js +7 -15
  58. package/dist/markdown-to-html-DEczPfuq.js +1458 -0
  59. package/dist/menus-CzX7kyXn.js +633 -0
  60. package/dist/purify.es-DF9CW1cl.js +767 -0
  61. package/dist/rolldown-runtime-B8UxIWdF.js +7 -0
  62. package/dist/slashCommand-B7CRIaKG.js +429 -0
  63. package/dist/tables-CjOC70rm.js +1345 -0
  64. package/dist/tippy.esm-D9LL2xiE.js +1713 -0
  65. package/dist/utils/convert-legacy-math-delimiters.d.ts.map +1 -1
  66. package/dist/utils/convert-legacy-math-delimiters.js +7 -13
  67. package/dist/utils/create-scribe-editor.js +2 -31
  68. package/dist/utils/html-to-markdown.d.ts.map +1 -1
  69. package/dist/utils/html-to-markdown.js +2 -600
  70. package/dist/utils/index.js +24 -12
  71. package/dist/utils/is-in-viewport.d.ts.map +1 -1
  72. package/dist/utils/is-in-viewport.js +6 -6
  73. package/dist/utils/markdown-to-html.d.ts.map +1 -1
  74. package/dist/utils/markdown-to-html.js +2 -5
  75. package/dist/vite-env.d.js +0 -1
  76. package/package.json +40 -38
  77. package/dist/BarMenu-DaKIz3zZ.js +0 -327
  78. package/dist/extension-link-Ch_T7WWG.js +0 -1030
  79. package/dist/index-BiBV5TQx.js +0 -13513
  80. package/dist/index-CqzMmrnw.js +0 -1410
  81. package/dist/index-DxF-1P4n.js +0 -834
  82. package/dist/index-V-gN11Y9.js +0 -249
  83. package/dist/markdown-to-html-pL7ckd-m.js +0 -1135
  84. package/dist/purify.es-exIQuqhb.js +0 -595
  85. package/dist/tippy.esm-DLHdsnfG.js +0 -1711
@@ -0,0 +1,1458 @@
1
+ import { t as e } from "./purify.es-DF9CW1cl.js";
2
+ //#region node_modules/.pnpm/marked@18.0.7/node_modules/marked/lib/marked.esm.js
3
+ function t() {
4
+ return {
5
+ async: !1,
6
+ breaks: !1,
7
+ extensions: null,
8
+ gfm: !0,
9
+ hooks: null,
10
+ pedantic: !1,
11
+ renderer: null,
12
+ silent: !1,
13
+ tokenizer: null,
14
+ walkTokens: null
15
+ };
16
+ }
17
+ var n = t();
18
+ function r(e) {
19
+ n = e;
20
+ }
21
+ var i = { exec: () => null };
22
+ function a(e) {
23
+ let t = [];
24
+ return (n) => {
25
+ let r = Math.max(0, Math.min(3, n - 1)), i = t[r];
26
+ return i || (i = e(r), t[r] = i), i;
27
+ };
28
+ }
29
+ function o(e, t = "") {
30
+ let n = typeof e == "string" ? e : e.source, r = {
31
+ replace: (e, t) => {
32
+ let i = typeof t == "string" ? t : t.source;
33
+ return i = i.replace(c.caret, "$1"), n = n.replace(e, i), r;
34
+ },
35
+ getRegex: () => new RegExp(n, t)
36
+ };
37
+ return r;
38
+ }
39
+ var s = ((e = "") => {
40
+ try {
41
+ return !!RegExp("(?<=1)(?<!1)" + e);
42
+ } catch {
43
+ return !1;
44
+ }
45
+ })(), c = {
46
+ codeRemoveIndent: /^(?: {1,4}| {0,3}\t)/gm,
47
+ outputLinkReplace: /\\([\[\]])/g,
48
+ indentCodeCompensation: /^(\s+)(?:```)/,
49
+ beginningSpace: /^\s+/,
50
+ endingHash: /#$/,
51
+ startingSpaceChar: /^ /,
52
+ endingSpaceChar: / $/,
53
+ nonSpaceChar: /[^ ]/,
54
+ newLineCharGlobal: /\n/g,
55
+ tabCharGlobal: /\t/g,
56
+ multipleSpaceGlobal: /\s+/g,
57
+ blankLine: /^[ \t]*$/,
58
+ doubleBlankLine: /\n[ \t]*\n[ \t]*$/,
59
+ blockquoteStart: /^ {0,3}>/,
60
+ blockquoteSetextReplace: /\n {0,3}((?:=+|-+) *)(?=\n|$)/g,
61
+ blockquoteSetextReplace2: /^ {0,3}>[ \t]?/gm,
62
+ listReplaceNesting: /^ {1,4}(?=( {4})*[^ ])/g,
63
+ listIsTask: /^\[[ xX]\] +\S/,
64
+ listReplaceTask: /^\[[ xX]\] +/,
65
+ listTaskCheckbox: /\[[ xX]\]/,
66
+ anyLine: /\n.*\n/,
67
+ hrefBrackets: /^<(.*)>$/,
68
+ tableDelimiter: /[:|]/,
69
+ tableAlignChars: /^\||\| *$/g,
70
+ tableRowBlankLine: /\n[ \t]*$/,
71
+ tableAlignRight: /^ *-+: *$/,
72
+ tableAlignCenter: /^ *:-+: *$/,
73
+ tableAlignLeft: /^ *:-+ *$/,
74
+ startATag: /^<a /i,
75
+ endATag: /^<\/a>/i,
76
+ startPreScriptTag: /^<(pre|code|kbd|script)(\s|>)/i,
77
+ endPreScriptTag: /^<\/(pre|code|kbd|script)(\s|>)/i,
78
+ startAngleBracket: /^</,
79
+ endAngleBracket: />$/,
80
+ pedanticHrefTitle: /^([^'"]*[^\s])\s+(['"])(.*)\2/,
81
+ unicodeAlphaNumeric: /[\p{L}\p{N}]/u,
82
+ escapeTest: /[&<>"']/,
83
+ escapeReplace: /[&<>"']/g,
84
+ escapeTestNoEncode: /[<>"']|&(?!(#\d{1,7}|#[Xx][a-fA-F0-9]{1,6}|\w+);)/,
85
+ escapeReplaceNoEncode: /[<>"']|&(?!(#\d{1,7}|#[Xx][a-fA-F0-9]{1,6}|\w+);)/g,
86
+ caret: /(^|[^\[])\^/g,
87
+ percentDecode: /%25/g,
88
+ findPipe: /\|/g,
89
+ splitPipe: / \|/,
90
+ slashPipe: /\\\|/g,
91
+ carriageReturn: /\r\n|\r/g,
92
+ spaceLine: /^ +$/gm,
93
+ notSpaceStart: /^\S*/,
94
+ endingNewline: /\n$/,
95
+ listItemRegex: (e) => RegExp(`^( {0,3}${e})((?:[ ][^\\n]*)?(?:\\n|$))`),
96
+ nextBulletRegex: a((e) => RegExp(`^ {0,${e}}(?:[*+-]|\\d{1,9}[.)])((?:[ ][^\\n]*)?(?:\\n|$))`)),
97
+ hrRegex: a((e) => RegExp(`^ {0,${e}}((?:- *){3,}|(?:_ *){3,}|(?:\\* *){3,})(?:\\n+|$)`)),
98
+ fencesBeginRegex: a((e) => RegExp(`^ {0,${e}}(?:\`\`\`|~~~)`)),
99
+ headingBeginRegex: a((e) => RegExp(`^ {0,${e}}#`)),
100
+ htmlBeginRegex: a((e) => RegExp(`^ {0,${e}}<(?:[a-z].*>|!--)`, "i")),
101
+ blockquoteBeginRegex: a((e) => RegExp(`^ {0,${e}}>`))
102
+ }, l = /^(?:[ \t]*(?:\n|$))+/, u = /^((?: {4}| {0,3}\t)[^\n]+(?:\n(?:[ \t]*(?:\n|$))*)?)+/, d = /^ {0,3}(`{3,}(?=[^`\n]*(?:\n|$))|~{3,})([^\n]*)(?:\n|$)(?:|([\s\S]*?)(?:\n|$))(?: {0,3}\1[~`]* *(?=\n|$)|$)/, f = /^ {0,3}((?:-[\t ]*){3,}|(?:_[ \t]*){3,}|(?:\*[ \t]*){3,})(?:\n+|$)/, p = /^ {0,3}(#{1,6})(?=\s|$)(.*)(?:\n+|$)/, m = / {0,3}(?:[*+-]|\d{1,9}[.)])/, h = /^(?!bull |blockCode|fences|blockquote|heading|html|table)((?:.|\n(?!\s*?\n|bull |blockCode|fences|blockquote|heading|html|table))+?)\n {0,3}(=+|-+) *(?:\n+|$)/, g = o(h).replace(/bull/g, m).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}(?:\s|$)/).replace(/html/g, / {0,3}<[^\n>]+>\n/).replace(/\|table/g, "").getRegex(), ee = o(h).replace(/bull/g, m).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}(?:\s|$)/).replace(/html/g, / {0,3}<[^\n>]+>\n/).replace(/table/g, / {0,3}\|?(?:[:\- ]*\|)+[\:\- ]*\n/).getRegex(), _ = /^([^\n]+(?:\n(?!hr|heading|lheading|blockquote|fences|list|html|table|[ \t]+\n)[^\n]+)*)/, te = /^[^\n]+/, v = /(?!\s*\])(?:\\[\s\S]|[^\[\]\\])+/, ne = o(/^ {0,3}\[(label)\]: *(?:\n[ \t]*)?([^<\s][^\s]*|<.*?>)(?:(?: +(?:\n[ \t]*)?| *\n[ \t]*)(title))? *(?:\n+|$)/).replace("label", v).replace("title", /(?:"(?:\\"?|[^"\\])*"|'[^'\n]*(?:\n[^'\n]+)*\n?'|\([^()]*\))/).getRegex(), re = o(/^(bull)([ \t][^\n]*?)?(?:\n|$)/).replace(/bull/g, m).getRegex(), y = "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", b = /<!--(?:-?>|[\s\S]*?(?:-->|$))/, ie = o("^ {0,3}(?:<(script|pre|style|textarea)[\\s>][\\s\\S]*?(?:</\\1>[^\\n]*\\n*|$)|comment[^\\n]*(\\n+|$)|<\\?[\\s\\S]*?(?:\\?>[^\\n]*\\n*|$)|<![A-Z][\\s\\S]*?(?:>[^\\n]*\\n*|$)|<!\\[CDATA\\[[\\s\\S]*?(?:\\]\\]>[^\\n]*\\n*|$)|</?(tag)(?: +|\\n|/?>)[\\s\\S]*?(?:(?:\\n[ ]*)+\\n|$)|<(?!script|pre|style|textarea)([a-z][\\w-]*)(?:attribute)*? */?>(?=[ \\t]*(?:\\n|$))[\\s\\S]*?(?:(?:\\n[ ]*)+\\n|$)|</(?!script|pre|style|textarea)[a-z][\\w-]*\\s*>(?=[ \\t]*(?:\\n|$))[\\s\\S]*?(?:(?:\\n[ ]*)+\\n|$))", "i").replace("comment", b).replace("tag", y).replace("attribute", / +[a-zA-Z:_][\w.:-]*(?: *= *"[^"\n]*"| *= *'[^'\n]*'| *= *[^\s"'=<>`]+)?/).getRegex(), x = (e) => o(_).replace("hr", f).replace("heading", " {0,3}#{1,6}(?:\\s|$)").replace("|lheading", "").replace("|table", "").replace("blockquote", " {0,3}>").replace("fences", " {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~~~)[^\\n]*\\n").replace("list", e).replace("html", "</?(?:tag)(?: +|\\n|/?>)|<(?:script|pre|style|textarea|!--)").replace("tag", y).getRegex(), ae = x(/ {0,3}(?:[*+-]|1[.)])[ \t]+[^ \t\n]/), oe = x(/ {0,3}(?:[*+-]|\d{1,9}[.)])(?:[ \t]|\n|$)/), S = {
103
+ blockquote: o(/^( {0,3}> ?(paragraph|[^\n]*)(?:\n|$))+/).replace("paragraph", oe).getRegex(),
104
+ code: u,
105
+ def: ne,
106
+ fences: d,
107
+ heading: p,
108
+ hr: f,
109
+ html: ie,
110
+ lheading: g,
111
+ list: re,
112
+ newline: l,
113
+ paragraph: ae,
114
+ table: i,
115
+ text: te
116
+ }, C = o("^ *([^\\n ].*)\\n {0,3}((?:\\| *)?:?-+:? *(?:\\| *:?-+:? *)*(?:\\| *)?)(?:\\n((?:(?! *\\n|hr|heading|blockquote|code|fences|list|html).*(?:\\n|$))*)\\n*|$)").replace("hr", f).replace("heading", " {0,3}#{1,6}(?:\\s|$)").replace("blockquote", " {0,3}>").replace("code", "(?: {4}| {0,3} )[^\\n]").replace("fences", " {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~~~)[^\\n]*\\n").replace("list", " {0,3}(?:[*+-]|1[.)])[ \\t]").replace("html", "</?(?:tag)(?: +|\\n|/?>)|<(?:script|pre|style|textarea|!--)").replace("tag", y).getRegex(), se = {
117
+ ...S,
118
+ lheading: ee,
119
+ table: C,
120
+ paragraph: o(_).replace("hr", f).replace("heading", " {0,3}#{1,6}(?:\\s|$)").replace("|lheading", "").replace("table", C).replace("blockquote", " {0,3}>").replace("fences", " {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~~~)[^\\n]*\\n").replace("list", " {0,3}(?:[*+-]|1[.)])[ \\t]+[^ \\t\\n]").replace("html", "</?(?:tag)(?: +|\\n|/?>)|<(?:script|pre|style|textarea|!--)").replace("tag", y).getRegex()
121
+ }, ce = {
122
+ ...S,
123
+ html: o("^ *(?:comment *(?:\\n|\\s*$)|<(tag)[\\s\\S]+?</\\1> *(?:\\n{2,}|\\s*$)|<tag(?:\"[^\"]*\"|'[^']*'|\\s[^'\"/>\\s]*)*?/?> *(?:\\n{2,}|\\s*$))").replace("comment", b).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(),
124
+ def: /^ *\[([^\]]+)\]: *<?([^\s>]+)>?(?: +(["(][^\n]+[")]))? *(?:\n+|$)/,
125
+ heading: /^(#{1,6})(.*)(?:\n+|$)/,
126
+ fences: i,
127
+ lheading: /^(.+?)\n {0,3}(=+|-+) *(?:\n+|$)/,
128
+ paragraph: o(_).replace("hr", f).replace("heading", " *#{1,6} *[^\n]").replace("lheading", g).replace("|table", "").replace("blockquote", " {0,3}>").replace("|fences", "").replace("|list", "").replace("|html", "").replace("|tag", "").getRegex()
129
+ }, le = /^\\([!"#$%&'()*+,\-./:;<=>?@\[\]\\^_`{|}~])/, ue = /^(`+)([^`]|[^`][\s\S]*?[^`])\1(?!`)/, w = /^( {2,}|\\)\n(?!\s*$)/, de = /^(`+|[^`])(?:(?= {2,}\n)|[\s\S]*?(?:(?=[\\<!\[`*_]|\b_|$)|[^ ](?= {2,}\n)))/, T = /[\p{P}\p{S}]/u, E = /[\s\p{P}\p{S}]/u, D = /[^\s\p{P}\p{S}]/u, fe = o(/^((?![*_])punctSpace)/, "u").replace(/punctSpace/g, E).getRegex(), O = /(?!~)[\p{P}\p{S}]/u, pe = /(?!~)[\s\p{P}\p{S}]/u, me = /(?:[^\s\p{P}\p{S}]|~)/u, he = o(/link|precode-code|html/, "g").replace("link", /\[(?:[^\[\]`]|(?<a>`+)[^`]+\k<a>(?!`))*?\]\((?:\\[\s\S]|[^\\\(\)]|\((?:\\[\s\S]|[^\\\(\)])*\))*\)/).replace("precode-", s ? "(?<!`)()" : "(^^|[^`])").replace("code", /(?<b>`+)[^`]+\k<b>(?!`)/).replace("html", /<(?! )[^<>]*?>/).getRegex(), k = /^(?:\*+(?:((?!\*)punct)|([^\s*]))?)|^_+(?:((?!_)punct)|([^\s_]))?/, ge = o(k, "u").replace(/punct/g, T).getRegex(), _e = o(k, "u").replace(/punct/g, O).getRegex(), A = "^[^_*]*?__[^_*]*?\\*[^_*]*?(?=__)|[^*]+(?=[^*])|(?!\\*)punct(\\*+)(?=[\\s]|$)|notPunctSpace(\\*+)(?!\\*)(?=punctSpace|$)|(?!\\*)punctSpace(\\*+)(?=notPunctSpace)|[\\s](\\*+)(?!\\*)(?=punct)|(?!\\*)punct(\\*+)(?!\\*)(?=punct)|notPunctSpace(\\*+)(?=notPunctSpace)", ve = o(A, "gu").replace(/notPunctSpace/g, D).replace(/punctSpace/g, E).replace(/punct/g, T).getRegex(), ye = o(A, "gu").replace(/notPunctSpace/g, me).replace(/punctSpace/g, pe).replace(/punct/g, O).getRegex(), be = o("^[^_*]*?\\*\\*[^_*]*?_[^_*]*?(?=\\*\\*)|[^_]+(?=[^_])|(?!_)punct(_+)(?=[\\s]|$)|notPunctSpace(_+)(?!_)(?=punctSpace|$)|(?!_)punctSpace(_+)(?=notPunctSpace)|[\\s](_+)(?!_)(?=punct)|(?!_)punct(_+)(?!_)(?=punct)", "gu").replace(/notPunctSpace/g, D).replace(/punctSpace/g, E).replace(/punct/g, T).getRegex(), xe = o(/^~~?(?:((?!~)punct)|[^\s~])/, "u").replace(/punct/g, T).getRegex(), Se = o("^[^~]+(?=[^~])|(?!~)punct(~~?)(?=[\\s]|$)|notPunctSpace(~~?)(?!~)(?=punctSpace|$)|(?!~)punctSpace(~~?)(?=notPunctSpace)|[\\s](~~?)(?!~)(?=punct)|(?!~)punct(~~?)(?!~)(?=punct)|notPunctSpace(~~?)(?=notPunctSpace)", "gu").replace(/notPunctSpace/g, D).replace(/punctSpace/g, E).replace(/punct/g, T).getRegex(), Ce = o(/\\(punct)/, "gu").replace(/punct/g, T).getRegex(), we = o(/^<(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(), Te = o(b).replace("(?:-->|$)", "-->").getRegex(), Ee = o("^comment|^</[a-zA-Z][\\w:-]*\\s*>|^<[a-zA-Z][\\w-]*(?:attribute)*?\\s*/?>|^<\\?[\\s\\S]*?\\?>|^<![a-zA-Z]+\\s[\\s\\S]*?>|^<!\\[CDATA\\[[\\s\\S]*?\\]\\]>").replace("comment", Te).replace("attribute", /\s+[a-zA-Z:_][\w.:-]*(?:\s*=\s*"[^"]*"|\s*=\s*'[^']*'|\s*=\s*[^\s"'=<>`]+)?/).getRegex(), j = /(?:\[(?:\\[\s\S]|[^\[\]\\])*\]|\\[\s\S]|`+(?!`)[^`]*?`+(?!`)|``+(?=\])|[^\[\]\\`])*?/, De = o(/^!?\[(label)\]\(\s*(href)(?:(?:[ \t]+(?:\n[ \t]*)?|\n[ \t]*)(title))?\s*\)/).replace("label", j).replace("href", /<(?:\\.|[^\n<>\\])+>|[^ \t\n\x00-\x1f]+|(?=\))/).replace("title", /"(?:\\"?|[^"\\])*"|'(?:\\'?|[^'\\])*'|\((?:\\\)?|[^)\\])*\)/).getRegex(), M = o(/^!?\[(label)\]\[(ref)\]/).replace("label", j).replace("ref", v).getRegex(), N = o(/^!?\[(ref)\](?:\[\])?/).replace("ref", v).getRegex(), Oe = o("reflink|nolink(?!\\()", "g").replace("reflink", M).replace("nolink", N).getRegex(), P = /[hH][tT][tT][pP][sS]?|[fF][tT][pP]/, F = {
130
+ _backpedal: i,
131
+ anyPunctuation: Ce,
132
+ autolink: we,
133
+ blockSkip: he,
134
+ br: w,
135
+ code: ue,
136
+ del: i,
137
+ delLDelim: i,
138
+ delRDelim: i,
139
+ emStrongLDelim: ge,
140
+ emStrongRDelimAst: ve,
141
+ emStrongRDelimUnd: be,
142
+ escape: le,
143
+ link: De,
144
+ nolink: N,
145
+ punctuation: fe,
146
+ reflink: M,
147
+ reflinkSearch: Oe,
148
+ tag: Ee,
149
+ text: de,
150
+ url: i
151
+ }, ke = {
152
+ ...F,
153
+ link: o(/^!?\[(label)\]\((.*?)\)/).replace("label", j).getRegex(),
154
+ reflink: o(/^!?\[(label)\]\s*\[([^\]]*)\]/).replace("label", j).getRegex()
155
+ }, I = {
156
+ ...F,
157
+ emStrongRDelimAst: ye,
158
+ emStrongLDelim: _e,
159
+ delLDelim: xe,
160
+ delRDelim: Se,
161
+ url: o(/^((?:protocol):\/\/|www\.)(?:[a-zA-Z0-9\-]+\.?)+[^\s<]*|^email/).replace("protocol", P).replace("email", /[A-Za-z0-9._+-]+(@)[a-zA-Z0-9-_]+(?:\.[a-zA-Z0-9-_]*[a-zA-Z0-9])+(?![-_])/).getRegex(),
162
+ _backpedal: /(?:[^?!.,:;*_'"~()&]+|\([^)]*\)|&(?![a-zA-Z0-9]+;$)|[?!.,:;*_'"~)]+(?!$))+/,
163
+ del: /^(~~?)(?=[^\s~])((?:\\[\s\S]|[^\\])*?(?:\\[\s\S]|[^\s~\\]))\1(?=[^~]|$)/,
164
+ text: o(/^(`+|~+|[^`~])(?:(?=[`~])|(?= {2,}\n)|(?=[a-zA-Z0-9.!#$%&'*+\/=?_`{\|}~-]+@)|[\s\S]*?(?:(?=[\\<!\[`*~_]|\b_|protocol:\/\/|www\.|$)|[^ ](?= {2,}\n)|[^a-zA-Z0-9.!#$%&'*+\/=?_`{\|}~-](?=[a-zA-Z0-9.!#$%&'*+\/=?_`{\|}~-]+@)))/).replace("protocol", P).getRegex()
165
+ }, Ae = {
166
+ ...I,
167
+ br: o(w).replace("{2,}", "*").getRegex(),
168
+ text: o(I.text).replace("\\b_", "\\b_| {2,}\\n").replace(/\{2,\}/g, "*").getRegex()
169
+ }, L = {
170
+ normal: S,
171
+ gfm: se,
172
+ pedantic: ce
173
+ }, R = {
174
+ normal: F,
175
+ gfm: I,
176
+ breaks: Ae,
177
+ pedantic: ke
178
+ }, je = {
179
+ "&": "&amp;",
180
+ "<": "&lt;",
181
+ ">": "&gt;",
182
+ "\"": "&quot;",
183
+ "'": "&#39;"
184
+ }, z = (e) => je[e];
185
+ function B(e, t) {
186
+ if (t) {
187
+ if (c.escapeTest.test(e)) return e.replace(c.escapeReplace, z);
188
+ } else if (c.escapeTestNoEncode.test(e)) return e.replace(c.escapeReplaceNoEncode, z);
189
+ return e;
190
+ }
191
+ function V(e) {
192
+ try {
193
+ e = encodeURI(e).replace(c.percentDecode, "%");
194
+ } catch {
195
+ return null;
196
+ }
197
+ return e;
198
+ }
199
+ function H(e, t) {
200
+ let n = e.replace(c.findPipe, (e, t, n) => {
201
+ let r = !1, i = t;
202
+ for (; --i >= 0 && n[i] === "\\";) r = !r;
203
+ return r ? "|" : " |";
204
+ }).split(c.splitPipe), r = 0;
205
+ if (n[0].trim() || n.shift(), n.length > 0 && !n.at(-1)?.trim() && n.pop(), t) if (n.length > t) n.splice(t);
206
+ else for (; n.length < t;) n.push("");
207
+ for (; r < n.length; r++) n[r] = n[r].trim().replace(c.slashPipe, "|");
208
+ return n;
209
+ }
210
+ function U(e, t, n) {
211
+ let r = e.length;
212
+ if (r === 0) return "";
213
+ let i = 0;
214
+ for (; i < r;) {
215
+ let a = e.charAt(r - i - 1);
216
+ if (a === t && !n) i++;
217
+ else if (a !== t && n) i++;
218
+ else break;
219
+ }
220
+ return e.slice(0, r - i);
221
+ }
222
+ function W(e) {
223
+ let t = e.split("\n"), n = t.length - 1;
224
+ for (; n >= 0 && c.blankLine.test(t[n]);) n--;
225
+ return t.length - n <= 2 ? e : t.slice(0, n + 1).join("\n");
226
+ }
227
+ function Me(e, t) {
228
+ if (e.indexOf(t[1]) === -1) return -1;
229
+ let n = 0;
230
+ for (let r = 0; r < e.length; r++) if (e[r] === "\\") r++;
231
+ else if (e[r] === t[0]) n++;
232
+ else if (e[r] === t[1] && (n--, n < 0)) return r;
233
+ return n > 0 ? -2 : -1;
234
+ }
235
+ function Ne(e, t = 0) {
236
+ let n = t, r = "";
237
+ for (let t of e) if (t === " ") {
238
+ let e = 4 - n % 4;
239
+ r += " ".repeat(e), n += e;
240
+ } else r += t, n++;
241
+ return r;
242
+ }
243
+ function G(e, t, n, r, i) {
244
+ let a = t.href, o = t.title || null, s = e[1].replace(i.other.outputLinkReplace, "$1");
245
+ r.state.inLink = !0;
246
+ let c = {
247
+ type: e[0].charAt(0) === "!" ? "image" : "link",
248
+ raw: n,
249
+ href: a,
250
+ title: o,
251
+ text: s,
252
+ tokens: r.inlineTokens(s)
253
+ };
254
+ return r.state.inLink = !1, c;
255
+ }
256
+ function Pe(e, t, n) {
257
+ let r = e.match(n.other.indentCodeCompensation);
258
+ if (r === null) return t;
259
+ let i = r[1];
260
+ return t.split("\n").map((e) => {
261
+ let t = e.match(n.other.beginningSpace);
262
+ if (t === null) return e;
263
+ let [r] = t;
264
+ return r.length >= i.length ? e.slice(i.length) : e;
265
+ }).join("\n");
266
+ }
267
+ var K = class {
268
+ options;
269
+ rules;
270
+ lexer;
271
+ constructor(e) {
272
+ this.options = e || n;
273
+ }
274
+ space(e) {
275
+ let t = this.rules.block.newline.exec(e);
276
+ if (t && t[0].length > 0) return {
277
+ type: "space",
278
+ raw: t[0]
279
+ };
280
+ }
281
+ code(e) {
282
+ let t = this.rules.block.code.exec(e);
283
+ if (t) {
284
+ let e = this.options.pedantic ? t[0] : W(t[0]);
285
+ return {
286
+ type: "code",
287
+ raw: e,
288
+ codeBlockStyle: "indented",
289
+ text: e.replace(this.rules.other.codeRemoveIndent, "")
290
+ };
291
+ }
292
+ }
293
+ fences(e) {
294
+ let t = this.rules.block.fences.exec(e);
295
+ if (t) {
296
+ let e = t[0], n = Pe(e, t[3] || "", this.rules);
297
+ return {
298
+ type: "code",
299
+ raw: e,
300
+ lang: t[2] ? t[2].trim().replace(this.rules.inline.anyPunctuation, "$1") : t[2],
301
+ text: n
302
+ };
303
+ }
304
+ }
305
+ heading(e) {
306
+ let t = this.rules.block.heading.exec(e);
307
+ if (t) {
308
+ let e = t[2].trim();
309
+ if (this.rules.other.endingHash.test(e)) {
310
+ let t = U(e, "#");
311
+ (this.options.pedantic || !t || this.rules.other.endingSpaceChar.test(t)) && (e = t.trim());
312
+ }
313
+ return {
314
+ type: "heading",
315
+ raw: U(t[0], "\n"),
316
+ depth: t[1].length,
317
+ text: e,
318
+ tokens: this.lexer.inline(e)
319
+ };
320
+ }
321
+ }
322
+ hr(e) {
323
+ let t = this.rules.block.hr.exec(e);
324
+ if (t) return {
325
+ type: "hr",
326
+ raw: U(t[0], "\n")
327
+ };
328
+ }
329
+ blockquote(e) {
330
+ let t = this.rules.block.blockquote.exec(e);
331
+ if (t) {
332
+ let e = U(t[0], "\n").split("\n"), n = "", r = "", i = [];
333
+ for (; e.length > 0;) {
334
+ let t = !1, a = [], o;
335
+ for (o = 0; o < e.length; o++) if (this.rules.other.blockquoteStart.test(e[o])) a.push(e[o]), t = !0;
336
+ else if (!t) a.push(e[o]);
337
+ else break;
338
+ e = e.slice(o);
339
+ let s = a.join("\n"), c = s.replace(this.rules.other.blockquoteSetextReplace, "\n $1").replace(this.rules.other.blockquoteSetextReplace2, "");
340
+ n = n ? `${n}
341
+ ${s}` : s, r = r ? `${r}
342
+ ${c}` : c;
343
+ let l = this.lexer.state.top;
344
+ if (this.lexer.state.top = !0, this.lexer.blockTokens(c, i, !0), this.lexer.state.top = l, e.length === 0) break;
345
+ let u = i.at(-1);
346
+ if (u?.type === "code") break;
347
+ if (u?.type === "blockquote") {
348
+ let t = u, a = t.raw + "\n" + e.join("\n"), o = this.blockquote(a);
349
+ i[i.length - 1] = o, n = n.substring(0, n.length - t.raw.length) + o.raw, r = r.substring(0, r.length - t.text.length) + o.text;
350
+ break;
351
+ } else if (u?.type === "list") {
352
+ let t = u, a = t.raw + "\n" + e.join("\n"), o = this.list(a);
353
+ i[i.length - 1] = o, n = n.substring(0, n.length - u.raw.length) + o.raw, r = r.substring(0, r.length - t.raw.length) + o.raw, e = a.substring(i.at(-1).raw.length).split("\n");
354
+ continue;
355
+ }
356
+ }
357
+ return {
358
+ type: "blockquote",
359
+ raw: n,
360
+ tokens: i,
361
+ text: r
362
+ };
363
+ }
364
+ }
365
+ list(e) {
366
+ let t = this.rules.block.list.exec(e);
367
+ if (t) {
368
+ let n = t[1].trim(), r = n.length > 1, i = {
369
+ type: "list",
370
+ raw: "",
371
+ ordered: r,
372
+ start: r ? +n.slice(0, -1) : "",
373
+ loose: !1,
374
+ items: []
375
+ };
376
+ n = r ? `\\d{1,9}\\${n.slice(-1)}` : `\\${n}`, this.options.pedantic && (n = r ? n : "[*+-]");
377
+ let a = this.rules.other.listItemRegex(n), o = !1;
378
+ for (; e;) {
379
+ let n = !1, r = "", s = "";
380
+ if (!(t = a.exec(e)) || this.rules.block.hr.test(e)) break;
381
+ r = t[0], e = e.substring(r.length);
382
+ let c = Ne(t[2].split("\n", 1)[0], t[1].length), l = e.split("\n", 1)[0], u = !c.trim(), d = 0;
383
+ if (this.options.pedantic ? (d = 2, s = c.trimStart()) : u ? d = t[1].length + 1 : (d = c.search(this.rules.other.nonSpaceChar), d = d > 4 ? 1 : d, s = c.slice(d), d += t[1].length), u && this.rules.other.blankLine.test(l) && (r += l + "\n", e = e.substring(l.length + 1), n = !0), !n) {
384
+ let t = this.rules.other.nextBulletRegex(d), n = this.rules.other.hrRegex(d), i = this.rules.other.fencesBeginRegex(d), a = this.rules.other.headingBeginRegex(d), o = this.rules.other.htmlBeginRegex(d), f = this.rules.other.blockquoteBeginRegex(d);
385
+ for (; e;) {
386
+ let p = e.split("\n", 1)[0], m;
387
+ if (l = p, this.options.pedantic ? (l = l.replace(this.rules.other.listReplaceNesting, " "), m = l) : m = l.replace(this.rules.other.tabCharGlobal, " "), i.test(l) || a.test(l) || o.test(l) || f.test(l) || t.test(l) || n.test(l)) break;
388
+ if (m.search(this.rules.other.nonSpaceChar) >= d || !l.trim()) s += "\n" + m.slice(d);
389
+ else {
390
+ if (u || c.replace(this.rules.other.tabCharGlobal, " ").search(this.rules.other.nonSpaceChar) >= 4 || i.test(c) || a.test(c) || n.test(c)) break;
391
+ s += "\n" + l;
392
+ }
393
+ u = !l.trim(), r += p + "\n", e = e.substring(p.length + 1), c = m.slice(d);
394
+ }
395
+ }
396
+ i.loose || (o ? i.loose = !0 : this.rules.other.doubleBlankLine.test(r) && (o = !0)), i.items.push({
397
+ type: "list_item",
398
+ raw: r,
399
+ task: !!this.options.gfm && this.rules.other.listIsTask.test(s),
400
+ loose: !1,
401
+ text: s,
402
+ tokens: []
403
+ }), i.raw += r;
404
+ }
405
+ let s = i.items.at(-1);
406
+ if (s) s.raw = s.raw.trimEnd(), s.text = s.text.trimEnd();
407
+ else return;
408
+ i.raw = i.raw.trimEnd();
409
+ for (let e of i.items) {
410
+ this.lexer.state.top = !1, e.tokens = this.lexer.blockTokens(e.text, []);
411
+ let t = e.tokens[0];
412
+ if (e.task && (t?.type === "text" || t?.type === "paragraph")) {
413
+ e.text = e.text.replace(this.rules.other.listReplaceTask, ""), t.raw = t.raw.replace(this.rules.other.listReplaceTask, ""), t.text = t.text.replace(this.rules.other.listReplaceTask, "");
414
+ for (let e = this.lexer.inlineQueue.length - 1; e >= 0; e--) if (this.rules.other.listIsTask.test(this.lexer.inlineQueue[e].src)) {
415
+ this.lexer.inlineQueue[e].src = this.lexer.inlineQueue[e].src.replace(this.rules.other.listReplaceTask, "");
416
+ break;
417
+ }
418
+ let n = this.rules.other.listTaskCheckbox.exec(e.raw);
419
+ if (n) {
420
+ let t = {
421
+ type: "checkbox",
422
+ raw: n[0] + " ",
423
+ checked: n[0] !== "[ ]"
424
+ };
425
+ e.checked = t.checked, i.loose ? e.tokens[0] && ["paragraph", "text"].includes(e.tokens[0].type) && "tokens" in e.tokens[0] && e.tokens[0].tokens ? (e.tokens[0].raw = t.raw + e.tokens[0].raw, e.tokens[0].text = t.raw + e.tokens[0].text, e.tokens[0].tokens.unshift(t)) : e.tokens.unshift({
426
+ type: "paragraph",
427
+ raw: t.raw,
428
+ text: t.raw,
429
+ tokens: [t]
430
+ }) : e.tokens.unshift(t);
431
+ }
432
+ } else e.task &&= !1;
433
+ if (!i.loose) {
434
+ let t = e.tokens.filter((e) => e.type === "space");
435
+ i.loose = t.length > 0 && t.some((e) => this.rules.other.anyLine.test(e.raw));
436
+ }
437
+ }
438
+ if (i.loose) for (let e of i.items) {
439
+ e.loose = !0;
440
+ for (let t of e.tokens) t.type === "text" && (t.type = "paragraph");
441
+ }
442
+ return i;
443
+ }
444
+ }
445
+ html(e) {
446
+ let t = this.rules.block.html.exec(e);
447
+ if (t) {
448
+ let e = W(t[0]);
449
+ return {
450
+ type: "html",
451
+ block: !0,
452
+ raw: e,
453
+ pre: t[1] === "pre" || t[1] === "script" || t[1] === "style",
454
+ text: e
455
+ };
456
+ }
457
+ }
458
+ def(e) {
459
+ let t = this.rules.block.def.exec(e);
460
+ if (t) {
461
+ let e = t[1].toLowerCase().replace(this.rules.other.multipleSpaceGlobal, " "), n = t[2] ? t[2].replace(this.rules.other.hrefBrackets, "$1").replace(this.rules.inline.anyPunctuation, "$1") : "", r = t[3] ? t[3].substring(1, t[3].length - 1).replace(this.rules.inline.anyPunctuation, "$1") : t[3];
462
+ return {
463
+ type: "def",
464
+ tag: e,
465
+ raw: U(t[0], "\n"),
466
+ href: n,
467
+ title: r
468
+ };
469
+ }
470
+ }
471
+ table(e) {
472
+ let t = this.rules.block.table.exec(e);
473
+ if (!t || !this.rules.other.tableDelimiter.test(t[2])) return;
474
+ let n = H(t[1]), r = t[2].replace(this.rules.other.tableAlignChars, "").split("|"), i = t[3]?.trim() ? t[3].replace(this.rules.other.tableRowBlankLine, "").split("\n") : [], a = {
475
+ type: "table",
476
+ raw: U(t[0], "\n"),
477
+ header: [],
478
+ align: [],
479
+ rows: []
480
+ };
481
+ if (n.length === r.length) {
482
+ for (let e of r) this.rules.other.tableAlignRight.test(e) ? a.align.push("right") : this.rules.other.tableAlignCenter.test(e) ? a.align.push("center") : this.rules.other.tableAlignLeft.test(e) ? a.align.push("left") : a.align.push(null);
483
+ for (let e = 0; e < n.length; e++) a.header.push({
484
+ text: n[e],
485
+ tokens: this.lexer.inline(n[e]),
486
+ header: !0,
487
+ align: a.align[e]
488
+ });
489
+ for (let e of i) a.rows.push(H(e, a.header.length).map((e, t) => ({
490
+ text: e,
491
+ tokens: this.lexer.inline(e),
492
+ header: !1,
493
+ align: a.align[t]
494
+ })));
495
+ return a;
496
+ }
497
+ }
498
+ lheading(e) {
499
+ let t = this.rules.block.lheading.exec(e);
500
+ if (t) {
501
+ let e = t[1].trim();
502
+ return {
503
+ type: "heading",
504
+ raw: U(t[0], "\n"),
505
+ depth: t[2].charAt(0) === "=" ? 1 : 2,
506
+ text: e,
507
+ tokens: this.lexer.inline(e)
508
+ };
509
+ }
510
+ }
511
+ paragraph(e) {
512
+ let t = this.rules.block.paragraph.exec(e);
513
+ if (t) {
514
+ let e = t[1].charAt(t[1].length - 1) === "\n" ? t[1].slice(0, -1) : t[1];
515
+ return {
516
+ type: "paragraph",
517
+ raw: t[0],
518
+ text: e,
519
+ tokens: this.lexer.inline(e)
520
+ };
521
+ }
522
+ }
523
+ text(e) {
524
+ let t = this.rules.block.text.exec(e);
525
+ if (t) return {
526
+ type: "text",
527
+ raw: t[0],
528
+ text: t[0],
529
+ tokens: this.lexer.inline(t[0])
530
+ };
531
+ }
532
+ escape(e) {
533
+ let t = this.rules.inline.escape.exec(e);
534
+ if (t) return {
535
+ type: "escape",
536
+ raw: t[0],
537
+ text: t[1]
538
+ };
539
+ }
540
+ tag(e) {
541
+ let t = this.rules.inline.tag.exec(e);
542
+ 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), {
543
+ type: "html",
544
+ raw: t[0],
545
+ inLink: this.lexer.state.inLink,
546
+ inRawBlock: this.lexer.state.inRawBlock,
547
+ block: !1,
548
+ text: t[0]
549
+ };
550
+ }
551
+ link(e) {
552
+ let t = this.rules.inline.link.exec(e);
553
+ if (t) {
554
+ let e = t[2].trim();
555
+ if (!this.options.pedantic && this.rules.other.startAngleBracket.test(e)) {
556
+ if (!this.rules.other.endAngleBracket.test(e)) return;
557
+ let t = U(e.slice(0, -1), "\\");
558
+ if ((e.length - t.length) % 2 == 0) return;
559
+ } else {
560
+ let e = Me(t[2], "()");
561
+ if (e === -2) return;
562
+ if (e > -1) {
563
+ let n = (t[0].indexOf("!") === 0 ? 5 : 4) + t[1].length + e;
564
+ t[2] = t[2].substring(0, e), t[0] = t[0].substring(0, n).trim(), t[3] = "";
565
+ }
566
+ }
567
+ let n = t[2], r = "";
568
+ if (this.options.pedantic) {
569
+ let e = this.rules.other.pedanticHrefTitle.exec(n);
570
+ e && (n = e[1], r = e[3]);
571
+ } else r = t[3] ? t[3].slice(1, -1) : "";
572
+ return n = n.trim(), this.rules.other.startAngleBracket.test(n) && (n = this.options.pedantic && !this.rules.other.endAngleBracket.test(e) ? n.slice(1) : n.slice(1, -1)), G(t, {
573
+ href: n && n.replace(this.rules.inline.anyPunctuation, "$1"),
574
+ title: r && r.replace(this.rules.inline.anyPunctuation, "$1")
575
+ }, t[0], this.lexer, this.rules);
576
+ }
577
+ }
578
+ reflink(e, t) {
579
+ let n;
580
+ if ((n = this.rules.inline.reflink.exec(e)) || (n = this.rules.inline.nolink.exec(e))) {
581
+ let e = t[(n[2] || n[1]).replace(this.rules.other.multipleSpaceGlobal, " ").toLowerCase()];
582
+ if (!e) {
583
+ let e = n[0].charAt(0);
584
+ return {
585
+ type: "text",
586
+ raw: e,
587
+ text: e
588
+ };
589
+ }
590
+ return G(n, e, n[0], this.lexer, this.rules);
591
+ }
592
+ }
593
+ emStrong(e, t, n = "") {
594
+ let r = this.rules.inline.emStrongLDelim.exec(e);
595
+ if (!(!r || !r[1] && !r[2] && !r[3] && !r[4] || r[4] && n.match(this.rules.other.unicodeAlphaNumeric)) && (!(r[1] || r[3]) || !n || this.rules.inline.punctuation.exec(n))) {
596
+ let n = [...r[0]].length - 1, i, a, o = n, s = 0, c = r[0][0] === "*" ? this.rules.inline.emStrongRDelimAst : this.rules.inline.emStrongRDelimUnd;
597
+ for (c.lastIndex = 0, t = t.slice(-1 * e.length + n); (r = c.exec(t)) !== null;) {
598
+ if (i = r[1] || r[2] || r[3] || r[4] || r[5] || r[6], !i) continue;
599
+ if (a = [...i].length, r[3] || r[4]) {
600
+ o += a;
601
+ continue;
602
+ } else if ((r[5] || r[6]) && n % 3 && !((n + a) % 3)) {
603
+ s += a;
604
+ continue;
605
+ }
606
+ if (o -= a, o > 0) continue;
607
+ a = Math.min(a, a + o + s);
608
+ let t = [...r[0]][0].length, c = e.slice(0, n + r.index + t + a);
609
+ if (Math.min(n, a) % 2) {
610
+ let e = c.slice(1, -1);
611
+ return {
612
+ type: "em",
613
+ raw: c,
614
+ text: e,
615
+ tokens: this.lexer.inlineTokens(e)
616
+ };
617
+ }
618
+ let l = c.slice(2, -2);
619
+ return {
620
+ type: "strong",
621
+ raw: c,
622
+ text: l,
623
+ tokens: this.lexer.inlineTokens(l)
624
+ };
625
+ }
626
+ }
627
+ }
628
+ codespan(e) {
629
+ let t = this.rules.inline.code.exec(e);
630
+ if (t) {
631
+ let e = t[2].replace(this.rules.other.newLineCharGlobal, " "), n = this.rules.other.nonSpaceChar.test(e), r = this.rules.other.startingSpaceChar.test(e) && this.rules.other.endingSpaceChar.test(e);
632
+ return n && r && (e = e.substring(1, e.length - 1)), {
633
+ type: "codespan",
634
+ raw: t[0],
635
+ text: e
636
+ };
637
+ }
638
+ }
639
+ br(e) {
640
+ let t = this.rules.inline.br.exec(e);
641
+ if (t) return {
642
+ type: "br",
643
+ raw: t[0]
644
+ };
645
+ }
646
+ del(e, t, n = "") {
647
+ let r = this.rules.inline.delLDelim.exec(e);
648
+ if (r && (!r[1] || !n || this.rules.inline.punctuation.exec(n))) {
649
+ let n = [...r[0]].length - 1, i, a, o = n, s = this.rules.inline.delRDelim;
650
+ for (s.lastIndex = 0, t = t.slice(-1 * e.length + n); (r = s.exec(t)) !== null;) {
651
+ if (i = r[1] || r[2] || r[3] || r[4] || r[5] || r[6], !i || (a = [...i].length, a !== n)) continue;
652
+ if (r[3] || r[4]) {
653
+ o += a;
654
+ continue;
655
+ }
656
+ if (o -= a, o > 0) continue;
657
+ a = Math.min(a, a + o);
658
+ let t = [...r[0]][0].length, s = e.slice(0, n + r.index + t + a), c = s.slice(n, -n);
659
+ return {
660
+ type: "del",
661
+ raw: s,
662
+ text: c,
663
+ tokens: this.lexer.inlineTokens(c)
664
+ };
665
+ }
666
+ }
667
+ }
668
+ autolink(e) {
669
+ let t = this.rules.inline.autolink.exec(e);
670
+ if (t) {
671
+ let e, n;
672
+ return t[2] === "@" ? (e = t[1], n = "mailto:" + e) : (e = t[1], n = e), {
673
+ type: "link",
674
+ raw: t[0],
675
+ text: e,
676
+ href: n,
677
+ tokens: [{
678
+ type: "text",
679
+ raw: e,
680
+ text: e
681
+ }]
682
+ };
683
+ }
684
+ }
685
+ url(e) {
686
+ let t;
687
+ if (t = this.rules.inline.url.exec(e)) {
688
+ let e, n;
689
+ if (t[2] === "@") e = t[0], n = "mailto:" + e;
690
+ else {
691
+ let r;
692
+ do
693
+ r = t[0], t[0] = this.rules.inline._backpedal.exec(t[0])?.[0] ?? "";
694
+ while (r !== t[0]);
695
+ e = t[0], n = t[1] === "www." ? "http://" + t[0] : t[0];
696
+ }
697
+ return {
698
+ type: "link",
699
+ raw: t[0],
700
+ text: e,
701
+ href: n,
702
+ tokens: [{
703
+ type: "text",
704
+ raw: e,
705
+ text: e
706
+ }]
707
+ };
708
+ }
709
+ }
710
+ inlineText(e) {
711
+ let t = this.rules.inline.text.exec(e);
712
+ if (t) {
713
+ let e = this.lexer.state.inRawBlock;
714
+ return {
715
+ type: "text",
716
+ raw: t[0],
717
+ text: t[0],
718
+ escaped: e
719
+ };
720
+ }
721
+ }
722
+ }, q = class e {
723
+ tokens;
724
+ options;
725
+ state;
726
+ inlineQueue;
727
+ tokenizer;
728
+ constructor(e) {
729
+ this.tokens = [], this.tokens.links = Object.create(null), this.options = e || n, this.options.tokenizer = this.options.tokenizer || new K(), this.tokenizer = this.options.tokenizer, this.tokenizer.options = this.options, this.tokenizer.lexer = this, this.inlineQueue = [], this.state = {
730
+ inLink: !1,
731
+ inRawBlock: !1,
732
+ top: !0
733
+ };
734
+ let t = {
735
+ other: c,
736
+ block: L.normal,
737
+ inline: R.normal
738
+ };
739
+ this.options.pedantic ? (t.block = L.pedantic, t.inline = R.pedantic) : this.options.gfm && (t.block = L.gfm, this.options.breaks ? t.inline = R.breaks : t.inline = R.gfm), this.tokenizer.rules = t;
740
+ }
741
+ static get rules() {
742
+ return {
743
+ block: L,
744
+ inline: R
745
+ };
746
+ }
747
+ static lex(t, n) {
748
+ return new e(n).lex(t);
749
+ }
750
+ static lexInline(t, n) {
751
+ return new e(n).inlineTokens(t);
752
+ }
753
+ lex(e) {
754
+ e = e.replace(c.carriageReturn, "\n"), this.blockTokens(e, this.tokens);
755
+ for (let e = 0; e < this.inlineQueue.length; e++) {
756
+ let t = this.inlineQueue[e];
757
+ this.inlineTokens(t.src, t.tokens);
758
+ }
759
+ return this.inlineQueue = [], this.tokens;
760
+ }
761
+ blockTokens(e, t = [], n = !1) {
762
+ this.tokenizer.lexer = this, this.options.pedantic && (e = e.replace(c.tabCharGlobal, " ").replace(c.spaceLine, ""));
763
+ let r = Infinity;
764
+ for (; e;) {
765
+ if (e.length < r) r = e.length;
766
+ else {
767
+ this.infiniteLoopError(e.charCodeAt(0));
768
+ break;
769
+ }
770
+ let i;
771
+ if (this.options.extensions?.block?.some((n) => (i = n.call({ lexer: this }, e, t)) ? (e = e.substring(i.raw.length), t.push(i), !0) : !1)) continue;
772
+ if (i = this.tokenizer.space(e)) {
773
+ e = e.substring(i.raw.length);
774
+ let n = t.at(-1);
775
+ i.raw.length === 1 && n !== void 0 ? n.raw += "\n" : t.push(i);
776
+ continue;
777
+ }
778
+ if (i = this.tokenizer.code(e)) {
779
+ e = e.substring(i.raw.length);
780
+ let n = t.at(-1);
781
+ n?.type === "paragraph" || n?.type === "text" ? (n.raw += (n.raw.endsWith("\n") ? "" : "\n") + i.raw, n.text += "\n" + i.text, this.inlineQueue.at(-1).src = n.text) : t.push(i);
782
+ continue;
783
+ }
784
+ if (i = this.tokenizer.fences(e)) {
785
+ e = e.substring(i.raw.length), t.push(i);
786
+ continue;
787
+ }
788
+ if (i = this.tokenizer.heading(e)) {
789
+ e = e.substring(i.raw.length), t.push(i);
790
+ continue;
791
+ }
792
+ if (i = this.tokenizer.hr(e)) {
793
+ e = e.substring(i.raw.length), t.push(i);
794
+ continue;
795
+ }
796
+ if (i = this.tokenizer.blockquote(e)) {
797
+ e = e.substring(i.raw.length), t.push(i);
798
+ continue;
799
+ }
800
+ if (i = this.tokenizer.list(e)) {
801
+ e = e.substring(i.raw.length), t.push(i);
802
+ continue;
803
+ }
804
+ if (i = this.tokenizer.html(e)) {
805
+ e = e.substring(i.raw.length), t.push(i);
806
+ continue;
807
+ }
808
+ if (i = this.tokenizer.def(e)) {
809
+ e = e.substring(i.raw.length);
810
+ let n = t.at(-1);
811
+ n?.type === "paragraph" || n?.type === "text" ? (n.raw += (n.raw.endsWith("\n") ? "" : "\n") + i.raw, n.text += "\n" + i.raw, this.inlineQueue.at(-1).src = n.text) : this.tokens.links[i.tag] || (this.tokens.links[i.tag] = {
812
+ href: i.href,
813
+ title: i.title
814
+ }, t.push(i));
815
+ continue;
816
+ }
817
+ if (i = this.tokenizer.table(e)) {
818
+ e = e.substring(i.raw.length), t.push(i);
819
+ continue;
820
+ }
821
+ if (i = this.tokenizer.lheading(e)) {
822
+ e = e.substring(i.raw.length), t.push(i);
823
+ continue;
824
+ }
825
+ let a = e;
826
+ if (this.options.extensions?.startBlock) {
827
+ let t = Infinity, n = e.slice(1), r;
828
+ this.options.extensions.startBlock.forEach((e) => {
829
+ r = e.call({ lexer: this }, n), typeof r == "number" && r >= 0 && (t = Math.min(t, r));
830
+ }), t < Infinity && t >= 0 && (a = e.substring(0, t + 1));
831
+ }
832
+ if (this.state.top && (i = this.tokenizer.paragraph(a))) {
833
+ let r = t.at(-1);
834
+ n && r?.type === "paragraph" ? (r.raw += (r.raw.endsWith("\n") ? "" : "\n") + i.raw, r.text += "\n" + i.text, this.inlineQueue.pop(), this.inlineQueue.at(-1).src = r.text) : t.push(i), n = a.length !== e.length, e = e.substring(i.raw.length);
835
+ continue;
836
+ }
837
+ if (i = this.tokenizer.text(e)) {
838
+ e = e.substring(i.raw.length);
839
+ let n = t.at(-1);
840
+ n?.type === "text" ? (n.raw += (n.raw.endsWith("\n") ? "" : "\n") + i.raw, n.text += "\n" + i.text, this.inlineQueue.pop(), this.inlineQueue.at(-1).src = n.text) : t.push(i);
841
+ continue;
842
+ }
843
+ if (e) {
844
+ this.infiniteLoopError(e.charCodeAt(0));
845
+ break;
846
+ }
847
+ }
848
+ return this.state.top = !0, t;
849
+ }
850
+ inline(e, t = []) {
851
+ return this.inlineQueue.push({
852
+ src: e,
853
+ tokens: t
854
+ }), t;
855
+ }
856
+ inlineTokens(e, t = []) {
857
+ this.tokenizer.lexer = this;
858
+ let n = e;
859
+ if (this.tokens.links) {
860
+ let e = Object.keys(this.tokens.links);
861
+ e.length > 0 && (n = n.replace(this.tokenizer.rules.inline.reflinkSearch, (t) => e.includes(t.slice(t.lastIndexOf("[") + 1, -1)) ? "[" + "a".repeat(t.length - 2) + "]" : t));
862
+ }
863
+ n = n.replace(this.tokenizer.rules.inline.anyPunctuation, "++"), n = n.replace(this.tokenizer.rules.inline.blockSkip, (e, t, n) => {
864
+ let r = n ? n.length : 0;
865
+ return e.slice(0, r) + "[" + "a".repeat(e.length - r - 2) + "]";
866
+ }), n = this.options.hooks?.emStrongMask?.call({ lexer: this }, n) ?? n;
867
+ let r = !1, i = "", a = Infinity;
868
+ for (; e;) {
869
+ if (e.length < a) a = e.length;
870
+ else {
871
+ this.infiniteLoopError(e.charCodeAt(0));
872
+ break;
873
+ }
874
+ r || (i = ""), r = !1;
875
+ let o;
876
+ if (this.options.extensions?.inline?.some((n) => (o = n.call({ lexer: this }, e, t)) ? (e = e.substring(o.raw.length), t.push(o), !0) : !1)) continue;
877
+ if (o = this.tokenizer.escape(e)) {
878
+ e = e.substring(o.raw.length), t.push(o);
879
+ continue;
880
+ }
881
+ if (o = this.tokenizer.tag(e)) {
882
+ e = e.substring(o.raw.length), t.push(o);
883
+ continue;
884
+ }
885
+ if (o = this.tokenizer.link(e)) {
886
+ e = e.substring(o.raw.length), t.push(o);
887
+ continue;
888
+ }
889
+ if (o = this.tokenizer.reflink(e, this.tokens.links)) {
890
+ e = e.substring(o.raw.length);
891
+ let n = t.at(-1);
892
+ o.type === "text" && n?.type === "text" ? (n.raw += o.raw, n.text += o.text) : t.push(o);
893
+ continue;
894
+ }
895
+ if (o = this.tokenizer.emStrong(e, n, i)) {
896
+ e = e.substring(o.raw.length), t.push(o);
897
+ continue;
898
+ }
899
+ if (o = this.tokenizer.codespan(e)) {
900
+ e = e.substring(o.raw.length), t.push(o);
901
+ continue;
902
+ }
903
+ if (o = this.tokenizer.br(e)) {
904
+ e = e.substring(o.raw.length), t.push(o);
905
+ continue;
906
+ }
907
+ if (o = this.tokenizer.del(e, n, i)) {
908
+ e = e.substring(o.raw.length), t.push(o);
909
+ continue;
910
+ }
911
+ if (o = this.tokenizer.autolink(e)) {
912
+ e = e.substring(o.raw.length), t.push(o);
913
+ continue;
914
+ }
915
+ if (!this.state.inLink && (o = this.tokenizer.url(e))) {
916
+ e = e.substring(o.raw.length), t.push(o);
917
+ continue;
918
+ }
919
+ let s = e;
920
+ if (this.options.extensions?.startInline) {
921
+ let t = Infinity, n = e.slice(1), r;
922
+ this.options.extensions.startInline.forEach((e) => {
923
+ r = e.call({ lexer: this }, n), typeof r == "number" && r >= 0 && (t = Math.min(t, r));
924
+ }), t < Infinity && t >= 0 && (s = e.substring(0, t + 1));
925
+ }
926
+ if (o = this.tokenizer.inlineText(s)) {
927
+ e = e.substring(o.raw.length), o.raw.slice(-1) !== "_" && (i = o.raw.slice(-1)), r = !0;
928
+ let n = t.at(-1);
929
+ n?.type === "text" ? (n.raw += o.raw, n.text += o.text) : t.push(o);
930
+ continue;
931
+ }
932
+ if (e) {
933
+ this.infiniteLoopError(e.charCodeAt(0));
934
+ break;
935
+ }
936
+ }
937
+ return t;
938
+ }
939
+ infiniteLoopError(e) {
940
+ let t = "Infinite loop on byte: " + e;
941
+ if (this.options.silent) console.error(t);
942
+ else throw Error(t);
943
+ }
944
+ }, J = class {
945
+ options;
946
+ parser;
947
+ constructor(e) {
948
+ this.options = e || n;
949
+ }
950
+ space(e) {
951
+ return "";
952
+ }
953
+ code({ text: e, lang: t, escaped: n }) {
954
+ let r = (t || "").match(c.notSpaceStart)?.[0], i = e.replace(c.endingNewline, "") + "\n";
955
+ return r ? "<pre><code class=\"language-" + B(r) + "\">" + (n ? i : B(i, !0)) + "</code></pre>\n" : "<pre><code>" + (n ? i : B(i, !0)) + "</code></pre>\n";
956
+ }
957
+ blockquote({ tokens: e }) {
958
+ return `<blockquote>
959
+ ${this.parser.parse(e)}</blockquote>
960
+ `;
961
+ }
962
+ html({ text: e }) {
963
+ return e;
964
+ }
965
+ def(e) {
966
+ return "";
967
+ }
968
+ heading({ tokens: e, depth: t }) {
969
+ return `<h${t}>${this.parser.parseInline(e)}</h${t}>
970
+ `;
971
+ }
972
+ hr(e) {
973
+ return "<hr>\n";
974
+ }
975
+ list(e) {
976
+ let t = e.ordered, n = e.start, r = "";
977
+ for (let t = 0; t < e.items.length; t++) {
978
+ let n = e.items[t];
979
+ r += this.listitem(n);
980
+ }
981
+ let i = t ? "ol" : "ul", a = t && n !== 1 ? " start=\"" + n + "\"" : "";
982
+ return "<" + i + a + ">\n" + r + "</" + i + ">\n";
983
+ }
984
+ listitem(e) {
985
+ return `<li>${this.parser.parse(e.tokens)}</li>
986
+ `;
987
+ }
988
+ checkbox({ checked: e }) {
989
+ return "<input " + (e ? "checked=\"\" " : "") + "disabled=\"\" type=\"checkbox\"> ";
990
+ }
991
+ paragraph({ tokens: e }) {
992
+ return `<p>${this.parser.parseInline(e)}</p>
993
+ `;
994
+ }
995
+ table(e) {
996
+ let t = "", n = "";
997
+ for (let t = 0; t < e.header.length; t++) n += this.tablecell(e.header[t]);
998
+ t += this.tablerow({ text: n });
999
+ let r = "";
1000
+ for (let t = 0; t < e.rows.length; t++) {
1001
+ let i = e.rows[t];
1002
+ n = "";
1003
+ for (let e = 0; e < i.length; e++) n += this.tablecell(i[e]);
1004
+ r += this.tablerow({ text: n });
1005
+ }
1006
+ return r &&= `<tbody>${r}</tbody>`, "<table>\n<thead>\n" + t + "</thead>\n" + r + "</table>\n";
1007
+ }
1008
+ tablerow({ text: e }) {
1009
+ return `<tr>
1010
+ ${e}</tr>
1011
+ `;
1012
+ }
1013
+ tablecell(e) {
1014
+ let t = this.parser.parseInline(e.tokens), n = e.header ? "th" : "td";
1015
+ return (e.align ? `<${n} align="${e.align}">` : `<${n}>`) + t + `</${n}>
1016
+ `;
1017
+ }
1018
+ strong({ tokens: e }) {
1019
+ return `<strong>${this.parser.parseInline(e)}</strong>`;
1020
+ }
1021
+ em({ tokens: e }) {
1022
+ return `<em>${this.parser.parseInline(e)}</em>`;
1023
+ }
1024
+ codespan({ text: e }) {
1025
+ return `<code>${B(e, !0)}</code>`;
1026
+ }
1027
+ br(e) {
1028
+ return "<br>";
1029
+ }
1030
+ del({ tokens: e }) {
1031
+ return `<del>${this.parser.parseInline(e)}</del>`;
1032
+ }
1033
+ link({ href: e, title: t, tokens: n }) {
1034
+ let r = this.parser.parseInline(n), i = V(e);
1035
+ if (i === null) return r;
1036
+ e = i;
1037
+ let a = "<a href=\"" + e + "\"";
1038
+ return t && (a += " title=\"" + B(t) + "\""), a += ">" + r + "</a>", a;
1039
+ }
1040
+ image({ href: e, title: t, text: n, tokens: r }) {
1041
+ r && (n = this.parser.parseInline(r, this.parser.textRenderer));
1042
+ let i = V(e);
1043
+ if (i === null) return B(n);
1044
+ e = i;
1045
+ let a = `<img src="${e}" alt="${B(n)}"`;
1046
+ return t && (a += ` title="${B(t)}"`), a += ">", a;
1047
+ }
1048
+ text(e) {
1049
+ return "tokens" in e && e.tokens ? this.parser.parseInline(e.tokens) : "escaped" in e && e.escaped ? e.text : B(e.text);
1050
+ }
1051
+ }, Y = class {
1052
+ strong({ text: e }) {
1053
+ return e;
1054
+ }
1055
+ em({ text: e }) {
1056
+ return e;
1057
+ }
1058
+ codespan({ text: e }) {
1059
+ return e;
1060
+ }
1061
+ del({ text: e }) {
1062
+ return e;
1063
+ }
1064
+ html({ text: e }) {
1065
+ return e;
1066
+ }
1067
+ text({ text: e }) {
1068
+ return e;
1069
+ }
1070
+ link({ text: e }) {
1071
+ return "" + e;
1072
+ }
1073
+ image({ text: e }) {
1074
+ return "" + e;
1075
+ }
1076
+ br() {
1077
+ return "";
1078
+ }
1079
+ checkbox({ raw: e }) {
1080
+ return e;
1081
+ }
1082
+ }, X = class e {
1083
+ options;
1084
+ renderer;
1085
+ textRenderer;
1086
+ constructor(e) {
1087
+ this.options = e || n, this.options.renderer = this.options.renderer || new J(), this.renderer = this.options.renderer, this.renderer.options = this.options, this.renderer.parser = this, this.textRenderer = new Y();
1088
+ }
1089
+ static parse(t, n) {
1090
+ return new e(n).parse(t);
1091
+ }
1092
+ static parseInline(t, n) {
1093
+ return new e(n).parseInline(t);
1094
+ }
1095
+ parse(e) {
1096
+ this.renderer.parser = this;
1097
+ let t = "";
1098
+ for (let n = 0; n < e.length; n++) {
1099
+ let r = e[n];
1100
+ if (this.options.extensions?.renderers?.[r.type]) {
1101
+ let e = r, n = this.options.extensions.renderers[e.type].call({ parser: this }, e);
1102
+ if (n !== !1 || ![
1103
+ "space",
1104
+ "hr",
1105
+ "heading",
1106
+ "code",
1107
+ "table",
1108
+ "blockquote",
1109
+ "list",
1110
+ "html",
1111
+ "def",
1112
+ "paragraph",
1113
+ "text"
1114
+ ].includes(e.type)) {
1115
+ t += n || "";
1116
+ continue;
1117
+ }
1118
+ }
1119
+ let i = r;
1120
+ switch (i.type) {
1121
+ case "space":
1122
+ t += this.renderer.space(i);
1123
+ break;
1124
+ case "hr":
1125
+ t += this.renderer.hr(i);
1126
+ break;
1127
+ case "heading":
1128
+ t += this.renderer.heading(i);
1129
+ break;
1130
+ case "code":
1131
+ t += this.renderer.code(i);
1132
+ break;
1133
+ case "table":
1134
+ t += this.renderer.table(i);
1135
+ break;
1136
+ case "blockquote":
1137
+ t += this.renderer.blockquote(i);
1138
+ break;
1139
+ case "list":
1140
+ t += this.renderer.list(i);
1141
+ break;
1142
+ case "checkbox":
1143
+ t += this.renderer.checkbox(i);
1144
+ break;
1145
+ case "html":
1146
+ t += this.renderer.html(i);
1147
+ break;
1148
+ case "def":
1149
+ t += this.renderer.def(i);
1150
+ break;
1151
+ case "paragraph":
1152
+ t += this.renderer.paragraph(i);
1153
+ break;
1154
+ case "text":
1155
+ t += this.renderer.text(i);
1156
+ break;
1157
+ default: {
1158
+ let e = "Token with \"" + i.type + "\" type was not found.";
1159
+ if (this.options.silent) return console.error(e), "";
1160
+ throw Error(e);
1161
+ }
1162
+ }
1163
+ }
1164
+ return t;
1165
+ }
1166
+ parseInline(e, t = this.renderer) {
1167
+ this.renderer.parser = this;
1168
+ let n = "";
1169
+ for (let r = 0; r < e.length; r++) {
1170
+ let i = e[r];
1171
+ if (this.options.extensions?.renderers?.[i.type]) {
1172
+ let e = this.options.extensions.renderers[i.type].call({ parser: this }, i);
1173
+ if (e !== !1 || ![
1174
+ "escape",
1175
+ "html",
1176
+ "link",
1177
+ "image",
1178
+ "strong",
1179
+ "em",
1180
+ "codespan",
1181
+ "br",
1182
+ "del",
1183
+ "text"
1184
+ ].includes(i.type)) {
1185
+ n += e || "";
1186
+ continue;
1187
+ }
1188
+ }
1189
+ let a = i;
1190
+ switch (a.type) {
1191
+ case "escape":
1192
+ n += t.text(a);
1193
+ break;
1194
+ case "html":
1195
+ n += t.html(a);
1196
+ break;
1197
+ case "link":
1198
+ n += t.link(a);
1199
+ break;
1200
+ case "image":
1201
+ n += t.image(a);
1202
+ break;
1203
+ case "checkbox":
1204
+ n += t.checkbox(a);
1205
+ break;
1206
+ case "strong":
1207
+ n += t.strong(a);
1208
+ break;
1209
+ case "em":
1210
+ n += t.em(a);
1211
+ break;
1212
+ case "codespan":
1213
+ n += t.codespan(a);
1214
+ break;
1215
+ case "br":
1216
+ n += t.br(a);
1217
+ break;
1218
+ case "del":
1219
+ n += t.del(a);
1220
+ break;
1221
+ case "text":
1222
+ n += t.text(a);
1223
+ break;
1224
+ default: {
1225
+ let e = "Token with \"" + a.type + "\" type was not found.";
1226
+ if (this.options.silent) return console.error(e), "";
1227
+ throw Error(e);
1228
+ }
1229
+ }
1230
+ }
1231
+ return n;
1232
+ }
1233
+ }, Z = class {
1234
+ options;
1235
+ block;
1236
+ constructor(e) {
1237
+ this.options = e || n;
1238
+ }
1239
+ static passThroughHooks = /* @__PURE__ */ new Set([
1240
+ "preprocess",
1241
+ "postprocess",
1242
+ "processAllTokens",
1243
+ "emStrongMask"
1244
+ ]);
1245
+ static passThroughHooksRespectAsync = /* @__PURE__ */ new Set([
1246
+ "preprocess",
1247
+ "postprocess",
1248
+ "processAllTokens"
1249
+ ]);
1250
+ preprocess(e) {
1251
+ return e;
1252
+ }
1253
+ postprocess(e) {
1254
+ return e;
1255
+ }
1256
+ processAllTokens(e) {
1257
+ return e;
1258
+ }
1259
+ emStrongMask(e) {
1260
+ return e;
1261
+ }
1262
+ provideLexer(e = this.block) {
1263
+ return e ? q.lex : q.lexInline;
1264
+ }
1265
+ provideParser(e = this.block) {
1266
+ return e ? X.parse : X.parseInline;
1267
+ }
1268
+ }, Q = new class {
1269
+ defaults = t();
1270
+ options = this.setOptions;
1271
+ parse = this.parseMarkdown(!0);
1272
+ parseInline = this.parseMarkdown(!1);
1273
+ Parser = X;
1274
+ Renderer = J;
1275
+ TextRenderer = Y;
1276
+ Lexer = q;
1277
+ Tokenizer = K;
1278
+ Hooks = Z;
1279
+ constructor(...e) {
1280
+ this.use(...e);
1281
+ }
1282
+ walkTokens(e, t) {
1283
+ let n = [];
1284
+ for (let r of e) switch (n = n.concat(t.call(this, r)), r.type) {
1285
+ case "table": {
1286
+ let e = r;
1287
+ for (let r of e.header) n = n.concat(this.walkTokens(r.tokens, t));
1288
+ for (let r of e.rows) for (let e of r) n = n.concat(this.walkTokens(e.tokens, t));
1289
+ break;
1290
+ }
1291
+ case "list": {
1292
+ let e = r;
1293
+ n = n.concat(this.walkTokens(e.items, t));
1294
+ break;
1295
+ }
1296
+ default: {
1297
+ let e = r;
1298
+ this.defaults.extensions?.childTokens?.[e.type] ? this.defaults.extensions.childTokens[e.type].forEach((r) => {
1299
+ let i = e[r].flat(Infinity);
1300
+ n = n.concat(this.walkTokens(i, t));
1301
+ }) : e.tokens && (n = n.concat(this.walkTokens(e.tokens, t)));
1302
+ }
1303
+ }
1304
+ return n;
1305
+ }
1306
+ use(...e) {
1307
+ let t = this.defaults.extensions || {
1308
+ renderers: {},
1309
+ childTokens: {}
1310
+ };
1311
+ return e.forEach((e) => {
1312
+ let n = { ...e };
1313
+ if (n.async = this.defaults.async || n.async || !1, e.extensions && (e.extensions.forEach((e) => {
1314
+ if (!e.name) throw Error("extension name required");
1315
+ if ("renderer" in e) {
1316
+ let n = t.renderers[e.name];
1317
+ n ? t.renderers[e.name] = function(...t) {
1318
+ let r = e.renderer.apply(this, t);
1319
+ return r === !1 && (r = n.apply(this, t)), r;
1320
+ } : t.renderers[e.name] = e.renderer;
1321
+ }
1322
+ if ("tokenizer" in e) {
1323
+ if (!e.level || e.level !== "block" && e.level !== "inline") throw Error("extension level must be 'block' or 'inline'");
1324
+ let n = t[e.level];
1325
+ n ? n.unshift(e.tokenizer) : t[e.level] = [e.tokenizer], e.start && (e.level === "block" ? t.startBlock ? t.startBlock.push(e.start) : t.startBlock = [e.start] : e.level === "inline" && (t.startInline ? t.startInline.push(e.start) : t.startInline = [e.start]));
1326
+ }
1327
+ "childTokens" in e && e.childTokens && (t.childTokens[e.name] = e.childTokens);
1328
+ }), n.extensions = t), e.renderer) {
1329
+ let t = this.defaults.renderer || new J(this.defaults);
1330
+ for (let n in e.renderer) {
1331
+ if (!(n in t)) throw Error(`renderer '${n}' does not exist`);
1332
+ if (["options", "parser"].includes(n)) continue;
1333
+ let r = n, i = e.renderer[r], a = t[r];
1334
+ t[r] = (...e) => {
1335
+ let n = i.apply(t, e);
1336
+ return n === !1 && (n = a.apply(t, e)), n || "";
1337
+ };
1338
+ }
1339
+ n.renderer = t;
1340
+ }
1341
+ if (e.tokenizer) {
1342
+ let t = this.defaults.tokenizer || new K(this.defaults);
1343
+ for (let n in e.tokenizer) {
1344
+ if (!(n in t)) throw Error(`tokenizer '${n}' does not exist`);
1345
+ if ([
1346
+ "options",
1347
+ "rules",
1348
+ "lexer"
1349
+ ].includes(n)) continue;
1350
+ let r = n, i = e.tokenizer[r], a = t[r];
1351
+ t[r] = (...e) => {
1352
+ let n = i.apply(t, e);
1353
+ return n === !1 && (n = a.apply(t, e)), n;
1354
+ };
1355
+ }
1356
+ n.tokenizer = t;
1357
+ }
1358
+ if (e.hooks) {
1359
+ let t = this.defaults.hooks || new Z();
1360
+ for (let n in e.hooks) {
1361
+ if (!(n in t)) throw Error(`hook '${n}' does not exist`);
1362
+ if (["options", "block"].includes(n)) continue;
1363
+ let r = n, i = e.hooks[r], a = t[r];
1364
+ Z.passThroughHooks.has(n) ? t[r] = (e) => {
1365
+ if (this.defaults.async && Z.passThroughHooksRespectAsync.has(n)) return (async () => {
1366
+ let n = await i.call(t, e);
1367
+ return a.call(t, n);
1368
+ })();
1369
+ let r = i.call(t, e);
1370
+ return a.call(t, r);
1371
+ } : t[r] = (...e) => {
1372
+ if (this.defaults.async) return (async () => {
1373
+ let n = await i.apply(t, e);
1374
+ return n === !1 && (n = await a.apply(t, e)), n;
1375
+ })();
1376
+ let n = i.apply(t, e);
1377
+ return n === !1 && (n = a.apply(t, e)), n;
1378
+ };
1379
+ }
1380
+ n.hooks = t;
1381
+ }
1382
+ if (e.walkTokens) {
1383
+ let t = this.defaults.walkTokens, r = e.walkTokens;
1384
+ n.walkTokens = function(e) {
1385
+ let n = [];
1386
+ return n.push(r.call(this, e)), t && (n = n.concat(t.call(this, e))), n;
1387
+ };
1388
+ }
1389
+ this.defaults = {
1390
+ ...this.defaults,
1391
+ ...n
1392
+ };
1393
+ }), this;
1394
+ }
1395
+ setOptions(e) {
1396
+ return this.defaults = {
1397
+ ...this.defaults,
1398
+ ...e
1399
+ }, this;
1400
+ }
1401
+ lexer(e, t) {
1402
+ return q.lex(e, t ?? this.defaults);
1403
+ }
1404
+ parser(e, t) {
1405
+ return X.parse(e, t ?? this.defaults);
1406
+ }
1407
+ parseMarkdown(e) {
1408
+ return (t, n) => {
1409
+ let r = { ...n }, i = {
1410
+ ...this.defaults,
1411
+ ...r
1412
+ }, a = this.onError(!!i.silent, !!i.async);
1413
+ if (this.defaults.async === !0 && r.async === !1) return a(/* @__PURE__ */ Error("marked(): The async option was set to true by an extension. Remove async: false from the parse options object to return a Promise."));
1414
+ if (typeof t > "u" || t === null) return a(/* @__PURE__ */ Error("marked(): input parameter is undefined or null"));
1415
+ if (typeof t != "string") return a(/* @__PURE__ */ Error("marked(): input parameter is of type " + Object.prototype.toString.call(t) + ", string expected"));
1416
+ if (i.hooks && (i.hooks.options = i, i.hooks.block = e), i.async) return (async () => {
1417
+ let n = i.hooks ? await i.hooks.preprocess(t) : t, r = await (i.hooks ? await i.hooks.provideLexer(e) : e ? q.lex : q.lexInline)(n, i), a = i.hooks ? await i.hooks.processAllTokens(r) : r;
1418
+ i.walkTokens && await Promise.all(this.walkTokens(a, i.walkTokens));
1419
+ let o = await (i.hooks ? await i.hooks.provideParser(e) : e ? X.parse : X.parseInline)(a, i);
1420
+ return i.hooks ? await i.hooks.postprocess(o) : o;
1421
+ })().catch(a);
1422
+ try {
1423
+ i.hooks && (t = i.hooks.preprocess(t));
1424
+ let n = (i.hooks ? i.hooks.provideLexer(e) : e ? q.lex : q.lexInline)(t, i);
1425
+ i.hooks && (n = i.hooks.processAllTokens(n)), i.walkTokens && this.walkTokens(n, i.walkTokens);
1426
+ let r = (i.hooks ? i.hooks.provideParser(e) : e ? X.parse : X.parseInline)(n, i);
1427
+ return i.hooks && (r = i.hooks.postprocess(r)), r;
1428
+ } catch (e) {
1429
+ return a(e);
1430
+ }
1431
+ };
1432
+ }
1433
+ onError(e, t) {
1434
+ return (n) => {
1435
+ if (n.message += "\nPlease report this to https://github.com/markedjs/marked.", e) {
1436
+ let e = "<p>An error occurred:</p><pre>" + B(n.message + "", !0) + "</pre>";
1437
+ return t ? Promise.resolve(e) : e;
1438
+ }
1439
+ if (t) return Promise.reject(n);
1440
+ throw n;
1441
+ };
1442
+ }
1443
+ }();
1444
+ function $(e, t) {
1445
+ return Q.parse(e, t);
1446
+ }
1447
+ $.options = $.setOptions = function(e) {
1448
+ return Q.setOptions(e), $.defaults = Q.defaults, r($.defaults), $;
1449
+ }, $.getDefaults = t, $.defaults = n, $.use = function(...e) {
1450
+ return Q.use(...e), $.defaults = Q.defaults, r($.defaults), $;
1451
+ }, $.walkTokens = function(e, t) {
1452
+ return Q.walkTokens(e, t);
1453
+ }, $.parseInline = Q.parseInline, $.Parser = X, $.parser = X.parse, $.Renderer = J, $.TextRenderer = Y, $.Lexer = q, $.lexer = q.lex, $.Tokenizer = K, $.Hooks = Z, $.parse = $, $.options, $.setOptions, $.use, $.walkTokens, $.parseInline, X.parse, q.lex;
1454
+ //#endregion
1455
+ //#region lib/utils/markdown-to-html.ts
1456
+ var Fe = (t) => e.sanitize($.parse(t, { async: !1 }));
1457
+ //#endregion
1458
+ export { $ as n, Fe as t };