UNPKG

@aegisjsproject/md-editor

Version:

A custom Markdown editor component with preview as a form input element

1 lines 112 kB
const e=t=>{switch(typeof t){case"undefined":return"";case"boolean":return t?"true":"false";case"object":return null===t?"":t instanceof CSSStyleSheet?[...t.cssRules].map((e=>e.cssText)).join("\n\n"):t instanceof CSSRule?t.cssText:t instanceof HTMLLinkElement?e(t.sheet):t instanceof ArrayBuffer&&Uint8Array.prototype.toBase64 instanceof Function?new Uint8Array(t).toBase64():ArrayBuffer.isView(t)&&t.toBase64 instanceof Function?t.toBase64():t instanceof Blob?URL.createObjectURL(t):t.toString();default:return t.toString()}};const t=({media:t,disabled:n,baseURL:r,sync:o=!1}={})=>o?(o,...i)=>function(e,{media:t,disabled:n,baseURL:r}={}){const o=new CSSStyleSheet({media:t instanceof MediaQueryList?t.media:t,disabled:n,baseURL:r});return o.replaceSync(e),o}(String.raw(o,...i.map(e)).trim(),{media:t,disabled:n,baseURL:r}):(o,...i)=>function(e,{media:t,disabled:n,baseURL:r}={}){const o=new CSSStyleSheet({media:t instanceof MediaQueryList?t.media:t,disabled:n,baseURL:r});return o.replace(e).catch(reportError),o}(String.raw(o,...i.map(e)).trim(),{media:t,disabled:n,baseURL:r}),n=t();function r(e,t){if(t instanceof CSSStyleSheet||t instanceof CSSConditionRule||t instanceof CSSMediaRule)r(e,t.cssRules);else if(t instanceof CSSRuleList)for(const n of t)r(e,n);else t instanceof CSSStyleRule&&(t.selectorText=`${e} ${t.selectorText}`)}function o(e){const t=function(e,t="styles.css"){if(e instanceof CSSStyleSheet){const n=Array.from(e.cssRules,(e=>e.cssText));return new File(n,t,{type:e.type})}throw new TypeError("Not a CSSStyleSheet.")}(e),n=document.createElement("link");return n.relList.add("stylesheet"),n.disabled=e.disabled,0!==e.media.length&&(n.media=e.media.mediaText),n.href=URL.createObjectURL(t),n}t({media:"(prefers-color-scheme: light)",baseURL:document.baseURI}),t({media:"(prefers-color-scheme: dark)",baseURL:document.baseURI}),function e({root:n=document,media:o,disabled:i=!1,baseURL:a=document.baseURI,prefix:s}={}){if(n instanceof HTMLElement)return e({root:n.getRootNode(),media:o,disabled:i,baseURL:a});if("string"==typeof s){const e=t({media:o,disabled:i,baseURL:a});return(...t)=>n.adoptedStyleSheets=[...n.adoptedStyleSheets,r(s,e.apply(null,t))]}{const e=t({media:o,disabled:i,baseURL:a});return(...t)=>n.adoptedStyleSheets=[...n.adoptedStyleSheets,e.apply(null,t)]}}();const i="data-aegis-event-",a=i+"on-",s="aegisEventOn",l=Symbol("aegis:signal"),c=Symbol("aegis:controller"),u=new Map,d=new Map,h=i+"once",g=i+"passive",p=i+"capture",b=i+"signal",f=a+"abort",m=a+"blur",k=a+"focus",y=a+"cancel",w=a+"auxclick",v=a+"beforeinput",x=a+"beforetoggle",$=a+"canplay",S=a+"canplaythrough",E=a+"change",T=a+"click",A=a+"close",R=a+"contextmenu",L=a+"copy",M=a+"cuechange",C=a+"cut",_=a+"dblclick",z=a+"drag",I=a+"dragend",O=a+"dragenter",P=a+"dragexit",j=a+"dragleave",B=a+"dragover",N=a+"dragstart",U=a+"drop",D=a+"durationchange",H=a+"emptied",F=a+"ended",q=a+"formdata",V=a+"input",Z=a+"invalid",G=a+"keydown",W=a+"keypress",X=a+"keyup",Q=a+"load",K=a+"loadeddata",Y=a+"loadedmetadata",J=a+"loadstart",ee=a+"mousedown",te=a+"mouseenter",ne=a+"mouseleave",re=a+"mousemove",oe=a+"mouseout",ie=a+"mouseover",ae=a+"mouseup",se=a+"wheel",le=a+"paste",ce=a+"pause",ue=a+"play",de=a+"playing",he=a+"progress",ge=a+"ratechange",pe=a+"reset",be=a+"resize",fe=a+"scroll",me=a+"scrollend",ke=a+"securitypolicyviolation",ye=a+"seeked",we=a+"seeking",ve=a+"select",xe=a+"slotchange",$e=a+"stalled",Se=a+"submit",Ee=a+"suspend",Te=a+"timeupdate",Ae=a+"volumechange",Re=a+"waiting",Le=a+"selectstart",Me=a+"selectionchange",Ce=a+"toggle",_e=a+"pointercancel",ze=a+"pointerdown",Ie=a+"pointerup",Oe=a+"pointermove",Pe=a+"pointerout",je=a+"pointerover",Be=a+"pointerenter",Ne=a+"pointerleave",Ue=a+"gotpointercapture",De=a+"lostpointercapture",He=a+"mozfullscreenchange",Fe=a+"mozfullscreenerror",qe=a+"animationcancel",Ve=a+"animationend",Ze=a+"animationiteration",Ge=a+"animationstart",We=a+"transitioncancel",Xe=a+"transitionend",Qe=a+"transitionrun",Ke=a+"transitionstart",Ye=a+"webkitanimationend",Je=a+"webkitanimationiteration",et=a+"webkitanimationstart",tt=a+"webkittransitionend",nt=a+"error",rt=[f,m,k,y,w,v,x,$,S,E,T,A,R,L,M,C,_,z,I,O,P,j,B,N,U,D,H,F,q,V,Z,G,W,X,Q,K,Y,J,ee,te,ne,re,oe,ie,ae,se,le,ce,ue,de,he,ge,pe,be,fe,me,ke,ye,we,ve,xe,$e,Se,Ee,Te,Ae,Re,Le,Me,Ce,_e,ze,Ie,Oe,Pe,je,Be,Ne,Ue,De,He,Fe,qe,Ve,Ze,Ge,We,Xe,Qe,Ke,Ye,Je,et,tt,nt];let ot=rt.map((e=>`[${CSS.escape(e)}]`)).join(", ");const it=([e])=>e.startsWith(s);const at=new MutationObserver((e=>{e.forEach((e=>{switch(e.type){case"childList":[...e.addedNodes].filter((e=>e.nodeType===Node.ELEMENT_NODE)).forEach((e=>ht(e)));break;case"attributes":"string"==typeof e.oldValue&&mt(e.oldValue)&&e.target.removeEventListener(e.attributeName.substring(20),kt(e.oldValue),{once:e.target.hasAttribute(h),capture:e.target.hasAttribute(p),passive:e.target.hasAttribute(g)}),e.target.hasAttribute(e.attributeName)&&mt(e.target.getAttribute(e.attributeName))&&e.target.addEventListener(e.attributeName.substring(20),kt(e.target.getAttribute(e.attributeName)),{once:e.target.hasAttribute(h),capture:e.target.hasAttribute(p),passive:e.target.hasAttribute(g),signal:e.target.hasAttribute(b)?dt(e.target.getAttribute(b)):void 0})}}))})),st={onAbort:f,onBlur:m,onFocus:k,onCancel:y,onAuxclick:w,onBeforeinput:v,onBeforetoggle:x,onCanplay:$,onCanplaythrough:S,onChange:E,onClick:T,onClose:A,onContextmenu:R,onCopy:L,onCuechange:M,onCut:C,onDblclick:_,onDrag:z,onDragend:I,onDragenter:O,onDragexit:P,onDragleave:j,onDragover:B,onDragstart:N,onDrop:U,onDurationchange:D,onEmptied:H,onEnded:F,onFormdata:q,onInput:V,onInvalid:Z,onKeydown:G,onKeypress:W,onKeyup:X,onLoad:Q,onLoadeddata:K,onLoadedmetadata:Y,onLoadstart:J,onMousedown:ee,onMouseenter:te,onMouseleave:ne,onMousemove:re,onMouseout:oe,onMouseover:ie,onMouseup:ae,onWheel:se,onPaste:le,onPause:ce,onPlay:ue,onPlaying:de,onProgress:he,onRatechange:ge,onReset:pe,onResize:be,onScroll:fe,onScrollend:me,onSecuritypolicyviolation:ke,onSeeked:ye,onSeeking:we,onSelect:ve,onSlotchange:xe,onStalled:$e,onSubmit:Se,onSuspend:Ee,onTimeupdate:Te,onVolumechange:Ae,onWaiting:Re,onSelectstart:Le,onSelectionchange:Me,onToggle:Ce,onPointercancel:_e,onPointerdown:ze,onPointerup:Ie,onPointermove:Oe,onPointerout:Pe,onPointerover:je,onPointerenter:Be,onPointerleave:Ne,onGotpointercapture:Ue,onLostpointercapture:De,onMozfullscreenchange:He,onMozfullscreenerror:Fe,onAnimationcancel:qe,onAnimationend:Ve,onAnimationiteration:Ze,onAnimationstart:Ge,onTransitioncancel:We,onTransitionend:Xe,onTransitionrun:Qe,onTransitionstart:Ke,onWebkitanimationend:Ye,onWebkitanimationiteration:Je,onWebkitanimationstart:et,onWebkittransitionend:tt,onError:nt,once:h,passive:g,capture:p};function lt(e){return e instanceof AbortController?d.delete(e.signal[c]):e instanceof AbortSignal?d.delete(e[c]):d.delete(e)}function ct(e,t){const n=(e=>d.get(e))(e);return n instanceof AbortController&&("string"==typeof t?(n.abort(new Error(t)),!0):(n.abort(t),!0))}function ut(e){if(e instanceof AbortSignal){if("string"==typeof e[l])return e[l];{const t="aegis:event:signal:"+crypto.randomUUID();return Object.defineProperty(e,l,{value:t,writable:!1,enumerable:!1}),u.set(t,e),e.addEventListener("abort",(({target:e})=>function(e){if(e instanceof AbortSignal)return u.delete(e[l]);if("string"==typeof e)return u.delete(e);throw new TypeError("Signal must be an `AbortSignal` or registered key/attribute.")}(e[l])),{once:!0}),t}}throw new TypeError("Signal must be an `AbortSignal`.")}const dt=e=>u.get(e);function ht(e,{signal:t}={}){return(e instanceof Element&&e.matches(ot)?[e,...e.querySelectorAll(ot)]:e.querySelectorAll(ot)).forEach((e=>function(e,{signal:t,attrFilter:n=st}={}){const r=e.dataset;for(const[o,i]of Object.entries(r).filter(it))try{const a="on"+o.substring(12);n.hasOwnProperty(a)&&mt(i)&&e.addEventListener(a.substring(2).toLowerCase(),kt(i),{passive:r.hasOwnProperty("aegisEventPassive"),capture:r.hasOwnProperty("aegisEventCapture"),once:r.hasOwnProperty("aegisEventOnce"),signal:r.hasOwnProperty("aegisEventSignal")?dt(r.aegisEventSignal):t})}catch(e){reportError(e)}}(e,{signal:t}))),e}const gt=(e,t=document)=>t.querySelectorAll(e),pt=(e,t=document)=>t.querySelector(e),bt={debug:{log:"aegis:debug:log",info:"aegis:debug:info",warn:"aegis:debug:warn",error:"aegis:debug:error"},navigate:{back:"aegis:navigate:back",forward:"aegis:navigate:forward",reload:"aegis:navigate:reload",close:"aegis:navigate:close",link:"aegis:navigate:go",popup:"aegis:navigate:popup"},ui:{print:"aegis:ui:print",remove:"aegis:ui:remove",hide:"aegis:ui:hide",unhide:"aegis:ui:unhide",showModal:"aegis:ui:showModal",closeModal:"aegis:ui:closeModal",showPopover:"aegis:ui:showPopover",hidePopover:"aegis:ui:hidePopover",togglePopover:"aegis:ui:togglePopover",enable:"aegis:ui:enable",disable:"aegis:ui:disable",scrollTo:"aegis:ui:scrollTo",prevent:"aegis:ui:prevent",revokeObjectURL:"aegis:ui:revokeObjectURL",cancelAnimationFrame:"aegis:ui:cancelAnimationFrame",abortController:"aegis:ui:controller:abort"}},ft=new Map([[bt.debug.log,console.log],[bt.debug.warn,console.warn],[bt.debug.error,console.error],[bt.debug.info,console.info],[bt.navigate.back,()=>history.back()],[bt.navigate.forward,()=>history.forward()],[bt.navigate.reload,()=>history.go(0)],[bt.navigate.close,()=>globalThis.close()],[bt.navigate.link,e=>{e.isTrusted&&(e.preventDefault(),location.href=e.currentTarget.dataset.url)}],[bt.navigate.popup,e=>{e.isTrusted&&(e.preventDefault(),globalThis.open(e.currentTarget.dataset.url))}],[bt.ui.hide,({currentTarget:e})=>{gt(e.dataset.hideSelector).forEach((e=>e.hidden=!0))}],[bt.ui.unhide,({currentTarget:e})=>{gt(e.dataset.unhideSelector).forEach((e=>e.hidden=!1))}],[bt.ui.disable,({currentTarget:e})=>{gt(e.dataset.disableSelector).forEach((e=>e.disabled=!0))}],[bt.ui.enable,({currentTarget:e})=>{gt(e.dataset.enableSelector).forEach((e=>e.disabled=!1))}],[bt.ui.remove,({currentTarget:e})=>{gt(e.dataset.removeSelector).forEach((e=>e.remove()))}],[bt.ui.scrollTo,({currentTarget:e})=>{const t=pt(e.dataset.scrollToSelector);t instanceof Element&&t.scrollIntoView({behavior:matchMedia("(prefers-reduced-motion: reduce)").matches?"instant":"smooth"})}],[bt.ui.revokeObjectURL,({currentTarget:e})=>URL.revokeObjectURL(e.src)],[bt.ui.cancelAnimationFrame,({currentTarget:e})=>cancelAnimationFrame(parseInt(e.dataset.animationFrame))],[bt.ui.clearInterval,({currentTarget:e})=>clearInterval(parseInt(e.dataset.clearInterval))],[bt.ui.clearTimeout,({currentTarget:e})=>clearTimeout(parseInt(e.dataset.timeout))],[bt.ui.abortController,({currentTarget:e})=>ct(e.dataset.aegisEventController,e.dataset.aegisControllerReason)],[bt.ui.showModal,({currentTarget:e})=>{const t=pt(e.dataset.showModalSelector);t instanceof HTMLDialogElement&&t.showModal()}],[bt.ui.closeModal,({currentTarget:e})=>{const t=pt(e.dataset.closeModalSelector);t instanceof HTMLDialogElement&&t.close()}],[bt.ui.showPopover,({currentTarget:e})=>{const t=pt(e.dataset.showPopoverSelector);t instanceof HTMLElement&&t.showPopover()}],[bt.ui.hidePopover,({currentTarget:e})=>{const t=pt(e.dataset.hidePopoverSelector);t instanceof HTMLElement&&t.hidePopover()}],[bt.ui.togglePopover,({currentTarget:e})=>{const t=pt(e.dataset.togglePopoverSelector);t instanceof HTMLElement&&t.togglePopover()}],[bt.ui.print,()=>globalThis.print()],[bt.ui.prevent,e=>e.preventDefault()]]),mt=e=>ft.has(e),kt=e=>ft.get(e),yt=e=>function(e,t){if("string"!=typeof e||0===e.length)throw new TypeError("Callback name must be a string.");if(t instanceof Function){if(ft.has(e))throw new Error(`Handler "${e}" is already registered.`);return ft.set(e,t),e}throw new TypeError("Callback must be a function.")}("aegis:callback:"+crypto.randomUUID(),e);const wt=/&(?![a-zA-Z\d]{2,5};|#\d{1,3};)/g,vt=e=>{return`${e.name}="${t=e.value,t.toString().replaceAll(wt,"&amp;").replaceAll('"',"&quot;")}"`;var t},xt={weekday:"short",month:"short",day:"numeric",year:"numeric",hour:"numeric",minute:"2-digit"},$t="Intl"in globalThis&&Intl.ListFormat instanceof Function?e=>(new Intl.ListFormat).format(e.map(Et)):e=>e.join(", "),St="Intl"in globalThis&&Intl.NumberFormat instanceof Function?e=>(new Intl.NumberFormat).format(e):e=>e.toString(),Et=e=>{switch(typeof e){case"string":return e;case"boolean":return e?"true":"false";case"symbol":return e.description;case"number":case"bigint":return St(e);case"undefined":return"";case"function":return yt(e);case"object":if(null===e)return"";if(Array.isArray(e))return $t(e);if(e instanceof HTMLTemplateElement){const t=document.createElement("div");return t.append(e.content.cloneNode(!0)),t.innerHTML}if(e instanceof Element)return e.outerHTML;if(e instanceof DocumentFragment){const t=document.createElement("div");return t.append(e.cloneNode(!0)),t.innerHTML}return e instanceof Blob?URL.createObjectURL(e):e instanceof Date?((e,{weekday:t=xt.weekday,month:n=xt.month,day:r=xt.day,year:o=xt.year,hour:i=xt.hour,minute:a=xt.minute}=xt)=>e.toLocaleString(navigator.language,{weekday:t,month:n,day:r,year:o,hour:i,minute:a}))(e):e instanceof CSSStyleSheet?o(e).outerHTML:e instanceof DOMTokenList?[...e].join(" "):e instanceof NodeList||e instanceof HTMLCollection||e instanceof HTMLFormControlsCollection?[...e].map((e=>e.outerHTML)).join("\n"):e instanceof MediaList?e.mediaText:e instanceof Attr?vt(e):e instanceof NamedNodeMap?Array.from(e,vt).join(" "):"TrustedType"in globalThis&&e instanceof globalThis.TrustedType?e:"Iterator"in globalThis&&e instanceof globalThis.Iterator?Et([...e]):e instanceof AbortSignal?ut(e):e instanceof AbortController?function(e){if(e instanceof AbortController){if(e.signal.aborted)throw e.signal.reason;if("string"==typeof e.signal[c])return e.signal[c];{const t="aegis:event:controller:"+crypto.randomUUID();return Object.defineProperty(e.signal,c,{value:t,writable:!1,enumerable:!1}),d.set(t,e),e.signal.addEventListener("abort",lt,{once:!0}),t}}throw new TypeError("Controller is not an `AbortSignal.")}(e):e.toString();default:return e.toString()}};let Tt={async:!1,breaks:!1,extensions:null,gfm:!0,hooks:null,pedantic:!1,renderer:null,silent:!1,tokenizer:null,walkTokens:null};function At(e){Tt=e}const Rt={exec:()=>null};function Lt(e,t=""){let n="string"==typeof e?e:e.source;const r={replace:(e,t)=>{let o="string"==typeof t?t:t.source;return o=o.replace(Mt.caret,"$1"),n=n.replace(e,o),r},getRegex:()=>new RegExp(n,t)};return r}const Mt={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:/^<a /i,endATag:/^<\/a>/i,startPreScriptTag:/^<(pre|code|kbd|script)(\s|>)/i,endPreScriptTag:/^<\/(pre|code|kbd|script)(\s|>)/i,startAngleBracket:/^</,endAngleBracket:/>$/,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:e=>new RegExp(`^( {0,3}${e})((?:[\t ][^\\n]*)?(?:\\n|$))`),nextBulletRegex:e=>new RegExp(`^ {0,${Math.min(3,e-1)}}(?:[*+-]|\\d{1,9}[.)])((?:[ \t][^\\n]*)?(?:\\n|$))`),hrRegex:e=>new RegExp(`^ {0,${Math.min(3,e-1)}}((?:- *){3,}|(?:_ *){3,}|(?:\\* *){3,})(?:\\n+|$)`),fencesBeginRegex:e=>new RegExp(`^ {0,${Math.min(3,e-1)}}(?:\`\`\`|~~~)`),headingBeginRegex:e=>new RegExp(`^ {0,${Math.min(3,e-1)}}#`),htmlBeginRegex:e=>new RegExp(`^ {0,${Math.min(3,e-1)}}<(?:[a-z].*>|!--)`,"i")},Ct=/^ {0,3}((?:-[\t ]*){3,}|(?:_[ \t]*){3,}|(?:\*[ \t]*){3,})(?:\n+|$)/,_t=/(?:[*+-]|\d{1,9}[.)])/,zt=/^(?!bull |blockCode|fences|blockquote|heading|html|table)((?:.|\n(?!\s*?\n|bull |blockCode|fences|blockquote|heading|html|table))+?)\n {0,3}(=+|-+) *(?:\n+|$)/,It=Lt(zt).replace(/bull/g,_t).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(),Ot=Lt(zt).replace(/bull/g,_t).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(),Pt=/^([^\n]+(?:\n(?!hr|heading|lheading|blockquote|fences|list|html|table| +\n)[^\n]+)*)/,jt=/(?!\s*\])(?:\\.|[^\[\]\\])+/,Bt=Lt(/^ {0,3}\[(label)\]: *(?:\n[ \t]*)?([^<\s][^\s]*|<.*?>)(?:(?: +(?:\n[ \t]*)?| *\n[ \t]*)(title))? *(?:\n+|$)/).replace("label",jt).replace("title",/(?:"(?:\\"?|[^"\\])*"|'[^'\n]*(?:\n[^'\n]+)*\n?'|\([^()]*\))/).getRegex(),Nt=Lt(/^( {0,3}bull)([ \t][^\n]+?)?(?:\n|$)/).replace(/bull/g,_t).getRegex(),Ut="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",Dt=/<!--(?:-?>|[\s\S]*?(?:-->|$))/,Ht=Lt("^ {0,3}(?:<(script|pre|style|textarea)[\\s>][\\s\\S]*?(?:</\\1>[^\\n]*\\n+|$)|comment[^\\n]*(\\n+|$)|<\\?[\\s\\S]*?(?:\\?>\\n*|$)|<![A-Z][\\s\\S]*?(?:>\\n*|$)|<!\\[CDATA\\[[\\s\\S]*?(?:\\]\\]>\\n*|$)|</?(tag)(?: +|\\n|/?>)[\\s\\S]*?(?:(?:\\n[ \t]*)+\\n|$)|<(?!script|pre|style|textarea)([a-z][\\w-]*)(?:attribute)*? */?>(?=[ \\t]*(?:\\n|$))[\\s\\S]*?(?:(?:\\n[ \t]*)+\\n|$)|</(?!script|pre|style|textarea)[a-z][\\w-]*\\s*>(?=[ \\t]*(?:\\n|$))[\\s\\S]*?(?:(?:\\n[ \t]*)+\\n|$))","i").replace("comment",Dt).replace("tag",Ut).replace("attribute",/ +[a-zA-Z:_][\w.:-]*(?: *= *"[^"\n]*"| *= *'[^'\n]*'| *= *[^\s"'=<>`]+)?/).getRegex(),Ft=Lt(Pt).replace("hr",Ct).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","</?(?:tag)(?: +|\\n|/?>)|<(?:script|pre|style|textarea|!--)").replace("tag",Ut).getRegex(),qt={blockquote:Lt(/^( {0,3}> ?(paragraph|[^\n]*)(?:\n|$))+/).replace("paragraph",Ft).getRegex(),code:/^((?: {4}| {0,3}\t)[^\n]+(?:\n(?:[ \t]*(?:\n|$))*)?)+/,def:Bt,fences:/^ {0,3}(`{3,}(?=[^`\n]*(?:\n|$))|~{3,})([^\n]*)(?:\n|$)(?:|([\s\S]*?)(?:\n|$))(?: {0,3}\1[~`]* *(?=\n|$)|$)/,heading:/^ {0,3}(#{1,6})(?=\s|$)(.*)(?:\n+|$)/,hr:Ct,html:Ht,lheading:It,list:Nt,newline:/^(?:[ \t]*(?:\n|$))+/,paragraph:Ft,table:Rt,text:/^[^\n]+/},Vt=Lt("^ *([^\\n ].*)\\n {0,3}((?:\\| *)?:?-+:? *(?:\\| *:?-+:? *)*(?:\\| *)?)(?:\\n((?:(?! *\\n|hr|heading|blockquote|code|fences|list|html).*(?:\\n|$))*)\\n*|$)").replace("hr",Ct).replace("heading"," {0,3}#{1,6}(?:\\s|$)").replace("blockquote"," {0,3}>").replace("code","(?: {4}| {0,3}\t)[^\\n]").replace("fences"," {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace("list"," {0,3}(?:[*+-]|1[.)]) ").replace("html","</?(?:tag)(?: +|\\n|/?>)|<(?:script|pre|style|textarea|!--)").replace("tag",Ut).getRegex(),Zt={...qt,lheading:Ot,table:Vt,paragraph:Lt(Pt).replace("hr",Ct).replace("heading"," {0,3}#{1,6}(?:\\s|$)").replace("|lheading","").replace("table",Vt).replace("blockquote"," {0,3}>").replace("fences"," {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace("list"," {0,3}(?:[*+-]|1[.)]) ").replace("html","</?(?:tag)(?: +|\\n|/?>)|<(?:script|pre|style|textarea|!--)").replace("tag",Ut).getRegex()},Gt={...qt,html:Lt("^ *(?:comment *(?:\\n|\\s*$)|<(tag)[\\s\\S]+?</\\1> *(?:\\n{2,}|\\s*$)|<tag(?:\"[^\"]*\"|'[^']*'|\\s[^'\"/>\\s]*)*?/?> *(?:\\n{2,}|\\s*$))").replace("comment",Dt).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:/^ *\[([^\]]+)\]: *<?([^\s>]+)>?(?: +(["(][^\n]+[")]))? *(?:\n+|$)/,heading:/^(#{1,6})(.*)(?:\n+|$)/,fences:Rt,lheading:/^(.+?)\n {0,3}(=+|-+) *(?:\n+|$)/,paragraph:Lt(Pt).replace("hr",Ct).replace("heading"," *#{1,6} *[^\n]").replace("lheading",It).replace("|table","").replace("blockquote"," {0,3}>").replace("|fences","").replace("|list","").replace("|html","").replace("|tag","").getRegex()},Wt=/^( {2,}|\\)\n(?!\s*$)/,Xt=/[\p{P}\p{S}]/u,Qt=/[\s\p{P}\p{S}]/u,Kt=/[^\s\p{P}\p{S}]/u,Yt=Lt(/^((?![*_])punctSpace)/,"u").replace(/punctSpace/g,Qt).getRegex(),Jt=/(?!~)[\p{P}\p{S}]/u,en=/^(?:\*+(?:((?!\*)punct)|[^\s*]))|^_+(?:((?!_)punct)|([^\s_]))/,tn=Lt(en,"u").replace(/punct/g,Xt).getRegex(),nn=Lt(en,"u").replace(/punct/g,Jt).getRegex(),rn="^[^_*]*?__[^_*]*?\\*[^_*]*?(?=__)|[^*]+(?=[^*])|(?!\\*)punct(\\*+)(?=[\\s]|$)|notPunctSpace(\\*+)(?!\\*)(?=punctSpace|$)|(?!\\*)punctSpace(\\*+)(?=notPunctSpace)|[\\s](\\*+)(?!\\*)(?=punct)|(?!\\*)punct(\\*+)(?!\\*)(?=punct)|notPunctSpace(\\*+)(?=notPunctSpace)",on=Lt(rn,"gu").replace(/notPunctSpace/g,Kt).replace(/punctSpace/g,Qt).replace(/punct/g,Xt).getRegex(),an=Lt(rn,"gu").replace(/notPunctSpace/g,/(?:[^\s\p{P}\p{S}]|~)/u).replace(/punctSpace/g,/(?!~)[\s\p{P}\p{S}]/u).replace(/punct/g,Jt).getRegex(),sn=Lt("^[^_*]*?\\*\\*[^_*]*?_[^_*]*?(?=\\*\\*)|[^_]+(?=[^_])|(?!_)punct(_+)(?=[\\s]|$)|notPunctSpace(_+)(?!_)(?=punctSpace|$)|(?!_)punctSpace(_+)(?=notPunctSpace)|[\\s](_+)(?!_)(?=punct)|(?!_)punct(_+)(?!_)(?=punct)","gu").replace(/notPunctSpace/g,Kt).replace(/punctSpace/g,Qt).replace(/punct/g,Xt).getRegex(),ln=Lt(/\\(punct)/,"gu").replace(/punct/g,Xt).getRegex(),cn=Lt(/^<(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(),un=Lt(Dt).replace("(?:--\x3e|$)","--\x3e").getRegex(),dn=Lt("^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",un).replace("attribute",/\s+[a-zA-Z:_][\w.:-]*(?:\s*=\s*"[^"]*"|\s*=\s*'[^']*'|\s*=\s*[^\s"'=<>`]+)?/).getRegex(),hn=/(?:\[(?:\\.|[^\[\]\\])*\]|\\.|`[^`]*`|[^\[\]\\`])*?/,gn=Lt(/^!?\[(label)\]\(\s*(href)(?:\s+(title))?\s*\)/).replace("label",hn).replace("href",/<(?:\\.|[^\n<>\\])+>|[^\s\x00-\x1f]*/).replace("title",/"(?:\\"?|[^"\\])*"|'(?:\\'?|[^'\\])*'|\((?:\\\)?|[^)\\])*\)/).getRegex(),pn=Lt(/^!?\[(label)\]\[(ref)\]/).replace("label",hn).replace("ref",jt).getRegex(),bn=Lt(/^!?\[(ref)\](?:\[\])?/).replace("ref",jt).getRegex(),fn={_backpedal:Rt,anyPunctuation:ln,autolink:cn,blockSkip:/\[[^[\]]*?\]\((?:\\.|[^\\\(\)]|\((?:\\.|[^\\\(\)])*\))*\)|`[^`]*?`|<[^<>]*?>/g,br:Wt,code:/^(`+)([^`]|[^`][\s\S]*?[^`])\1(?!`)/,del:Rt,emStrongLDelim:tn,emStrongRDelimAst:on,emStrongRDelimUnd:sn,escape:/^\\([!"#$%&'()*+,\-./:;<=>?@\[\]\\^_`{|}~])/,link:gn,nolink:bn,punctuation:Yt,reflink:pn,reflinkSearch:Lt("reflink|nolink(?!\\()","g").replace("reflink",pn).replace("nolink",bn).getRegex(),tag:dn,text:/^(`+|[^`])(?:(?= {2,}\n)|[\s\S]*?(?:(?=[\\<!\[`*_]|\b_|$)|[^ ](?= {2,}\n)))/,url:Rt},mn={...fn,link:Lt(/^!?\[(label)\]\((.*?)\)/).replace("label",hn).getRegex(),reflink:Lt(/^!?\[(label)\]\s*\[([^\]]*)\]/).replace("label",hn).getRegex()},kn={...fn,emStrongRDelimAst:an,emStrongLDelim:nn,url:Lt(/^((?: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~\\]))\1(?=[^~]|$)/,text:/^([`~]+|[^`~])(?:(?= {2,}\n)|(?=[a-zA-Z0-9.!#$%&'*+\/=?_`{\|}~-]+@)|[\s\S]*?(?:(?=[\\<!\[`*~_]|\b_|https?:\/\/|ftp:\/\/|www\.|$)|[^ ](?= {2,}\n)|[^a-zA-Z0-9.!#$%&'*+\/=?_`{\|}~-](?=[a-zA-Z0-9.!#$%&'*+\/=?_`{\|}~-]+@)))/},yn={...kn,br:Lt(Wt).replace("{2,}","*").getRegex(),text:Lt(kn.text).replace("\\b_","\\b_| {2,}\\n").replace(/\{2,\}/g,"*").getRegex()},wn={normal:qt,gfm:Zt,pedantic:Gt},vn={normal:fn,gfm:kn,breaks:yn,pedantic:mn},xn={"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#39;"},$n=e=>xn[e];function Sn(e,t){if(t){if(Mt.escapeTest.test(e))return e.replace(Mt.escapeReplace,$n)}else if(Mt.escapeTestNoEncode.test(e))return e.replace(Mt.escapeReplaceNoEncode,$n);return e}function En(e){try{e=encodeURI(e).replace(Mt.percentDecode,"%")}catch{return null}return e}function Tn(e,t){const n=e.replace(Mt.findPipe,((e,t,n)=>{let r=!1,o=t;for(;--o>=0&&"\\"===n[o];)r=!r;return r?"|":" |"})).split(Mt.splitPipe);let r=0;if(n[0].trim()||n.shift(),n.length>0&&!n.at(-1)?.trim()&&n.pop(),t)if(n.length>t)n.splice(t);else for(;n.length<t;)n.push("");for(;r<n.length;r++)n[r]=n[r].trim().replace(Mt.slashPipe,"|");return n}function An(e,t,n){const r=e.length;if(0===r)return"";let o=0;for(;o<r&&e.charAt(r-o-1)===t;)o++;return e.slice(0,r-o)}function Rn(e,t,n,r,o){const i=t.href,a=t.title||null,s=e[1].replace(o.other.outputLinkReplace,"$1");if("!"!==e[0].charAt(0)){r.state.inLink=!0;const e={type:"link",raw:n,href:i,title:a,text:s,tokens:r.inlineTokens(s)};return r.state.inLink=!1,e}return{type:"image",raw:n,href:i,title:a,text:s}}class Ln{options;rules;lexer;constructor(e){this.options=e||Tt}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 e=t[0].replace(this.rules.other.codeRemoveIndent,"");return{type:"code",raw:t[0],codeBlockStyle:"indented",text:this.options.pedantic?e:An(e,"\n")}}}fences(e){const t=this.rules.block.fences.exec(e);if(t){const e=t[0],n=function(e,t,n){const r=e.match(n.other.indentCodeCompensation);if(null===r)return t;const o=r[1];return t.split("\n").map((e=>{const t=e.match(n.other.beginningSpace);if(null===t)return e;const[r]=t;return r.length>=o.length?e.slice(o.length):e})).join("\n")}(e,t[3]||"",this.rules);return{type:"code",raw:e,lang:t[2]?t[2].trim().replace(this.rules.inline.anyPunctuation,"$1"):t[2],text:n}}}heading(e){const t=this.rules.block.heading.exec(e);if(t){let e=t[2].trim();if(this.rules.other.endingHash.test(e)){const t=An(e,"#");this.options.pedantic?e=t.trim():t&&!this.rules.other.endingSpaceChar.test(t)||(e=t.trim())}return{type:"heading",raw:t[0],depth:t[1].length,text:e,tokens:this.lexer.inline(e)}}}hr(e){const t=this.rules.block.hr.exec(e);if(t)return{type:"hr",raw:An(t[0],"\n")}}blockquote(e){const t=this.rules.block.blockquote.exec(e);if(t){let e=An(t[0],"\n").split("\n"),n="",r="";const o=[];for(;e.length>0;){let t=!1;const i=[];let a;for(a=0;a<e.length;a++)if(this.rules.other.blockquoteStart.test(e[a]))i.push(e[a]),t=!0;else{if(t)break;i.push(e[a])}e=e.slice(a);const s=i.join("\n"),l=s.replace(this.rules.other.blockquoteSetextReplace,"\n $1").replace(this.rules.other.blockquoteSetextReplace2,"");n=n?`${n}\n${s}`:s,r=r?`${r}\n${l}`:l;const c=this.lexer.state.top;if(this.lexer.state.top=!0,this.lexer.blockTokens(l,o,!0),this.lexer.state.top=c,0===e.length)break;const u=o.at(-1);if("code"===u?.type)break;if("blockquote"===u?.type){const t=u,i=t.raw+"\n"+e.join("\n"),a=this.blockquote(i);o[o.length-1]=a,n=n.substring(0,n.length-t.raw.length)+a.raw,r=r.substring(0,r.length-t.text.length)+a.text;break}if("list"!==u?.type);else{const t=u,i=t.raw+"\n"+e.join("\n"),a=this.list(i);o[o.length-1]=a,n=n.substring(0,n.length-u.raw.length)+a.raw,r=r.substring(0,r.length-t.raw.length)+a.raw,e=i.substring(o.at(-1).raw.length).split("\n")}}return{type:"blockquote",raw:n,tokens:o,text:r}}}list(e){let t=this.rules.block.list.exec(e);if(t){let n=t[1].trim();const r=n.length>1,o={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:"[*+-]");const i=this.rules.other.listItemRegex(n);let a=!1;for(;e;){let n=!1,r="",s="";if(!(t=i.exec(e)))break;if(this.rules.block.hr.test(e))break;r=t[0],e=e.substring(r.length);let l=t[2].split("\n",1)[0].replace(this.rules.other.listReplaceTabs,(e=>" ".repeat(3*e.length))),c=e.split("\n",1)[0],u=!l.trim(),d=0;if(this.options.pedantic?(d=2,s=l.trimStart()):u?d=t[1].length+1:(d=t[2].search(this.rules.other.nonSpaceChar),d=d>4?1:d,s=l.slice(d),d+=t[1].length),u&&this.rules.other.blankLine.test(c)&&(r+=c+"\n",e=e.substring(c.length+1),n=!0),!n){const t=this.rules.other.nextBulletRegex(d),n=this.rules.other.hrRegex(d),o=this.rules.other.fencesBeginRegex(d),i=this.rules.other.headingBeginRegex(d),a=this.rules.other.htmlBeginRegex(d);for(;e;){const h=e.split("\n",1)[0];let g;if(c=h,this.options.pedantic?(c=c.replace(this.rules.other.listReplaceNesting," "),g=c):g=c.replace(this.rules.other.tabCharGlobal," "),o.test(c))break;if(i.test(c))break;if(a.test(c))break;if(t.test(c))break;if(n.test(c))break;if(g.search(this.rules.other.nonSpaceChar)>=d||!c.trim())s+="\n"+g.slice(d);else{if(u)break;if(l.replace(this.rules.other.tabCharGlobal," ").search(this.rules.other.nonSpaceChar)>=4)break;if(o.test(l))break;if(i.test(l))break;if(n.test(l))break;s+="\n"+c}u||c.trim()||(u=!0),r+=h+"\n",e=e.substring(h.length+1),l=g.slice(d)}}o.loose||(a?o.loose=!0:this.rules.other.doubleBlankLine.test(r)&&(a=!0));let h,g=null;this.options.gfm&&(g=this.rules.other.listIsTask.exec(s),g&&(h="[ ] "!==g[0],s=s.replace(this.rules.other.listReplaceTask,""))),o.items.push({type:"list_item",raw:r,task:!!g,checked:h,loose:!1,text:s,tokens:[]}),o.raw+=r}const s=o.items.at(-1);if(!s)return;s.raw=s.raw.trimEnd(),s.text=s.text.trimEnd(),o.raw=o.raw.trimEnd();for(let e=0;e<o.items.length;e++)if(this.lexer.state.top=!1,o.items[e].tokens=this.lexer.blockTokens(o.items[e].text,[]),!o.loose){const t=o.items[e].tokens.filter((e=>"space"===e.type)),n=t.length>0&&t.some((e=>this.rules.other.anyLine.test(e.raw)));o.loose=n}if(o.loose)for(let e=0;e<o.items.length;e++)o.items[e].loose=!0;return o}}html(e){const t=this.rules.block.html.exec(e);if(t)return{type:"html",block:!0,raw:t[0],pre:"pre"===t[1]||"script"===t[1]||"style"===t[1],text:t[0]}}def(e){const t=this.rules.block.def.exec(e);if(t){const 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];return{type:"def",tag:e,raw:t[0],href:n,title:r}}}table(e){const t=this.rules.block.table.exec(e);if(!t)return;if(!this.rules.other.tableDelimiter.test(t[2]))return;const n=Tn(t[1]),r=t[2].replace(this.rules.other.tableAlignChars,"").split("|"),o=t[3]?.trim()?t[3].replace(this.rules.other.tableRowBlankLine,"").split("\n"):[],i={type:"table",raw:t[0],header:[],align:[],rows:[]};if(n.length===r.length){for(const e of r)this.rules.other.tableAlignRight.test(e)?i.align.push("right"):this.rules.other.tableAlignCenter.test(e)?i.align.push("center"):this.rules.other.tableAlignLeft.test(e)?i.align.push("left"):i.align.push(null);for(let e=0;e<n.length;e++)i.header.push({text:n[e],tokens:this.lexer.inline(n[e]),header:!0,align:i.align[e]});for(const e of o)i.rows.push(Tn(e,i.header.length).map(((e,t)=>({text:e,tokens:this.lexer.inline(e),header:!1,align:i.align[t]}))));return i}}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 e="\n"===t[1].charAt(t[1].length-1)?t[1].slice(0,-1):t[1];return{type:"paragraph",raw:t[0],text:e,tokens:this.lexer.inline(e)}}}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 e=t[2].trim();if(!this.options.pedantic&&this.rules.other.startAngleBracket.test(e)){if(!this.rules.other.endAngleBracket.test(e))return;const t=An(e.slice(0,-1),"\\");if((e.length-t.length)%2==0)return}else{const e=function(e,t){if(-1===e.indexOf(t[1]))return-1;let n=0;for(let r=0;r<e.length;r++)if("\\"===e[r])r++;else if(e[r]===t[0])n++;else if(e[r]===t[1]&&(n--,n<0))return r;return-1}(t[2],"()");if(e>-1){const n=(0===t[0].indexOf("!")?5:4)+t[1].length+e;t[2]=t[2].substring(0,e),t[0]=t[0].substring(0,n).trim(),t[3]=""}}let n=t[2],r="";if(this.options.pedantic){const e=this.rules.other.pedanticHrefTitle.exec(n);e&&(n=e[1],r=e[3])}else r=t[3]?t[3].slice(1,-1):"";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)),Rn(t,{href:n?n.replace(this.rules.inline.anyPunctuation,"$1"):n,title:r?r.replace(this.rules.inline.anyPunctuation,"$1"):r},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 e=t[(n[2]||n[1]).replace(this.rules.other.multipleSpaceGlobal," ").toLowerCase()];if(!e){const e=n[0].charAt(0);return{type:"text",raw:e,text:e}}return Rn(n,e,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))&&(!r[1]&&!r[2]||!n||this.rules.inline.punctuation.exec(n))){const n=[...r[0]].length-1;let o,i,a=n,s=0;const l="*"===r[0][0]?this.rules.inline.emStrongRDelimAst:this.rules.inline.emStrongRDelimUnd;for(l.lastIndex=0,t=t.slice(-1*e.length+n);null!=(r=l.exec(t));){if(o=r[1]||r[2]||r[3]||r[4]||r[5]||r[6],!o)continue;if(i=[...o].length,r[3]||r[4]){a+=i;continue}if((r[5]||r[6])&&n%3&&!((n+i)%3)){s+=i;continue}if(a-=i,a>0)continue;i=Math.min(i,i+a+s);const t=[...r[0]][0].length,l=e.slice(0,n+r.index+t+i);if(Math.min(n,i)%2){const e=l.slice(1,-1);return{type:"em",raw:l,text:e,tokens:this.lexer.inlineTokens(e)}}const c=l.slice(2,-2);return{type:"strong",raw:l,text:c,tokens:this.lexer.inlineTokens(c)}}}}codespan(e){const t=this.rules.inline.code.exec(e);if(t){let e=t[2].replace(this.rules.other.newLineCharGlobal," ");const n=this.rules.other.nonSpaceChar.test(e),r=this.rules.other.startingSpaceChar.test(e)&&this.rules.other.endingSpaceChar.test(e);return n&&r&&(e=e.substring(1,e.length-1)),{type:"codespan",raw:t[0],text:e}}}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 e,n;return"@"===t[2]?(e=t[1],n="mailto:"+e):(e=t[1],n=e),{type:"link",raw:t[0],text:e,href:n,tokens:[{type:"text",raw:e,text:e}]}}}url(e){let t;if(t=this.rules.inline.url.exec(e)){let e,n;if("@"===t[2])e=t[0],n="mailto:"+e;else{let r;do{r=t[0],t[0]=this.rules.inline._backpedal.exec(t[0])?.[0]??""}while(r!==t[0]);e=t[0],n="www."===t[1]?"http://"+t[0]:t[0]}return{type:"link",raw:t[0],text:e,href:n,tokens:[{type:"text",raw:e,text:e}]}}}inlineText(e){const t=this.rules.inline.text.exec(e);if(t){const e=this.lexer.state.inRawBlock;return{type:"text",raw:t[0],text:t[0],escaped:e}}}}class Mn{tokens;options;state;tokenizer;inlineQueue;constructor(e){this.tokens=[],this.tokens.links=Object.create(null),this.options=e||Tt,this.options.tokenizer=this.options.tokenizer||new Ln,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:Mt,block:wn.normal,inline:vn.normal};this.options.pedantic?(t.block=wn.pedantic,t.inline=vn.pedantic):this.options.gfm&&(t.block=wn.gfm,this.options.breaks?t.inline=vn.breaks:t.inline=vn.gfm),this.tokenizer.rules=t}static get rules(){return{block:wn,inline:vn}}static lex(e,t){return new Mn(t).lex(e)}static lexInline(e,t){return new Mn(t).inlineTokens(e)}lex(e){e=e.replace(Mt.carriageReturn,"\n"),this.blockTokens(e,this.tokens);for(let e=0;e<this.inlineQueue.length;e++){const t=this.inlineQueue[e];this.inlineTokens(t.src,t.tokens)}return this.inlineQueue=[],this.tokens}blockTokens(e,t=[],n=!1){for(this.options.pedantic&&(e=e.replace(Mt.tabCharGlobal," ").replace(Mt.spaceLine,""));e;){let r;if(this.options.extensions?.block?.some((n=>!!(r=n.call({lexer:this},e,t))&&(e=e.substring(r.raw.length),t.push(r),!0))))continue;if(r=this.tokenizer.space(e)){e=e.substring(r.raw.length);const n=t.at(-1);1===r.raw.length&&void 0!==n?n.raw+="\n":t.push(r);continue}if(r=this.tokenizer.code(e)){e=e.substring(r.raw.length);const n=t.at(-1);"paragraph"===n?.type||"text"===n?.type?(n.raw+="\n"+r.raw,n.text+="\n"+r.text,this.inlineQueue.at(-1).src=n.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 n=t.at(-1);"paragraph"===n?.type||"text"===n?.type?(n.raw+="\n"+r.raw,n.text+="\n"+r.raw,this.inlineQueue.at(-1).src=n.text):this.tokens.links[r.tag]||(this.tokens.links[r.tag]={href:r.href,title:r.title});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 o=e;if(this.options.extensions?.startBlock){let t=1/0;const n=e.slice(1);let r;this.options.extensions.startBlock.forEach((e=>{r=e.call({lexer:this},n),"number"==typeof r&&r>=0&&(t=Math.min(t,r))})),t<1/0&&t>=0&&(o=e.substring(0,t+1))}if(this.state.top&&(r=this.tokenizer.paragraph(o))){const i=t.at(-1);n&&"paragraph"===i?.type?(i.raw+="\n"+r.raw,i.text+="\n"+r.text,this.inlineQueue.pop(),this.inlineQueue.at(-1).src=i.text):t.push(r),n=o.length!==e.length,e=e.substring(r.raw.length)}else if(r=this.tokenizer.text(e)){e=e.substring(r.raw.length);const n=t.at(-1);"text"===n?.type?(n.raw+="\n"+r.raw,n.text+="\n"+r.text,this.inlineQueue.pop(),this.inlineQueue.at(-1).src=n.text):t.push(r)}else if(e){const t="Infinite loop on byte: "+e.charCodeAt(0);if(this.options.silent){console.error(t);break}throw new Error(t)}}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 e=Object.keys(this.tokens.links);if(e.length>0)for(;null!=(r=this.tokenizer.rules.inline.reflinkSearch.exec(n));)e.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(;null!=(r=this.tokenizer.rules.inline.blockSkip.exec(n));)n=n.slice(0,r.index)+"["+"a".repeat(r[0].length-2)+"]"+n.slice(this.tokenizer.rules.inline.blockSkip.lastIndex);for(;null!=(r=this.tokenizer.rules.inline.anyPunctuation.exec(n));)n=n.slice(0,r.index)+"++"+n.slice(this.tokenizer.rules.inline.anyPunctuation.lastIndex);let o=!1,i="";for(;e;){let r;if(o||(i=""),o=!1,this.options.extensions?.inline?.some((n=>!!(r=n.call({lexer:this},e,t))&&(e=e.substring(r.raw.length),t.push(r),!0))))continue;if(r=this.tokenizer.escape(e)){e=e.substring(r.raw.length),t.push(r);continue}if(r=this.tokenizer.tag(e)){e=e.substring(r.raw.length),t.push(r);continue}if(r=this.tokenizer.link(e)){e=e.substring(r.raw.length),t.push(r);continue}if(r=this.tokenizer.reflink(e,this.tokens.links)){e=e.substring(r.raw.length);const n=t.at(-1);"text"===r.type&&"text"===n?.type?(n.raw+=r.raw,n.text+=r.text):t.push(r);continue}if(r=this.tokenizer.emStrong(e,n,i)){e=e.substring(r.raw.length),t.push(r);continue}if(r=this.tokenizer.codespan(e)){e=e.substring(r.raw.length),t.push(r);continue}if(r=this.tokenizer.br(e)){e=e.substring(r.raw.length),t.push(r);continue}if(r=this.tokenizer.del(e)){e=e.substring(r.raw.length),t.push(r);continue}if(r=this.tokenizer.autolink(e)){e=e.substring(r.raw.length),t.push(r);continue}if(!this.state.inLink&&(r=this.tokenizer.url(e))){e=e.substring(r.raw.length),t.push(r);continue}let a=e;if(this.options.extensions?.startInline){let t=1/0;const n=e.slice(1);let r;this.options.extensions.startInline.forEach((e=>{r=e.call({lexer:this},n),"number"==typeof r&&r>=0&&(t=Math.min(t,r))})),t<1/0&&t>=0&&(a=e.substring(0,t+1))}if(r=this.tokenizer.inlineText(a)){e=e.substring(r.raw.length),"_"!==r.raw.slice(-1)&&(i=r.raw.slice(-1)),o=!0;const n=t.at(-1);"text"===n?.type?(n.raw+=r.raw,n.text+=r.text):t.push(r)}else if(e){const t="Infinite loop on byte: "+e.charCodeAt(0);if(this.options.silent){console.error(t);break}throw new Error(t)}}return t}}class Cn{options;parser;constructor(e){this.options=e||Tt}space(e){return""}code({text:e,lang:t,escaped:n}){const r=(t||"").match(Mt.notSpaceStart)?.[0],o=e.replace(Mt.endingNewline,"")+"\n";return r?'<pre><code class="language-'+Sn(r)+'">'+(n?o:Sn(o,!0))+"</code></pre>\n":"<pre><code>"+(n?o:Sn(o,!0))+"</code></pre>\n"}blockquote({tokens:e}){return`<blockquote>\n${this.parser.parse(e)}</blockquote>\n`}html({text:e}){return e}heading({tokens:e,depth:t}){return`<h${t}>${this.parser.parseInline(e)}</h${t}>\n`}hr(e){return"<hr>\n"}list(e){const t=e.ordered,n=e.start;let r="";for(let t=0;t<e.items.length;t++){const n=e.items[t];r+=this.listitem(n)}const o=t?"ol":"ul";return"<"+o+(t&&1!==n?' start="'+n+'"':"")+">\n"+r+"</"+o+">\n"}listitem(e){let t="";if(e.task){const n=this.checkbox({checked:!!e.checked});e.loose?"paragraph"===e.tokens[0]?.type?(e.tokens[0].text=n+" "+e.tokens[0].text,e.tokens[0].tokens&&e.tokens[0].tokens.length>0&&"text"===e.tokens[0].tokens[0].type&&(e.tokens[0].tokens[0].text=n+" "+Sn(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),`<li>${t}</li>\n`}checkbox({checked:e}){return"<input "+(e?'checked="" ':"")+'disabled="" type="checkbox">'}paragraph({tokens:e}){return`<p>${this.parser.parseInline(e)}</p>\n`}table(e){let t="",n="";for(let t=0;t<e.header.length;t++)n+=this.tablecell(e.header[t]);t+=this.tablerow({text:n});let r="";for(let t=0;t<e.rows.length;t++){const o=e.rows[t];n="";for(let e=0;e<o.length;e++)n+=this.tablecell(o[e]);r+=this.tablerow({text:n})}return r&&(r=`<tbody>${r}</tbody>`),"<table>\n<thead>\n"+t+"</thead>\n"+r+"</table>\n"}tablerow({text:e}){return`<tr>\n${e}</tr>\n`}tablecell(e){const t=this.parser.parseInline(e.tokens),n=e.header?"th":"td";return(e.align?`<${n} align="${e.align}">`:`<${n}>`)+t+`</${n}>\n`}strong({tokens:e}){return`<strong>${this.parser.parseInline(e)}</strong>`}em({tokens:e}){return`<em>${this.parser.parseInline(e)}</em>`}codespan({text:e}){return`<code>${Sn(e,!0)}</code>`}br(e){return"<br>"}del({tokens:e}){return`<del>${this.parser.parseInline(e)}</del>`}link({href:e,title:t,tokens:n}){const r=this.parser.parseInline(n),o=En(e);if(null===o)return r;let i='<a href="'+(e=o)+'"';return t&&(i+=' title="'+Sn(t)+'"'),i+=">"+r+"</a>",i}image({href:e,title:t,text:n}){const r=En(e);if(null===r)return Sn(n);let o=`<img src="${e=r}" alt="${n}"`;return t&&(o+=` title="${Sn(t)}"`),o+=">",o}text(e){return"tokens"in e&&e.tokens?this.parser.parseInline(e.tokens):"escaped"in e&&e.escaped?e.text:Sn(e.text)}}class _n{strong({text:e}){return e}em({text:e}){return e}codespan({text:e}){return e}del({text:e}){return e}html({text:e}){return e}text({text:e}){return e}link({text:e}){return""+e}image({text:e}){return""+e}br(){return""}}class zn{options;renderer;textRenderer;constructor(e){this.options=e||Tt,this.options.renderer=this.options.renderer||new Cn,this.renderer=this.options.renderer,this.renderer.options=this.options,this.renderer.parser=this,this.textRenderer=new _n}static parse(e,t){return new zn(t).parse(e)}static parseInline(e,t){return new zn(t).parseInline(e)}parse(e,t=!0){let n="";for(let r=0;r<e.length;r++){const o=e[r];if(this.options.extensions?.renderers?.[o.type]){const e=o,t=this.options.extensions.renderers[e.type].call({parser:this},e);if(!1!==t||!["space","hr","heading","code","table","blockquote","list","html","paragraph","text"].includes(e.type)){n+=t||"";continue}}const i=o;switch(i.type){case"space":n+=this.renderer.space(i);continue;case"hr":n+=this.renderer.hr(i);continue;case"heading":n+=this.renderer.heading(i);continue;case"code":n+=this.renderer.code(i);continue;case"table":n+=this.renderer.table(i);continue;case"blockquote":n+=this.renderer.blockquote(i);continue;case"list":n+=this.renderer.list(i);continue;case"html":n+=this.renderer.html(i);continue;case"paragraph":n+=this.renderer.paragraph(i);continue;case"text":{let o=i,a=this.renderer.text(o);for(;r+1<e.length&&"text"===e[r+1].type;)o=e[++r],a+="\n"+this.renderer.text(o);n+=t?this.renderer.paragraph({type:"paragraph",raw:a,text:a,tokens:[{type:"text",raw:a,text:a,escaped:!0}]}):a;continue}default:{const e='Token with "'+i.type+'" type was not found.';if(this.options.silent)return console.error(e),"";throw new Error(e)}}}return n}parseInline(e,t=this.renderer){let n="";for(let r=0;r<e.length;r++){const o=e[r];if(this.options.extensions?.renderers?.[o.type]){const e=this.options.extensions.renderers[o.type].call({parser:this},o);if(!1!==e||!["escape","html","link","image","strong","em","codespan","br","del","text"].includes(o.type)){n+=e||"";continue}}const i=o;switch(i.type){case"escape":case"text":n+=t.text(i);break;case"html":n+=t.html(i);break;case"link":n+=t.link(i);break;case"image":n+=t.image(i);break;case"strong":n+=t.strong(i);break;case"em":n+=t.em(i);break;case"codespan":n+=t.codespan(i);break;case"br":n+=t.br(i);break;case"del":n+=t.del(i);break;default:{const e='Token with "'+i.type+'" type was not found.';if(this.options.silent)return console.error(e),"";throw new Error(e)}}}return n}}class In{options;block;constructor(e){this.options=e||Tt}static passThroughHooks=new Set(["preprocess","postprocess","processAllTokens"]);preprocess(e){return e}postprocess(e){return e}processAllTokens(e){return e}provideLexer(){return this.block?Mn.lex:Mn.lexInline}provideParser(){return this.block?zn.parse:zn.parseInline}}class On{defaults={async:!1,breaks:!1,extensions:null,gfm:!0,hooks:null,pedantic:!1,renderer:null,silent:!1,tokenizer:null,walkTokens:null};options=this.setOptions;parse=this.parseMarkdown(!0);parseInline=this.parseMarkdown(!1);Parser=zn;Renderer=Cn;TextRenderer=_n;Lexer=Mn;Tokenizer=Ln;Hooks=In;constructor(...e){this.use(...e)}walkTokens(e,t){let n=[];for(const r of e)switch(n=n.concat(t.call(this,r)),r.type){case"table":{const e=r;for(const r of e.header)n=n.concat(this.walkTokens(r.tokens,t));for(const r of e.rows)for(const e of r)n=n.concat(this.walkTokens(e.tokens,t));break}case"list":{const e=r;n=n.concat(this.walkTokens(e.items,t));break}default:{const e=r;this.defaults.extensions?.childTokens?.[e.type]?this.defaults.extensions.childTokens[e.type].forEach((r=>{const o=e[r].flat(1/0);n=n.concat(this.walkTokens(o,t))})):e.tokens&&(n=n.concat(this.walkTokens(e.tokens,t)))}}return n}use(...e){const t=this.defaults.extensions||{renderers:{},childTokens:{}};return e.forEach((e=>{const n={...e};if(n.async=this.defaults.async||n.async||!1,e.extensions&&(e.extensions.forEach((e=>{if(!e.name)throw new Error("extension name required");if("renderer"in e){const n=t.renderers[e.name];t.renderers[e.name]=n?function(...t){let r=e.renderer.apply(this,t);return!1===r&&(r=n.apply(this,t)),r}:e.renderer}if("tokenizer"in e){if(!e.level||"block"!==e.level&&"inline"!==e.level)throw new Error("extension level must be 'block' or 'inline'");const n=t[e.level];n?n.unshift(e.tokenizer):t[e.level]=[e.tokenizer],e.start&&("block"===e.level?t.startBlock?t.startBlock.push(e.start):t.startBlock=[e.start]:"inline"===e.level&&(t.startInline?t.startInline.push(e.start):t.startInline=[e.start]))}"childTokens"in e&&e.childTokens&&(t.childTokens[e.name]=e.childTokens)})),n.extensions=t),e.renderer){const t=this.defaults.renderer||new Cn(this.defaults);for(const n in e.renderer){if(!(n in t))throw new Error(`renderer '${n}' does not exist`);if(["options","parser"].includes(n))continue;const r=n,o=e.renderer[r],i=t[r];t[r]=(...e)=>{let n=o.apply(t,e);return!1===n&&(n=i.apply(t,e)),n||""}}n.renderer=t}if(e.tokenizer){const t=this.defaults.tokenizer||new Ln(this.defaults);for(const n in e.tokenizer){if(!(n in t))throw new Error(`tokenizer '${n}' does not exist`);if(["options","rules","lexer"].includes(n))continue;const r=n,o=e.tokenizer[r],i=t