@beforesemicolon/builder 1.8.1 → 1.8.13
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/README.md +839 -142
- package/dist/cjs/docs/markdown-layout/index.js +1 -0
- package/dist/cjs/docs/markdown-layout/marked-extension.js +1 -0
- package/dist/cjs/docs/markdown-layout/parser.js +7 -0
- package/dist/cjs/docs/markdown-layout/renderer.js +1 -0
- package/dist/cjs/docs/markdown-layout/types.js +1 -0
- package/dist/cjs/docs/run.js +76 -1
- package/dist/cjs/docs/templates/fading-citrus/README.md +770 -0
- package/dist/cjs/docs/templates/fading-citrus/assets/logo.svg +8 -0
- package/dist/cjs/docs/templates/fading-citrus/layouts/_code-snippet.js +53 -0
- package/dist/cjs/docs/templates/fading-citrus/layouts/_footer.js +7 -4
- package/dist/cjs/docs/templates/fading-citrus/layouts/_header.js +4 -4
- package/dist/cjs/docs/templates/fading-citrus/layouts/_layout-utils.js +89 -0
- package/dist/cjs/docs/templates/fading-citrus/layouts/document.js +7 -4
- package/dist/cjs/docs/templates/fading-citrus/layouts/landing-cta.js +30 -0
- package/dist/cjs/docs/templates/fading-citrus/layouts/landing-ecosystem.js +43 -0
- package/dist/cjs/docs/templates/fading-citrus/layouts/landing-features.js +25 -0
- package/dist/cjs/docs/templates/fading-citrus/layouts/landing-hero.js +81 -0
- package/dist/cjs/docs/templates/fading-citrus/layouts/landing-install.js +116 -0
- package/dist/cjs/docs/templates/fading-citrus/layouts/landing-showcase.js +125 -0
- package/dist/cjs/docs/templates/fading-citrus/layouts/landing.js +8 -618
- package/dist/cjs/docs/templates/fading-citrus/stylesheets/common.css +6 -4
- package/dist/cjs/docs/templates/fading-citrus/template.config.js +100 -1
- package/dist/cjs/docs/types.js +1 -1
- package/dist/esm/docs/markdown-layout/index.js +1 -0
- package/dist/esm/docs/markdown-layout/marked-extension.js +1 -0
- package/dist/esm/docs/markdown-layout/parser.js +7 -0
- package/dist/esm/docs/markdown-layout/renderer.js +1 -0
- package/dist/esm/docs/markdown-layout/types.js +0 -0
- package/dist/esm/docs/run.js +76 -1
- package/dist/esm/docs/templates/fading-citrus/README.md +770 -0
- package/dist/esm/docs/templates/fading-citrus/assets/logo.svg +8 -0
- package/dist/esm/docs/templates/fading-citrus/layouts/_code-snippet.js +53 -0
- package/dist/esm/docs/templates/fading-citrus/layouts/_footer.js +7 -4
- package/dist/esm/docs/templates/fading-citrus/layouts/_header.js +4 -4
- package/dist/esm/docs/templates/fading-citrus/layouts/_layout-utils.js +89 -0
- package/dist/esm/docs/templates/fading-citrus/layouts/document.js +7 -4
- package/dist/esm/docs/templates/fading-citrus/layouts/landing-cta.js +30 -0
- package/dist/esm/docs/templates/fading-citrus/layouts/landing-ecosystem.js +43 -0
- package/dist/esm/docs/templates/fading-citrus/layouts/landing-features.js +25 -0
- package/dist/esm/docs/templates/fading-citrus/layouts/landing-hero.js +81 -0
- package/dist/esm/docs/templates/fading-citrus/layouts/landing-install.js +116 -0
- package/dist/esm/docs/templates/fading-citrus/layouts/landing-showcase.js +125 -0
- package/dist/esm/docs/templates/fading-citrus/layouts/landing.js +8 -618
- package/dist/esm/docs/templates/fading-citrus/stylesheets/common.css +6 -4
- package/dist/esm/docs/templates/fading-citrus/template.config.js +100 -1
- package/dist/types/docs/markdown-layout/index.d.ts +4 -0
- package/dist/types/docs/markdown-layout/marked-extension.d.ts +8 -0
- package/dist/types/docs/markdown-layout/parser.d.ts +12 -0
- package/dist/types/docs/markdown-layout/renderer.d.ts +3 -0
- package/dist/types/docs/markdown-layout/types.d.ts +35 -0
- package/dist/types/docs/run.d.ts +12 -1
- package/dist/types/docs/types.d.ts +23 -0
- package/package.json +3 -2
- package/dist/cjs/docs/templates/fading-citrus/layouts/_copy-code.js +0 -50
- package/dist/cjs/docs/templates/fading-citrus/layouts/_logo.js +0 -31
- package/dist/esm/docs/templates/fading-citrus/layouts/_copy-code.js +0 -50
- package/dist/esm/docs/templates/fading-citrus/layouts/_logo.js +0 -31
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";var a=Object.defineProperty;var b=Object.getOwnPropertyDescriptor;var c=Object.getOwnPropertyNames;var d=Object.prototype.hasOwnProperty;var t=(f,e,p,x)=>{if(e&&typeof e=="object"||typeof e=="function")for(let m of c(e))!d.call(f,m)&&m!==p&&a(f,m,{get:()=>e[m],enumerable:!(x=b(e,m))||x.enumerable});return f},r=(f,e,p)=>(t(f,e,"default"),p&&t(p,e,"default"));var g=f=>t(a({},"__esModule",{value:!0}),f);var o={};module.exports=g(o);r(o,require("./marked-extension.js"),module.exports);r(o,require("./parser.js"),module.exports);r(o,require("./renderer.js"),module.exports);r(o,require("./types.js"),module.exports);0&&(module.exports={...require("./marked-extension.js"),...require("./parser.js"),...require("./renderer.js"),...require("./types.js")});
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";var d=Object.defineProperty;var M=Object.getOwnPropertyDescriptor;var w=Object.getOwnPropertyNames;var L=Object.prototype.hasOwnProperty;var y=(o,r)=>d(o,"name",{value:r,configurable:!0});var m=(o,r)=>{for(var e in r)d(o,e,{get:r[e],enumerable:!0})},l=(o,r,e,t)=>{if(r&&typeof r=="object"||typeof r=="function")for(let n of w(r))!L.call(o,n)&&n!==e&&d(o,n,{get:()=>r[n],enumerable:!(t=M(r,n))||t.enumerable});return o};var c=o=>l(d({},"__esModule",{value:!0}),o);var x={};m(x,{createMarkdownLayoutExtension:()=>p});module.exports=c(x);var k=require("./parser.js"),u=require("./renderer.js");const p=y(({marked:o,handlers:r={},renderMarkdown:e})=>({extensions:[{name:"markdownLayout",level:"block",start(t){return t.match(/^::: layout /m)?.index},tokenizer(t){const n=(0,k.readLayoutBlock)(t);if(n)return{...(0,k.parseLayoutBlock)(n),type:"markdownLayout",raw:n}},renderer(t){const n=t,s={marked:o,renderMarkdown(a){return e?e(a):o.parse(a)},renderDefault(a){return(0,u.renderDefaultMarkdownLayout)(a,s)},renderParts(a){return a.items.map(i=>({...i,html:s.renderMarkdown(i.body)}))}};return(0,u.renderMarkdownLayout)(n,s,r)}}]}),"createMarkdownLayoutExtension");0&&(module.exports={createMarkdownLayoutExtension});
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
"use strict";var a=Object.defineProperty;var h=Object.getOwnPropertyDescriptor;var w=Object.getOwnPropertyNames;var L=Object.prototype.hasOwnProperty;var i=(e,t)=>a(e,"name",{value:t,configurable:!0});var g=(e,t)=>{for(var n in t)a(e,n,{get:t[n],enumerable:!0})},k=(e,t,n,r)=>{if(t&&typeof t=="object"||typeof t=="function")for(let o of w(t))!L.call(e,o)&&o!==n&&a(e,o,{get:()=>t[o],enumerable:!(r=h(t,o))||r.enumerable});return e};var x=e=>k(a({},"__esModule",{value:!0}),e);var j={};g(j,{parseItemHeader:()=>f,parseLayoutBlock:()=>$,parseLayoutHeader:()=>y,parseOptions:()=>d,readLayoutBlock:()=>N});module.exports=x(j);const l=/^::: layout(?:\s+.*)?$/,c=/^:::\s*$/,M=/^===(?:\s+.*)?$/,O=i(e=>{const t=e.replace(/^(['"])(.*)\1$/,"$2");return/^-?\d+(\.\d+)?$/.test(t)?Number(t):t==="true"?!0:t==="false"?!1:t},"coerceOptionValue"),p=i((e="")=>{const t=[],n=/\S+=("(?:[^"\\]|\\.)*"|'(?:[^'\\]|\\.)*'|\S*)|"[^"]*"|'[^']*'|\S+/g;let r;for(;r=n.exec(e);)t.push(r[0]);return t},"tokenizeOptions"),d=i((e="")=>p(e).reduce((t,n)=>{const r=n.indexOf("=");if(r===-1)return t[n]=!0,t;const o=n.slice(0,r).trim(),s=n.slice(r+1).trim();return o&&(t[o]=O(s)),t},{}),"parseOptions"),y=i(e=>{const t=e.replace(/^:::\s*layout\s*/,"").trim(),[n="",...r]=p(t);if(!n)throw new Error(`Invalid layout header: ${e}`);return{layoutType:n,options:d(r.join(" "))}},"parseLayoutHeader"),f=i(e=>{const t=e.replace(/^===\s*/,"").trim();if(!t)return{name:null,options:{}};const[n=null,...r]=p(t);return{name:n,options:d(r.join(" "))}},"parseItemHeader"),I=i(e=>{const t=e.split(`
|
|
2
|
+
`),n=[];let r=0,o=null,s=[];const m=i(()=>{o&&(n.push({...o,body:s.join(`
|
|
3
|
+
`).trim()}),s=[])},"pushCurrent");for(const u of t){if(l.test(u.trim())){o&&s.push(u),r+=1;continue}if(c.test(u.trim())&&r>0){r-=1,o&&s.push(u);continue}if(r===0&&M.test(u.trim())){m(),o=f(u.trim());continue}o&&s.push(u)}return m(),n.length?n:[{name:null,options:{},body:e.trim()}]},"splitLayoutItems"),$=i(e=>{const t=e.replace(/\s+$/,"").split(`
|
|
4
|
+
`),n=t.shift();if(!n||!l.test(n.trim()))throw new Error("Layout block must start with `::: layout`.");return t.length&&c.test(t[t.length-1].trim())&&t.pop(),{...y(n.trim()),items:I(t.join(`
|
|
5
|
+
`)),raw:e}},"parseLayoutBlock"),N=i(e=>{if(!e.startsWith("::: layout"))return null;const t=e.split(`
|
|
6
|
+
`);let n=0;const r=[];for(const o of t){const s=o.trim();if(r.push(o),l.test(s))n+=1;else if(c.test(s)&&(n-=1,n===0))return r.join(`
|
|
7
|
+
`)}return null},"readLayoutBlock");0&&(module.exports={parseItemHeader,parseLayoutBlock,parseLayoutHeader,parseOptions,readLayoutBlock});
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";var s=Object.defineProperty;var l=Object.getOwnPropertyDescriptor;var p=Object.getOwnPropertyNames;var d=Object.prototype.hasOwnProperty;var n=(t,o)=>s(t,"name",{value:o,configurable:!0});var i=(t,o)=>{for(var a in o)s(t,a,{get:o[a],enumerable:!0})},c=(t,o,a,r)=>{if(o&&typeof o=="object"||typeof o=="function")for(let e of p(o))!d.call(t,e)&&e!==a&&s(t,e,{get:()=>o[e],enumerable:!(r=l(o,e))||r.enumerable});return t};var w=t=>c(s({},"__esModule",{value:!0}),t);var $={};i($,{renderDefaultMarkdownLayout:()=>L,renderMarkdownLayout:()=>M});module.exports=w($);const y=n(t=>String(t).replace(/&/g,"&").replace(/"/g,""").replace(/</g,"<").replace(/>/g,">"),"escapeAttribute"),k=n(t=>`--${t.replace(/[A-Z]/g,o=>`-${o.toLowerCase()}`)}`,"optionToStyleName"),u=n(t=>{const o=Object.entries(t).filter(([,a])=>typeof a!="boolean").map(([a,r])=>`${k(a)}: ${r};`);return o.length?` style="${y(o.join(" "))}"`:""},"optionsToStyle"),L=n((t,o)=>{const a=y(t.layoutType),r=t.items.map(e=>`<section class="bfs-layout-item"${e.name?` data-name="${y(e.name)}"`:""}${u(e.options)}>${o.renderMarkdown(e.body)}</section>`).join("");return`<div class="bfs-layout bfs-layout-${a}" data-layout="${a}"${u(t.options)}>${r}</div>`},"renderDefaultMarkdownLayout"),M=n((t,o,a={})=>{const r=a[t.layoutType];return r?r({type:t.layoutType,options:t.options,parts:o.renderParts(t),raw:t.raw},o):o.renderDefault(t)},"renderMarkdownLayout");0&&(module.exports={renderDefaultMarkdownLayout,renderMarkdownLayout});
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";var n=Object.defineProperty;var d=Object.getOwnPropertyDescriptor;var u=Object.getOwnPropertyNames;var y=Object.prototype.hasOwnProperty;var i=(t,o,a,r)=>{if(o&&typeof o=="object"||typeof o=="function")for(let e of u(o))!y.call(t,e)&&e!==a&&n(t,e,{get:()=>o[e],enumerable:!(r=d(o,e))||r.enumerable});return t};var k=t=>i(n({},"__esModule",{value:!0}),t);var p={};module.exports=k(p);
|
package/dist/cjs/docs/run.js
CHANGED
|
@@ -1 +1,76 @@
|
|
|
1
|
-
"use strict";var
|
|
1
|
+
"use strict";var de=Object.create;var C=Object.defineProperty;var he=Object.getOwnPropertyDescriptor;var ge=Object.getOwnPropertyNames;var ye=Object.getPrototypeOf,we=Object.prototype.hasOwnProperty;var m=(e,t)=>C(e,"name",{value:t,configurable:!0});var ve=(e,t)=>{for(var r in t)C(e,r,{get:t[r],enumerable:!0})},Q=(e,t,r,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let a of ge(t))!we.call(e,a)&&a!==r&&C(e,a,{get:()=>t[a],enumerable:!(n=he(t,a))||n.enumerable});return e};var w=(e,t,r)=>(r=e!=null?de(ye(e)):{},Q(t||!e||!e.__esModule?C(r,"default",{value:e,enumerable:!0}):r,e)),De=e=>Q(C({},"__esModule",{value:!0}),e);var Be={};ve(Be,{buildDocs:()=>_e});module.exports=De(Be);const Ne={};var te=require("marked"),c=require("fs/promises"),o=w(require("path"),1),se=w(require("front-matter"),1),re=w(require("isomorphic-dompurify"),1),oe=require("marked-highlight"),W=w(require("highlight.js"),1),ne=w(require("./templates/default.template.js"),1),ae=w(require("./renderer/index.js"),1),ie=require("./markdown-layout/index.js"),le=w(require("clean-css"),1),ce=w(require("html-minifier"),1),X=w(require("@putout/minify"),1),$=require("url"),f=w(require("fs"),1);let K;const V=new le.default({inline:["none"]}),A=new Map;A.set("default",ne.default);let R;const Y=m((e,t)=>t===!1?!1:t===void 0?e:e===!1||e===void 0?t:{...e,...t},"mergeThemeMode"),Se=m((e,t)=>{if(!(!e&&!t))return{light:Y(e?.light,t?.light),dark:Y(e?.dark,t?.dark)}},"mergeTheme"),xe=m((e,t)=>({...e,...t,markdownLayouts:{...e.markdownLayouts,...t.markdownLayouts},scripts:{...e.scripts,...t.scripts},theme:Se(e.theme,t.theme)}),"mergeTemplateConfig"),be=m((e,t)=>{if(typeof e=="function")return!0;const{match:r}=e;return r?typeof r=="string"?t.includes(r):Array.isArray(r)?r.some(n=>t.includes(n)):r instanceof RegExp?r.test(t):r(t):!0},"scriptMatches"),$e=m((e,t)=>e?Object.values(e).filter(r=>r!==!1).filter(r=>be(r,t)).map(r=>typeof r=="function"?r():r.render()):[],"renderPageScripts"),G=m((e,t)=>{const r=Object.entries(t).filter(([n])=>n.startsWith("--")).map(([n,a])=>` ${n}: ${a};`).join(`
|
|
2
|
+
`);return r?`${e} {
|
|
3
|
+
${r}
|
|
4
|
+
}`:""},"renderThemeBlock"),Pe=m(e=>{if(!e)return"";const t=e.light===!1,r=e.light===!1?void 0:e.light,n=e.dark===!1?void 0:e.dark,a=r||n;return a?[G(":root",a),n&&!t?`@media (prefers-color-scheme: dark) {
|
|
5
|
+
${G(" :root",n)}
|
|
6
|
+
}`:"",r?G('[data-theme="light"]',r):"",n?G('[data-theme="dark"]',n):""].filter(Boolean).join(`
|
|
7
|
+
|
|
8
|
+
`):""},"renderThemeStylesheet"),Te=m((e="")=>String(e).replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">").replace(/"/g,""").replace(/'/g,"'"),"escapeXML"),ke=m((e="")=>e.replace(/```[\s\S]*?```/g," ").replace(/`([^`]+)`/g,"$1").replace(/!\[[^\]]*]\([^)]*\)/g," ").replace(/\[([^\]]+)]\([^)]*\)/g,"$1").replace(/^#{1,6}\s+/gm,"").replace(/^---+$/gm," ").replace(/[>*_~]/g,"").replace(/\s+/g," ").trim(),"stripMarkdown"),Me=m(e=>e==="/index.html"?"/":e.replace(/\/index\.html$/,"/").replace(/\.html$/,"").replace(/\/+/g,"/"),"pagePathToUrlPath"),Z=m((e,t)=>e?`${e.replace(/\/$/,"")}${t==="/"?"/":t}`:t,"canonicalUrl"),je=m(async(e,t)=>f.default.existsSync(e)?(await(0,c.mkdir)(o.default.dirname(t),{recursive:!0}),await(0,c.cp)(e,t),!0):!1,"copyIfExists"),Ce=m(e=>{const t={sitemap:!0,robots:!0,llms:!0,llmsFull:!0,netlify:!1};return e===!1?{sitemap:!1,robots:!1,llms:!1,llmsFull:!1,netlify:!1}:e===!0||e===void 0?t:{...t,...e}},"normalizeGeneratedFilesConfig"),Fe=m((e,t)=>{if(!t)return"";const r=new Date().toISOString().slice(0,10);return`<?xml version="1.0" encoding="UTF-8"?>
|
|
9
|
+
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
|
|
10
|
+
${e.map(a=>{const u=a.urlPath==="/"?"1.0":"0.8";return` <url>
|
|
11
|
+
<loc>${Te(Z(t,a.urlPath))}</loc>
|
|
12
|
+
<lastmod>${r}</lastmod>
|
|
13
|
+
<changefreq>weekly</changefreq>
|
|
14
|
+
<priority>${u}</priority>
|
|
15
|
+
</url>`}).join(`
|
|
16
|
+
`)}
|
|
17
|
+
</urlset>
|
|
18
|
+
`},"generateSitemap"),Ge=m(e=>`User-agent: *
|
|
19
|
+
Allow: /
|
|
20
|
+
${e?`
|
|
21
|
+
Sitemap: ${e.replace(/\/$/,"")}/sitemap.xml
|
|
22
|
+
Host: ${e.replace(/\/$/,"")}
|
|
23
|
+
`:""}
|
|
24
|
+
`,"generateRobots"),Ee=m(e=>`# Documentation
|
|
25
|
+
|
|
26
|
+
## Page index
|
|
27
|
+
|
|
28
|
+
${e.map(t=>`- ${t.name}: ${t.urlPath} - ${t.description}`).join(`
|
|
29
|
+
`)}
|
|
30
|
+
`,"generateLlms"),Le=m((e,t)=>`# Documentation for AI agents
|
|
31
|
+
|
|
32
|
+
This file is generated at build time from the Markdown documentation. Use it to choose the most relevant page before reading the canonical HTML documentation.
|
|
33
|
+
|
|
34
|
+
${e.map(r=>`## ${r.title}
|
|
35
|
+
|
|
36
|
+
URL: ${Z(t,r.urlPath)}
|
|
37
|
+
Source: docs/${r.sourcePath}
|
|
38
|
+
Description: ${r.description}
|
|
39
|
+
|
|
40
|
+
${r.summary||r.description}
|
|
41
|
+
`).join(`
|
|
42
|
+
`)}
|
|
43
|
+
`,"generateLlmsFull"),Oe=m((e,t)=>{const r=["# Generated by @beforesemicolon/builder"];return[t.llms?"llms.txt":"",t.llmsFull?"llms-full.txt":"",t.sitemap?"sitemap.xml":"",t.robots?"robots.txt":""].filter(Boolean).forEach(a=>r.push(`/${a} /${a} 200`)),e.forEach(a=>{if(a.urlPath==="/")return;const u=a.urlPath.endsWith("/")?`${a.urlPath}index.html`:`${a.urlPath}.html`;r.push(`${a.urlPath} ${u} 200`),a.urlPath.endsWith("/")&&r.push(`${a.urlPath.replace(/\/$/,"")} ${u} 200`)}),`${[...new Set(r)].join(`
|
|
44
|
+
`)}
|
|
45
|
+
`},"generateNetlifyRedirects"),Ae=m(e=>`[build]
|
|
46
|
+
command = "node build-docs.js"
|
|
47
|
+
publish = "${e||"website"}"
|
|
48
|
+
|
|
49
|
+
[[headers]]
|
|
50
|
+
for = "/llms.txt"
|
|
51
|
+
|
|
52
|
+
[headers.values]
|
|
53
|
+
Content-Type = "text/plain; charset=utf-8"
|
|
54
|
+
Cache-Control = "public, max-age=0, must-revalidate"
|
|
55
|
+
|
|
56
|
+
[[headers]]
|
|
57
|
+
for = "/llms-full.txt"
|
|
58
|
+
|
|
59
|
+
[headers.values]
|
|
60
|
+
Content-Type = "text/plain; charset=utf-8"
|
|
61
|
+
Cache-Control = "public, max-age=0, must-revalidate"
|
|
62
|
+
|
|
63
|
+
[[headers]]
|
|
64
|
+
for = "/sitemap.xml"
|
|
65
|
+
|
|
66
|
+
[headers.values]
|
|
67
|
+
Content-Type = "application/xml; charset=utf-8"
|
|
68
|
+
Cache-Control = "public, max-age=0, must-revalidate"
|
|
69
|
+
|
|
70
|
+
[[headers]]
|
|
71
|
+
for = "/robots.txt"
|
|
72
|
+
|
|
73
|
+
[headers.values]
|
|
74
|
+
Content-Type = "text/plain; charset=utf-8"
|
|
75
|
+
Cache-Control = "public, max-age=0, must-revalidate"
|
|
76
|
+
`,"generateNetlifyToml"),b=m(async(e,t,r,n)=>{if(await je(e,t))return;const a=r();if(!a){n&&console.warn(n);return}await(0,c.mkdir)(o.default.dirname(t),{recursive:!0}),await(0,c.writeFile)(t,a)},"writeGeneratedFile"),Re=m(async({docsDir:e,docsSiteDir:t,pages:r,siteUrl:n,publicDir:a,generatedFiles:u})=>{u.sitemap&&await b(o.default.resolve(e,"sitemap.xml"),o.default.resolve(t,"sitemap.xml"),()=>Fe(r,n),"Skipping generated sitemap.xml because buildDocs({ siteUrl }) is not set."),u.robots&&await b(o.default.resolve(e,"robots.txt"),o.default.resolve(t,"robots.txt"),()=>Ge(n)),u.llms&&await b(o.default.resolve(e,"llms.txt"),o.default.resolve(t,"llms.txt"),()=>Ee(r)),u.llmsFull&&await b(o.default.resolve(e,"llms-full.txt"),o.default.resolve(t,"llms-full.txt"),()=>Le(r,n)),u.netlify&&(await b(o.default.resolve(e,"_redirects"),o.default.resolve(t,"_redirects"),()=>Oe(r,u)),await b(o.default.resolve(e,"netlify.toml"),o.default.resolve(t,"netlify.toml"),()=>Ae(a&&o.default.basename(a))))},"writeGeneratedDocsFiles"),ee=m((e={},t,r)=>{const n=new te.Marked((0,oe.markedHighlight)({langPrefix:"hljs language-",highlight(a,u){const P=W.default.getLanguage(u)?u:"plaintext";return W.default.highlight(a,{language:P}).value}}));return n.use({renderer:ae.default}),n.use((0,ie.createMarkdownLayoutExtension)({marked:n,handlers:e.markdownLayouts,renderMarkdown:r})),e.markedOptions&&n.use(e.markedOptions),t&&n.use(t),n},"createBaseMarked"),We=m((e={},t)=>{const r=ee(e,t),n=m(u=>r.parse(u),"renderMarkdown"),a=ee(e,t,n);return a.use({hooks:{postprocess(u){const{layout:P="default",...y}=R.attributes,T=$e(e.scripts,u);u=re.default.sanitize(u);const k=[...u.matchAll(/<h([0-6])\sid="[^"]+".*?>.*?<a\s+href="([^"]+)".*?>([^<]+)<\/a>/gm)].map(S=>({path:S[2],label:S[3],level:S[1]}));return A.get(P)?.({...y,content:u,siteMap:R.siteMap,tableOfContent:k,projectMeta:K,renderMarkdown:n,scripts:T,themeStylesheet:e.theme?"/stylesheets/theme.css":void 0})||u}}}),a},"createMarked"),v=m(async e=>{const t=await(0,c.readdir)(e),r=[];for(const n of t){const a=o.default.extname(n);/^[._]/.test(n)||(a?r.push(o.default.join(e,n)):/(stylesheets|assets|scripts)/.test(n)||r.push(...await v(o.default.join(e,n))))}return r},"traverseDirectory"),_e=m(async({srcDir:e,publicDir:t,markedOptions:r,template:n,siteUrl:a,generatedFiles:u}={})=>{try{const s=o.default.resolve(process.cwd(),"package.json");f.default.existsSync(s)&&(K=JSON.parse(await(0,c.readFile)(s,"utf-8")))}catch(s){console.warn("Failed to load project package.json metadata",s)}const P=m(()=>{try{return __dirname}catch{return o.default.dirname((0,$.fileURLToPath)(Ne.url))}},"getDirname"),y=n?o.default.resolve(P(),"templates",n):null,T=y?o.default.resolve(y,"assets"):null,k=y?o.default.resolve(y,"stylesheets"):null,S=y?o.default.resolve(y,"layouts"):null;let M={};if(y)try{let s=o.default.resolve(y,"template.config.js");if(f.default.existsSync(s)||(s=s.replace(/\.js$/,".ts")),f.default.existsSync(s)){const i=await import((0,$.pathToFileURL)(s).href);M=i.default||i}}catch(s){console.error(`Failed to load template config for ${n}`,s)}const d=e??o.default.resolve(process.cwd(),"docs"),p=t??o.default.resolve(process.cwd(),"website"),me=Ce(u),D=o.default.resolve(d,"_template"),_=o.default.resolve(D,"assets"),B=o.default.resolve(D,"stylesheets"),N=o.default.resolve(D,"scripts"),U=o.default.resolve(D,"layouts"),z=o.default.resolve(d,"_layouts"),F=o.default.resolve(d,"assets"),q=o.default.resolve(d,"stylesheets"),E=o.default.resolve(d,"scripts");try{let s=o.default.resolve(D,"template.config.js");if(f.default.existsSync(s)||(s=s.replace(/\.js$/,".ts")),f.default.existsSync(s)){const i=await import((0,$.pathToFileURL)(s).href),l=i.default||i;M=xe(M,l)}}catch(s){console.error("Failed to load docs _template config",s)}const ue=We(M,r);if(await(0,c.mkdir)(p,{recursive:!0}),T&&f.default.existsSync(T))try{await(0,c.cp)(T,F.replace(d,p),{recursive:!0})}catch(s){console.warn(s)}if(f.default.existsSync(F))try{await(0,c.cp)(F,F.replace(d,p),{recursive:!0})}catch(s){console.warn(s)}if(f.default.existsSync(_))try{await(0,c.cp)(_,o.default.resolve(p,"assets"),{recursive:!0})}catch(s){console.warn(s)}try{const s=new Set;if(k&&f.default.existsSync(k)&&(await v(k)).forEach(l=>s.add(l)),f.default.existsSync(q)&&(await v(q)).forEach(l=>s.add(l)),f.default.existsSync(B)&&(await v(B)).forEach(l=>s.add(l)),s.size){await(0,c.mkdir)(o.default.join(p,"stylesheets"),{recursive:!0});for(const l of s){const h=await(0,c.readFile)(l,"utf-8"),g=V.minify(h);g.errors.length&&g.errors.forEach(console.error);const j=l.startsWith(D)?l.replace(D,p):l.startsWith(d)?l.replace(d,p):o.default.join(p,"stylesheets",o.default.basename(l));await(0,c.writeFile)(j,g.styles??h)}}const i=Pe(M.theme);if(i){const l=V.minify(i);l.errors.length&&l.errors.forEach(console.error),await(0,c.mkdir)(o.default.join(p,"stylesheets"),{recursive:!0}),await(0,c.writeFile)(o.default.join(p,"stylesheets","theme.css"),l.styles??i)}}catch(s){console.error(s)}if(f.default.existsSync(E))try{const s=await v(E);s.length&&await(0,c.mkdir)(E.replace(d,p),{recursive:!0});for(const i of s)try{const l=await(0,c.readFile)(i,"utf-8");await(0,c.writeFile)(i.replace(d,p),X.minify(l))}catch(l){console.error(l)}}catch(s){console.warn(s)}if(f.default.existsSync(N))try{const s=await v(N);s.length&&await(0,c.mkdir)(o.default.join(p,"scripts"),{recursive:!0});for(const i of s)try{const l=await(0,c.readFile)(i,"utf-8");await(0,c.writeFile)(i.replace(D,p),X.minify(l))}catch(l){console.error(l)}}catch(s){console.warn(s)}try{const s=new Map;S&&f.default.existsSync(S)&&(await v(S)).forEach(i=>{/\.(j|t)s$/.test(i)&&s.set(o.default.basename(i).replace(/\.(j|t)s$/,""),i)}),f.default.existsSync(z)&&(await v(z)).forEach(i=>{/\.(j|t)s$/.test(i)&&s.set(o.default.basename(i).replace(/\.(j|t)s$/,""),i)}),f.default.existsSync(U)&&(await v(U)).forEach(i=>{/\.(j|t)s$/.test(i)&&s.set(o.default.basename(i).replace(/\.(j|t)s$/,""),i)});for(const[i,l]of s.entries()){const h=await import((0,$.pathToFileURL)(l).href);A.set(i,h.default)}}catch(s){console.error("Template import failed",s)}const fe=await v(d),H=new Map,I=(await Promise.all(fe.filter(s=>s.endsWith(".md")).map(async s=>{const i=await(0,c.readFile)(s,"utf-8");return{filePath:s,...(0,se.default)(i)}}))).sort((s,i)=>(s.attributes.order??0)-(i.attributes.order??0)).map(({attributes:s,body:i,filePath:l})=>{const h=l.replace(d,"").replace(/\.md/,".html"),g=l.replace(d,p).replace(".md",".html"),j=g.replace(o.default.basename(g),""),L=o.default.basename(h)||"/",pe=h.replace(L,"").replace(/\/$/,"");let x=H;pe.split("/").filter(Boolean).forEach(O=>{x.has(O)||x.set(O,new Map),x=x.get(O)});const J={...s,path:h};return x.has(L)||x.set(L,J),{attributes:J,fileWebsitePath:g,fileDirWebsitePath:j,body:i,sourcePath:o.default.relative(d,l),siteMap:H}});for(const{attributes:s,body:i,fileDirWebsitePath:l,fileWebsitePath:h,siteMap:g}of I){R={attributes:s,siteMap:g};const j=await ue.parse(i);await(0,c.mkdir)(l,{recursive:!0}),await(0,c.writeFile)(h,ce.default.minify(j,{includeAutoGeneratedTags:!0,removeAttributeQuotes:!0,removeComments:!0,removeRedundantAttributes:!0,removeScriptTypeAttributes:!0,removeStyleLinkTypeAttributes:!0,sortClassName:!0,useShortDoctype:!0,collapseWhitespace:!0,minifyJS:!0,minifyCSS:!0}))}await Re({docsDir:d,docsSiteDir:p,pages:I.map(({attributes:s,body:i,sourcePath:l})=>{const h=Me(String(s.path)),g=ke(i);return{sourcePath:l,urlPath:h,title:String(s.title||s.name||"").trim()||"Documentation",name:String(s.name||s.title||"").trim()||"Documentation",description:String(s.description||"").trim()||g.slice(0,156)||"Documentation page.",order:Number(s.order??999),summary:g.slice(0,320)}}),siteUrl:a,publicDir:p,generatedFiles:me})},"buildDocs");0&&(module.exports={buildDocs});
|