md2x 0.6.0 → 0.7.0

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.
@@ -0,0 +1,1023 @@
1
+ import{c as It}from"./chunk-EFKQH5UR.js";import*as ne from"fs";import*as F from"path";import{createRequire as un}from"module";import{fileURLToPath as He,pathToFileURL as we}from"url";import*as X from"fs";import*as Rt from"os";import*as U from"path";import{fileURLToPath as rn,pathToFileURL as Ze}from"url";function nn(){return globalThis.__md2x_module_dir__?globalThis.__md2x_module_dir__:U.dirname(rn(import.meta.url))}var gt=null;function Dt(e){if(typeof e=="string"){let t=e.trim();return t||null}if(Array.isArray(e)){let t=e.filter(r=>typeof r=="string").map(r=>r.trim()).filter(Boolean);return t.length?t.join(", "):null}return null}function on(){let e=nn();return U.join(e,"renderer","puppeteer-render.html")}function an(e){switch(e){case"Letter":return{widthIn:8.5,heightIn:11};case"Legal":return{widthIn:8.5,heightIn:14};case"A3":return{widthIn:11.69,heightIn:16.54};case"A5":return{widthIn:5.83,heightIn:8.27};case"A4":default:return{widthIn:8.27,heightIn:11.69}}}function ln(e){switch(e){case"A3":return{top:"25mm",bottom:"25mm",left:"20mm",right:"20mm"};case"A5":return{top:"15mm",bottom:"15mm",left:"12mm",right:"12mm"};case"Legal":return{top:"25mm",bottom:"25mm",left:"20mm",right:"20mm"};case"Letter":case"A4":default:return{top:"20mm",bottom:"20mm",left:"15mm",right:"15mm"}}}function et(e){if(typeof e=="number")return e/96;let t=String(e??"").trim();if(!t)return null;let r=t.match(/^(-?\d+(?:\.\d+)?)(px|in|mm|cm)$/i);if(!r)return null;let i=parseFloat(r[1]);if(!Number.isFinite(i))return null;let n=r[2].toLowerCase();return n==="in"?i:n==="cm"?i/2.54:n==="mm"?i/25.4:n==="px"?i/96:null}async function Pe(){try{gt=await import("puppeteer")}catch{return console.warn("Puppeteer dependency not found. Diagrams/HTML/SVG will be skipped."),console.warn("If you are using the published CLI, run via `npx md2x ...` (it installs Puppeteer automatically)."),console.warn("If you are running from this repo, install CLI deps first: `npm -C node i` (or `pnpm -C node i`)."),null}let e=null,t=null,r=null,i=[],n=c=>{i.push(c),i.length>60&&i.shift()},a=()=>{let c=[U.join(process.cwd(),".md2x-"),U.join(Rt.tmpdir(),"md2x-")];for(let d of c)try{return X.mkdirSync(U.dirname(d),{recursive:!0}),X.mkdtempSync(d)}catch{}throw new Error("Unable to create a writable temp directory for Chromium runtime files")},o=async c=>{if(!t||!c)return;let d=Ze(c+U.sep).href;await t.evaluate(s=>{let u=window;if(typeof u.__md2xSetBaseHref=="function"){u.__md2xSetBaseHref(s);return}let f=document.querySelector("base");f||(f=document.createElement("base"),document.head.appendChild(f)),f.href=s},d)};return{async initialize(){if(!gt)return;let c=on();if(!X.existsSync(c))throw new Error(`Missing renderer assets: ${c}
2
+ Run \`npm run node\` to build the CLI (it generates node/dist/renderer/*).`);r=a();let d=U.join(r,"chrome-profile");X.mkdirSync(d,{recursive:!0}),e=await gt.launch({headless:!0,userDataDir:d,env:{...process.env,HOME:r,XDG_CACHE_HOME:U.join(r,"xdg-cache"),XDG_CONFIG_HOME:U.join(r,"xdg-config"),XDG_DATA_HOME:U.join(r,"xdg-data")},args:["--no-sandbox","--disable-setuid-sandbox","--disable-web-security","--allow-file-access-from-files","--disable-crashpad","--no-crashpad",`--crash-dumps-dir=${U.join(r,"crashpad")}`,`--user-data-dir=${d}`,"--disable-breakpad","--disable-crash-reporter","--disable-features=Crashpad","--no-first-run","--no-default-browser-check"]}),t=await e.newPage(),t.on("console",s=>{n(`[console.${s.type()}] ${s.text()}`)}),t.on("pageerror",s=>{let u=s instanceof Error?s.message:String(s);n(`[pageerror] ${u}`)}),t.on("requestfailed",s=>{let u=s.failure();n(`[requestfailed] ${s.url()} ${u?.errorText??""}`.trim())}),await t.setViewport({width:2e3,height:2e3}),await t.goto(Ze(c).href,{waitUntil:"domcontentloaded"});try{await t.waitForFunction(()=>window.__md2xRenderReady===!0,{timeout:3e4})}catch(s){let u=`Renderer page did not become ready within 30s.
3
+ Common causes:
4
+ - \`puppeteer-render.html\` has a <base> that breaks relative script loading
5
+ - missing/broken \`node/dist/renderer/puppeteer-render-worker.js\`
6
+ - browser console error during initialization
7
+ `,f=i.length?`
8
+ Last browser logs:
9
+ ${i.join(`
10
+ `)}
11
+ `:"",m=s instanceof Error?s.message:String(s);throw new Error(`${u}
12
+ Original error: ${m}${f}`)}},async render(c,d,s,u){if(!t)return null;try{return await o(s),await t.evaluate(async(m,p,h)=>{let b=window.__md2xRender;if(typeof b!="function")throw new Error("Renderer function not available on page");return await b(m,p,h)},c,d,u??null)}catch(f){let m=f instanceof Error?f.message:String(f);return console.warn(`Failed to render ${c}: ${m}`),null}},async exportToPdf(c,d,s={},u){if(!t)throw new Error("Browser not initialized");let f=await e.newPage(),m=null;try{let h=`<!DOCTYPE html>
13
+ <html>
14
+ <head>
15
+ <meta charset="UTF-8">
16
+ <title>${s.title||"Document"}</title>
17
+ <style>${d}</style>
18
+ </head>
19
+ <body>
20
+ <div id="markdown-content">${c}</div>
21
+ </body>
22
+ </html>`;u?(m=U.join(u,`__md2x_temp_${Date.now()}.html`),X.writeFileSync(m,h,"utf-8"),await f.goto(Ze(m).href,{waitUntil:"networkidle0"})):await f.setContent(h,{waitUntil:"networkidle0"});try{await f.evaluate(()=>typeof window.__md2xLiveDone<"u")&&await f.waitForFunction(()=>window.__md2xLiveDone===!0,{timeout:6e4})}catch{}try{await f.evaluate(async()=>{let g=document.fonts?.ready;g&&typeof g.then=="function"&&await g;let v=Array.from(document.images||[]);await Promise.all(v.map(A=>A.complete?null:new Promise(L=>{A.addEventListener("load",()=>L(),{once:!0}),A.addEventListener("error",()=>L(),{once:!0})})))})}catch{}let x=s.format||"A4",b=s.landscape||!1,w=s.scale||1,{widthIn:q,heightIn:S}=an(x),B=b?q:S,C=ln(x),G=et(s.margin?.top??C.top)??et(C.top),Ce=et(s.margin?.bottom??C.bottom)??et(C.bottom),Ae=(B-G-Ce)*96/w;await f.evaluate(g=>{let v=document.getElementById("markdown-content");if(!v)return;let A=window.getComputedStyle(v),L=parseFloat(A.paddingTop||"0")||0,T=parseFloat(A.paddingBottom||"0")||0,k=Math.max(0,g-L-T);v.querySelectorAll(".md2x-diagram img.md2x-diagram, img.md2x-diagram").forEach(P=>{let j=P,_=j.getBoundingClientRect().height||j.naturalHeight||0;_&&(_<=k+.5||(j.style.maxHeight=`${k}px`,j.style.height="auto",j.style.width="auto",j.style.maxWidth="100%",j.style.objectFit="contain"))})},Ae),await f.evaluate(()=>{let g=document.getElementById("markdown-content");if(!g)return;let v=g.clientWidth;if(!v)return;g.querySelectorAll(':scope > div[style*="width"]').forEach(L=>{let T=L,k=T.style.width?.match(/^(\d+(?:\.\d+)?)px$/);if(!k)return;let O=parseFloat(k[1]);if(!Number.isFinite(O)||O<=0)return;let P=Math.min(1,v/O);P>=.999||(T.style.transformOrigin="top left",T.style.transform=`scale(${P})`)})});let te={printBackground:s.printBackground!==!1,scale:s.scale||1,displayHeaderFooter:s.displayHeaderFooter||!1,headerTemplate:s.headerTemplate||"",footerTemplate:s.footerTemplate||"",margin:{top:s.margin?.top??C.top,bottom:s.margin?.bottom??C.bottom,left:s.margin?.left??C.left,right:s.margin?.right??C.right}};s.width&&s.height?(te.width=s.width,te.height=s.height):(te.format=s.format||"A4",te.landscape=s.landscape||!1);let Ie=await f.pdf(te);return Buffer.from(Ie)}finally{if(await f.close(),m)try{X.unlinkSync(m)}catch{}}},async exportToImage(c,d,s={},u){let f=await this.exportToImageParts(c,d,{...s,split:!1},u);if(f.length!==1)throw new Error("exportToImage() received multiple image parts. Use exportToImageParts() instead.");return f[0]},async exportToImageParts(c,d,s={},u){if(!t)throw new Error("Browser not initialized");let f=await e.newPage(),m=null;try{let p=s.viewport??{};await f.setViewport({width:Math.max(320,Math.floor(p.width??1200)),height:Math.max(240,Math.floor(p.height??800)),deviceScaleFactor:Math.max(.25,p.deviceScaleFactor??1)});let h=`<!DOCTYPE html>
23
+ <html>
24
+ <head>
25
+ <meta charset="UTF-8">
26
+ <style>${d}</style>
27
+ </head>
28
+ <body>
29
+ <div id="markdown-content">${c}</div>
30
+ </body>
31
+ </html>`;u?(m=U.join(u,`__md2x_temp_${Date.now()}.html`),X.writeFileSync(m,h,"utf-8"),await f.goto(Ze(m).href,{waitUntil:"networkidle0"})):await f.setContent(h,{waitUntil:"networkidle0"});try{await f.evaluate(async()=>{let g=document.fonts?.ready;g&&typeof g.then=="function"&&await g;let v=Array.from(document.images||[]);await Promise.all(v.map(A=>A.complete?null:new Promise(L=>{A.addEventListener("load",()=>L(),{once:!0}),A.addEventListener("error",()=>L(),{once:!0})})))})}catch{}if(typeof s.scrollToLoad=="boolean"?s.scrollToLoad:!s.selector&&s.fullPage!==!1){let g=s.scroll??{},v=typeof g.delayMs=="number"&&Number.isFinite(g.delayMs)?Math.max(0,g.delayMs):250,A=typeof g.maxSteps=="number"&&Number.isFinite(g.maxSteps)?Math.max(1,Math.floor(g.maxSteps)):40,L=typeof g.maxTimeMs=="number"&&Number.isFinite(g.maxTimeMs)?Math.max(100,Math.floor(g.maxTimeMs)):1e4,T=typeof g.stepPx=="number"&&Number.isFinite(g.stepPx)?Math.max(1,g.stepPx):0;try{await f.evaluate(async k=>{let O=$=>new Promise(R=>setTimeout(R,$)),P=document.scrollingElement||document.documentElement,j=Date.now(),fe=()=>k.stepPx>0?k.stepPx:Math.max(1,Math.floor(window.innerHeight*.85)),_=-1,K=0;for(let $=0;$<k.maxSteps;$++){let R=fe();P.scrollTop=Math.min(P.scrollTop+R,P.scrollHeight),await O(k.delayMs);let Z=P.scrollTop;if(Z===_?K++:K=0,_=Z,Z+window.innerHeight>=P.scrollHeight-2||K>=2||Date.now()-j>k.maxTimeMs)break}P.scrollTop=0,await O(Math.min(250,k.delayMs))},{delayMs:v,maxSteps:A,maxTimeMs:L,stepPx:T}),await f.evaluate(async()=>{let k=Array.from(document.images||[]);await Promise.all(k.map(O=>O.complete?null:new Promise(P=>{O.addEventListener("load",()=>P(),{once:!0}),O.addEventListener("error",()=>P(),{once:!0})})))})}catch{}try{await f.waitForNetworkIdle?.({idleTime:500,timeout:5e3})}catch{}}try{await f.evaluate(()=>typeof window.__md2xLiveDone<"u")&&(await f.waitForFunction(()=>window.__md2xLiveDone===!0,{timeout:6e4}),await f.waitForNetworkIdle?.({idleTime:500,timeout:1e4}).catch(()=>{}))}catch{}let b=typeof s.maxPixelWidth=="number"&&Number.isFinite(s.maxPixelWidth)?s.maxPixelWidth:2e3;if(b>0)try{let g=await f.evaluate(v=>{if(v){let L=Array.from(document.querySelectorAll(v));if(!L.length)return 0;let T=1/0,k=-1/0;for(let P of L){let j=P.getBoundingClientRect();T=Math.min(T,j.left),k=Math.max(k,j.right)}let O=k-T;return Number.isFinite(O)?O:0}let A=document.documentElement;return Math.max(A.scrollWidth,A.clientWidth)||0},Dt(s.selector));if(g>0){let v=f.viewport(),A=v?.deviceScaleFactor??1,L=Math.min(A,b/g),T=Math.max(.25,L);Math.abs(T-A)>=.01&&await f.setViewport({width:v?.width??Math.max(320,Math.floor(p.width??1200)),height:v?.height??Math.max(240,Math.floor(p.height??800)),deviceScaleFactor:T})}}catch{}let w=s.type??"png",q=s.fullPage!==!1,S={type:w};if((w==="jpeg"||w==="webp")&&typeof s.quality=="number"){let g=Math.max(0,Math.min(100,Math.round(s.quality)));S.quality=g}typeof s.fromSurface=="boolean"&&(S.fromSurface=s.fromSurface);let B=async g=>{let v=await f.screenshot(g);return Buffer.isBuffer(v)?v:Buffer.from(v)},C=async()=>{try{return await f.evaluate(()=>{let g=document.documentElement,v=document.body;return{width:Math.max(g.scrollWidth,v?.scrollWidth??0,g.clientWidth),height:Math.max(g.scrollHeight,v?.scrollHeight??0,g.clientHeight),dpr:window.devicePixelRatio||1}})}catch{return{width:0,height:0,dpr:1}}};if(s.selector){let g=Dt(s.selector);if(!g)throw new Error("image.selector is empty");await f.waitForSelector(g,{timeout:3e4});let v=await f.$$(g);if(!v.length)throw new Error(`Element not found for selector: ${g}`);let A=s.selectorMode??"stitch",L=A==="first"?[v[0]]:v,T=typeof s.selectorPadding=="number"&&Number.isFinite(s.selectorPadding)?Math.max(0,s.selectorPadding):0;if(A==="stitch"){let M=typeof s.selectorGap=="number"&&Number.isFinite(s.selectorGap)?Math.max(0,Math.floor(s.selectorGap)):0,E="#__md2x_selector_stitch__",ee=async()=>{try{await f.evaluate(()=>{let I="__md2xSelectorStitchState",oe=window[I];if(!oe)return;let ae=Array.isArray(oe.moves)?oe.moves:[];for(let le of ae)try{let ye=le&&le.el,me=le&&le.ph;if(!ye||!me)continue;let pe=me.parentNode;if(!pe)continue;pe.insertBefore(ye,me),me.remove?.()}catch{}try{oe.container?.remove?.()}catch{}try{delete window[I]}catch{}})}catch{}};await ee();try{await f.evaluate((he,Je)=>{let Qe="__md2xSelectorStitchState",Ne=window[Qe];if(Ne&&Ne.container)try{Ne.container.remove()}catch{}let en=document.getElementById("markdown-content")||document.body,se=document.createElement("div");se.id="__md2x_selector_stitch__",se.style.display="flex",se.style.flexDirection="column",se.style.alignItems="stretch",se.style.gap=String(Je)+"px",se.style.maxWidth="100%",se.style.boxSizing="border-box",en.appendChild(se);let tn=Array.from(document.querySelectorAll(he)).filter(Ee=>{let Te=Ee.parentElement;for(;Te;){try{if(Te.matches(he))return!1}catch{}Te=Te.parentElement}return!0}),Bt=[];for(let Ee of tn){let Te=Ee.parentNode;if(!Te)continue;let jt=document.createComment("md2x-stitch");Te.insertBefore(jt,Ee);let Me=document.createElement("div");Me.style.display="flex",Me.style.justifyContent="center",Me.style.alignItems="flex-start",Me.style.width="100%",Me.style.boxSizing="border-box",Me.appendChild(Ee),se.appendChild(Me),Bt.push({el:Ee,ph:jt})}window[Qe]={container:se,moves:Bt}},g,M),await f.waitForSelector(E,{timeout:5e3});let I=await f.$(E);if(!I)throw new Error(`Unable to create stitch container for selector: ${g}`);try{await f.evaluate(()=>new Promise(he=>requestAnimationFrame(()=>he())))}catch{}let oe=await f.evaluate(()=>{let he=document.documentElement,Je=document.body,Qe=Math.max(he.scrollWidth,Je?.scrollWidth??0,he.clientWidth),Ne=Math.max(he.scrollHeight,Je?.scrollHeight??0,he.clientHeight);return{width:Qe,height:Ne}}),ae=await I.boundingBox();if(!ae)throw new Error(`Unable to determine bounding box for selector: ${g}`);let le=Math.max(0,ae.x-T),ye=Math.max(0,ae.y-T),me=Math.min(oe.width-le,ae.width+T*2),pe=Math.min(oe.height-ye,ae.height+T*2);if(!(me>0)||!(pe>0))throw new Error(`Unable to determine bounding box for selector: ${g}`);let Zr={...S,clip:{x:le,y:ye,width:me,height:pe},captureBeyondViewport:typeof s.captureBeyondViewport=="boolean"?s.captureBeyondViewport:!0,omitBackground:s.omitBackground??!1};return[await B(Zr)]}finally{await ee()}}let k=await f.evaluate(()=>{let M=document.documentElement,E=document.body,ee=Math.max(M.scrollWidth,E?.scrollWidth??0,M.clientWidth),I=Math.max(M.scrollHeight,E?.scrollHeight??0,M.clientHeight);return{width:ee,height:I}}),O=async()=>{let M=[],E=0;for(let ee of L){try{await ee.evaluate(pe=>{pe.scrollIntoView({block:"start",inline:"nearest"})})}catch{}let I=await ee.boundingBox();if(!I)continue;let oe=Math.max(0,I.x-T),ae=Math.max(0,I.y-T),le=Math.min(k.width-oe,I.width+T*2),ye=Math.min(k.height-ae,I.height+T*2);if(!(le>0)||!(ye>0))continue;let me={...S,clip:{x:oe,y:ae,width:le,height:ye},captureBeyondViewport:typeof s.captureBeyondViewport=="boolean"?s.captureBeyondViewport:!0,omitBackground:s.omitBackground??!1};E>0&&await new Promise(pe=>setTimeout(pe,40)),M.push(await B(me)),E++}return M};if(A==="each"){let M=await O();if(!M.length)throw new Error(`Unable to determine bounding box for selector: ${g}`);return M}let P=1/0,j=1/0,fe=-1/0,_=-1/0,K=[];for(let M of L){let E=await M.boundingBox();E&&(P=Math.min(P,E.x),j=Math.min(j,E.y),fe=Math.max(fe,E.x+E.width),_=Math.max(_,E.y+E.height),K.push(Math.round(E.y+E.height)))}if(!Number.isFinite(P)||!Number.isFinite(j)||!Number.isFinite(fe)||!Number.isFinite(_))throw new Error(`Unable to determine bounding box for selector: ${g}`);let $=Math.max(0,P-T),R=Math.max(0,j-T),Z=Math.min(k.width,fe+T),N=Math.min(k.height,_+T),de=Math.max(1,Z-$),re=Math.max(1,N-R),xe=s.split??"auto",De=Math.max(.25,await f.evaluate(()=>window.devicePixelRatio||1).catch(()=>1)),qr=Math.ceil(re*De);if(!(xe===!0||xe==="auto"&&qr>3e4)){let M={...S,clip:{x:$,y:R,width:de,height:re},captureBeyondViewport:typeof s.captureBeyondViewport=="boolean"?s.captureBeyondViewport:!0,omitBackground:s.omitBackground??!1};return[await B(M)]}let Gr=typeof s.splitMaxPixelHeight=="number"&&Number.isFinite(s.splitMaxPixelHeight)?Math.max(500,Math.floor(s.splitMaxPixelHeight)):14e3,Kr=typeof s.splitOverlapPx=="number"&&Number.isFinite(s.splitOverlapPx)?Math.max(0,Math.floor(s.splitOverlapPx)):0,Ot=Math.max(200,Math.floor(Gr/De)),Xr=Math.min(400,Math.floor(Ot*.25)),Jr=Array.from(new Set([...K,Math.round(N)])).filter(M=>Number.isFinite(M)).map(M=>Math.max(0,Math.round(M))).sort((M,E)=>M-E),Qr=M=>{let E=Math.min(N,M+Ot);if(E>=N)return N;let ee=-1;for(let I of Jr)if(!(I<=M+1)){if(I>E)break;I-M<Xr||(ee=I)}return ee>0?ee:Math.max(M+1,E)},Lt=[],Re=R,ht=0;for(;Re<N&&ht<1e4;){let M=Qr(Re),E=Math.max(1,M-Re),ee={...S,clip:{x:$,y:Re,width:de,height:E},captureBeyondViewport:!0,omitBackground:s.omitBackground??!1};if(ht>0&&await new Promise(I=>setTimeout(I,40)),Lt.push(await B(ee)),M>=N)break;Re=Math.max(R,M-Kr),ht++}return Lt}if(!q)return S.fullPage=!1,S.captureBeyondViewport=!1,S.omitBackground=s.omitBackground??!1,[await B(S)];let G=await C(),Ce=Math.max(.25,G.dpr||1),Ae=Math.ceil((G.height||0)*Ce),te=s.split??"auto";if(te===!0||te==="auto"&&Ae>3e4){let g=typeof s.splitMaxPixelHeight=="number"&&Number.isFinite(s.splitMaxPixelHeight)?Math.max(500,Math.floor(s.splitMaxPixelHeight)):14e3,v=typeof s.splitOverlapPx=="number"&&Number.isFinite(s.splitOverlapPx)?Math.max(0,Math.floor(s.splitOverlapPx)):0,A=Math.max(200,Math.floor(g/Ce)),L=Math.max(1,G.width||(f.viewport()?.width??1200)),T=Math.max(1,G.height||(f.viewport()?.height??800)),k=[],O=0,P=0,j=await f.evaluate(()=>{let _=document.getElementById("markdown-content"),K=document.scrollingElement||document.documentElement;K.scrollTop=0;let $=[0],R=de=>{let xe=de.getBoundingClientRect().bottom+(window.scrollY||0);Number.isFinite(xe)&&$.push(Math.round(xe))};_&&Array.from(_.children).forEach(re=>{let xe=re.tagName.toLowerCase();if(xe==="ul"||xe==="ol"){let De=Array.from(re.querySelectorAll(":scope > li"));if(De.length>0){De.forEach(R);return}}R(re)});let Z=Math.max(K.scrollHeight,document.documentElement.scrollHeight);$.push(Math.round(Z)),$.sort((de,re)=>de-re);let N=[];for(let de of $){let re=Math.max(0,de);(!N.length||N[N.length-1]!==re)&&N.push(re)}return N}),fe=_=>{let K=Math.min(T,_+A);if(K>=T)return T;let $=Math.min(400,Math.floor(A*.25)),R=-1;for(let Z=0;Z<j.length;Z++){let N=j[Z];if(!(N<=_+1)){if(N>K)break;N-_<$||(R=N)}}return R>0?R:Math.max(_+1,K)};for(;O<T&&P<1e4;){let _=fe(O),K=Math.max(1,_-O),$={...S,clip:{x:0,y:O,width:L,height:K},captureBeyondViewport:!0,omitBackground:s.omitBackground??!1};try{await f.evaluate(R=>{let Z=document.scrollingElement||document.documentElement;Z.scrollTop=Math.max(0,R)},O)}catch{}if(P>0&&await new Promise(R=>setTimeout(R,80)),k.push(await B($)),_>=T)break;O=Math.max(0,_-v),P++}try{await f.evaluate(()=>{let _=document.scrollingElement||document.documentElement;_.scrollTop=0})}catch{}return k}S.fullPage=!0,S.captureBeyondViewport=typeof s.captureBeyondViewport=="boolean"?s.captureBeyondViewport:!1,S.omitBackground=s.omitBackground??!1,S.captureBeyondViewport===!1&&(G.width&&G.width>16e3||G.height&&G.height>16e3)&&(S.captureBeyondViewport=!0);try{return[await B(S)]}catch(g){let v=g instanceof Error?g.message:String(g);if(S.fromSurface===!1){let A={...S};delete A.fromSurface;try{return[await B(A)]}catch{}}if(S.fullPage&&typeof S.captureBeyondViewport=="boolean"){let A={...S,captureBeyondViewport:!S.captureBeyondViewport};A.fromSurface===!1&&delete A.fromSurface;try{return[await B(A)]}catch{}}throw new Error(`Unable to capture screenshot. ${v}`)}}finally{if(await f.close(),m)try{X.unlinkSync(m)}catch{}}},async close(){if(e&&(await e.close(),e=null,t=null),r){try{X.rmSync(r,{recursive:!0,force:!0})}catch{}r=null}}}}import*as ie from"fs";import*as V from"path";import{pathToFileURL as Nt}from"url";function sn(e){if(ie.existsSync(V.join(e,"themes")))return e;let t=V.resolve(e,"../../src");if(ie.existsSync(V.join(t,"themes")))return t;let r=V.resolve(process.cwd(),"src");if(ie.existsSync(V.join(r,"themes")))return r;throw new Error("Unable to locate themes assets (expected themes/ directory).")}function cn(e){ie.mkdirSync(V.dirname(e),{recursive:!0})}var xt=class{constructor(){this.documentPath="";this.documentDir="";this.baseUrl="";this.needsUriRewrite=!1}setDocumentPath(t,r){this.documentPath=t,this.documentDir=V.dirname(t),this.baseUrl=r??Nt(this.documentDir+V.sep).href,this.needsUriRewrite=!1}resolvePath(t){return t.startsWith("file://")?new URL(t).pathname:V.isAbsolute(t)?t:V.resolve(this.documentDir||process.cwd(),t)}toResourceUrl(t){return Nt(t).href}async readFile(t,r){let i=await ie.promises.readFile(t);return r?.binary?i.toString("base64"):i.toString("utf8")}async readRelativeFile(t,r){let i=this.resolvePath(t);return await this.readFile(i,r)}async fetchRemote(t){let r=await fetch(t,{signal:AbortSignal.timeout(15e3)});if(!r.ok)throw new Error(`HTTP ${r.status}: ${r.statusText}`);let i=await r.arrayBuffer();return new Uint8Array(i)}};function _e(e){let t=sn(e.moduleDir),r=new Map;r.set("selectedTheme",e.selectedThemeId),e.settings&&r.set("markdownViewerSettings",e.settings);let i=null,n=new xt;return n.setDocumentPath(V.join(process.cwd(),"__md2x__.md")),{platform:{platform:"node",cache:{async init(){},async calculateHash(){return""},async generateKey(){return""},async get(){return null},async set(){return!1},async clear(){return!0},async getStats(){return null}},renderer:{async init(){},setThemeConfig(){},getThemeConfig(){return null},async render(){throw new Error("RendererService not available in Node platform")}},storage:{async get(o){let l={};for(let c of o)r.has(c)&&(l[c]=r.get(c));return l},async set(o){for(let[l,c]of Object.entries(o))r.set(l,c)},async remove(o){for(let l of o)r.delete(l)}},file:{async download(o,l,c){let d=typeof o=="string"?Buffer.from(o,"base64"):Buffer.from(await o.arrayBuffer());if(c?.onProgress&&c.onProgress({uploaded:d.length,total:d.length}),e.output.kind==="buffer"){i=d;return}cn(l),await ie.promises.writeFile(l,d)}},resource:{async fetch(o){let l=o;if(l.startsWith("file://")){let d=new URL(l);return await ie.promises.readFile(d.pathname,"utf8")}l.startsWith("./")&&(l=l.slice(2)),l.startsWith("/")&&(l=l.slice(1));let c=V.join(t,l);return await ie.promises.readFile(c,"utf8")},getURL(o){return`./${o}`}},i18n:{translate(o){return o},getUILanguage(){return"en"}},message:{async send(){return null},addListener(){}},document:n},getCapturedBuffer:()=>i}}function be(){return globalThis.__md2x_module_dir__?globalThis.__md2x_module_dir__:F.dirname(He(import.meta.url))}function $e(){typeof globalThis.atob!="function"&&(globalThis.atob=e=>Buffer.from(e,"base64").toString("binary")),typeof globalThis.btoa!="function"&&(globalThis.btoa=e=>Buffer.from(e,"binary").toString("base64"))}async function Ve(e){let r=await globalThis.platform.resource.fetch(`themes/presets/${e}.json`),i=JSON.parse(r),n=i?.fontScheme?.body?.fontFamily,a=i?.fontScheme?.body?.fontSize?parseFloat(i.fontScheme.body.fontSize):void 0;return{fontFamily:typeof n=="string"?n:void 0,fontSize:typeof a=="number"&&Number.isFinite(a)?a:void 0}}function fn(e,t,r,i,n){return e?{async render(a,o){let l=a==="md2x"&&typeof o=="string"?{code:o,templateFiles:i??{},cdn:{vue:n?.vue,vueSfcLoader:n?.vueSfcLoader}}:o,c=await e.render(a,l,t,r);return c||null}}:null}function tt(e){return String(e).replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/"/g,"&quot;").replace(/'/g,"&#39;")}function Ht(e){return e.replace(/&lt;/g,"<").replace(/&gt;/g,">").replace(/&amp;/g,"&").replace(/&quot;/g,'"').replace(/&#39;/g,"'").replace(/&#x27;/g,"'").replace(/&#x2F;/g,"/").replace(/&#x3C;/gi,"<").replace(/&#x3E;/gi,">").replace(/&#x26;/gi,"&").replace(/&#60;/g,"<").replace(/&#62;/g,">").replace(/&#38;/g,"&")}function ze(e,t,r){let i=new RegExp('<pre><code class="[^"]*\\blanguage-md2x\\b[^"]*">([\\s\\S]*?)<\\/code><\\/pre>',"gi"),n=[...e.matchAll(i)],a={},o=(d,s)=>(d.match(new RegExp(`\\b${s}\\s*:\\s*(['"])([^\\n\\r]*?)\\1`,"i"))?.[2]??"").trim(),l=(d,s)=>{let u=String(d||"").trim().toLowerCase(),f=String(s||"").trim();return!u||!f||f.includes("/")||f.includes("\\")||f.includes("://")||f.startsWith("file://")?f:`${u}/${f}`},c=()=>r?(Array.isArray(r)?r:[r]).map(s=>String(s||"").trim()).filter(Boolean):[];for(let d of n){let s=d[1]??"",u=Ht(String(s||"").replace(/<[^>]*>/g,"")),f=o(u,"type"),m=o(u,"template"),p=l(f,m);if(!p)continue;let x=(b=>{try{if(String(b).toLowerCase().startsWith("file://")){let C=He(b);return ne.existsSync(C)?C:null}if(F.isAbsolute(b))return ne.existsSync(b)?b:null;let w=be(),q=c().map(C=>{try{if(String(C).toLowerCase().startsWith("file://"))return He(C)}catch{}return F.isAbsolute(C)?C:F.join(t,C)}),S=[];for(let C of q)S.push(F.join(C,b));let B=[F.join(t,b),...S,F.join(w,"templates",b),F.join(w,"..","templates",b),F.join(w,"..","src","templates",b)];for(let C of B)if(ne.existsSync(C))return C;return null}catch{return null}})(p);if(x)try{let b=ne.readFileSync(x,"utf-8"),w=we(x).href;a[w]=b,a[p]=b,m&&(a[m]=b)}catch{}}return a}function dn(e,t,r){let i=/```md2x[^\n\r]*[\r\n]([\s\S]*?)```/gi,n=[...String(e||"").matchAll(i)],a={},o=(s,u)=>(s.match(new RegExp(`\\b${u}\\s*:\\s*(['"])([^\\n\\r]*?)\\1`,"i"))?.[2]??"").trim(),l=(s,u)=>{let f=String(s||"").trim().toLowerCase(),m=String(u||"").trim();return!f||!m||m.includes("/")||m.includes("\\")||m.includes("://")||m.startsWith("file://")?m:`${f}/${m}`},c=()=>r?(Array.isArray(r)?r:[r]).map(u=>String(u||"").trim()).filter(Boolean):[],d=s=>{try{if(String(s).toLowerCase().startsWith("file://")){let h=He(s);return ne.existsSync(h)?h:null}if(F.isAbsolute(s))return ne.existsSync(s)?s:null;let u=be(),f=c().map(h=>{try{if(String(h).toLowerCase().startsWith("file://"))return He(h)}catch{}return F.isAbsolute(h)?h:F.join(t,h)}),m=[];for(let h of f)m.push(F.join(h,s));let p=[F.join(t,s),...m,F.join(u,"templates",s),F.join(u,"..","templates",s),F.join(u,"..","src","templates",s)];for(let h of p)if(ne.existsSync(h))return h;return null}catch{return null}};for(let s of n){let u=String(s[1]??""),f=o(u,"type"),m=o(u,"template"),p=l(f,m);if(!p)continue;let h=d(p);if(h)try{let x=ne.readFileSync(h,"utf-8"),b=we(h).href;a[b]=x,a[p]=x,m&&(a[m]=x)}catch{}}return a}async function mn(e,t,r,i,n,a,o){if(n!=="img"||!t)return e;let l=ze(e,r,a),c=It.filter(m=>m.nodeSelector.includes("code")).map(m=>m.language).filter(m=>m!==null),d=["graphviz","gv","vegalite"],s=[...c,...d].join("|");if(!s)return e;let u=new RegExp(`<pre><code class="(?:hljs )?language-(${s})">([\\s\\S]*?)<\\/code><\\/pre>`,"gi"),f=[...e.matchAll(u)];for(let m of f){let[p,h,x]=m,b=Ht(String(x||"").replace(/<[^>]*>/g,"")),w=h.toLowerCase();(w==="graphviz"||w==="gv")&&(w="dot"),w==="vegalite"&&(w="vega-lite");try{let q=w==="md2x"?{code:b,templateFiles:l,cdn:{vue:o?.vue,vueSfcLoader:o?.vueSfcLoader}}:b,S=await t.render(w,q,r,i);if(S&&S.base64){let B=tt(w),C=`<div class="md2x-diagram" data-md2x-diagram-kind="${B}"><img class="md2x-diagram" data-md2x-diagram-kind="${B}" src="data:image/${S.format};base64,${S.base64}" alt="${tt(`${h} diagram`)}" style="max-width: 100%;" /></div>`;e=e.replace(p,C)}}catch(q){console.warn(`Failed to render ${h} diagram:`,q)}}return e}async function rt(e,t,r,i,n,a,o){let{unified:l}=await import("./unified-PU53JLVJ.js"),c=(await import("./remark-parse-QC7TSXTK.js")).default,d=(await import("./remark-gfm-BUZ4SLP3.js")).default,s=(await import("./remark-math-HEZQAPFK.js")).default,u=(await import("./remark-super-sub-EP2AQS54.js")).default,f=(await import("./remark-rehype-C2LX643P.js")).default,m=(await import("./rehype-katex-FXTCTSUE.js")).default,p=(await import("./rehype-highlight-Y4Q4RX67.js")).default,h=(await import("./rehype-stringify-4CQSSRDL.js")).default,{visit:x}=await import("./unist-util-visit-SBSD62C6.js");function b(){return B=>{x(B,"element",C=>{if(C.tagName!=="p")return;let G=C.children||[];if(G.length===0)return;let Ce=0,Ae=-1,te=!1,Ie=!1;for(let g=0;g<G.length;g++){let v=G[g];v.type==="element"&&v.tagName==="img"?(Ce++,Ae=g,Ie=!0):Ie&&(v.type==="text"&&v.value.trim()!==""||v.type==="element"&&v.tagName!=="br")&&(te=!0)}if(Ce===1&&!te&&Ae>=0){let g=G[Ae];g.properties=g.properties||{};let v=g.properties.className||[];g.properties.className=Array.isArray(v)?[...v,"block-image"]:[v,"block-image"]}})}}let q=await l().use(c).use(d,{singleTilde:!1}).use(s).use(u).use(f,{allowDangerousHtml:!0}).use(m).use(p).use(b).use(h,{allowDangerousHtml:!0}).process(e),S=String(q);return S=await mn(S,t,r,i,n,a,o),S}function nt(e,t,r,i){let n=l=>JSON.stringify(l).replace(/</g,"\\u003c"),a={mermaid:"https://cdn.jsdelivr.net/npm/mermaid@11.12.2/dist/mermaid.min.js",vizGlobal:"https://cdn.jsdelivr.net/npm/@viz-js/viz@3.24.0/dist/viz-global.js",viz:"https://cdn.jsdelivr.net/npm/viz.js@2.1.2/viz.js",vizRender:"https://cdn.jsdelivr.net/npm/viz.js@2.1.2/full.render.js",infographic:"https://cdn.jsdelivr.net/npm/@antv/infographic@0.2.7/dist/infographic.min.js",vue:"https://unpkg.com/vue@3/dist/vue.global.js",vueSfcLoader:"https://cdn.jsdelivr.net/npm/vue3-sfc-loader/dist/vue3-sfc-loader.js"},o={5:{vega:"https://cdn.jsdelivr.net/npm/vega@5/build/vega.min.js",vegaLite:"https://cdn.jsdelivr.net/npm/vega-lite@5/build/vega-lite.min.js",vegaEmbed:"https://cdn.jsdelivr.net/npm/vega-embed@6/build/vega-embed.min.js"},6:{vega:"https://cdn.jsdelivr.net/npm/vega@6/build/vega.min.js",vegaLite:"https://cdn.jsdelivr.net/npm/vega-lite@6/build/vega-lite.min.js",vegaEmbed:"https://cdn.jsdelivr.net/npm/vega-embed@7/build/vega-embed.min.js"}};return`
32
+ <!-- md2x live diagram renderer (CDN) -->
33
+ <script>
34
+ (function () {
35
+ const themeConfig = ${n(e??null)};
36
+ const baseHref = ${n(t)};
37
+ const cdnOverrides = ${n(r??{})};
38
+ const cdnBaseDefaults = ${n(a)};
39
+ const cdnVegaDefaultsByMajor = ${n(o)};
40
+ const md2xTemplateFiles = ${n(i??{})};
41
+
42
+ try { window.__md2xLiveDone = false; } catch {}
43
+
44
+ function loadScript(src) {
45
+ return new Promise((resolve, reject) => {
46
+ const s = document.createElement('script');
47
+ s.src = src;
48
+ s.async = false;
49
+ s.onload = () => resolve();
50
+ s.onerror = () => reject(new Error('Failed to load script: ' + src));
51
+ document.head.appendChild(s);
52
+ });
53
+ }
54
+
55
+ function getLangFromCodeClass(codeEl) {
56
+ const cls = (codeEl && codeEl.className) ? String(codeEl.className) : '';
57
+ const m = cls.match(/\\blanguage-([a-z0-9-]+)\\b/i);
58
+ return m ? m[1] : '';
59
+ }
60
+
61
+ function normalizeLang(lang) {
62
+ const l = String(lang || '').toLowerCase();
63
+ if (l === 'graphviz' || l === 'gv') return 'dot';
64
+ if (l === 'vegalite') return 'vega-lite';
65
+ return l;
66
+ }
67
+
68
+ function resolveHref(url, base) {
69
+ const u = String(url || '').trim();
70
+ if (!u) return '';
71
+ try {
72
+ return new URL(u, base || undefined).href;
73
+ } catch {
74
+ return u;
75
+ }
76
+ }
77
+
78
+ function normalizeMd2xTemplateRef(type, tpl) {
79
+ const t = String(type || '').trim().toLowerCase();
80
+ const v = String(tpl || '').trim();
81
+ if (!t || !v) return v;
82
+ // If user already provided a path/URL, keep it.
83
+ if (v.indexOf('/') !== -1 || v.indexOf('\\\\') !== -1 || v.indexOf('://') !== -1 || v.indexOf('file://') === 0) return v;
84
+ return t + '/' + v;
85
+ }
86
+
87
+ function detectMd2xNeedsVueFromDocument() {
88
+ const blocks = Array.from(document.querySelectorAll('pre > code'));
89
+ for (const codeEl of blocks) {
90
+ const langRaw = getLangFromCodeClass(codeEl);
91
+ const lang = normalizeLang(langRaw);
92
+ if (lang !== 'md2x') continue;
93
+ const text = (codeEl && codeEl.textContent) ? codeEl.textContent : '';
94
+ if (!text.trim()) continue;
95
+ // Fast path without parsing: the common config format includes type: 'vue'
96
+ if (/\\btype\\s*:\\s*['\\"]vue['\\"]/i.test(text)) return true;
97
+ try {
98
+ const cfg = parseMd2xConfig(text);
99
+ if (cfg && cfg.type === 'vue') return true;
100
+ } catch {}
101
+ }
102
+ return false;
103
+ }
104
+
105
+ function guessVegaLiteSchemaMajorFromSpec(spec) {
106
+ if (!spec || typeof spec !== 'object') return null;
107
+ const schema = spec.$schema;
108
+ if (typeof schema !== 'string') return null;
109
+ const m = schema.match(/\\/vega-lite\\/v(\\d+)(?:\\.|\\.json|$)/i) || schema.match(/\\/v(\\d+)\\.json$/i);
110
+ if (!m) return null;
111
+ const major = parseInt(m[1], 10);
112
+ return Number.isFinite(major) ? major : null;
113
+ }
114
+
115
+ function guessVegaLiteSchemaMajorFromText(text) {
116
+ const t = String(text || '');
117
+ const m = t.match(/\\/vega-lite\\/v(\\d+)(?:\\.|\\.json|$)/i) || t.match(/\\/v(\\d+)\\.json$/i);
118
+ if (!m) return null;
119
+ const major = parseInt(m[1], 10);
120
+ return Number.isFinite(major) ? major : null;
121
+ }
122
+
123
+ function detectVegaLiteMajorFromDocument() {
124
+ const blocks = Array.from(document.querySelectorAll('pre > code'));
125
+ let detected = null;
126
+ for (const codeEl of blocks) {
127
+ const langRaw = getLangFromCodeClass(codeEl);
128
+ const lang = normalizeLang(langRaw);
129
+ if (lang !== 'vega-lite') continue;
130
+
131
+ const text = (codeEl && codeEl.textContent) ? codeEl.textContent : '';
132
+ if (!text.trim()) continue;
133
+
134
+ const majorFromText = guessVegaLiteSchemaMajorFromText(text);
135
+ if (majorFromText && (majorFromText === 5 || majorFromText === 6)) {
136
+ detected = majorFromText;
137
+ if (majorFromText === 6) return 6;
138
+ continue;
139
+ }
140
+
141
+ try {
142
+ const spec = JSON.parse(text);
143
+ const major = guessVegaLiteSchemaMajorFromSpec(spec);
144
+ if (major && (major === 5 || major === 6)) {
145
+ detected = major;
146
+ if (major === 6) return 6;
147
+ }
148
+ } catch {}
149
+ }
150
+ return detected || 6;
151
+ }
152
+
153
+ function detectLiveKindsFromDocument() {
154
+ const blocks = Array.from(document.querySelectorAll('pre > code'));
155
+ const out = {
156
+ mermaid: false,
157
+ dot: false,
158
+ vegaLite: false,
159
+ infographic: false,
160
+ md2xVue: false,
161
+ md2xHtml: false,
162
+ };
163
+
164
+ for (const codeEl of blocks) {
165
+ const langRaw = getLangFromCodeClass(codeEl);
166
+ if (!langRaw) continue;
167
+ const lang = normalizeLang(langRaw);
168
+
169
+ if (lang === 'mermaid') out.mermaid = true;
170
+ else if (lang === 'dot') out.dot = true;
171
+ else if (lang === 'vega-lite') out.vegaLite = true;
172
+ else if (lang === 'infographic') out.infographic = true;
173
+ else if (lang === 'md2x') {
174
+ const text = (codeEl && codeEl.textContent) ? codeEl.textContent : '';
175
+ const cfg = parseMd2xConfig(text);
176
+ if (cfg && cfg.type === 'vue') out.md2xVue = true;
177
+ if (cfg && cfg.type === 'html') out.md2xHtml = true;
178
+ }
179
+ }
180
+
181
+ return out;
182
+ }
183
+
184
+ async function ensureCdnLibsLoaded() {
185
+ const kinds = detectLiveKindsFromDocument();
186
+
187
+ // Only include Vega URLs if we actually need Vega-Lite (reduces failure surface when offline).
188
+ const major = kinds.vegaLite ? detectVegaLiteMajorFromDocument() : 6;
189
+ const vegaDefaults = cdnVegaDefaultsByMajor[String(major)] || cdnVegaDefaultsByMajor['6'];
190
+ const cdn = Object.assign({}, cdnBaseDefaults, vegaDefaults, cdnOverrides || {});
191
+
192
+ // Load only what we need; never throw here (so other kinds can still render).
193
+ if (kinds.mermaid) {
194
+ try { await loadScript(cdn.mermaid); } catch {}
195
+ }
196
+ if (kinds.dot) {
197
+ try {
198
+ if (cdn.vizGlobal) {
199
+ await loadScript(cdn.vizGlobal);
200
+ } else {
201
+ await loadScript(cdn.viz);
202
+ await loadScript(cdn.vizRender);
203
+ }
204
+ } catch {}
205
+ }
206
+ if (kinds.vegaLite) {
207
+ try {
208
+ await loadScript(cdn.vega);
209
+ await loadScript(cdn.vegaLite);
210
+ await loadScript(cdn.vegaEmbed);
211
+ } catch {}
212
+ }
213
+ if (kinds.infographic) {
214
+ try { await loadScript(cdn.infographic); } catch {}
215
+ }
216
+
217
+ // md2x templates:
218
+ if (kinds.md2xVue) {
219
+ try {
220
+ await loadScript(cdn.vue);
221
+ await loadScript(cdn.vueSfcLoader);
222
+ } catch {}
223
+ }
224
+ }
225
+
226
+ function replacePreWithContainer(preEl, kind) {
227
+ const wrapper = document.createElement('div');
228
+ wrapper.className = 'md2x-diagram';
229
+ wrapper.setAttribute('data-md2x-diagram-kind', kind);
230
+ wrapper.style.maxWidth = '100%';
231
+ const inner = document.createElement('div');
232
+ inner.className = 'md2x-diagram-inner';
233
+ inner.style.display = 'inline-block';
234
+ inner.style.maxWidth = '100%';
235
+ const mount = document.createElement('div');
236
+ mount.className = 'md2x-diagram-mount';
237
+ mount.style.maxWidth = '100%';
238
+ inner.appendChild(mount);
239
+ wrapper.appendChild(inner);
240
+ preEl.replaceWith(wrapper);
241
+ return mount;
242
+ }
243
+
244
+ function getText(codeEl) {
245
+ return (codeEl && codeEl.textContent) ? codeEl.textContent : '';
246
+ }
247
+
248
+ async function renderMermaid(code, mount, id) {
249
+ const mermaid = window.mermaid;
250
+ if (!mermaid) return;
251
+ mermaid.initialize({
252
+ startOnLoad: false,
253
+ theme: 'default',
254
+ securityLevel: 'loose',
255
+ fontFamily: themeConfig && themeConfig.fontFamily ? themeConfig.fontFamily : undefined,
256
+ });
257
+ const out = await mermaid.render('md2x-mermaid-' + id, code);
258
+ mount.innerHTML = out && out.svg ? out.svg : '';
259
+ }
260
+
261
+ async function renderDot(code, mount) {
262
+ const VizGlobal = window.Viz;
263
+ if (VizGlobal && typeof VizGlobal.instance === 'function') {
264
+ const viz = await VizGlobal.instance();
265
+ const svgEl = viz.renderSVGElement(code, { graphAttributes: { bgcolor: 'transparent' } });
266
+ mount.appendChild(svgEl);
267
+ return;
268
+ }
269
+ if (typeof window.Viz === 'function') {
270
+ const viz = new window.Viz();
271
+ const svgEl = await viz.renderSVGElement(code);
272
+ mount.appendChild(svgEl);
273
+ }
274
+ }
275
+
276
+ function applyDefaultVegaLiteSort(spec) {
277
+ const applyOne = (s) => {
278
+ if (!s || typeof s !== 'object') return;
279
+ const enc = s.encoding;
280
+ const x = enc && enc.x;
281
+ if (x && typeof x === 'object' && x.type === 'ordinal' && !('sort' in x)) {
282
+ x.sort = null;
283
+ }
284
+ };
285
+
286
+ const walk = (s) => {
287
+ if (!s || typeof s !== 'object') return;
288
+ applyOne(s);
289
+ const arrays = ['layer', 'hconcat', 'vconcat', 'concat'];
290
+ for (const key of arrays) {
291
+ const childArr = s[key];
292
+ if (Array.isArray(childArr)) {
293
+ for (const child of childArr) walk(child);
294
+ }
295
+ }
296
+ if (s.spec) walk(s.spec);
297
+ };
298
+ walk(spec);
299
+ }
300
+
301
+ async function renderVegaLite(code, mount) {
302
+ const vegaEmbed = window.vegaEmbed;
303
+ if (typeof vegaEmbed !== 'function') return;
304
+ let spec;
305
+ try {
306
+ spec = JSON.parse(code);
307
+ } catch {
308
+ mount.textContent = 'Invalid Vega-Lite JSON.';
309
+ return;
310
+ }
311
+ if (!spec) return;
312
+
313
+ try {
314
+ applyDefaultVegaLiteSort(spec);
315
+ } catch {}
316
+
317
+ await vegaEmbed(mount, spec, {
318
+ actions: false,
319
+ renderer: 'svg',
320
+ defaultStyle: true,
321
+ logLevel: (window.vega && window.vega.Warn) ? window.vega.Warn : undefined,
322
+ }).catch(() => {});
323
+ }
324
+
325
+ async function renderInfographic(code, mount) {
326
+ // @antv/infographic UMD exposes window.AntVInfographic
327
+ const lib = window.AntVInfographic;
328
+ if (!lib || !lib.Infographic) return;
329
+
330
+ try {
331
+ if (typeof lib.setDefaultFont === 'function') {
332
+ const ff = themeConfig && themeConfig.fontFamily ? themeConfig.fontFamily : undefined;
333
+ if (ff) lib.setDefaultFont(ff);
334
+ }
335
+ } catch {}
336
+
337
+ const opts = {
338
+ container: mount,
339
+ width: 900,
340
+ height: 600,
341
+ padding: 24,
342
+ };
343
+ if (themeConfig && themeConfig.diagramStyle === 'handDrawn') {
344
+ opts.themeConfig = { stylize: { type: 'rough', roughness: 0.5, bowing: 0.5 } };
345
+ }
346
+
347
+ const ig = new lib.Infographic(opts);
348
+ await new Promise((resolve, reject) => {
349
+ const timeout = setTimeout(() => reject(new Error('Infographic render timeout after 10s')), 10000);
350
+ ig.on && ig.on('rendered', () => { clearTimeout(timeout); resolve(); });
351
+ ig.on && ig.on('error', (err) => { clearTimeout(timeout); reject(err); });
352
+ try {
353
+ ig.render(code);
354
+ } catch (e) {
355
+ clearTimeout(timeout);
356
+ reject(e);
357
+ }
358
+ }).catch(() => {
359
+ // keep container content on errors
360
+ });
361
+ }
362
+
363
+ function parseMd2xConfig(text) {
364
+ const raw = String(text || '').trim();
365
+ if (!raw) return null;
366
+
367
+ // The md2x block format is treated as a JS object literal (often without outer braces).
368
+ // Example:
369
+ // type: 'vue',
370
+ // template: 'vue/my-component.vue',
371
+ // data: [...]
372
+ let expr = raw.replace(/^export\\s+default\\s+/i, '').trim();
373
+ if (!expr) return null;
374
+ if (!/^\\s*\\{[\\s\\S]*\\}\\s*$/.test(expr)) {
375
+ expr = '{' + expr + '}';
376
+ }
377
+
378
+ let cfg;
379
+ try {
380
+ // eslint-disable-next-line no-new-func
381
+ cfg = Function('"use strict"; return (' + expr + ');')();
382
+ } catch {
383
+ return null;
384
+ }
385
+
386
+ if (!cfg || typeof cfg !== 'object') return null;
387
+ const type = (cfg.type != null) ? String(cfg.type).toLowerCase() : '';
388
+ const template = (cfg.template != null) ? String(cfg.template) : '';
389
+ const data = cfg.data;
390
+ if (type !== 'vue' && type !== 'html') return null;
391
+ if (!template) return null;
392
+ return { type, template, data };
393
+ }
394
+
395
+ async function renderMd2xHtml(cfg, mount) {
396
+ try {
397
+ const templateRef = normalizeMd2xTemplateRef(cfg.type, cfg.template);
398
+ const tplHref = resolveHref(templateRef, baseHref || undefined);
399
+ const tpl = md2xTemplateFiles[tplHref] || md2xTemplateFiles[templateRef] || md2xTemplateFiles[cfg.template];
400
+ if (typeof tpl !== 'string' || !tpl) {
401
+ mount.textContent = 'Missing md2x html template: ' + templateRef;
402
+ return;
403
+ }
404
+
405
+ // Same data-injection approach as md2x Vue templates: replace the templateData placeholder.
406
+ const json = (() => {
407
+ try {
408
+ const j = JSON.stringify(cfg.data ?? null);
409
+ // Avoid accidentally terminating an inline <script> tag if user data contains "</...".
410
+ // IMPORTANT: avoid including the literal closing script tag sequence in this bootstrap source code.
411
+ return j.split('</').join('<\\/');
412
+ } catch {
413
+ return 'null';
414
+ }
415
+ })();
416
+ mount.innerHTML = tpl.split('templateData').join('(' + json + ')');
417
+
418
+ // Browsers treat <script> tags inserted via innerHTML as inert (they won't execute).
419
+ // Re-create them in-place to allow "script + markup in one HTML file" templates.
420
+ const scripts = Array.from(mount.querySelectorAll('script'));
421
+ for (const old of scripts) {
422
+ const parent = old.parentNode;
423
+ if (!parent) continue;
424
+
425
+ const s = document.createElement('script');
426
+ for (const attr of Array.from(old.attributes || [])) {
427
+ const name = String(attr && attr.name ? attr.name : '');
428
+ if (!name) continue;
429
+ // Keep execution order predictable (parser-blocking semantics).
430
+ if (name === 'async' || name === 'defer') continue;
431
+ try {
432
+ s.setAttribute(name, attr.value);
433
+ } catch {}
434
+ }
435
+
436
+ const src = old.getAttribute('src');
437
+ let wait = null;
438
+ if (src) {
439
+ // Force sequential loading/execution for deterministic template behavior.
440
+ try { s.async = false; } catch {}
441
+ wait = new Promise((resolve) => {
442
+ s.onload = () => resolve(null);
443
+ s.onerror = () => resolve(null);
444
+ });
445
+ // Resolve relative src against baseHref (file://.../).
446
+ const href = resolveHref(src, baseHref || undefined);
447
+ s.setAttribute('src', href);
448
+ } else {
449
+ s.textContent = old.textContent || '';
450
+ }
451
+
452
+ parent.replaceChild(s, old);
453
+ if (wait) {
454
+ try { await wait; } catch {}
455
+ }
456
+ }
457
+ } catch (e) {
458
+ mount.textContent = 'Failed to render md2x html template.';
459
+ }
460
+ }
461
+
462
+ async function renderMd2xVue(cfg, mount) {
463
+ const Vue = window.Vue;
464
+ const loader = window['vue3-sfc-loader'];
465
+ if (!Vue || !loader || typeof loader.loadModule !== 'function') {
466
+ mount.textContent = 'Vue runtime not available (missing vue/vue3-sfc-loader).';
467
+ return;
468
+ }
469
+
470
+ const { loadModule } = loader;
471
+ const fileCache = Object.create(null);
472
+
473
+ const templateRef = normalizeMd2xTemplateRef(cfg.type, cfg.template);
474
+ const rootHref = resolveHref(templateRef, baseHref || undefined);
475
+ const rootSource = md2xTemplateFiles[rootHref] || md2xTemplateFiles[templateRef] || md2xTemplateFiles[cfg.template];
476
+ if (typeof rootSource !== 'string' || !rootSource) {
477
+ mount.textContent = 'Missing md2x vue template: ' + templateRef;
478
+ return;
479
+ }
480
+
481
+ // Inject md2x data into the template by replacing the templateData placeholder.
482
+ // This avoids fetch() and also avoids having to require every user template to define props.
483
+ const json = (() => {
484
+ try {
485
+ const j = JSON.stringify(cfg.data ?? null);
486
+ // Prevent any closing tag sequence (e.g. "</div>") inside injected string values from terminating the HTML
487
+ // bootstrap script tag while the page is parsing.
488
+ // IMPORTANT: avoid including the literal closing script tag sequence in this bootstrap source code.
489
+ return j.split('</').join('<\\/');
490
+ } catch {
491
+ return 'null';
492
+ }
493
+ })();
494
+ // NOTE: avoid \\b in this template-literal-generated script (it would become a backspace character).
495
+ const rootPatchedSource = rootSource.split('templateData').join('(' + json + ')');
496
+
497
+ const options = {
498
+ moduleCache: { vue: Vue },
499
+ async getFile(url) {
500
+ const u = String(url || '').trim();
501
+ if (!u) throw new Error('Empty md2x template url');
502
+ if (fileCache[u]) return fileCache[u];
503
+
504
+ const href = resolveHref(u, baseHref || undefined);
505
+ if (href === rootHref || u === rootHref) {
506
+ fileCache[u] = rootPatchedSource;
507
+ return rootPatchedSource;
508
+ }
509
+ const text = md2xTemplateFiles[href] || md2xTemplateFiles[u];
510
+ if (typeof text !== 'string') {
511
+ throw new Error('Missing md2x template content for: ' + u);
512
+ }
513
+ fileCache[u] = text;
514
+ return text;
515
+ },
516
+ resolve({ refPath, relPath }) {
517
+ // Ensure nested <script src>, <style src> etc become absolute keys for md2xTemplateFiles lookup.
518
+ try {
519
+ const refHref = resolveHref(refPath, baseHref || undefined);
520
+ return new URL(relPath, refHref).href;
521
+ } catch {
522
+ return relPath;
523
+ }
524
+ },
525
+ addStyle(textContent) {
526
+ const style = document.createElement('style');
527
+ style.textContent = textContent;
528
+ const ref = document.head.getElementsByTagName('style')[0] || null;
529
+ document.head.insertBefore(style, ref);
530
+ },
531
+ };
532
+
533
+ let Comp;
534
+ try {
535
+ Comp = await loadModule(rootHref, options);
536
+ } catch (e) {
537
+ mount.textContent = 'Failed to load Vue SFC: ' + cfg.template;
538
+ return;
539
+ }
540
+
541
+ // Render the loaded SFC. Data injection is handled by templateData placeholder replacement
542
+ // (so we avoid passing extraneous attrs that can trigger Vue warnings for fragment-root SFCs).
543
+ const app = Vue.createApp({
544
+ render() {
545
+ return Vue.h(Comp);
546
+ },
547
+ });
548
+ app.mount(mount);
549
+ try {
550
+ if (typeof Vue.nextTick === 'function') {
551
+ await Vue.nextTick();
552
+ }
553
+ } catch {}
554
+ }
555
+
556
+ async function main() {
557
+ try {
558
+ if (baseHref) {
559
+ let base = document.querySelector('base');
560
+ if (!base) {
561
+ base = document.createElement('base');
562
+ document.head.appendChild(base);
563
+ }
564
+ base.href = baseHref;
565
+ }
566
+ } catch {}
567
+
568
+ await ensureCdnLibsLoaded();
569
+
570
+ const blocks = Array.from(document.querySelectorAll('pre > code'));
571
+ let idx = 0;
572
+ for (const codeEl of blocks) {
573
+ const pre = codeEl && codeEl.parentElement;
574
+ if (!pre) continue;
575
+ const langRaw = getLangFromCodeClass(codeEl);
576
+ if (!langRaw) continue;
577
+ const lang = normalizeLang(langRaw);
578
+ const code = getText(codeEl);
579
+ if (!code.trim()) continue;
580
+
581
+ try {
582
+ if (lang === 'mermaid') {
583
+ const mount = replacePreWithContainer(pre, 'mermaid');
584
+ await renderMermaid(code, mount, idx++);
585
+ } else if (lang === 'dot') {
586
+ const mount = replacePreWithContainer(pre, 'dot');
587
+ await renderDot(code, mount);
588
+ } else if (lang === 'vega-lite') {
589
+ const mount = replacePreWithContainer(pre, 'vega-lite');
590
+ await renderVegaLite(code, mount);
591
+ } else if (lang === 'infographic') {
592
+ const mount = replacePreWithContainer(pre, 'infographic');
593
+ await renderInfographic(code, mount);
594
+ } else if (lang === 'md2x') {
595
+ const cfg = parseMd2xConfig(code);
596
+ const kind = cfg && cfg.type ? ('md2x-' + cfg.type) : 'md2x';
597
+ const mount = replacePreWithContainer(pre, kind);
598
+ if (!cfg) {
599
+ mount.textContent = 'Invalid md2x block.';
600
+ continue;
601
+ }
602
+ if (cfg.type === 'vue') {
603
+ await renderMd2xVue(cfg, mount);
604
+ } else if (cfg.type === 'html') {
605
+ await renderMd2xHtml(cfg, mount);
606
+ }
607
+ }
608
+ } catch {}
609
+ }
610
+
611
+ try { window.__md2xLiveDone = true; } catch {}
612
+ }
613
+
614
+ if (document.readyState === 'loading') {
615
+ document.addEventListener('DOMContentLoaded', () => { main(); }, { once: true });
616
+ } else {
617
+ main();
618
+ }
619
+ })();
620
+ </script>`}var it=class{async exportToBuffer(t,r={}){$e();let i=r.theme||"default",n=r.basePath??process.cwd(),a=be(),{platform:o,getCapturedBuffer:l}=_e({moduleDir:a,selectedThemeId:i,output:{kind:"buffer"},settings:{docxHrAsPageBreak:r.hrAsPageBreak??!0}}),c=globalThis.platform;globalThis.platform=o;let d=F.join(n,"__md2x__.md"),s=null;try{s=await Pe(),s&&await s.initialize();let u=await Ve(i),f=dn(t,n,r.templatesDir),m=fn(s,n,u,f),{default:p}=await import("./docx-exporter-ZZ76JXFU.js"),h=new p(m);h.setBaseUrl?.(we(d).href);let x=await h.exportToDocx(t,"__md2x__.docx",null);if(!x.success)throw new Error(x.error||"DOCX export failed");let b=l();if(!b)throw new Error("DOCX export produced no output buffer");return b}finally{try{s&&await s.close()}finally{globalThis.platform=c}}}};async function ot(e){let t=globalThis.platform;await(await import("./theme-manager-AZBU2SLL.js")).default.initialize();let i=await t.resource.fetch(`themes/presets/${e}.json`),n=JSON.parse(i),a=await t.resource.fetch(`themes/layout-schemes/${n.layoutScheme}.json`),o=JSON.parse(a),l=await t.resource.fetch(`themes/color-schemes/${n.colorScheme}.json`),c=JSON.parse(l),d=await t.resource.fetch(`themes/table-styles/${n.tableStyle}.json`),s=JSON.parse(d),u=await t.resource.fetch(`themes/code-themes/${n.codeTheme}.json`),f=JSON.parse(u),{themeToCSS:m}=await import("./theme-to-css-GLV3WYDU.js");return m(n,o,c,s,f)}async function at(e=!0){return`
621
+ /* Base PDF Styles */
622
+ * {
623
+ box-sizing: border-box;
624
+ }
625
+
626
+ body {
627
+ margin: 0;
628
+ padding: 0;
629
+ font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Roboto', 'Helvetica Neue', Arial, sans-serif;
630
+ line-height: 1.6;
631
+ color: #333;
632
+ }
633
+
634
+ .markdown-body, #markdown-content {
635
+ max-width: 100%;
636
+ padding: 20px;
637
+ }
638
+
639
+ /* Wide content auto-scaling for PDF */
640
+ /* Use transform scale to fit wide content within page width */
641
+ /* The actual scale value will be set dynamically via JavaScript */
642
+ #markdown-content > div[style*="width"] {
643
+ transform-origin: top left;
644
+ break-inside: avoid;
645
+ page-break-inside: avoid;
646
+ }
647
+
648
+ /* Headings */
649
+ h1, h2, h3, h4, h5, h6 {
650
+ margin-top: 24px;
651
+ margin-bottom: 16px;
652
+ font-weight: 600;
653
+ line-height: 1.25;
654
+ }
655
+
656
+ h1 { font-size: 2em; border-bottom: 1px solid #eaecef; padding-bottom: 0.3em; }
657
+ h2 { font-size: 1.5em; border-bottom: 1px solid #eaecef; padding-bottom: 0.3em; }
658
+ h3 { font-size: 1.25em; }
659
+ h4 { font-size: 1em; }
660
+ h5 { font-size: 0.875em; }
661
+ h6 { font-size: 0.85em; color: #6a737d; }
662
+
663
+ /* Paragraphs */
664
+ p {
665
+ margin-top: 0;
666
+ margin-bottom: 16px;
667
+ }
668
+
669
+ /* Links */
670
+ a {
671
+ color: #0366d6;
672
+ text-decoration: none;
673
+ }
674
+
675
+ a:hover {
676
+ text-decoration: underline;
677
+ }
678
+
679
+ /* Lists */
680
+ ul, ol {
681
+ padding-left: 2em;
682
+ margin-top: 0;
683
+ margin-bottom: 16px;
684
+ }
685
+
686
+ li {
687
+ margin-bottom: 4px;
688
+ }
689
+
690
+ li + li {
691
+ margin-top: 4px;
692
+ }
693
+
694
+ /* Code */
695
+ code {
696
+ padding: 0.2em 0.4em;
697
+ margin: 0;
698
+ font-size: 85%;
699
+ background-color: rgba(27, 31, 35, 0.05);
700
+ border-radius: 3px;
701
+ font-family: 'SFMono-Regular', Consolas, 'Liberation Mono', Menlo, monospace;
702
+ }
703
+
704
+ pre {
705
+ padding: 16px;
706
+ /* PDFs can't scroll horizontally; wrap long lines instead of clipping. */
707
+ white-space: pre-wrap;
708
+ overflow-wrap: anywhere;
709
+ word-break: break-word;
710
+ font-size: 85%;
711
+ line-height: 1.45;
712
+ background-color: #f6f8fa;
713
+ border-radius: 3px;
714
+ margin-top: 0;
715
+ margin-bottom: 16px;
716
+ }
717
+
718
+ pre code {
719
+ padding: 0;
720
+ margin: 0;
721
+ font-size: 100%;
722
+ background-color: transparent;
723
+ border: 0;
724
+ /* Inherit wrapping behavior from <pre> for PDFs */
725
+ white-space: inherit;
726
+ overflow-wrap: inherit;
727
+ word-break: inherit;
728
+ }
729
+
730
+ /* Blockquotes */
731
+ blockquote {
732
+ padding: 0 1em;
733
+ color: #6a737d;
734
+ border-left: 0.25em solid #dfe2e5;
735
+ margin: 0 0 16px 0;
736
+ }
737
+
738
+ blockquote > :first-child {
739
+ margin-top: 0;
740
+ }
741
+
742
+ blockquote > :last-child {
743
+ margin-bottom: 0;
744
+ }
745
+
746
+ /* Tables */
747
+ table {
748
+ border-collapse: collapse;
749
+ border-spacing: 0;
750
+ margin-top: 0;
751
+ margin-bottom: 16px;
752
+ width: auto;
753
+ }
754
+
755
+ th, td {
756
+ padding: 6px 13px;
757
+ border: 1px solid #dfe2e5;
758
+ }
759
+
760
+ th {
761
+ font-weight: 600;
762
+ background-color: #f6f8fa;
763
+ }
764
+
765
+ tr:nth-child(2n) {
766
+ background-color: #f6f8fa;
767
+ }
768
+
769
+ /* Images */
770
+ img {
771
+ max-width: 100%;
772
+ height: auto;
773
+ box-sizing: content-box;
774
+ }
775
+
776
+ /* Diagrams (rendered images) */
777
+ .md2x-diagram {
778
+ text-align: center;
779
+ break-inside: avoid;
780
+ page-break-inside: avoid;
781
+ }
782
+
783
+ .md2x-diagram .md2x-diagram-inner {
784
+ display: inline-block;
785
+ max-width: 100%;
786
+ text-align: left;
787
+ }
788
+
789
+ .md2x-diagram .md2x-diagram-mount {
790
+ display: inline-block;
791
+ max-width: 100%;
792
+ }
793
+
794
+ .md2x-diagram .vega-embed {
795
+ display: inline-block;
796
+ max-width: 100%;
797
+ width: auto !important;
798
+ }
799
+
800
+ .md2x-diagram .md2x-diagram-inner svg,
801
+ .md2x-diagram .md2x-diagram-inner > svg {
802
+ display: block;
803
+ margin-left: auto;
804
+ margin-right: auto;
805
+ max-width: 100%;
806
+ }
807
+
808
+ .md2x-diagram img,
809
+ img.md2x-diagram {
810
+ display: block;
811
+ max-width: 100%;
812
+ height: auto;
813
+ margin-left: auto;
814
+ margin-right: auto;
815
+ break-inside: avoid;
816
+ page-break-inside: avoid;
817
+ }
818
+
819
+ #markdown-content svg {
820
+ display: block;
821
+ margin-left: auto;
822
+ margin-right: auto;
823
+ break-inside: avoid;
824
+ page-break-inside: avoid;
825
+ }
826
+
827
+ /* Block-level images: marked by rehypeBlockImages plugin */
828
+ img.block-image {
829
+ display: block;
830
+ margin: 16px 0;
831
+ }
832
+
833
+ /* Task Lists */
834
+ .task-list-item {
835
+ list-style-type: none;
836
+ }
837
+
838
+ .task-list-item input {
839
+ margin: 0 0.2em 0.25em -1.6em;
840
+ vertical-align: middle;
841
+ }
842
+
843
+ /* KaTeX Math */
844
+ .katex {
845
+ font-size: 1.1em;
846
+ }
847
+
848
+ .katex-display {
849
+ margin: 1em 0;
850
+ overflow-x: auto;
851
+ overflow-y: hidden;
852
+ }
853
+
854
+ /* Syntax Highlighting - GitHub style */
855
+ .hljs {
856
+ display: block;
857
+ overflow-x: auto;
858
+ color: #24292e;
859
+ background: #f6f8fa;
860
+ }
861
+
862
+ .hljs-comment,
863
+ .hljs-quote {
864
+ color: #6a737d;
865
+ font-style: italic;
866
+ }
867
+
868
+ .hljs-keyword,
869
+ .hljs-selector-tag,
870
+ .hljs-subst {
871
+ color: #d73a49;
872
+ }
873
+
874
+ .hljs-number,
875
+ .hljs-literal,
876
+ .hljs-variable,
877
+ .hljs-template-variable,
878
+ .hljs-tag .hljs-attr {
879
+ color: #005cc5;
880
+ }
881
+
882
+ .hljs-string,
883
+ .hljs-doctag {
884
+ color: #032f62;
885
+ }
886
+
887
+ .hljs-title,
888
+ .hljs-section,
889
+ .hljs-selector-id {
890
+ color: #6f42c1;
891
+ font-weight: bold;
892
+ }
893
+
894
+ .hljs-type,
895
+ .hljs-class .hljs-title {
896
+ color: #6f42c1;
897
+ }
898
+
899
+ .hljs-tag,
900
+ .hljs-name,
901
+ .hljs-attribute {
902
+ color: #22863a;
903
+ }
904
+
905
+ .hljs-regexp,
906
+ .hljs-link {
907
+ color: #032f62;
908
+ }
909
+
910
+ .hljs-symbol,
911
+ .hljs-bullet {
912
+ color: #e36209;
913
+ }
914
+
915
+ .hljs-built_in,
916
+ .hljs-builtin-name {
917
+ color: #005cc5;
918
+ }
919
+
920
+ .hljs-meta {
921
+ color: #6a737d;
922
+ font-weight: bold;
923
+ }
924
+
925
+ .hljs-deletion {
926
+ color: #b31d28;
927
+ background-color: #ffeef0;
928
+ }
929
+
930
+ .hljs-addition {
931
+ color: #22863a;
932
+ background-color: #f0fff4;
933
+ }
934
+
935
+ .hljs-emphasis {
936
+ font-style: italic;
937
+ }
938
+
939
+ .hljs-strong {
940
+ font-weight: bold;
941
+ }
942
+
943
+ ${e?`
944
+ /* Horizontal Rule as Page Break */
945
+ hr {
946
+ height: 0;
947
+ padding: 0;
948
+ margin: 0;
949
+ background-color: transparent;
950
+ border: 0;
951
+ page-break-after: always;
952
+ break-after: page;
953
+ visibility: hidden;
954
+ }`:`
955
+ /* Horizontal Rule */
956
+ hr {
957
+ height: 0.25em;
958
+ padding: 0;
959
+ margin: 24px 0;
960
+ background-color: #e1e4e8;
961
+ border: 0;
962
+ }`}
963
+ `}function lt(){let e=be(),t=F.join(e,"vendor","katex","katex.min.css"),r=t;ne.existsSync(t)||(r=un(import.meta.url).resolve("katex/dist/katex.min.css"));let i=F.dirname(r),n=we(F.join(i,"fonts")+F.sep).href,a=ne.readFileSync(r,"utf-8");return a=a.replace(/url\((['"]?)(?:\.\/)?fonts\//g,`url($1${n}`),a}var st=class{async exportToBuffer(t,r={}){$e();let i=r.theme||"default",n=r.basePath??process.cwd(),a=be(),{platform:o}=_e({moduleDir:a,selectedThemeId:i,output:{kind:"buffer"}}),l=globalThis.platform;globalThis.platform=o;let c=null;try{if(c=await Pe(),!c)throw new Error("Failed to create browser renderer. Puppeteer is required for PDF export.");await c.initialize();let d=await Ve(i),s=r.diagramMode??"img",u=await rt(t,c,n,d,s,r.templatesDir,r.cdn);if(s==="live"){let x=we(n+F.sep).href,b=ze(u,n,r.templatesDir);u=u+`
964
+ `+nt(d??null,x,r.cdn,b)}let f="";try{f=lt()}catch(x){console.warn("Failed to load KaTeX CSS for PDF export:",x)}let m=await at(r.hrAsPageBreak??!0),p="";try{p=await ot(i)}catch(x){console.warn("Failed to load theme CSS, using base styles only:",x)}let h=f+`
965
+ `+m+`
966
+ `+p;return await c.exportToPdf(u,h,r.pdf,n)}finally{try{c&&await c.close()}finally{globalThis.platform=l}}}},Ue=class{async exportToBuffer(t,r={}){$e();let i=r.theme||"default",n=r.basePath??process.cwd(),a=be(),{platform:o}=_e({moduleDir:a,selectedThemeId:i,output:{kind:"buffer"}}),l=globalThis.platform;globalThis.platform=o;let c=null;try{if(c=await Pe(),!c)throw new Error("Failed to create browser renderer. Puppeteer is required for image export.");await c.initialize();let d=await Ve(i),s=r.diagramMode??"live",u=await rt(t,c,n,d,s,r.templatesDir,r.cdn);if(s==="live"){let x=we(n+F.sep).href,b=ze(u,n,r.templatesDir);u=u+`
967
+ `+nt(d??null,x,r.cdn,b)}let f="";try{f=lt()}catch(x){console.warn("Failed to load KaTeX CSS for image export:",x)}let m=await at(r.hrAsPageBreak??!1),p="";try{p=await ot(i)}catch(x){console.warn("Failed to load theme CSS, using base styles only:",x)}let h=f+`
968
+ `+m+`
969
+ `+p;return await c.exportToImage(u,h,r.image,n)}finally{try{c&&await c.close()}finally{globalThis.platform=l}}}async exportToBuffers(t,r={}){$e();let i=r.theme||"default",n=r.basePath??process.cwd(),a=be(),{platform:o}=_e({moduleDir:a,selectedThemeId:i,output:{kind:"buffer"}}),l=globalThis.platform;globalThis.platform=o;let c=null;try{if(c=await Pe(),!c)throw new Error("Failed to create browser renderer. Puppeteer is required for image export.");await c.initialize();let d=await Ve(i),s=r.diagramMode??"live",u=await rt(t,c,n,d,s,r.templatesDir,r.cdn);if(s==="live"){let x=we(n+F.sep).href,b=ze(u,n,r.templatesDir);u=u+`
970
+ `+nt(d??null,x,r.cdn,b)}let f="";try{f=lt()}catch(x){console.warn("Failed to load KaTeX CSS for image export:",x)}let m=await at(r.hrAsPageBreak??!1),p="";try{p=await ot(i)}catch(x){console.warn("Failed to load theme CSS, using base styles only:",x)}let h=f+`
971
+ `+m+`
972
+ `+p;return await c.exportToImageParts(u,h,r.image,n)}finally{try{c&&await c.close()}finally{globalThis.platform=l}}}},We=class{async exportToString(t,r={}){$e();let i=r.theme||"default",n=r.basePath??process.cwd(),a=be(),o=r.diagramMode||"live",{platform:l}=_e({moduleDir:a,selectedThemeId:i,output:{kind:"buffer"}}),c=globalThis.platform;globalThis.platform=l;let d=null;try{let s=await Ve(i);o==="img"&&(d=await Pe(),d&&await d.initialize());let u=await rt(t,d,n,s,o,r.templatesDir,r.cdn);if(!(r.standalone!==!1))return u;let m="";try{m=lt()}catch(C){console.warn("Failed to load KaTeX CSS for HTML export:",C)}let p=await at(r.hrAsPageBreak??!1),h="";try{h=await ot(i)}catch(C){console.warn("Failed to load theme CSS for HTML export, using base styles only:",C)}let x=m+`
973
+ `+p+`
974
+ `+h,b=r.title||"Document",q=r.baseTag!==!1&&!!n?we(n+F.sep).href:"",S=q?` <base href="${tt(q)}" />
975
+ `:"",B=o==="live"?nt(s??null,q,r.cdn,ze(u,n,r.templatesDir)):"";return`<!DOCTYPE html>
976
+ <html lang="en">
977
+ <head>
978
+ <meta charset="UTF-8" />
979
+ <meta name="viewport" content="width=device-width, initial-scale=1.0" />
980
+ ${S} <title>${tt(b)}</title>
981
+ <style>${x}</style>
982
+ </head>
983
+ <body>
984
+ <div id="markdown-content" class="markdown-body">${u}</div>
985
+ ${B}
986
+ </body>
987
+ </html>`}finally{try{d&&await d.close()}finally{globalThis.platform=c}}}async exportToBuffer(t,r={}){let i=await this.exportToString(t,r);return Buffer.from(i,"utf8")}};import*as ue from"fs";import*as Y from"path";function rr(e){return typeof e>"u"||e===null}function pn(e){return typeof e=="object"&&e!==null}function hn(e){return Array.isArray(e)?e:rr(e)?[]:[e]}function gn(e,t){var r,i,n,a;if(t)for(a=Object.keys(t),r=0,i=a.length;r<i;r+=1)n=a[r],e[n]=t[n];return e}function xn(e,t){var r="",i;for(i=0;i<t;i+=1)r+=e;return r}function yn(e){return e===0&&Number.NEGATIVE_INFINITY===1/e}var wn=rr,bn=pn,vn=hn,Sn=xn,Cn=yn,An=gn,H={isNothing:wn,isObject:bn,toArray:vn,repeat:Sn,isNegativeZero:Cn,extend:An};function nr(e,t){var r="",i=e.reason||"(unknown reason)";return e.mark?(e.mark.name&&(r+='in "'+e.mark.name+'" '),r+="("+(e.mark.line+1)+":"+(e.mark.column+1)+")",!t&&e.mark.snippet&&(r+=`
988
+
989
+ `+e.mark.snippet),i+" "+r):i}function qe(e,t){Error.call(this),this.name="YAMLException",this.reason=e,this.mark=t,this.message=nr(this,!1),Error.captureStackTrace?Error.captureStackTrace(this,this.constructor):this.stack=new Error().stack||""}qe.prototype=Object.create(Error.prototype);qe.prototype.constructor=qe;qe.prototype.toString=function(t){return this.name+": "+nr(this,t)};var J=qe;function yt(e,t,r,i,n){var a="",o="",l=Math.floor(n/2)-1;return i-t>l&&(a=" ... ",t=i-l+a.length),r-i>l&&(o=" ...",r=i+l-o.length),{str:a+e.slice(t,r).replace(/\t/g,"\u2192")+o,pos:i-t+a.length}}function wt(e,t){return H.repeat(" ",t-e.length)+e}function Tn(e,t){if(t=Object.create(t||null),!e.buffer)return null;t.maxLength||(t.maxLength=79),typeof t.indent!="number"&&(t.indent=1),typeof t.linesBefore!="number"&&(t.linesBefore=3),typeof t.linesAfter!="number"&&(t.linesAfter=2);for(var r=/\r?\n|\r|\0/g,i=[0],n=[],a,o=-1;a=r.exec(e.buffer);)n.push(a.index),i.push(a.index+a[0].length),e.position<=a.index&&o<0&&(o=i.length-2);o<0&&(o=i.length-1);var l="",c,d,s=Math.min(e.line+t.linesAfter,n.length).toString().length,u=t.maxLength-(t.indent+s+3);for(c=1;c<=t.linesBefore&&!(o-c<0);c++)d=yt(e.buffer,i[o-c],n[o-c],e.position-(i[o]-i[o-c]),u),l=H.repeat(" ",t.indent)+wt((e.line-c+1).toString(),s)+" | "+d.str+`
990
+ `+l;for(d=yt(e.buffer,i[o],n[o],e.position,u),l+=H.repeat(" ",t.indent)+wt((e.line+1).toString(),s)+" | "+d.str+`
991
+ `,l+=H.repeat("-",t.indent+s+3+d.pos)+`^
992
+ `,c=1;c<=t.linesAfter&&!(o+c>=n.length);c++)d=yt(e.buffer,i[o+c],n[o+c],e.position-(i[o]-i[o+c]),u),l+=H.repeat(" ",t.indent)+wt((e.line+c+1).toString(),s)+" | "+d.str+`
993
+ `;return l.replace(/\n$/,"")}var Mn=Tn,Fn=["kind","multi","resolve","construct","instanceOf","predicate","represent","representName","defaultStyle","styleAliases"],kn=["scalar","sequence","mapping"];function En(e){var t={};return e!==null&&Object.keys(e).forEach(function(r){e[r].forEach(function(i){t[String(i)]=r})}),t}function Pn(e,t){if(t=t||{},Object.keys(t).forEach(function(r){if(Fn.indexOf(r)===-1)throw new J('Unknown option "'+r+'" is met in definition of "'+e+'" YAML type.')}),this.options=t,this.tag=e,this.kind=t.kind||null,this.resolve=t.resolve||function(){return!0},this.construct=t.construct||function(r){return r},this.instanceOf=t.instanceOf||null,this.predicate=t.predicate||null,this.represent=t.represent||null,this.representName=t.representName||null,this.defaultStyle=t.defaultStyle||null,this.multi=t.multi||!1,this.styleAliases=En(t.styleAliases||null),kn.indexOf(this.kind)===-1)throw new J('Unknown kind "'+this.kind+'" is specified for "'+e+'" YAML type.')}var z=Pn;function $t(e,t){var r=[];return e[t].forEach(function(i){var n=r.length;r.forEach(function(a,o){a.tag===i.tag&&a.kind===i.kind&&a.multi===i.multi&&(n=o)}),r[n]=i}),r}function _n(){var e={scalar:{},sequence:{},mapping:{},fallback:{},multi:{scalar:[],sequence:[],mapping:[],fallback:[]}},t,r;function i(n){n.multi?(e.multi[n.kind].push(n),e.multi.fallback.push(n)):e[n.kind][n.tag]=e.fallback[n.tag]=n}for(t=0,r=arguments.length;t<r;t+=1)arguments[t].forEach(i);return e}function vt(e){return this.extend(e)}vt.prototype.extend=function(t){var r=[],i=[];if(t instanceof z)i.push(t);else if(Array.isArray(t))i=i.concat(t);else if(t&&(Array.isArray(t.implicit)||Array.isArray(t.explicit)))t.implicit&&(r=r.concat(t.implicit)),t.explicit&&(i=i.concat(t.explicit));else throw new J("Schema.extend argument should be a Type, [ Type ], or a schema definition ({ implicit: [...], explicit: [...] })");r.forEach(function(a){if(!(a instanceof z))throw new J("Specified list of YAML types (or a single Type object) contains a non-Type object.");if(a.loadKind&&a.loadKind!=="scalar")throw new J("There is a non-scalar type in the implicit list of a schema. Implicit resolving of such types is not supported.");if(a.multi)throw new J("There is a multi type in the implicit list of a schema. Multi tags can only be listed as explicit.")}),i.forEach(function(a){if(!(a instanceof z))throw new J("Specified list of YAML types (or a single Type object) contains a non-Type object.")});var n=Object.create(vt.prototype);return n.implicit=(this.implicit||[]).concat(r),n.explicit=(this.explicit||[]).concat(i),n.compiledImplicit=$t(n,"implicit"),n.compiledExplicit=$t(n,"explicit"),n.compiledTypeMap=_n(n.compiledImplicit,n.compiledExplicit),n};var ir=vt,or=new z("tag:yaml.org,2002:str",{kind:"scalar",construct:function(e){return e!==null?e:""}}),ar=new z("tag:yaml.org,2002:seq",{kind:"sequence",construct:function(e){return e!==null?e:[]}}),lr=new z("tag:yaml.org,2002:map",{kind:"mapping",construct:function(e){return e!==null?e:{}}}),sr=new ir({explicit:[or,ar,lr]});function On(e){if(e===null)return!0;var t=e.length;return t===1&&e==="~"||t===4&&(e==="null"||e==="Null"||e==="NULL")}function Ln(){return null}function Bn(e){return e===null}var cr=new z("tag:yaml.org,2002:null",{kind:"scalar",resolve:On,construct:Ln,predicate:Bn,represent:{canonical:function(){return"~"},lowercase:function(){return"null"},uppercase:function(){return"NULL"},camelcase:function(){return"Null"},empty:function(){return""}},defaultStyle:"lowercase"});function jn(e){if(e===null)return!1;var t=e.length;return t===4&&(e==="true"||e==="True"||e==="TRUE")||t===5&&(e==="false"||e==="False"||e==="FALSE")}function In(e){return e==="true"||e==="True"||e==="TRUE"}function Dn(e){return Object.prototype.toString.call(e)==="[object Boolean]"}var ur=new z("tag:yaml.org,2002:bool",{kind:"scalar",resolve:jn,construct:In,predicate:Dn,represent:{lowercase:function(e){return e?"true":"false"},uppercase:function(e){return e?"TRUE":"FALSE"},camelcase:function(e){return e?"True":"False"}},defaultStyle:"lowercase"});function Rn(e){return 48<=e&&e<=57||65<=e&&e<=70||97<=e&&e<=102}function Nn(e){return 48<=e&&e<=55}function Hn(e){return 48<=e&&e<=57}function $n(e){if(e===null)return!1;var t=e.length,r=0,i=!1,n;if(!t)return!1;if(n=e[r],(n==="-"||n==="+")&&(n=e[++r]),n==="0"){if(r+1===t)return!0;if(n=e[++r],n==="b"){for(r++;r<t;r++)if(n=e[r],n!=="_"){if(n!=="0"&&n!=="1")return!1;i=!0}return i&&n!=="_"}if(n==="x"){for(r++;r<t;r++)if(n=e[r],n!=="_"){if(!Rn(e.charCodeAt(r)))return!1;i=!0}return i&&n!=="_"}if(n==="o"){for(r++;r<t;r++)if(n=e[r],n!=="_"){if(!Nn(e.charCodeAt(r)))return!1;i=!0}return i&&n!=="_"}}if(n==="_")return!1;for(;r<t;r++)if(n=e[r],n!=="_"){if(!Hn(e.charCodeAt(r)))return!1;i=!0}return!(!i||n==="_")}function Vn(e){var t=e,r=1,i;if(t.indexOf("_")!==-1&&(t=t.replace(/_/g,"")),i=t[0],(i==="-"||i==="+")&&(i==="-"&&(r=-1),t=t.slice(1),i=t[0]),t==="0")return 0;if(i==="0"){if(t[1]==="b")return r*parseInt(t.slice(2),2);if(t[1]==="x")return r*parseInt(t.slice(2),16);if(t[1]==="o")return r*parseInt(t.slice(2),8)}return r*parseInt(t,10)}function zn(e){return Object.prototype.toString.call(e)==="[object Number]"&&e%1===0&&!H.isNegativeZero(e)}var fr=new z("tag:yaml.org,2002:int",{kind:"scalar",resolve:$n,construct:Vn,predicate:zn,represent:{binary:function(e){return e>=0?"0b"+e.toString(2):"-0b"+e.toString(2).slice(1)},octal:function(e){return e>=0?"0o"+e.toString(8):"-0o"+e.toString(8).slice(1)},decimal:function(e){return e.toString(10)},hexadecimal:function(e){return e>=0?"0x"+e.toString(16).toUpperCase():"-0x"+e.toString(16).toUpperCase().slice(1)}},defaultStyle:"decimal",styleAliases:{binary:[2,"bin"],octal:[8,"oct"],decimal:[10,"dec"],hexadecimal:[16,"hex"]}}),Un=new RegExp("^(?:[-+]?(?:[0-9][0-9_]*)(?:\\.[0-9_]*)?(?:[eE][-+]?[0-9]+)?|\\.[0-9_]+(?:[eE][-+]?[0-9]+)?|[-+]?\\.(?:inf|Inf|INF)|\\.(?:nan|NaN|NAN))$");function Wn(e){return!(e===null||!Un.test(e)||e[e.length-1]==="_")}function Yn(e){var t,r;return t=e.replace(/_/g,"").toLowerCase(),r=t[0]==="-"?-1:1,"+-".indexOf(t[0])>=0&&(t=t.slice(1)),t===".inf"?r===1?Number.POSITIVE_INFINITY:Number.NEGATIVE_INFINITY:t===".nan"?NaN:r*parseFloat(t,10)}var qn=/^[-+]?[0-9]+e/;function Gn(e,t){var r;if(isNaN(e))switch(t){case"lowercase":return".nan";case"uppercase":return".NAN";case"camelcase":return".NaN"}else if(Number.POSITIVE_INFINITY===e)switch(t){case"lowercase":return".inf";case"uppercase":return".INF";case"camelcase":return".Inf"}else if(Number.NEGATIVE_INFINITY===e)switch(t){case"lowercase":return"-.inf";case"uppercase":return"-.INF";case"camelcase":return"-.Inf"}else if(H.isNegativeZero(e))return"-0.0";return r=e.toString(10),qn.test(r)?r.replace("e",".e"):r}function Kn(e){return Object.prototype.toString.call(e)==="[object Number]"&&(e%1!==0||H.isNegativeZero(e))}var dr=new z("tag:yaml.org,2002:float",{kind:"scalar",resolve:Wn,construct:Yn,predicate:Kn,represent:Gn,defaultStyle:"lowercase"}),mr=sr.extend({implicit:[cr,ur,fr,dr]}),pr=mr,hr=new RegExp("^([0-9][0-9][0-9][0-9])-([0-9][0-9])-([0-9][0-9])$"),gr=new RegExp("^([0-9][0-9][0-9][0-9])-([0-9][0-9]?)-([0-9][0-9]?)(?:[Tt]|[ \\t]+)([0-9][0-9]?):([0-9][0-9]):([0-9][0-9])(?:\\.([0-9]*))?(?:[ \\t]*(Z|([-+])([0-9][0-9]?)(?::([0-9][0-9]))?))?$");function Xn(e){return e===null?!1:hr.exec(e)!==null||gr.exec(e)!==null}function Jn(e){var t,r,i,n,a,o,l,c=0,d=null,s,u,f;if(t=hr.exec(e),t===null&&(t=gr.exec(e)),t===null)throw new Error("Date resolve error");if(r=+t[1],i=+t[2]-1,n=+t[3],!t[4])return new Date(Date.UTC(r,i,n));if(a=+t[4],o=+t[5],l=+t[6],t[7]){for(c=t[7].slice(0,3);c.length<3;)c+="0";c=+c}return t[9]&&(s=+t[10],u=+(t[11]||0),d=(s*60+u)*6e4,t[9]==="-"&&(d=-d)),f=new Date(Date.UTC(r,i,n,a,o,l,c)),d&&f.setTime(f.getTime()-d),f}function Qn(e){return e.toISOString()}var xr=new z("tag:yaml.org,2002:timestamp",{kind:"scalar",resolve:Xn,construct:Jn,instanceOf:Date,represent:Qn});function Zn(e){return e==="<<"||e===null}var yr=new z("tag:yaml.org,2002:merge",{kind:"scalar",resolve:Zn}),Mt=`ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=
994
+ \r`;function ei(e){if(e===null)return!1;var t,r,i=0,n=e.length,a=Mt;for(r=0;r<n;r++)if(t=a.indexOf(e.charAt(r)),!(t>64)){if(t<0)return!1;i+=6}return i%8===0}function ti(e){var t,r,i=e.replace(/[\r\n=]/g,""),n=i.length,a=Mt,o=0,l=[];for(t=0;t<n;t++)t%4===0&&t&&(l.push(o>>16&255),l.push(o>>8&255),l.push(o&255)),o=o<<6|a.indexOf(i.charAt(t));return r=n%4*6,r===0?(l.push(o>>16&255),l.push(o>>8&255),l.push(o&255)):r===18?(l.push(o>>10&255),l.push(o>>2&255)):r===12&&l.push(o>>4&255),new Uint8Array(l)}function ri(e){var t="",r=0,i,n,a=e.length,o=Mt;for(i=0;i<a;i++)i%3===0&&i&&(t+=o[r>>18&63],t+=o[r>>12&63],t+=o[r>>6&63],t+=o[r&63]),r=(r<<8)+e[i];return n=a%3,n===0?(t+=o[r>>18&63],t+=o[r>>12&63],t+=o[r>>6&63],t+=o[r&63]):n===2?(t+=o[r>>10&63],t+=o[r>>4&63],t+=o[r<<2&63],t+=o[64]):n===1&&(t+=o[r>>2&63],t+=o[r<<4&63],t+=o[64],t+=o[64]),t}function ni(e){return Object.prototype.toString.call(e)==="[object Uint8Array]"}var wr=new z("tag:yaml.org,2002:binary",{kind:"scalar",resolve:ei,construct:ti,predicate:ni,represent:ri}),ii=Object.prototype.hasOwnProperty,oi=Object.prototype.toString;function ai(e){if(e===null)return!0;var t=[],r,i,n,a,o,l=e;for(r=0,i=l.length;r<i;r+=1){if(n=l[r],o=!1,oi.call(n)!=="[object Object]")return!1;for(a in n)if(ii.call(n,a))if(!o)o=!0;else return!1;if(!o)return!1;if(t.indexOf(a)===-1)t.push(a);else return!1}return!0}function li(e){return e!==null?e:[]}var br=new z("tag:yaml.org,2002:omap",{kind:"sequence",resolve:ai,construct:li}),si=Object.prototype.toString;function ci(e){if(e===null)return!0;var t,r,i,n,a,o=e;for(a=new Array(o.length),t=0,r=o.length;t<r;t+=1){if(i=o[t],si.call(i)!=="[object Object]"||(n=Object.keys(i),n.length!==1))return!1;a[t]=[n[0],i[n[0]]]}return!0}function ui(e){if(e===null)return[];var t,r,i,n,a,o=e;for(a=new Array(o.length),t=0,r=o.length;t<r;t+=1)i=o[t],n=Object.keys(i),a[t]=[n[0],i[n[0]]];return a}var vr=new z("tag:yaml.org,2002:pairs",{kind:"sequence",resolve:ci,construct:ui}),fi=Object.prototype.hasOwnProperty;function di(e){if(e===null)return!0;var t,r=e;for(t in r)if(fi.call(r,t)&&r[t]!==null)return!1;return!0}function mi(e){return e!==null?e:{}}var Sr=new z("tag:yaml.org,2002:set",{kind:"mapping",resolve:di,construct:mi}),Ft=pr.extend({implicit:[xr,yr],explicit:[wr,br,vr,Sr]}),Se=Object.prototype.hasOwnProperty,ct=1,Cr=2,Ar=3,ut=4,bt=1,pi=2,Vt=3,hi=/[\x00-\x08\x0B\x0C\x0E-\x1F\x7F-\x84\x86-\x9F\uFFFE\uFFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF]/,gi=/[\x85\u2028\u2029]/,xi=/[,\[\]\{\}]/,Tr=/^(?:!|!!|![a-z\-]+!)$/i,Mr=/^(?:!|[^,\[\]\{\}])(?:%[0-9a-f]{2}|[0-9a-z\-#;\/\?:@&=\+\$,_\.!~\*'\(\)\[\]])*$/i;function zt(e){return Object.prototype.toString.call(e)}function ce(e){return e===10||e===13}function ke(e){return e===9||e===32}function Q(e){return e===9||e===32||e===10||e===13}function Le(e){return e===44||e===91||e===93||e===123||e===125}function yi(e){var t;return 48<=e&&e<=57?e-48:(t=e|32,97<=t&&t<=102?t-97+10:-1)}function wi(e){return e===120?2:e===117?4:e===85?8:0}function bi(e){return 48<=e&&e<=57?e-48:-1}function Ut(e){return e===48?"\0":e===97?"\x07":e===98?"\b":e===116||e===9?" ":e===110?`
995
+ `:e===118?"\v":e===102?"\f":e===114?"\r":e===101?"\x1B":e===32?" ":e===34?'"':e===47?"/":e===92?"\\":e===78?"\x85":e===95?"\xA0":e===76?"\u2028":e===80?"\u2029":""}function vi(e){return e<=65535?String.fromCharCode(e):String.fromCharCode((e-65536>>10)+55296,(e-65536&1023)+56320)}function Fr(e,t,r){t==="__proto__"?Object.defineProperty(e,t,{configurable:!0,enumerable:!0,writable:!0,value:r}):e[t]=r}var kr=new Array(256),Er=new Array(256);for(Fe=0;Fe<256;Fe++)kr[Fe]=Ut(Fe)?1:0,Er[Fe]=Ut(Fe);var Fe;function Si(e,t){this.input=e,this.filename=t.filename||null,this.schema=t.schema||Ft,this.onWarning=t.onWarning||null,this.legacy=t.legacy||!1,this.json=t.json||!1,this.listener=t.listener||null,this.implicitTypes=this.schema.compiledImplicit,this.typeMap=this.schema.compiledTypeMap,this.length=e.length,this.position=0,this.line=0,this.lineStart=0,this.lineIndent=0,this.firstTabInLine=-1,this.documents=[]}function Pr(e,t){var r={name:e.filename,buffer:e.input.slice(0,-1),position:e.position,line:e.line,column:e.position-e.lineStart};return r.snippet=Mn(r),new J(t,r)}function y(e,t){throw Pr(e,t)}function ft(e,t){e.onWarning&&e.onWarning.call(null,Pr(e,t))}var Wt={YAML:function(t,r,i){var n,a,o;t.version!==null&&y(t,"duplication of %YAML directive"),i.length!==1&&y(t,"YAML directive accepts exactly one argument"),n=/^([0-9]+)\.([0-9]+)$/.exec(i[0]),n===null&&y(t,"ill-formed argument of the YAML directive"),a=parseInt(n[1],10),o=parseInt(n[2],10),a!==1&&y(t,"unacceptable YAML version of the document"),t.version=i[0],t.checkLineBreaks=o<2,o!==1&&o!==2&&ft(t,"unsupported YAML version of the document")},TAG:function(t,r,i){var n,a;i.length!==2&&y(t,"TAG directive accepts exactly two arguments"),n=i[0],a=i[1],Tr.test(n)||y(t,"ill-formed tag handle (first argument) of the TAG directive"),Se.call(t.tagMap,n)&&y(t,'there is a previously declared suffix for "'+n+'" tag handle'),Mr.test(a)||y(t,"ill-formed tag prefix (second argument) of the TAG directive");try{a=decodeURIComponent(a)}catch{y(t,"tag prefix is malformed: "+a)}t.tagMap[n]=a}};function ve(e,t,r,i){var n,a,o,l;if(t<r){if(l=e.input.slice(t,r),i)for(n=0,a=l.length;n<a;n+=1)o=l.charCodeAt(n),o===9||32<=o&&o<=1114111||y(e,"expected valid JSON character");else hi.test(l)&&y(e,"the stream contains non-printable characters");e.result+=l}}function Yt(e,t,r,i){var n,a,o,l;for(H.isObject(r)||y(e,"cannot merge mappings; the provided source object is unacceptable"),n=Object.keys(r),o=0,l=n.length;o<l;o+=1)a=n[o],Se.call(t,a)||(Fr(t,a,r[a]),i[a]=!0)}function Be(e,t,r,i,n,a,o,l,c){var d,s;if(Array.isArray(n))for(n=Array.prototype.slice.call(n),d=0,s=n.length;d<s;d+=1)Array.isArray(n[d])&&y(e,"nested arrays are not supported inside keys"),typeof n=="object"&&zt(n[d])==="[object Object]"&&(n[d]="[object Object]");if(typeof n=="object"&&zt(n)==="[object Object]"&&(n="[object Object]"),n=String(n),t===null&&(t={}),i==="tag:yaml.org,2002:merge")if(Array.isArray(a))for(d=0,s=a.length;d<s;d+=1)Yt(e,t,a[d],r);else Yt(e,t,a,r);else!e.json&&!Se.call(r,n)&&Se.call(t,n)&&(e.line=o||e.line,e.lineStart=l||e.lineStart,e.position=c||e.position,y(e,"duplicated mapping key")),Fr(t,n,a),delete r[n];return t}function kt(e){var t;t=e.input.charCodeAt(e.position),t===10?e.position++:t===13?(e.position++,e.input.charCodeAt(e.position)===10&&e.position++):y(e,"a line break is expected"),e.line+=1,e.lineStart=e.position,e.firstTabInLine=-1}function D(e,t,r){for(var i=0,n=e.input.charCodeAt(e.position);n!==0;){for(;ke(n);)n===9&&e.firstTabInLine===-1&&(e.firstTabInLine=e.position),n=e.input.charCodeAt(++e.position);if(t&&n===35)do n=e.input.charCodeAt(++e.position);while(n!==10&&n!==13&&n!==0);if(ce(n))for(kt(e),n=e.input.charCodeAt(e.position),i++,e.lineIndent=0;n===32;)e.lineIndent++,n=e.input.charCodeAt(++e.position);else break}return r!==-1&&i!==0&&e.lineIndent<r&&ft(e,"deficient indentation"),i}function pt(e){var t=e.position,r;return r=e.input.charCodeAt(t),!!((r===45||r===46)&&r===e.input.charCodeAt(t+1)&&r===e.input.charCodeAt(t+2)&&(t+=3,r=e.input.charCodeAt(t),r===0||Q(r)))}function Et(e,t){t===1?e.result+=" ":t>1&&(e.result+=H.repeat(`
996
+ `,t-1))}function Ci(e,t,r){var i,n,a,o,l,c,d,s,u=e.kind,f=e.result,m;if(m=e.input.charCodeAt(e.position),Q(m)||Le(m)||m===35||m===38||m===42||m===33||m===124||m===62||m===39||m===34||m===37||m===64||m===96||(m===63||m===45)&&(n=e.input.charCodeAt(e.position+1),Q(n)||r&&Le(n)))return!1;for(e.kind="scalar",e.result="",a=o=e.position,l=!1;m!==0;){if(m===58){if(n=e.input.charCodeAt(e.position+1),Q(n)||r&&Le(n))break}else if(m===35){if(i=e.input.charCodeAt(e.position-1),Q(i))break}else{if(e.position===e.lineStart&&pt(e)||r&&Le(m))break;if(ce(m))if(c=e.line,d=e.lineStart,s=e.lineIndent,D(e,!1,-1),e.lineIndent>=t){l=!0,m=e.input.charCodeAt(e.position);continue}else{e.position=o,e.line=c,e.lineStart=d,e.lineIndent=s;break}}l&&(ve(e,a,o,!1),Et(e,e.line-c),a=o=e.position,l=!1),ke(m)||(o=e.position+1),m=e.input.charCodeAt(++e.position)}return ve(e,a,o,!1),e.result?!0:(e.kind=u,e.result=f,!1)}function Ai(e,t){var r,i,n;if(r=e.input.charCodeAt(e.position),r!==39)return!1;for(e.kind="scalar",e.result="",e.position++,i=n=e.position;(r=e.input.charCodeAt(e.position))!==0;)if(r===39)if(ve(e,i,e.position,!0),r=e.input.charCodeAt(++e.position),r===39)i=e.position,e.position++,n=e.position;else return!0;else ce(r)?(ve(e,i,n,!0),Et(e,D(e,!1,t)),i=n=e.position):e.position===e.lineStart&&pt(e)?y(e,"unexpected end of the document within a single quoted scalar"):(e.position++,n=e.position);y(e,"unexpected end of the stream within a single quoted scalar")}function Ti(e,t){var r,i,n,a,o,l;if(l=e.input.charCodeAt(e.position),l!==34)return!1;for(e.kind="scalar",e.result="",e.position++,r=i=e.position;(l=e.input.charCodeAt(e.position))!==0;){if(l===34)return ve(e,r,e.position,!0),e.position++,!0;if(l===92){if(ve(e,r,e.position,!0),l=e.input.charCodeAt(++e.position),ce(l))D(e,!1,t);else if(l<256&&kr[l])e.result+=Er[l],e.position++;else if((o=wi(l))>0){for(n=o,a=0;n>0;n--)l=e.input.charCodeAt(++e.position),(o=yi(l))>=0?a=(a<<4)+o:y(e,"expected hexadecimal character");e.result+=vi(a),e.position++}else y(e,"unknown escape sequence");r=i=e.position}else ce(l)?(ve(e,r,i,!0),Et(e,D(e,!1,t)),r=i=e.position):e.position===e.lineStart&&pt(e)?y(e,"unexpected end of the document within a double quoted scalar"):(e.position++,i=e.position)}y(e,"unexpected end of the stream within a double quoted scalar")}function Mi(e,t){var r=!0,i,n,a,o=e.tag,l,c=e.anchor,d,s,u,f,m,p=Object.create(null),h,x,b,w;if(w=e.input.charCodeAt(e.position),w===91)s=93,m=!1,l=[];else if(w===123)s=125,m=!0,l={};else return!1;for(e.anchor!==null&&(e.anchorMap[e.anchor]=l),w=e.input.charCodeAt(++e.position);w!==0;){if(D(e,!0,t),w=e.input.charCodeAt(e.position),w===s)return e.position++,e.tag=o,e.anchor=c,e.kind=m?"mapping":"sequence",e.result=l,!0;r?w===44&&y(e,"expected the node content, but found ','"):y(e,"missed comma between flow collection entries"),x=h=b=null,u=f=!1,w===63&&(d=e.input.charCodeAt(e.position+1),Q(d)&&(u=f=!0,e.position++,D(e,!0,t))),i=e.line,n=e.lineStart,a=e.position,je(e,t,ct,!1,!0),x=e.tag,h=e.result,D(e,!0,t),w=e.input.charCodeAt(e.position),(f||e.line===i)&&w===58&&(u=!0,w=e.input.charCodeAt(++e.position),D(e,!0,t),je(e,t,ct,!1,!0),b=e.result),m?Be(e,l,p,x,h,b,i,n,a):u?l.push(Be(e,null,p,x,h,b,i,n,a)):l.push(h),D(e,!0,t),w=e.input.charCodeAt(e.position),w===44?(r=!0,w=e.input.charCodeAt(++e.position)):r=!1}y(e,"unexpected end of the stream within a flow collection")}function Fi(e,t){var r,i,n=bt,a=!1,o=!1,l=t,c=0,d=!1,s,u;if(u=e.input.charCodeAt(e.position),u===124)i=!1;else if(u===62)i=!0;else return!1;for(e.kind="scalar",e.result="";u!==0;)if(u=e.input.charCodeAt(++e.position),u===43||u===45)bt===n?n=u===43?Vt:pi:y(e,"repeat of a chomping mode identifier");else if((s=bi(u))>=0)s===0?y(e,"bad explicit indentation width of a block scalar; it cannot be less than one"):o?y(e,"repeat of an indentation width identifier"):(l=t+s-1,o=!0);else break;if(ke(u)){do u=e.input.charCodeAt(++e.position);while(ke(u));if(u===35)do u=e.input.charCodeAt(++e.position);while(!ce(u)&&u!==0)}for(;u!==0;){for(kt(e),e.lineIndent=0,u=e.input.charCodeAt(e.position);(!o||e.lineIndent<l)&&u===32;)e.lineIndent++,u=e.input.charCodeAt(++e.position);if(!o&&e.lineIndent>l&&(l=e.lineIndent),ce(u)){c++;continue}if(e.lineIndent<l){n===Vt?e.result+=H.repeat(`
997
+ `,a?1+c:c):n===bt&&a&&(e.result+=`
998
+ `);break}for(i?ke(u)?(d=!0,e.result+=H.repeat(`
999
+ `,a?1+c:c)):d?(d=!1,e.result+=H.repeat(`
1000
+ `,c+1)):c===0?a&&(e.result+=" "):e.result+=H.repeat(`
1001
+ `,c):e.result+=H.repeat(`
1002
+ `,a?1+c:c),a=!0,o=!0,c=0,r=e.position;!ce(u)&&u!==0;)u=e.input.charCodeAt(++e.position);ve(e,r,e.position,!1)}return!0}function qt(e,t){var r,i=e.tag,n=e.anchor,a=[],o,l=!1,c;if(e.firstTabInLine!==-1)return!1;for(e.anchor!==null&&(e.anchorMap[e.anchor]=a),c=e.input.charCodeAt(e.position);c!==0&&(e.firstTabInLine!==-1&&(e.position=e.firstTabInLine,y(e,"tab characters must not be used in indentation")),!(c!==45||(o=e.input.charCodeAt(e.position+1),!Q(o))));){if(l=!0,e.position++,D(e,!0,-1)&&e.lineIndent<=t){a.push(null),c=e.input.charCodeAt(e.position);continue}if(r=e.line,je(e,t,Ar,!1,!0),a.push(e.result),D(e,!0,-1),c=e.input.charCodeAt(e.position),(e.line===r||e.lineIndent>t)&&c!==0)y(e,"bad indentation of a sequence entry");else if(e.lineIndent<t)break}return l?(e.tag=i,e.anchor=n,e.kind="sequence",e.result=a,!0):!1}function ki(e,t,r){var i,n,a,o,l,c,d=e.tag,s=e.anchor,u={},f=Object.create(null),m=null,p=null,h=null,x=!1,b=!1,w;if(e.firstTabInLine!==-1)return!1;for(e.anchor!==null&&(e.anchorMap[e.anchor]=u),w=e.input.charCodeAt(e.position);w!==0;){if(!x&&e.firstTabInLine!==-1&&(e.position=e.firstTabInLine,y(e,"tab characters must not be used in indentation")),i=e.input.charCodeAt(e.position+1),a=e.line,(w===63||w===58)&&Q(i))w===63?(x&&(Be(e,u,f,m,p,null,o,l,c),m=p=h=null),b=!0,x=!0,n=!0):x?(x=!1,n=!0):y(e,"incomplete explicit mapping pair; a key node is missed; or followed by a non-tabulated empty line"),e.position+=1,w=i;else{if(o=e.line,l=e.lineStart,c=e.position,!je(e,r,Cr,!1,!0))break;if(e.line===a){for(w=e.input.charCodeAt(e.position);ke(w);)w=e.input.charCodeAt(++e.position);if(w===58)w=e.input.charCodeAt(++e.position),Q(w)||y(e,"a whitespace character is expected after the key-value separator within a block mapping"),x&&(Be(e,u,f,m,p,null,o,l,c),m=p=h=null),b=!0,x=!1,n=!1,m=e.tag,p=e.result;else if(b)y(e,"can not read an implicit mapping pair; a colon is missed");else return e.tag=d,e.anchor=s,!0}else if(b)y(e,"can not read a block mapping entry; a multiline key may not be an implicit key");else return e.tag=d,e.anchor=s,!0}if((e.line===a||e.lineIndent>t)&&(x&&(o=e.line,l=e.lineStart,c=e.position),je(e,t,ut,!0,n)&&(x?p=e.result:h=e.result),x||(Be(e,u,f,m,p,h,o,l,c),m=p=h=null),D(e,!0,-1),w=e.input.charCodeAt(e.position)),(e.line===a||e.lineIndent>t)&&w!==0)y(e,"bad indentation of a mapping entry");else if(e.lineIndent<t)break}return x&&Be(e,u,f,m,p,null,o,l,c),b&&(e.tag=d,e.anchor=s,e.kind="mapping",e.result=u),b}function Ei(e){var t,r=!1,i=!1,n,a,o;if(o=e.input.charCodeAt(e.position),o!==33)return!1;if(e.tag!==null&&y(e,"duplication of a tag property"),o=e.input.charCodeAt(++e.position),o===60?(r=!0,o=e.input.charCodeAt(++e.position)):o===33?(i=!0,n="!!",o=e.input.charCodeAt(++e.position)):n="!",t=e.position,r){do o=e.input.charCodeAt(++e.position);while(o!==0&&o!==62);e.position<e.length?(a=e.input.slice(t,e.position),o=e.input.charCodeAt(++e.position)):y(e,"unexpected end of the stream within a verbatim tag")}else{for(;o!==0&&!Q(o);)o===33&&(i?y(e,"tag suffix cannot contain exclamation marks"):(n=e.input.slice(t-1,e.position+1),Tr.test(n)||y(e,"named tag handle cannot contain such characters"),i=!0,t=e.position+1)),o=e.input.charCodeAt(++e.position);a=e.input.slice(t,e.position),xi.test(a)&&y(e,"tag suffix cannot contain flow indicator characters")}a&&!Mr.test(a)&&y(e,"tag name cannot contain such characters: "+a);try{a=decodeURIComponent(a)}catch{y(e,"tag name is malformed: "+a)}return r?e.tag=a:Se.call(e.tagMap,n)?e.tag=e.tagMap[n]+a:n==="!"?e.tag="!"+a:n==="!!"?e.tag="tag:yaml.org,2002:"+a:y(e,'undeclared tag handle "'+n+'"'),!0}function Pi(e){var t,r;if(r=e.input.charCodeAt(e.position),r!==38)return!1;for(e.anchor!==null&&y(e,"duplication of an anchor property"),r=e.input.charCodeAt(++e.position),t=e.position;r!==0&&!Q(r)&&!Le(r);)r=e.input.charCodeAt(++e.position);return e.position===t&&y(e,"name of an anchor node must contain at least one character"),e.anchor=e.input.slice(t,e.position),!0}function _i(e){var t,r,i;if(i=e.input.charCodeAt(e.position),i!==42)return!1;for(i=e.input.charCodeAt(++e.position),t=e.position;i!==0&&!Q(i)&&!Le(i);)i=e.input.charCodeAt(++e.position);return e.position===t&&y(e,"name of an alias node must contain at least one character"),r=e.input.slice(t,e.position),Se.call(e.anchorMap,r)||y(e,'unidentified alias "'+r+'"'),e.result=e.anchorMap[r],D(e,!0,-1),!0}function je(e,t,r,i,n){var a,o,l,c=1,d=!1,s=!1,u,f,m,p,h,x;if(e.listener!==null&&e.listener("open",e),e.tag=null,e.anchor=null,e.kind=null,e.result=null,a=o=l=ut===r||Ar===r,i&&D(e,!0,-1)&&(d=!0,e.lineIndent>t?c=1:e.lineIndent===t?c=0:e.lineIndent<t&&(c=-1)),c===1)for(;Ei(e)||Pi(e);)D(e,!0,-1)?(d=!0,l=a,e.lineIndent>t?c=1:e.lineIndent===t?c=0:e.lineIndent<t&&(c=-1)):l=!1;if(l&&(l=d||n),(c===1||ut===r)&&(ct===r||Cr===r?h=t:h=t+1,x=e.position-e.lineStart,c===1?l&&(qt(e,x)||ki(e,x,h))||Mi(e,h)?s=!0:(o&&Fi(e,h)||Ai(e,h)||Ti(e,h)?s=!0:_i(e)?(s=!0,(e.tag!==null||e.anchor!==null)&&y(e,"alias node should not have any properties")):Ci(e,h,ct===r)&&(s=!0,e.tag===null&&(e.tag="?")),e.anchor!==null&&(e.anchorMap[e.anchor]=e.result)):c===0&&(s=l&&qt(e,x))),e.tag===null)e.anchor!==null&&(e.anchorMap[e.anchor]=e.result);else if(e.tag==="?"){for(e.result!==null&&e.kind!=="scalar"&&y(e,'unacceptable node kind for !<?> tag; it should be "scalar", not "'+e.kind+'"'),u=0,f=e.implicitTypes.length;u<f;u+=1)if(p=e.implicitTypes[u],p.resolve(e.result)){e.result=p.construct(e.result),e.tag=p.tag,e.anchor!==null&&(e.anchorMap[e.anchor]=e.result);break}}else if(e.tag!=="!"){if(Se.call(e.typeMap[e.kind||"fallback"],e.tag))p=e.typeMap[e.kind||"fallback"][e.tag];else for(p=null,m=e.typeMap.multi[e.kind||"fallback"],u=0,f=m.length;u<f;u+=1)if(e.tag.slice(0,m[u].tag.length)===m[u].tag){p=m[u];break}p||y(e,"unknown tag !<"+e.tag+">"),e.result!==null&&p.kind!==e.kind&&y(e,"unacceptable node kind for !<"+e.tag+'> tag; it should be "'+p.kind+'", not "'+e.kind+'"'),p.resolve(e.result,e.tag)?(e.result=p.construct(e.result,e.tag),e.anchor!==null&&(e.anchorMap[e.anchor]=e.result)):y(e,"cannot resolve a node with !<"+e.tag+"> explicit tag")}return e.listener!==null&&e.listener("close",e),e.tag!==null||e.anchor!==null||s}function Oi(e){var t=e.position,r,i,n,a=!1,o;for(e.version=null,e.checkLineBreaks=e.legacy,e.tagMap=Object.create(null),e.anchorMap=Object.create(null);(o=e.input.charCodeAt(e.position))!==0&&(D(e,!0,-1),o=e.input.charCodeAt(e.position),!(e.lineIndent>0||o!==37));){for(a=!0,o=e.input.charCodeAt(++e.position),r=e.position;o!==0&&!Q(o);)o=e.input.charCodeAt(++e.position);for(i=e.input.slice(r,e.position),n=[],i.length<1&&y(e,"directive name must not be less than one character in length");o!==0;){for(;ke(o);)o=e.input.charCodeAt(++e.position);if(o===35){do o=e.input.charCodeAt(++e.position);while(o!==0&&!ce(o));break}if(ce(o))break;for(r=e.position;o!==0&&!Q(o);)o=e.input.charCodeAt(++e.position);n.push(e.input.slice(r,e.position))}o!==0&&kt(e),Se.call(Wt,i)?Wt[i](e,i,n):ft(e,'unknown document directive "'+i+'"')}if(D(e,!0,-1),e.lineIndent===0&&e.input.charCodeAt(e.position)===45&&e.input.charCodeAt(e.position+1)===45&&e.input.charCodeAt(e.position+2)===45?(e.position+=3,D(e,!0,-1)):a&&y(e,"directives end mark is expected"),je(e,e.lineIndent-1,ut,!1,!0),D(e,!0,-1),e.checkLineBreaks&&gi.test(e.input.slice(t,e.position))&&ft(e,"non-ASCII line breaks are interpreted as content"),e.documents.push(e.result),e.position===e.lineStart&&pt(e)){e.input.charCodeAt(e.position)===46&&(e.position+=3,D(e,!0,-1));return}if(e.position<e.length-1)y(e,"end of the stream or a document separator is expected");else return}function _r(e,t){e=String(e),t=t||{},e.length!==0&&(e.charCodeAt(e.length-1)!==10&&e.charCodeAt(e.length-1)!==13&&(e+=`
1003
+ `),e.charCodeAt(0)===65279&&(e=e.slice(1)));var r=new Si(e,t),i=e.indexOf("\0");for(i!==-1&&(r.position=i,y(r,"null byte is not allowed in input")),r.input+="\0";r.input.charCodeAt(r.position)===32;)r.lineIndent+=1,r.position+=1;for(;r.position<r.length-1;)Oi(r);return r.documents}function Li(e,t,r){t!==null&&typeof t=="object"&&typeof r>"u"&&(r=t,t=null);var i=_r(e,r);if(typeof t!="function")return i;for(var n=0,a=i.length;n<a;n+=1)t(i[n])}function Bi(e,t){var r=_r(e,t);if(r.length!==0){if(r.length===1)return r[0];throw new J("expected a single document in the stream, but found more")}}var ji=Li,Ii=Bi,Or={loadAll:ji,load:Ii},Lr=Object.prototype.toString,Br=Object.prototype.hasOwnProperty,Pt=65279,Di=9,Ge=10,Ri=13,Ni=32,Hi=33,$i=34,St=35,Vi=37,zi=38,Ui=39,Wi=42,jr=44,Yi=45,dt=58,qi=61,Gi=62,Ki=63,Xi=64,Ir=91,Dr=93,Ji=96,Rr=123,Qi=124,Nr=125,W={};W[0]="\\0";W[7]="\\a";W[8]="\\b";W[9]="\\t";W[10]="\\n";W[11]="\\v";W[12]="\\f";W[13]="\\r";W[27]="\\e";W[34]='\\"';W[92]="\\\\";W[133]="\\N";W[160]="\\_";W[8232]="\\L";W[8233]="\\P";var Zi=["y","Y","yes","Yes","YES","on","On","ON","n","N","no","No","NO","off","Off","OFF"],eo=/^[-+]?[0-9_]+(?::[0-9_]+)+(?:\.[0-9_]*)?$/;function to(e,t){var r,i,n,a,o,l,c;if(t===null)return{};for(r={},i=Object.keys(t),n=0,a=i.length;n<a;n+=1)o=i[n],l=String(t[o]),o.slice(0,2)==="!!"&&(o="tag:yaml.org,2002:"+o.slice(2)),c=e.compiledTypeMap.fallback[o],c&&Br.call(c.styleAliases,l)&&(l=c.styleAliases[l]),r[o]=l;return r}function ro(e){var t,r,i;if(t=e.toString(16).toUpperCase(),e<=255)r="x",i=2;else if(e<=65535)r="u",i=4;else if(e<=4294967295)r="U",i=8;else throw new J("code point within a string may not be greater than 0xFFFFFFFF");return"\\"+r+H.repeat("0",i-t.length)+t}var no=1,Ke=2;function io(e){this.schema=e.schema||Ft,this.indent=Math.max(1,e.indent||2),this.noArrayIndent=e.noArrayIndent||!1,this.skipInvalid=e.skipInvalid||!1,this.flowLevel=H.isNothing(e.flowLevel)?-1:e.flowLevel,this.styleMap=to(this.schema,e.styles||null),this.sortKeys=e.sortKeys||!1,this.lineWidth=e.lineWidth||80,this.noRefs=e.noRefs||!1,this.noCompatMode=e.noCompatMode||!1,this.condenseFlow=e.condenseFlow||!1,this.quotingType=e.quotingType==='"'?Ke:no,this.forceQuotes=e.forceQuotes||!1,this.replacer=typeof e.replacer=="function"?e.replacer:null,this.implicitTypes=this.schema.compiledImplicit,this.explicitTypes=this.schema.compiledExplicit,this.tag=null,this.result="",this.duplicates=[],this.usedDuplicates=null}function Gt(e,t){for(var r=H.repeat(" ",t),i=0,n=-1,a="",o,l=e.length;i<l;)n=e.indexOf(`
1004
+ `,i),n===-1?(o=e.slice(i),i=l):(o=e.slice(i,n+1),i=n+1),o.length&&o!==`
1005
+ `&&(a+=r),a+=o;return a}function Ct(e,t){return`
1006
+ `+H.repeat(" ",e.indent*t)}function oo(e,t){var r,i,n;for(r=0,i=e.implicitTypes.length;r<i;r+=1)if(n=e.implicitTypes[r],n.resolve(t))return!0;return!1}function mt(e){return e===Ni||e===Di}function Xe(e){return 32<=e&&e<=126||161<=e&&e<=55295&&e!==8232&&e!==8233||57344<=e&&e<=65533&&e!==Pt||65536<=e&&e<=1114111}function Kt(e){return Xe(e)&&e!==Pt&&e!==Ri&&e!==Ge}function Xt(e,t,r){var i=Kt(e),n=i&&!mt(e);return(r?i:i&&e!==jr&&e!==Ir&&e!==Dr&&e!==Rr&&e!==Nr)&&e!==St&&!(t===dt&&!n)||Kt(t)&&!mt(t)&&e===St||t===dt&&n}function ao(e){return Xe(e)&&e!==Pt&&!mt(e)&&e!==Yi&&e!==Ki&&e!==dt&&e!==jr&&e!==Ir&&e!==Dr&&e!==Rr&&e!==Nr&&e!==St&&e!==zi&&e!==Wi&&e!==Hi&&e!==Qi&&e!==qi&&e!==Gi&&e!==Ui&&e!==$i&&e!==Vi&&e!==Xi&&e!==Ji}function lo(e){return!mt(e)&&e!==dt}function Ye(e,t){var r=e.charCodeAt(t),i;return r>=55296&&r<=56319&&t+1<e.length&&(i=e.charCodeAt(t+1),i>=56320&&i<=57343)?(r-55296)*1024+i-56320+65536:r}function Hr(e){var t=/^\n* /;return t.test(e)}var $r=1,At=2,Vr=3,zr=4,Oe=5;function so(e,t,r,i,n,a,o,l){var c,d=0,s=null,u=!1,f=!1,m=i!==-1,p=-1,h=ao(Ye(e,0))&&lo(Ye(e,e.length-1));if(t||o)for(c=0;c<e.length;d>=65536?c+=2:c++){if(d=Ye(e,c),!Xe(d))return Oe;h=h&&Xt(d,s,l),s=d}else{for(c=0;c<e.length;d>=65536?c+=2:c++){if(d=Ye(e,c),d===Ge)u=!0,m&&(f=f||c-p-1>i&&e[p+1]!==" ",p=c);else if(!Xe(d))return Oe;h=h&&Xt(d,s,l),s=d}f=f||m&&c-p-1>i&&e[p+1]!==" "}return!u&&!f?h&&!o&&!n(e)?$r:a===Ke?Oe:At:r>9&&Hr(e)?Oe:o?a===Ke?Oe:At:f?zr:Vr}function co(e,t,r,i,n){e.dump=(function(){if(t.length===0)return e.quotingType===Ke?'""':"''";if(!e.noCompatMode&&(Zi.indexOf(t)!==-1||eo.test(t)))return e.quotingType===Ke?'"'+t+'"':"'"+t+"'";var a=e.indent*Math.max(1,r),o=e.lineWidth===-1?-1:Math.max(Math.min(e.lineWidth,40),e.lineWidth-a),l=i||e.flowLevel>-1&&r>=e.flowLevel;function c(d){return oo(e,d)}switch(so(t,l,e.indent,o,c,e.quotingType,e.forceQuotes&&!i,n)){case $r:return t;case At:return"'"+t.replace(/'/g,"''")+"'";case Vr:return"|"+Jt(t,e.indent)+Qt(Gt(t,a));case zr:return">"+Jt(t,e.indent)+Qt(Gt(uo(t,o),a));case Oe:return'"'+fo(t)+'"';default:throw new J("impossible error: invalid scalar style")}})()}function Jt(e,t){var r=Hr(e)?String(t):"",i=e[e.length-1]===`
1007
+ `,n=i&&(e[e.length-2]===`
1008
+ `||e===`
1009
+ `),a=n?"+":i?"":"-";return r+a+`
1010
+ `}function Qt(e){return e[e.length-1]===`
1011
+ `?e.slice(0,-1):e}function uo(e,t){for(var r=/(\n+)([^\n]*)/g,i=(function(){var d=e.indexOf(`
1012
+ `);return d=d!==-1?d:e.length,r.lastIndex=d,Zt(e.slice(0,d),t)})(),n=e[0]===`
1013
+ `||e[0]===" ",a,o;o=r.exec(e);){var l=o[1],c=o[2];a=c[0]===" ",i+=l+(!n&&!a&&c!==""?`
1014
+ `:"")+Zt(c,t),n=a}return i}function Zt(e,t){if(e===""||e[0]===" ")return e;for(var r=/ [^ ]/g,i,n=0,a,o=0,l=0,c="";i=r.exec(e);)l=i.index,l-n>t&&(a=o>n?o:l,c+=`
1015
+ `+e.slice(n,a),n=a+1),o=l;return c+=`
1016
+ `,e.length-n>t&&o>n?c+=e.slice(n,o)+`
1017
+ `+e.slice(o+1):c+=e.slice(n),c.slice(1)}function fo(e){for(var t="",r=0,i,n=0;n<e.length;r>=65536?n+=2:n++)r=Ye(e,n),i=W[r],!i&&Xe(r)?(t+=e[n],r>=65536&&(t+=e[n+1])):t+=i||ro(r);return t}function mo(e,t,r){var i="",n=e.tag,a,o,l;for(a=0,o=r.length;a<o;a+=1)l=r[a],e.replacer&&(l=e.replacer.call(r,String(a),l)),(ge(e,t,l,!1,!1)||typeof l>"u"&&ge(e,t,null,!1,!1))&&(i!==""&&(i+=","+(e.condenseFlow?"":" ")),i+=e.dump);e.tag=n,e.dump="["+i+"]"}function er(e,t,r,i){var n="",a=e.tag,o,l,c;for(o=0,l=r.length;o<l;o+=1)c=r[o],e.replacer&&(c=e.replacer.call(r,String(o),c)),(ge(e,t+1,c,!0,!0,!1,!0)||typeof c>"u"&&ge(e,t+1,null,!0,!0,!1,!0))&&((!i||n!=="")&&(n+=Ct(e,t)),e.dump&&Ge===e.dump.charCodeAt(0)?n+="-":n+="- ",n+=e.dump);e.tag=a,e.dump=n||"[]"}function po(e,t,r){var i="",n=e.tag,a=Object.keys(r),o,l,c,d,s;for(o=0,l=a.length;o<l;o+=1)s="",i!==""&&(s+=", "),e.condenseFlow&&(s+='"'),c=a[o],d=r[c],e.replacer&&(d=e.replacer.call(r,c,d)),ge(e,t,c,!1,!1)&&(e.dump.length>1024&&(s+="? "),s+=e.dump+(e.condenseFlow?'"':"")+":"+(e.condenseFlow?"":" "),ge(e,t,d,!1,!1)&&(s+=e.dump,i+=s));e.tag=n,e.dump="{"+i+"}"}function ho(e,t,r,i){var n="",a=e.tag,o=Object.keys(r),l,c,d,s,u,f;if(e.sortKeys===!0)o.sort();else if(typeof e.sortKeys=="function")o.sort(e.sortKeys);else if(e.sortKeys)throw new J("sortKeys must be a boolean or a function");for(l=0,c=o.length;l<c;l+=1)f="",(!i||n!=="")&&(f+=Ct(e,t)),d=o[l],s=r[d],e.replacer&&(s=e.replacer.call(r,d,s)),ge(e,t+1,d,!0,!0,!0)&&(u=e.tag!==null&&e.tag!=="?"||e.dump&&e.dump.length>1024,u&&(e.dump&&Ge===e.dump.charCodeAt(0)?f+="?":f+="? "),f+=e.dump,u&&(f+=Ct(e,t)),ge(e,t+1,s,!0,u)&&(e.dump&&Ge===e.dump.charCodeAt(0)?f+=":":f+=": ",f+=e.dump,n+=f));e.tag=a,e.dump=n||"{}"}function tr(e,t,r){var i,n,a,o,l,c;for(n=r?e.explicitTypes:e.implicitTypes,a=0,o=n.length;a<o;a+=1)if(l=n[a],(l.instanceOf||l.predicate)&&(!l.instanceOf||typeof t=="object"&&t instanceof l.instanceOf)&&(!l.predicate||l.predicate(t))){if(r?l.multi&&l.representName?e.tag=l.representName(t):e.tag=l.tag:e.tag="?",l.represent){if(c=e.styleMap[l.tag]||l.defaultStyle,Lr.call(l.represent)==="[object Function]")i=l.represent(t,c);else if(Br.call(l.represent,c))i=l.represent[c](t,c);else throw new J("!<"+l.tag+'> tag resolver accepts not "'+c+'" style');e.dump=i}return!0}return!1}function ge(e,t,r,i,n,a,o){e.tag=null,e.dump=r,tr(e,r,!1)||tr(e,r,!0);var l=Lr.call(e.dump),c=i,d;i&&(i=e.flowLevel<0||e.flowLevel>t);var s=l==="[object Object]"||l==="[object Array]",u,f;if(s&&(u=e.duplicates.indexOf(r),f=u!==-1),(e.tag!==null&&e.tag!=="?"||f||e.indent!==2&&t>0)&&(n=!1),f&&e.usedDuplicates[u])e.dump="*ref_"+u;else{if(s&&f&&!e.usedDuplicates[u]&&(e.usedDuplicates[u]=!0),l==="[object Object]")i&&Object.keys(e.dump).length!==0?(ho(e,t,e.dump,n),f&&(e.dump="&ref_"+u+e.dump)):(po(e,t,e.dump),f&&(e.dump="&ref_"+u+" "+e.dump));else if(l==="[object Array]")i&&e.dump.length!==0?(e.noArrayIndent&&!o&&t>0?er(e,t-1,e.dump,n):er(e,t,e.dump,n),f&&(e.dump="&ref_"+u+e.dump)):(mo(e,t,e.dump),f&&(e.dump="&ref_"+u+" "+e.dump));else if(l==="[object String]")e.tag!=="?"&&co(e,e.dump,t,a,c);else{if(l==="[object Undefined]")return!1;if(e.skipInvalid)return!1;throw new J("unacceptable kind of an object to dump "+l)}e.tag!==null&&e.tag!=="?"&&(d=encodeURI(e.tag[0]==="!"?e.tag.slice(1):e.tag).replace(/!/g,"%21"),e.tag[0]==="!"?d="!"+d:d.slice(0,18)==="tag:yaml.org,2002:"?d="!!"+d.slice(18):d="!<"+d+">",e.dump=d+" "+e.dump)}return!0}function go(e,t){var r=[],i=[],n,a;for(Tt(e,r,i),n=0,a=i.length;n<a;n+=1)t.duplicates.push(r[i[n]]);t.usedDuplicates=new Array(a)}function Tt(e,t,r){var i,n,a;if(e!==null&&typeof e=="object")if(n=t.indexOf(e),n!==-1)r.indexOf(n)===-1&&r.push(n);else if(t.push(e),Array.isArray(e))for(n=0,a=e.length;n<a;n+=1)Tt(e[n],t,r);else for(i=Object.keys(e),n=0,a=i.length;n<a;n+=1)Tt(e[i[n]],t,r)}function xo(e,t){t=t||{};var r=new io(t);r.noRefs||go(e,r);var i=e;return r.replacer&&(i=r.replacer.call({"":i},"",i)),ge(r,0,i,!0,!0)?r.dump+`
1018
+ `:""}var yo=xo,wo={dump:yo};function _t(e,t){return function(){throw new Error("Function yaml."+e+" is removed in js-yaml 4. Use yaml."+t+" instead, which is now safe by default.")}}var bo=z,vo=ir,So=sr,Co=mr,Ao=pr,To=Ft,Mo=Or.load,Fo=Or.loadAll,ko=wo.dump,Eo=J,Po={binary:wr,float:dr,map:lr,null:cr,pairs:vr,set:Sr,timestamp:xr,bool:ur,int:fr,merge:yr,omap:br,seq:ar,str:or},_o=_t("safeLoad","load"),Oo=_t("safeLoadAll","loadAll"),Lo=_t("safeDump","dump"),Ur={Type:bo,Schema:vo,FAILSAFE_SCHEMA:So,JSON_SCHEMA:Co,CORE_SCHEMA:Ao,DEFAULT_SCHEMA:To,load:Mo,loadAll:Fo,dump:ko,YAMLException:Eo,types:Po,safeLoad:_o,safeLoadAll:Oo,safeDump:Lo};function Bo(e){let r=String(e).match(/^---\s*[\r\n]([\s\S]*?)[\r\n](?:---|\.\.\.)\s*(?:[\r\n]([\s\S]*))?$/);if(!r)return{content:e,data:{},hasFrontMatter:!1};try{let i=Ur.load(r[1]),n=r[2]||"",a=Object.keys(i).length>0;return{content:n,data:i,hasFrontMatter:a}}catch{return{content:e,data:{},hasFrontMatter:!1}}}function jo(e){let t={};if(typeof e.theme=="string"&&(t.theme=e.theme),typeof e.hrAsPageBreak=="boolean"&&(t.hrAsPageBreak=e.hrAsPageBreak),typeof e.format=="string"){let r=e.format.toLowerCase();(r==="pdf"||r==="docx"||r==="html"||r==="png"||r==="jpg"||r==="jpeg"||r==="webp")&&(t.format=r)}if(e.image&&typeof e.image=="object"){let r=e.image,i={};if(typeof r.type=="string"){let n=r.type.toLowerCase();(n==="png"||n==="jpeg"||n==="webp")&&(i.type=n),n==="jpg"&&(i.type="jpeg")}if(typeof r.quality=="number"&&Number.isFinite(r.quality)&&(i.quality=r.quality),typeof r.maxPixelWidth=="number"&&Number.isFinite(r.maxPixelWidth)&&(i.maxPixelWidth=r.maxPixelWidth),typeof r.split=="boolean"?i.split=r.split:typeof r.split=="string"&&r.split.toLowerCase()==="auto"&&(i.split="auto"),typeof r.splitMaxPixelHeight=="number"&&Number.isFinite(r.splitMaxPixelHeight)&&(i.splitMaxPixelHeight=r.splitMaxPixelHeight),typeof r.splitOverlapPx=="number"&&Number.isFinite(r.splitOverlapPx)&&(i.splitOverlapPx=r.splitOverlapPx),typeof r.fullPage=="boolean"&&(i.fullPage=r.fullPage),typeof r.selector=="string"?i.selector=r.selector:Array.isArray(r.selector)&&(i.selector=r.selector.filter(n=>typeof n=="string")),typeof r.selectorMode=="string"){let n=r.selectorMode.toLowerCase();(n==="first"||n==="each"||n==="union"||n==="stitch")&&(i.selectorMode=n)}if(typeof r.selectorPadding=="number"&&Number.isFinite(r.selectorPadding)&&(i.selectorPadding=r.selectorPadding),typeof r.selectorGap=="number"&&Number.isFinite(r.selectorGap)&&(i.selectorGap=r.selectorGap),typeof r.scrollToLoad=="boolean"&&(i.scrollToLoad=r.scrollToLoad),r.scroll&&typeof r.scroll=="object"){let n=r.scroll,a={};typeof n.stepPx=="number"&&Number.isFinite(n.stepPx)&&(a.stepPx=n.stepPx),typeof n.delayMs=="number"&&Number.isFinite(n.delayMs)&&(a.delayMs=n.delayMs),typeof n.maxSteps=="number"&&Number.isFinite(n.maxSteps)&&(a.maxSteps=n.maxSteps),typeof n.maxTimeMs=="number"&&Number.isFinite(n.maxTimeMs)&&(a.maxTimeMs=n.maxTimeMs),Object.keys(a).length>0&&(i.scroll=a)}if(typeof r.omitBackground=="boolean"&&(i.omitBackground=r.omitBackground),typeof r.fromSurface=="boolean"&&(i.fromSurface=r.fromSurface),typeof r.captureBeyondViewport=="boolean"&&(i.captureBeyondViewport=r.captureBeyondViewport),r.viewport&&typeof r.viewport=="object"){let n=r.viewport,a={};typeof n.width=="number"&&Number.isFinite(n.width)&&(a.width=n.width),typeof n.height=="number"&&Number.isFinite(n.height)&&(a.height=n.height),typeof n.deviceScaleFactor=="number"&&Number.isFinite(n.deviceScaleFactor)&&(a.deviceScaleFactor=n.deviceScaleFactor),Object.keys(a).length>0&&(i.viewport=a)}Object.keys(i).length>0&&(t.image=i)}if(typeof e.title=="string"&&(t.title=e.title),typeof e.standalone=="boolean"&&(t.standalone=e.standalone),typeof e.baseTag=="boolean"&&(t.baseTag=e.baseTag),typeof e.diagramMode=="string"){let r=e.diagramMode.toLowerCase();(r==="img"||r==="live"||r==="none")&&(t.diagramMode=r)}return e.cdn&&typeof e.cdn=="object"&&(t.cdn=e.cdn),typeof e.templatesDir=="string"?t.templatesDir=e.templatesDir:Array.isArray(e.templatesDir)&&(t.templatesDir=e.templatesDir.filter(r=>typeof r=="string")),e.pdf&&typeof e.pdf=="object"&&(t.pdf=e.pdf),t}function Wr(e){switch(e){case"pdf":return".pdf";case"docx":return".docx";case"html":return".html";case"png":return".png";case"webp":return".webp";case"jpeg":return".jpeg";case"jpg":return".jpg";default:return".pdf"}}async function Io(e,t={}){return new it().exportToBuffer(e,t)}async function Do(e,t={}){return new st().exportToBuffer(e,t)}async function ia(e,t={}){return new We().exportToString(e,t)}async function Ro(e,t={}){return new We().exportToBuffer(e,t)}async function oa(e,t={}){return new Ue().exportToBuffer(e,t)}async function No(e,t={}){return new Ue().exportToBuffers(e,t)}function Ho(e){let t=Y.extname(e).toLowerCase();return t===".pdf"?"pdf":t===".docx"?"docx":t===".html"||t===".htm"?"html":t===".png"?"png":t===".jpg"?"jpg":t===".jpeg"?"jpeg":t===".webp"?"webp":null}function Yr(e){return e==="png"||e==="jpg"||e==="jpeg"||e==="webp"}function $o(e){return e==="jpg"?"jpeg":e}async function Vo(e,t={}){let r=t.skipFrontMatter?{content:e,data:{},hasFrontMatter:!1}:Bo(e),i=r.hasFrontMatter?jo(r.data):{},n=t.format??i.format??"pdf",a=t.theme??i.theme??"default",o=n==="pdf"?"img":"live",l=t.diagramMode??i.diagramMode??o,c=t.hrAsPageBreak??i.hrAsPageBreak??!(n==="html"||Yr(n)),d=t.basePath??process.cwd(),s=r.content,u,f;if(n==="pdf")u=await Do(s,{theme:a,basePath:d,hrAsPageBreak:c,diagramMode:l,cdn:t.cdn??i.cdn,pdf:{...t.pdf,...i.pdf,title:t.title??i.title??"Document"},templatesDir:t.templatesDir??i.templatesDir});else if(n==="docx")u=await Io(s,{theme:a,basePath:d,hrAsPageBreak:c,templatesDir:t.templatesDir??i.templatesDir});else if(n==="html")u=await Ro(s,{theme:a,basePath:d,diagramMode:l,hrAsPageBreak:c,title:t.title??i.title??"Document",standalone:t.standalone??i.standalone,baseTag:t.baseTag??i.baseTag,cdn:t.cdn??i.cdn,templatesDir:t.templatesDir??i.templatesDir});else{let m=t.image??i.image,p=m?.type?m:{...m??{},type:$o(n)};if(f=await No(s,{theme:a,basePath:d,hrAsPageBreak:c,image:p,diagramMode:l,cdn:t.cdn??i.cdn,templatesDir:t.templatesDir??i.templatesDir}),!f.length)throw new Error("Image conversion produced no output");u=f[0]}return{buffer:u,format:n,buffers:f&&f.length>1?f:void 0}}async function aa(e,t,r={}){let i=Y.resolve(e);if(!ue.existsSync(i))throw new Error(`Input file not found: ${i}`);let n=ue.readFileSync(i,"utf-8"),a=r.format;!a&&t&&(a=Ho(t)??void 0);let o=Y.basename(i,Y.extname(i)),l=await Vo(n,{...r,format:a,basePath:r.basePath??Y.dirname(i),title:r.title??o}),c;if(t)c=Y.resolve(t);else{let s=Y.dirname(i),u=Y.basename(i,Y.extname(i)),f=Wr(l.format);c=Y.join(s,`${u}${f}`)}let d=Y.dirname(c);if(ue.existsSync(d)||ue.mkdirSync(d,{recursive:!0}),Yr(l.format)&&l.buffers&&l.buffers.length>1){let s=l.buffers,u=Wr(l.format),f=c.endsWith(u)?c.slice(0,-u.length):c,m=[];for(let p=0;p<s.length;p++){let h=String(p+1).padStart(3,"0"),x=`${f}.part-${h}${u}`;ue.writeFileSync(x,s[p]),m.push(x)}return{buffer:s[0],buffers:s,outputPath:m[0],outputPaths:m,format:l.format}}return ue.writeFileSync(c,l.buffer),{buffer:l.buffer,outputPath:c,format:l.format}}export{it as a,st as b,Ue as c,We as d,Bo as e,jo as f,Wr as g,Io as h,Do as i,ia as j,Ro as k,oa as l,No as m,Vo as n,aa as o};
1019
+ /*! Bundled license information:
1020
+
1021
+ js-yaml/dist/js-yaml.mjs:
1022
+ (*! js-yaml 4.1.1 https://github.com/nodeca/js-yaml @license MIT *)
1023
+ */