docfuse 0.1.1 → 0.1.2
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.
- package/dist/build-JLZA6YQL.js +2 -0
- package/dist/{check-3M5AMXFL.js → check-CHKAU5KY.js} +2 -2
- package/dist/{chunk-2AE3ZZMC.js → chunk-MBDBYNPA.js} +2 -2
- package/dist/chunk-U2UVR2RH.js +2 -0
- package/dist/{chunk-BH2JJ2IK.js → chunk-VNKWPOVJ.js} +2 -2
- package/dist/{chunk-DOOG32NU.js → chunk-WLB5K7IS.js} +2 -2
- package/dist/{chunk-L7LBGDJ4.js → chunk-ZJMAZ2NN.js} +2 -2
- package/dist/{clean-DQSSR6KV.js → clean-UX77CVWS.js} +2 -2
- package/dist/cli.js +1 -1
- package/dist/{deploy-UPDSE6GI.js → deploy-6ZHXSNYI.js} +2 -2
- package/dist/{dev-3IGK7DO2.js → dev-5F4CENXE.js} +2 -2
- package/dist/index.js +1 -1
- package/dist/{init-VP6PXRGZ.js → init-FKCULN6Y.js} +3 -3
- package/dist/{load-WVXTLQUE.js → load-ZP2SORMU.js} +2 -2
- package/dist/{preview-FI2XY4WS.js → preview-GB2IAUZO.js} +2 -2
- package/package.json +10 -10
- package/dist/build-WF7ZYYJD.js +0 -2
- package/dist/chunk-ZDXO2HQK.js +0 -2
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{a,b}from"./chunk-ZJMAZ2NN.js";import"./chunk-MBDBYNPA.js";import"./chunk-GNYJERGG.js";import"./chunk-XYJ2OBL3.js";import"./chunk-VNKWPOVJ.js";import"./chunk-WLB5K7IS.js";import"./chunk-5NTRNUFG.js";import"./chunk-U2UVR2RH.js";import"./chunk-EAYVCA3Z.js";import"./chunk-JK7ZNBUA.js";import"./chunk-AYDF3IFZ.js";export{b as runBuild,a as versionSatisfies};
|
|
2
|
+
//# sourceMappingURL=build-JLZA6YQL.js.map
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import{e as I,j as b,k as M}from"./chunk-
|
|
1
|
+
import{e as I,j as b,k as M}from"./chunk-MBDBYNPA.js";import"./chunk-GNYJERGG.js";import"./chunk-XYJ2OBL3.js";import{a as C,b as S,j as P}from"./chunk-WLB5K7IS.js";import"./chunk-U2UVR2RH.js";import"./chunk-EAYVCA3Z.js";import{d as $}from"./chunk-JK7ZNBUA.js";import{a}from"./chunk-AYDF3IFZ.js";import{mkdtemp as W,readdir as V,rm as N}from"fs/promises";import{tmpdir as Q}from"os";import{join as O,relative as K}from"path";import{posix as y}from"path";import{analyzeMarkdown as w}from"@docfuse/markdown/server/analyze";function E(e){return Array.from({length:w(e).missingCodeBlockLanguages},()=>({severity:"warning",message:"Code block is missing a language"}))}a(E,"checkCodeBlockLanguages");function H(e,n=0,o=[]){return w(e,{plugins:o}).directiveIssues.map(r=>({severity:"error",message:`${r.message}${r.line===void 0?"":` (line ${r.line+n}${r.column===void 0?"":`, column ${r.column}`})`}`}))}a(H,"checkRichDirectiveSyntax");function R(e){return typeof e.description=="string"&&e.description.trim()?[]:[{severity:"warning",message:"Frontmatter description is missing"}]}a(R,"checkFrontmatterDescription");function B(e,n){return typeof e.title=="string"&&e.title.trim()?[]:[{severity:"warning",page:n.relativePath,message:"Frontmatter title is missing"}]}a(B,"checkFrontmatterTitle");function L(e){return/^(?:[a-z][a-z\d+.-]*:|\/\/)/i.test(e)}a(L,"isExternalTarget");function D(e){let n=e.indexOf("#"),o=n===-1?e:e.slice(0,n),r=n===-1?"":e.slice(n+1);return{path:o.split("?")[0]??"",fragment:r}}a(D,"splitTarget");function A(e){try{return decodeURIComponent(e)}catch{return}}a(A,"decodeFragment");function F(e,n){let o=n.split("/").map(r=>{let i=decodeURIComponent(r);if(i.includes("/")||i.includes("\\"))throw new Error("Encoded path separator");return i}).join("/");return y.normalize(y.join(y.dirname(e),o.replace(/^\.\//,"")))}a(F,"resolveRelativeTarget");function j(e){try{return`public${e.split("/").map(o=>{let r=decodeURIComponent(o);if(r.includes("/")||r.includes("\\")||r==="..")throw new Error("Invalid public path");return r}).join("/")}`}catch{return}}a(j,"publicFileFor");function T(e){return e.replace(/\.(?:md|mdx)$/i,n=>n.toLocaleLowerCase("en-US"))}a(T,"markdownExtensionKey");function z(e,n,o="",r=new Set,i=new Set,u=new Map,m=new Map,f=new Set){let c=[],k=w(e),h=new Map([...n].filter(t=>/\.(?:md|mdx)$/i.test(t)).map(t=>[T(t),t]));for(let t of k.images){let s=D(t).path;if(!s||L(s))continue;if(s.startsWith("/")){n.has(j(s)??"")||c.push({severity:"error",message:`Image target does not exist: ${s}`});continue}let g;try{g=F(o,s)}catch{c.push({severity:"error",message:`Image target does not exist: ${s}`});continue}n.has(g)||c.push({severity:"error",message:`Image target does not exist: ${s}`})}for(let t of k.links){let{path:s,fragment:g}=D(t),p=A(g);if(L(s))continue;if(!s){g&&(!p||!i.has(p))&&c.push({severity:"error",message:`Heading target does not exist: #${g}`});continue}if(s.startsWith("/")){if(n.has(j(s)??""))continue;let d;try{d=S(s)}catch{c.push({severity:"error",message:`Link target does not exist: ${s}`});continue}if(f.has(d))continue;let x=d==="/"?"/":`${d.replace(/\/+$/,"")}/`;r.has(x)?g&&(!p||!u.get(x)?.has(p))&&c.push({severity:"error",message:`Heading target does not exist: ${t}`}):c.push({severity:"error",message:`Link target does not exist: ${s}`});continue}let l;try{l=F(o,s)}catch{c.push({severity:"error",message:`Link target does not exist: ${s}`});continue}let v=(/\.mdx?$/i.test(l)?[l]:[l,`${l}.md`,`${l}.mdx`,y.join(l,"index.md"),y.join(l,"index.mdx")]).map(d=>n.has(d)?d:h.get(T(d))).find(d=>!!d);v?g&&(!p||!m.get(v)?.has(p))&&c.push({severity:"error",message:`Heading target does not exist: ${t}`}):c.push({severity:"error",message:`Link target does not exist: ${s}`})}return c}a(z,"checkLinksAndImages");function U(e){let n=new Map;for(let o of e.headings){let r=o.text.normalize("NFKC").replace(/\s+/g," ").trim().toLocaleLowerCase(e.locale);r&&n.set(r,[...n.get(r)??[],o])}return[...n.values()].filter(o=>o.length>1).map(o=>{let r=o[0];return{severity:"warning",page:e.relativePath,message:`Repeated heading "${r.text}" uses numbered anchors (${o.map(i=>`#${i.slug}`).join(", ")})`}})}a(U,"checkDuplicateHeadings");function G(e){let n=new Map;for(let r of e.pages){let i=`${r.version}:${C(r.relativePath,r.locale)}`;n.set(i,(n.get(i)??new Set).add(r.locale))}let o=[];for(let[r,i]of n)for(let u of e.locales)if(!i.has(u)){let[m,...f]=r.split(":");o.push({severity:"warning",message:`Missing ${u} translation for ${f.join(":")} in version ${m}`})}return o}a(G,"checkMissingTranslations");async function q(e){let n=new Set;async function o(r){let i=await V(r,{withFileTypes:!0});for(let u of i){let m=O(r,u.name);if(u.isDirectory())await o(m);else{if(u.isSymbolicLink())throw new Error(`Documentation files must not use symbolic links: ${K(e,m)}`);n.add(K(e,m).replace(/\\/g,"/"))}}}return a(o,"walk"),await o(e),n}a(q,"collectFiles");function J(e){if(!e.body)return 0;let n=e.transformedSource.lastIndexOf(e.body);return n<0?0:e.transformedSource.slice(0,n).split(`
|
|
2
2
|
`).length-1}a(J,"bodyLineOffset");async function me({cwd:e}){let n=await P(e),o=await W(O(Q(),"docfuse-check-")),r=await M(e,o,n.extensions).finally(()=>N(o,{recursive:!0,force:!0})),i=await I(e,n,r),u=new Set([...b(n,i),...r.publicOutputPaths]),m=new Map(await Promise.all(n.versions.items.map(async t=>[t.id,await q($(e,t.docsDir,`versions.items[${t.id}].docsDir`))]))),f=new Set(i.pages.map(t=>t.routePath)),c=new Map(i.pages.map(t=>[t.routePath,new Set(t.headings.map(s=>s.slug))])),k=new Map(i.versions.map(t=>[t.id,new Map(i.pages.filter(s=>s.version===t.id).map(s=>[s.relativePath,new Set(s.headings.map(g=>g.slug))]))])),h=[...i.pages.flatMap(t=>[...E(t.body).map(s=>({...s,page:t.relativePath})),...H(t.body,J(t),n.markdown.plugins).map(s=>({...s,page:t.relativePath})),...B(t.frontmatter,t),...R(t.frontmatter).map(s=>({...s,page:t.relativePath})),...z(t.body,m.get(t.version)??new Set,t.relativePath,f,new Set(t.headings.map(s=>s.slug)),c,k.get(t.version),u).map(s=>({...s,page:t.sourceRelativePath})),...U(t)]),...G(i)];for(let t of h){let s=t.page?` ${t.page}`:"";console.log(`${t.severity.toUpperCase()}:${s} ${t.message}`)}return h.some(t=>t.severity==="error")&&(process.exitCode=1),h}a(me,"runCheck");export{me as runCheck};
|
|
3
|
-
//# sourceMappingURL=check-
|
|
3
|
+
//# sourceMappingURL=check-CHKAU5KY.js.map
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import{a as X,b as Y,d as Q,f as E}from"./chunk-GNYJERGG.js";import{a as C,b as W,d as K,e as q,f as B,g as k,h as O}from"./chunk-DOOG32NU.js";import{a as z}from"./chunk-ZDXO2HQK.js";import{a as V,b as U,c as I}from"./chunk-EAYVCA3Z.js";import{a as R,b as P,d as H,e as _,f as J,h as v}from"./chunk-JK7ZNBUA.js";import{a as u}from"./chunk-AYDF3IFZ.js";import{analyzeMarkdown as jt}from"@docfuse/markdown/server/analyze";import It from"gray-matter";import{join as Rt,posix as Ct}from"path";import{z as d}from"zod";var tt=["ai","box","code","file","file-code","gauge","globe","layers","rocket","search","sparkles","terminal"],Pt=d.object({text:d.string().min(1),link:O,primary:d.boolean().optional(),icon:d.enum(tt).optional()}).strict(),bt=d.object({accent:d.string().optional(),tagline:d.string().optional(),image:O.optional(),imageAlt:d.string().optional(),actions:d.array(Pt).refine(t=>t.filter(e=>e.primary).length<=1,{message:"Home page hero actions can contain at most one primary action"}).optional()}).strict(),Et=d.object({icon:d.enum(tt).optional(),image:O.optional(),title:d.string().min(1),details:d.string().min(1)}).strict(),$t=d.string().trim().refine(t=>d.string().date().safeParse(t).success||d.string().datetime({offset:!0}).safeParse(t).success,"Expected an ISO 8601 date"),Z=d.preprocess(t=>t instanceof Date?t.toISOString():t,$t.transform(t=>new Date(t).toISOString())),et=d.object({title:d.string().optional(),seoTitle:d.string().trim().min(1).optional(),description:d.string().optional(),createdAt:Z.optional(),updatedAt:Z.optional(),order:d.number().finite().optional(),group:d.string().optional(),subgroup:d.string().optional(),collapsed:d.boolean().optional(),sidebar:d.boolean().optional(),layout:d.enum(["document","playground"]).optional(),status:d.enum(["draft","published"]).optional(),search:d.boolean().optional(),ai:d.boolean().optional(),tags:d.array(d.string()).optional(),owner:d.string().optional(),hero:bt.optional(),features:d.array(Et).optional()}).passthrough();function le(t){return Object.fromEntries(["title","description","createdAt","updatedAt","order","group","subgroup","tags","owner"].flatMap(o=>t[o]===void 0?[]:[[o,t[o]]]))}u(le,"publicFrontmatterFor");import{readdir as Dt,readFile as St,stat as vt}from"fs/promises";import{join as kt,relative as rt}from"path";async function ot(t,e,o){if(!Number.isFinite(e)||e<1)throw new Error("Concurrency must be a positive finite number");let n=new Array(t.length),r=0,s,l=Math.min(Math.floor(e),t.length);if(await Promise.all(Array.from({length:l},async()=>{for(;r<t.length&&s===void 0;){let c=r++;try{n[c]=await o(t[c],c)}catch(p){s??=p}}})),s)throw s;return n}u(ot,"mapConcurrent");var Ot=32;async function nt(t){async function e(r){let s=[],l=[r];for(;l.length>0;){let c=l.pop();if(!c)continue;let p=await Dt(c,{withFileTypes:!0});for(let i of p){let a=kt(c,i.name);if(i.isSymbolicLink())throw new Error(`Documentation content must not use symbolic links: ${rt(t,a)}`);i.isDirectory()?l.push(a):i.isFile()&&V(i.name)&&s.push(a)}}return s}u(e,"walk");let o=await e(t);return(await ot(o,Ot,async r=>{let[s,l]=await Promise.all([vt(r),St(r,"utf8")]);return{path:rt(t,r),raw:l,mtimeMs:s.mtimeMs}})).sort((r,s)=>r.path.localeCompare(s.path))}u(nt,"scanMarkdownFiles");function st(t){return t.split("-").filter(Boolean).map(e=>e.charAt(0).toUpperCase()+e.slice(1)).join(" ")}u(st,"humanize");function $(t){return I(C(t.relativePath,t.locale))}u($,"isLocaleHome");function Nt(t){return{type:"link",title:t.title||t.routePath,routePath:t.routePath}}u(Nt,"sidebarLink");function at(t){return C(t.relativePath,t.locale).split("/")}u(at,"pageSegments");function it(t){return at(t).slice(0,-1)}u(it,"pageDirectorySegments");function Tt(t){return I(at(t).at(-1)??"")}u(Tt,"isDirectoryIndex");function Ft(t){let e=new Map,o=new Map,n=new Map;for(let r of t)if(Tt(r)&&o.set(it(r).join("/"),r),r.group&&typeof r.frontmatter.group=="string"){let s=n.get(r.group);if(s&&s!==r.frontmatter.group)throw new Error(`Inconsistent group name for locale "${r.locale}" directory "${r.group}": "${s}" and "${r.frontmatter.group}"`);n.set(r.group,r.frontmatter.group)}for(let r of t){if($(r)||r.frontmatter.sidebar===!1)continue;let s=it(r),l=s[0]??"",c=o.get(l),p=l?typeof c?.frontmatter.group=="string"?c.frontmatter.group:c?.title||n.get(l)||st(l):"";if(typeof r.frontmatter.group=="string"&&r.frontmatter.group!==p)throw new Error(`Inconsistent group name for locale "${r.locale}" directory "${r.group}": "${p}" and "${r.frontmatter.group}"`);let i=e.get(l);if(!i)i={segment:l,title:p,items:[]},e.set(l,i);else if(i.title!==p)throw new Error(`Inconsistent group name for locale "${r.locale}" directory "${r.group}": "${i.title}" and "${p}"`);let a=i.items;for(let f=1;f<s.length;f+=1){let m=s[f];if(!m)continue;let g=s.slice(0,f+1).join("/"),h=o.get(g),w=f===1&&typeof r.frontmatter.subgroup=="string"?r.frontmatter.subgroup:void 0,y=(f===1&&typeof h?.frontmatter.subgroup=="string"?h.frontmatter.subgroup:void 0)??h?.title??w??st(m);if(w&&w!==y)throw new Error(`Inconsistent subgroup name for locale "${r.locale}" directory "${g}"`);let b=a.find(S=>S.type==="group"&&S.segment===m),x=b??{type:"group",segment:m,title:y,collapsed:h?.frontmatter.collapsed===!0,items:[]};b||a.push(x),a=x.items}a.push(Nt(r))}return[...e.values()]}u(Ft,"buildSidebar");function N(t){if(t.type==="link")return t;for(let e of t.items){let o=N(e);if(o)return o}}u(N,"firstSidebarLink");function At(t){return t.flatMap(e=>{let o=e.items[0]?N(e.items[0]):void 0;return e.title&&o?[{title:e.title,routePath:o.routePath}]:[]})}u(At,"buildAutomaticNav");function Gt(t,e){return!t.startsWith("/")||e.base==="/"?t:`${e.base}${t.replace(/^\//,"")}`}u(Gt,"versionedNavLink");function Mt(t,e){return t.map(o=>({title:o.text,routePath:Gt(o.link,e)}))}u(Mt,"buildConfiguredNav");function Lt(t,e){return t.map(o=>{if(!o.routePath.startsWith("/"))return o;let n=o.routePath.split("/").filter(Boolean),r=e.find(l=>l.segment&&n.at(-1)===l.segment&&n.length>0),s=r?.items[0]?N(r.items[0]):void 0;return s?{...o,routePath:s.routePath}:o})}u(Lt,"anchorConfiguredNavToSidebar");function Vt(t){let e=new Map;for(let o of t)for(let[n,r]of[["route",o.routePath],["output",o.outputPath],["markdown output",o.markdownOutputPath]]){let s=`${n}:${P(r)}`,l=e.get(s);if(l)throw new Error(`Duplicate ${n} target ${r} for ${l.sourceRelativePath} and ${o.sourceRelativePath}`);e.set(s,o)}}u(Vt,"assertUniquePageTargets");async function Ut(t,e,o,n){let r=H(t,o.docsDir,`versions.items[${o.id}].docsDir`),s=await nt(r),l=[];for(let c of s){let p=c.path.split(/[\\/]/);if(p[0]==="public")continue;let i=p[0]&&e.i18n.locales.includes(p[0])?p[0]:void 0,a=i??e.i18n.defaultLocale,f=i?p.slice(1):p;if(f.length===0)continue;let m=f.join("/"),g=Ct.join(o.docsDir.replace(/\\/g,"/"),c.path.replace(/\\/g,"/")),h=n?await n.transformSource({source:c.raw,sourceRelativePath:g,relativePath:c.path.replace(/\\/g,"/"),kind:U(c.path)?"mdx":"markdown",version:o.id,locale:a}):c.raw,w=It(h),y=et.parse(w.data),b=y.status??"published";if(b==="draft")continue;let x=jt(w.content),S=typeof y.order=="number"&&Number.isFinite(y.order)?y.order:Number.MAX_SAFE_INTEGER,xt=c.path.replace(/\\/g,"/"),L={sourcePath:Rt(r,c.path),transformedSource:h,sourceRelativePath:g,relativePath:xt,version:o.id,versionBase:o.base,docsDir:o.docsDir,locale:a,routePath:K(a,e.i18n.defaultLocale,m,o.base),outputPath:q(a,e.i18n.defaultLocale,m,o.base),markdownOutputPath:B(a,e.i18n.defaultLocale,m,o.base),title:typeof y.title=="string"?y.title:x.headings[0]?.text??"",description:typeof y.description=="string"?y.description:"",order:S,group:f.length>1?f[0]??"":"",status:b,search:y.search!==!1,ai:y.ai!==!1,body:w.content,headings:x.headings,searchText:x.text,codeExamples:x.codeExamples,lastUpdated:y.updatedAt??new Date(c.mtimeMs).toISOString(),frontmatter:y};l.push(n?await n.extendPage(L):L)}return l}u(Ut,"scanVersionPages");async function je(t,e,o){let n=[];for(let i of e.versions.items)for(let a of await Ut(t,e,i,o))n.push(a);let r=new Map(e.versions.items.map((i,a)=>[i.id,a])),s=new Map(e.i18n.locales.map((i,a)=>[i,a]));n.sort((i,a)=>{let f=(r.get(i.version)??0)-(r.get(a.version)??0);if(f!==0)return f;let m=(s.get(i.locale)??0)-(s.get(a.locale)??0);if(m!==0)return m;let g=$(i),h=$(a);return g!==h?g?-1:1:i.order!==a.order?i.order-a.order:i.routePath.localeCompare(a.routePath)}),Vt(n);for(let i of e.versions.items)for(let a of e.i18n.locales)if(!n.some(f=>f.version===i.id&&f.locale===a&&$(f)))throw new Error(`Missing published home page for version "${i.id}" locale "${a}"`);for(let i of e.versions.items)for(let a of e.i18n.locales){let f=n.filter(m=>m.version===i.id&&m.locale===a&&!$(m));f.forEach((m,g)=>{let h=f[g-1],w=f[g+1];h&&(m.previous={title:h.title||h.routePath,routePath:h.routePath}),w&&(m.next={title:w.title||w.routePath,routePath:w.routePath})})}let l={},c={};for(let i of e.versions.items){let a={},f={};l[i.id]=a,c[i.id]=f;for(let m of e.i18n.locales){let g=Ft(n.filter(h=>h.version===i.id&&h.locale===m));a[m]=g,f[m]=e.navigation[m]?Lt(Mt(e.navigation[m],i),g):At(g)}}let p=new Set(n.map(i=>i.routePath));for(let i of Object.values(c))for(let a of Object.values(i))for(let f of a)if(f.routePath.startsWith("/")&&!p.has(f.routePath))throw new Error(`Navigation target is not a generated page: "${f.routePath}"`);return{pages:n,sidebar:l,nav:c,locales:e.i18n.locales,defaultLocale:e.i18n.defaultLocale,versions:e.versions.items.map(i=>({...i})),currentVersion:e.versions.current}}u(je,"buildContentGraph");import{mkdir as Ht,writeFile as ct}from"fs/promises";import{dirname as _t,join as Jt}from"path";var zt={"&":"&","<":"<",">":">",'"':""","'":"'"};function T(t){return t.replace(/[&<>"']/g,e=>zt[e]??e)}u(T,"escapeHtml");function F(t){let e=t==="/"?"/":`${t.replace(/\/+$/,"")}/`;return W(e)}u(F,"normalizeRedirectRoute");function A(t,e){let o=new Set(e.pages.map(s=>F(s.routePath))),n=Object.entries(t.redirects).map(([s,l])=>[F(s),F(l)]),r=new Set(n.map(([s])=>s));for(let[s,l]of n){if(s==="/")throw new Error("Redirect source must not replace the site root");if(o.has(s))throw new Error(`Redirect source collides with a generated page: "${s}"`);if(r.has(l))throw new Error(`Redirect chains are not allowed: "${s}" points to redirect "${l}"`);if(!o.has(l))throw new Error(`Redirect target is not a published generated page: "${l}"`)}if(r.size!==n.length)throw new Error("Redirect sources must be unique after route normalization");return n}u(A,"resolveRedirects");async function Ve(t,e,o){let n=A(e,o);if(n.length===0)return;let r=_(t,e.outputDir);for(let[s,l]of n){let c=v(r,k(s),"redirect route"),p=Y(e,l),i=T(p),a=T(X(e,l)??p),f=JSON.stringify(p).replace(/</g,"\\u003c"),m=`<!doctype html><html><head><meta charset="utf-8"><meta name="robots" content="noindex"><link rel="canonical" href="${a}"><meta http-equiv="refresh" content="0;url=${i}"><script>location.replace(${f})</script></head><body><a href="${i}">Redirecting to ${i}</a></body></html>`;await Ht(_t(c),{recursive:!0}),await ct(c,m)}await ct(Jt(r,"redirects.json"),JSON.stringify(Object.fromEntries(n),null,2))}u(Ve,"writeRedirects");import{posix as ut}from"path";var Wt=new Set([".benchmark.json"]),Kt=["assets/docfuse-markdown","assets/docfuse-playground","assets/docfuse-plugins","assets/fonts","pagefind","ai/content","extensions"];function lt(t){let e=new Map;for(let o of t){let n=P(o),r=Kt.find(l=>n===l||n.startsWith(`${l}/`));if(r)throw new Error(`Generated output uses reserved directory "${r}": "${o}"`);let s=e.get(n);if(s)throw new Error(`Generated outputs overlap: "${s}" and "${o}"`);e.set(n,o)}for(let[o,n]of e){let r=ut.dirname(o);for(;r!==".";){let s=e.get(r);if(s)throw new Error(`Generated outputs overlap: "${s}" and "${n}"`);r=ut.dirname(r)}}}u(lt,"assertGeneratedOutputPlan");function pt(t,e){let o=[".benchmark.json","404.html","assets/docfuse.css","robots.txt","ai/pages.json","ai/manifest.json",...e.pages.flatMap(r=>[r.outputPath,r.markdownOutputPath])];if(t.search.enabled&&(o.push("assets/docfuse-search.js"),Q(t.search.provider)==="compact"))for(let r of e.versions)for(let s of e.locales)o.push(r.id===e.currentVersion?`search/${s}.json`:`search/${r.id}/${s}.json`);t.siteUrl&&o.push("sitemap.xml"),t.ai.pageSummaries&&o.push("ai/summaries.json"),t.ai.codeExamples&&o.push("ai/code-examples.json"),t.ai.markdownIndex&&o.push("ai/index.md"),t.ai.llmsTxt&&o.push("llms.txt"),t.ai.llmsFullTxt&&o.push("llms-full.txt");let n=A(t,e);if(n.length){o.push("redirects.json");for(let[r]of n)o.push(k(r))}return{paths:o,redirects:n}}u(pt,"plannedOutputPaths");function qe(t,e){let{paths:o}=pt(t,e);return lt(o),new Set(o)}u(qe,"generatedOutputPaths");function Be(t,e){let{paths:o,redirects:n}=pt(t,e);return lt(o),new Set([...o.filter(r=>!Wt.has(r)).map(r=>`/${r.split("/").map(encodeURIComponent).join("/")}`),...n.map(([r])=>r)])}u(Be,"generatedPublicPaths");import{randomUUID as Bt}from"crypto";import{mkdir as dt,readFile as Xt,rm as Yt,writeFile as gt}from"fs/promises";import{dirname as Qt,join as ht,posix as wt,resolve as Zt}from"path";import{pathToFileURL as te}from"url";import{build as ee}from"esbuild";import{createHash as ft}from"crypto";function G(t,e){if(t===null||typeof t=="boolean"||typeof t=="string")return t;if(typeof t=="number"){if(!Number.isFinite(t))throw new TypeError("Fingerprint values must contain only finite numbers");return t}if(typeof t!="object")throw new TypeError("Fingerprint values must be JSON-serializable");if(e.has(t))throw new TypeError("Fingerprint values must not be circular");let o=Object.getPrototypeOf(t);if(!Array.isArray(t)&&o!==Object.prototype&&o!==null)throw new TypeError("Fingerprint values must be JSON-serializable plain objects");e.add(t);try{if(Array.isArray(t)){if(Object.keys(t).length!==t.length)throw new TypeError("Fingerprint values must not contain sparse arrays");return t.map(r=>G(r,e))}let n=Object.entries(t).sort(([r],[s])=>r.localeCompare(s)).map(([r,s])=>[r,G(s,e)]);return Object.fromEntries(n)}finally{e.delete(t)}}u(G,"canonicalValue");function qt(t){return JSON.stringify(G(t,new WeakSet))}u(qt,"stableJson");function D(t){return ft("sha256").update(qt(t)).digest("hex")}u(D,"fingerprint");function M(t){return ft("sha256").update(t).digest("hex")}u(M,"fingerprintBytes");var oe=new Set(["apiVersion","name","outputs","transformSource","extendPage","generate"]),re=["pnpm-lock.yaml","package-lock.json","yarn.lock","bun.lock","bun.lockb"];function j(t){return t instanceof Error?t.message:String(t)}u(j,"errorMessage");function mt(t){return{sourceRelativePath:t.sourceRelativePath,relativePath:t.relativePath,version:t.version,locale:t.locale,routePath:t.routePath,title:t.title,description:t.description,status:t.status,search:t.search,ai:t.ai,body:t.body,searchText:t.searchText,frontmatter:structuredClone(t.frontmatter)}}u(mt,"extensionPage");function yt(t,e){if(!e||e.includes("\\")||e.startsWith("/")||e!==wt.normalize(e))throw new Error(`Extension "${t}" output must be a normalized relative POSIX path: "${e}"`);if(e.split("/").some(o=>o==="."||o===".."||!o))throw new Error(`Extension "${t}" output must not contain empty, . or .. segments: "${e}"`);return e}u(yt,"normalizeDeclaredOutput");function ne(t,e){if(!t||typeof t!="object")throw new Error(`Extension ${e.resolve} must export an extension object or factory`);let o=t,n=Object.keys(o).find(r=>!oe.has(r));if(n)throw new Error(`Extension ${e.resolve} has unknown key "${n}"`);if(o.apiVersion!==1)throw new Error(`Extension ${e.resolve} uses unsupported apiVersion ${String(o.apiVersion)}; expected ${1}`);if(typeof o.name!="string"||!/^[a-z0-9](?:[a-z0-9-]*[a-z0-9])?$/.test(o.name))throw new Error(`Extension ${e.resolve} name must be a lowercase portable slug`);for(let r of["transformSource","extendPage","generate"])if(o[r]!==void 0&&typeof o[r]!="function")throw new Error(`Extension "${o.name}" hook ${r} must be a function`);if(o.outputs!==void 0&&!Array.isArray(o.outputs))throw new Error(`Extension "${o.name}" outputs must be an array`);if(o.generate&&!o.outputs?.length)throw new Error(`Extension "${o.name}" with generate() must declare outputs`);if(!o.generate&&o.outputs?.length)throw new Error(`Extension "${o.name}" declares outputs without generate()`);return o}u(ne,"assertDefinition");function se(t,e){if(e===void 0)return{};if(!e||typeof e!="object"||Array.isArray(e))throw new Error(`Extension "${t}" extendPage() must return an object or undefined`);let o=new Set(["title","description","searchText","search","ai"]),n=Object.keys(e).find(s=>!o.has(s));if(n)throw new Error(`Extension "${t}" extendPage() returned unknown key "${n}"`);let r=e;for(let s of["title","description","searchText"])if(r[s]!==void 0&&typeof r[s]!="string")throw new Error(`Extension "${t}" extendPage() field ${s} must be a string`);for(let s of["search","ai"])if(r[s]!==void 0&&typeof r[s]!="boolean")throw new Error(`Extension "${t}" extendPage() field ${s} must be a boolean`);return e}u(se,"assertPagePatch");async function ie(t){let e=[];for(let o of re){let n=ht(t,o);await R(n)&&e.push({path:o,fingerprint:M(await Xt(n))})}return D(e)}u(ie,"lockfileFingerprint");async function ae(t,e,o){let n=Zt(t,o.resolve);if(await J(t,n,`extension ${o.resolve}`),!await R(n))throw new Error(`Extension module not found: ${o.resolve}`);let s=(await ee({entryPoints:[n],bundle:!0,format:"esm",platform:"node",target:"node22",write:!1,sourcemap:"inline",plugins:[{name:"docfuse-extension-api",setup(c){c.onResolve({filter:/^docfuse$/},()=>({path:"docfuse-extension-api",namespace:"docfuse-extension-api"})),c.onLoad({filter:/.*/,namespace:"docfuse-extension-api"},()=>({loader:"js",contents:`
|
|
1
|
+
import{a as X,b as Y,d as Q,f as E}from"./chunk-GNYJERGG.js";import{a as C,b as W,d as K,e as q,f as B,g as k,h as O}from"./chunk-WLB5K7IS.js";import{a as z}from"./chunk-U2UVR2RH.js";import{a as V,b as U,c as I}from"./chunk-EAYVCA3Z.js";import{a as R,b as P,d as H,e as _,f as J,h as v}from"./chunk-JK7ZNBUA.js";import{a as u}from"./chunk-AYDF3IFZ.js";import{analyzeMarkdown as jt}from"@docfuse/markdown/server/analyze";import It from"gray-matter";import{join as Rt,posix as Ct}from"path";import{z as d}from"zod";var tt=["ai","box","code","file","file-code","gauge","globe","layers","rocket","search","sparkles","terminal"],Pt=d.object({text:d.string().min(1),link:O,primary:d.boolean().optional(),icon:d.enum(tt).optional()}).strict(),bt=d.object({accent:d.string().optional(),tagline:d.string().optional(),image:O.optional(),imageAlt:d.string().optional(),actions:d.array(Pt).refine(t=>t.filter(e=>e.primary).length<=1,{message:"Home page hero actions can contain at most one primary action"}).optional()}).strict(),Et=d.object({icon:d.enum(tt).optional(),image:O.optional(),title:d.string().min(1),details:d.string().min(1)}).strict(),$t=d.string().trim().refine(t=>d.string().date().safeParse(t).success||d.string().datetime({offset:!0}).safeParse(t).success,"Expected an ISO 8601 date"),Z=d.preprocess(t=>t instanceof Date?t.toISOString():t,$t.transform(t=>new Date(t).toISOString())),et=d.object({title:d.string().optional(),seoTitle:d.string().trim().min(1).optional(),description:d.string().optional(),createdAt:Z.optional(),updatedAt:Z.optional(),order:d.number().finite().optional(),group:d.string().optional(),subgroup:d.string().optional(),collapsed:d.boolean().optional(),sidebar:d.boolean().optional(),layout:d.enum(["document","playground"]).optional(),status:d.enum(["draft","published"]).optional(),search:d.boolean().optional(),ai:d.boolean().optional(),tags:d.array(d.string()).optional(),owner:d.string().optional(),hero:bt.optional(),features:d.array(Et).optional()}).passthrough();function le(t){return Object.fromEntries(["title","description","createdAt","updatedAt","order","group","subgroup","tags","owner"].flatMap(o=>t[o]===void 0?[]:[[o,t[o]]]))}u(le,"publicFrontmatterFor");import{readdir as Dt,readFile as St,stat as vt}from"fs/promises";import{join as kt,relative as rt}from"path";async function ot(t,e,o){if(!Number.isFinite(e)||e<1)throw new Error("Concurrency must be a positive finite number");let n=new Array(t.length),r=0,s,l=Math.min(Math.floor(e),t.length);if(await Promise.all(Array.from({length:l},async()=>{for(;r<t.length&&s===void 0;){let c=r++;try{n[c]=await o(t[c],c)}catch(p){s??=p}}})),s)throw s;return n}u(ot,"mapConcurrent");var Ot=32;async function nt(t){async function e(r){let s=[],l=[r];for(;l.length>0;){let c=l.pop();if(!c)continue;let p=await Dt(c,{withFileTypes:!0});for(let i of p){let a=kt(c,i.name);if(i.isSymbolicLink())throw new Error(`Documentation content must not use symbolic links: ${rt(t,a)}`);i.isDirectory()?l.push(a):i.isFile()&&V(i.name)&&s.push(a)}}return s}u(e,"walk");let o=await e(t);return(await ot(o,Ot,async r=>{let[s,l]=await Promise.all([vt(r),St(r,"utf8")]);return{path:rt(t,r),raw:l,mtimeMs:s.mtimeMs}})).sort((r,s)=>r.path.localeCompare(s.path))}u(nt,"scanMarkdownFiles");function st(t){return t.split("-").filter(Boolean).map(e=>e.charAt(0).toUpperCase()+e.slice(1)).join(" ")}u(st,"humanize");function $(t){return I(C(t.relativePath,t.locale))}u($,"isLocaleHome");function Nt(t){return{type:"link",title:t.title||t.routePath,routePath:t.routePath}}u(Nt,"sidebarLink");function at(t){return C(t.relativePath,t.locale).split("/")}u(at,"pageSegments");function it(t){return at(t).slice(0,-1)}u(it,"pageDirectorySegments");function Tt(t){return I(at(t).at(-1)??"")}u(Tt,"isDirectoryIndex");function Ft(t){let e=new Map,o=new Map,n=new Map;for(let r of t)if(Tt(r)&&o.set(it(r).join("/"),r),r.group&&typeof r.frontmatter.group=="string"){let s=n.get(r.group);if(s&&s!==r.frontmatter.group)throw new Error(`Inconsistent group name for locale "${r.locale}" directory "${r.group}": "${s}" and "${r.frontmatter.group}"`);n.set(r.group,r.frontmatter.group)}for(let r of t){if($(r)||r.frontmatter.sidebar===!1)continue;let s=it(r),l=s[0]??"",c=o.get(l),p=l?typeof c?.frontmatter.group=="string"?c.frontmatter.group:c?.title||n.get(l)||st(l):"";if(typeof r.frontmatter.group=="string"&&r.frontmatter.group!==p)throw new Error(`Inconsistent group name for locale "${r.locale}" directory "${r.group}": "${p}" and "${r.frontmatter.group}"`);let i=e.get(l);if(!i)i={segment:l,title:p,items:[]},e.set(l,i);else if(i.title!==p)throw new Error(`Inconsistent group name for locale "${r.locale}" directory "${r.group}": "${i.title}" and "${p}"`);let a=i.items;for(let f=1;f<s.length;f+=1){let m=s[f];if(!m)continue;let g=s.slice(0,f+1).join("/"),h=o.get(g),w=f===1&&typeof r.frontmatter.subgroup=="string"?r.frontmatter.subgroup:void 0,y=(f===1&&typeof h?.frontmatter.subgroup=="string"?h.frontmatter.subgroup:void 0)??h?.title??w??st(m);if(w&&w!==y)throw new Error(`Inconsistent subgroup name for locale "${r.locale}" directory "${g}"`);let b=a.find(S=>S.type==="group"&&S.segment===m),x=b??{type:"group",segment:m,title:y,collapsed:h?.frontmatter.collapsed===!0,items:[]};b||a.push(x),a=x.items}a.push(Nt(r))}return[...e.values()]}u(Ft,"buildSidebar");function N(t){if(t.type==="link")return t;for(let e of t.items){let o=N(e);if(o)return o}}u(N,"firstSidebarLink");function At(t){return t.flatMap(e=>{let o=e.items[0]?N(e.items[0]):void 0;return e.title&&o?[{title:e.title,routePath:o.routePath}]:[]})}u(At,"buildAutomaticNav");function Gt(t,e){return!t.startsWith("/")||e.base==="/"?t:`${e.base}${t.replace(/^\//,"")}`}u(Gt,"versionedNavLink");function Mt(t,e){return t.map(o=>({title:o.text,routePath:Gt(o.link,e)}))}u(Mt,"buildConfiguredNav");function Lt(t,e){return t.map(o=>{if(!o.routePath.startsWith("/"))return o;let n=o.routePath.split("/").filter(Boolean),r=e.find(l=>l.segment&&n.at(-1)===l.segment&&n.length>0),s=r?.items[0]?N(r.items[0]):void 0;return s?{...o,routePath:s.routePath}:o})}u(Lt,"anchorConfiguredNavToSidebar");function Vt(t){let e=new Map;for(let o of t)for(let[n,r]of[["route",o.routePath],["output",o.outputPath],["markdown output",o.markdownOutputPath]]){let s=`${n}:${P(r)}`,l=e.get(s);if(l)throw new Error(`Duplicate ${n} target ${r} for ${l.sourceRelativePath} and ${o.sourceRelativePath}`);e.set(s,o)}}u(Vt,"assertUniquePageTargets");async function Ut(t,e,o,n){let r=H(t,o.docsDir,`versions.items[${o.id}].docsDir`),s=await nt(r),l=[];for(let c of s){let p=c.path.split(/[\\/]/);if(p[0]==="public")continue;let i=p[0]&&e.i18n.locales.includes(p[0])?p[0]:void 0,a=i??e.i18n.defaultLocale,f=i?p.slice(1):p;if(f.length===0)continue;let m=f.join("/"),g=Ct.join(o.docsDir.replace(/\\/g,"/"),c.path.replace(/\\/g,"/")),h=n?await n.transformSource({source:c.raw,sourceRelativePath:g,relativePath:c.path.replace(/\\/g,"/"),kind:U(c.path)?"mdx":"markdown",version:o.id,locale:a}):c.raw,w=It(h),y=et.parse(w.data),b=y.status??"published";if(b==="draft")continue;let x=jt(w.content),S=typeof y.order=="number"&&Number.isFinite(y.order)?y.order:Number.MAX_SAFE_INTEGER,xt=c.path.replace(/\\/g,"/"),L={sourcePath:Rt(r,c.path),transformedSource:h,sourceRelativePath:g,relativePath:xt,version:o.id,versionBase:o.base,docsDir:o.docsDir,locale:a,routePath:K(a,e.i18n.defaultLocale,m,o.base),outputPath:q(a,e.i18n.defaultLocale,m,o.base),markdownOutputPath:B(a,e.i18n.defaultLocale,m,o.base),title:typeof y.title=="string"?y.title:x.headings[0]?.text??"",description:typeof y.description=="string"?y.description:"",order:S,group:f.length>1?f[0]??"":"",status:b,search:y.search!==!1,ai:y.ai!==!1,body:w.content,headings:x.headings,searchText:x.text,codeExamples:x.codeExamples,lastUpdated:y.updatedAt??new Date(c.mtimeMs).toISOString(),frontmatter:y};l.push(n?await n.extendPage(L):L)}return l}u(Ut,"scanVersionPages");async function je(t,e,o){let n=[];for(let i of e.versions.items)for(let a of await Ut(t,e,i,o))n.push(a);let r=new Map(e.versions.items.map((i,a)=>[i.id,a])),s=new Map(e.i18n.locales.map((i,a)=>[i,a]));n.sort((i,a)=>{let f=(r.get(i.version)??0)-(r.get(a.version)??0);if(f!==0)return f;let m=(s.get(i.locale)??0)-(s.get(a.locale)??0);if(m!==0)return m;let g=$(i),h=$(a);return g!==h?g?-1:1:i.order!==a.order?i.order-a.order:i.routePath.localeCompare(a.routePath)}),Vt(n);for(let i of e.versions.items)for(let a of e.i18n.locales)if(!n.some(f=>f.version===i.id&&f.locale===a&&$(f)))throw new Error(`Missing published home page for version "${i.id}" locale "${a}"`);for(let i of e.versions.items)for(let a of e.i18n.locales){let f=n.filter(m=>m.version===i.id&&m.locale===a&&!$(m));f.forEach((m,g)=>{let h=f[g-1],w=f[g+1];h&&(m.previous={title:h.title||h.routePath,routePath:h.routePath}),w&&(m.next={title:w.title||w.routePath,routePath:w.routePath})})}let l={},c={};for(let i of e.versions.items){let a={},f={};l[i.id]=a,c[i.id]=f;for(let m of e.i18n.locales){let g=Ft(n.filter(h=>h.version===i.id&&h.locale===m));a[m]=g,f[m]=e.navigation[m]?Lt(Mt(e.navigation[m],i),g):At(g)}}let p=new Set(n.map(i=>i.routePath));for(let i of Object.values(c))for(let a of Object.values(i))for(let f of a)if(f.routePath.startsWith("/")&&!p.has(f.routePath))throw new Error(`Navigation target is not a generated page: "${f.routePath}"`);return{pages:n,sidebar:l,nav:c,locales:e.i18n.locales,defaultLocale:e.i18n.defaultLocale,versions:e.versions.items.map(i=>({...i})),currentVersion:e.versions.current}}u(je,"buildContentGraph");import{mkdir as Ht,writeFile as ct}from"fs/promises";import{dirname as _t,join as Jt}from"path";var zt={"&":"&","<":"<",">":">",'"':""","'":"'"};function T(t){return t.replace(/[&<>"']/g,e=>zt[e]??e)}u(T,"escapeHtml");function F(t){let e=t==="/"?"/":`${t.replace(/\/+$/,"")}/`;return W(e)}u(F,"normalizeRedirectRoute");function A(t,e){let o=new Set(e.pages.map(s=>F(s.routePath))),n=Object.entries(t.redirects).map(([s,l])=>[F(s),F(l)]),r=new Set(n.map(([s])=>s));for(let[s,l]of n){if(s==="/")throw new Error("Redirect source must not replace the site root");if(o.has(s))throw new Error(`Redirect source collides with a generated page: "${s}"`);if(r.has(l))throw new Error(`Redirect chains are not allowed: "${s}" points to redirect "${l}"`);if(!o.has(l))throw new Error(`Redirect target is not a published generated page: "${l}"`)}if(r.size!==n.length)throw new Error("Redirect sources must be unique after route normalization");return n}u(A,"resolveRedirects");async function Ve(t,e,o){let n=A(e,o);if(n.length===0)return;let r=_(t,e.outputDir);for(let[s,l]of n){let c=v(r,k(s),"redirect route"),p=Y(e,l),i=T(p),a=T(X(e,l)??p),f=JSON.stringify(p).replace(/</g,"\\u003c"),m=`<!doctype html><html><head><meta charset="utf-8"><meta name="robots" content="noindex"><link rel="canonical" href="${a}"><meta http-equiv="refresh" content="0;url=${i}"><script>location.replace(${f})</script></head><body><a href="${i}">Redirecting to ${i}</a></body></html>`;await Ht(_t(c),{recursive:!0}),await ct(c,m)}await ct(Jt(r,"redirects.json"),JSON.stringify(Object.fromEntries(n),null,2))}u(Ve,"writeRedirects");import{posix as ut}from"path";var Wt=new Set([".benchmark.json"]),Kt=["assets/docfuse-markdown","assets/docfuse-playground","assets/docfuse-plugins","assets/fonts","pagefind","ai/content","extensions"];function lt(t){let e=new Map;for(let o of t){let n=P(o),r=Kt.find(l=>n===l||n.startsWith(`${l}/`));if(r)throw new Error(`Generated output uses reserved directory "${r}": "${o}"`);let s=e.get(n);if(s)throw new Error(`Generated outputs overlap: "${s}" and "${o}"`);e.set(n,o)}for(let[o,n]of e){let r=ut.dirname(o);for(;r!==".";){let s=e.get(r);if(s)throw new Error(`Generated outputs overlap: "${s}" and "${n}"`);r=ut.dirname(r)}}}u(lt,"assertGeneratedOutputPlan");function pt(t,e){let o=[".benchmark.json","404.html","assets/docfuse.css","robots.txt","ai/pages.json","ai/manifest.json",...e.pages.flatMap(r=>[r.outputPath,r.markdownOutputPath])];if(t.search.enabled&&(o.push("assets/docfuse-search.js"),Q(t.search.provider)==="compact"))for(let r of e.versions)for(let s of e.locales)o.push(r.id===e.currentVersion?`search/${s}.json`:`search/${r.id}/${s}.json`);t.siteUrl&&o.push("sitemap.xml"),t.ai.pageSummaries&&o.push("ai/summaries.json"),t.ai.codeExamples&&o.push("ai/code-examples.json"),t.ai.markdownIndex&&o.push("ai/index.md"),t.ai.llmsTxt&&o.push("llms.txt"),t.ai.llmsFullTxt&&o.push("llms-full.txt");let n=A(t,e);if(n.length){o.push("redirects.json");for(let[r]of n)o.push(k(r))}return{paths:o,redirects:n}}u(pt,"plannedOutputPaths");function qe(t,e){let{paths:o}=pt(t,e);return lt(o),new Set(o)}u(qe,"generatedOutputPaths");function Be(t,e){let{paths:o,redirects:n}=pt(t,e);return lt(o),new Set([...o.filter(r=>!Wt.has(r)).map(r=>`/${r.split("/").map(encodeURIComponent).join("/")}`),...n.map(([r])=>r)])}u(Be,"generatedPublicPaths");import{randomUUID as Bt}from"crypto";import{mkdir as dt,readFile as Xt,rm as Yt,writeFile as gt}from"fs/promises";import{dirname as Qt,join as ht,posix as wt,resolve as Zt}from"path";import{pathToFileURL as te}from"url";import{build as ee}from"esbuild";import{createHash as ft}from"crypto";function G(t,e){if(t===null||typeof t=="boolean"||typeof t=="string")return t;if(typeof t=="number"){if(!Number.isFinite(t))throw new TypeError("Fingerprint values must contain only finite numbers");return t}if(typeof t!="object")throw new TypeError("Fingerprint values must be JSON-serializable");if(e.has(t))throw new TypeError("Fingerprint values must not be circular");let o=Object.getPrototypeOf(t);if(!Array.isArray(t)&&o!==Object.prototype&&o!==null)throw new TypeError("Fingerprint values must be JSON-serializable plain objects");e.add(t);try{if(Array.isArray(t)){if(Object.keys(t).length!==t.length)throw new TypeError("Fingerprint values must not contain sparse arrays");return t.map(r=>G(r,e))}let n=Object.entries(t).sort(([r],[s])=>r.localeCompare(s)).map(([r,s])=>[r,G(s,e)]);return Object.fromEntries(n)}finally{e.delete(t)}}u(G,"canonicalValue");function qt(t){return JSON.stringify(G(t,new WeakSet))}u(qt,"stableJson");function D(t){return ft("sha256").update(qt(t)).digest("hex")}u(D,"fingerprint");function M(t){return ft("sha256").update(t).digest("hex")}u(M,"fingerprintBytes");var oe=new Set(["apiVersion","name","outputs","transformSource","extendPage","generate"]),re=["pnpm-lock.yaml","package-lock.json","yarn.lock","bun.lock","bun.lockb"];function j(t){return t instanceof Error?t.message:String(t)}u(j,"errorMessage");function mt(t){return{sourceRelativePath:t.sourceRelativePath,relativePath:t.relativePath,version:t.version,locale:t.locale,routePath:t.routePath,title:t.title,description:t.description,status:t.status,search:t.search,ai:t.ai,body:t.body,searchText:t.searchText,frontmatter:structuredClone(t.frontmatter)}}u(mt,"extensionPage");function yt(t,e){if(!e||e.includes("\\")||e.startsWith("/")||e!==wt.normalize(e))throw new Error(`Extension "${t}" output must be a normalized relative POSIX path: "${e}"`);if(e.split("/").some(o=>o==="."||o===".."||!o))throw new Error(`Extension "${t}" output must not contain empty, . or .. segments: "${e}"`);return e}u(yt,"normalizeDeclaredOutput");function ne(t,e){if(!t||typeof t!="object")throw new Error(`Extension ${e.resolve} must export an extension object or factory`);let o=t,n=Object.keys(o).find(r=>!oe.has(r));if(n)throw new Error(`Extension ${e.resolve} has unknown key "${n}"`);if(o.apiVersion!==1)throw new Error(`Extension ${e.resolve} uses unsupported apiVersion ${String(o.apiVersion)}; expected ${1}`);if(typeof o.name!="string"||!/^[a-z0-9](?:[a-z0-9-]*[a-z0-9])?$/.test(o.name))throw new Error(`Extension ${e.resolve} name must be a lowercase portable slug`);for(let r of["transformSource","extendPage","generate"])if(o[r]!==void 0&&typeof o[r]!="function")throw new Error(`Extension "${o.name}" hook ${r} must be a function`);if(o.outputs!==void 0&&!Array.isArray(o.outputs))throw new Error(`Extension "${o.name}" outputs must be an array`);if(o.generate&&!o.outputs?.length)throw new Error(`Extension "${o.name}" with generate() must declare outputs`);if(!o.generate&&o.outputs?.length)throw new Error(`Extension "${o.name}" declares outputs without generate()`);return o}u(ne,"assertDefinition");function se(t,e){if(e===void 0)return{};if(!e||typeof e!="object"||Array.isArray(e))throw new Error(`Extension "${t}" extendPage() must return an object or undefined`);let o=new Set(["title","description","searchText","search","ai"]),n=Object.keys(e).find(s=>!o.has(s));if(n)throw new Error(`Extension "${t}" extendPage() returned unknown key "${n}"`);let r=e;for(let s of["title","description","searchText"])if(r[s]!==void 0&&typeof r[s]!="string")throw new Error(`Extension "${t}" extendPage() field ${s} must be a string`);for(let s of["search","ai"])if(r[s]!==void 0&&typeof r[s]!="boolean")throw new Error(`Extension "${t}" extendPage() field ${s} must be a boolean`);return e}u(se,"assertPagePatch");async function ie(t){let e=[];for(let o of re){let n=ht(t,o);await R(n)&&e.push({path:o,fingerprint:M(await Xt(n))})}return D(e)}u(ie,"lockfileFingerprint");async function ae(t,e,o){let n=Zt(t,o.resolve);if(await J(t,n,`extension ${o.resolve}`),!await R(n))throw new Error(`Extension module not found: ${o.resolve}`);let s=(await ee({entryPoints:[n],bundle:!0,format:"esm",platform:"node",target:"node22",write:!1,sourcemap:"inline",plugins:[{name:"docfuse-extension-api",setup(c){c.onResolve({filter:/^docfuse$/},()=>({path:"docfuse-extension-api",namespace:"docfuse-extension-api"})),c.onLoad({filter:/.*/,namespace:"docfuse-extension-api"},()=>({loader:"js",contents:`
|
|
2
2
|
export const DOCFUSE_EXTENSION_API_VERSION = ${JSON.stringify(1)}
|
|
3
3
|
export const docfuseVersion = ${JSON.stringify(z)}
|
|
4
4
|
export const defineExtension = (factory) => factory
|
|
5
5
|
`}))}}]})).outputFiles[0];if(!s)throw new Error(`Failed to bundle extension ${o.resolve}`);await dt(e,{recursive:!0});let l=ht(e,`extension-${Bt()}.mjs`);await gt(l,s.contents);try{let p=(await import(`${te(l).href}?t=${Date.now()}`)).default,i=typeof p=="function"?await p(structuredClone(o.options??{})):p,a=ne(i,o),f=(a.outputs??[]).map(m=>yt(a.name,m));if(new Set(f.map(P)).size!==f.length)throw new Error(`Extension "${a.name}" declares duplicate portable output paths`);return{definition:a,declaredOutputs:new Set(f),fingerprint:D({descriptor:o,bundle:M(s.contents)})}}finally{await Yt(l,{force:!0})}}u(ae,"loadOneExtension");async function lo(t,e,o){let n=[];for(let c of o)try{n.push(await ae(t,e,c))}catch(p){throw new Error(`Failed to load extension ${c.resolve}: ${j(p)}`,{cause:p})}let r=new Set;for(let c of n){if(r.has(c.definition.name))throw new Error(`Duplicate extension name "${c.definition.name}"`);r.add(c.definition.name)}let s=n.length?await ie(t):D({lockfiles:[]}),l=n.flatMap(({definition:c,declaredOutputs:p})=>[...p].map(i=>`/extensions/${c.name}/${i.split("/").map(encodeURIComponent).join("/")}`));return{fingerprint:D({apiVersion:1,dependencyFingerprint:s,extensions:n.map(c=>({name:c.definition.name,fingerprint:c.fingerprint}))}),publicOutputPaths:l,async transformSource(c){let p=c.source;for(let{definition:i}of n)if(i.transformSource)try{let a=await i.transformSource({...c,source:p});if(typeof a!="string")throw new Error("transformSource() must return a string");p=a}catch(a){throw new Error(`Extension "${i.name}" transformSource failed for ${c.sourceRelativePath}: ${j(a)}`,{cause:a})}return p},async extendPage(c){let p=c;for(let{definition:i}of n)if(i.extendPage)try{let a=se(i.name,await i.extendPage(mt(p)));p={...p,...a}}catch(a){throw new Error(`Extension "${i.name}" extendPage failed for ${p.sourceRelativePath}: ${j(a)}`,{cause:a})}return p},async generate(c,p){for(let{definition:i,declaredOutputs:a}of n){if(!i.generate)continue;let f=new Set;try{await i.generate({pages:p.map(mt),emitFile:u(async(g,h)=>{let w=yt(i.name,g);if(!a.has(w))throw new Error(`generate() emitted undeclared output "${w}"`);if(f.has(w))throw new Error(`generate() emitted "${w}" more than once`);f.add(w);let y=v(c,wt.join("extensions",i.name,w),`extension ${i.name} output`);await dt(Qt(y),{recursive:!0}),await gt(y,h)},"emitFile")});let m=[...a].filter(g=>!f.has(g));if(m.length)throw new Error(`generate() did not emit declared outputs: ${m.join(", ")}`)}catch(m){throw new Error(`Extension "${i.name}" generate failed: ${j(m)}`,{cause:m})}}}}}u(lo,"loadExtensionHost");export{D as a,M as b,le as c,ot as d,je as e,T as f,Ve as g,Kt as h,qe as i,Be as j,lo as k};
|
|
6
|
-
//# sourceMappingURL=chunk-
|
|
6
|
+
//# sourceMappingURL=chunk-MBDBYNPA.js.map
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import{a as h}from"./chunk-
|
|
1
|
+
import{a as h}from"./chunk-U2UVR2RH.js";import{d as a,e as E,f as d,g as u}from"./chunk-JK7ZNBUA.js";import{a as o}from"./chunk-AYDF3IFZ.js";import{randomUUID as b}from"crypto";import{mkdir as B,open as x,readFile as p,rename as S,rm as f,stat as k,writeFile as M}from"fs/promises";import{hostname as O}from"os";import{dirname as v,join as y}from"path";var w=600*1e3,A=Math.floor(w/3);function l(t){return typeof t=="string"&&t.length>0&&!t.startsWith("/")&&!t.includes("\\")&&t.split("/").every(e=>e!==""&&e!=="."&&e!=="..")}o(l,"isSafeOutputPath");function Q(t){return a(t,".docfuse/cache","build cache")}o(Q,"resolveBuildCacheRoot");function Y(t){return a(t,".docfuse/tmp","temporary build files")}o(Y,"resolveBuildTemporaryRoot");function P(t){return y(t,"build-manifest.json")}o(P,"manifestPath");function D(t){if(!t||typeof t!="object")return!1;let e=t;return typeof e.fingerprint=="string"&&l(e.outputPath)&&l(e.markdownOutputPath)&&Array.isArray(e.assetOutputPaths)&&e.assetOutputPaths.every(l)}o(D,"isPageState");function R(t){if(!t||typeof t!="object")return!1;let e=t;return typeof e.fingerprint=="string"&&Number.isSafeInteger(e.size)&&Number(e.size)>=0}o(R,"isOutputState");function j(t){if(!t||typeof t!="object")return!1;let e=t;return e.schemaVersion===3&&e.docfuseVersion===h&&typeof e.buildFingerprint=="string"&&typeof e.sharedFingerprint=="string"&&!!e.pages&&typeof e.pages=="object"&&Object.values(e.pages).every(D)&&!!e.outputs&&typeof e.outputs=="object"&&Object.keys(e.outputs).length>0&&Object.keys(e.outputs).every(l)&&Object.values(e.outputs).every(R)}o(j,"isBuildManifest");async function Z(t){try{let e=JSON.parse(await p(P(t),"utf8"));return j(e)?e:void 0}catch(e){if(e.code==="ENOENT"||e instanceof SyntaxError)return;throw e}}o(Z,"readBuildManifest");async function tt(t,e){await B(t,{recursive:!0});let n=P(t),i=y(t,`.build-manifest.${b()}.tmp`);try{await M(i,`${JSON.stringify(e,null,2)}
|
|
2
2
|
`,{flag:"wx",flush:!0});try{await S(i,n)}catch(r){let s=r.code;if(s!=="EEXIST"&&s!=="EPERM")throw r;await f(n,{force:!0}),await S(i,n)}}finally{await f(i,{force:!0})}}o(tt,"writeBuildManifest");function T(t){try{return process.kill(t,0),!0}catch(e){return e.code!=="ESRCH"}}o(T,"processIsAlive");function F(t,e,n=Date.now()){if(t.hostname===O()&&typeof t.pid=="number"&&Number.isSafeInteger(t.pid)&&t.pid>0&&!T(t.pid))return!0;let i=typeof t.updatedAt=="number"?t.updatedAt:typeof t.createdAt=="number"?t.createdAt:void 0,r=i===void 0?e:Math.max(i,e);return r===void 0||!Number.isFinite(r)||r>n+w||n-r>w}o(F,"lockIsStale");function J(t,e){return JSON.stringify({ownerId:t,pid:process.pid,hostname:O(),createdAt:e})}o(J,"lockContents");async function g(t){try{return JSON.parse(await p(t,"utf8"))}catch(e){if(e.code==="ENOENT")return;throw e}}o(g,"readBuildLock");async function m(t){let e=await x(t,"wx"),n=b(),i=Date.now();try{return await e.writeFile(J(n,i)),{handle:e,path:t,ownerId:n,createdAt:i}}catch(r){throw await e.close(),await f(t,{force:!0}),r}}o(m,"createBuildLock");async function N(t){(await g(t.path))?.ownerId===t.ownerId&&await f(t.path,{force:!0})}o(N,"releaseBuildLock");async function I(t){let e,n;try{let[r,s]=await Promise.all([p(t,"utf8"),k(t)]);e=r,n=s.mtimeMs}catch(r){if(r.code==="ENOENT")return!0;throw r}let i;try{i=F(JSON.parse(e),n)}catch{i=Date.now()-n>w}if(!i)return!1;try{let[r,s]=await Promise.all([p(t,"utf8"),k(t)]);return r!==e||s.mtimeMs!==n?!1:(await f(t),!0)}catch(r){if(r.code==="ENOENT")return!0;throw r}}o(I,"removeStaleLock");async function _(t){try{return await m(t)}catch(e){if(e.code!=="EEXIST")throw e;if(!await I(t))throw new Error("Another Docfuse build is already running for this project");try{return await m(t)}catch(n){throw n.code==="EEXIST"?new Error("Another Docfuse build is already running for this project"):n}}}o(_,"acquireBuildLock");async function C(t){let e=v(t);await B(e,{recursive:!0});let n=y(e,"build.lock"),i=await _(`${n}.reclaim`);try{try{return await m(n)}catch(r){if(r.code!=="EEXIST")throw r;if(!await I(n))throw new Error("Another Docfuse build is already running for this project");return await m(n)}}finally{await i.handle.close(),await N(i)}}o(C,"openBuildLock");async function $(t){if((await g(t.path))?.ownerId!==t.ownerId)return!1;let n=new Date;return await t.handle.utimes(n,n),!0}o($,"refreshBuildLock");async function V(t){if((await g(t.path))?.ownerId!==t.ownerId)throw new Error("Docfuse build lock ownership was lost during the build")}o(V,"assertBuildLockOwned");async function et(t,e){let n=await C(t),i,r=setInterval(()=>{$(n).then(s=>{s||(i=new Error("Docfuse build lock ownership was lost during the build"))}).catch(s=>{i=s})},A);r.unref();try{let s=o(()=>V(n),"assertOwned"),c=await e(s);if(i)throw i;return await s(),c}finally{clearInterval(r),await n.handle.close(),await N(n)}}o(et,"withBuildLock");async function ot(t,e,n){let i=E(t,e.outputDir);await d(t,i,"outputDir"),await d(t,n,"build cache"),await u(i,n,"build cache");for(let r of e.versions.items){let s=a(t,r.docsDir,`versions.items[${r.id}].docsDir`);await d(t,s,`versions.items[${r.id}].docsDir`),await u(i,s,`versions.items[${r.id}].docsDir`),await u(n,s,`versions.items[${r.id}].docsDir`,"build cache")}for(let[r,s]of e.styles.entries()){let c=a(t,s,`styles[${r}]`);await d(t,c,`styles[${r}]`),await u(i,c,`styles[${r}]`),await u(n,c,`styles[${r}]`,"build cache")}return i}o(ot,"resolveSafeOutputRoot");export{Q as a,Y as b,Z as c,tt as d,et as e,ot as f};
|
|
3
|
-
//# sourceMappingURL=chunk-
|
|
3
|
+
//# sourceMappingURL=chunk-VNKWPOVJ.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{d as D}from"./chunk-EAYVCA3Z.js";import{a as v,b as w}from"./chunk-JK7ZNBUA.js";import{a}from"./chunk-AYDF3IFZ.js";import{randomUUID as no}from"crypto";import{mkdir as io,mkdtemp as ro,rm as so,writeFile as ao}from"fs/promises";import{join as f}from"path";import{fileURLToPath as R,pathToFileURL as lo}from"url";import{build as co}from"esbuild";import{posix as u}from"path";function j(t){return t.replace(/\\/g,"/")}a(j,"normalizeRoutePath");function yo(t,e){let n=j(t),r=n.split("/");return r[0]===e?r.slice(1).join("/"):n}a(yo,"localeRelativePathFor");function p(t){if(!t.startsWith("/")||t!=="/"&&t.includes("//")||/[\\?#\u0000-\u001f]/.test(t))throw new Error(`Invalid route path: "${t}"`);for(let e of t.split("/")){let n;try{n=decodeURIComponent(e)}catch{throw new Error(`Invalid route path: "${t}"`)}if(n==="."||n===".."||n.includes("/")||n.includes("\\")||/[\u0000-\u001f]/.test(n))throw new Error(`Invalid route path: "${t}"`)}return t}a(p,"assertRoutePath");function d(t){return p(t),t.split("/").map(e=>e?encodeURIComponent(decodeURIComponent(e).normalize("NFC")):"").join("/")}a(d,"canonicalRoutePath");function T(t){let e=d(t);return e==="/"?"/":`/${e.replace(/^\/+|\/+$/g,"")}/`}a(T,"normalizedBase");function C(t){let e=j(t);if(e.startsWith("/")||/[?#\u0000-\u001f]/.test(e))throw new Error(`Invalid page path: "${t}"`);if(e.split("/").some(s=>s==="."||s===".."||s===""))throw new Error(`Invalid page path: "${t}"`);let r=D(e),i=/^index$/i.test(r)?"":r.replace(/\/index$/i,"");return i?i.split("/"):[]}a(C,"pageSegments");function U(t){return C(t).map(e=>encodeURIComponent(e)).join("/")}a(U,"pageRoute");function E(t){return C(t).join("/")}a(E,"pageOutputPath");function x(t,e,n="/"){let r=T(n);return t===e?r:`${r}${t}/`}a(x,"localeRootPath");function M(t,e,n="/"){return[T(n).replace(/^\/|\/$/g,""),t===e?"":t].filter(Boolean).join("/")}a(M,"localeOutputPrefix");function ko(t,e,n,r="/"){let i=U(n);return i?`${x(t,e,r)}${i}/`:x(t,e,r)}a(ko,"routePathFor");function So(t,e,n,r="/"){let i=E(n),s=M(t,e,r);return i?u.join(s,i,"index.html"):u.join(s,"index.html")}a(So,"htmlOutputPathFor");function Do(t,e,n,r="/"){let i=E(n),s=M(t,e,r);return i?u.join(s,i,"index.md"):u.join(s,"index.md")}a(Do,"markdownOutputPathFor");function vo(t){let e=p(t).replace(/^\/+|\/+$/g,"");return e?u.join(...e.split("/").map(n=>decodeURIComponent(n)),"index.html"):"index.html"}a(vo,"routeOutputPathFor");var z={title:"Docfuse",description:"Technical documentation",basePath:"/",docsDir:"docs",outputDir:".docfuse/dist",styles:[],layout:{header:!0},markdown:{html:"sanitize",code:{},features:{},labels:{},plugins:[]},theme:{accentColor:"docfuse",darkMode:!1,radius:8,baseColor:"paper",sidebarWidth:"17.5rem",outlineWidth:"18.75rem",tokens:{}},search:{enabled:!0,provider:"compact"},extensions:[],navigation:{},versions:{current:"current",items:[{id:"current",label:"Current",docsDir:"docs",base:"/"}]},redirects:{},i18n:{defaultLocale:"zh",locales:["zh"],localeNames:{},messages:{}},ai:{llmsTxt:!0,llmsFullTxt:!0,markdownIndex:!0,pageSummaries:!0,codeExamples:!0,chunkSizeBytes:262144,llmsFullMaxBytes:10485760,llmsFullOverflow:"manifest",versions:"current"}};import{z as o}from"zod";var P=["paper","neutral","slate","zinc","stone"];import{z as G}from"zod";var m=G.string().min(1).refine(t=>{if(t.startsWith("/")){if(t.startsWith("//"))return!1;try{return p(t),!0}catch{return!1}}try{let e=new URL(t);return e.protocol==="https:"&&!e.username&&!e.password}catch{return!1}},"Resource must be an absolute site path or HTTPS URL").transform(t=>t.startsWith("/")?d(t):t);var O=o.object({canvas:o.string().optional(),foreground:o.string().optional(),text:o.string().optional(),muted:o.string().optional(),mutedSubtle:o.string().optional(),surface:o.string().optional(),surfaceSecondary:o.string().optional(),surfaceSoft:o.string().optional(),surfaceElevated:o.string().optional(),border:o.string().optional(),borderStrong:o.string().optional(),hairline:o.string().optional(),primary:o.string().optional(),primarySoft:o.string().optional(),primaryForeground:o.string().optional(),primaryDeep:o.string().optional(),accent:o.string().optional(),info:o.string().optional(),infoDeep:o.string().optional(),success:o.string().optional(),successDeep:o.string().optional(),warning:o.string().optional(),warningDeep:o.string().optional(),danger:o.string().optional(),dangerDeep:o.string().optional(),codeBackground:o.string().optional(),codeForeground:o.string().optional(),overlay:o.string().optional(),shadow:o.string().optional(),shadowSmall:o.string().optional()}).strict().optional(),N=o.object({displayFont:o.string().min(1).optional(),sansFont:o.string().min(1).optional(),monoFont:o.string().min(1).optional(),bodySize:o.string().min(1).optional(),bodyLineHeight:o.string().min(1).optional(),headingLineHeight:o.string().min(1).optional(),heading1Size:o.string().min(1).optional(),heading2Size:o.string().min(1).optional(),heading3Size:o.string().min(1).optional(),heading4Size:o.string().min(1).optional(),heading5Size:o.string().min(1).optional(),heading6Size:o.string().min(1).optional()}).strict().optional(),A=o.object({readingWidth:o.string().min(1).optional(),contentWidth:o.string().min(1).optional(),gutter:o.string().min(1).optional()}).strict().optional(),W=o.object({radiusSmall:o.string().min(1).optional(),radiusMedium:o.string().min(1).optional(),radiusLarge:o.string().min(1).optional(),radiusFull:o.string().min(1).optional()}).strict().optional(),B=o.object({durationFast:o.string().min(1).optional(),durationNormal:o.string().min(1).optional(),easing:o.string().min(1).optional()}).strict().optional(),_=o.object({colors:o.object({light:O,dark:O}).strict().optional(),typography:N,layout:A,geometry:W,motion:B}).strict(),Z=o.object({themes:o.object({light:o.string().min(1).optional(),dark:o.string().min(1).optional()}).strict().optional(),fallbackLanguage:o.string().min(1).optional(),unknownLanguage:o.enum(["warn","error","plain-text"]).optional()}).strict(),V=o.object({callouts:o.boolean().optional(),tabs:o.boolean().optional(),codeGroups:o.boolean().optional(),steps:o.boolean().optional(),terminals:o.boolean().optional(),documentBlocks:o.boolean().optional(),tables:o.boolean().optional(),codeBlocks:o.boolean().optional()}).strict(),F=o.object({copyCode:o.string().optional(),copyFailed:o.string().optional(),copySnippet:o.string().optional(),copyTerminal:o.string().optional(),terminalTitle:o.string().optional(),tabsTitle:o.string().optional(),tabItem:o.string().optional(),codeGroupTitle:o.string().optional(),codeGroupItem:o.string().optional(),taskCompleted:o.string().optional(),taskIncomplete:o.string().optional(),copySectionLink:o.string().optional(),tableTitle:o.string().optional(),copyTableCsv:o.string().optional(),downloadTableCsv:o.string().optional(),zoomTable:o.string().optional(),closeTablePreview:o.string().optional(),sortTableColumn:o.string().optional(),zoomImage:o.string().optional(),closeImagePreview:o.string().optional(),imageGallery:o.string().optional(),closeImageGallery:o.string().optional(),previousGalleryImage:o.string().optional(),nextGalleryImage:o.string().optional(),galleryThumbnails:o.string().optional(),galleryImage:o.string().optional()}).strict(),q=o.object({skipToContent:o.string().optional(),search:o.string().optional(),searchEmpty:o.string().optional(),searchUnavailable:o.string().optional(),language:o.string().optional(),primaryNavigation:o.string().optional(),theme:o.string().optional(),openSidebar:o.string().optional(),onThisPage:o.string().optional(),edit:o.string().optional(),updated:o.string().optional(),previous:o.string().optional(),next:o.string().optional(),close:o.string().optional(),source:o.string().optional(),preview:o.string().optional(),copySource:o.string().optional(),sourceCopied:o.string().optional(),quickActions:o.string().optional(),github:o.string().optional(),docsNavigation:o.string().optional(),pageNavigation:o.string().optional(),advertisement:o.string().optional(),version:o.string().optional()}).strict(),H=o.object({headingsTitle:o.string().optional(),headingsDescription:o.string().optional(),codeTitle:o.string().optional(),codeDescription:o.string().optional(),tableTitle:o.string().optional(),tableDescription:o.string().optional(),diagramTitle:o.string().optional(),diagramDescription:o.string().optional(),sourceDescription:o.string().optional(),themeDescription:o.string().optional()}).strict(),K=o.object({title:o.string().optional(),description:o.string().optional(),home:o.string().optional()}).strict(),c=o.object({label:o.string().optional(),detail:o.string().optional(),hash:o.string().optional()}).strict(),J=o.object({headings:c.optional(),inline:c.optional(),lists:c.optional(),callouts:c.optional(),code:c.optional(),tables:c.optional(),media:c.optional(),diagrams:c.optional(),disclosure:c.optional(),extensions:c.optional(),api:c.optional(),metadata:c.optional()}).strict(),Q=o.object({labels:q.optional(),brandTagline:o.string().optional(),quickActions:H.optional(),markdownElementGroups:J.optional(),markdown:F.optional(),notFound:K.optional()}).strict(),h=o.string().min(1).refine(t=>{try{return p(t),!0}catch{return!1}},"Route must be a safe absolute path").transform(d),y=o.string().url().refine(t=>{let e=new URL(t);return(e.protocol==="https:"||e.protocol==="http:")&&!e.username&&!e.password&&!e.search&&!e.hash},"URL must use HTTP(S) without credentials, a query, or a hash"),X=y.refine(t=>new URL(t).pathname==="/",{message:"siteUrl must be an HTTP(S) origin without a path"}),I=o.string().min(1).regex(/^[A-Za-z0-9](?:[A-Za-z0-9._-]*[A-Za-z0-9])?$/,"Version id must be a safe portable slug"),Y=o.object({enabled:o.boolean().optional(),provider:o.union([o.literal("compact"),o.custom(t=>typeof t=="object"&&t!==null&&!Array.isArray(t)&&typeof t.id=="string"&&(t.client==="compact"||t.client==="pagefind")&&typeof t.write=="function","search.provider must be compact or a SearchProvider object")]).optional()}).strict(),k=o.lazy(()=>o.union([o.string(),o.number().finite(),o.boolean(),o.null(),o.array(k),o.record(k)])),oo=/^[a-z][a-z0-9]*(?:-[a-z0-9]+)*$/,to=o.custom(t=>typeof t=="object"&&t!==null&&!Array.isArray(t)&&typeof t.name=="string"&&oo.test(t.name),"markdown.plugins entries must be plugin objects with a lowercase kebab-case name"),eo=o.object({resolve:o.string().min(1).regex(/^\.[\\/]/,"Extension resolve must be a project-relative path beginning with ./"),options:o.record(k).optional()}).strict(),L=o.object({title:o.string().min(1).optional(),description:o.string().optional(),siteUrl:X.optional(),basePath:h.refine(t=>t.endsWith("/"),"basePath must end with /").optional(),editUrl:y.optional(),github:y.optional(),requiredVersion:o.string().optional(),docsDir:o.string().optional(),outputDir:o.string().optional(),styles:o.array(o.string().min(1)).optional(),layout:o.object({header:o.boolean().optional()}).strict().optional(),markdown:o.object({html:o.enum(["trusted","sanitize","strip"]).optional(),code:Z.optional(),features:V.optional(),labels:F.optional(),plugins:o.array(to).optional()}).strict().optional(),theme:o.object({logo:m.optional(),logoDark:m.optional(),favicon:m.optional(),accentColor:o.string().optional(),darkMode:o.boolean().optional(),radius:o.union([o.number(),o.string()]).optional(),baseColor:o.enum(P).optional(),sidebarWidth:o.union([o.number(),o.string()]).optional(),outlineWidth:o.union([o.number(),o.string()]).optional(),tokens:_.optional()}).strict().optional(),search:Y.optional(),extensions:o.array(eo).optional(),navigation:o.record(o.string(),o.array(o.object({text:o.string().min(1),link:m}).strict())).optional(),versions:o.object({current:I,items:o.array(o.object({id:I,label:o.string().min(1),docsDir:o.string().min(1),base:h}).strict()).min(1)}).strict().optional(),redirects:o.record(h,h).optional(),advertising:o.object({image:m,href:m,alt:o.string().min(1),label:o.string().min(1).optional()}).strict().optional(),i18n:o.object({defaultLocale:o.string().optional(),locales:o.array(o.string().min(1)).min(1).optional(),localeNames:o.record(o.string(),o.string().min(1)).optional(),messages:o.record(o.string(),Q).optional()}).strict().optional(),ai:o.object({llmsTxt:o.boolean().optional(),llmsFullTxt:o.boolean().optional(),markdownIndex:o.boolean().optional(),pageSummaries:o.boolean().optional(),codeExamples:o.boolean().optional(),chunkSizeBytes:o.number().int().min(16*1024).max(4*1024*1024).optional(),llmsFullMaxBytes:o.number().int().min(16*1024).max(1024*1024*1024).optional(),llmsFullOverflow:o.enum(["manifest","error"]).optional(),versions:o.enum(["current","all"]).optional()}).strict().optional()}).strict();var po=["docfuse.config.ts","docfuse.config.mts","docfuse.config.cts","docfuse.config.js","docfuse.config.mjs","docfuse.config.cjs"];function $(){return structuredClone(z)}a($,"cloneDefaultConfig");function mo(t){let e=$(),n=t.docsDir??e.docsDir,r=t.versions?{current:t.versions.current,items:t.versions.items.map(s=>({...s}))}:{current:"current",items:[{id:"current",label:"Current",docsDir:n,base:"/"}]},i=r.items.find(s=>s.id===r.current)?.docsDir??n;return{...e,...t,docsDir:i,styles:t.styles?[...t.styles]:e.styles,layout:{header:t.layout?.header??e.layout.header},markdown:{html:t.markdown?.html??e.markdown.html,code:{...e.markdown.code,...t.markdown?.code,themes:{...e.markdown.code.themes,...t.markdown?.code?.themes}},features:{...e.markdown.features,...t.markdown?.features},labels:{...e.markdown.labels,...t.markdown?.labels},plugins:t.markdown?.plugins?[...t.markdown.plugins]:e.markdown.plugins},theme:{...e.theme,...t.theme,tokens:{colors:{light:{...e.theme.tokens.colors?.light,...t.theme?.tokens?.colors?.light},dark:{...e.theme.tokens.colors?.dark,...t.theme?.tokens?.colors?.dark}},typography:{...e.theme.tokens.typography,...t.theme?.tokens?.typography},layout:{...e.theme.tokens.layout,...t.theme?.tokens?.layout},geometry:{...e.theme.tokens.geometry,...t.theme?.tokens?.geometry},motion:{...e.theme.tokens.motion,...t.theme?.tokens?.motion}}},search:{enabled:t.search?.enabled??e.search.enabled,provider:t.search?.provider??e.search.provider},extensions:(t.extensions??e.extensions).map(s=>({...s,...s.options?{options:structuredClone(s.options)}:{}})),navigation:Object.fromEntries(Object.entries(t.navigation??e.navigation).map(([s,l])=>[s,l.map(g=>({...g}))])),versions:r,redirects:{...e.redirects,...t.redirects},...t.advertising?{advertising:{...t.advertising}}:{},i18n:{...e.i18n,...t.i18n,locales:t.i18n?.locales?[...t.i18n.locales]:e.i18n.locales,localeNames:{...e.i18n.localeNames,...t.i18n?.localeNames},messages:{...e.i18n.messages,...t.i18n?.messages}},ai:{...e.ai,...t.ai}}}a(mo,"mergeConfig");function go(t){let{defaultLocale:e,locales:n,localeNames:r={},messages:i={}}=t.i18n;if(!n.includes(e))throw new Error(`i18n.defaultLocale "${e}" must be included in i18n.locales`);if(new Set(n.map(l=>l.toLowerCase())).size!==n.length)throw new Error("i18n.locales must not contain duplicate locales");for(let l of n)try{Intl.getCanonicalLocales(l)}catch{throw new Error(`Invalid locale identifier in i18n.locales: "${l}"`)}let s=new Set(n);for(let l of[...Object.keys(r),...Object.keys(i)])if(!s.has(l))throw new Error(`i18n resource key "${l}" must be included in i18n.locales`);for(let l of Object.keys(t.navigation))if(!s.has(l))throw new Error(`navigation key "${l}" must be included in i18n.locales`)}a(go,"assertI18nConfig");function uo(t){let e=t.versions.items.map(i=>i.id),n=t.versions.items.map(i=>i.base);if(!e.includes(t.versions.current))throw new Error(`versions.current "${t.versions.current}" must match a versions.items id`);if(new Set(e.map(w)).size!==e.length)throw new Error("versions.items must not contain portable-duplicate version ids");if(new Set(n.map(w)).size!==n.length)throw new Error("versions.items must not contain duplicate bases");for(let i of t.versions.items){try{p(i.base)}catch{throw new Error(`Version base "${i.base}" must be a safe absolute route ending in /`)}if(!i.base.endsWith("/")||i.base.includes("//"))throw new Error(`Version base "${i.base}" must be an absolute path ending in /`)}if(t.versions.items.find(i=>i.id===t.versions.current)?.base!=="/")throw new Error('The current documentation version must use base "/"')}a(uo,"assertVersionConfig");function ho(t){if(t.docsDir!==void 0&&t.versions!==void 0)throw new Error("docsDir cannot be combined with versions; set docsDir on each versions.items entry");if(t.theme?.logoDark&&!t.theme.logo)throw new Error("theme.logoDark requires theme.logo");if(t.theme?.logoDark&&t.theme.darkMode!==!0)throw new Error("theme.logoDark requires theme.darkMode: true")}a(ho,"assertEffectiveInput");async function fo(t){let e=[];for(let n of po){let r=f(t,n);await v(r)&&e.push(r)}if(e.length>1)throw new Error(`Multiple Docfuse configuration files found: ${e.map(n=>n.split(/[\\/]/).at(-1)).join(", ")}`);return e[0]}a(fo,"findConfigPath");async function Vo(t){let e=await fo(t);if(!e)return $();let n=f(t,".docfuse/tmp");await io(n,{recursive:!0});let r=await ro(f(n,"config-")),i=f(r,`${no()}.mjs`),s;try{let b;try{b=R(import.meta.resolve("docfuse"))}catch{b=R(new URL("../index.ts",import.meta.url))}let S=(await co({entryPoints:[e],absWorkingDir:t,alias:{docfuse:b},bundle:!0,format:"esm",platform:"node",target:"node22",external:["@docfuse/plugins"],write:!1,sourcemap:"inline"})).outputFiles[0];if(!S)throw new Error("Failed to bundle docfuse.config.ts");await ao(i,S.contents),s=await import(`${lo(i).href}?t=${Date.now()}`)}finally{await so(r,{recursive:!0,force:!0})}let l=L.parse(s.default??{});ho(l);let g=mo(l);return go(g),uo(g),g}a(Vo,"loadConfig");export{yo as a,d as b,x as c,ko as d,So as e,Do as f,vo as g,m as h,fo as i,Vo as j};
|
|
2
|
-
//# sourceMappingURL=chunk-
|
|
1
|
+
import{d as D}from"./chunk-EAYVCA3Z.js";import{a as v,b as w}from"./chunk-JK7ZNBUA.js";import{a}from"./chunk-AYDF3IFZ.js";import{randomUUID as no}from"crypto";import{mkdir as io,mkdtemp as ro,rm as so,writeFile as ao}from"fs/promises";import{join as f}from"path";import{fileURLToPath as R,pathToFileURL as lo}from"url";import{build as co}from"esbuild";import{posix as u}from"path";function j(t){return t.replace(/\\/g,"/")}a(j,"normalizeRoutePath");function yo(t,e){let n=j(t),r=n.split("/");return r[0]===e?r.slice(1).join("/"):n}a(yo,"localeRelativePathFor");function p(t){if(!t.startsWith("/")||t!=="/"&&t.includes("//")||/[\\?#\u0000-\u001f]/.test(t))throw new Error(`Invalid route path: "${t}"`);for(let e of t.split("/")){let n;try{n=decodeURIComponent(e)}catch{throw new Error(`Invalid route path: "${t}"`)}if(n==="."||n===".."||n.includes("/")||n.includes("\\")||/[\u0000-\u001f]/.test(n))throw new Error(`Invalid route path: "${t}"`)}return t}a(p,"assertRoutePath");function d(t){return p(t),t.split("/").map(e=>e?encodeURIComponent(decodeURIComponent(e).normalize("NFC")):"").join("/")}a(d,"canonicalRoutePath");function T(t){let e=d(t);return e==="/"?"/":`/${e.replace(/^\/+|\/+$/g,"")}/`}a(T,"normalizedBase");function C(t){let e=j(t);if(e.startsWith("/")||/[?#\u0000-\u001f]/.test(e))throw new Error(`Invalid page path: "${t}"`);if(e.split("/").some(s=>s==="."||s===".."||s===""))throw new Error(`Invalid page path: "${t}"`);let r=D(e),i=/^index$/i.test(r)?"":r.replace(/\/index$/i,"");return i?i.split("/"):[]}a(C,"pageSegments");function U(t){return C(t).map(e=>encodeURIComponent(e)).join("/")}a(U,"pageRoute");function E(t){return C(t).join("/")}a(E,"pageOutputPath");function x(t,e,n="/"){let r=T(n);return t===e?r:`${r}${t}/`}a(x,"localeRootPath");function M(t,e,n="/"){return[T(n).replace(/^\/|\/$/g,""),t===e?"":t].filter(Boolean).join("/")}a(M,"localeOutputPrefix");function ko(t,e,n,r="/"){let i=U(n);return i?`${x(t,e,r)}${i}/`:x(t,e,r)}a(ko,"routePathFor");function So(t,e,n,r="/"){let i=E(n),s=M(t,e,r);return i?u.join(s,i,"index.html"):u.join(s,"index.html")}a(So,"htmlOutputPathFor");function Do(t,e,n,r="/"){let i=E(n),s=M(t,e,r);return i?u.join(s,i,"index.md"):u.join(s,"index.md")}a(Do,"markdownOutputPathFor");function vo(t){let e=p(t).replace(/^\/+|\/+$/g,"");return e?u.join(...e.split("/").map(n=>decodeURIComponent(n)),"index.html"):"index.html"}a(vo,"routeOutputPathFor");var P={title:"Docfuse",description:"Technical documentation",basePath:"/",docsDir:"docs",outputDir:".docfuse/dist",styles:[],layout:{header:!0},markdown:{html:"sanitize",code:{},features:{},labels:{},plugins:[]},theme:{accentColor:"docfuse",darkMode:!1,radius:8,baseColor:"paper",sidebarWidth:"17.5rem",outlineWidth:"18.75rem",tokens:{}},search:{enabled:!0,provider:"compact"},extensions:[],navigation:{},versions:{current:"current",items:[{id:"current",label:"Current",docsDir:"docs",base:"/"}]},redirects:{},i18n:{defaultLocale:"zh",locales:["zh"],localeNames:{},messages:{}},ai:{llmsTxt:!0,llmsFullTxt:!0,markdownIndex:!0,pageSummaries:!0,codeExamples:!0,chunkSizeBytes:262144,llmsFullMaxBytes:10485760,llmsFullOverflow:"manifest",versions:"current"}};import{z as o}from"zod";var z=["paper","neutral","slate","zinc","stone"];import{z as G}from"zod";var m=G.string().min(1).refine(t=>{if(t.startsWith("/")){if(t.startsWith("//"))return!1;try{return p(t),!0}catch{return!1}}try{let e=new URL(t);return e.protocol==="https:"&&!e.username&&!e.password}catch{return!1}},"Resource must be an absolute site path or HTTPS URL").transform(t=>t.startsWith("/")?d(t):t);var O=o.object({canvas:o.string().optional(),foreground:o.string().optional(),text:o.string().optional(),muted:o.string().optional(),mutedSubtle:o.string().optional(),surface:o.string().optional(),surfaceSecondary:o.string().optional(),surfaceSoft:o.string().optional(),surfaceElevated:o.string().optional(),border:o.string().optional(),borderStrong:o.string().optional(),hairline:o.string().optional(),primary:o.string().optional(),primarySoft:o.string().optional(),primaryForeground:o.string().optional(),primaryDeep:o.string().optional(),accent:o.string().optional(),info:o.string().optional(),infoDeep:o.string().optional(),success:o.string().optional(),successDeep:o.string().optional(),warning:o.string().optional(),warningDeep:o.string().optional(),danger:o.string().optional(),dangerDeep:o.string().optional(),codeBackground:o.string().optional(),codeForeground:o.string().optional(),overlay:o.string().optional(),shadow:o.string().optional(),shadowSmall:o.string().optional()}).strict().optional(),N=o.object({displayFont:o.string().min(1).optional(),sansFont:o.string().min(1).optional(),monoFont:o.string().min(1).optional(),bodySize:o.string().min(1).optional(),bodyLineHeight:o.string().min(1).optional(),headingLineHeight:o.string().min(1).optional(),heading1Size:o.string().min(1).optional(),heading2Size:o.string().min(1).optional(),heading3Size:o.string().min(1).optional(),heading4Size:o.string().min(1).optional(),heading5Size:o.string().min(1).optional(),heading6Size:o.string().min(1).optional()}).strict().optional(),A=o.object({readingWidth:o.string().min(1).optional(),contentWidth:o.string().min(1).optional(),gutter:o.string().min(1).optional()}).strict().optional(),W=o.object({radiusSmall:o.string().min(1).optional(),radiusMedium:o.string().min(1).optional(),radiusLarge:o.string().min(1).optional(),radiusFull:o.string().min(1).optional()}).strict().optional(),B=o.object({durationFast:o.string().min(1).optional(),durationNormal:o.string().min(1).optional(),easing:o.string().min(1).optional()}).strict().optional(),_=o.object({colors:o.object({light:O,dark:O}).strict().optional(),typography:N,layout:A,geometry:W,motion:B}).strict(),Z=o.object({themes:o.object({light:o.string().min(1).optional(),dark:o.string().min(1).optional()}).strict().optional(),fallbackLanguage:o.string().min(1).optional(),unknownLanguage:o.enum(["warn","error","plain-text"]).optional()}).strict(),V=o.object({callouts:o.boolean().optional(),tabs:o.boolean().optional(),codeGroups:o.boolean().optional(),steps:o.boolean().optional(),terminals:o.boolean().optional(),documentBlocks:o.boolean().optional(),tables:o.boolean().optional(),codeBlocks:o.boolean().optional()}).strict(),F=o.object({copyCode:o.string().optional(),copyFailed:o.string().optional(),copySnippet:o.string().optional(),copyTerminal:o.string().optional(),terminalTitle:o.string().optional(),tabsTitle:o.string().optional(),tabItem:o.string().optional(),codeGroupTitle:o.string().optional(),codeGroupItem:o.string().optional(),taskCompleted:o.string().optional(),taskIncomplete:o.string().optional(),copySectionLink:o.string().optional(),tableTitle:o.string().optional(),copyTableCsv:o.string().optional(),downloadTableCsv:o.string().optional(),zoomTable:o.string().optional(),closeTablePreview:o.string().optional(),sortTableColumn:o.string().optional(),zoomImage:o.string().optional(),closeImagePreview:o.string().optional(),imageGallery:o.string().optional(),closeImageGallery:o.string().optional(),previousGalleryImage:o.string().optional(),nextGalleryImage:o.string().optional(),galleryThumbnails:o.string().optional(),galleryImage:o.string().optional()}).strict(),q=o.object({skipToContent:o.string().optional(),search:o.string().optional(),searchEmpty:o.string().optional(),searchUnavailable:o.string().optional(),language:o.string().optional(),primaryNavigation:o.string().optional(),theme:o.string().optional(),openSidebar:o.string().optional(),onThisPage:o.string().optional(),edit:o.string().optional(),updated:o.string().optional(),previous:o.string().optional(),next:o.string().optional(),close:o.string().optional(),source:o.string().optional(),preview:o.string().optional(),copySource:o.string().optional(),sourceCopied:o.string().optional(),quickActions:o.string().optional(),github:o.string().optional(),docsNavigation:o.string().optional(),pageNavigation:o.string().optional(),advertisement:o.string().optional(),version:o.string().optional()}).strict(),H=o.object({headingsTitle:o.string().optional(),headingsDescription:o.string().optional(),codeTitle:o.string().optional(),codeDescription:o.string().optional(),tableTitle:o.string().optional(),tableDescription:o.string().optional(),diagramTitle:o.string().optional(),diagramDescription:o.string().optional(),sourceDescription:o.string().optional(),themeDescription:o.string().optional()}).strict(),K=o.object({title:o.string().optional(),description:o.string().optional(),home:o.string().optional()}).strict(),c=o.object({label:o.string().optional(),detail:o.string().optional(),hash:o.string().optional()}).strict(),J=o.object({headings:c.optional(),inline:c.optional(),lists:c.optional(),callouts:c.optional(),code:c.optional(),tables:c.optional(),media:c.optional(),diagrams:c.optional(),disclosure:c.optional(),extensions:c.optional(),api:c.optional(),metadata:c.optional()}).strict(),Q=o.object({labels:q.optional(),brandTagline:o.string().optional(),quickActions:H.optional(),markdownElementGroups:J.optional(),markdown:F.optional(),notFound:K.optional()}).strict(),h=o.string().min(1).refine(t=>{try{return p(t),!0}catch{return!1}},"Route must be a safe absolute path").transform(d),y=o.string().url().refine(t=>{let e=new URL(t);return(e.protocol==="https:"||e.protocol==="http:")&&!e.username&&!e.password&&!e.search&&!e.hash},"URL must use HTTP(S) without credentials, a query, or a hash"),X=y.refine(t=>new URL(t).pathname==="/",{message:"siteUrl must be an HTTP(S) origin without a path"}),I=o.string().min(1).regex(/^[A-Za-z0-9](?:[A-Za-z0-9._-]*[A-Za-z0-9])?$/,"Version id must be a safe portable slug"),Y=o.object({enabled:o.boolean().optional(),provider:o.union([o.literal("compact"),o.custom(t=>typeof t=="object"&&t!==null&&!Array.isArray(t)&&typeof t.id=="string"&&(t.client==="compact"||t.client==="pagefind")&&typeof t.write=="function","search.provider must be compact or a SearchProvider object")]).optional()}).strict(),k=o.lazy(()=>o.union([o.string(),o.number().finite(),o.boolean(),o.null(),o.array(k),o.record(o.string(),k)])),oo=/^[a-z][a-z0-9]*(?:-[a-z0-9]+)*$/,to=o.custom(t=>typeof t=="object"&&t!==null&&!Array.isArray(t)&&typeof t.name=="string"&&oo.test(t.name),"markdown.plugins entries must be plugin objects with a lowercase kebab-case name"),eo=o.object({resolve:o.string().min(1).regex(/^\.[\\/]/,"Extension resolve must be a project-relative path beginning with ./"),options:o.record(o.string(),k).optional()}).strict(),L=o.object({title:o.string().min(1).optional(),description:o.string().optional(),siteUrl:X.optional(),basePath:h.refine(t=>t.endsWith("/"),"basePath must end with /").optional(),editUrl:y.optional(),github:y.optional(),requiredVersion:o.string().optional(),docsDir:o.string().optional(),outputDir:o.string().optional(),styles:o.array(o.string().min(1)).optional(),layout:o.object({header:o.boolean().optional()}).strict().optional(),markdown:o.object({html:o.enum(["trusted","sanitize","strip"]).optional(),code:Z.optional(),features:V.optional(),labels:F.optional(),plugins:o.array(to).optional()}).strict().optional(),theme:o.object({logo:m.optional(),logoDark:m.optional(),favicon:m.optional(),accentColor:o.string().optional(),darkMode:o.boolean().optional(),radius:o.union([o.number(),o.string()]).optional(),baseColor:o.enum(z).optional(),sidebarWidth:o.union([o.number(),o.string()]).optional(),outlineWidth:o.union([o.number(),o.string()]).optional(),tokens:_.optional()}).strict().optional(),search:Y.optional(),extensions:o.array(eo).optional(),navigation:o.record(o.string(),o.array(o.object({text:o.string().min(1),link:m}).strict())).optional(),versions:o.object({current:I,items:o.array(o.object({id:I,label:o.string().min(1),docsDir:o.string().min(1),base:h}).strict()).min(1)}).strict().optional(),redirects:o.record(h,h).optional(),advertising:o.object({image:m,href:m,alt:o.string().min(1),label:o.string().min(1).optional()}).strict().optional(),i18n:o.object({defaultLocale:o.string().optional(),locales:o.array(o.string().min(1)).min(1).optional(),localeNames:o.record(o.string(),o.string().min(1)).optional(),messages:o.record(o.string(),Q).optional()}).strict().optional(),ai:o.object({llmsTxt:o.boolean().optional(),llmsFullTxt:o.boolean().optional(),markdownIndex:o.boolean().optional(),pageSummaries:o.boolean().optional(),codeExamples:o.boolean().optional(),chunkSizeBytes:o.number().int().min(16*1024).max(4*1024*1024).optional(),llmsFullMaxBytes:o.number().int().min(16*1024).max(1024*1024*1024).optional(),llmsFullOverflow:o.enum(["manifest","error"]).optional(),versions:o.enum(["current","all"]).optional()}).strict().optional()}).strict();var po=["docfuse.config.ts","docfuse.config.mts","docfuse.config.cts","docfuse.config.js","docfuse.config.mjs","docfuse.config.cjs"];function $(){return structuredClone(P)}a($,"cloneDefaultConfig");function mo(t){let e=$(),n=t.docsDir??e.docsDir,r=t.versions?{current:t.versions.current,items:t.versions.items.map(s=>({...s}))}:{current:"current",items:[{id:"current",label:"Current",docsDir:n,base:"/"}]},i=r.items.find(s=>s.id===r.current)?.docsDir??n;return{...e,...t,docsDir:i,styles:t.styles?[...t.styles]:e.styles,layout:{header:t.layout?.header??e.layout.header},markdown:{html:t.markdown?.html??e.markdown.html,code:{...e.markdown.code,...t.markdown?.code,themes:{...e.markdown.code.themes,...t.markdown?.code?.themes}},features:{...e.markdown.features,...t.markdown?.features},labels:{...e.markdown.labels,...t.markdown?.labels},plugins:t.markdown?.plugins?[...t.markdown.plugins]:e.markdown.plugins},theme:{...e.theme,...t.theme,tokens:{colors:{light:{...e.theme.tokens.colors?.light,...t.theme?.tokens?.colors?.light},dark:{...e.theme.tokens.colors?.dark,...t.theme?.tokens?.colors?.dark}},typography:{...e.theme.tokens.typography,...t.theme?.tokens?.typography},layout:{...e.theme.tokens.layout,...t.theme?.tokens?.layout},geometry:{...e.theme.tokens.geometry,...t.theme?.tokens?.geometry},motion:{...e.theme.tokens.motion,...t.theme?.tokens?.motion}}},search:{enabled:t.search?.enabled??e.search.enabled,provider:t.search?.provider??e.search.provider},extensions:(t.extensions??e.extensions).map(s=>({...s,...s.options?{options:structuredClone(s.options)}:{}})),navigation:Object.fromEntries(Object.entries(t.navigation??e.navigation).map(([s,l])=>[s,l.map(g=>({...g}))])),versions:r,redirects:{...e.redirects,...t.redirects},...t.advertising?{advertising:{...t.advertising}}:{},i18n:{...e.i18n,...t.i18n,locales:t.i18n?.locales?[...t.i18n.locales]:e.i18n.locales,localeNames:{...e.i18n.localeNames,...t.i18n?.localeNames},messages:{...e.i18n.messages,...t.i18n?.messages}},ai:{...e.ai,...t.ai}}}a(mo,"mergeConfig");function go(t){let{defaultLocale:e,locales:n,localeNames:r={},messages:i={}}=t.i18n;if(!n.includes(e))throw new Error(`i18n.defaultLocale "${e}" must be included in i18n.locales`);if(new Set(n.map(l=>l.toLowerCase())).size!==n.length)throw new Error("i18n.locales must not contain duplicate locales");for(let l of n)try{Intl.getCanonicalLocales(l)}catch{throw new Error(`Invalid locale identifier in i18n.locales: "${l}"`)}let s=new Set(n);for(let l of[...Object.keys(r),...Object.keys(i)])if(!s.has(l))throw new Error(`i18n resource key "${l}" must be included in i18n.locales`);for(let l of Object.keys(t.navigation))if(!s.has(l))throw new Error(`navigation key "${l}" must be included in i18n.locales`)}a(go,"assertI18nConfig");function uo(t){let e=t.versions.items.map(i=>i.id),n=t.versions.items.map(i=>i.base);if(!e.includes(t.versions.current))throw new Error(`versions.current "${t.versions.current}" must match a versions.items id`);if(new Set(e.map(w)).size!==e.length)throw new Error("versions.items must not contain portable-duplicate version ids");if(new Set(n.map(w)).size!==n.length)throw new Error("versions.items must not contain duplicate bases");for(let i of t.versions.items){try{p(i.base)}catch{throw new Error(`Version base "${i.base}" must be a safe absolute route ending in /`)}if(!i.base.endsWith("/")||i.base.includes("//"))throw new Error(`Version base "${i.base}" must be an absolute path ending in /`)}if(t.versions.items.find(i=>i.id===t.versions.current)?.base!=="/")throw new Error('The current documentation version must use base "/"')}a(uo,"assertVersionConfig");function ho(t){if(t.docsDir!==void 0&&t.versions!==void 0)throw new Error("docsDir cannot be combined with versions; set docsDir on each versions.items entry");if(t.theme?.logoDark&&!t.theme.logo)throw new Error("theme.logoDark requires theme.logo");if(t.theme?.logoDark&&t.theme.darkMode!==!0)throw new Error("theme.logoDark requires theme.darkMode: true")}a(ho,"assertEffectiveInput");async function fo(t){let e=[];for(let n of po){let r=f(t,n);await v(r)&&e.push(r)}if(e.length>1)throw new Error(`Multiple Docfuse configuration files found: ${e.map(n=>n.split(/[\\/]/).at(-1)).join(", ")}`);return e[0]}a(fo,"findConfigPath");async function Vo(t){let e=await fo(t);if(!e)return $();let n=f(t,".docfuse/tmp");await io(n,{recursive:!0});let r=await ro(f(n,"config-")),i=f(r,`${no()}.mjs`),s;try{let b;try{b=R(import.meta.resolve("docfuse"))}catch{b=R(new URL("../index.ts",import.meta.url))}let S=(await co({entryPoints:[e],absWorkingDir:t,alias:{docfuse:b},bundle:!0,format:"esm",platform:"node",target:"node22",external:["@docfuse/plugins"],write:!1,sourcemap:"inline"})).outputFiles[0];if(!S)throw new Error("Failed to bundle docfuse.config.ts");await ao(i,S.contents),s=await import(`${lo(i).href}?t=${Date.now()}`)}finally{await so(r,{recursive:!0,force:!0})}let l=L.parse(s.default??{});ho(l);let g=mo(l);return go(g),uo(g),g}a(Vo,"loadConfig");export{yo as a,d as b,x as c,ko as d,So as e,Do as f,vo as g,m as h,fo as i,Vo as j};
|
|
2
|
+
//# sourceMappingURL=chunk-WLB5K7IS.js.map
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{a as H,b as B,c as yt,d as F,e as bt,f as _,g as wt,h as Pt,i as St,k as Et}from"./chunk-
|
|
1
|
+
import{a as H,b as B,c as yt,d as F,e as bt,f as _,g as wt,h as Pt,i as St,k as Et}from"./chunk-MBDBYNPA.js";import{a as V,b as g,d as kt,e as vt}from"./chunk-GNYJERGG.js";import{a as xt,b as Dt,c as Mt,d as Ct,e as Nt,f as At}from"./chunk-VNKWPOVJ.js";import{a as ht,c as j,j as gt}from"./chunk-WLB5K7IS.js";import{a as Z}from"./chunk-5NTRNUFG.js";import{a as q}from"./chunk-U2UVR2RH.js";import{b as G}from"./chunk-EAYVCA3Z.js";import{a as X,b as O,c as ee,d as K,e as L,f as ft,h as T}from"./chunk-JK7ZNBUA.js";import{a as s}from"./chunk-AYDF3IFZ.js";import{randomUUID as Rn}from"crypto";import{mkdir as Ln,rename as Me,rm as me,writeFile as Tn}from"fs/promises";import{basename as ao,dirname as ct,join as lt,relative as $n,resolve as On}from"path";import{mkdir as Ee,open as co,rm as lo,writeFile as Ae}from"fs/promises";import{dirname as uo,join as $,posix as Tt}from"path";import{analyzeMarkdown as Rt}from"@docfuse/markdown/server/analyze";function Lt({description:e,body:t}){if(e.trim())return e.trim();let r=t.split(/\n\n+/).find(o=>{let a=o.trim();if(!a)return!1;let i=Rt(a);return i.text&&i.headings.length===0});return r?Rt(r.trim()).text:""}s(Lt,"createDeterministicSummary");var mo=1;function $t(e){return e.replace(/\r?\n/g," ").replace(/([\\[\]])/g,"\\$1")}s($t,"markdownLinkLabel");function Ot(e,t){let r=`${t.routePath}index.md`;return{title:t.title,description:t.description,routePath:g(e,t.routePath),markdownPath:g(e,r),version:t.version,locale:t.locale,status:t.status,tags:Array.isArray(t.frontmatter.tags)?t.frontmatter.tags.filter(o=>typeof o=="string"):[],owner:typeof t.frontmatter.owner=="string"?t.frontmatter.owner:void 0,headings:t.headings,lastUpdated:t.lastUpdated,frontmatter:yt(t.frontmatter)}}s(Ot,"pageMetadata");async function fe(e,t){await Ee(uo(e),{recursive:!0});let r=await co(e,"w");try{for await(let o of t)await r.write(o)}finally{await r.close()}}s(fe,"writePieces");async function Ne(e,t,r){async function*o(){yield`{"${t}":[`;let a=!0;for(let i of r)yield`${a?"":","}
|
|
2
2
|
${JSON.stringify(i,null,2)}`,a=!1;yield`${a?"":`
|
|
3
3
|
`}]}
|
|
4
4
|
`}s(o,"pieces"),await fe(e,o())}s(Ne,"writeJsonArray");function po(e,t){return t.pages.filter(r=>r.ai&&(e.ai.versions==="all"||r.version===t.currentVersion))}s(po,"selectedPages");function fo(e){if(e==='"'||e==="\\")return 2;let t=e.codePointAt(0)??0;return t===8||t===9||t===10||t===12||t===13?2:t<32?6:Buffer.byteLength(e)}s(fo,"jsonEscapedCharacterBytes");function ho(e,t,r){let o=Buffer.byteLength(JSON.stringify({...e,part:999999999,parts:999999999,content:""})+`
|
|
@@ -658,4 +658,4 @@ ${r?`Sitemap: ${r}
|
|
|
658
658
|
${a}
|
|
659
659
|
</urlset>
|
|
660
660
|
`)}s(Kr,"writeSitemap");import{createMarkdownRenderer as Fn}from"@docfuse/markdown/server";import{satisfies as In,valid as Bn,validRange as _n}from"semver";function Vr({current:e,previous:t,outputExists:r,outputValid:o=r,forceClean:a=!1}){if(a)return{mode:"clean",changedPageKeys:Object.keys(e.pages),removedPageKeys:[],reason:"forced"};if(!t)return{mode:"clean",changedPageKeys:Object.keys(e.pages),removedPageKeys:[],reason:"missing-manifest"};if(!r)return{mode:"clean",changedPageKeys:Object.keys(e.pages),removedPageKeys:Object.keys(t.pages).filter(n=>!e.pages[n]),reason:"missing-output"};if(!o)return{mode:"clean",changedPageKeys:Object.keys(e.pages),removedPageKeys:Object.keys(t.pages).filter(n=>!e.pages[n]),reason:"invalid-output"};if(e.buildFingerprint===t.buildFingerprint)return{mode:"cached",changedPageKeys:[],removedPageKeys:[],reason:"unchanged-inputs"};if(e.sharedFingerprint!==t.sharedFingerprint)return{mode:"clean",changedPageKeys:Object.keys(e.pages),removedPageKeys:Object.keys(t.pages).filter(n=>!e.pages[n]),reason:"shared-inputs-changed"};let i=Object.entries(e.pages).filter(([n,d])=>t.pages[n]?.fingerprint!==d.fingerprint).map(([n])=>n),c=Object.keys(t.pages).filter(n=>!e.pages[n]);return i.length===0&&c.length===0?{mode:"clean",changedPageKeys:Object.keys(e.pages),removedPageKeys:[],reason:"unclassified-inputs-changed"}:{mode:"incremental",changedPageKeys:i,removedPageKeys:c,reason:"page-inputs-changed"}}s(Vr,"planBuild");import{copyFile as hn,mkdir as gn,readFile as Wr,readdir as yn,stat as bn}from"fs/promises";import{dirname as wn,relative as kn,resolve as rt}from"path";var ot=16;function Jr(e,t){return kn(rt(e),rt(t)).replace(/\\/g,"/")}s(Jr,"portablePath");async function Xr(e){async function t(r){let o=await yn(r,{withFileTypes:!0});return(await Promise.all(o.map(async a=>{let i=rt(r,a.name);if(a.isSymbolicLink())throw new Error(`Generated output must not be a symbolic link: ${i}`);return a.isDirectory()?t(i):a.isFile()?[i]:[]}))).flat()}return s(t,"walk"),t(e)}s(Xr,"outputFilesUnder");async function Yr(e){let t=(await Xr(e)).sort(),r=await F(t,ot,async o=>{let a=await Wr(o);return[Jr(e,o),{fingerprint:B(a),size:a.byteLength}]});return Object.fromEntries(r)}s(Yr,"captureBuildOutputs");async function Qr(e,t){try{let r=Object.keys(t).sort(),o=(await Xr(e)).map(i=>Jr(e,i)).sort();return o.length!==r.length||o.some((i,c)=>i!==r[c])?!1:(await F(Object.entries(t),ot,async([i,c])=>{let n=T(e,i,`cached output ${i}`),d=await bn(n);return!d.isFile()||d.size!==c.size?!1:B(await Wr(n))===c.fingerprint})).every(Boolean)}catch(r){if(r.code==="ENOENT")return!1;throw r}}s(Qr,"verifyBuildOutputs");async function Zr(e,t,r){await F(Object.keys(r),ot,async o=>{let a=T(e,o,`cached output ${o}`),i=T(t,o,`staged output ${o}`);await gn(wn(i),{recursive:!0}),await hn(a,i)})}s(Zr,"copyBuildOutputs");import{readFile as st,readdir as Pn}from"fs/promises";import{dirname as eo,join as Q,relative as Sn,resolve as ue}from"path";import{fileURLToPath as at}from"url";import{detectMarkdownAssets as xn}from"@docfuse/markdown/server/analyze";var De=16;function it(e,t){return Sn(ue(e),ue(t)).replace(/\\/g,"/")}s(it,"portablePath");function de(e){return JSON.stringify([e.version,e.sourceRelativePath])}s(de,"buildPageKey");async function to(e){async function t(r){let o=await Pn(r,{withFileTypes:!0});return(await Promise.all(o.map(async a=>{let i=Q(r,a.name);if(a.isDirectory())return t(i);if(a.isSymbolicLink())throw new Error(`Documentation support files must not use symbolic links: ${it(e,i)}`);return!a.isFile()||/\.mdx?$/i.test(a.name)?[]:[i]}))).flat()}return s(t,"walk"),t(e)}s(to,"supportFilesUnder");async function Dn(e){let t=[...new Set(e.map(o=>ue(o)))].sort(),r=(await F(t,De,async o=>{try{return{path:o,fingerprint:B(await st(o))}}catch(a){if(!a||typeof a!="object"||!("code"in a)||a.code!=="ENOENT")throw a;return null}})).filter(o=>o!==null);return H(r)}s(Dn,"fingerprintExistingFiles");async function nt(e){try{return await to(e)}catch(t){if(t&&typeof t=="object"&&"code"in t&&t.code==="ENOENT")return[];throw t}}s(nt,"filesUnderIfPresent");async function Mn(){let e=eo(at(import.meta.url)),t=[];try{let r=at(import.meta.resolve("@docfuse/markdown/theme")),o=eo(r);t.push(Q(o,"tokens.css"),Q(o,"styles.css"),Q(o,"theme.css"),Q(o,"base.css"),r)}catch{}return Dn([...await nt(e),...await nt(Q(e,"render")),...await nt(at(new URL("../render",import.meta.url))),...t])}s(Mn,"runtimeFingerprint");async function Cn(e,t,r){let o=[...new Set(t.versions.items.map(n=>n.docsDir))].map(n=>K(e,n,"docsDir")),a=(await Promise.all(o.map(n=>to(n)))).flat();for(let n of t.styles)a.push(K(e,n,"styles"));let i=[...new Set(a.map(n=>ue(n)))].filter(n=>!r.has(n)).sort(),c=await F(i,De,async n=>({path:it(e,n),fingerprint:B(await st(n))}));return H(c)}s(Cn,"supportFingerprint");function Nn(e){return{sourceRelativePath:e.sourceRelativePath,relativePath:e.relativePath,version:e.version,versionBase:e.versionBase,docsDir:e.docsDir,locale:e.locale,routePath:e.routePath,outputPath:e.outputPath,markdownOutputPath:e.markdownOutputPath,title:e.title,description:e.description,order:e.order,group:e.group,status:e.status,search:e.search,ai:e.ai,body:e.body,transformedSource:e.transformedSource,headings:e.headings,searchText:e.searchText,codeExamples:e.codeExamples,lastUpdated:e.lastUpdated,...e.previous?{previous:e.previous}:{},...e.next?{next:e.next}:{},frontmatter:e.frontmatter}}s(Nn,"serializablePage");function An(e,t){return{sidebar:e.sidebar[t.version]?.[t.locale]??[],nav:e.nav[t.version]?.[t.locale]??[],locales:e.locales,defaultLocale:e.defaultLocale,versions:e.versions,currentVersion:e.currentVersion}}s(An,"pageLayoutContext");function En(e){let t=e.search.provider;return{...e,markdown:{...e.markdown,plugins:e.markdown.plugins.map(r=>({name:r.name,version:r.version??"",cacheKey:r.cacheKey??null}))},search:{...e.search,provider:typeof t=="string"?t:{id:t.id,client:t.client,version:t.version??"",cacheKey:t.cacheKey??null}}}}s(En,"serializableConfig");async function ro(e,t,r,o=H({extensions:[]})){let a=new Map;await F(r.pages,De,async l=>{if(!G(l.relativePath))return;let m=ke(l.body).imports,p=await br(m,l.sourcePath,e),w=await F(p,De,async h=>({path:it(e,h),fingerprint:B(await st(h))}));a.set(de(l),w.sort((h,S)=>h.path.localeCompare(S.path)))});let i=new Set([...a.values()].flat().map(l=>ue(e,l.path))),c=H(En(t)),n=H({docfuseVersion:q,runtimeFingerprint:await Mn(),configFingerprint:c,benchmarkReport:process.env.DOCFUSE_BENCHMARK_REPORT==="1",extensionFingerprint:o,math:r.pages.some(l=>xn(l.body,t.markdown.plugins,G(l.relativePath)?"mdx":"markdown").math),playground:r.pages.some(l=>l.frontmatter.layout==="playground"),support:await Cn(e,t,i)}),d=Object.fromEntries(r.pages.map(l=>[de(l),{fingerprint:H({page:Nn(l),localComponents:a.get(de(l))??[],layout:An(r,l)}),outputPath:l.outputPath,markdownOutputPath:l.markdownOutputPath,assetOutputPaths:[...ce([l])].sort()}])),u=H({sharedFingerprint:n,pages:d});return{schemaVersion:3,docfuseVersion:q,buildFingerprint:u,sharedFingerprint:n,pages:d,outputs:{}}}s(ro,"createBuildManifest");function Un(e,t){if(!Bn(e))throw new Error(`Invalid Docfuse version: ${e}`);if(!_n(t))throw new Error(`Invalid requiredVersion range: ${t}`);return In(e,t)}s(Un,"versionSatisfies");function qn(e){if(e.requiredVersion&&!Un(q,e.requiredVersion))throw new Error(`Docfuse ${q} does not satisfy requiredVersion ${e.requiredVersion}`)}s(qn,"assertRequiredVersion");async function oo({cwd:e,config:t,graph:r,pages:o,previousPages:a,renderer:i,writeSharedAssets:c,extensions:n}){await zr({cwd:e,config:t,graph:r,pages:o,previousPages:a,renderer:i,writeSharedAssets:c}),await vt(e,t,r),await Kr(e,t,r),await Gr(e,t),await Ft(e,t,r),await wt(e,t,r),await n.generate(L(e,t.outputDir),r.pages),process.env.DOCFUSE_BENCHMARK_REPORT==="1"&&await Tn(lt(L(e,t.outputDir),".benchmark.json"),JSON.stringify({maxRssBytes:process.resourceUsage().maxRSS*1024}))}s(oo,"writeBuildOutputs");function no(e){return lt(ct(e),`.${ao(e)}.backup`)}s(no,"outputBackupRoot");async function jn(e){let t=no(e);await X(t)&&(await X(e)?await me(t,{recursive:!0,force:!0}):await Me(t,e))}s(jn,"recoverInterruptedOutputReplacement");async function Hn(e,t){let r=no(e),o=await X(e);try{o&&await Me(e,r),await Me(t,e)}catch(a){throw o&&await X(r)&&(await me(e,{recursive:!0,force:!0}),await Me(r,e)),a}await me(r,{recursive:!0,force:!0})}s(Hn,"replaceOutputDirectory");async function zn(e,t,r,o){let a=L(e,t.outputDir),i=new Set(o.flatMap(c=>[c.outputPath,c.markdownOutputPath]).map(O));await Promise.all(r.flatMap(c=>[c.outputPath,c.markdownOutputPath].filter(n=>!i.has(O(n))).map(n=>me(T(a,n,`removed page output ${n}`),{force:!0}))))}s(zn,"removeDeletedPageOutputs");async function Gn(e,t,r,o,a){await jn(o);let i=await Et(e.cwd,Dt(e.cwd),r.extensions),c=await bt(e.cwd,r,i),n=await ro(e.cwd,r,c,i.fingerprint),d=e.noCache?void 0:await Mt(t),u=await X(o),l=u&&d?await Qr(o,d.outputs):u,m=Vr({current:n,previous:d,outputExists:u,outputValid:l,forceClean:e.forceClean||e.noCache}),p=e.renderer??Fn();if(m.mode==="cached")return Z(`Built ${r.outputDir} (cache hit)`),{config:r,graph:c,incremental:!1,cached:!0,mode:m.mode,changedPages:[],partialReload:!1,reason:m.reason};let w=new Map(c.pages.map(f=>[de(f),f])),h=m.changedPageKeys.flatMap(f=>{let M=w.get(f);return M?[M]:[]}),S=lt(ct(o),`.${ao(o)}.tmp-${Rn()}`),D={...r,outputDir:$n(On(e.cwd),S)};await Ln(ct(S),{recursive:!0});try{if(m.mode==="incremental"){await Zr(o,S,d?.outputs??{}),await oo({cwd:e.cwd,config:D,graph:c,pages:h,previousPages:d?Object.values(d.pages):[],renderer:p,writeSharedAssets:!1,extensions:i});let f=m.removedPageKeys.flatMap(M=>{let x=d?.pages[M];return x?[x]:[]});await zn(e.cwd,D,f,Object.values(n.pages))}else p.clear(),await oo({cwd:e.cwd,config:D,graph:c,pages:c.pages,renderer:p,writeSharedAssets:!0,extensions:i});await a(),await Hn(o,S)}finally{await me(S,{recursive:!0,force:!0})}let b={...n,outputs:await Yr(o)};return await a(),await Ct(t,b),Z(`Built ${r.outputDir} (${m.mode}: ${m.reason})`),{config:r,graph:c,incremental:m.mode==="incremental",cached:!1,mode:m.mode,changedPages:[...new Set(h.map(f=>f.sourceRelativePath))],partialReload:m.mode==="incremental"&&m.changedPageKeys.length===1&&m.removedPageKeys.length===0&&d?.pages[m.changedPageKeys[0]??""]?.outputPath===n.pages[m.changedPageKeys[0]??""]?.outputPath,reason:m.reason}}s(Gn,"runBuildLocked");async function bl(e){let t=xt(e.cwd);await ft(e.cwd,t,"build cache");let r=await gt(e.cwd);qn(r);let o=await At(e.cwd,r,t);return Nt(t,a=>Gn(e,t,r,o,a))}s(bl,"runBuild");export{Un as a,bl as b};
|
|
661
|
-
//# sourceMappingURL=chunk-
|
|
661
|
+
//# sourceMappingURL=chunk-ZJMAZ2NN.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{a as m,b as f,e as p,f as l}from"./chunk-
|
|
2
|
-
//# sourceMappingURL=clean-
|
|
1
|
+
import{a as m,b as f,e as p,f as l}from"./chunk-VNKWPOVJ.js";import{j as s}from"./chunk-WLB5K7IS.js";import{a as n}from"./chunk-5NTRNUFG.js";import"./chunk-U2UVR2RH.js";import"./chunk-EAYVCA3Z.js";import"./chunk-JK7ZNBUA.js";import{a as c}from"./chunk-AYDF3IFZ.js";import{readdir as R,rm as o}from"fs/promises";import{basename as h,dirname as g,join as b}from"path";async function x({cwd:t}){let i=await s(t),r=m(t),a=await l(t,i,r);await p(r,async()=>{let u=g(a),d=h(a).replace(/[.*+?^${}()|[\]\\]/g,"\\$&"),w=new RegExp(`^\\.${d}\\.(?:backup|(?:tmp|backup)-[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12})$`,"i"),v=await R(u,{withFileTypes:!0}).catch(e=>{if(e.code==="ENOENT")return[];throw e});await Promise.all(v.filter(e=>w.test(e.name)).map(e=>o(b(u,e.name),{recursive:!0,force:!0}))),await o(a,{recursive:!0,force:!0}),await o(r,{recursive:!0,force:!0}),await o(f(t),{recursive:!0,force:!0})}),n(`Removed ${i.outputDir}, .docfuse/cache, and temporary or interrupted build files`)}c(x,"runClean");export{x as runClean};
|
|
2
|
+
//# sourceMappingURL=clean-UX77CVWS.js.map
|
package/dist/cli.js
CHANGED
|
@@ -13,5 +13,5 @@ Commands:
|
|
|
13
13
|
Preview .docfuse/dist on a custom local port
|
|
14
14
|
check Run documentation checks
|
|
15
15
|
deploy Generate deployment guidance
|
|
16
|
-
`)}l(g,"printHelp");function a(n,o){let t=n[o];if(t!==void 0)throw new Error(`Unknown option: ${t}`)}l(a,"assertArgumentCount");async function m(n,o=process.cwd()){let t=n[0]??"help";if(t==="help"||t==="--help"||t==="-h"){a(n,1),g();return}if(t==="init"){let{runInit:r}=await import("./init-
|
|
16
|
+
`)}l(g,"printHelp");function a(n,o){let t=n[o];if(t!==void 0)throw new Error(`Unknown option: ${t}`)}l(a,"assertArgumentCount");async function m(n,o=process.cwd()){let t=n[0]??"help";if(t==="help"||t==="--help"||t==="-h"){a(n,1),g();return}if(t==="init"){let{runInit:r}=await import("./init-FKCULN6Y.js");return r({cwd:o,...h(n)})}if(t==="build"){let{runBuild:r}=await import("./build-JLZA6YQL.js");return r({cwd:o,...d(n)})}if(t==="clean"){a(n,1);let{runClean:r}=await import("./clean-UX77CVWS.js");return r({cwd:o})}if(t==="dev"){let{runDev:r}=await import("./dev-5F4CENXE.js");return r({cwd:o,port:u(n)})}if(t==="preview"){let{runPreview:r}=await import("./preview-GB2IAUZO.js"),i=u(n);return r({cwd:o,port:i})}if(t==="check"){a(n,1);let{runCheck:r}=await import("./check-CHKAU5KY.js");return r({cwd:o})}if(t==="deploy"){a(n,1);let{runDeploy:r}=await import("./deploy-6ZHXSNYI.js");return r({cwd:o})}throw new Error(`Unknown command: ${t}`)}l(m,"runCli");m(process.argv.slice(2)).catch(n=>{f(n instanceof Error?n.message:String(n)),process.exitCode=1});
|
|
17
17
|
//# sourceMappingURL=cli.js.map
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{j as g}from"./chunk-
|
|
1
|
+
import{j as g}from"./chunk-WLB5K7IS.js";import{a as d}from"./chunk-5NTRNUFG.js";import"./chunk-EAYVCA3Z.js";import{a as i,e as f}from"./chunk-JK7ZNBUA.js";import{a}from"./chunk-AYDF3IFZ.js";import{mkdir as y,readFile as h,writeFile as $}from"fs/promises";import{join as r}from"path";function k(o){return`"${o.replace(/[\\"$]/g,"\\$&")}"`}a(k,"quoteNginxValue");async function b(o){if(await i(r(o,"pnpm-lock.yaml")))return"pnpm";if(await i(r(o,"yarn.lock")))return"yarn";try{let e=JSON.parse(await h(r(o,"package.json"),"utf8"));if(typeof e.packageManager=="string"){if(e.packageManager.startsWith("pnpm@"))return"pnpm";if(e.packageManager.startsWith("yarn@"))return"yarn"}}catch(e){if(e.code!=="ENOENT"&&!(e instanceof SyntaxError))throw e}return"npm"}a(b,"detectPackageManager");function w(o,e,s){let t=o.replaceAll("\\","/"),c=k(`/var/www/docfuse/${t.replace(/^\/+/,"")}`),u=e.replace(/\/$/,"").replace(/[.*+?^${}()|[\]\\]/g,"\\$&"),p=e==="/"?` location / {
|
|
2
2
|
try_files $uri $uri/ =404;
|
|
3
3
|
}`:` location = ${e.replace(/\/$/,"")} {
|
|
4
4
|
return 308 ${e};
|
|
@@ -141,4 +141,4 @@ server {
|
|
|
141
141
|
${p}
|
|
142
142
|
}
|
|
143
143
|
`}}a(w,"createGuides");async function E({cwd:o}){let e=await g(o),s=f(o,e.outputDir);if(!await i(r(s,"index.html")))throw new Error(`Build output not found at ${e.outputDir}. Run docfuse build before docfuse deploy.`);let t=r(o,".docfuse/deploy"),c=await b(o);await y(t,{recursive:!0});for(let[u,p]of Object.entries(w(e.outputDir,e.basePath,c)))await $(r(t,u),p);d(`Wrote deployment guides to ${t}`)}a(E,"runDeploy");export{E as runDeploy};
|
|
144
|
-
//# sourceMappingURL=deploy-
|
|
144
|
+
//# sourceMappingURL=deploy-6ZHXSNYI.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{a as b}from"./chunk-FF7ZHS4U.js";import{b as g}from"./chunk-
|
|
2
|
-
//# sourceMappingURL=dev-
|
|
1
|
+
import{a as b}from"./chunk-FF7ZHS4U.js";import{b as g}from"./chunk-ZJMAZ2NN.js";import"./chunk-MBDBYNPA.js";import{b as h}from"./chunk-GNYJERGG.js";import"./chunk-XYJ2OBL3.js";import{a as B}from"./chunk-VNKWPOVJ.js";import"./chunk-WLB5K7IS.js";import{a as v,b as f}from"./chunk-5NTRNUFG.js";import"./chunk-U2UVR2RH.js";import"./chunk-EAYVCA3Z.js";import{c as p,e as m}from"./chunk-JK7ZNBUA.js";import{a as o}from"./chunk-AYDF3IFZ.js";import w from"chokidar";import{createMarkdownRenderer as S}from"@docfuse/markdown/server";import{relative as P,resolve as k,sep as R}from"path";function D({build:i,reload:c,onBuildError:l=o(t=>f(t instanceof Error?t.message:String(t)),"onBuildError"),onBuildOk:n,debounceMs:s=80}){let t,u,e=!1,r=!1,a=o(()=>{if(t=void 0,!r){if(u){e=!0;return}u=(async()=>{try{let d=await i();r||(n?.(),c(d))}catch(d){l(d)}finally{u=void 0,e&&!r&&(e=!1,t=setTimeout(a,0))}})()}},"run");return{schedule(){if(!r){if(u){e=!0;return}t&&clearTimeout(t),t=setTimeout(a,s)}},async close(){r=!0,e=!1,t&&clearTimeout(t),t=void 0,await u}}}o(D,"createBuildScheduler");async function y({cwd:i,port:c}){let l=S(),n=await g({cwd:i,renderer:l}),s=await b({root:o(()=>m(i,n.config.outputDir),"root"),port:c,liveReload:!0,basePath:o(()=>n.config.basePath,"basePath")}),t=w.watch(".",{cwd:i,ignoreInitial:!0,ignored:o(e=>{let r=k(i,e),a=P(i,r).split(R);return a.includes("node_modules")||a.includes(".git")||a.includes(".docfuse")||a.some(d=>/^\..+\.(?:tmp|backup)-/.test(d))?!0:p(m(i,n.config.outputDir),r)||p(B(i),r)},"ignored")}),u=D({build:o(async()=>{n=await g({cwd:i,renderer:l});let e=n.changedPages.flatMap(r=>{let a=n.graph.pages.find(d=>d.sourceRelativePath===r);return a?[h(n.config,a.routePath)]:[]});return{protocol:1,type:"update",mode:n.partialReload&&e.length===1?"page":"full",routes:e}},"build"),reload:o(e=>s.reload(e),"reload"),onBuildError:o(e=>{let r=e instanceof Error?e.message:String(e);f("Build error:",r),s.sendBuildError(r)},"onBuildError"),onBuildOk:o(()=>s.sendBuildOk(),"onBuildOk")});return t.on("all",()=>u.schedule()),t.on("error",e=>{let r=e instanceof Error?e.message:String(e);f("File watcher error:",r),s.sendBuildError(r)}),{port:s.port,close:o(async()=>{await t.close(),await u.close(),await s.close()},"close")}}o(y,"startDevServer");async function z({cwd:i,port:c=3333}){let l=await y({cwd:i,port:c});return v(`Dev server running at http://127.0.0.1:${l.port}/`),l}o(z,"runDev");export{z as runDev};
|
|
2
|
+
//# sourceMappingURL=dev-5F4CENXE.js.map
|
package/dist/index.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{c as n,f,g as r}from"./chunk-GNYJERGG.js";import"./chunk-XYJ2OBL3.js";import{a as t}from"./chunk-
|
|
1
|
+
import{c as n,f,g as r}from"./chunk-GNYJERGG.js";import"./chunk-XYJ2OBL3.js";import{a as t}from"./chunk-U2UVR2RH.js";import"./chunk-JK7ZNBUA.js";import{a as e}from"./chunk-AYDF3IFZ.js";function i(o){return o}e(i,"defineConfig");export{f as DOCFUSE_EXTENSION_API_VERSION,i as defineConfig,r as defineExtension,n as defineSearchProvider,t as docfuseVersion};
|
|
2
2
|
//# sourceMappingURL=index.js.map
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{a as d}from"./chunk-5NTRNUFG.js";import{a as b}from"./chunk-
|
|
1
|
+
import{a as d}from"./chunk-5NTRNUFG.js";import{a as b}from"./chunk-U2UVR2RH.js";import{a as k,d as S}from"./chunk-EAYVCA3Z.js";import{a as T,d as j,f as N}from"./chunk-JK7ZNBUA.js";import{a as l}from"./chunk-AYDF3IFZ.js";import{mkdir as U,readFile as B,readdir as G,rm as V,rmdir as Y,writeFile as _}from"fs/promises";import{dirname as W,isAbsolute as Q,join as E}from"path";import{createInterface as Z}from"readline/promises";import{join as y}from"path";var R=`/**
|
|
2
2
|
* Minimal declarations for trusted project-local TSX components.
|
|
3
3
|
*
|
|
4
4
|
* Docfuse intentionally does not publish or emulate a UI component module.
|
|
@@ -67,5 +67,5 @@ export default defineConfig({
|
|
|
67
67
|
locales: [${n.map(i=>`'${i}'`).join(", ")}]
|
|
68
68
|
}
|
|
69
69
|
})
|
|
70
|
-
`}l(H,"configTemplate");function O(e){let{docsDir:t,defaultLocale:n,locales:i,includeContent:r,includeConfig:c}=e,a={[y(t,"docfuse-env.d.ts")]:R};if(c&&(a["docfuse.config.ts"]=H(t,n,i)),!r)return a;for(let u of i){let p=u===n?t:y(t,u),s=q(u);a[y(p,"index.md")]=s?.index??A,s&&(a[y(p,"guide.md")]=s.guide)}return a}l(O,"createInitFiles");async function J(e,t=""){let n;try{n=await G(e,{withFileTypes:!0})}catch(r){if(r.code==="ENOENT")return[];throw r}let i=[];for(let r of n){let c=t?E(t,r.name):r.name;if(r.isFile()&&k(r.name)&&i.push(c),r.isDirectory()&&(t||r.name!=="public"))for(let a of await J(E(e,r.name),c))i.push(a)}return i.sort((r,c)=>r.localeCompare(c))}l(J,"listMarkdownFiles");function ee(e,t){for(let n of t)try{Intl.getCanonicalLocales(n)}catch{throw new Error(`Invalid locale: ${n}`)}if(new Set(t.map(n=>n.toLowerCase())).size!==t.length)throw new Error("Locales must not contain duplicates");if(!t.some(n=>n.toLowerCase()===e.toLowerCase()))throw new Error(`Default locale ${e} must be included in locales`)}l(ee,"validateLocaleSelection");async function te(e=Z({input:process.stdin,output:process.stdout})){try{let n=((await e.question("Existing documents found. Enter their locale, or a comma-separated locale list (default: zh): ")).trim()||"zh").split(",").map(i=>i.trim());if(n.some(i=>!i))throw new Error("Locales must be a comma-separated list of locale identifiers");return n}catch(t){throw t.code==="ABORT_ERR"?new Error("Docfuse initialization cancelled"):t}finally{e.close()}}l(te,"promptForLocales");function ne(e,t){return e.length===t.length&&e.every((n,i)=>n.toLowerCase()===t[i]?.toLowerCase())}l(ne,"sameLocales");function oe(e,t){if(e.docsDir&&e.docsDir!==t.docsDir)throw new Error(`--docs-dir ${e.docsDir} conflicts with configured docsDir ${t.docsDir}`);if(e.locale&&e.locale.toLowerCase()!==t.i18n.defaultLocale.toLowerCase())throw new Error(`--locale ${e.locale} conflicts with configured defaultLocale ${t.i18n.defaultLocale}`);if(e.locales&&!ne(e.locales,t.i18n.locales))throw new Error(`--locales ${e.locales.join(",")} conflicts with configured locales ${t.i18n.locales.join(",")}`)}l(oe,"assertOptionsMatchConfig");function $(e){return S(e.replace(/\\/g,"/")).normalize("NFC").toLocaleLowerCase("en-US")}l($,"portablePageKey");function ie(e,t,n){if(!e.length)return[];let i=[],r=e.map(s=>s.replace(/\\/g,"/")),c=l(s=>n==="."?s:`${n.replace(/\\/g,"/")}/${s}`,"displayPath"),a=t.normalize("NFC").toLocaleLowerCase("en-US");r.some(s=>{let h=$(s);return h==="index"||h===`${a}/index`})||i.push(`no default-language index.md or index.mdx was found in ${n}`);let p=new Map;for(let s of r)s.startsWith(`${t}/`)||p.set($(s),s);for(let s of r){if(!s.startsWith(`${t}/`))continue;let h=s.slice(t.length+1),g=p.get($(h));g&&i.push(`${c(g)} and ${c(s)} map to the same default-language page; keep only one source`)}return i}l(ie,"existingContentWarnings");async function re(e,t){let n=[],i=e;for(;!await T(i);){n.push(i);let r=W(i);if(r===i)break;i=r}for(let r of n.reverse())try{await U(r),t.push(r)}catch(c){if(c.code!=="EEXIST")throw c}}l(re,"createMissingDirectoryChain");async function De(e,t={}){let n=e.targetDir?E(e.cwd,e.targetDir):e.cwd,{findConfigPath:i,loadConfig:r}=await import("./load-
|
|
71
|
-
//# sourceMappingURL=init-
|
|
70
|
+
`}l(H,"configTemplate");function O(e){let{docsDir:t,defaultLocale:n,locales:i,includeContent:r,includeConfig:c}=e,a={[y(t,"docfuse-env.d.ts")]:R};if(c&&(a["docfuse.config.ts"]=H(t,n,i)),!r)return a;for(let u of i){let p=u===n?t:y(t,u),s=q(u);a[y(p,"index.md")]=s?.index??A,s&&(a[y(p,"guide.md")]=s.guide)}return a}l(O,"createInitFiles");async function J(e,t=""){let n;try{n=await G(e,{withFileTypes:!0})}catch(r){if(r.code==="ENOENT")return[];throw r}let i=[];for(let r of n){let c=t?E(t,r.name):r.name;if(r.isFile()&&k(r.name)&&i.push(c),r.isDirectory()&&(t||r.name!=="public"))for(let a of await J(E(e,r.name),c))i.push(a)}return i.sort((r,c)=>r.localeCompare(c))}l(J,"listMarkdownFiles");function ee(e,t){for(let n of t)try{Intl.getCanonicalLocales(n)}catch{throw new Error(`Invalid locale: ${n}`)}if(new Set(t.map(n=>n.toLowerCase())).size!==t.length)throw new Error("Locales must not contain duplicates");if(!t.some(n=>n.toLowerCase()===e.toLowerCase()))throw new Error(`Default locale ${e} must be included in locales`)}l(ee,"validateLocaleSelection");async function te(e=Z({input:process.stdin,output:process.stdout})){try{let n=((await e.question("Existing documents found. Enter their locale, or a comma-separated locale list (default: zh): ")).trim()||"zh").split(",").map(i=>i.trim());if(n.some(i=>!i))throw new Error("Locales must be a comma-separated list of locale identifiers");return n}catch(t){throw t.code==="ABORT_ERR"?new Error("Docfuse initialization cancelled"):t}finally{e.close()}}l(te,"promptForLocales");function ne(e,t){return e.length===t.length&&e.every((n,i)=>n.toLowerCase()===t[i]?.toLowerCase())}l(ne,"sameLocales");function oe(e,t){if(e.docsDir&&e.docsDir!==t.docsDir)throw new Error(`--docs-dir ${e.docsDir} conflicts with configured docsDir ${t.docsDir}`);if(e.locale&&e.locale.toLowerCase()!==t.i18n.defaultLocale.toLowerCase())throw new Error(`--locale ${e.locale} conflicts with configured defaultLocale ${t.i18n.defaultLocale}`);if(e.locales&&!ne(e.locales,t.i18n.locales))throw new Error(`--locales ${e.locales.join(",")} conflicts with configured locales ${t.i18n.locales.join(",")}`)}l(oe,"assertOptionsMatchConfig");function $(e){return S(e.replace(/\\/g,"/")).normalize("NFC").toLocaleLowerCase("en-US")}l($,"portablePageKey");function ie(e,t,n){if(!e.length)return[];let i=[],r=e.map(s=>s.replace(/\\/g,"/")),c=l(s=>n==="."?s:`${n.replace(/\\/g,"/")}/${s}`,"displayPath"),a=t.normalize("NFC").toLocaleLowerCase("en-US");r.some(s=>{let h=$(s);return h==="index"||h===`${a}/index`})||i.push(`no default-language index.md or index.mdx was found in ${n}`);let p=new Map;for(let s of r)s.startsWith(`${t}/`)||p.set($(s),s);for(let s of r){if(!s.startsWith(`${t}/`))continue;let h=s.slice(t.length+1),g=p.get($(h));g&&i.push(`${c(g)} and ${c(s)} map to the same default-language page; keep only one source`)}return i}l(ie,"existingContentWarnings");async function re(e,t){let n=[],i=e;for(;!await T(i);){n.push(i);let r=W(i);if(r===i)break;i=r}for(let r of n.reverse())try{await U(r),t.push(r)}catch(c){if(c.code!=="EEXIST")throw c}}l(re,"createMissingDirectoryChain");async function De(e,t={}){let n=e.targetDir?E(e.cwd,e.targetDir):e.cwd,{findConfigPath:i,loadConfig:r}=await import("./load-ZP2SORMU.js"),c=!!await i(n),a=c?await r(n):void 0;a&&oe(e,a);let u=a?.docsDir??e.docsDir??"docs";if(Q(u))throw new Error("docsDir must be a relative path");let p=j(n,u,"docsDir");await N(n,p,"docsDir");let s=await J(p),h=s.length>0,g=e.locales;if(h&&!c&&!e.locale&&!g){let o=e.localePrompt??(process.stdin.isTTY&&process.stdout.isTTY?te:void 0);if(!o){let f=s[0]??"";throw new Error(`Found ${s.length} existing Markdown file(s) in "${u}" (e.g. "${f}"), but cannot determine their language in a non-interactive environment. Specify the locale explicitly: docfuse init --locale <locale> (e.g. --locale zh)`)}g=await o()}let D=a?.i18n.defaultLocale??e.locale??g?.[0]??"zh";g=a?.i18n.locales??g??[D],ee(D,g);let M=O({docsDir:u,defaultLocale:D,locales:g,includeContent:!h,includeConfig:!c}),C=[],P=[],F=ie(s,D,u);for(let[o,f]of Object.entries(M)){let w=E(n,o);try{let x=await B(w,"utf8");P.push(o),x!==f&&F.push(`${o} already exists with different content`)}catch(x){let v=x.code;if(v==="EISDIR")throw new Error(`Cannot create ${o} because a directory exists at that path`);if(v!=="ENOENT")throw x;C.push({relativePath:o,content:f,fullPath:w})}}let m={mode:c?"configured":h?"adopt":"create",createFiles:C,keepFiles:P,warnings:F};if(!m.createFiles.length){for(let o of m.warnings)d(`Warning: ${o}`);d(`Docfuse is already initialized in ${n}`);return}let L=[],K=t.writeFile??((o,f,w)=>_(o,f,w)),X=[...new Set(m.createFiles.map(o=>W(o.fullPath)))].sort((o,f)=>o.length-f.length),I=[];try{for(let o of X)await re(o,I);for(let o of m.createFiles)await K(o.fullPath,o.content,{flag:"wx"}),L.push(o.fullPath)}catch(o){await Promise.all(L.map(f=>V(f,{force:!0})));for(let f of I.sort((w,x)=>x.length-w.length))try{await Y(f)}catch{}throw o}for(let o of m.createFiles)d(`Created ${o.relativePath}`);for(let o of m.keepFiles)d(`Kept existing ${o}`);for(let o of m.warnings)d(`Warning: ${o}`);if(m.mode==="adopt"){let o=s.length===1?"document":"documents";d(`Adopted ${s.length} existing ${o} in ${n}`),d(`Kept ${s.length} existing ${o} unchanged`),d("Next: docfuse check")}else m.mode==="configured"?(d(`Created missing documentation files in ${n}`),d("Next: docfuse dev")):(d(`Created Docfuse docs in ${n}`),d("Next: docfuse dev"));d("Add .docfuse/ to .gitignore if this directory is versioned.")}l(De,"runInit");export{te as promptForLocales,De as runInit};
|
|
71
|
+
//# sourceMappingURL=init-FKCULN6Y.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{i as a,j as b}from"./chunk-
|
|
2
|
-
//# sourceMappingURL=load-
|
|
1
|
+
import{i as a,j as b}from"./chunk-WLB5K7IS.js";import"./chunk-EAYVCA3Z.js";import"./chunk-JK7ZNBUA.js";import"./chunk-AYDF3IFZ.js";export{a as findConfigPath,b as loadConfig};
|
|
2
|
+
//# sourceMappingURL=load-ZP2SORMU.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{a as p}from"./chunk-FF7ZHS4U.js";import{j as n}from"./chunk-
|
|
2
|
-
//# sourceMappingURL=preview-
|
|
1
|
+
import{a as p}from"./chunk-FF7ZHS4U.js";import{j as n}from"./chunk-WLB5K7IS.js";import{a}from"./chunk-5NTRNUFG.js";import"./chunk-EAYVCA3Z.js";import{e as i}from"./chunk-JK7ZNBUA.js";import{a as e}from"./chunk-AYDF3IFZ.js";async function g({cwd:r,port:s=4173}){let t=await n(r),o=await p({root:i(r,t.outputDir),port:s,basePath:t.basePath});return a(`Preview running at http://127.0.0.1:${o.port}${t.basePath}`),o}e(g,"runPreview");export{g as runPreview};
|
|
2
|
+
//# sourceMappingURL=preview-GB2IAUZO.js.map
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "docfuse",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.2",
|
|
4
4
|
"description": "A static documentation CLI for Markdown, MDX, React components, search, and AI-readable output.",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"author": "Docfuse Contributors",
|
|
@@ -48,19 +48,19 @@
|
|
|
48
48
|
"provenance": true
|
|
49
49
|
},
|
|
50
50
|
"dependencies": {
|
|
51
|
-
"chokidar": "^
|
|
52
|
-
"esbuild": "^0.28.
|
|
51
|
+
"chokidar": "^5.0.0",
|
|
52
|
+
"esbuild": "^0.28.2",
|
|
53
53
|
"gray-matter": "^4.0.3",
|
|
54
|
-
"lucide-react": "^1.
|
|
55
|
-
"react": "^19.
|
|
56
|
-
"react-dom": "^19.
|
|
54
|
+
"lucide-react": "^1.34.0",
|
|
55
|
+
"react": "^19.2.8",
|
|
56
|
+
"react-dom": "^19.2.8",
|
|
57
57
|
"semver": "^7.8.5",
|
|
58
|
-
"zod": "^
|
|
59
|
-
"@docfuse/markdown": "0.1.
|
|
58
|
+
"zod": "^4.4.3",
|
|
59
|
+
"@docfuse/markdown": "0.1.2"
|
|
60
60
|
},
|
|
61
61
|
"devDependencies": {
|
|
62
|
-
"@types/react": "^19.
|
|
63
|
-
"@types/react-dom": "^19.
|
|
62
|
+
"@types/react": "^19.2.18",
|
|
63
|
+
"@types/react-dom": "^19.2.5",
|
|
64
64
|
"@types/semver": "^7.7.1",
|
|
65
65
|
"tsup": "^8.3.5",
|
|
66
66
|
"typescript": "^6.0.3"
|
package/dist/build-WF7ZYYJD.js
DELETED
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{a,b}from"./chunk-L7LBGDJ4.js";import"./chunk-2AE3ZZMC.js";import"./chunk-GNYJERGG.js";import"./chunk-XYJ2OBL3.js";import"./chunk-BH2JJ2IK.js";import"./chunk-DOOG32NU.js";import"./chunk-5NTRNUFG.js";import"./chunk-ZDXO2HQK.js";import"./chunk-EAYVCA3Z.js";import"./chunk-JK7ZNBUA.js";import"./chunk-AYDF3IFZ.js";export{b as runBuild,a as versionSatisfies};
|
|
2
|
-
//# sourceMappingURL=build-WF7ZYYJD.js.map
|
package/dist/chunk-ZDXO2HQK.js
DELETED