@stacksjs/stx 0.2.684 → 0.2.685

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (107) hide show
  1. package/dist/{chunk-8gbp2p7c.js → chunk-01bd9hrj.js} +1 -1
  2. package/dist/{chunk-vfsapkh9.js → chunk-244tyyhx.js} +8 -8
  3. package/dist/{chunk-w28wc7mv.js → chunk-3tp7r57c.js} +4 -4
  4. package/dist/chunk-42c308vk.js +2 -0
  5. package/dist/{chunk-dr1em45p.js → chunk-4ht54p3j.js} +5 -5
  6. package/dist/{chunk-jayacz7s.js → chunk-4k3jx9mm.js} +11 -11
  7. package/dist/{chunk-n11mcrmk.js → chunk-4r8c96a0.js} +12 -12
  8. package/dist/{chunk-mhjnz2rh.js → chunk-4rj9746b.js} +3 -3
  9. package/dist/{chunk-zt5hp5w5.js → chunk-5t9ndqfm.js} +1 -1
  10. package/dist/{chunk-1y50gat7.js → chunk-5tbey00z.js} +2 -2
  11. package/dist/chunk-6nhsvb9x.js +2 -0
  12. package/dist/{chunk-q28n3hyy.js → chunk-6qn368e7.js} +2 -2
  13. package/dist/{chunk-gwyx2pwf.js → chunk-6zzg889q.js} +1 -1
  14. package/dist/{chunk-8t0fpc9h.js → chunk-718rkxa7.js} +1 -1
  15. package/dist/{chunk-vf8kma48.js → chunk-7grjwpdq.js} +1 -1
  16. package/dist/{chunk-x145xm5r.js → chunk-7st0prz9.js} +6 -6
  17. package/dist/{chunk-5h618jv3.js → chunk-8x34g2ad.js} +1 -1
  18. package/dist/chunk-9rv27cdd.js +2 -0
  19. package/dist/{chunk-jwxr8rya.js → chunk-9wd31tc6.js} +1 -1
  20. package/dist/{chunk-3ntkdmm9.js → chunk-9xp9hs7t.js} +1 -1
  21. package/dist/chunk-a1r3jbt4.js +2 -0
  22. package/dist/chunk-bhm9sdnv.js +2 -0
  23. package/dist/{chunk-273mr301.js → chunk-bnggav14.js} +1 -1
  24. package/dist/chunk-bpk0qy53.js +2 -0
  25. package/dist/{chunk-jv7dk4dq.js → chunk-bxr4c8rg.js} +1 -1
  26. package/dist/{chunk-2ar5g9pa.js → chunk-bz3zn6f7.js} +2 -2
  27. package/dist/{chunk-hm69jxmh.js → chunk-cjf01cp4.js} +3 -3
  28. package/dist/{chunk-15tkxrfe.js → chunk-cnvwrv5a.js} +1 -1
  29. package/dist/{chunk-w1wzydvp.js → chunk-ct0ee0fr.js} +3 -3
  30. package/dist/chunk-cxvka6g3.js +2 -0
  31. package/dist/{chunk-mwxz9kbh.js → chunk-d0g4zndy.js} +2 -2
  32. package/dist/{chunk-8jxqg7kb.js → chunk-dpghx4z6.js} +1 -1
  33. package/dist/{chunk-zxqgr2n6.js → chunk-e5kz0y03.js} +7 -7
  34. package/dist/{chunk-ps5v9vm3.js → chunk-eykbcntx.js} +1 -1
  35. package/dist/{chunk-hk6w3zhm.js → chunk-f5s2h2y8.js} +1 -1
  36. package/dist/{chunk-sa574ehw.js → chunk-fb84n8kz.js} +3 -3
  37. package/dist/{chunk-pkcd41b9.js → chunk-fbdmsw5j.js} +1 -1
  38. package/dist/chunk-fzfa35ft.js +2 -0
  39. package/dist/{chunk-xjx1xbey.js → chunk-gccwjjzw.js} +1 -1
  40. package/dist/{chunk-98xp87m0.js → chunk-gn98ha90.js} +1 -1
  41. package/dist/{chunk-39g00f1z.js → chunk-gwqw8r2e.js} +1 -1
  42. package/dist/chunk-hqj28381.js +3 -0
  43. package/dist/chunk-jmjjjgy4.js +2 -0
  44. package/dist/{chunk-fv1k21jx.js → chunk-jrche9k7.js} +1 -1
  45. package/dist/{chunk-a20ytcth.js → chunk-jsac71cy.js} +1 -1
  46. package/dist/{chunk-yxx4866s.js → chunk-kgcwx6nt.js} +1 -1
  47. package/dist/{chunk-rwzmfx1g.js → chunk-km6ggz8n.js} +1 -1
  48. package/dist/chunk-kxqvfdm9.js +2 -0
  49. package/dist/{chunk-gymmbbzc.js → chunk-kypwg2ws.js} +21 -9
  50. package/dist/chunk-m1cwgzqy.js +2 -0
  51. package/dist/{chunk-54mq30ag.js → chunk-mf8yzpyy.js} +1 -1
  52. package/dist/{chunk-pvn0fc7j.js → chunk-mkaw0bn4.js} +1 -1
  53. package/dist/chunk-mn9xw0fe.js +2 -0
  54. package/dist/{chunk-2yphax0x.js → chunk-mxbp4vyy.js} +2 -2
  55. package/dist/{chunk-6q1cv39j.js → chunk-nqvex98n.js} +3 -3
  56. package/dist/{chunk-sz9xjmx0.js → chunk-nsvnxkyb.js} +2 -2
  57. package/dist/{chunk-1q8cx10w.js → chunk-ppxfsqwh.js} +1 -1
  58. package/dist/{chunk-mhsshvg1.js → chunk-px7ryjd9.js} +1 -1
  59. package/dist/{chunk-7kzwpskb.js → chunk-qgs69nds.js} +3 -3
  60. package/dist/{chunk-wyvcxjb8.js → chunk-qjmvcqfh.js} +1 -1
  61. package/dist/{chunk-12760frv.js → chunk-qz314za9.js} +3 -3
  62. package/dist/{chunk-nbjyed3q.js → chunk-r7csb300.js} +1 -1
  63. package/dist/{chunk-cv10vetd.js → chunk-r8cn9qhr.js} +2 -2
  64. package/dist/chunk-sy19th0w.js +2 -0
  65. package/dist/{chunk-p9jkv2y0.js → chunk-t3e5tv4h.js} +36 -36
  66. package/dist/chunk-t8djd28a.js +2 -0
  67. package/dist/chunk-tfhhxpda.js +2 -0
  68. package/dist/chunk-v3mmxk1y.js +2 -0
  69. package/dist/{chunk-qv0zkqem.js → chunk-w3q5czk5.js} +2 -2
  70. package/dist/{chunk-t9hx6cr0.js → chunk-w6frg42f.js} +1 -1
  71. package/dist/{chunk-2a1eeywj.js → chunk-wt6f9pk9.js} +1 -1
  72. package/dist/chunk-x519ewtq.js +2 -0
  73. package/dist/chunk-xe40yhcw.js +2 -0
  74. package/dist/chunk-xpch3mq8.js +2 -0
  75. package/dist/chunk-xs8228sa.js +2 -0
  76. package/dist/{chunk-jkywbfb0.js → chunk-yft8yn6y.js} +2 -2
  77. package/dist/chunk-yhba2f9d.js +2 -0
  78. package/dist/{chunk-nvbkt6a3.js → chunk-zf6kmw9q.js} +1 -1
  79. package/dist/{chunk-btdxdmew.js → chunk-zhcb33s1.js} +1 -1
  80. package/dist/cli.js +8 -8
  81. package/dist/craft-entry.js +2 -2
  82. package/dist/craft.js +2 -2
  83. package/dist/pwa.js +1 -1
  84. package/dist/ssg.js +4 -4
  85. package/package.json +5 -5
  86. package/dist/chunk-1yb1haw7.js +0 -2
  87. package/dist/chunk-2vm6pbj6.js +0 -2
  88. package/dist/chunk-6rzbn1nb.js +0 -2
  89. package/dist/chunk-75ftntkm.js +0 -2
  90. package/dist/chunk-8bwa63m3.js +0 -2
  91. package/dist/chunk-910s13rr.js +0 -2
  92. package/dist/chunk-97zv3gpm.js +0 -2
  93. package/dist/chunk-9md86rzc.js +0 -2
  94. package/dist/chunk-aftam4we.js +0 -2
  95. package/dist/chunk-bpf3xxng.js +0 -3
  96. package/dist/chunk-ehvjbag8.js +0 -2
  97. package/dist/chunk-nfkaeycg.js +0 -2
  98. package/dist/chunk-p9228zqe.js +0 -2
  99. package/dist/chunk-pqg3ghvh.js +0 -2
  100. package/dist/chunk-tq2m6m3j.js +0 -2
  101. package/dist/chunk-x8w54snc.js +0 -2
  102. package/dist/chunk-xpqcr7yj.js +0 -2
  103. package/dist/chunk-xy16pnty.js +0 -2
  104. package/dist/chunk-yps3rpny.js +0 -2
  105. package/dist/chunk-ysra569w.js +0 -2
  106. package/dist/chunk-zhe25pab.js +0 -2
  107. package/dist/chunk-zr2vnj6g.js +0 -2
package/dist/ssg.js CHANGED
@@ -1,6 +1,6 @@
1
1
  // @bun
2
- import"./chunk-374nhgyf.js";import{y,sc}from"./chunk-w28wc7mv.js";import"./chunk-gtktv6nn.js";import"./chunk-6beg47t4.js";import{Et}from"./chunk-p9jkv2y0.js";import"./chunk-t6m5d64b.js";import"./chunk-5h618jv3.js";import"./chunk-tenbwcts.js";import{wt,xt,St,kt,_t,Ct}from"./chunk-gymmbbzc.js";import{i}from"./chunk-2yphax0x.js";import{ts}from"./chunk-nbjyed3q.js";import"./chunk-912r15hr.js";import"./chunk-cv10vetd.js";import{Ee,Xt,Jt}from"./chunk-gwyx2pwf.js";import"./chunk-pkcd41b9.js";import{h}from"./chunk-sa574ehw.js";import{gt,o}from"./chunk-jayacz7s.js";import"./chunk-mhjnz2rh.js";import"./chunk-zxqgr2n6.js";import"./chunk-x145xm5r.js";import"./chunk-7kzwpskb.js";import"./chunk-9bgb9n12.js";import{ea,ta,na}from"./chunk-rspe6qa5.js";import{Gt,Fn,zn}from"./chunk-bpf3xxng.js";import{Kt}from"./chunk-mwxz9kbh.js";import"./chunk-2a1eeywj.js";import{q,ye}from"./chunk-dr1em45p.js";import"./chunk-zt5hp5w5.js";import"./chunk-jwxr8rya.js";import{c}from"./chunk-xvs84gas.js";import{r,fe}from"./chunk-9tg4995v.js";import k from"fs";import p from"path";import{createHash as Pt}from"crypto";function $t(t){try{return new Bun.Transpiler({loader:"js",minifyWhitespace:!0}).transformSync(t).replace(/\}(var |let |const |function )/g,"};$1").trim()}catch{return t}}var Dt=/<script\s+type="stx\/island"\s+data-stx-island="([^"]+)"([^>]*)>([\s\S]*?)<\/script>/g;function Rt(t){return Bun.hash(t).toString(16)}function at(t,n={}){if(!t.includes('type="stx/island"'))return{html:t,chunks:[]};let a=new Map,s=t.replace(Dt,(e,u,f,x)=>{let m=x.trim();if(!m)return e;if(/\bdata-stx-src=/.test(f))return e;if(n.minify)m=$t(m);let b=Rt(m);if(!a.has(b))a.set(b,m);let v=n.integrity?` data-stx-integrity="sha384-${Pt("sha384").update(m).digest("base64")}"`:"";return`<script type="stx/island" data-stx-island="${u}" data-stx-src="/_stx/islands/${b}.js"${v}${f}></script>`}),l=Array.from(a,([e,u])=>({hash:e,code:u}));return{html:s,chunks:l}}var It=new Set(["visible","idle"]);function ot(t){if(!t.includes("data-stx-src="))return t;let n=new Map,a=/data-stx-scope="([^"]+)"[^>]*?stx-hydrate="([^"]+)"/g,s;while((s=a.exec(t))!==null)n.set(s[1],s[2]);let l=new Set,e=/data-stx-island="([^"]+)"[^>]*?data-stx-src="([^"]+)"/g,u;while((u=e.exec(t))!==null)if(It.has(n.get(u[1])||""))l.add(u[2]);let f=t.lastIndexOf("</head>");if(l.size===0||f===-1)return t;let x=Array.from(l).filter((m)=>!t.includes(`rel="prefetch" href="${m}"`)).map((m)=>`<link rel="prefetch" href="${m}" as="script">`).join("");if(!x)return t;return t.slice(0,f)+x+t.slice(f)}var Bt=["STX_SITE_URL","SITE_URL","URL","VERCEL_URL","CF_PAGES_URL"];function K(t){let n=t.trim();if(!n)return null;let a=/^https?:\/\//i.test(n)?n:`https://${n}`;try{return new URL(a).origin+new URL(a).pathname.replace(/\/$/,"")}catch{return null}}function jt(t){for(let n of Bt){let a=t[n];if(!a)continue;let s=K(a);if(s)return{url:s,source:"env",via:n}}return null}function ct(t){if(!t||typeof t!=="object")return null;let n=t,a=n.site?.url??n.url??n.app?.url;return typeof a==="string"?K(a):null}async function Ft(t){let{existsSync:n}=await import("fs"),a=await import("path");for(let s of["site.config.ts","site.config.js",".config/site.config.ts"]){let l=a.resolve(t,s);if(!n(l))continue;try{let e=await import(l),u=ct(e.default??e);if(u)return u}catch{}}return null}async function lt(t={}){let n=t.cwd??process.cwd(),a=t.env??process.env;if(t.explicit){let u=K(t.explicit);if(u)return{url:u,source:"option"}}let s=ct(t.stxConfig);if(s)return{url:s,source:"stx.config",via:"site.url"};let l=await Ft(n);if(l)return{url:l,source:"site.config",via:"url"};let e=jt(a);if(e)return e;return{url:"http://localhost",source:"fallback"}}function ut(){return["No site URL configured \u2014 sitemap.xml and robots.txt will point at http://localhost."," Set one in stx.config.ts (site: { url: 'https://example.com' }), in site.config.ts,"," via --domain, or with SITE_URL in the build environment."].join(`
3
- `)}function W(t){return async()=>({paths:await t(),fallback:!1})}var Tt;function Ot(t){let n=r(t),{depths:a}=fe(n),s=/\b(?:async\s+)?function\s+getStaticPaths\s*\(/g,l;while((l=s.exec(n))!==null){if(a[l.index]!==0)continue;let u=y(n,"(",")",s.lastIndex-1),f=n.indexOf("{",u+1),x=y(n,"{","}",f);if(u<0||f<0||x<0)break;return t.slice(l.index,x+1)}let e=/\b(?:const|let|var)\s+getStaticPaths\s*=/g;while((l=e.exec(n))!==null){if(a[l.index]!==0)continue;let u=sc(n,e.lastIndex).endPos;return t.slice(e.lastIndex,u).trim()}throw SyntaxError("Could not extract getStaticPaths; use a top-level function or const declaration")}async function dt(t){let n="read";try{let a=await Bun.file(t).text();n="parse";let s=Kt(a),l=[...s.server,...s.client,...s.signals].filter((e)=>/(?:^|\s)server(?:\s|=|$)/i.test(r(e.attrs))).sort((e,u)=>a.indexOf(e.fullTag)-a.indexOf(u.fullTag));for(let e of l){if(!/\bgetStaticPaths\b/.test(r(e.content)))continue;let u=(Tt??=new Bun.Transpiler({loader:"ts",target:"bun"})).transformSync(e.content);if(!/\bgetStaticPaths\b/.test(r(u)))continue;let f=Ot(u);if(/\bdefineStaticPaths\b/.test(r(f))&&Et(u,"defineStaticPaths"))throw SyntaxError("Cannot evaluate a module-local defineStaticPaths binding during isolated hook extraction");n="execute";let x=Function("defineStaticPaths",`return (${f})`)(W);if(typeof x!=="function")throw TypeError("getStaticPaths must be a function");let m=await x();n="result";let b=Array.isArray(m)?{paths:m}:m;if(!b||typeof b!=="object"||!("paths"in b)||!Array.isArray(b.paths))throw TypeError("getStaticPaths must return { paths: [...] } or an array of paths");for(let v of b.paths)if(!v||typeof v!=="object"||!v.params||typeof v.params!=="object"||Array.isArray(v.params))throw TypeError("Each getStaticPaths path must contain a params object");return{kind:"ok",value:b}}return{kind:"absent"}}catch(a){return{kind:"error",phase:n,error:a instanceof Error?a:Error(String(a))}}}class pt{cacheDir;cache=new Map;loaded=!1;salt;constructor(t,n=""){this.cacheDir=t,this.salt=n}async load(){if(this.loaded)return;let t=p.join(this.cacheDir,"build-cache.json");if(await Bun.file(t).exists())try{let n=JSON.parse(await Bun.file(t).text());for(let[a,s]of Object.entries(n))this.cache.set(a,s)}catch{}this.loaded=!0}async save(){await k.promises.mkdir(this.cacheDir,{recursive:!0});let t=p.join(this.cacheDir,"build-cache.json"),n={};for(let[a,s]of this.cache)n[a]=s;await Bun.write(t,JSON.stringify(n))}getHash(t,n){let a=k.statSync(t),s=`${this.salt}|${t}:${a.mtimeMs}`;for(let e of n)if(k.existsSync(e)){let u=k.statSync(e);s+=`:${e}:${u.mtimeMs}`}let l=0;for(let e=0;e<s.length;e++){let u=s.charCodeAt(e);l=(l<<5)-l+u,l=l&l}return Math.abs(l).toString(36)}get(t,n){let a=this.cache.get(t);if(!a)return null;let s=this.getHash(n,a.dependencies??[]);if(a.hash!==s)return this.cache.delete(t),null;return a.html}set(t,n,a,s){let l=this.getHash(n,a);this.cache.set(t,{hash:l,html:s,generatedAt:Date.now(),dependencies:a})}}class ht{cacheDir;constructor(t){this.cacheDir=t}getFilePath(t){let n=t.replace(/[^a-zA-Z0-9]/g,"_")+".json";return p.join(this.cacheDir,"isr",n)}async get(t){let n=this.getFilePath(t);if(!await Bun.file(n).exists())return null;try{return JSON.parse(await Bun.file(n).text())}catch{return null}}async set(t,n){let a=this.getFilePath(t);await k.promises.mkdir(p.dirname(a),{recursive:!0}),await Bun.write(a,JSON.stringify(n))}async invalidate(t){let n=this.getFilePath(t);if(await Bun.file(n).exists())await k.promises.unlink(n)}async invalidatePattern(t){let n=p.join(this.cacheDir,"isr");if(!k.existsSync(n))return;let a=await k.promises.readdir(n);for(let s of a){let l=s.replace(/_/g,"/").replace(".json","");if(t.test(l))await k.promises.unlink(p.join(n,s))}}async needsRevalidation(t){let n=await this.get(t);if(!n)return!0;return Date.now()>n.revalidateAfter}}async function At(t){let n=[];if(!t.isDynamic)n.push({url:t.pattern,params:{}});else{let a=await dt(t.filePath);if(a.kind==="error")throw Error(`getStaticPaths ${a.phase} failed for ${t.pattern} (${t.filePath}): ${a.error.message}`,{cause:a.error});if(a.kind==="absent")return console.warn(`Warning: Dynamic route ${t.pattern} (${t.filePath}) has no getStaticPaths`),n;let s=a.value;if(s.paths.length===0)return console.info(`getStaticPaths returned no paths for dynamic route ${t.pattern} (${t.filePath})`),n;for(let l of s.paths){let e=t.pattern;for(let[u,f]of Object.entries(l.params))e=e.replace(`:${u}`,f).replace(`:${u}*`,f);n.push({url:e,params:l.params,props:l.props,revalidate:l.revalidate})}}return n}async function Lt(t){let n=[t.replace(/\.stx$/,".data.ts"),t.replace(/\.stx$/,".data.js"),t+".data.ts",t+".data.js"];for(let a of n)if(await Bun.file(a).exists())try{let s=await import(a);if(typeof s.default==="function")return await s.default();else if(typeof s.default==="object")return s.default;else if(typeof s.getData==="function")return await s.getData();else{let{default:l,...e}=s;return e}}catch(s){console.error(`Error loading data file ${a}:`,s)}return null}async function Ut(t,n,a){let s=t.match(/<script\s+server\b[^>]*>([\s\S]*?)<\/script>/i);if(!s)return null;let l=s[1];if(!l.includes("getStaticProps"))return null;try{let e=l.match(/(?:export\s+)?(?:async\s+)?function\s+getStaticProps\s*\([^)]*\)\s*\{([\s\S]*?)\n\}/);if(!e)return null;return await Function("params",`
2
+ import"./chunk-374nhgyf.js";import{y,sc}from"./chunk-3tp7r57c.js";import"./chunk-gtktv6nn.js";import"./chunk-6beg47t4.js";import{Et}from"./chunk-t3e5tv4h.js";import"./chunk-t6m5d64b.js";import"./chunk-8x34g2ad.js";import"./chunk-tenbwcts.js";import{wt,xt,St,kt,_t,Ct}from"./chunk-kypwg2ws.js";import{i}from"./chunk-mxbp4vyy.js";import{ts}from"./chunk-r7csb300.js";import"./chunk-912r15hr.js";import"./chunk-r8cn9qhr.js";import{Ee,Xt,Jt}from"./chunk-6zzg889q.js";import"./chunk-fbdmsw5j.js";import{h}from"./chunk-fb84n8kz.js";import{gt,o}from"./chunk-4k3jx9mm.js";import"./chunk-4rj9746b.js";import"./chunk-e5kz0y03.js";import"./chunk-7st0prz9.js";import"./chunk-qgs69nds.js";import"./chunk-9bgb9n12.js";import{ea,ta,na}from"./chunk-rspe6qa5.js";import{Kt,Fn,zn}from"./chunk-hqj28381.js";import{Gt}from"./chunk-d0g4zndy.js";import"./chunk-wt6f9pk9.js";import{q,ye}from"./chunk-4ht54p3j.js";import"./chunk-5t9ndqfm.js";import"./chunk-9wd31tc6.js";import{c}from"./chunk-xvs84gas.js";import{r,fe}from"./chunk-9tg4995v.js";import k from"fs";import p from"path";import{createHash as Pt}from"crypto";function $t(t){try{return new Bun.Transpiler({loader:"js",minifyWhitespace:!0}).transformSync(t).replace(/\}(var |let |const |function )/g,"};$1").trim()}catch{return t}}var Dt=/<script\s+type="stx\/island"\s+data-stx-island="([^"]+)"([^>]*)>([\s\S]*?)<\/script>/g;function Rt(t){return Bun.hash(t).toString(16)}function at(t,n={}){if(!t.includes('type="stx/island"'))return{html:t,chunks:[]};let a=new Map,s=t.replace(Dt,(e,u,f,x)=>{let m=x.trim();if(!m)return e;if(/\bdata-stx-src=/.test(f))return e;if(n.minify)m=$t(m);let b=Rt(m);if(!a.has(b))a.set(b,m);let v=n.integrity?` data-stx-integrity="sha384-${Pt("sha384").update(m).digest("base64")}"`:"";return`<script type="stx/island" data-stx-island="${u}" data-stx-src="/_stx/islands/${b}.js"${v}${f}></script>`}),l=Array.from(a,([e,u])=>({hash:e,code:u}));return{html:s,chunks:l}}var It=new Set(["visible","idle"]);function ot(t){if(!t.includes("data-stx-src="))return t;let n=new Map,a=/data-stx-scope="([^"]+)"[^>]*?stx-hydrate="([^"]+)"/g,s;while((s=a.exec(t))!==null)n.set(s[1],s[2]);let l=new Set,e=/data-stx-island="([^"]+)"[^>]*?data-stx-src="([^"]+)"/g,u;while((u=e.exec(t))!==null)if(It.has(n.get(u[1])||""))l.add(u[2]);let f=t.lastIndexOf("</head>");if(l.size===0||f===-1)return t;let x=Array.from(l).filter((m)=>!t.includes(`rel="prefetch" href="${m}"`)).map((m)=>`<link rel="prefetch" href="${m}" as="script">`).join("");if(!x)return t;return t.slice(0,f)+x+t.slice(f)}var Bt=["STX_SITE_URL","SITE_URL","URL","VERCEL_URL","CF_PAGES_URL"];function K(t){let n=t.trim();if(!n)return null;let a=/^https?:\/\//i.test(n)?n:`https://${n}`;try{return new URL(a).origin+new URL(a).pathname.replace(/\/$/,"")}catch{return null}}function jt(t){for(let n of Bt){let a=t[n];if(!a)continue;let s=K(a);if(s)return{url:s,source:"env",via:n}}return null}function ct(t){if(!t||typeof t!=="object")return null;let n=t,a=n.site?.url??n.url??n.app?.url;return typeof a==="string"?K(a):null}async function Ft(t){let{existsSync:n}=await import("fs"),a=await import("path");for(let s of["site.config.ts","site.config.js",".config/site.config.ts"]){let l=a.resolve(t,s);if(!n(l))continue;try{let e=await import(l),u=ct(e.default??e);if(u)return u}catch{}}return null}async function lt(t={}){let n=t.cwd??process.cwd(),a=t.env??process.env;if(t.explicit){let u=K(t.explicit);if(u)return{url:u,source:"option"}}let s=ct(t.stxConfig);if(s)return{url:s,source:"stx.config",via:"site.url"};let l=await Ft(n);if(l)return{url:l,source:"site.config",via:"url"};let e=jt(a);if(e)return e;return{url:"http://localhost",source:"fallback"}}function ut(){return["No site URL configured \u2014 sitemap.xml and robots.txt will point at http://localhost."," Set one in stx.config.ts (site: { url: 'https://example.com' }), in site.config.ts,"," via --domain, or with SITE_URL in the build environment."].join(`
3
+ `)}function W(t){return async()=>({paths:await t(),fallback:!1})}var Tt;function Ot(t){let n=r(t),{depths:a}=fe(n),s=/\b(?:async\s+)?function\s+getStaticPaths\s*\(/g,l;while((l=s.exec(n))!==null){if(a[l.index]!==0)continue;let u=y(n,"(",")",s.lastIndex-1),f=n.indexOf("{",u+1),x=y(n,"{","}",f);if(u<0||f<0||x<0)break;return t.slice(l.index,x+1)}let e=/\b(?:const|let|var)\s+getStaticPaths\s*=/g;while((l=e.exec(n))!==null){if(a[l.index]!==0)continue;let u=sc(n,e.lastIndex).endPos;return t.slice(e.lastIndex,u).trim()}throw SyntaxError("Could not extract getStaticPaths; use a top-level function or const declaration")}async function dt(t){let n="read";try{let a=await Bun.file(t).text();n="parse";let s=Gt(a),l=[...s.server,...s.client,...s.signals].filter((e)=>/(?:^|\s)server(?:\s|=|$)/i.test(r(e.attrs))).sort((e,u)=>a.indexOf(e.fullTag)-a.indexOf(u.fullTag));for(let e of l){if(!/\bgetStaticPaths\b/.test(r(e.content)))continue;let u=(Tt??=new Bun.Transpiler({loader:"ts",target:"bun"})).transformSync(e.content);if(!/\bgetStaticPaths\b/.test(r(u)))continue;let f=Ot(u);if(/\bdefineStaticPaths\b/.test(r(f))&&Et(u,"defineStaticPaths"))throw SyntaxError("Cannot evaluate a module-local defineStaticPaths binding during isolated hook extraction");n="execute";let x=Function("defineStaticPaths",`return (${f})`)(W);if(typeof x!=="function")throw TypeError("getStaticPaths must be a function");let m=await x();n="result";let b=Array.isArray(m)?{paths:m}:m;if(!b||typeof b!=="object"||!("paths"in b)||!Array.isArray(b.paths))throw TypeError("getStaticPaths must return { paths: [...] } or an array of paths");for(let v of b.paths)if(!v||typeof v!=="object"||!v.params||typeof v.params!=="object"||Array.isArray(v.params))throw TypeError("Each getStaticPaths path must contain a params object");return{kind:"ok",value:b}}return{kind:"absent"}}catch(a){return{kind:"error",phase:n,error:a instanceof Error?a:Error(String(a))}}}class pt{cacheDir;cache=new Map;loaded=!1;salt;constructor(t,n=""){this.cacheDir=t,this.salt=n}async load(){if(this.loaded)return;let t=p.join(this.cacheDir,"build-cache.json");if(await Bun.file(t).exists())try{let n=JSON.parse(await Bun.file(t).text());for(let[a,s]of Object.entries(n))this.cache.set(a,s)}catch{}this.loaded=!0}async save(){await k.promises.mkdir(this.cacheDir,{recursive:!0});let t=p.join(this.cacheDir,"build-cache.json"),n={};for(let[a,s]of this.cache)n[a]=s;await Bun.write(t,JSON.stringify(n))}getHash(t,n){let a=k.statSync(t),s=`${this.salt}|${t}:${a.mtimeMs}`;for(let e of n)if(k.existsSync(e)){let u=k.statSync(e);s+=`:${e}:${u.mtimeMs}`}let l=0;for(let e=0;e<s.length;e++){let u=s.charCodeAt(e);l=(l<<5)-l+u,l=l&l}return Math.abs(l).toString(36)}get(t,n){let a=this.cache.get(t);if(!a)return null;let s=this.getHash(n,a.dependencies??[]);if(a.hash!==s)return this.cache.delete(t),null;return a.html}set(t,n,a,s){let l=this.getHash(n,a);this.cache.set(t,{hash:l,html:s,generatedAt:Date.now(),dependencies:a})}}class ht{cacheDir;constructor(t){this.cacheDir=t}getFilePath(t){let n=t.replace(/[^a-zA-Z0-9]/g,"_")+".json";return p.join(this.cacheDir,"isr",n)}async get(t){let n=this.getFilePath(t);if(!await Bun.file(n).exists())return null;try{return JSON.parse(await Bun.file(n).text())}catch{return null}}async set(t,n){let a=this.getFilePath(t);await k.promises.mkdir(p.dirname(a),{recursive:!0}),await Bun.write(a,JSON.stringify(n))}async invalidate(t){let n=this.getFilePath(t);if(await Bun.file(n).exists())await k.promises.unlink(n)}async invalidatePattern(t){let n=p.join(this.cacheDir,"isr");if(!k.existsSync(n))return;let a=await k.promises.readdir(n);for(let s of a){let l=s.replace(/_/g,"/").replace(".json","");if(t.test(l))await k.promises.unlink(p.join(n,s))}}async needsRevalidation(t){let n=await this.get(t);if(!n)return!0;return Date.now()>n.revalidateAfter}}async function At(t){let n=[];if(!t.isDynamic)n.push({url:t.pattern,params:{}});else{let a=await dt(t.filePath);if(a.kind==="error")throw Error(`getStaticPaths ${a.phase} failed for ${t.pattern} (${t.filePath}): ${a.error.message}`,{cause:a.error});if(a.kind==="absent")return console.warn(`Warning: Dynamic route ${t.pattern} (${t.filePath}) has no getStaticPaths`),n;let s=a.value;if(s.paths.length===0)return console.info(`getStaticPaths returned no paths for dynamic route ${t.pattern} (${t.filePath})`),n;for(let l of s.paths){let e=t.pattern;for(let[u,f]of Object.entries(l.params))e=e.replace(`:${u}`,f).replace(`:${u}*`,f);n.push({url:e,params:l.params,props:l.props,revalidate:l.revalidate})}}return n}async function Lt(t){let n=[t.replace(/\.stx$/,".data.ts"),t.replace(/\.stx$/,".data.js"),t+".data.ts",t+".data.js"];for(let a of n)if(await Bun.file(a).exists())try{let s=await import(a);if(typeof s.default==="function")return await s.default();else if(typeof s.default==="object")return s.default;else if(typeof s.getData==="function")return await s.getData();else{let{default:l,...e}=s;return e}}catch(s){console.error(`Error loading data file ${a}:`,s)}return null}async function Ut(t,n,a){let s=t.match(/<script\s+server\b[^>]*>([\s\S]*?)<\/script>/i);if(!s)return null;let l=s[1];if(!l.includes("getStaticProps"))return null;try{let e=l.match(/(?:export\s+)?(?:async\s+)?function\s+getStaticProps\s*\([^)]*\)\s*\{([\s\S]*?)\n\}/);if(!e)return null;return await Function("params",`
4
4
  return (async function getStaticProps() {
5
5
  ${e[1]}
6
6
  })()
@@ -37,7 +37,7 @@ ${t.map((s)=>{let l=new URL(s.loc,n).href,e=` <url>
37
37
  ${a.join(`
38
38
  `)}
39
39
  </channel>
40
- </rss>`}async function Vt(t={}){let n=Date.now();Jt();let a=await i(process.cwd()),s=a.build||{},l=await lt({explicit:t.domain||s.domain,stxConfig:a});if(l.source==="fallback"&&(t.sitemap??s.sitemap??!0))console.warn(ut());let e={router:t.router??a?.router??{},pagesDir:t.pagesDir||s.pagesDir||"pages",outputDir:t.outputDir||s.outputDir||"dist",baseUrl:t.baseUrl||s.baseUrl||"/",domain:l.url,revalidate:t.revalidate??s.revalidate??!1,sitemap:t.sitemap??s.sitemap??!0,sitemapExclude:t.sitemapExclude||s.sitemapExclude||[],robots:t.robots??s.robots??!0,rss:t.rss??s.rss??!1,concurrency:t.concurrency||s.concurrency||10,cache:t.cache??s.cache??!0,cacheDir:t.cacheDir||s.cacheDir||c(process.cwd(),"ssg-cache"),contentLoaders:t.contentLoaders||[],hooks:t.hooks||{},minify:t.minify??s.minify??!0,generate404:t.generate404??s.generate404??!0,publicDir:t.publicDir||s.publicDir||"public",trailingSlash:t.trailingSlash??s.trailingSlash??!1,cleanOutput:t.cleanOutput??s.cleanOutput??!0,cacheSalt:t.cacheSalt??"",partialsDir:t.partialsDir||a?.partialsDir||"",componentsDir:t.componentsDir||a?.componentsDir||"",failOnIncludeError:t.failOnIncludeError??!0,failOnServerScriptError:t.failOnServerScriptError??!0,chunkIslands:t.chunkIslands===!0,prefetchIslands:t.prefetchIslands===!0,integrityIslands:t.integrityIslands===!0},u={totalPages:0,successCount:0,failedCount:0,cachedCount:0,buildTime:0,pages:[],errors:[]},f=new Set,x=0,m={},b={};await e.hooks.onBuildStart?.();try{if(e.cleanOutput&&k.existsSync(e.outputDir))await k.promises.rm(e.outputDir,{recursive:!0});await k.promises.mkdir(e.outputDir,{recursive:!0});let R=e.cacheSalt;if(!R){let{resolveUserCssConfig:d,fingerprintConfig:w}=await import("./chunk-nfkaeycg.js");try{R=w(await d(process.cwd()))}catch{}}let{prepareImageDelivery:S}=await import("./chunk-ps5v9vm3.js"),D=await S(e.publicDir,e.outputDir);if(D.count>0)console.log(`Optimized ${D.count} image(s) for responsive delivery`),R=[R,D.fingerprint].filter(Boolean).join(":");let F=new pt(e.cacheDir,R);if(e.cache)await F.load();try{let{generateCss:d}=await import("./chunk-nfkaeycg.js");await d('<div class="bg-black"></div>')}catch{}wt();let mt=a?.routeMiddleware?.dir||"middleware";await St(process.cwd(),mt);let J=xt();if(J.length>0)console.log(`Loaded ${J.length} middleware: ${J.join(", ")}`);let yt=a?.routeMiddleware?.global||[];na(a?.layoutsDir,c(process.cwd()));let Y=q(".",{pagesDir:e.pagesDir,pagesDirs:a?._layerPageDirs});console.log(`Found ${Y.length} routes`);let U=[];for(let d of Y)try{let w=await At(d);for(let P of w)U.push({route:d,url:P.url,params:P.params,props:P.props,revalidate:P.revalidate??e.revalidate})}catch(w){let P=w instanceof Error?w:Error(String(w));u.failedCount++,u.errors.push({route:d.pattern,error:P}),await e.hooks.onError?.(P,d.pattern),console.error(`Error discovering paths for ${d.pattern}:`,P)}u.totalPages=U.length+u.failedCount,console.log(`Generating ${U.length} pages...`);let M=[],Z=[];for(let d=0;d<U.length;d+=e.concurrency)Z.push(U.slice(d,d+e.concurrency));for(let d of Z)await Promise.all(d.map(async(w)=>{let{route:P,url:g,params:_,props:bt,revalidate:et}=w;try{await e.hooks.onPageStart?.(g);let T=await Bun.file(P.filePath).text(),O=Qt(T),vt=O?.middleware?Array.isArray(O.middleware)?O.middleware:[O.middleware]:[],rt=[...yt,...vt];if(rt.length>0){let I=kt(g,_,O||{}),A=_t(I,null,void 0,{isServer:!0}),B=await Ct(rt,A);if(B.redirect){let E=typeof B.redirect==="string"?B.redirect:B.redirect.path||B.redirect,N=te(String(E),g),L=ee(g,e);await k.promises.mkdir(p.dirname(L),{recursive:!0}),await Bun.write(L,N),u.successCount++,u.pages.push({route:g,outputPath:L,size:Buffer.byteLength(N),cached:!1}),M.push({loc:g,lastmod:new Date().toISOString()}),console.log(` \u21B3 ${g} \u2192 redirect to ${E}`);return}if(B.abort){let E=typeof B.abort==="string"?B.abort:B.abort?.error?.message||"aborted";console.warn(` \u21B3 ${g} \u2014 middleware aborted: ${E}`);return}}let nt=T.match(/definePageMeta\s*\(\s*\{[\s\S]*?validate\s*:\s*((?:\([^)]*\)|[^,}])*(?:\{[\s\S]*?\})?)/m);if(nt)try{if(!await Function("route",`
40
+ </rss>`}async function Vt(t={}){let n=Date.now();Jt();let a=await i(process.cwd()),s=a.build||{},l=await lt({explicit:t.domain||s.domain,stxConfig:a});if(l.source==="fallback"&&(t.sitemap??s.sitemap??!0))console.warn(ut());let e={router:t.router??a?.router??{},pagesDir:t.pagesDir||s.pagesDir||"pages",outputDir:t.outputDir||s.outputDir||"dist",baseUrl:t.baseUrl||s.baseUrl||"/",domain:l.url,revalidate:t.revalidate??s.revalidate??!1,sitemap:t.sitemap??s.sitemap??!0,sitemapExclude:t.sitemapExclude||s.sitemapExclude||[],robots:t.robots??s.robots??!0,rss:t.rss??s.rss??!1,concurrency:t.concurrency||s.concurrency||10,cache:t.cache??s.cache??!0,cacheDir:t.cacheDir||s.cacheDir||c(process.cwd(),"ssg-cache"),contentLoaders:t.contentLoaders||[],hooks:t.hooks||{},minify:t.minify??s.minify??!0,generate404:t.generate404??s.generate404??!0,publicDir:t.publicDir||s.publicDir||"public",trailingSlash:t.trailingSlash??s.trailingSlash??!1,cleanOutput:t.cleanOutput??s.cleanOutput??!0,cacheSalt:t.cacheSalt??"",partialsDir:t.partialsDir||a?.partialsDir||"",componentsDir:t.componentsDir||a?.componentsDir||"",failOnIncludeError:t.failOnIncludeError??!0,failOnServerScriptError:t.failOnServerScriptError??!0,chunkIslands:t.chunkIslands===!0,prefetchIslands:t.prefetchIslands===!0,integrityIslands:t.integrityIslands===!0},u={totalPages:0,successCount:0,failedCount:0,cachedCount:0,buildTime:0,pages:[],errors:[]},f=new Set,x=0,m={},b={};await e.hooks.onBuildStart?.();try{if(e.cleanOutput&&k.existsSync(e.outputDir))await k.promises.rm(e.outputDir,{recursive:!0});await k.promises.mkdir(e.outputDir,{recursive:!0});let R=e.cacheSalt;if(!R){let{resolveUserCssConfig:d,fingerprintConfig:w}=await import("./chunk-6nhsvb9x.js");try{R=w(await d(process.cwd()))}catch{}}let{prepareImageDelivery:S}=await import("./chunk-eykbcntx.js"),D=await S(e.publicDir,e.outputDir);if(D.count>0)console.log(`Optimized ${D.count} image(s) for responsive delivery`),R=[R,D.fingerprint].filter(Boolean).join(":");let F=new pt(e.cacheDir,R);if(e.cache)await F.load();try{let{generateCss:d}=await import("./chunk-6nhsvb9x.js");await d('<div class="bg-black"></div>')}catch{}wt();let mt=a?.routeMiddleware?.dir||"middleware";await St(process.cwd(),mt);let J=xt();if(J.length>0)console.log(`Loaded ${J.length} middleware: ${J.join(", ")}`);let yt=a?.routeMiddleware?.global||[];na(a?.layoutsDir,c(process.cwd()));let Y=q(".",{pagesDir:e.pagesDir,pagesDirs:a?._layerPageDirs});console.log(`Found ${Y.length} routes`);let U=[];for(let d of Y)try{let w=await At(d);for(let P of w)U.push({route:d,url:P.url,params:P.params,props:P.props,revalidate:P.revalidate??e.revalidate})}catch(w){let P=w instanceof Error?w:Error(String(w));u.failedCount++,u.errors.push({route:d.pattern,error:P}),await e.hooks.onError?.(P,d.pattern),console.error(`Error discovering paths for ${d.pattern}:`,P)}u.totalPages=U.length+u.failedCount,console.log(`Generating ${U.length} pages...`);let M=[],Z=[];for(let d=0;d<U.length;d+=e.concurrency)Z.push(U.slice(d,d+e.concurrency));for(let d of Z)await Promise.all(d.map(async(w)=>{let{route:P,url:g,params:_,props:bt,revalidate:et}=w;try{await e.hooks.onPageStart?.(g);let T=await Bun.file(P.filePath).text(),O=Qt(T),vt=O?.middleware?Array.isArray(O.middleware)?O.middleware:[O.middleware]:[],rt=[...yt,...vt];if(rt.length>0){let I=kt(g,_,O||{}),A=_t(I,null,void 0,{isServer:!0}),B=await Ct(rt,A);if(B.redirect){let E=typeof B.redirect==="string"?B.redirect:B.redirect.path||B.redirect,N=te(String(E),g),L=ee(g,e);await k.promises.mkdir(p.dirname(L),{recursive:!0}),await Bun.write(L,N),u.successCount++,u.pages.push({route:g,outputPath:L,size:Buffer.byteLength(N),cached:!1}),M.push({loc:g,lastmod:new Date().toISOString()}),console.log(` \u21B3 ${g} \u2192 redirect to ${E}`);return}if(B.abort){let E=typeof B.abort==="string"?B.abort:B.abort?.error?.message||"aborted";console.warn(` \u21B3 ${g} \u2014 middleware aborted: ${E}`);return}}let nt=T.match(/definePageMeta\s*\(\s*\{[\s\S]*?validate\s*:\s*((?:\([^)]*\)|[^,}])*(?:\{[\s\S]*?\})?)/m);if(nt)try{if(!await Function("route",`
41
41
  const validate = ${nt[1]};
42
42
  return validate(route);
43
43
  `)({params:_})){console.warn(`Validation failed for ${g}, skipping...`);return}}catch{}let C=null,it=!1;if(e.cache){if(C=F.get(g,P.filePath),C)it=!0,u.cachedCount++}if(!C){let I=await ft(P,_,bt,e,a);if(C=I.html,e.failOnIncludeError&&I.includeFailures.length>0)throw Error(`${I.includeFailures.length} include(s) failed to resolve, so this page would have shipped with an error banner where the markup should be:
@@ -69,7 +69,7 @@ ${d}`)}if(e.cache)await F.save();if(e.generate404){let d=p.join(e.pagesDir,"404.
69
69
  <a href="/">Go home</a>
70
70
  </div>
71
71
  </body>
72
- </html>`)}for(let d of[500]){let w=p.join(e.pagesDir,`${d}.stx`);if(await Bun.file(w).exists()){let P=new Set,g={...a,debug:!1,cache:!1},_=await o(await Bun.file(w).text(),{},w,g,P);await Bun.write(p.join(e.outputDir,`${d}.html`),_)}}let V=p.join(e.pagesDir,"error.stx");if(await Bun.file(V).exists()){let d=new Set,w={...a,debug:!1,cache:!1},P=await o(await Bun.file(V).text(),{},V,w,d);await Bun.write(p.join(e.outputDir,"error.html"),P)}if(e.sitemap&&M.length>0){let d=Wt(M,e.domain),w=p.join(e.outputDir,"sitemap.xml");await Bun.write(w,d),u.sitemapPath=w,console.log(`Generated sitemap.xml with ${M.length} URLs`)}if(e.robots!==!1){let d=typeof e.robots==="object"?e.robots:{},w=[...e.sitemapExclude.filter((g)=>typeof g==="string"),...d.disallow||[]],P=ts({rules:[{userAgent:d.userAgent||"*",allow:d.allow||["/"],...w.length>0?{disallow:w}:{}}],...d.sitemap!==!1&&u.sitemapPath?{sitemap:new URL("/sitemap.xml",e.domain).href}:{}});await Bun.write(p.join(e.outputDir,"robots.txt"),P),console.log("Generated robots.txt")}if(e.rss){let d=typeof e.rss==="object"?e.rss:{title:"Site Feed",description:"Latest updates",link:e.domain},w=[];if(d.getItems)w=await d.getItems();let P=qt(d,w),g=p.join(e.outputDir,"rss.xml");await Bun.write(g,P),u.rssPath=g,console.log(`Generated rss.xml with ${w.length} items`)}let z=ea(e.outputDir);if(z.assets>0)console.log(`Externalized ${z.assets} asset(s) from ${z.pages} page(s) (${(z.bytesInlined/1024).toFixed(1)}KB removed from HTML)`);let H=ta(e.outputDir);if(H.assets>0)console.log(`Externalized ${H.assets} repeated asset(s) from ${H.pages} page(s) (${(H.bytesInlined/1024).toFixed(1)}KB removed from HTML)`);if(e.publicDir&&k.existsSync(e.publicDir))await X(e.publicDir,e.outputDir),console.log(`Copied public assets from ${e.publicDir}`);let tt=zn();if(tt)await X(tt,p.join(e.outputDir,Fn)),console.log(`Copied assets from ${Gt}`)}catch(R){throw await e.hooks.onError?.(R),R}if(u.buildTime=Date.now()-n,f.size>0){u.islandChunks={count:f.size,totalBytes:x};let R={generatedChunks:f.size,totalBytes:x,chunks:m,pages:b};await Bun.write(p.join(e.outputDir,"_stx","islands-manifest.json"),JSON.stringify(R,null,2))}await e.hooks.onBuildEnd?.(u);let v=u.islandChunks?`
72
+ </html>`)}for(let d of[500]){let w=p.join(e.pagesDir,`${d}.stx`);if(await Bun.file(w).exists()){let P=new Set,g={...a,debug:!1,cache:!1},_=await o(await Bun.file(w).text(),{},w,g,P);await Bun.write(p.join(e.outputDir,`${d}.html`),_)}}let V=p.join(e.pagesDir,"error.stx");if(await Bun.file(V).exists()){let d=new Set,w={...a,debug:!1,cache:!1},P=await o(await Bun.file(V).text(),{},V,w,d);await Bun.write(p.join(e.outputDir,"error.html"),P)}if(e.sitemap&&M.length>0){let d=Wt(M,e.domain),w=p.join(e.outputDir,"sitemap.xml");await Bun.write(w,d),u.sitemapPath=w,console.log(`Generated sitemap.xml with ${M.length} URLs`)}if(e.robots!==!1){let d=typeof e.robots==="object"?e.robots:{},w=[...e.sitemapExclude.filter((g)=>typeof g==="string"),...d.disallow||[]],P=ts({rules:[{userAgent:d.userAgent||"*",allow:d.allow||["/"],...w.length>0?{disallow:w}:{}}],...d.sitemap!==!1&&u.sitemapPath?{sitemap:new URL("/sitemap.xml",e.domain).href}:{}});await Bun.write(p.join(e.outputDir,"robots.txt"),P),console.log("Generated robots.txt")}if(e.rss){let d=typeof e.rss==="object"?e.rss:{title:"Site Feed",description:"Latest updates",link:e.domain},w=[];if(d.getItems)w=await d.getItems();let P=qt(d,w),g=p.join(e.outputDir,"rss.xml");await Bun.write(g,P),u.rssPath=g,console.log(`Generated rss.xml with ${w.length} items`)}let z=ea(e.outputDir);if(z.assets>0)console.log(`Externalized ${z.assets} asset(s) from ${z.pages} page(s) (${(z.bytesInlined/1024).toFixed(1)}KB removed from HTML)`);let H=ta(e.outputDir);if(H.assets>0)console.log(`Externalized ${H.assets} repeated asset(s) from ${H.pages} page(s) (${(H.bytesInlined/1024).toFixed(1)}KB removed from HTML)`);if(e.publicDir&&k.existsSync(e.publicDir))await X(e.publicDir,e.outputDir),console.log(`Copied public assets from ${e.publicDir}`);let tt=zn();if(tt)await X(tt,p.join(e.outputDir,Fn)),console.log(`Copied assets from ${Kt}`)}catch(R){throw await e.hooks.onError?.(R),R}if(u.buildTime=Date.now()-n,f.size>0){u.islandChunks={count:f.size,totalBytes:x};let R={generatedChunks:f.size,totalBytes:x,chunks:m,pages:b};await Bun.write(p.join(e.outputDir,"_stx","islands-manifest.json"),JSON.stringify(R,null,2))}await e.hooks.onBuildEnd?.(u);let v=u.islandChunks?`
73
73
  Island chunks: ${u.islandChunks.count} (${(u.islandChunks.totalBytes/1024).toFixed(1)} KB lifted out of inline HTML)`:"";return console.log(`
74
74
  Build complete!
75
75
  Total: ${u.totalPages} pages
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@stacksjs/stx",
3
3
  "type": "module",
4
- "version": "0.2.684",
4
+ "version": "0.2.685",
5
5
  "description": "A performant UI Framework. Powered by Bun.",
6
6
  "author": "Chris Breuer <chris@stacksjs.org>",
7
7
  "license": "MIT",
@@ -128,12 +128,12 @@
128
128
  "dependencies": {
129
129
  "@stacksjs/ts-css": "^0.3.11",
130
130
  "@stacksjs/clapp": "^0.2.16",
131
- "@stacksjs/desktop": "0.2.684",
132
- "@stacksjs/sanitizer": "0.2.684",
131
+ "@stacksjs/desktop": "0.2.685",
132
+ "@stacksjs/sanitizer": "0.2.685",
133
133
  "@stacksjs/ts-i18n": "^0.1.11",
134
- "bun-plugin-stx": "0.2.684",
134
+ "bun-plugin-stx": "0.2.685",
135
135
  "bunfig": "^0.15.21",
136
- "stx-router": "0.2.684",
136
+ "stx-router": "0.2.685",
137
137
  "ts-broadcasting": "^0.0.11",
138
138
  "ts-images": "^0.2.22",
139
139
  "ts-syntax-highlighter": "^0.2.1"
@@ -1,2 +0,0 @@
1
- // @bun
2
- import{zu}from"./chunk-98xp87m0.js";import"./chunk-sz9xjmx0.js";import"./chunk-w1wzydvp.js";import"./chunk-mwxz9kbh.js";import"./chunk-cv10vetd.js";import"./chunk-jayacz7s.js";import"./chunk-sa574ehw.js";import"./chunk-9bgb9n12.js";import"./chunk-7kzwpskb.js";import"./chunk-zxqgr2n6.js";import"./chunk-mhjnz2rh.js";import"./chunk-2a1eeywj.js";import"./chunk-x145xm5r.js";import"./chunk-dr1em45p.js";import"./chunk-zt5hp5w5.js";import"./chunk-pkcd41b9.js";import"./chunk-2yphax0x.js";import"./chunk-jwxr8rya.js";import"./chunk-tenbwcts.js";import"./chunk-912r15hr.js";import"./chunk-nbjyed3q.js";import"./chunk-gymmbbzc.js";import"./chunk-p9jkv2y0.js";import"./chunk-5h618jv3.js";import"./chunk-t6m5d64b.js";import"./chunk-w28wc7mv.js";import"./chunk-6beg47t4.js";import"./chunk-gtktv6nn.js";export{zu as buildForProduction};
@@ -1,2 +0,0 @@
1
- // @bun
2
- import{pn,ql,Gl,Kl,Xl,Jl,g,Yl,Mo,Zl,Ga,Ka}from"./chunk-p9jkv2y0.js";import"./chunk-5h618jv3.js";import"./chunk-t6m5d64b.js";import"./chunk-w28wc7mv.js";import"./chunk-6beg47t4.js";import"./chunk-gtktv6nn.js";export{pn as STX_ENGINE_BINDING_NAMES,Mo as convertToCommonJS,Ga as extractScriptFromTemplate,g as extractVariables,Ka as hasVariables,Yl as isCompleteImport,Jl as isMissingBindingFailure,Kl as isModuleResolutionFailure,Xl as isSyntaxFailure,Zl as splitDeclaration,ql as stripTypeScript,Gl as withoutStxReferrer};
@@ -1,2 +0,0 @@
1
- // @bun
2
- import{Ec,Tc}from"./chunk-n11mcrmk.js";import"./chunk-54mq30ag.js";import"./chunk-mhsshvg1.js";import"./chunk-xr9a0hcr.js";import"./chunk-km37yrk4.js";import"./chunk-39g00f1z.js";import"./chunk-58dv14c3.js";import"./chunk-98xp87m0.js";import"./chunk-sz9xjmx0.js";import"./chunk-1y50gat7.js";import"./chunk-xvnrm5c3.js";import"./chunk-273mr301.js";import"./chunk-f4z9w4kc.js";import"./chunk-yxx4866s.js";import"./chunk-brftzqzj.js";import"./chunk-hm69jxmh.js";import"./chunk-3zbege39.js";import"./chunk-rwzmfx1g.js";import"./chunk-pzxy40a2.js";import"./chunk-btdxdmew.js";import"./chunk-qh7fvr2z.js";import"./chunk-ae12wgc5.js";import"./chunk-d7js6v1m.js";import"./chunk-ry501z40.js";import"./chunk-974prn41.js";import"./chunk-d1ssvg9k.js";import"./chunk-fv1k21jx.js";import"./chunk-12760frv.js";import"./chunk-w1wzydvp.js";import"./chunk-qv0zkqem.js";import"./chunk-03xn8244.js";import"./chunk-rspe6qa5.js";import{Kt}from"./chunk-mwxz9kbh.js";import"./chunk-gwyx2pwf.js";import"./chunk-cv10vetd.js";import"./chunk-374nhgyf.js";import{$e,o}from"./chunk-jayacz7s.js";import"./chunk-sa574ehw.js";import"./chunk-9bgb9n12.js";import"./chunk-7kzwpskb.js";import"./chunk-zxqgr2n6.js";import"./chunk-mhjnz2rh.js";import"./chunk-2a1eeywj.js";import"./chunk-x145xm5r.js";import{ye}from"./chunk-dr1em45p.js";import"./chunk-zt5hp5w5.js";import{Zn,Qn}from"./chunk-pkcd41b9.js";import{Jr,N,i}from"./chunk-2yphax0x.js";import"./chunk-jwxr8rya.js";import"./chunk-tenbwcts.js";import"./chunk-912r15hr.js";import"./chunk-nbjyed3q.js";import"./chunk-gymmbbzc.js";import{g,De}from"./chunk-p9jkv2y0.js";import"./chunk-5h618jv3.js";import"./chunk-t6m5d64b.js";import"./chunk-w28wc7mv.js";import"./chunk-6beg47t4.js";import"./chunk-gtktv6nn.js";import"./chunk-b7z6rqfg.js";import"./chunk-drabexxq.js";export{Jr as buildWebComponents,Qn as cacheTemplate,Zn as checkCache,Kt as classifyAllScripts,Ec as createMiddleware,Tc as createRoute,N as defaultConfig,g as extractVariables,ye as injectRouterScript,i as loadStxConfig,De as processClientScript,o as processDirectives,$e as readMarkdownFile};
@@ -1,2 +0,0 @@
1
- // @bun
2
- import{Hc,td,Vc,Uc,nd,rd}from"./chunk-yxx4866s.js";import"./chunk-p9jkv2y0.js";import"./chunk-5h618jv3.js";import"./chunk-t6m5d64b.js";import"./chunk-w28wc7mv.js";import"./chunk-6beg47t4.js";import"./chunk-gtktv6nn.js";export{rd as applySlots,nd as extractSlotContent,td as parseSlotElement,Hc as parseSlots,Uc as processSlots,Vc as renderSlot};
@@ -1,2 +0,0 @@
1
- // @bun
2
- import{ji,Bi,qc,Gc,Kc,Xc,sd}from"./chunk-hm69jxmh.js";export{ji as createVirtualList,sd as default,qc as generateVirtualListCSS,Kc as processInfiniteListDirectives,Xc as processVirtualGridDirectives,Bi as processVirtualListDirectives,Gc as useVirtualList};
@@ -1,2 +0,0 @@
1
- // @bun
2
- import{Qu}from"./chunk-273mr301.js";import"./chunk-2yphax0x.js";import"./chunk-jwxr8rya.js";import"./chunk-tenbwcts.js";import"./chunk-912r15hr.js";import"./chunk-nbjyed3q.js";import"./chunk-gymmbbzc.js";import"./chunk-p9jkv2y0.js";import"./chunk-5h618jv3.js";import"./chunk-t6m5d64b.js";import"./chunk-w28wc7mv.js";import"./chunk-6beg47t4.js";import"./chunk-gtktv6nn.js";export{Qu as buildApp};
@@ -1,2 +0,0 @@
1
- // @bun
2
- import{gp,Tl,Ge,ca,mp,Br,Fr,zr}from"./chunk-zxqgr2n6.js";import"./chunk-mhjnz2rh.js";import"./chunk-2a1eeywj.js";import"./chunk-zt5hp5w5.js";import"./chunk-p9jkv2y0.js";import"./chunk-5h618jv3.js";import"./chunk-t6m5d64b.js";import"./chunk-w28wc7mv.js";import"./chunk-6beg47t4.js";import"./chunk-gtktv6nn.js";export{mp as clearOnceStore,ca as onceStore,Ge as partialsCache,Br as processIncludes,Fr as processStackPushDirectives,zr as processStackReplacements,gp as resetUnscopedSignalWarnings,Tl as topLevelElements};
@@ -1,2 +0,0 @@
1
- // @bun
2
- import{Iu}from"./chunk-54mq30ag.js";import"./chunk-jayacz7s.js";import"./chunk-sa574ehw.js";import"./chunk-9bgb9n12.js";import"./chunk-7kzwpskb.js";import"./chunk-zxqgr2n6.js";import"./chunk-mhjnz2rh.js";import"./chunk-2a1eeywj.js";import"./chunk-x145xm5r.js";import"./chunk-dr1em45p.js";import"./chunk-zt5hp5w5.js";import"./chunk-pkcd41b9.js";import"./chunk-2yphax0x.js";import"./chunk-jwxr8rya.js";import"./chunk-tenbwcts.js";import"./chunk-912r15hr.js";import"./chunk-nbjyed3q.js";import"./chunk-gymmbbzc.js";import"./chunk-p9jkv2y0.js";import"./chunk-5h618jv3.js";import"./chunk-t6m5d64b.js";import"./chunk-w28wc7mv.js";import"./chunk-6beg47t4.js";import"./chunk-gtktv6nn.js";export{Iu as startInteractive};
@@ -1,2 +0,0 @@
1
- // @bun
2
- import{Ud,Wd}from"./chunk-fv1k21jx.js";import"./chunk-gwyx2pwf.js";import"./chunk-cv10vetd.js";import"./chunk-374nhgyf.js";import"./chunk-x145xm5r.js";import"./chunk-dr1em45p.js";import"./chunk-zt5hp5w5.js";import"./chunk-2yphax0x.js";import"./chunk-jwxr8rya.js";import"./chunk-tenbwcts.js";import"./chunk-912r15hr.js";import"./chunk-nbjyed3q.js";import"./chunk-gymmbbzc.js";import"./chunk-p9jkv2y0.js";import"./chunk-5h618jv3.js";import"./chunk-t6m5d64b.js";import"./chunk-w28wc7mv.js";import"./chunk-6beg47t4.js";import"./chunk-gtktv6nn.js";export{Wd as clearStoreCache,Ud as getStoreScript};
@@ -1,3 +0,0 @@
1
- // @bun
2
- import t from"fs";import r from"path";var Gt="resources/assets",Fn="assets";function zn(o=process.cwd()){let s=r.resolve(o,Gt);return t.existsSync(s)&&t.statSync(s).isDirectory()?s:null}
3
- export{Gt,Fn,zn};
@@ -1,2 +0,0 @@
1
- // @bun
2
- import{jr,Kn,El}from"./chunk-7kzwpskb.js";import"./chunk-2a1eeywj.js";import"./chunk-x145xm5r.js";import"./chunk-dr1em45p.js";import"./chunk-zt5hp5w5.js";import"./chunk-2yphax0x.js";import"./chunk-jwxr8rya.js";import"./chunk-tenbwcts.js";import"./chunk-912r15hr.js";import"./chunk-nbjyed3q.js";import"./chunk-gymmbbzc.js";import{$t}from"./chunk-p9jkv2y0.js";import"./chunk-5h618jv3.js";import"./chunk-t6m5d64b.js";import"./chunk-w28wc7mv.js";import"./chunk-6beg47t4.js";import"./chunk-gtktv6nn.js";export{El as declareBareLoopHead,$t as parseLoopBinding,Kn as processLoops,jr as reportDeferredLoopWarnings};
@@ -1,2 +0,0 @@
1
- // @bun
2
- import{up,ia,dp,aa,Sl,kl,nn,Gn,pp,_l,Cl,fp,h}from"./chunk-sa574ehw.js";import"./chunk-pkcd41b9.js";import"./chunk-p9jkv2y0.js";import"./chunk-5h618jv3.js";import"./chunk-t6m5d64b.js";import"./chunk-w28wc7mv.js";import"./chunk-6beg47t4.js";import"./chunk-gtktv6nn.js";export{nn as buildCss,_l as extractClassNames,kl as fingerprintConfig,Cl as generateCss,pp as getCachedCSS,up as getCssServeAsset,h as injectCss,ia as loadCssEngine,aa as loadCssEngineConfig,Gn as rebuildCss,dp as resetCssCache,Sl as resolveUserCssConfig,fp as withLinkedModuleBundles};
@@ -1,2 +0,0 @@
1
- // @bun
2
- import{Ws,qd,Gd}from"./chunk-12760frv.js";import"./chunk-gwyx2pwf.js";import"./chunk-cv10vetd.js";import"./chunk-374nhgyf.js";import"./chunk-x145xm5r.js";import"./chunk-dr1em45p.js";import"./chunk-zt5hp5w5.js";import"./chunk-2yphax0x.js";import"./chunk-jwxr8rya.js";import"./chunk-tenbwcts.js";import"./chunk-912r15hr.js";import"./chunk-nbjyed3q.js";import"./chunk-gymmbbzc.js";import"./chunk-p9jkv2y0.js";import"./chunk-5h618jv3.js";import"./chunk-t6m5d64b.js";import"./chunk-w28wc7mv.js";import"./chunk-6beg47t4.js";import"./chunk-gtktv6nn.js";export{Gd as clearComposableCache,qd as getComposableScript,Ws as listComposableModules};
@@ -1,2 +0,0 @@
1
- // @bun
2
- import{ft,Dn,Kd}from"./chunk-w1wzydvp.js";import{ce,Mn,Xd,Ln,qs,Nr,Dr,Jd,Yd,Zd,jn,Bn,Gs,Mr,Qd}from"./chunk-2ar5g9pa.js";import"./chunk-gtktv6nn.js";export{qs as batch,Kd as default,Mn as derived,Ln as effect,ft as generateSignalsRuntime,Dn as generateSignalsRuntimeDev,Bn as isDerived,jn as isSignal,Xd as memo,Dr as onDestroy,Nr as onMount,Mr as peek,Zd as pendingLifecycleCounts,Yd as runDestroyCallbacks,Jd as runMountCallbacks,ce as state,Gs as untrack,Qd as useOptimistic};
@@ -1,2 +0,0 @@
1
- // @bun
2
- import{Hu,Vu,Uu,Wu,Fc,qu,Gu,Ku,Xu,Ju,Yu,Zu}from"./chunk-1y50gat7.js";export{Yu as Broadcast,Zu as BroadcastServer,Fc as broadcast,Xu as broadcastPresence,Ku as broadcastPrivate,Ju as channel,Hu as getBroadcastServer,Wu as loadChannels,Vu as startBroadcasting,Uu as stopBroadcasting,qu as toUser,Gu as toUsers};
@@ -1,2 +0,0 @@
1
- // @bun
2
- import{Un,o}from"./chunk-jayacz7s.js";import"./chunk-sa574ehw.js";import"./chunk-9bgb9n12.js";import"./chunk-7kzwpskb.js";import"./chunk-zxqgr2n6.js";import"./chunk-mhjnz2rh.js";import"./chunk-2a1eeywj.js";import"./chunk-x145xm5r.js";import{ye}from"./chunk-dr1em45p.js";import"./chunk-zt5hp5w5.js";import"./chunk-pkcd41b9.js";import"./chunk-2yphax0x.js";import"./chunk-jwxr8rya.js";import"./chunk-tenbwcts.js";import"./chunk-912r15hr.js";import"./chunk-nbjyed3q.js";import"./chunk-gymmbbzc.js";import{Pe,ys,bs}from"./chunk-p9jkv2y0.js";import"./chunk-5h618jv3.js";import"./chunk-t6m5d64b.js";import"./chunk-w28wc7mv.js";import"./chunk-6beg47t4.js";import"./chunk-gtktv6nn.js";export{Un as buildModulesTag,ye as injectRouterScript,o as processDirectives,ys as processJsonDirective,bs as processOnceDirective,Pe as validateClientScript};
@@ -1,2 +0,0 @@
1
- // @bun
2
- import{$l,Vr}from"./chunk-mhjnz2rh.js";import"./chunk-2a1eeywj.js";import"./chunk-zt5hp5w5.js";import{ur}from"./chunk-p9jkv2y0.js";import"./chunk-5h618jv3.js";import"./chunk-t6m5d64b.js";import{tt}from"./chunk-w28wc7mv.js";import"./chunk-6beg47t4.js";import"./chunk-gtktv6nn.js";export{tt as freeIdentifiers,Vr as processComponents,$l as processESImports,ur as rendersAsElement};
@@ -1,2 +0,0 @@
1
- // @bun
2
- import{N,Nl,yo,i,R,Ep,Tp}from"./chunk-2yphax0x.js";import"./chunk-jwxr8rya.js";import"./chunk-tenbwcts.js";import"./chunk-912r15hr.js";import"./chunk-nbjyed3q.js";import"./chunk-gymmbbzc.js";import"./chunk-p9jkv2y0.js";import"./chunk-5h618jv3.js";import"./chunk-t6m5d64b.js";import"./chunk-w28wc7mv.js";import"./chunk-6beg47t4.js";import"./chunk-gtktv6nn.js";export{R as config,N as defaultConfig,Ep as defineStxConfig,yo as discoverConfig,i as loadStxConfig,Nl as resolveStxDirectories,Tp as validateConfig};
@@ -1,2 +0,0 @@
1
- // @bun
2
- import{cd,zi,dl,ld,ud,dd,pd,fd,pl,fl,gd,md,hd,yd}from"./chunk-btdxdmew.js";import"./chunk-jayacz7s.js";import"./chunk-sa574ehw.js";import"./chunk-9bgb9n12.js";import"./chunk-7kzwpskb.js";import"./chunk-zxqgr2n6.js";import"./chunk-mhjnz2rh.js";import"./chunk-2a1eeywj.js";import"./chunk-x145xm5r.js";import"./chunk-dr1em45p.js";import"./chunk-zt5hp5w5.js";import"./chunk-pkcd41b9.js";import"./chunk-2yphax0x.js";import"./chunk-jwxr8rya.js";import"./chunk-tenbwcts.js";import"./chunk-912r15hr.js";import"./chunk-nbjyed3q.js";import"./chunk-gymmbbzc.js";import"./chunk-p9jkv2y0.js";import"./chunk-5h618jv3.js";import"./chunk-t6m5d64b.js";import"./chunk-w28wc7mv.js";import"./chunk-6beg47t4.js";import"./chunk-gtktv6nn.js";export{dl as SUSPENSE_RESOLVER_RUNTIME,zi as buildSuspenseResolveScript,fd as createStreamRenderer,dd as extractStreamBoundaries,yd as generateHydrationRuntime,fl as islandDirective,md as processSectionDirectives,ud as processStreamDirectives,gd as registerStreamingDirectives,ld as renderStreamingPage,cd as streamTemplate,pd as streamTemplateSimple,hd as streamToResponse,pl as streamingSuspenseDirective};
@@ -1,2 +0,0 @@
1
- // @bun
2
- import{Mc,$i,Lu,Lc,jc,ju,Bu}from"./chunk-39g00f1z.js";import"./chunk-12760frv.js";import"./chunk-gwyx2pwf.js";import"./chunk-cv10vetd.js";import"./chunk-374nhgyf.js";import"./chunk-x145xm5r.js";import"./chunk-dr1em45p.js";import"./chunk-zt5hp5w5.js";import"./chunk-2yphax0x.js";import"./chunk-jwxr8rya.js";import"./chunk-tenbwcts.js";import"./chunk-912r15hr.js";import"./chunk-nbjyed3q.js";import"./chunk-gymmbbzc.js";import{Rt,Wl}from"./chunk-p9jkv2y0.js";import"./chunk-5h618jv3.js";import"./chunk-t6m5d64b.js";import"./chunk-w28wc7mv.js";import"./chunk-6beg47t4.js";import"./chunk-gtktv6nn.js";export{Mc as buildVirtualSource,Rt as extractScriptBlocks,Wl as extractTemplateExpressions,Lc as findRuntimeTypeDeclarations,jc as findStxModuleDeclarations,Bu as formatTypecheckDiagnostics,Lu as sourcePathFor,ju as typecheckStxFiles,$i as virtualPathFor};
@@ -1,2 +0,0 @@
1
- // @bun
2
- import{qi,Gi,Ki,Xi,ip}from"./chunk-vfsapkh9.js";import"./chunk-qv0zkqem.js";import"./chunk-03xn8244.js";import"./chunk-jayacz7s.js";import"./chunk-sa574ehw.js";import"./chunk-9bgb9n12.js";import"./chunk-7kzwpskb.js";import"./chunk-zxqgr2n6.js";import"./chunk-mhjnz2rh.js";import"./chunk-2a1eeywj.js";import"./chunk-x145xm5r.js";import"./chunk-dr1em45p.js";import"./chunk-zt5hp5w5.js";import"./chunk-pkcd41b9.js";import"./chunk-2yphax0x.js";import"./chunk-jwxr8rya.js";import"./chunk-tenbwcts.js";import"./chunk-912r15hr.js";import"./chunk-nbjyed3q.js";import"./chunk-gymmbbzc.js";import"./chunk-p9jkv2y0.js";import"./chunk-5h618jv3.js";import"./chunk-t6m5d64b.js";import"./chunk-w28wc7mv.js";import"./chunk-6beg47t4.js";import"./chunk-gtktv6nn.js";export{qi as buildNative,ip as default,Gi as findCraftBinary,Xi as getAvailableFormats,Ki as getAvailableTargets};
@@ -1,2 +0,0 @@
1
- // @bun
2
- import{Ou}from"./chunk-mhsshvg1.js";import"./chunk-sz9xjmx0.js";import"./chunk-mwxz9kbh.js";import"./chunk-cv10vetd.js";import"./chunk-dr1em45p.js";import"./chunk-2yphax0x.js";import"./chunk-jwxr8rya.js";import"./chunk-tenbwcts.js";import"./chunk-912r15hr.js";import"./chunk-nbjyed3q.js";import"./chunk-gymmbbzc.js";import"./chunk-p9jkv2y0.js";import"./chunk-5h618jv3.js";import"./chunk-t6m5d64b.js";import"./chunk-w28wc7mv.js";import"./chunk-6beg47t4.js";import"./chunk-gtktv6nn.js";export{Ou as startProductionServer};